「最も単純な」とは、ゼロから学習して実装する最も単純なことを意味します。私の質問が多かれ少なかれ答えられることを願っています。
「最も単純な」とは、ゼロから学習して実装する最も単純なことを意味します。私の質問が多かれ少なかれ答えられることを願っています。
回答:
2次元では、速度-渦度定式化は、変数が配置されているため実装が最も簡単ですが、境界条件は複雑になる可能性があり、問題の直接的な説明にはなりません。原始変数の定式化では、Harlow and Welch(1965)のスタッガードグリッド有限差分法が出発点として最適です。
最も単純なのは、常にあなたの特定の興味やニーズに関連するものです。単純なジオメトリのドメインでの非圧縮性フローの場合、使いやすさと正確さの両方を優先する場合、投影法(つまり、コーリンの分割法)に勝つことは難しいとアンダースは同意します。
もう少し詳しく説明するために、方法は質問です[1]で紹介されています。より近代的な2次近似投影法は、[2]で詳しく説明されています。その動機は、完全な非圧縮性ナビエ・ストークス方程式を解くには速度場と圧力を同時に解く必要があることであり、結果として得られる線形システムはかなり悪条件です。投影法では、前のタイムステップの圧力を使用して各タイムステップを速度ソルブに分割し、その後に圧力更新を行うことでこの問題を排除します。
これを実装するには、他にいくつかのコンポーネントが必要ですが、すべてを非常に簡単に学習およびプログラミングできます。
圧力解法では、密度が一定のシステムに関心があると仮定すると、ポアソン方程式を解く必要があります。もちろん、この問題に取り組むための数十のアルゴリズムがありますが、おそらく完全に理解していなくても、最も簡単に実装できるのは共役勾配(CG)アルゴリズムです。私が読んだCGの最も良い説明の1つは、Jonathan Shewchukによって書かれたもので、ここで見つけることができます。ただし、アルゴリズムを簡単に実装できるようにするために、論文全体を読む必要はありません。
Navier-Stokesの移流項を処理するには、別のアルゴリズムが必要です。いくつかの側面では、最も柔軟なメソッド、たとえばGodunovの堅牢な実装をプログラミングすることは非常に困難です。ただし、レイノルズ数が比較的小さい(つまり、無視できない粘度の)流れに関心がある場合、本質的に非振動(ENO)メソッドの1つは、実装の容易さの点で法案にうまく適合します。[3]には、理論と実装の両方の優れた概要があります。
暗黙的な方法(通常はCrank-Nicolson)を使用して粘性項を処理する必要があります。これは投影法の論文で詳細に説明されており、粘度が一定であれば、マトリックスソルブにCGを簡単に使用できます。
[1] AJ Chorin、ナビエ・ストークス方程式の数値解、 J。Math。計算、22(1968)、ページ745-762
[2] A. Almgren、JB Bell、およびW. Szymczak、近似投影に基づく非圧縮性ナビエストークス方程式の数値法、SIAM J. Sci。計算。17(1996)、pp。258-369。
[3] S. OsherおよびR. Fedkiw、レベルセットメソッドおよび動的陰的表面。Springer-Verlag New York、応用数学科学、153、2002
コンピュータグラフィックスとゲームは、近年、流体シミュレーションへの大きな爆発的な注目を集めています。 ここではリアルタイムアプリケーションのためのソルバーのimplentationを論じジョス・スタムから大きな紙があります。それは非常に理解しやすいソースコードが付属しています。正確さはわかりませんが、あなたが探しているものかもしれません。