タグ付けされた質問 「diffusion」

2
Crank-Nicolsonは、反応-拡散-移流(対流)方程式の安定した離散化スキームですか?
私は、PDEの一般的な離散化スキームにあまり精通していません。Crank-Nicolsonは拡散方程式を離散化するための一般的なスキームであることを知っています。移流項にも適していますか? 私は反応-拡散-移流方程式を解くのに興味があります。 ∂u∂t+∇⋅(vu−D∇u)=f∂u∂t+∇⋅(vu−D∇u)=f\frac{\partial u}{\partial t} + \nabla \cdot \left( \boldsymbol{v} u - D\nabla u \right) = f ここで、は物質拡散係数で、は速度です。DDDvuuuvv\boldsymbol{v} 私の特定のアプリケーションでは、方程式は次の形式で記述できます。 ∂u∂t=D∂2u∂x2Diffusion+v∂u∂xAdvection (convection)+f(x,t)Reaction∂u∂t=D∂2u∂x2⏟Diffusion+v∂u∂x⏟Advection (convection)+f(x,t)⏟Reaction\frac{\partial u}{\partial t} = \underbrace{D\frac{\partial^2 u}{\partial x^2}}_{\textrm{Diffusion}} + \underbrace{\boldsymbol{v}\frac{\partial u}{\partial x}}_{\textrm{Advection (convection)}} + \underbrace{f(x,t)}_{\textrm{Reaction}} これが私が適用したクランク・ニコルソン方式です、 あなたはn + 1j- UnjΔ トン= D [ 1 - β(Δは、xは)2(unj − 1− 2 unj+ …

1
移流拡散方程式に適用されるノイマン境界条件を使用する場合の物理量の保存
異なる境界条件を適用すると、移流拡散方程式の異なる動作が理解できません。私の動機は、拡散と移流のもとでの実際の物理量(粒子密度)のシミュレーションです。粒子密度は、端から流出しない限り、内部で保存する必要があります。この論理により、システムの両端に(左側および右側)などのノイマン境界条件を適用すると、システムは「閉じる」、つまり境界でのフラックスがゼロの場合、粒子は逃げることができません。∂ϕ∂x=0∂ϕ∂x=0\frac{\partial \phi}{\partial x}=0 以下のすべてのシミュレーションでは、Crank-Nicolson離散化を移流拡散方程式に適用し、すべてのシミュレーションには境界条件があります。ただし、行列の最初と最後の行(境界条件の行)については、内部値に関係なくを変更できます。これにより、エンドポイントが完全に暗黙的になります。∂ϕ∂x=0∂ϕ∂x=0\frac{\partial \phi}{\partial x}=0ββ\beta 以下に4つの異なる構成について説明しますが、そのうちの1つだけが期待したものです。最後に、実装について説明します。 拡散のみの制限 ここでは、速度をゼロに設定すると移流項がオフになります。 拡散のみ、すべてのポイントでββ\boldsymbol{\beta} = 0.5(Crank-Niscolson) パルス面積が減少することからわかるように、量は保存されません。 拡散のみ、内部ポイントで = 0.5(クランクニコルソン)、境界で = 1(完全暗黙)ββ\boldsymbol{\beta}ββ\boldsymbol{\beta} 境界で完全に暗黙的な方程式を使用することで、期待どおりの結果が得られます。粒子が逃げません これは、粒子が拡散するにつれて保存される領域で確認できます。なぜ選択する必要があり境界点では、状況の物理学に影響を与えますか?これはバグですか、それとも予想ですか?ββ\beta 拡散と移流 移流項が含まれる場合、境界のの値は解に影響を与えないようです。ただし、境界が「開いている」ように見えるすべての場合、つまり粒子は境界から逃げることができます。これはなぜですか?ββ\beta すべてのポイントでの = 0.5(Crank-Niscolson)による移流と拡散ββ\boldsymbol{\beta} 内点での = 0.5(Crank-Niscolson)、および境界での = 1(完全暗黙)による移流と拡散ββ\boldsymbol{\beta}ββ\boldsymbol{\beta} 移流拡散方程式の実装 移流拡散方程式から始めて、 ∂ϕ∂t=D∂2ϕ∂x2+v∂ϕ∂x∂ϕ∂t=D∂2ϕ∂x2+v∂ϕ∂x \frac{\partial \phi}{\partial t} = D\frac{\partial^2 \phi}{\partial x^2} + \boldsymbol{v}\frac{\partial \phi}{\partial 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)]ϕjn+1−ϕjnΔt=D[1−β(Δx)2(ϕj−1n−2ϕjn+ϕj+1n)+β(Δx)2(ϕj−1n+1−2ϕjn+1+ϕj+1n+1)]+v[1−β2Δx(ϕj+1n−ϕj−1n)+β2Δx(ϕj+1n+1−ϕj−1n+1)] \frac{\phi_{j}^{n+1} - \phi_{j}^{n}}{\Delta t} …

1
拡散による測地線距離の計算
加重グラフのAPSP(All-Pair Shortest Path)問題を解決しようとしています。このグラフは実際には1次元、2次元、または3次元のグリッドであり、各エッジの重みは2つの頂点間の距離を表します。必要なのは、頂点のすべてのペアに対する測地線グラフの距離(グラフの最短経路)です。 拡散ベースの方法が必要です。ダイクストラまたはフロイドワーシャルアルゴリズムよりも高速だからです。私は熱方程式を使用してこれを達成しようとしています: 最後に、私のアプリケーションは、フォームのカーネル必要がありますとグラフ測地線距離を。exp(−d2/γ)ddあなたdt= Δ U 。dあなたdt=Δあなた。\frac{du}{dt} = \Delta u.exp(− d2/ γ)exp⁡(−d2/γ)\exp(-d^2/\gamma)ddd 私の希望は、そのソリューションをすることになっているので、拡散のための緑の機能: u ( t 、x 、y)=(14個のπt)− d私メートル2exp(−d2(x、y)4 トン)、あなた(t、バツ、y)=(14πt)−d私メートル2exp⁡(−d2(バツ、y)4t)、 u(t,x,y) = \left(\frac{1}{4\pi t}\right)^{-\frac{dim}{2}}\exp\left(\frac{-d^2(x,y)}{4t}\right), 次に、そのソリューションを直接使用して(前に因子を取り除くためにいくつかの調整を加えて)、カーネルとして使用できます。パラメーターは、調整することによって調整されます。トンγγ\gammattt 私はまだうまくいくことをすることができなかった、そして私はいくつかの助けが欲しい。これまでに多くのことを試しましたが、いくつかの問題が発生しています。これらすべてを1つの質問で説明することは困難で長いので、最初に私が良いアプローチの始まりであると考えるものを説明し、次にいくつかの一般的な質問をします。 それはクレーンらによる熱アルゴリズムにおける測地線の第一段階で行われるのと同じ方法で、後退オイラーステップで、Iは、線形システム解くことができる: と拡散ステップ、はラプラシアン行列、は頂点の1つでのディラック。 tLu0(私d− t L )u = u0(1)(1)(私d−tL)あなた=あなた0(Id - tL)u = u_0 \tag{1}tttLLLあなた0あなた0u_0 式(1)を解くと、実際にはという形式のカーネルが得られますが、これは望ましくありません。したがって、時間内にK回の反復を行い、K回解く必要があります: Id- これにより、。(I d − texp(− d/ γ)exp⁡(−d/γ)\exp(-d/\gamma) u = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.