C++

【オブジェクト指向C++】2次元ナビエストークス方程式(キャビティ流れ)の数値計算

Step4:ナビエストークス方程式を解く

いよいよキャビティ流れについてナビエストークス方程式の数値計算を行います。
まずは初期状態と境界条件を設定します。

【初期状態】
  • \(u, v, p = 0\)
【境界条件】
  • \(u=1\) at \(y=2\)
  • \(u, v=0\) その他
  • \(\frac{\partial p}{\partial y}=0\) at \(y=0\)
  • \(p=0\) at \(y=2\)
  • \(\frac{\partial p}{\partial x}=0\) at \(x=0,2\)

境界条件はFields.hで定義し、Fielsds.cppで処理内容を書きます。

Fields.h(抜粋)

Fielsds.cpp(抜粋)

境界条件を関数でまとめておきました。

Step5:残差の計算

ポアソン方程式を求める際に解の収束として、

\begin{align*}
\left|\frac{P_{n^{\prime}+1}-P_{n^{\prime}}}{P_{n^{\prime}}}\right|\tag{19}
\end{align*}

(19)が収束することを確認して次のタイムステップに進むようにします。
収束判定は(19)が$10^{-3}$より小さくなるか50回ループとしています。

では、main.cppにポアソン方程式の収束させるループを追加します。

ループを抜けたらナビエストークス方程式を解きます。

これで大まかな流れはできましたので、最後に全体のファイルをお見せして終了とします。

1 2 3 4 5 6

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。

COMMENT

メールアドレスが公開されることはありません。