overInterDyMFoam
と overPimpleDyMFoam
は、どちらも Overset メッシュ(オーバーセットメッシュ)+ 動的メッシュ(DyM) に対応した OpenFOAM のソルバですが、
対象とする物理モデル が大きく異なります。この2つのモデルについてまとめておきます。
1. 共通点
- Overset mesh 対応
STLや他メッシュで作った移動物体を背景メッシュに重ねて計算できる。 - Dynamic mesh 対応
dynamicMeshDict
で指定した運動(移動・回転など)を伴う解析が可能。 - PIMPLE系ループ を持ち、非定常計算に強い。
2. 違いの概要
ソルバ名 | 主な物理モデル | 相関する通常版ソルバ | 主な用途 |
---|---|---|---|
overPimpleDyMFoam | 単相流(空気、水など1種類の流体)+非圧縮性または弱圧縮性 | pimpleDyMFoam | 空気流れ・水流れの物体周り解析(車、船、翼など) |
overInterDyMFoam | 二相流(例: 水+空気)+VOF法での界面追跡 | interDyMFoam | 船の波、自由液面を伴う撹拌槽、液体の跳ね、容器への注水など |
3. 計算モデルの違い
overPimpleDyMFoam
- 流体相は1種類のみ
- 圧力方程式: ∇⋅(U)=0 の非圧縮条件に基づく。
- 乱流モデルは
RAS
またはLES
を選択可能。 - 計算速度が速い(相界面計算がないため)。
overInterDyMFoam
- 流体相は2種類(
alpha
で体積率を管理) - 界面追跡はVOF(Volume of Fluid)法:
MULES
による界面の輸送式alpha.water
(水の体積率)などの場を計算できる。
- 圧力方程式は相の密度分布を考慮した形。
fvSchemes
でdivSchemes
にdiv(phi,alpha)
の設定が必要。
4. 使い分けの目安
迷った場合は、以下の判断でよいかと思います。
空気だけ・水だけ・油だけなど単相 → overPimpleDyMFoam
(例:回転する風車の空気流解析
水と空気の自由表面や液滴・波を扱う → overInterDyMFoam
oversetで物体が動く&二相流界面も動く → overInterDyMFoam 一択
(例:水中を動く潜水艦、液面をかき混ぜる攪拌翼)
5. 設定ファイル面の違い
設定ファイル※constantフォルダー内の設定
・overInterDyMFoam では constant/phaseProperties
または transportProperties
に2相の物性(密度・粘度)を記載。
・overPimpleDyMFoam では transportProperties
に単相の物性のみ記載。
システムファイルの設定
・overInterDyMFoam は alpha
関連の境界条件・初期条件が必要(setFieldsDict
で初期水位などを設定)。
・overPimpleDyMFoam には alpha
フィールドはない。
変数
・overInterDyMFoamには、alphaの初期条件が必要です。また、二相流(例:水+空気)を扱い、密度が場所によって変わるため、「p_rgh」という値を扱います。
p_rghとは?
定義は、p_rgh=p(絶対圧又はゲージ圧)−ρgh(静水圧成分)であり、p_rghは「動圧」を示す値です。
圧力方程式の中には静水圧 ρgh が自然に現れます。
overInterDyMFoamでは、静水圧力を含めたまま解くと、水深が深いケースでは静水圧成分が支配的になり、数値的に非常に大きな値(例:数万Pa)を計算することになります。
動的な変化はその大きな値に対してごくわずか(数Pa〜数百Pa)なので、丸め誤差や収束悪化が起きやすくなります。
そこで 静水圧成分を予め除去した変数 p_rgh
を直接解くことで、数値安定性と精度を向上させます。
p_rgh
と p
の関係
- ソルバ内部では、主に
p_rgh
を未知数として解きます。その為、設定ファイルには0/p_rgh
が必須で、0/p
は必須ではない場合が多いです。もし、結果出力時にp
が必要なら、ソルバが計算して出力します。