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

1
どのように数値コードをデバッグしますか、この振動エラーの原因は何ですか?
静かに多くの洞察を経験から得ることができます。これと似たようなものを以前に見たことがある人はいないかと思っていました。このプロットは、移流拡散方程式の初期条件(緑)、反復200(青)、反復400(赤)での解を示しています。 移流拡散方程式の解は、数回の反復後に爆発します。ペクレ数、およびCFL条件が満たされ、、方程式はそうする必要があり安定しています。数値コードにバグがあると予想しています。μ ≈ 0.07μ≈0.07\mu\approx0.07C≈ 0.0015C≈0.0015C\approx 0.0015 バックグラウンド。離散化は、移流と拡散の両方の用語の中心的な違いです。これは移流の1次であり、拡散の2次であると思います。これを有限体積アプローチ(初めて)を使用して実装しました。この方法では、セルの平均値からの線形補間によってセル面の係数(速度と拡散係数)の値が求められます。左右の表面にロビン境界条件を適用し、境界のフラックスをゼロに設定します。 数値コードをどのようにデバッグしますか?これまでにこのようなシーンはありますか?どこから探し始めるのが良いでしょうか? 更新 これは、移流拡散方程式の有限体積法の実装に関する個人的な「ラボブック」スタイルのメモです。http://danieljfarrell.github.io/FVM/ Pythonソースコードは、http://github.com/danieljfarrell/FVM.gitから入手できます。 更新 解決策はこれ以上簡単ではありません!私はちょうど拡散項でサインエラーを犯しました。それは奇妙です、私はこれを投稿していなかったと確信しています、私はエラーを見つけなかっただろう!数値コードをデバッグする方法についてのヒントを共有したい場合は、まだ興味があります。私には方法がありません、それは少しヒットとミスです、私は手がかりを得るために何かを試し続けますが、このプロセスには数週間かかる場合があります。 ××\times

1
BDFと暗黙のルンゲクッタの時間ステップ
BDFタイムステッピングよりも高次の暗黙的なルンゲクッタ(IMRK)を選択する理由はありますか?段階IMRKにはqが必要なので、BDFの方がはるかに簡単に思えますqqqqqqタイムステップごとに線形解。BDFとIMRKの安定性は重要なポイントのようです。暗黙のタイムステッパーを比較/比較するリソースが見つかりません。 それが役立つ場合、最終的な目標は移流拡散PDEの高次の暗黙的なタイムステッパーを選択することです。

3
移動メッシュを生成する背後にある基本原則は何ですか?
移流拡散問題のための移動メッシュの実装に興味があります。アダプティブムービングメッシュメソッドは、有限差分を使用して1Dのバーガー方程式に対してこれを行う方法の良い例です。誰かが、移動するメッシュで有限差分を使用して1D移流拡散方程式を解くための実用的な例を提供できますか? たとえば、保守的な形式では、方程式は ut=(a(x)u+dux)xut=(a(x)u+dux)x u_t = (a(x)u + du_x)_x ここでは速度(空間の関数)です。初期条件u (0 、x )は、(たとえば)左から右へ(たとえば、パイプに沿って)移動するフロー種を指定できます。この場合、初期条件には急勾配があります。a(x)a(x)a(x)u(0,x)u(0,x)u(0,x) 移動メッシュの等分布問題をどのように解決する必要がありますか(おそらくDe Boorのアルゴリズムまたは他のアプローチを使用して)。これを自分でPythonで実装したいので、もしあなたの答えがすぐにコードに変換できればいいのです! バウンティ前の古い質問 システムのプロパティに基づいて適応メッシュを生成するための基本的なアプローチは何ですか?勾配が大きい場所の尺度としてフラックスを使用する必要がありますか? 反復(タイムスイープ)ソリューションを模索しているためです。古いグリッドから新しいグリッドに補間することが重要だと思いますが、通常のアプローチは何ですか? 単純な問題(移流方程式など)の有効な例を確認したいと思います。 問題の詳細についての少しの背景。私は方程式の1D結合システムをシミュレートしています、 ∂あなたは∂t= aあなたは∂2あなたは∂バツ2+ bあなたは∂あなたは∂バツ+ fあなたは(x 、u 、v 、w )∂v∂t= av∂2v∂バツ2+ bv∂v∂バツ+ fv(x 、u 、v 、w )∂w∂t= aあなたは∂あなたは∂バツ+ av∂v∂バツ+ fw(x 、u 、v 、w )∂あなたは∂t=aあなたは∂2あなたは∂バツ2+bあなたは∂あなたは∂バツ+fあなたは(バツ、あなたは、v、w)∂v∂t=av∂2v∂バツ2+bv∂v∂バツ+fv(バツ、あなたは、v、w)∂w∂t=aあなたは∂あなたは∂バツ+av∂v∂バツ+fw(バツ、あなたは、v、w) \frac{\partial u}{\partial t} = a_u\frac{\partial^2 u}{\partial x^2} + b_u\frac{\partial …

3
ニュートン・ラフソンを超えて非線形移流拡散システムを解く方法は?
私は、それぞれのソース項を介して2つのadv-diff結合ドメインがあるプロジェクトに取り組んでいます(1つのドメインは質量を加算し、他のドメインは質量を減算します)。簡潔にするために、定常状態でモデル化しています。方程式は、次のようなソース項を持つ標準の移流拡散輸送方程式です。 ∂c1∂t=0=F1+Q1(c1,c2)∂c2∂t=0=F2+Q2(c1,c2)∂c1∂t=0=F1+Q1(c1,c2)∂c2∂t=0=F2+Q2(c1,c2) \frac{\partial c_1}{\partial t} = 0 = \mathcal{F}_1 + \mathcal{Q}_1(c_1,c_2) \\ \frac{\partial c_2}{\partial t} = 0 = \mathcal{F}_2 + \mathcal{Q}_2(c_1,c_2) ここで、は種iの拡散および移流フラックスであり、Q iは種iのソース項です。FiFi\mathcal{F}_iiiiQiQi\mathcal{Q}_iiii Newton-Raphson法を使用して問題のソルバーを記述でき、ブロック質量行列を使用して2つのドメインを完全に結合しました。 Fcoupled=[A100A2][c1,ic2,i]xi−[b1(c1,i,c2,i)b2(c1,i,c2,i)]Fcoupled=[A100A2][c1,ic2,i]⏟xi−[b1(c1,i,c2,i)b2(c1,i,c2,i)] F_{coupled} = \left[\begin{array}{c c} A_1 & 0 \\ 0 & A_2 \\ \end{array}\right]\underbrace{ \left[\begin{array}{c} c_{1,i} \\ c_{2,i} \\ \end{array}\right] }_{x_i} - \left[\begin{array}{c} b_1(c_{1,i}, c_{2,i}) \\ …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.