はじめに
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;
}
とすることにより、inlet1とinlet2が同じ条件になる。
時間ディレクトリの一括削除
foamList -rm
メッシュ品質の確認
checkMesh -meshQuality
checkMeshのmaxNonOrtho, minimum pyraid volumeなどのパラメーター値を、system/meshQuality
ファイルで指定できるようになる。なお、同ファイルはfoamGet meshQuality
で所望のケースディレクトリに持ってくることができます(コピー)。
なお、org版にはcheckMesh -writeAllFields
というオプションがあり、これでメッシュ品質に関するデータをvtk形式で出力してくれる模様。
Foundation版で同じようなことができないか探してみたが、めぼしい情報に出会うことはなかった。ただ、ParaviewでMeshQuality
Filterを使えば同じようなことはできます(品質の定義がOFとParaveiwとで異なるので、注意は必要)。
postProcess
残差
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以外の変数の残差を表示させたいときは、
functions
{
#includeFunc residuals(U, p, k, epsilon)
}
のように変数を指定すればよいです。
流量チェック
functions
{
#includeFunc flowRatePatch(name=patchName, log=true)
}
粒子の衝突密度の算出
MPPICFoamなどの粒子輸送計算をする際に、壁面にどれだけ粒子が衝突・沈着するかを求めたい場合もあろうかと思います。
デフォルトでログファイルに各パッチでの衝突・沈着量が出力されていますが、より詳しく見たいというときは、粒子計算の設定ファイルであるconstant/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値のファイルが作られます。
計算の安定化
計算の安定化の話は、かなり奥が深いです。
こちらに概略ではありますが、まとめております。
最後に
未完な記事ではありますが、アップさせてもらいました。随時更新してく予定でいます。