標準k-εモデル
理論と物理
概要
先生、標準k-εモデルって乱流の世界では一番有名なモデルですよね? 改めて基礎から教えてもらえますか?
LaunderとSpalding(1974)が提案した2方程式乱流モデルだ。乱流エネルギー $k$ とその散逸率 $\varepsilon$ の輸送方程式を解く。工業CFDで最も広く使われてきた歴史がある。
2方程式モデルっていうのは、$k$ と $\varepsilon$ の2つの方程式を解くからですか?
その通り。渦粘性仮説(Boussinesq仮説)に基づいて、レイノルズ応力テンソルを渦粘性係数 $\mu_t$ で近似する。つまりこういう形だ。
輸送方程式
$k$ と $\varepsilon$ それぞれの輸送方程式はどんな形になるんですか?
まず乱流エネルギー $k$ の方程式だ。
次に散逸率 $\varepsilon$ の方程式だ。
ここで渦粘性は以下で定義される。
生成項 $P_k$ は平均ひずみ速度テンソル $S_{ij}$ を使って次のように書く。
モデル定数
各定数の標準値を教えてください。
標準k-εモデルの定数は以下の通りだ。これらはLaunder-Spaldingが一様等方乱流の減衰データや対数則などから決定した値だ。
| 定数 | 値 | 決定根拠 |
|---|---|---|
| $C_\mu$ | 0.09 | 対数則領域での整合性 |
| $C_{\varepsilon 1}$ | 1.44 | 一様せん断流の実験 |
| $C_{\varepsilon 2}$ | 1.92 | 格子乱流の減衰実験 |
| $\sigma_k$ | 1.0 | 乱流拡散の経験値 |
| $\sigma_\varepsilon$ | 1.3 | 乱流拡散の経験値 |
これらの定数って変えちゃダメなんですか?
原則として変更しないのが基本だ。ただし、$C_{\varepsilon 1}$ はラウンドジェットの拡がり率を合わせるために1.60に変更する「ラウンドジェット補正」が知られている。この辺は実務でも時々使う知識だ。
強みと弱み
標準k-εの得意・不得意を整理してもらえますか?
強み:
- ロバストで収束しやすい
- 工業的な内部流れ(配管、ダクト)で実績豊富
- 計算コストが低い
- 初期条件の設定が容易(乱流強度とスケールから $k$, $\varepsilon$ を算出)
弱み:
- 旋回流・曲率の強い流れで乱流エネルギーを過大予測
- 逆圧力勾配下の剥離を正確に捉えられない
- 壁面近傍では壁関数が必要(標準モデルは高Reynolds数型)
- 等方渦粘性仮説の限界で強い異方性乱流に不向き
旋回流で過大予測するのはなぜですか?
$C_\mu$ が定数0.09に固定されているからだ。旋回や曲率が強い領域では実効的な $C_\mu$ はもっと小さくなるべきなんだが、標準モデルではそれを反映できない。これがRealizable k-εモデルで改良された点だ。
C_μ=0.09という数字の重み——LaunderとSpalding の執念
標準k-εモデルの定数C_μ=0.09は、1972年にBrian LaunderとD. B. Spaldingが発表した論文で提案された値です。この数字は理論的に導出されたわけではなく、管内乱流・境界層・後向きステップなど複数の実験データに対して地道にフィッティングして決められました。当時はスパコンも存在せず、数値計算はパンチカードのバッチ処理。何日も待って返ってきた結果を見ながら定数を微調整した、という話が残っています。この執念のキャリブレーション作業があったからこそ、半世紀後の今も「まずk-ε」と言われる信頼感が生まれたわけです。
各項の物理的意味
- 時間項 $\partial(\rho\phi)/\partial t$:蛇口をひねった瞬間を思い浮かべてください。最初は水がバタバタと不安定に出て、しばらくすると安定した流れになりますよね? この「変化している最中」を記述するのが時間項です。心臓の拍動で血流が脈打つのも、エンジンのバルブが開閉するたびに流れが変動するのも、すべて非定常現象。では定常解析とは? 「十分時間が経って流れが落ち着いた後」だけを見る——つまりこの項をゼロにする。計算コストが大幅に下がるため、まず定常で解いてみるのがCFDの基本戦略です。
- 対流項 $\nabla \cdot (\rho \mathbf{u} \phi)$:川に落ち葉を落としたらどうなりますか? 流れに乗って下流に運ばれますよね。これが「対流」——流体の動きが物を運ぶ効果です。暖房の温風が部屋の端まで届くのも、空気という「運び屋」が熱を対流で輸送しているから。ここが面白いところ——この項は「速度×速度」を含むため非線形です。つまり、流れが速くなるとこの項が急激に強くなり、制御が難しくなる。これが乱流の根本原因です。よくある勘違い:「対流と伝導は同じようなもの」→ 全然違います! 対流は流れが運ぶ、伝導は分子が伝える。桁違いの効率差があります。
- 拡散項 $\nabla \cdot (\Gamma \nabla \phi)$:コーヒーにミルクを入れて放置したことはありますか? かき混ぜなくても、しばらく経つと自然に混ざりますよね。あれが分子拡散です。では次の質問——ハチミツとお水、どちらが流しやすいですか? 当然お水ですよね。ハチミツは粘性($\mu$)が高いから流れにくい。粘性が大きいと拡散項が強くなり、流体は「もったりした」動きになります。レイノルズ数が小さい流れ(ゆっくり、ドロドロ)では拡散が支配的。逆にRe数が大きい流れでは対流が圧倒し、拡散は脇役になります。
- 圧力項 $-\nabla p$:注射器のピストンを押すと、液体が針先から勢いよく出ますよね? なぜでしょう? ピストン側が高圧、針先が低圧——この圧力差が流体を押す力になるからです。ダムの放水も同じ原理。天気図で等圧線がギュッと密になっている場所では? そう、強風が吹きます。「圧力差があるところに流れが生まれる」——これがナビエ-ストークス方程式の圧力項の物理的意味。ここでの勘違いポイント:CFDの「圧力」は絶対圧ではなくゲージ圧のことが多い。圧縮性解析に切り替えたとたんに結果がおかしくなる場合、絶対圧/ゲージ圧の混同が原因かもしれません。
- ソース項 $S_\phi$:暖められた空気が上に昇る——なぜでしょう? 周囲より軽く(密度が低く)なったから、浮力で押し上げられるのです。この浮力はソース項として方程式に追加されます。他にも、ガスコンロの炎で化学反応熱が発生する、工場の電磁ポンプで金属溶湯にローレンツ力がかかる…これらはすべて「外部から流体にエネルギーや力を注入する」作用であり、ソース項で表現します。ソース項を忘れるとどうなるか? 自然対流の解析で浮力を入れ忘れると、流体は一切動かない——冬の部屋で暖房をつけたのに暖かい空気が上に行かない、という物理的にありえない結果になります。
仮定条件と適用限界
- 連続体仮定:クヌッセン数 Kn < 0.01(分子平均自由行程 ≪ 代表長さ)で成立
- ニュートン流体仮定:せん断応力と歪み速度が線形関係(非ニュートン流体では粘度モデルが必要)
- 非圧縮性仮定(Ma < 0.3の場合):密度を一定として扱う。マッハ数0.3以上では圧縮性効果を考慮
- ブシネスク近似(自然対流):密度変化を浮力項のみで考慮し、他の項では一定密度を使用
- 適用外ケース:希薄気体(Kn > 0.1)、超音速・極超音速流れ(衝撃波捕捉が必要)、自由表面流れ(VOF/Level Set等が必要)
次元解析と単位系
| 変数 | SI単位 | 注意点・換算メモ |
|---|---|---|
| 速度 $u$ | m/s | 入口条件で体積流量から換算する際、断面積の単位に注意 |
| 圧力 $p$ | Pa | ゲージ圧と絶対圧の区別。圧縮性解析では絶対圧を使用 |
| 密度 $\rho$ | kg/m³ | 空気: 約1.225 kg/m³@20°C、水: 約998 kg/m³@20°C |
| 粘性係数 $\mu$ | Pa·s | 動粘性係数 $\nu = \mu/\rho$ [m²/s] との混同に注意 |
| レイノルズ数 $Re$ | 無次元 | $Re = \rho u L / \mu$。層流/乱流遷移の判定指標 |
| CFL数 | 無次元 | $CFL = u \Delta t / \Delta x$。時間刻みの安定性に直結 |
数値解法と実装
有限体積法による離散化
標準k-εの輸送方程式をCFDソルバーでどうやって解くのか教えてください。
CFDでは有限体積法(FVM)が標準だ。$k$ と $\varepsilon$ の輸送方程式をセル体積で積分し、Gaussの発散定理でフェイス上のフラックスに変換する。一般的な離散化スキームの選択はこうなる。
| 項 | 推奨スキーム | 備考 |
|---|---|---|
| 対流項 | 2次風上(Second Order Upwind) | 数値拡散を抑制 |
| 拡散項 | 中心差分 | 2次精度が標準 |
| 時間項(非定常) | 2次陰解法 | 安定性と精度の両立 |
1次風上じゃダメなんですか?
1次風上は数値拡散が大きく、乱流場の予測精度が著しく低下する。特に剥離領域やせん断層で問題になる。ただし収束が難しい場合に初期数イテレーションだけ1次風上で回してから2次に切り替える手法は実務でよく使う。
SIMPLE系アルゴリズムとの連成
圧力-速度連成とk-ε方程式の関係はどうなってますか?
SIMPLE、SIMPLEC、PISO等の圧力ベースソルバーでは、1反復の中で以下の順序で解く。
1. 運動量方程式を解く(速度場の仮更新)
2. 圧力補正方程式を解く
3. 速度・圧力を補正
4. $k$ 方程式を解く
5. $\varepsilon$ 方程式を解く
6. $\mu_t$ を更新
7. 収束判定 → 未収束なら1へ戻る
$k$ と $\varepsilon$ は分離解法(segregated)で順に解くのが標準だ。密度ベースソルバー(coupled)では全変数を同時に解くこともある。
緩和係数の設定
緩和係数って重要ですか?
非常に重要だ。標準k-εモデルでの推奨Under-Relaxation Factor(URF)はこんな感じだ。
| 変数 | 推奨URF(定常) | 備考 |
|---|---|---|
| 圧力 | 0.3 | 収束が遅ければ0.2に下げる |
| 運動量 | 0.7 | |
| $k$ | 0.8 | |
| $\varepsilon$ | 0.8 | |
| 乱流粘性比 | 1.0 | 通常変更不要 |
$k$ や $\varepsilon$ の緩和を下げすぎるとどうなりますか?
収束が極端に遅くなる。また $\mu_t$ の更新が遅れるので、速度場との整合がとれず振動することがある。どうしても発散する場合は $\varepsilon$ のURFだけ0.5程度に下げるのが一つの手だ。
境界条件
入口の乱流境界条件はどう設定するんですか?
乱流強度 $I$ と乱流長さスケール $l$ (または水力直径 $D_H$)から算出するのが一般的だ。
$$ k = \frac{3}{2}(U_{avg} \cdot I)^2 $$
$$ \varepsilon = C_\mu^{3/4}\frac{k^{3/2}}{l}, \quad l \approx 0.07 D_H $$
配管内部流れなら乱流強度 $I = 5\%$ 程度が目安。外部流れのファーフィールドでは $I = 0.1\sim1\%$ と小さめにとる。乱流粘性比 $\mu_t/\mu$ を直接指定する方法もある(一般的に1〜10)。
Coffee Break よもやま話
壁近傍のy+管理——現場エンジニアが最初にハマる罠
k-εモデルの数値実装で新人エンジニアが必ずつまずくのが、壁近傍メッシュのy+管理です。標準k-εは壁関数を前提とするため、最初のセルが粘性底層に入り込むと(y+<30)結果が大きく狂います。筆者の知人は自動車エンジンルームの熱流体解析で、y+=5のメッシュを使って散々な結果を出したあと、壁関数の適用範囲を調べ直してやり直した、という苦い経験を持っています。「k-εを使うならy+は30〜300に収める」——これは実務での鉄則です。
風上差分(Upwind)
1次風上: 数値拡散が大きいが安定。2次風上: 精度向上するが振動のリスク。高レイノルズ数流れでは必須。
中心差分(Central Differencing)
2次精度だが、Pe数 > 2で数値振動が発生。低レイノルズ数の拡散支配流れに適する。
TVDスキーム(MUSCL、QUICK等)
リミッタ関数により数値振動を抑制しつつ高精度を維持。衝撃波や急勾配の捕捉に有効。
有限体積法 vs 有限要素法
FVM: 保存則を自然に満足。CFDの主流。FEM: 複雑形状・マルチフィジックスに有利。SPH等のメッシュフリー法も発展中。
CFL条件(クーラン数)
陽解法: CFL ≤ 1が安定条件。陰解法: CFL > 1でも安定だが、精度と反復回数に影響。LES: CFL ≈ 1を推奨。物理的意味: 1タイムステップで情報が1セル以上進まないこと。
残差モニタリング
連続の式・運動量・エネルギーの各残差が3〜4桁低下で収束と判断。質量保存の残差は特に重要。
緩和係数
圧力: 0.2〜0.3、速度: 0.5〜0.7が一般的な初期値。発散する場合は緩和係数を下げる。収束後は上げて加速。
非定常計算の内部反復
各タイムステップ内で定常解に収束するまで反復。内部反復数: 5〜20回が目安。残差がタイムステップ間で変動する場合は時間刻みを見直す。
SIMPLE法のたとえ
SIMPLE法は「交互に調整する」手法。まず速度を仮に求め(予測ステップ)、その速度で質量保存が満たされるよう圧力を補正し(補正ステップ)、補正された圧力で速度を修正する——このキャッチボールを繰り返して正解に近づく。2人で棚を水平にする作業に似ている:片方が高さを合わせ、もう片方がバランスを取り、これを交互に繰り返す。
風上差分のたとえ
風上差分は「川の流れに立って上流の情報を重視する」手法。川の中にいる人が下流を見ても水の出所は分からない——上流の情報が下流を決めるという物理を反映した離散化手法。精度は1次だが、流れの方向を正しく捕捉するため安定性が高い。
入口の乱流境界条件はどう設定するんですか?
乱流強度 $I$ と乱流長さスケール $l$ (または水力直径 $D_H$)から算出するのが一般的だ。
配管内部流れなら乱流強度 $I = 5\%$ 程度が目安。外部流れのファーフィールドでは $I = 0.1\sim1\%$ と小さめにとる。乱流粘性比 $\mu_t/\mu$ を直接指定する方法もある(一般的に1〜10)。
壁近傍のy+管理——現場エンジニアが最初にハマる罠
k-εモデルの数値実装で新人エンジニアが必ずつまずくのが、壁近傍メッシュのy+管理です。標準k-εは壁関数を前提とするため、最初のセルが粘性底層に入り込むと(y+<30)結果が大きく狂います。筆者の知人は自動車エンジンルームの熱流体解析で、y+=5のメッシュを使って散々な結果を出したあと、壁関数の適用範囲を調べ直してやり直した、という苦い経験を持っています。「k-εを使うならy+は30〜300に収める」——これは実務での鉄則です。
風上差分(Upwind)
1次風上: 数値拡散が大きいが安定。2次風上: 精度向上するが振動のリスク。高レイノルズ数流れでは必須。
中心差分(Central Differencing)
2次精度だが、Pe数 > 2で数値振動が発生。低レイノルズ数の拡散支配流れに適する。
TVDスキーム(MUSCL、QUICK等)
リミッタ関数により数値振動を抑制しつつ高精度を維持。衝撃波や急勾配の捕捉に有効。
有限体積法 vs 有限要素法
FVM: 保存則を自然に満足。CFDの主流。FEM: 複雑形状・マルチフィジックスに有利。SPH等のメッシュフリー法も発展中。
CFL条件(クーラン数)
陽解法: CFL ≤ 1が安定条件。陰解法: CFL > 1でも安定だが、精度と反復回数に影響。LES: CFL ≈ 1を推奨。物理的意味: 1タイムステップで情報が1セル以上進まないこと。
残差モニタリング
連続の式・運動量・エネルギーの各残差が3〜4桁低下で収束と判断。質量保存の残差は特に重要。
緩和係数
圧力: 0.2〜0.3、速度: 0.5〜0.7が一般的な初期値。発散する場合は緩和係数を下げる。収束後は上げて加速。
非定常計算の内部反復
各タイムステップ内で定常解に収束するまで反復。内部反復数: 5〜20回が目安。残差がタイムステップ間で変動する場合は時間刻みを見直す。
SIMPLE法のたとえ
SIMPLE法は「交互に調整する」手法。まず速度を仮に求め(予測ステップ)、その速度で質量保存が満たされるよう圧力を補正し(補正ステップ)、補正された圧力で速度を修正する——このキャッチボールを繰り返して正解に近づく。2人で棚を水平にする作業に似ている:片方が高さを合わせ、もう片方がバランスを取り、これを交互に繰り返す。
風上差分のたとえ
風上差分は「川の流れに立って上流の情報を重視する」手法。川の中にいる人が下流を見ても水の出所は分からない——上流の情報が下流を決めるという物理を反映した離散化手法。精度は1次だが、流れの方向を正しく捕捉するため安定性が高い。
実践ガイド
適用場面の選定
標準k-εモデルが本当に向いている問題って具体的にどういうものですか?
以下のような場面で信頼性が高い。
逆に避けるべきケースは以下だ。
- 翼型の剥離予測 → SST k-ωを使う
- サイクロン・旋回バーナー → Realizable k-εかRSM
- 壁面熱伝達の精密評価 → 低Re型モデルか壁面解像メッシュ
メッシュ要件
標準k-εモデルではメッシュをどう作ればいいですか?
壁関数を前提とするので、壁面第1セルの $y^+$ を30〜300の範囲に入れる必要がある。これが最も重要なポイントだ。
| $y^+$ 範囲 | 状態 | 対処 |
|---|---|---|
| < 11.2 | 粘性底層に入っている | メッシュが細かすぎ。Enhanced Wall Treatmentに切替えるか、メッシュを粗くする |
| 30〜300 | 対数則領域 | 適切。標準壁関数が有効 |
| > 300 | 対数則の外 | メッシュが粗すぎ。壁面を細分化 |
壁面以外のメッシュ密度はどのくらい必要ですか?
せん断層や再循環領域の近傍は十分な解像度が必要だ。メッシュ独立性を確認するために、粗・中・密の少なくとも3水準でGCI(Grid Convergence Index)を評価するのが望ましい。
初期条件と収束テクニック
計算がなかなか収束しないとき、どうすればいいですか?
実務でよく使うテクニックを整理しよう。
1. 段階的立ち上げ: まず1次風上で100〜200反復回して安定させてから2次風上に切り替える
2. 初期場: $k$ と $\varepsilon$ の初期値を適切に設定。$\mu_t/\mu \approx 10$ を目安にする
3. Courant数制限: 圧力ベースでは200程度、発散気味なら下げる
4. $\varepsilon$ の下限: $\varepsilon$ が0や負になるとクラッシュする。最低値リミッターを確認
非定常計算のときはどうですか?
非定常の場合、時間刻みが重要だ。CFL数を主流域で1以下にするのが安全。各時間ステップ内で20〜30サブイテレーションを回し、残差が2〜3桁落ちることを確認する。
「とりあえずk-ε」が通じる理由——工場設備解析の現場から
プラント配管の流体解析を専門とするある設計事務所では、毎年100件以上の解析を受注しますが、そのほぼ全件に標準k-εを使います。「SST使えばいいのでは?」と若手が提案しても、「客先に検証実績を示せるか?」と返ってくる。標準k-εはANSYS、OpenFOAM、STARいずれでも20年以上の産業事例があり、計算コストも低い。結果の説明責任を持つ実務では「信頼の実績」が最優先で、モデル精度の微差よりもはるかに重要視されることがあります。
解析フローのたとえ
CFDの解析フローは「水族館の水槽を設計する」感覚で考えてみてください。まず水槽の形を決め(計算領域)、水の入り口と出口を設計し(境界条件)、ポンプの強さを設定する(流量条件)。魚がどう泳ぐか見たければ粒子追跡。水温が気になれば熱解析を追加。…どうですか? 意外と直感的ではありませんか?
初心者が陥りやすい落とし穴
「y+って何ですか?」——この質問が出たら要注意。壁面近くのメッシュ解像度を表すy+は、CFDの結果精度を左右する最重要パラメータの1つ。壁関数を使うなら30〜300、壁を完全に解像するなら1以下。これを確認せずに「摩擦抵抗が合わない!」と悩む人がとても多い。体温計の先端をちゃんと脇に挟まないで「熱がないのに37.5度って出た!」と慌てているようなものです。
境界条件の考え方
入口の境界条件は「蛇口をどのくらい開けるか」と同じ。ちょろちょろ出すか(低速)、全開にするか(高速)。でもCFDではもう一つ——「どのくらい暴れた水を出すか」(乱流強度)も指定する必要があります。蛇口の開け方を間違えると、下流のシンク全体の流れが変わりますよね? CFDでも入口条件のミスは下流全体に波及します。
ソフトウェア比較
Ansys Fluent
Fluentで標準k-εモデルを設定する手順を教えてください。
Fluent GUIでの設定手順はこうだ。
Fluentで標準k-εモデルを設定する手順を教えてください。
Fluent GUIでの設定手順はこうだ。
1. Models → Viscous → k-epsilon (2 eqn) を選択
2. k-epsilon Model で Standard を選ぶ
3. Near-Wall Treatment で Standard Wall Functions を選ぶ
4. Model Constants はデフォルト値のまま($C_\mu=0.09$, $C_{\varepsilon 1}=1.44$, $C_{\varepsilon 2}=1.92$)
TUIコマンドなら以下だ。
```
/define/models/viscous/ke-standard yes
/define/models/viscous/near-wall-treatment/standard-wall-fn yes
```
Fluentの壁関数オプションの違いは何ですか?
Fluentでは3種類ある。
| 壁関数 | $y^+$ 要件 | 特徴 |
|---|---|---|
| Standard Wall Functions | 30〜300 | Launder-Spalding。最も基本 |
| Scalable Wall Functions | 任意 | $y^+<11.2$ の場合に補正 |
| Enhanced Wall Treatment | $y^+ \approx 1$ | 2層モデル。壁面解像メッシュが必要 |
Ansys CFX
CFXではどう設定しますか?
CFX-Preで Domain → Fluid Models → Turbulence → k-Epsilon を選択する。CFXはデフォルトでScalable Wall Functionを使うので、$y^+$ が小さくなっても自動対応する。CCLで書くとこうだ。
CFXではどう設定しますか?
CFX-Preで Domain → Fluid Models → Turbulence → k-Epsilon を選択する。CFXはデフォルトでScalable Wall Functionを使うので、$y^+$ が小さくなっても自動対応する。CCLで書くとこうだ。
```
TURBULENCE MODEL:
Option = k-Epsilon
END
```
OpenFOAM
OpenFOAMでの設定方法は?
constant/turbulenceProperties に以下を記述する。
OpenFOAMでの設定方法は?
constant/turbulenceProperties に以下を記述する。
```
simulationType RAS;
RAS
{
RASModel kEpsilon;
turbulence on;
printCoeffs on;
}
```
壁面境界条件は 0/ ディレクトリで各変数に設定する。
```
// 0/k の壁面パッチ
wall
{
type kqRWallFunction;
value uniform 0.1;
}
// 0/epsilon の壁面パッチ
wall
{
type epsilonWallFunction;
value uniform 10;
}
// 0/nut の壁面パッチ
wall
{
type nutkWallFunction;
value uniform 0;
}
```
STAR-CCM+
STAR-CCM+ではどうですか?
Physics Continuum で以下を選択する。
STAR-CCM+ではどうですか?
Physics Continuum で以下を選択する。
1. Turbulent → RANS
2. K-Epsilon Turbulence → Standard K-Epsilon
3. Wall Treatment → High y+ Wall Treatment(壁関数使用時)
STAR-CCM+ではAll y+ Wall Treatmentも選べる。これは $y^+$ の値に応じて壁関数と壁面解像を自動的にブレンドする。
同じk-εでも結果が違う——ソルバー移行の落とし穴
あるメーカーがFluent解析をSTAR-CCM+に切り替えたとき、同じ「標準k-εモデル」を選んだはずなのに圧力損失の計算値が10%以上ずれた、という事例があります。調べると、壁関数の実装(enhanced wall treatmentの有無)と低Reynolds数補正フラグの初期値が異なっていた。ソルバー間のk-εは「名前は同じでも中身が少し違う」ことが多く、移行時には同一ジオメトリ・同一境界条件で結果を比較検証するステップが欠かせません。
選定で最も重要な3つの問い
- 「何を解くか」:標準k-εモデルに必要な物理モデル・要素タイプが対応しているか。例えば、流体ではLES対応の有無、構造では接触・大変形の対応能力が差になる。
- 「誰が使うか」:初心者チームならGUIが充実したツール、経験者ならスクリプト駆動の柔軟なツールが適する。自動車のAT車(GUI)とMT車(スクリプト)の違いに似ている。
- 「どこまで拡張するか」:将来の解析規模拡大(HPC対応)、他部門への展開、他ツールとの連携を見据えた選択が長期的なコスト削減につながる。
先端技術
k-εモデルファミリーの比較
標準k-εの改良版にはどんなものがありますか?
k-εファミリーの主要3モデルを比較しよう。
| 項目 | Standard | RNG | Realizable |
|---|---|---|---|
| $C_\mu$ | 0.09(定数) | 0.0845(RNG導出) | 可変 $C_\mu(S,\Omega)$ |
| $\varepsilon$ 方程式 | 標準形 | $R$ 項追加 | 新しい $\varepsilon$ 方程式 |
| 旋回流 | 不得意 | やや改善 | 大幅に改善 |
| 低Re効果 | なし | 微分粘性モデル | なし |
| 現在の推奨度 | 低 | 中 | 高 |
標準k-εってもう使わない方がいいんですか?
既存のバリデーション結果や過去の計算との一貫性を保つ場合には使う意味がある。新規の解析なら、Realizable k-εかSST k-ωを第一選択にすることを勧める。
乱流粘性比のリミッター
$\mu_t/\mu$ が異常に大きくなることがあると聞きましたが。
k-εモデルでは $\mu_t = \rho C_\mu k^2/\varepsilon$ なので、$\varepsilon$ が小さくなると $\mu_t$ が爆発的に増加する。多くのソルバーでは $\mu_t/\mu$ に上限リミッター(デフォルトで $10^5$ 程度)を設けている。
FluentではTUIで確認・変更できる。
```
/define/models/viscous/turbulence-expert/turb-viscosity-ratio-limit
```
k-εモデルのPINN/機械学習による補正
最近の研究動向はどうなっていますか?
データ駆動型の乱流モデル補正が盛んに研究されている。k-εモデルの枠組みを維持しつつ、以下のようなアプローチが試みられている。
- フィールド反転と機械学習(FIML): DNS/LESデータから $\beta$ 補正場を学習し、$P_k$ を $\beta \cdot P_k$ に置き換える
- テンソル基底ニューラルネットワーク(TBNN): レイノルズ応力の非線形項を不変量とテンソル基底の関数として学習
- $C_\mu$ の局所適応化: 流れ場の特徴量に基づいて $C_\mu$ を局所的に変化させる
これらは商用ソルバーで使えますか?
現時点ではまだ研究段階のものが多い。ただしFluent 2024以降ではUDF経由でカスタム乱流モデルの組み込みが容易になっているし、OpenFOAMならソースコード修正で直接実装できる。
k-εの「変形体」はなぜこれほど多いのか
標準k-εを起点に、RNG k-ε、Realizable k-ε、AKN、Yang-Shih、Chienなど派生モデルは数十種類にのぼります。ある乱流モデルの研究者は「k-εは"変形のベースキャラ"だ」と表現しました。基本形が単純で理解しやすいため、特定の欠点を直したい研究者が独自改良を加え、それがまた別の研究者に改良される、という連鎖が止まらない。逆に言えば、標準k-εの欠点(曲率・旋回・逆圧力勾配での過大評価)が明確だからこそ、改善の方向性が見えやすかったとも言えます。
トラブルシューティング
よくある問題と対策
標準k-εで計算していてハマりやすいポイントを教えてください。
1. 発散(Divergence)
症状: 残差が増大し計算が停止。"Floating point exception" 等のエラー。
原因と対策:
- $\varepsilon$ が0に近づく: 初期条件で $\varepsilon$ が小さすぎる → $\mu_t/\mu = 1\sim10$ になるように初期値を設定
- メッシュ品質不良: 高アスペクト比セルや負体積 → メッシュ品質チェック(skewness < 0.95, orthogonality > 0.1)
- 急激な形状変化: 段差や急拡大部 → 緩和係数を下げ、1次風上で初期化してから2次へ切替え
2. 壁面y+が範囲外
$y^+$ が30未満になっている壁面があるとどうなりますか?
標準壁関数が不適切になり、壁面摩擦係数や熱伝達率が不正確になる。対策は3つ。
1. メッシュを粗くする: Inflation層の第1層高さを大きくする
2. Scalable Wall Functionに切替え: $y^+ = \max(y^+, 11.2)$ として計算するので安全
3. Enhanced Wall Treatmentに変更: この場合は $y^+ \approx 1$ にメッシュを細分化する
3. 剥離位置がずれる
後方ステップ流れの再付着長さが実験と合わないんですが。
標準k-εの典型的な問題だ。$P_k$ の過大評価により再循環領域が短くなりがちだ。
対策:
- Realizable k-εに切替え: $C_\mu$ の可変化により改善
- SST k-ωに切替え: 剥離流の予測では最も信頼性が高い
- $P_k$ のリミッター: Kato-Launder修正($P_k = \mu_t S \Omega$)を有効にする。FluentではTUIで設定可能
4. 非物理的な乱流値
淀み点付近で乱流エネルギーが異常に高くなるのはなぜですか?
Stagnation point anomalyと呼ばれる問題だ。淀み点では法線方向のひずみ速度が大きいため、$P_k = \mu_t S^2$ が過大になる。
対策:
- Kato-Launder修正: 渦度 $\Omega$ をひずみ速度 $S$ と組み合わせて生成項を修正
- 生成項リミッター: $P_k \leq c \cdot \rho \varepsilon$($c = 10$ 程度)で打ち切り
- Fluent:
/define/models/viscous/turbulence-expert/kato-launder yes
他のモデルに乗り換えた方が早い場合もありますか?
もちろんある。これらの問題が解析の主要な関心事に影響する場合は、SST k-ωやRealizable k-εへの切替えを迷わず検討すべきだ。モデル変更は数分の作業だが、メッシュ修正やパラメータチューニングは何時間もかかる。
「発散した」は乱流モデルのせいではないことが多い
k-εで計算が発散すると「モデルが悪い」と思いがちですが、現場の経験では発散原因の8割以上がメッシュ品質か境界条件の設定ミスです。特に入口境界での乱流強度を0%にしてしまい、kが初期値0のままεがゼロ除算を起こすケースは定番のトラブル。「乱流強度1〜5%、乱流長さスケールを代表長さの10%」を入口の暫定値として入れるだけで、発散が収束に変わった例を何度も見てきました。まずモデルを疑う前に境界条件を確認しましょう。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——標準k-εモデルの問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告