圧縮性乱流モデリング
理論と物理
圧縮性乱流の基礎理論
先生、圧縮性乱流って非圧縮性の乱流と何が違うんですか? k-epsilonモデルとかそのまま使えないんですか?
いい質問だね。圧縮性乱流では密度変動が無視できなくなるんだ。非圧縮ではReynolds分解 $u_i = \bar{u}_i + u_i'$ をそのまま使えたけど、圧縮性ではFavre平均(密度重み付き平均)を導入する必要がある。
Favre平均は次のように定義されるんだ。
これを使うと、質量保存則が非圧縮の場合と同じ形式になるから扱いやすい。
なるほど、密度の変動を平均の中に取り込んでしまうんですね。でも具体的にどんな追加項が出てくるんですか?
Favre平均によるRANS方程式
Favre平均化した運動量方程式は次の形になる。
ここで $u_i'' = u_i - \tilde{u}_i$ がFavre変動成分だ。最後の項がReynolds応力テンソルに相当する。
Reynolds応力の部分は非圧縮と同じ形ですね。じゃあ乱流エネルギーの方程式はどうなるんですか?
Favre平均の乱流運動エネルギー $\tilde{k} = \widetilde{u_i''u_i''}/2$ の輸送方程式は、非圧縮にはない圧縮性特有の項を含むんだ。
ここで重要なのが圧力-膨張相関 $\Pi_d = \overline{p'\frac{\partial u_k''}{\partial x_k}}$ と圧縮性散逸 $\varepsilon_c$(膨張散逸)だ。
$\Pi_d$ と $\varepsilon_c$ が圧縮性ならではの項なんですね。これらが無視できない状況ってどういうときですか?
圧縮性補正モデル
乱流マッハ数 $M_t = \sqrt{2k}/a$($a$ は音速)が大きくなると、これらの項が効いてくる。具体的には $M_t > 0.3$ くらいから影響が顕著になるんだ。代表的な圧縮性補正モデルを紹介しよう。
| モデル | 圧縮性散逸 | 適用範囲 |
|---|---|---|
| Sarkar (1992) | $\varepsilon_c = \alpha_1 \bar{\rho} \varepsilon M_t^2$ | 自由せん断流、混合層 |
| Zeman (1990) | $\varepsilon_c = \alpha_2 \bar{\rho} \varepsilon f(M_t)$ | 衝撃波を含む流れ |
| Wilcox (1992) | $k$-$\omega$ への圧縮性修正 | 一般的な圧縮性流れ |
| SST圧縮性補正 | $F(M_t)$ 関数による修正 | Menter SSTモデルへの追加 |
Sarkarモデルでは $\alpha_1 \approx 1.0$ が使われ、高マッハ数混合層での拡散率低下をよく再現できる。実験では $M_c$(対流マッハ数)が増加すると混合層の成長率が著しく低下することが知られていて、これを正しく捕えるには圧縮性補正が不可欠なんだ。
乱流マッハ数が0.3を超えたら要注意、と覚えておきます。先生、これって超音速ジェットの騒音予測なんかにも関わってきますか?
そのとおり。超音速ジェットノイズの予測では、圧縮性乱流の正確なモデリングが直接的に音源強度の推定精度に影響する。NASA等の研究機関でもこの分野は活発に研究されているよ。
圧縮性乱流の「密度脈動」——実は乱流エネルギーを食う
亜音速の乱流では密度はほぼ一定なので「流速の揺らぎだけ気にすれば良い」のですが、マッハ数が0.3を超えてくると密度脈動が無視できなくなります。Morkovinの仮説によれば、マッハ数が低〜中程度なら密度脈動の影響は小さいとされますが、マッハ5以上の極超音速領域では話が変わってくる。1990年代にSarkarらが示したように、速度散逸以外に「圧力と膨張の相互作用」によるエネルギー散逸経路が生まれます。この項を無視すると乱流エネルギーが過大評価され、熱流束の予測が大きくずれる——高速飛翔体の熱設計で致命的なミスにつながる項です。
各項の物理的意味
- 時間項 $\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$。時間刻みの安定性に直結 |
数値解法と実装
数値手法の詳細
圧縮性乱流をCFDで解くとき、非圧縮のときと数値スキームは変わるんですか?
大きく変わるよ。圧縮性流れでは衝撃波のような不連続面が現れるから、対流項の離散化に風上スキーム(upwind scheme)が必須になる。代表的なものを整理しよう。
| スキーム | 特徴 | 精度 | 圧縮性乱流での注意 |
|---|---|---|---|
| Roe | 近似リーマンソルバー | 2次(MUSCL併用) | 低マッハ数で過度な散逸 |
| AUSM+ | 質量流束分離型 | 2次以上 | 低マッハ/高マッハ両対応 |
| HLLC | 3波近似リーマン | 2次 | 接触不連続の解像度良好 |
| 中心差分+人工粘性 | Jameson型 | 2次 | LES向き、散逸制御が鍵 |
LESで圧縮性乱流を解く場合はどうなるんですか? スキームの選び方が変わりますか?
LES/DESでの圧縮性乱流
LES(Large Eddy Simulation)では、格子フィルタリングを密度重み付きで行うFavre-filteredのNavier-Stokes方程式を解く。SGS(Sub-Grid Scale)モデルも圧縮性に対応したものが必要だ。
$$ \bar{\rho} \frac{\partial \tilde{u}_i}{\partial t} + \bar{\rho} \tilde{u}_j \frac{\partial \tilde{u}_i}{\partial x_j} = -\frac{\partial \bar{p}}{\partial x_i} + \frac{\partial}{\partial x_j}(\bar{\tau}_{ij} - \bar{\rho}\tau_{ij}^{sgs}) $$
SGSモデルとしてはSmagorinskyモデルの圧縮性拡張やWALE(Wall-Adapting Local Eddy-viscosity)モデルが使われる。また、DES(Detached Eddy Simulation)ではRANS領域で圧縮性補正付きSSTモデル、LES領域でSGSモデルを切り替える。
数値散逸と物理的な散逸のバランスが大事そうですね。格子解像度の目安はありますか?
壁面近傍では $y^+ < 1$ が理想だけど、圧縮性流れでは衝撃波近傍のメッシュ密度も重要だ。衝撃波厚さ(数平均自由行程)レベルの解像は不要だけど、衝撃波前後で少なくとも5〜10セルは確保したい。Courant数の管理も重要で、陽解法なら $\text{CFL} < 1$ を厳守する必要がある。
時間進行法
時間積分の方法も圧縮性で特別なものがあるんですか?
定常解が欲しいRANSではlocal time steppingやimplicit LU-SGS法が効率的だ。非定常のLES/DESでは、dual time steppingかexplicit Runge-Kutta法(3段または4段)が標準的だよ。
$$ \frac{\partial \mathbf{U}}{\partial \tau} + \frac{3\mathbf{U}^{n+1} - 4\mathbf{U}^n + \mathbf{U}^{n-1}}{2\Delta t} + \mathbf{R}(\mathbf{U}^{n+1}) = 0 $$
LES(Large Eddy Simulation)では、格子フィルタリングを密度重み付きで行うFavre-filteredのNavier-Stokes方程式を解く。SGS(Sub-Grid Scale)モデルも圧縮性に対応したものが必要だ。
SGSモデルとしてはSmagorinskyモデルの圧縮性拡張やWALE(Wall-Adapting Local Eddy-viscosity)モデルが使われる。また、DES(Detached Eddy Simulation)ではRANS領域で圧縮性補正付きSSTモデル、LES領域でSGSモデルを切り替える。
数値散逸と物理的な散逸のバランスが大事そうですね。格子解像度の目安はありますか?
壁面近傍では $y^+ < 1$ が理想だけど、圧縮性流れでは衝撃波近傍のメッシュ密度も重要だ。衝撃波厚さ(数平均自由行程)レベルの解像は不要だけど、衝撃波前後で少なくとも5〜10セルは確保したい。Courant数の管理も重要で、陽解法なら $\text{CFL} < 1$ を厳守する必要がある。
時間積分の方法も圧縮性で特別なものがあるんですか?
定常解が欲しいRANSではlocal time steppingやimplicit LU-SGS法が効率的だ。非定常のLES/DESでは、dual time steppingかexplicit Runge-Kutta法(3段または4段)が標準的だよ。
これがdual time steppingの式で、$\tau$ は擬似時間、$\mathbf{R}$ は空間残差だ。物理時間の2次精度を保ちつつ、擬似時間で陰的に収束させるんだ。
なるほど、定常と非定常で使い分けが必要なんですね。実装上の落とし穴はありますか?
一番多い失敗は、圧縮性補正を有効にし忘れることだね。例えばFluent のk-epsilonモデルでは「Compressibility Effects」のチェックボックスがデフォルトでオフになっている。高マッハ数混合層の計算でこれを忘れると、拡散率を大幅に過大予測してしまう。
Morkovin仮説——音速付近で乱流モデルが「化ける」理由
1962年、マーク・モルコビンは「圧縮性乱流でも密度変動が小さければ非圧縮性の乱流モデルをそのまま使えるはず」という大胆な仮説を提唱した。これがMorkovin仮説だ。実際、マッハ5以下ではまあまあ使えるのだが、マッハ5を超えると密度変動が無視できなくなって仮説が崩壊する。現場では「なぜかSSTモデルだけ収束した」という経験談が飛び交うが、それはモデルの本質的な優位性というより、Morkovin仮説が偶然成立している速度域で計算しているせいかもしれない。
風上差分(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次だが、流れの方向を正しく捕捉するため安定性が高い。
実践ガイド
実践ガイド
先生、実際に圧縮性乱流の解析を始めるとき、手順を最初から教えてください。
よし、超音速ジェットの混合層解析を例に具体的に説明しよう。
解析フロー(超音速ジェット混合の例)
1. 問題定義: ジェットマッハ数 $M_j = 1.5$、全温 $T_0 = 600$ K、ノズル出口径 $D = 50$ mm
2. 計算領域: 上流 $5D$、下流 $30D$、径方向 $10D$
3. メッシュ: ノズルリップ近傍でせん断層厚さの1/10以下の解像度。六面体主体でO-H型トポロジー
4. 乱流モデル選択: RANS→SST+圧縮性補正、非定常→DES/DDES
5. 境界条件: 入口にpressure-inlet(全圧・全温指定)、出口にpressure-outlet
乱流モデルの選び方の基準ってありますか? RANSとLESの使い分けとか。
乱流モデル選定ガイド
用途別に整理するとこうなる。
| 用途 | 推奨モデル | 理由 |
|---|---|---|
| 設計段階の概略評価 | SST k-omega + 圧縮性補正 | 計算コスト低、十分な精度 |
| ジェットノイズ予測 | DDES or IDDES | 渦の非定常挙動が必要 |
| 衝撃波/乱流干渉 | WMLES or ZDES | 壁面近傍の精度が重要 |
| 燃焼を伴う流れ | Flamelet + LES | 乱流-化学反応の相互作用 |
メッシュの $y^+$ ってどのくらいにすればいいですか? マッハ数によって変わりますか?
壁面を解像する場合は $y^+ \approx 1$ が基本だが、圧縮性流れでは壁面摩擦速度 $u_\tau$ の見積もりが非圧縮のときと異なる。高温壁では粘性が大きくなるので、非圧縮の公式でのまま見積もると $y^+$ が想定より大きくなりがちだ。Van Driest変換を使った壁法則を適用する場合は $y^+ < 50$ 程度でもOKだよ。
初期条件と収束テクニック
高マッハ数の計算って収束が難しいって聞いたんですけど、コツはありますか?
重要なポイントを挙げるよ。
- CFL数のramp-up: 初期はCFL=1から始めて、残差が下がり始めたら徐々にCFL=10〜100まで上げる
- 初期場の設定: 全領域を一様流で初期化するよりも、等エントロピー関係で主流条件を設定した方が収束が速い
- under-relaxation: 密度ベースソルバーではCourant数、圧力ベースソルバーではunder-relaxation factorを慎重に設定
- FMG(Full Multi-Grid)初期化: Fluentで利用可能。粗いメッシュから順に解を補間して初期場を作る
実務で一番ハマりやすいポイントはどこですか?
経験上、一番多いのはfarfield境界条件の反射だね。圧縮性流れでは境界から衝撃波が反射して非物理的な解になることがある。non-reflecting boundary condition(NRBC)やスポンジ層を使うことが重要だよ。
超音速エンジンの乱流モデリング、現場はどう向き合っているか
圧縮性乱流の実務で最もやっかいなのは、「乱流モデルのキャリブレーションが亜音速とそのまま使えない」問題です。マッハ数が上がると圧縮性補正項(Sarkarの補正など)が重要になるのですが、係数をどう設定するかはケースバイケース。ロケットエンジンの燃焼室解析を手がけるエンジニアの話では、補正なしで計算した乱流エネルギーが実験値の2倍近くになったケースもあったとか。「まずは補正オフで走らせて、実験値と比較してから補正を有効にする」というプロセスが現場では定番になっています。
解析フローのたとえ
CFDの解析フローは「水族館の水槽を設計する」感覚で考えてみてください。まず水槽の形を決め(計算領域)、水の入り口と出口を設計し(境界条件)、ポンプの強さを設定する(流量条件)。魚がどう泳ぐか見たければ粒子追跡。水温が気になれば熱解析を追加。…どうですか? 意外と直感的ではありませんか?
初心者が陥りやすい落とし穴
「y+って何ですか?」——この質問が出たら要注意。壁面近くのメッシュ解像度を表すy+は、CFDの結果精度を左右する最重要パラメータの1つ。壁関数を使うなら30〜300、壁を完全に解像するなら1以下。これを確認せずに「摩擦抵抗が合わない!」と悩む人がとても多い。体温計の先端をちゃんと脇に挟まないで「熱がないのに37.5度って出た!」と慌てているようなものです。
境界条件の考え方
入口の境界条件は「蛇口をどのくらい開けるか」と同じ。ちょろちょろ出すか(低速)、全開にするか(高速)。でもCFDではもう一つ——「どのくらい暴れた水を出すか」(乱流強度)も指定する必要があります。蛇口の開け方を間違えると、下流のシンク全体の流れが変わりますよね? CFDでも入口条件のミスは下流全体に波及します。
ソフトウェア比較
商用ツールの圧縮性乱流対応
圧縮性乱流を扱えるCFDソフトって、それぞれどんな違いがあるんですか?
主要なCFDソルバーの圧縮性乱流関連機能を比較してみよう。
| 機能 | Ansys Fluent | STAR-CCM+ | OpenFOAM | CFD++ |
|---|---|---|---|---|
| Sarkar圧縮性補正 | 対応 | 対応 | UDF必要 | 対応 |
| SST圧縮性修正 | 対応 | 対応 | 対応 | 対応 |
| DDES/IDDES | 対応 | 対応 | 対応 | 対応 |
| WMLES | 対応(v2024+) | 対応 | 対応 | 限定的 |
| 密度ベースソルバー | 対応 | 結合ソルバー | rhoCentralFoam等 | 標準 |
| AMR(適応格子細分化) | 対応 | 対応 | 限定的 | 対応 |
Fluent とSTAR-CCM+ではどっちが圧縮性乱流に向いてるんですか?
Ansys Fluent での設定
Fluentでは密度ベースソルバー(density-based solver)を選択するのが圧縮性流れの基本だ。設定のポイントは以下のとおり。
- Solver: Density-Based, Implicit
- Flux Type: Roe-FDS または AUSM
- Gradient: Green-Gauss Node Based(精度向上)
- Turbulence: SST k-omega → Compressibility Effects をONに
- DDES使用時: SSTベースでDES optionを有効化、Shield Function = yes
OpenFOAMで圧縮性乱流を扱う場合はどのソルバーを使えばいいですか?
OpenFOAM での実装
OpenFOAMには圧縮性流れ用のソルバーが複数用意されている。
- rhoCentralFoam: 中心差分ベース、KNP(Kurganov-Noelle-Petrova)スキーム。衝撃波捕獲に適している
- rhoSimpleFoam: 定常圧縮性RANS。SIMPLE系アルゴリズム
- rhoPimpleFoam: 非定常圧縮性。PIMPLE(PISO+SIMPLE)アルゴリズム。DES/LESに使用
- sonicFoam: 遷音速〜超音速向け陽解法ソルバー
圧縮性補正はturbulencePropertiesの辞書ファイルで設定する。例えばSarkar補正を使う場合、kEpsilonモデルのcoeffsサブ辞書に alphaK1 1.0; のような係数を追加するか、カスタムのturbulence modelクラスを作成する必要がある。
NASAとか研究機関ではどんなコードが使われてるんですか?
NASAではFUN3D(非構造格子)やOVERFLOW(重合格子)が広く使われている。JAXAではFaSTAR(非構造格子圧縮性ソルバー)が開発されているよ。これらは高マッハ数での精度検証が徹底されているという強みがある。
商用と研究コード、どう使い分ければいいですか?
設計業務では商用ツールのGUIとサポートが生産性に直結する。一方、研究レベルの精度が必要な場合や、新しい乱流モデルの実装・検証には研究コードやOpenFOAMが柔軟性で優れている。両方使いこなせるのが理想だね。
Coffee Break よもやま話
商用ツールの「圧縮性乱流オプション」、実は全部同じじゃない
FluentとCFD++とOpenFOAMで「k-ω SSTに圧縮性補正を加えて計算」しても、同じ結果にはならないのが実情です。各ソルバーが採用している補正項の実装方法(Wilcox補正かSarkar補正かZeman補正か)が微妙に違うからです。特にマッハ数が1.5を超えるような超音速ジェット解析では、ソルバー間の差が衝撃波後の乱流強度で10〜20%になることも。ツール選定では「どの補正モデルを実装しているか」を仕様書レベルで確認する癖をつけておくと、あとで痛い目に遭いません。
選定で最も重要な3つの問い
- 「何を解くか」:圧縮性乱流モデリングに必要な物理モデル・要素タイプが対応しているか。例えば、流体ではLES対応の有無、構造では接触・大変形の対応能力が差になる。
- 「誰が使うか」:初心者チームならGUIが充実したツール、経験者ならスクリプト駆動の柔軟なツールが適する。自動車のAT車(GUI)とMT車(スクリプト)の違いに似ている。
- 「どこまで拡張するか」:将来の解析規模拡大(HPC対応)、他部門への展開、他ツールとの連携を見据えた選択が長期的なコスト削減につながる。
Fluentでは密度ベースソルバー(density-based solver)を選択するのが圧縮性流れの基本だ。設定のポイントは以下のとおり。
OpenFOAMで圧縮性乱流を扱う場合はどのソルバーを使えばいいですか?
OpenFOAMには圧縮性流れ用のソルバーが複数用意されている。
- rhoCentralFoam: 中心差分ベース、KNP(Kurganov-Noelle-Petrova)スキーム。衝撃波捕獲に適している
- rhoSimpleFoam: 定常圧縮性RANS。SIMPLE系アルゴリズム
- rhoPimpleFoam: 非定常圧縮性。PIMPLE(PISO+SIMPLE)アルゴリズム。DES/LESに使用
- sonicFoam: 遷音速〜超音速向け陽解法ソルバー
圧縮性補正はturbulencePropertiesの辞書ファイルで設定する。例えばSarkar補正を使う場合、kEpsilonモデルのcoeffsサブ辞書に alphaK1 1.0; のような係数を追加するか、カスタムのturbulence modelクラスを作成する必要がある。
NASAとか研究機関ではどんなコードが使われてるんですか?
NASAではFUN3D(非構造格子)やOVERFLOW(重合格子)が広く使われている。JAXAではFaSTAR(非構造格子圧縮性ソルバー)が開発されているよ。これらは高マッハ数での精度検証が徹底されているという強みがある。
商用と研究コード、どう使い分ければいいですか?
設計業務では商用ツールのGUIとサポートが生産性に直結する。一方、研究レベルの精度が必要な場合や、新しい乱流モデルの実装・検証には研究コードやOpenFOAMが柔軟性で優れている。両方使いこなせるのが理想だね。
商用ツールの「圧縮性乱流オプション」、実は全部同じじゃない
FluentとCFD++とOpenFOAMで「k-ω SSTに圧縮性補正を加えて計算」しても、同じ結果にはならないのが実情です。各ソルバーが採用している補正項の実装方法(Wilcox補正かSarkar補正かZeman補正か)が微妙に違うからです。特にマッハ数が1.5を超えるような超音速ジェット解析では、ソルバー間の差が衝撃波後の乱流強度で10〜20%になることも。ツール選定では「どの補正モデルを実装しているか」を仕様書レベルで確認する癖をつけておくと、あとで痛い目に遭いません。
選定で最も重要な3つの問い
- 「何を解くか」:圧縮性乱流モデリングに必要な物理モデル・要素タイプが対応しているか。例えば、流体ではLES対応の有無、構造では接触・大変形の対応能力が差になる。
- 「誰が使うか」:初心者チームならGUIが充実したツール、経験者ならスクリプト駆動の柔軟なツールが適する。自動車のAT車(GUI)とMT車(スクリプト)の違いに似ている。
- 「どこまで拡張するか」:将来の解析規模拡大(HPC対応)、他部門への展開、他ツールとの連携を見据えた選択が長期的なコスト削減につながる。
先端技術
先端トピック
圧縮性乱流の研究って今どんな方向に進んでるんですか?
大きく3つの方向性があるよ。DNS(直接数値シミュレーション)による物理解明、機械学習を活用した乱流モデル改良、そして壁モデルLES(WMLES)の高精度化だ。
DNS による圧縮性乱流の理解
近年のスパコンの発展で、圧縮性乱流チャネル流れの $Re_\tau \sim 1000$、$M_{bulk} \sim 4$ のDNSが可能になった。これにより、Morkovinの仮説(密度変動が乱流構造に直接影響しないという近似)の適用限界が明らかになりつつある。
$$ \frac{\overline{\rho'^2}}{\bar{\rho}^2} \ll 1 \quad \text{(Morkovinの仮説)} $$
近年のスパコンの発展で、圧縮性乱流チャネル流れの $Re_\tau \sim 1000$、$M_{bulk} \sim 4$ のDNSが可能になった。これにより、Morkovinの仮説(密度変動が乱流構造に直接影響しないという近似)の適用限界が明らかになりつつある。
DNSの結果、$M > 3$ 程度でこの仮説が破綻し始めることが分かっている。つまり高マッハ数壁乱流では、従来の圧縮性変換(Van Driest変換)だけでは不十分なんだ。
そうなると、壁法則も修正が必要になるんですか?
そのとおり。最近提案されたTrettel-Larsson変換は、温度変動と密度変動を考慮した改良版で、$M \sim 5$ まで有効とされている。
機械学習による乱流モデル改良
最近は何でもAIですけど、乱流モデルにも使えるんですか?
Physics-Informed Neural Network(PINN)やNeural ODE を使って、RANSモデルの圧縮性補正項を学習させる研究が活発だ。DNSデータから直接Reynolds応力テンソルの異方性を学習させるアプローチ(Tensor Basis Neural Network, TBNN)もある。
ただし課題もある。学習データの範囲外への汎化性能や、物理的な実現可能性条件(Schumann三角形の制約)を満たすかどうかの保証が難しい。現時点では「モデル係数のチューニング支援」レベルが最も実用的だね。
壁モデルLES(WMLES)
高レイノルズ数の圧縮性壁乱流を解く場合、LESの格子コストは $Re^{13/7}$ にスケールする。これは工学的な $Re \sim 10^7$ では現実的ではない。そこでWMLESが重要になる。
WMLESって壁の近くをモデルで補うってことですよね?
そう。壁面近傍($y^+ < 50$ 程度)を代数的壁モデルやODE壁モデルで置き換えて、外層のみLESで解く。圧縮性WMLESでは壁面摩擦の温度依存性と圧力勾配効果の両方を考慮する必要がある。最近のiWMLES(integrated WMLES)では、壁面応力を壁法則からではなくRANS方程式の薄層近似から求めるアプローチが有望とされている。
この分野、まだまだ発展途上なんですね。5年後くらいにはもっと使いやすくなりますか?
GPUコンピューティングの発展とモデルの改良で、2030年頃にはWMLESが設計ツールとして実用的になると期待されているよ。NASAの「CFD Vision 2030」でもWMLESの実用化が重要目標に掲げられているんだ。
圧縮性乱流の「Favre平均」——なぜわざわざ密度重み付けするのか
通常のRANSはレイノルズ平均(単純時間平均)を使うが、圧縮性流れでは密度が変動するため、速度の時間平均を取るだけでは方程式が恐ろしく複雑な相関項まみれになる。そこでFlavio Favre(フランスの研究者)が1965年に提案したのが「密度で重み付けした平均」つまりFavre平均だ。これを使うと方程式が格段にシンプルになる。物理的な意味は「質量流束を基準にした平均」と解釈できる。超音速・極超音速のCFDコードではFavre平均が標準になっているが、後処理で速度場を可視化するとき、レイノルズ平均と微妙に違うことに気づいて混乱するエンジニアが後を絶たない。
トラブルシューティング
トラブルシューティング
先生、圧縮性乱流の計算でよくハマるトラブルを教えてください。
実務でよく遭遇する問題と対策を整理しよう。
1. 混合層の成長率が過大
症状: 超音速混合層の拡散角が実験値の2〜3倍になる
原因: 圧縮性補正が無効。標準k-epsilonやk-omegaは非圧縮で校正されているため、圧縮性効果(成長率抑制)を予測できない。
対策:
- Sarkar or Zeman圧縮性補正を有効化
- Fluentの場合: Viscous Model → Options → Compressibility Effects にチェック
- 対流マッハ数 $M_c = (U_1 - U_2)/(a_1 + a_2)$ を確認。$M_c > 0.3$ なら補正必須
なるほど、チェックボックス一つで結果が大きく変わるんですね。
2. 衝撃波近傍での乱流量の非物理的増加
症状: 垂直衝撃波の直後で乱流運動エネルギー $k$ が数倍にスパイクする
原因: 衝撃波による圧力勾配を乱流生成項 $P_k$ が過大評価。Production limiterが未設定。
対策:
- SST k-omega の Production Limiter を有効化: $P_k = \min(P_k, C_{lim} \cdot \bar{\rho} \beta^* k \omega)$、$C_{lim} = 10$
- Fluentでは「Production Limiter」または「Kato-Launder modification」を使用
- メッシュを衝撃波近傍で細かくして、衝撃波の数値的な厚みを減らす
3. 密度ベースソルバーの発散
計算開始直後にNaN が出て止まっちゃうこと、よくあるんですけど…
症状: 計算開始から数十ステップで残差が発散、NaN発生
原因と対策:
- 初期場が不適切: 全領域をM=0の静止場で初期化すると、超音速入口との不整合で衝撃波が初期に発生し発散する。→ 等エントロピー関係で適切な初期場を設定
- CFL数が大きすぎる: 初期は CFL = 0.5〜1.0 から始めて徐々に上げる
- 境界条件の不整合: 超音速出口にpressure outletを使っている場合、背圧が流れ場と矛盾する可能性。→ 超音速出口ではextrapolation(外挿)境界条件を使用
4. DES計算でGID(Grid-Induced Separation)が発生
症状: 境界層が物理的根拠なく剥離する。特に付着流の領域で発生。
原因: DESのRANS→LES切り替えが境界層内で発生し、RANS的に解くべき領域がLES格子解像度不足で解かれてしまう。
対策:
- DDES(Delayed DES)を使用。$f_d$ シールド関数で境界層をRANS領域として保護
- IDDES(Improved DDES)に切り替え。WMLES機能を含み、より安定
- 格子設計を見直し: 壁面平行方向の格子アスペクト比が大きすぎないか確認
DDESにしておけば安全ですか?
圧縮性乱流は罠が多いですね。チェックリストを作っておきます。
そうだね。最低限、乱流マッハ数の確認、圧縮性補正の有効化、Production limiterの設定、境界条件の整合性チェック、この4点は毎回確認する習慣をつけておくといいよ。
圧縮性乱流の収束が遅い本当の理由
圧縮性流れの乱流計算が収束しないとき、まずチェックすべきは「乱流強度の初期値が適切かどうか」だ。初期値を高くしすぎると乱流粘性が過剰になり、ずっと不安定になる。低すぎると衝撃波近傍で乱流エネルギーが瞬時に爆発して発散する。実務では「自由流の乱流強度0.1〜1%、渦粘性比1〜10」から始めて様子を見るのが経験則だ。もう一つよくある原因が壁面Y+の設定ミス。低レイノルズ数モデルを使っているのにY+=30以上のメッシュで計算すると、壁面近傍の乱流生成項が正しく計算されず、延々と残差が下がらない状態になる。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——圧縮性乱流モデリングの問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告