대류-확산 방정식에 적용되는 Neumann 경계 조건을 사용할 때 물리량 보존


25

다른 경계 조건을 적용 할 때 advection-diffusion 방정식의 다른 동작을 이해하지 못합니다. 나의 동기는 확산과 대류에서 실제 물리량 (입자 밀도)의 시뮬레이션입니다. 가장자리에서 흘러 나오지 않는 한 입자 밀도는 내부에서 보존해야합니다. 이 로직으로, 만약 같은 노이만 경계 조건을 시스템의 단부를 강제 다음 시스템이어야한다 (좌측 및 우측)에 "폐쇄" 즉 경우 플럭스 의 경계에서가 제로 다음 어떤 입자는 피할 수 없다.ϕx=0

아래의 모든 시뮬레이션에 대해 크랭크-니콜슨 이산화를 대류-확산 방정식에 적용했으며 모든 시뮬레이션에는 경계 조건이 있습니다. 그러나 행렬의 첫 번째 행과 마지막 행 (경계 조건 행)의 경우 를 내부 값과 독립적으로 변경할 수 있습니다. 이를 통해 엔드 포인트가 완전히 내재 될 수 있습니다.ϕx=0β

아래에서는 4 가지 구성에 대해 설명하지만 그 중 하나만 예상 한 것입니다. 마지막으로 구현에 대해 이야기합니다.

확산 만 제한

여기서 속도를 0으로 설정하면 이류 항이 꺼집니다.

모든 지점에서 β = 0.5 (Crank-Niscolson)의 확산 만

확산 만 (베타 = 0.5 인 뉴만 경계)

펄스 면적 감소에 의해 알 수있는 바와 같이 수량은 보존되지 않는다.

내부 지점에 = 0.5 (Crank-Niscolson) , 경계에 = 1 (완전한 암시)를 갖는 확산 만βββ

확산 만 (내부의 경우 베타 = 0.5 인 뉴만 경계, 베타 = 완전히 암시 적)

경계에서 완전히 암시적인 방정식을 사용하면 입자가 빠져 나가지 않습니다 . 입자 확산으로 보전되는 영역으로 볼 수 있습니다. 경계 지점에서 선택 이 상황의 물리학에 영향을 미치는 이유무엇 입니까? 이것은 버그입니까?β

확산과 대류

이류 항이 포함 된 경우 경계 의 값은 솔루션에 영향을 미치지 않는 것으로 보입니다. 그러나, 경계가 "개방"인 것처럼 보이는 모든 경우에있어서, 입자는 경계를 벗어날 수있다. 왜 그런가요?β

모든 지점에서 = 0.5 (Crank-Niscolson)을 사용한 전파 및 확산β

대류-확산 (베타 = 0.5 인 뉴만 경계)

내부 지점에서 = 0.5 (Crank-Niscolson) , 경계에서 = 1 (완전한 암시)를 사용한 전파 및 확산βββ

경계와 확산 (내부의 경우 베타 = 0.5, 베타 = 완전히 암시적인 뉴먼 경계)

전파 확산 방정식의 구현

advection-diffusion equation부터 시작해서

ϕt=D2ϕx2+vϕx

Crank-Nicolson을 사용한 글쓰기는

ϕjn+1ϕjnΔt=D[1β(Δx)2(ϕj1n2ϕjn+ϕj+1n)+β(Δx)2(ϕj1n+12ϕjn+1+ϕj+1n+1)]+v[1β2Δx(ϕj+1nϕj1n)+β2Δx(ϕj+1n+1ϕj1n+1)]

참고 크랭크 - 니콜슨에 대한 = 0.5, 완전히 암시에 대한 = 1, 및, 완전히 명시 대한 = 0.β ββββ

표기법을 단순화하기 위해 대체를 만들어 봅시다.

s=DΔt(Δx)2r=vΔt2Δx

시간 미분 의 알려진 값 을 오른쪽으로 옮기십시오 .ϕjn

ϕjn+1=ϕjn+s(1β)(ϕj1n2ϕjn+ϕj+1n)+sβ(ϕj1n+12ϕjn+1+ϕj+1n+1)+r(1β)(ϕj+1nϕj1n)+rβ(ϕj+1n+1ϕj1n+1)

항을 고려하면ϕ

β(rs)ϕj1n+1+(1+2sβ)ϕjn+1β(s+r)ϕj+1n+1Aϕn+1=(1β)(sr)ϕj1n+(12s[1β])ϕjn+(1β)(s+r)ϕj+1nMϕn

여기서는 과 같이 행렬 형식으로 작성할 수 있습니다 .Aϕn+1=Mϕn

