移流拡散方程式に適用されるノイマン境界条件を使用する場合の物理量の保存


25

異なる境界条件を適用すると、移流拡散方程式の異なる動作が理解できません。私の動機は、拡散と移流のもとでの実際の物理量(粒子密度)のシミュレーションです。粒子密度は、端から流出しない限り、内部で保存する必要があります。この論理により、システムの両端に(左側および右側)などのノイマン境界条件を適用すると、システムは「閉じる」、つまり境界でのフラックスがゼロの場合、粒子は逃げることができません。ϕx=0

以下のすべてのシミュレーションでは、Crank-Nicolson離散化を移流拡散方程式に適用し、すべてのシミュレーションには境界条件があります。ただし、行列の最初と最後の行(境界条件の行)については、内部値に関係なくを変更できます。これにより、エンドポイントが完全に暗黙的になります。ϕx=0β

以下に4つの異なる構成について説明しますが、そのうちの1つだけが期待したものです。最後に、実装について説明します。

拡散のみの制限

ここでは、速度をゼロに設定すると移流項がオフになります。

拡散のみ、すべてのポイントでβ = 0.5(Crank-Niscolson)

拡散のみ(ベータ= 0.5のノイマン境界)

パルス面積が減少することからわかるように、量は保存されません。

拡散のみ、内部ポイントで = 0.5(クランクニコルソン)、境界で = 1(完全暗黙)ββ

拡散のみ(内部はベータ= 0.5、ノイマン境界は完全に暗黙的なベータ= 1)境界

境界で完全に暗黙的な方程式を使用することで、期待どおりの結果が得られます。粒子が逃げません これは、粒子が拡散するにつれて保存される領域で確認できます。なぜ選択する必要があり境界点では、状況の物理学に影響を与えますか?これはバグですか、それとも予想ですか?β

拡散と移流

移流項が含まれる場合、境界のの値は解に影響を与えないようです。ただし、境界が「開いているように見えるすべての場合、つまり粒子は境界から逃げることができます。これはなぜですか?β

すべてのポイントでの = 0.5(Crank-Niscolson)による移流と拡散β

移流拡散(ベータ= 0.5のノイマン境界)

内点での = 0.5(Crank-Niscolson)、および境界での = 1(完全暗黙)による移流と拡散ββ

移流と拡散(内部はベータ= 0.5、ノイマン境界は完全に暗黙的なベータ= 1)境界

移流拡散方程式の実装

移流拡散方程式から始めて、

ϕ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β))

ノイマン境界条件の適用

NBは派生を再度処理しています。エラーを見つけたと思います。境界条件の有限差分を記述するときに、完全に暗黙的なスキーム( = 1)を想定しました。ここでCrank-Niscolsonスキームを仮定すると、複雑さが非常に大きくなり、結果の方程式を解いてドメイン外のノードを排除できませんでした。しかし、それは可能だと思われ、2つの未知数を持つ2つの方程式がありますが、私はそれを管理できませんでした。これはおそらく、最初のプロットと2番目のプロットの違いを説明しています。境界点で = 0.5のプロットのみが有効であると結論付けることができると思います。ββ

左側のフラックスが既知であると仮定すると(完全に暗黙的な形式を想定)、

ϕ1n+1x=σL

これを中心差として書くと、

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

したがって、 ϕ0n+1=ϕ2n+12ΔxσL

これにより、問題のドメイン外にあるノードが導入されることに注意してください。このノードは、2番目の式を使用して削除できます。ノードは次のように記述できます。ϕ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行に対して次の結果が得られます。ϕ0n+1j

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

最終行( =)で同じ手順を実行すると、jJ

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

したがって、ノイマン境界条件では、行列方程式。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

