初期値の設定2020年9月27日 | |
はじめに初期値の設定について。 使用バージョンOpenFOAM v2006, v8 初期値の設定各変数の初期値は、フィールドファイルの internalField で指定できる。非定常解析を静止場から始める必要があるのであれば、速度 0、圧力一定、乱流諸量には適当な値を入れておく。定常解析の場合や、定常状態から非定常解析を始める場合は、速度や乱流諸量を流入条件から決めればよい。あるいは、初期値を決めるために一度計算を実行してもよい。簡単な初期値の計算方法として、potentialFoam を使う方法がある。 potentialFoampotentialFoam はポテンシャル流れを計算するソルバーである。いくつか設定が必要である。system/fvSolution の solvers に変数 Phi の設定を追加する。
Phi
{
solver GAMG;
smoother DIC;
tolerance 1e-06;
relTol 0.01;
}
また、以下の設定を追加する。
potentialFlow
{
nNonOrthogonalCorrectors 10;
}
残差を下げるために非直交補正ループを多めに設定している。system/fvSchemes の laplacianSchemes には以下の設定が必要である。
laplacian(1,Phi) Gauss linear corrected;
※v2.2.x 以前は Phi の代わりに p を使う。 また、圧力の出力が必要であれば、divSchemes に以下の設定も必要である。
div(div(phi,U)) Gauss linear;
ケースディレクトリで以下のように実行する。 $ potentialFoam -writep 計算結果は 0 ディレクトリの U ファイルに反映される。オプション "-writep" で圧力の結果も併せて p に反映される。実行ログはつぎのようになる。 Calculating potential flow GAMG: Solving for Phi, Initial residual = 1, Final residual = 0.0961357, No Iterations 20 GAMG: Solving for Phi, Initial residual = 0.0120506, Final residual = 0.0011272, No Iterations 4 GAMG: Solving for Phi, Initial residual = 0.00118204, Final residual = 0.000112727, No Iterations 10 GAMG: Solving for Phi, Initial residual = 0.000150113, Final residual = 1.3313e-05, No Iterations 14 GAMG: Solving for Phi, Initial residual = 2.1087e-05, Final residual = 1.93632e-06, No Iterations 16 GAMG: Solving for Phi, Initial residual = 3.35104e-06, Final residual = 9.33196e-07, No Iterations 7 GAMG: Solving for Phi, Initial residual = 1.05904e-06, Final residual = 8.8003e-07, No Iterations 1 GAMG: Solving for Phi, Initial residual = 8.89952e-07, Final residual = 8.89952e-07, No Iterations 0 GAMG: Solving for Phi, Initial residual = 8.89952e-07, Final residual = 8.89952e-07, No Iterations 0 GAMG: Solving for Phi, Initial residual = 8.89952e-07, Final residual = 8.89952e-07, No Iterations 0 GAMG: Solving for Phi, Initial residual = 8.89952e-07, Final residual = 8.89952e-07, No Iterations 0 Continuity error = 0.00177401 Interpolated velocity error = 0.000114118 ※v2.2.x 以前では実行ログはつぎのようになる。 DICPCG: Solving for p, Initial residual = 1, Final residual = 0.00954175, No Iterations 172 DICPCG: Solving for p, Initial residual = 0.010839, Final residual = 0.000105547, No Iterations 41 DICPCG: Solving for p, Initial residual = 0.000238023, Final residual = 2.00456e-06, No Iterations 160 DICPCG: Solving for p, Initial residual = 2.69716e-05, Final residual = 9.51724e-07, No Iterations 12 DICPCG: Solving for p, Initial residual = 1.34717e-06, Final residual = 8.57731e-07, No Iterations 1 DICPCG: Solving for p, Initial residual = 8.52541e-07, Final residual = 8.52541e-07, No Iterations 0 DICPCG: Solving for p, Initial residual = 8.52541e-07, Final residual = 8.52541e-07, No Iterations 0 DICPCG: Solving for p, Initial residual = 8.52541e-07, Final residual = 8.52541e-07, No Iterations 0 DICPCG: Solving for p, Initial residual = 8.52541e-07, Final residual = 8.52541e-07, No Iterations 0 DICPCG: Solving for p, Initial residual = 8.52541e-07, Final residual = 8.52541e-07, No Iterations 0 DICPCG: Solving for p, Initial residual = 8.52541e-07, Final residual = 8.52541e-07, No Iterations 0 "Initial residual" の値が十分小さくなっているのがわかる。この値の下がり具合で非直交補正の設定が妥当かどうか判断できる。 potentialFoam を使っても計算全体の収束性がよくなるとは限らないが、計算初期の圧力の代数方程式ソルバーの収束性が改善することがあり、計算時間を短縮できる可能性がある。 乱流諸量のフィールドファイルの作成RANS モデルで乱流計算を行う際、計算の途中で k-ε モデルから k-ω モデルやレイノルズ応力輸送モデルに切り替えたい場合がある。そのとき、k, epsilon ファイルから omega, R ファイルを用意するには、ポスト処理機能の turbulenceFields を用いる。 simpleFoam を用いる場合、つぎのようにする。 $ simpleFoam -postProcess -func "turbulenceFields(omega)" -latestTime オプションの "-latestTime" は最後の結果のみ処理するというものである。最後の時刻ディレクトリに "turbulenceProperties:omega" といったファイルができるので、必要であれば手動で omega などに名前を変更する。
注意: postProcess を実行する際は、乱流モデルを kEpsilon などにしておくこと。先に kOmega などに変更すると、ないファイルを読みに行くため実行に失敗する。 v3.0.x 以前であれば、標準ユーティリティの createTurbulenceFiels を用いることができる (v4.x や v5 にもあるが、中身は postProcess の呼び出しである)。ただし、非圧縮性流体ソルバーのケースにのみ対応している。 つぎのように実行する。 $ createTurbulenceFields -latestTime 圧縮性流体ソルバーのケースの場合は、constant/transportProperties を仮に用意してやれば createTurbulenceFields を実行できる。 | |
| PENGUINITIS | |