非圧縮性ナビエ・ストークス方程式を解く最も簡単な方法は何ですか?


9

「最も単純な」とは、ゼロから学習して実装する最も単純なことを意味します。私の質問が多かれ少なかれ答えられることを願っています。


1
どのジオメトリで?
Rhys Ulerich 2013

@Rhys Ulerichイムは最も単純なことを推測していますか?
James

@ user2697246初期条件が一定の無限ドメイン?ささいなこと。それは非難的な質問であることを意味していませんでした。
Rhys Ulerich 2014年

1
NSシミュレーションを始めるには、lorenabarba.com / blog / cfd
Subodh

回答:


10

2次元では、速度-渦度定式化は、変数が配置されているため実装が最も簡単ですが、境界条件は複雑になる可能性があり、問題の直接的な説明にはなりません。原始変数の定式化では、Harlow and Welch(1965)のスタッガードグリッド有限差分法が出発点として最適です。


2
境界条件を含むこのアルゴリズムの非常に明確な説明は、Pozrikidisによって提供されます
John Stockie 2013

10

非常にシンプルでありながら非常に効率的な解法(Chorinの分割法)の完全に文書化された実装は、ここで見つかります

他の一般的な方法の選択については、この本の第21章を参照してください。

免責事項:私はデモプログラムと本の両方の(共同)作成者です。この本は無料でダウンロードできます。


5

最も単純なのは、常にあなたの特定の興味やニーズに関連するものです。単純なジオメトリのドメインでの非圧縮性フローの場合、使いやすさと正確さの両方を優先する場合、投影法(つまり、コーリンの分割法)に勝つことは難しいとアンダースは同意します。

もう少し詳しく説明するために、方法は質問です[1]で紹介されています。より近代的な2次近似投影法は、[2]で詳しく説明されています。その動機は、完全な非圧縮性ナビエ・ストークス方程式を解くには速度場と圧力を同時に解く必要があることであり、結果として得られる線形システムはかなり悪条件です。投影法では、前のタイムステップの圧力を使用して各タイムステップを速度ソルブに分割し、その後に圧力更新を行うことでこの問題を排除します。

これを実装するには、他にいくつかのコンポーネントが必要ですが、すべてを非常に簡単に学習およびプログラミングできます。

  1. 圧力解法では、密度が一定のシステムに関心があると仮定すると、ポアソン方程式を解く必要があります。もちろん、この問題に取り組むための数十のアルゴリズムがありますが、おそらく完全に理解していなくても、最も簡単に実装できるのは共役勾配(CG)アルゴリズムです。私が読んだCGの最も良い説明の1つは、Jonathan Shewchukによって書かれたもので、ここで見つけることができます。ただし、アルゴリズムを簡単に実装できるようにするために、論文全体を読む必要はありません。

  2. Navier-Stokesの移流項を処理するには、別のアルゴリズムが必要です。いくつかの側面では、最も柔軟なメソッド、たとえばGodunovの堅牢な実装をプログラミングすることは非常に困難です。ただし、レイノルズ数が比較的小さい(つまり、無視できない粘度の)流れに関心がある場合、本質的に非振動(ENO)メソッドの1つは、実装の容易さの点で法案にうまく適合します。[3]には、理論と実装の両方の優れた概要があります。

  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


このすばらしい答えに、(時間離散)投影法における圧力の性質の更新された理解が以下にあることを付け加えておきます。Liu、J。Liu、RL Pego、非定常非圧縮性粘性流の安定した正確な圧力近似、J。Comp。Phys。229(2010)3428-3453。
Bob Pego 2013年

4

コンピュータグラフィックスとゲームは、近年、流体シミュレーションへの大きな爆発的な注目を集めています。 ここではリアルタイムアプリケーションのためのソルバーのimplentationを論じジョス・スタムから大きな紙があります。それは非常に理解しやすいソースコードが付属しています。正確さはわかりませんが、あなたが探しているものかもしれません。


1

別の本当に素晴らしく単純な方法は、離散化にセルオートマトンを使用することです。LBA、FHPなど、このようなモデルはたくさんあります。これらは、最新のコンピューターでリアルタイムシミュレーションを提供でき、GPUでうまく並列化して実行できるので、本当に素晴らしいです。それらにはいくつかの欠点もあり、結果は適用される格子の形状に強く依存します。正方格子は回転の自由が欠けているため不十分であり、つまりフォンカーマン渦は正方形になり、これは良くありません:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.