工学系大学院生のブログ

2人の大学院生による雑記ブログ

第4-1回 有限体積法の基礎[python]


第4回では有限体積法を用いて、Burgers方程式を具体的に解いていきたいと思います。



有限体積法(Finite Volume Method,FVM)は流体の数値解析でよく使われる手法の一つです。まず、この考え方を説明します。


今までは方程式を点で離散化していましたが、この方法は解析領域を検査体積(control volume)つまり体積で分割します。


上記の図のように考えます。ここで、\(i\)のセルにおいて系は閉じており、両端から出入りする量が分かれば次の計算で答えを求めることができます。


(次の時間の量)=(現在の量)-(出た量)+(入った量)


これを方程式で表します。


$$\frac{\partial}{\partial t} \displaystyle\int Q dV + \int F d\overrightarrow  {A}=0 $$


ここで、\(Q\)は保存量と呼ばれるセルでの値\(F\)は流束(フラックス)と呼ばれるセル間の入出量になります。\( \overrightarrow  {A} \)はx,y,zそれぞれの方向における面積を求めるためベクトルになっています。


この式を三次元で離散化していきます。
時間ステップn,かつ(i,j,k)セルにおける左辺第一項は

$$ \frac{\partial}{\partial t} \int Q dV =\frac{Q_{i,j,k}^{n+1}-Q_{i,j,k}^n}{\Delta t}\Delta x \Delta y \Delta z $$

左辺第二項は

$$ \int F d\overrightarrow  {A} =( \tilde{f}_{i+1/2,j,k}- \tilde{f} _{i-1/2,j,k}) \Delta y \Delta z + ( \tilde{f} _{i,j+1/2,k}- \tilde{f} _{i,j-1/2,k}) \Delta x \Delta z \\+ ( \tilde{f} _{i,j,k+1/2}- \tilde{f} _{i,j,k-1/2}) \Delta x \Delta y $$

これらを\( \Delta x \Delta y \Delta z \)で割ってまとめます。

$$ \frac{Q_{i,j,k}^{n+1}-Q_{i,j,k}^n}{\Delta t}+\frac{ ( \tilde{f} _{i+1/2,j,k}-
\tilde{f} _{i-1/2,j,k}) }{\Delta x}+ \frac{ ( \tilde{f} _{i,j+1/2,k}- \tilde{f} _{i,j-1/2,k}) }{\Delta y} +\\ \frac{ ( \tilde{f} _{i,j,k+1/2}- \tilde{f} _{i,j,k-1/2}) }{\Delta z} =0$$


ここではフラックスを\(\tilde{f} \)と書きましたが、これは数値流束と呼ばれるものです。


私たちが得られる値はそのセルの値のみで、セル間の値はわかりません。そこで何かしらの方法で補間し求めるため、実際の流束と区別し『数値流束』と呼ばれます。(図の黄色い矢印)



次回はこの数値流束について掘り下げていきたいと思います。


by hide


流束かフラックスか統一していないのですが、ご了承ください。


参考文献 『流体力学の数値計算法』藤井孝蔵、東京大学出版会(1994)

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバックURL: https://teru-hide.com/cfd-finite-volume-method/trackback/
にほんブログ村 英語ブログへ
にほんブログ村