私の現在の理解

  • 最初のプロットと2番目のプロットの違いは、上記のエラーに注目することで説明されると思います。

  • 物理量の保存に関して。私は原因がそれであると信じて、ここで指摘したように、私は波がちょうど通過するので、それが逆方向に伝播することはできません書かれている形での移流方程式ゼロフラックス境界条件でさえも。保存に関する私の最初の直感は移流項がゼロの場合にのみ適用されます(これは、面積が保存されているプロット番号2の解です)。

  • 偶数とノイマンゼロフラックス境界条件質量は依然としてシステムを残すことができ、この場合の正しい境界条件であるため、これはロビンにおける境界条件の総磁束指定されている。さらに、ノイマン条件は、質量が拡散を介して領域を離れることができないことを指定します。本質的に、私たちが聞いているのは、拡散に対する閉じた境界条件と移流に対する開いた境界条件です。詳細については、移流拡散方程式における勾配ゼロ境界条件の実装の回答を参照してください。ϕx=0j=Dϕx+vϕ=0

同意しますか?


境界条件が正しく実装されていないようです。境界条件をどのように課したかを教えてください。
デビッドケッチャソン

OK実装を更新して、境界行のみに = 0.5を適用することに関するエラーを見つけたと思います。質問の下部にある「現在の理解」を更新しました。コメントはありますか?β
-boyfarrell

それで...ロビン境界の場合、境界の離散化はどのように見えますか?ノイマンの境界線では表示されていますが、ロビンの境界線では表示されていません。

回答:


15

あなたの問題の1つは、(あなたがコメントで観察したように)ノイマン条件があなたの量の保存を意味しないという意味で、あなたが探している条件ではないということだと思います。正しい状態を見つけるには、PDEを次のように書き換えます

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

ここで、かっこ内に表示される用語は総フラックスであり、これは、。(一般性とコメントのためにを追加しました。)課す必要がある境界条件は空間ドメインがと仮定した場合)です。Dϕx+vϕ=0ϕS(x,t)(10,10)

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

左側と

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

右側に。これらは、いわゆるロビン境界条件です(ウィキペディアは、これらが移流拡散方程式の断熱条件であると明示的に述べていることに注意してください)。

これらの境界条件を設定すると、探していた保存特性が得られます。確かに、宇宙領域で統合すると、

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

右側の部品による統合を使用して、

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

現在、境界条件のおかげで2つの中心的な用語は消えています。時間内に統合して、取得します

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

そして、最初の2つの積分を切り替えることができる場合

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

これは、ドメインが外部から隔離されていることを示しています。特に、場合、保存が得られます。S=0ϕ


= 0の場合にのみ機能する理由がました。これは、上記のアプローチに従った保存を意味するためです。上記でこの境界条件を使用すると、波は反射しますか?方程式に負の速度を与えるものがないため、これは不可能だと思いましたか?v
-boyfarrell

知るための最良の方法は、おそらく試してみることです!しかし、これが正しく動作する(およびIMOが動作する)場合、ドメインの左側で蓄積を開始する一定量のが表示されるはずです。移流はをその方向に押しますが、境界は閉じています。拡散がバランスを取るのに十分な大きさになると、蓄積が停止します。いいえ、反射波はありません。ϕϕ
Dr_Sam

@DrSam実装に関する質問です。左側の数量をゼロにする方法についてのあなたのポイントを理解しています。しかし、「右側の境界用語」と言うとき、それはどういう意味ですか?境界条件はノイマンかディリクレのいずれか(または両方の組み合わせ)である必要があると思いましたか?
-boyfarrell

@boyfarrell答えの左/右は、実装の方法ではなく、正しい境界条件の派生を指していました(明確にするために編集)。ロビン条件は古典的な条件ですが、ディリクレとノイマンほど知られていません。
Dr_Sam

実装に関して、両方の境界についてロビン境界条件を導き出すべきだと思いますか?また、方程式に反応項がある場合(例:境界条件にもこの用語を含める必要がありますか?
ϕt=x(Dϕx+vϕ)+S(x,t)
-boyfarrell
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.