OpenFOAM乱流モデル
理論:乱流モデルの設定に必要なもの
概要
OpenFOAMで乱流モデルを使うと、ファイルがたくさん増えて戸惑います。何を決めればよいのですか?
決めることは3つ、モデル、入口の乱流量、壁の扱いだ。モデルはconstant/momentumTransportで選び、RANSならkOmegaSSTかkEpsilon系が多い。モデルが決まると、解く量(kとω、またはkとε)が決まり、0フォルダにそれぞれの初期値と境界条件のファイルが必要になる。入口の乱流量は、測定値がなければ乱れ強さと長さスケールから計算する。これを適当にすると、入口付近の渦粘性が桁違いになり、流れの広がりやはく離の位置が変わる。壁では、第1セルのy+に合わせて壁関数(nutkWallFunctionなど)か、壁まで解く扱いを選ぶ。nutのファイルはモデルが計算するので、内部の値は0でよいが、壁の境界条件は必ず指定する。
入口の乱流量
U は流速、I は乱れ強さ、l は乱れの長さスケール、D_h は水力直径、C_μ = 0.09、ν_t は渦粘性。
2つのモデルを継ぎ合わせたSST
いま最も広く使われるk-ω SSTモデルは、1994年にNASAのFlorian Menterが発表した。壁の近くで優れるWilcoxのk-ωモデルと、自由流での入口条件に敏感でないk-εモデルを、壁からの距離で滑らかに切り替え、さらに逆圧力勾配でせん断応力を制限する工夫(SST:Shear Stress Transport)を加えた。航空機の翼のはく離予測を改善するために作られたモデルが、今では産業界の標準的な選択肢になっている。
計算例
表はCμ = 0.09のk-ε型の入口尺度。SSTのν_tはせん断応力リミターで異なり、表のν_tがそのままSSTの解になるわけではない。l = 0.07D_hも測定がない場合の仮定で、D_hを用いること自体が常に誤りではない。設定名はFoundation/OpenCFDと版で異なる。
例:流速10 m/s・水力直径0.1 mの空気の入口
| 条件 | k [m²/s²] | ε [m²/s³] | ω [1/s] | 渦粘性比 ν_t/ν |
|---|---|---|---|---|
| I = 5%、l = 0.07D_h | 0.375 | 5.39 | 160 | 157 |
| I = 5%、l = D_h(比較仮定) | 0.375 | 0.377 | 11.2 | 2,236 |
| I = 1%(低乱れ) | 0.015 | 0.043 | 31.9 | 31 |
| I = 10%(高乱れ) | 1.50 | 43.1 | 319 | 313 |
長さスケールを水力直径そのものにすると、kは同じでもεとωが約14分の1になり、渦粘性が14倍に膨らむ。乱れ強さの目安は、風洞のような整った流れで1%以下、管路の発達した流れで5%程度、ファンや弁の下流で10%以上。
入口の乱流量を変えても、下流の結果がほとんど変わりません。気にしなくてよいのでしょうか?
場合による。壁に沿って流れが発達する管路の奥のように、乱れが壁で作られる所では、入口の値の影響は数十直径も進めばほぼ消える。一方、入口の近く、噴流や混合層、はく離した流れの再付着、物体のまわりの外部流れでは、入口の乱れが結果を大きく左右する。特に外部流れでは、入口から物体までの間で自由流の乱れが減衰していくので、入口でI = 5%と与えても物体の位置ではずっと小さくなることがある。物体の位置で意図した乱れになっているかを、kの分布で確かめよう。k-ω系のモデルは自由流のωに敏感なことが知られていて、SSTはそれを和らげるために作られたが、それでも入口の値は根拠をもって決めるべきだ。
実務での進め方
- 流れの性質(壁に沿う・はく離・噴流)からモデルを選ぶ。迷ったらkOmegaSST。
- 入口の乱れ強さと長さスケールを決め、k・ω(ε)を計算するか自動計算の境界条件を使う。
- 壁のy+を見積もってメッシュを作り、壁関数か壁面解像かを決める。
- 計算後にy+と渦粘性比の分布を確かめ、不自然な値がないかを見る。
- 実験値や別のモデルと比べ、結果がモデルにどれだけ依存するかを把握する。
「渦粘性比を見る習慣」
計算結果でnut(渦粘性)を分子粘性で割った渦粘性比を表示すると、設定の誤りがよく見つかる。入口のすぐ下流で比が数千になっていれば入口条件の誤り、物体のまわりで異常に大きければ自由流の値が不適切、壁の近くで大きければ壁の扱いの問題を疑う。速度や圧力の図だけでは気づきにくい誤りが、渦粘性比の図では一目で分かることが多い。
よくある間違い
間違いと対策
| 間違い | 起きること | 対策 |
|---|---|---|
| 入口長さスケールに根拠がない | ε・ω・渦粘性が変わる | 測定・流れ条件と感度を確認 |
| k・ωを経験なしで決める | 入口付近の流れが不自然 | 乱れ強さから計算 |
| y+と壁関数が不整合 | 摩擦・熱伝達の誤差 | y+を確認 |
| 壁のnut条件を忘れる | 壁の扱いが働かない | nutkWallFunction等を指定 |
| 自由流の乱れの減衰を無視 | 物体位置の乱れが小さすぎ | kの分布で確認 |
関連する内容も知りたいです。
関連するページはSST k-ωモデル(Menter)、標準k-εモデル、OpenFOAMメッシュ生成、OpenFOAM入門、OpenFOAM後処理が参考になる。
よくある質問
OpenFOAMで乱流モデルはどこで設定しますか?
constant/momentumTransport(古い版ではturbulenceProperties)で、simulationTypeをRAS・LESなどに、modelをkOmegaSST・kEpsilon・realizableKEなどに指定します。モデルに応じて0フォルダにk、epsilonまたはomega、nutの初期・境界条件のファイルが必要で、壁にはkqRWallFunctionやnutkWallFunctionなどの壁関数を与えます。
入口のkやωはどう決めますか?
乱れ強さIと長さスケールlから計算します。k = 1.5(UI)²、ε = Cμ^0.75 k^1.5/l、ω = k^0.5/(Cμ^0.25 l)で、管路ならlは水力直径の約0.07倍です。流速10 m/s・I = 5%・水力直径0.1 mなら、k = 0.375 m²/s²、ε = 5.39 m²/s³、ω = 160 1/sです。OpenFOAMにはturbulentIntensityKineticEnergyInletやturbulentMixingLengthFrequencyInletといった、これを自動で計算する境界条件もあります。
どの乱流モデルを選べばよいですか?
まず標準的なのはkOmegaSSTで、壁の近くでk-ω、離れた所でk-εのように振る舞い、はく離を含む流れに比較的強いです。単純な管路や外部流れの概算ならkEpsilonやrealizableKEも使われます。モデルを選んだら、壁のy+をモデルの壁の扱いに合わせることが同じくらい重要です。
参考資料・検算の位置づけ
掲載値は本文の仮定に基づく教育用の参考計算。資料は理論・設定の参照先であり、本記事の数値を各ソフトで再現した証明ではない。設計・製造の判断には対象条件での検証が必要。
関連トピック
なった
詳しく
報告