LoginSignup
3

More than 1 year has passed since last update.

OpenFOAM Tips

Last updated at Posted at 2020-11-16

はじめに

OpenFOAMのfunctionsについては、多数のサイトでまとめられています。とくにPnenguinitisはOpenFOAMerなら一度は訪れる高野山的な存在かと思います。

二番煎じ、三番煎じにはなろうかと思いますが、このページでは自分が調べたTipsやfunctionsをまとめてみました。
なお、ここでは主にFoundation版についてまとめていく予定です。

preProcess

boundaryをまとめて設定する方法

"(inlet|outlet)"
{
   type   fixedValue;
   value uniform (0 0 0);
}

のはずだが、Paraviewで確認すると、設定が反映されていない・・・(要確認)。

この面とこの面は個別設定して、残りはまとめて設定したときなどは、

".*"
{
   type   zeroGradient;
}

のようにすると良い。
また、この面とこの面は同じ設定、というシチュエーションでは、

inlet1 
{
   type   fixedValue;
   value   uniform (1 0 0);
}

inlet2
{
   $inlet1;
}

とすることにより、inlet1inlet2が同じ条件になる。

時間ディレクトリの一括削除

foamList -rm

メッシュ品質の確認

checkMesh -meshQuality

checkMeshのmaxNonOrtho, minimum pyraid volumeなどのパラメーター値を、system/meshQualityファイルで指定できるようになる。なお、同ファイルはfoamGet meshQualityで所望のケースディレクトリに持ってくることができます(コピー)。

なお、org版にはcheckMesh -writeAllFieldsというオプションがあり、これでメッシュ品質に関するデータをvtk形式で出力してくれる模様。
Foundation版で同じようなことができないか探してみたが、めぼしい情報に出会うことはなかった。ただ、ParaviewでMeshQuality Filterを使えば同じようなことはできます(品質の定義がOFとParaveiwとで異なるので、注意は必要)。

postProcess

残差

system/controlDict
functions
{
   #includeFunc residuals
}

system/controlDictに上記の記述を追記。workDirにpostProcessing/residuals/というディレクトリが作成され、その中にU, Pの残差のデータが保存されています。
solverを実行中に残差の推移を確認したい場合は、

foamMonitor -l ./postProcessing/residuals/0/residuals.dat

他方、終了後の残差の履歴を確認したい場合は、

postProcessing -l ./postProcessing/residuals/0/residuals.dat

とすれば別ウィンドウに残差のグラフが表示されます。
また、U, P以外の変数の残差を表示させたいときは、

system/controlDict
functions
{
   #includeFunc residuals(U, p, k, epsilon)
}

のように変数を指定すればよいです。

流量チェック

functions
{
   #includeFunc flowRatePatch(name=patchName, log=true)
}

粒子の衝突密度の算出

MPPICFoamなどの粒子輸送計算をする際に、壁面にどれだけ粒子が衝突・沈着するかを求めたい場合もあろうかと思います。
デフォルトでログファイルに各パッチでの衝突・沈着量が出力されていますが、より詳しく見たいというときは、粒子計算の設定ファイルであるconstant/kinematicCloudPropertiesに以下の設定を追記すれば良いです。

kinematicCloudProperties
cloudFunctions
{
        patchCollisionDensity1
        {
                type    patchCollisionDensity;
        }
}

これにより結果ディレクトリにkinematicCloud::collisionDensityというファイルが出力されるようになります。

probes

  • probes: 指定した変数の,指定した座標での値をエキスポート。セル間での補間有り。
  • internalProbes: 指定した変数の,指定した座標群での値をエキスポート。セル間での補間有り。多点用。v7以前のinternalCloudに相当。
  • 詳細はこちらで説明中。

grad

勾配の計算

postProcess -func "grad(<field>)"

Q criterion

Q値はparaviewでも計算することができますが、OF8のpostProcessにも用意されています。

postProcess -func Q

各時間ディレクトリ下にQ値のファイルが作られます。

計算の安定化

計算の安定化の話は、かなり奥が深いです。
こちらに概略ではありますが、まとめております。

最後に

未完な記事ではありますが、アップさせてもらいました。随時更新してく予定でいます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3