다른 경계 조건을 적용 할 때 advection-diffusion 방정식의 다른 동작을 이해하지 못합니다. 나의 동기는 확산과 대류에서 실제 물리량 (입자 밀도)의 시뮬레이션입니다. 가장자리에서 흘러 나오지 않는 한 입자 밀도는 내부에서 보존해야합니다. 이 로직으로, 만약 같은 노이만 경계 조건을 시스템의 단부를 강제 다음 시스템이어야한다 (좌측 및 우측)에 "폐쇄" 즉 경우 플럭스 의 경계에서가 제로 다음 어떤 입자는 피할 수 없다.∂ϕ∂x=0
아래의 모든 시뮬레이션에 대해 크랭크-니콜슨 이산화를 대류-확산 방정식에 적용했으며 모든 시뮬레이션에는 경계 조건이 있습니다. 그러나 행렬의 첫 번째 행과 마지막 행 (경계 조건 행)의 경우 를 내부 값과 독립적으로 변경할 수 있습니다. 이를 통해 엔드 포인트가 완전히 내재 될 수 있습니다.∂ϕ∂x=0β
아래에서는 4 가지 구성에 대해 설명하지만 그 중 하나만 예상 한 것입니다. 마지막으로 구현에 대해 이야기합니다.
확산 만 제한
여기서 속도를 0으로 설정하면 이류 항이 꺼집니다.
모든 지점에서 β = 0.5 (Crank-Niscolson)의 확산 만
펄스 면적 감소에 의해 알 수있는 바와 같이 수량은 보존되지 않는다.
내부 지점에 = 0.5 (Crank-Niscolson) , 경계에 = 1 (완전한 암시)를 갖는 확산 만βββ
경계에서 완전히 암시적인 방정식을 사용하면 입자가 빠져 나가지 않습니다 . 입자 확산으로 보전되는 영역으로 볼 수 있습니다. 경계 지점에서 선택 이 상황의 물리학에 영향을 미치는 이유 는 무엇 입니까? 이것은 버그입니까?β
확산과 대류
이류 항이 포함 된 경우 경계 의 값은 솔루션에 영향을 미치지 않는 것으로 보입니다. 그러나, 경계가 "개방"인 것처럼 보이는 모든 경우에있어서, 입자는 경계를 벗어날 수있다. 왜 그런가요?β
모든 지점에서 = 0.5 (Crank-Niscolson)을 사용한 전파 및 확산β
내부 지점에서 = 0.5 (Crank-Niscolson) , 경계에서 = 1 (완전한 암시)를 사용한 전파 및 확산βββ
전파 확산 방정식의 구현
advection-diffusion equation부터 시작해서
∂ϕ∂t=D∂2ϕ∂x2+v∂ϕ∂x
Crank-Nicolson을 사용한 글쓰기는
ϕn+1j−ϕnjΔt=D[1−β(Δx)2(ϕnj−1−2ϕnj+ϕnj+1)+β(Δx)2(ϕn+1j−1−2ϕn+1j+ϕn+1j+1)]+v[1−β2Δx(ϕnj+1−ϕnj−1)+β2Δx(ϕn+1j+1−ϕn+1j−1)]
참고 크랭크 - 니콜슨에 대한 = 0.5, 완전히 암시에 대한 = 1, 및, 완전히 명시 대한 = 0.β ββββ
표기법을 단순화하기 위해 대체를 만들어 봅시다.
s=DΔt(Δx)2r=vΔt2Δx
시간 미분 의 알려진 값 을 오른쪽으로 옮기십시오 .ϕnj
ϕn + 1j= ϕ엔j+ s ( 1 − β) ( ϕ엔j − 1− 2 ϕ엔j+ ϕ엔j + 1) +sβ( ϕn + 1j − 1− 2 ϕn + 1j+ ϕn + 1j + 1)+ r ( 1 − β) ( ϕ엔j + 1− ϕ엔j − 1) +rβ( ϕn + 1j + 1− ϕn + 1j − 1)
항을 고려하면ϕ
β( r − s ) ϕn + 1j − 1+ ( 1 + 2 초 β) ϕn + 1j− β( s + r ) ϕn + 1j + 1A ⋅ ϕn + 1= ( 1 − β) ( s − r ) ϕ엔j − 1+ ( 1 - 2 S [ 1 - β] ) ϕ엔j+ ( 1 − β) ( s + r ) ϕ엔j + 1엠⋅ ϕ엔
여기서는 과 같이 행렬 형식으로 작성할 수 있습니다 .A ⋅ ϕn + 1= M⋅ ϕ엔
A =⎛⎝⎜⎜⎜⎜⎜⎜⎜1 + 2 초 ββ( r - s )0−β( s + r )1 + 2 초 β⋱β( r - s )−β( s + r )⋱1 + 2 초 ββ( r - s )0⋱−β( s + r )1 + 2 초 β⎞⎠⎟⎟⎟⎟⎟⎟⎟
엠= ⎛⎝⎜⎜⎜⎜⎜⎜⎜1 - 2 의 ( 1 -β)( 1 −β) ( s − r )0( 1 − β) ( s + r )1 - 2 의 ( 1 - β)⋱( 1 − β) ( s − r )( 1 − β) ( s + r )⋱1 - 2 의 ( 1 - β)( 1 − β) ( s − r )0⋱( 1 − β) ( s + r )1 - 2 의 ( 1 - β)⎞⎠⎟⎟⎟⎟⎟⎟⎟
Neumann 경계 조건 적용
NB는 파생을 통해 다시 작업하고 있습니다. 오류를 발견했다고 생각합니다. 경계 조건의 유한 차이를 쓸 때 완전히 암시 적 체계 ( = 1)로 가정했습니다 . 여기서 Crank-Niscolson 체계를 가정하면 복잡성이 너무 커지고 결과 방정식을 풀지 못해 도메인 외부에있는 노드를 제거 할 수 없습니다. 그러나 가능한 것처럼 보이며 두 개의 미지수를 가진 두 개의 방정식이 있지만 관리 할 수는 없습니다. 이것은 아마도 위의 첫 번째 플롯과 두 번째 플롯의 차이점을 설명합니다. 경계 점에서 = 0.5 인 플롯 만 유효하다고 결론 내릴 수 있다고 생각 합니다.βββ
왼쪽의 플럭스가 알려져 있다고 가정하면 (완전히 암시적인 형태라고 가정),
∂ϕn + 11∂엑스= σ엘
이것을 중심의 차이로 쓰면
∂ϕn + 11∂엑스≈ ϕn + 12− ϕn + 102 Δ x= σ엘
따라서
ϕn + 10= ϕn + 12− 2 Δ x σ엘
이것은 문제의 영역 밖에있는 노드를 소개합니다 . 이 노드는 두 번째 방정식을 사용하여 제거 할 수 있습니다. 노드를 다음과 같이 쓸 수 있습니다 . J=1ϕn + 10j = 1
β( r − s ) ϕn + 10+ ( 1 + 2 초 β) ϕn + 11− β( s + r ) ϕn + 12= ( 1 − β) ( s − r ) ϕ엔j − 1+ ( 1 - 2 S [ 1 - β] ) ϕ엔j+ ( 1 − β) ( s + r ) ϕ엔j + 1
경계 조건에서 찾은 값을 대체 하면 = 1 행에 대해 다음 결과가 제공됩니다. Jϕn + 10j
( 1 + 2 초 β) ϕn + 11− 2 초 βϕn + 12= ( 1− β) ( s − r ) ϕ엔j − 1+ ( 1 − 2 s [ 1- β] ) ϕ엔j+ ( 1− β) ( s + r ) ϕ엔j + 1+2 β( R - S ) Δ X σ엘
최종 행에 대해 동일한 절차를 수행하면 ( = )JjJ
− 2 초βϕn + 1J− 1+ ( 1 + 2 초β) ϕn + 1J= ( 1 −β) ( s − r ) ϕ엔J− 1+ ( 1 − 2 s ( 1 − β)) ) ϕ엔J+ 2 β( s + r ) Δ x σ아르 자형
마지막으로 경계 행을 암시 적으로 설정하면 ( = 1로 설정 )β
( 1 + 2 초 ) ϕn + 11- 2 의 φn + 12= ϕ엔j − 1+ 1 ϕ엔j+ 2 ( r − s ) Δ x σ엘
- 2 의 φn + 1J− 1+ ( 1 + 2 초 ) ϕn + 1J= ϕ엔J+ 2 ( s + r ) Δ x σ아르 자형
따라서 Neumann 경계 조건을 사용하여 행렬 방정식 .A ⋅ ϕn + 1= M⋅ ϕ엔+ b엔
어디에,
A = ⎛⎝⎜⎜⎜⎜⎜⎜⎜1 + 2 초β( r - s )0− 2 초1 + 2 초 β⋱β( r - s )− β( s + r )⋱1 + 2 초 β− 2 초0⋱− β( s + r )1 + 2 초⎞⎠⎟⎟⎟⎟⎟⎟⎟
엠= ⎛⎝⎜⎜⎜⎜⎜⎜⎜1( 1 −β) ( s − r )001 - 2 의 ( 1 -β)⋱( 1 −β) ( s − r )( 1 −β) ( s + r )⋱1 - 2 의 ( 1 -β)00⋱( 1 −β) ( s + r )1⎞⎠⎟⎟⎟⎟⎟⎟⎟
비엔= ( 2 ( R - S ) Δ X σ엘0…02 ( s + r ) Δ x σ아르 자형)티
나의 현재 이해
첫 번째 플롯과 두 번째 플롯의 차이점은 위에서 설명한 오류를 지적하여 설명합니다.
물리량의 보존에 관해서. 나는 원인 것을 믿고, 여기에서 지적했듯이 , 나는 파도 그냥 통과, 그래서는 반대 방향으로 전파를 허용하지 않습니다 쓴 형태로 이류 방정식 제로 플럭스 경계 조건도 . 보존에 관한 나의 초기 직감은 이류 항이 0 일 때만 적용된다 (이것은 지역이 보존 된 줄거리 2의 해답이다).
도 함께 노이만 제로 흐름 경계 조건 질량 여전히 시스템을 떠날 수있다이 경우에 정확한 경계 조건이기 때문에,이다 로빈 경계 조건 어느에 총 광속 지정된 . 더욱이 Neunmann 조건은 질량이 확산을 통해 영역을 벗어날 수 없다고 명시하고 있으며 , 그것은 대류 에 대해서는 아무 말도하지 않습니다. 본질적으로 우리가 듣는 것은 확산에 대한 폐쇄 경계 조건과 대류에 개방 경계 조건입니다. 자세한 내용은 답을 참조하십시오. advection-diffusion equation에서 gradient zero bound conditon 구현∂ϕ∂엑스= 0j = D ∂ϕ∂엑스+ v ϕ = 0.
동의하겠습니까?