A=(1+2sββ(s+r)0β(rs)1+2sββ(s+r)β(rs)1+2sββ(s+r)0β(rs)1+2sβ)

M=(12s(1β)(1β)(s+r)0(1β)(sr)12s(1β)(1β)(s+r)(1β)(sr)12s(1β)(1β)(s+r)0(1β)(sr)12s(1β))

Neumann 경계 조건 적용

NB는 파생을 통해 다시 작업하고 있습니다. 오류를 발견했다고 생각합니다. 경계 조건의 유한 차이를 쓸 때 완전히 암시 적 체계 ( = 1)로 가정했습니다 . 여기서 Crank-Niscolson 체계를 가정하면 복잡성이 너무 커지고 결과 방정식을 풀지 못해 도메인 외부에있는 노드를 제거 할 수 없습니다. 그러나 가능한 것처럼 보이며 두 개의 미지수를 가진 두 개의 방정식이 있지만 관리 할 수는 없습니다. 이것은 아마도 위의 첫 번째 플롯과 두 번째 플롯의 차이점을 설명합니다. 경계 점에서 = 0.5 인 플롯 만 유효하다고 결론 내릴 수 있다고 생각 합니다.βββ

왼쪽의 플럭스가 알려져 있다고 가정하면 (완전히 암시적인 형태라고 가정),

ϕ1n+1x=σL

이것을 중심의 차이로 쓰면

ϕ1n+1xϕ2n+1ϕ0n+12Δx=σL

따라서 ϕ0n+1=ϕ2n+12ΔxσL

이것은 문제의 영역 밖에있는 노드를 소개합니다 . 이 노드는 두 번째 방정식을 사용하여 제거 할 수 있습니다. 노드를 다음과 같이 쓸 수 있습니다 . J=1ϕ0n+1j=1

β(rs)ϕ0n+1+(1+2sβ)ϕ1n+1β(s+r)ϕ2n+1=(1β)(sr)ϕj1n+(12s[1β])ϕjn+(1β)(s+r)ϕj+1n

경계 조건에서 찾은 값을 대체 하면 = 1 행에 대해 다음 결과가 제공됩니다. Jϕ0n+1j

(1+2sβ)ϕ1n+12sβϕ2n+1=(1β)(sr)ϕj1n+(12s[1β])ϕjn+(1β)(s+r)ϕj+1n+2β(rs)ΔxσL

최종 행에 대해 동일한 절차를 수행하면 ( = )JjJ

2sβϕJ1n+1+(1+2sβ)ϕJn+1=(1β)(sr)ϕJ1n+(12s(1β))ϕJn+2β(s+r)ΔxσR

마지막으로 경계 행을 암시 적으로 설정하면 ( = 1로 설정 )β

(1+2s)ϕ1n+12sϕ2n+1=ϕj1n+1ϕjn+2(rs)ΔxσL

2sϕJ1n+1+(1+2s)ϕJn+1=ϕJn+2(s+r)ΔxσR

따라서 Neumann 경계 조건을 사용하여 행렬 방정식 .Aϕn+1=Mϕn+bN

어디에,

A=(1+2s2s0β(rs)1+2sββ(s+r)β(rs)1+2sββ(s+r)02s1+2s)

M=(100(1β)(sr)12s(1β)(1β)(s+r)(1β)(sr)12s(1β)(1β)(s+r)001)

bN=(2(rs)ΔxσL002(s+r)ΔxσR)T

나의 현재 이해

  • 첫 번째 플롯과 두 번째 플롯의 차이점은 위에서 설명한 오류를 지적하여 설명합니다.

  • 물리량의 보존에 관해서. 나는 원인 것을 믿고, 여기에서 지적했듯이 , 나는 파도 그냥 통과, 그래서는 반대 방향으로 전파를 허용하지 않습니다 쓴 형태로 이류 방정식 제로 플럭스 경계 조건도 . 보존에 관한 나의 초기 직감은 이류 항이 0 일 때만 적용된다 (이것은 지역이 보존 된 줄거리 2의 해답이다).

  • 도 함께 노이만 제로 흐름 경계 조건 질량 여전히 시스템을 떠날 수있다이 경우에 정확한 경계 조건이기 때문에,이다 로빈 경계 조건 어느에 광속 지정된 . 더욱이 Neunmann 조건은 질량이 확산을 통해 영역을 벗어날 수 없다고 명시하고 있으며 , 그것은 대류 에 대해서는 아무 말도하지 않습니다. 본질적으로 우리가 듣는 것은 확산에 대한 폐쇄 경계 조건과 대류에 개방 경계 조건입니다. 자세한 내용은 답을 참조하십시오. advection-diffusion equation에서 gradient zero bound conditon 구현ϕx=0j=Dϕx+vϕ=0.

