工学系大学院生のブログ

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

第5-4回 オイラー方程式(コードの補足)[python]

コードが長くなってきましたので、何をしているのか補足したいと思います。

前回の記事と合わせてご参照ください。




①仮想セルについて(13~14,94~98行目)

有限体積法では、検査体積の中心を代表値として算出しています。つまり解析領域の端に代表点はなく、セル境界が解析領域の端になってしまいます。

そこで上の図のように一つ外側にセルを用意し境界のバランスを調整します。


左端には「初期値で一定」のディリクレ条件を与えます。隣のセルとの平均値を境界の値として考え、下記のように外側のセルの値を決めます。

$$\frac{Q_{仮想セル}+Q_1}{2}=Q_L ⇔ Q_{仮想セル}=2Q_L-Q_1 $$


右端では「勾配0」のノイマン条件を与えます。上記と同様に考え、次のように仮想セルの値を決めます。

$$\left(\frac{\partial Q}{\partial x}\right)_{bound}=0 ⇔ Q_{仮想セル}-Q_{bound,R} =0 $$

$$⇔ Q_{仮想セル}=Q_{bound,R} $$




②Resの計算について(101~110行目)

離散化した次式においてResを定義しています。

$$Q^{n+1}_j=Q^n_j-\frac{\Delta t}{\Delta x}(\tilde{f}_{j+1/2}- \tilde{f}_{j-1/2} )$$

$$Q^{n+1}_j=Q^n_j-\frac{\Delta t}{\Delta x}Res_j $$




③フラックスの格納について(113~127行目)

Fplusという名前で\( \tilde{f}_{j+1/2} \)を格納しています。またセルjとj+1の境界をFplus [j]に格納しています。




④基本量と保存量について(148~172行目)

コードでは162~172行目の保存量から基本量へ変換を行い出力しています。保存量\(Qc\)と基本量\(qf\)の関係は次のようになっています。

$$Qc=\left( \begin{array}{c} \rho \\ \rho u \\ e \end{array} \right), qf=\left( \begin{array}{c} u \\ \rho \\ p \end{array} \right) $$

$$ \left( \begin{array}{c} u \\ \rho \\ p \end{array} \right) =\left( \begin{array}{c} \rho u/\rho \\ \rho \\ (\gamma-1)(e-\frac{1}{2}\rho(\frac{\rho u}{\rho})^2) \end{array} \right) $$




ここまで細かく読んでくださり、ありがとうございます。

by hide

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

コメントを残す

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

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