동의하겠습니까?


경계 조건이 올바르게 구현되지 않은 것 같습니다. 경계 조건을 어떻게 부과했는지 알려 주시겠습니까?
David Ketcheson

OK 구현으로 업데이트 했으며 경계 행에서만 = 0.5 적용과 관련된 오류를 발견했다고 생각 합니다. 질문 맨 아래에서 "현재 이해"를 업데이트했습니다. 의견이 있습니까? β
boyfarrell

그렇다면 ... 로빈 경계의 경우 경계에 대한 이산화는 어떻게 생깁니 까? Neumann 경계에 대해서는 표시했지만 Robin 경계에는 표시되지 않았습니다.

답변:


15

나는 당신의 문제 중 하나는 (당신의 의견에서 관찰 한 바와 같이) Neumann 조건은 당신의 양의 보존을 의미하지 않는다는 의미에서 당신이 찾고있는 조건이 아니라는 것 입니다. 올바른 조건을 찾으려면 PDE를 다음과 같이 다시 작성하십시오.

ϕt=x(Dϕx+vϕ)+S(x,t).

이제 기간이 괄호 안에 표시, 은 IS 총 자속 이 당신이 절약하기 위해 경계 제로에 넣어해야하는 양이다 . ( 일반성을 위해 그리고 귀하의 의견을 위해 를 추가했습니다 .) 당신이 부과해야 할 경계 조건은 다음과 같습니다 (공간 영역을 가정하면 )Dϕx+vϕ=0ϕS(x,t)(10,10)

Dϕx(10)+vϕ(10)=0

왼쪽과

Dϕx(10)+vϕ(10)=0

오른쪽에. 이것은 소위 Robin 경계 조건입니다 (Wikipedia는 명시 적으로 이것이 확산-확산 방정식의 절연 조건이라고 말합니다).

이러한 경계 조건을 설정하면 원하는 보존 속성을 얻게됩니다. 실제로, 공간 영역에 통합하면

ϕtdx=x(Dϕx+vϕ)dx+S(x,t)dx

오른쪽 에 부품별로 통합을 사용하면

ϕtdx=(Dϕx+vϕ)(10)(Dϕx+vϕ)(10)+S(x,t)dx

이제 경계 조건으로 인해 두 가지 중심 용어가 사라집니다. 적시에 통합하면

0Tϕtdxdt=0TS(x,t)dxdt

그리고 우리의 처음 두 적분을 전환 할 수있는 경우 ,

ϕ(x,T)dxϕ(x,0)dx=0TS(x,t)dx

이것은 도메인이 외부와 절연되어 있음을 나타냅니다. 특히 이면 가 보존 됩니다.ϕS=0ϕ


시는 단지 일을 왜 지금은 실현 = 0; 이는 위의 접근 방식에 따른 보존을 의미하기 때문입니다. 위의 경계 조건을 사용하면 어떤 결과가 발생합니까? 나는 음의 속도를 줄 방정식에 아무것도 없기 때문에 이것이 가능하지 않다고 생각 했습니까? v
boyfarrell

아는 가장 좋은 방법은 시도하는 것입니다! 그러나 이것이 올바르게 작동하면 (그리고 IMO가 수행하는 경우) 도메인 왼쪽에서 누적되기 시작 하는 특정 양의 가 표시됩니다. 대류는 를 해당 방향으로 밀지 만 경계는 닫힙니다. 확산이 균형을 이루기에 충분히 클 때 누적이 중지됩니다. 따라서 반사파가 없어야합니다. ϕϕϕ
Dr_Sam

@DrSam 구현에 관한 질문입니다. 왼쪽에서 수량을 0으로 만드는 방법에 대한 귀하의 요점을 이해합니다. 그러나 "오른쪽 경계 용어"라고 말할 때 그 의미는 무엇입니까? 경계 조건이 Neumann 또는 Dirichlet (또는이 둘의 혼합)이어야한다고 생각 했습니까?
boyfarrell

@boyfarrell 대답의 왼쪽 / 오른쪽은 구현 방법이 아닌 정확한 경계 조건의 도출을 나타냅니다 (명확성을 위해 편집 됨). 로빈 조건은 고전적인 조건이지만 Dirichlet 및 Neumann보다 덜 알려져 있습니다.
Dr_Sam

구현과 관련하여 두 경계에 대해 Robin 경계 조건을 도출해야한다고 생각합니까? 또한 방정식에 반응 항이있는 경우 (예 : 경계 조건
ϕt=x(Dϕx+vϕ)+S(x,t)
에도이
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.