Spalart-Allmarasモデル
理論と物理
概要
先生、Spalart-Allmarasモデルって航空分野でよく使われるって聞いたんですけど、どういうモデルなんですか?
Spalart-Allmaras(SA)モデルは、修正渦粘性 $\tilde{\nu}$ に対する1本の輸送方程式だけで乱流を記述する1方程式モデルだ。1992年にPhilippe SpalartとSteven Allmarasが発表した。航空機の翼周り流れに特化して開発され、NASAの標準乱流モデルの一つになっている。
1方程式ってことは、k-epsilonの2方程式より軽いんですか?
その通り。輸送方程式が1本少ない分、計算コストが低く収束も速い。壁面近傍の挙動が良好で、付着境界層や弱い逆圧力勾配下の流れに対して高い精度を発揮する。
支配方程式
具体的な方程式を教えてください。
修正渦粘性 $\tilde{\nu}$ の輸送方程式は次の通りだ。
各項の物理的意味はこうだ。
| 項 | 式 | 物理的意味 |
|---|---|---|
| 生成項 | $c_{b1}\tilde{S}\tilde{\nu}$ | 平均速度勾配による乱流生成 |
| 散逸項 | $c_{w1}f_w(\tilde{\nu}/d)^2$ | 壁面距離 $d$ に依存する破壊 |
| 拡散項 | $\frac{1}{\sigma}[\nabla\cdot((\nu+\tilde{\nu})\nabla\tilde{\nu}) + c_{b2}(\nabla\tilde{\nu})^2]$ | 分子拡散+乱流拡散 |
渦粘性の計算
$\tilde{\nu}$ から渦粘性 $\nu_t$ をどう求めるんですか?
ダンピング関数 $f_{v1}$ を使って次のように計算する。
壁面近傍($\chi \ll 1$)では $f_{v1} \to 0$ となり、$\nu_t$ が自動的に減衰する。これがSAモデルの大きな特徴で、別途Low-Reダンピング関数を追加する必要がない。
モデル定数
定数はいくつありますか?
以下が標準的な定数だ。
| 定数 | 値 | 定数 | 値 |
|---|---|---|---|
| $c_{b1}$ | 0.1355 | $c_{b2}$ | 0.622 |
| $\sigma$ | 2/3 | $\kappa$ | 0.41 |
| $c_{w1}$ | $c_{b1}/\kappa^2 + (1+c_{b2})/\sigma$ | $c_{w2}$ | 0.3 |
| $c_{w3}$ | 2.0 | $c_{v1}$ | 7.1 |
定数が多いように見えますけど、$c_{w1}$ は他の定数から導出されるんですね。実質的に独立な定数は6個くらいですか。
その通り。しかも壁面距離 $d$ が唯一の幾何学的入力で、乱流長さスケールの方程式を別途解く必要がない。これが1方程式モデルのシンプルさだ。
「1方程式で翼を解く」——PhilipとAmir の賭け
1992年にPhilip SpalartとSteven Allmarasが発表したSAモデルは、「渦粘性そのものの輸送方程式を1本だけ解く」というコンセプトで設計されました。当時のCFDコミュニティは「方程式を2本解かないと乱流は計算できない」という思い込みがあり、1方程式アプローチは懐疑的に受け取られました。しかし翼面境界層の計算精度は2方程式モデルに勝るとも劣らず、航空業界に急速に普及しました。NASAの外部空力CFDガイドラインで長年推奨されてきたのも、この1方程式の軽さと堅牢さが理由です。
各項の物理的意味
- 時間項 $\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$。時間刻みの安定性に直結 |
数値解法と実装
FVMでの離散化
SAモデルをCFDソルバーでどう離散化するんですか?
有限体積法(FVM)での離散化は、他のスカラー輸送方程式と同じ枠組みだ。対流項と拡散項を面フラックスに変換して離散化する。
ただしSAモデル特有の注意点がある。非線形拡散項 $c_{b2}(\nabla\tilde{\nu})^2$ は標準的な拡散項の形式に収まらないため、ソース項として処理するか、保存形に書き直す工夫が必要だ。
壁面距離 $d$ の計算
壁面距離ってどうやって計算するんですか?全セルから最近壁面までの距離が必要ですよね?
そうだ。壁面距離の計算には主に2つの方法がある。
| 手法 | 計算量 | 精度 | 並列化 |
|---|---|---|---|
| 幾何学的探索(Brute Force) | $O(N_{cell} \times N_{wall})$ | 正確 | 通信コスト大 |
| ポアソン方程式法 | $O(N_{cell})$ | 近似 | 容易 |
ポアソン方程式法では $\nabla^2 \phi = -1$ を解いて $d \approx |\nabla\phi| + \sqrt{|\nabla\phi|^2 + 2\phi}$ で推定する。Fluentはデフォルトでこちらを使っている。大規模並列計算では幾何学的探索より効率的だ。
境界条件
壁面と遠方場でどんな境界条件を設定するんですか?
境界 条件 備考
壁面 $\tilde{\nu} = 0$ 完全な粘着条件
入口 $\tilde{\nu}_{\text{in}} = 3\nu$ 〜 $5\nu$ 低乱流度の外部流
遠方場 $\tilde{\nu}_{\infty} / \nu = 3$ 〜 $5$ NASA推奨値
入口の $\tilde{\nu}$ 設定は結果に影響する。NASA Turbulence Modeling Resourceでは $\tilde{\nu}/\nu = 3$ を推奨しているが、風洞実験との比較では乱流強度に応じて調整が必要だ。
数値安定性のテクニック
SAモデルで計算が不安定になることはありますか?
$\tilde{\nu}$ が負値になると物理的に無意味だ。対策として以下が使われる。
- Negativity clipping: $\tilde{\nu} < 0$ の場合にゼロにクリップ
- SA-neg variant: Allmaras et al. (2012) が提案した負値許容版。$\tilde{\nu} < 0$ でも安定に計算できるよう生成項・破壊項を修正
- ソース項の陰的線形化: $S_{\tilde{\nu}} = S_c + S_p \cdot \tilde{\nu}$ の形に分解し、$S_p < 0$ 部分を係数行列に組み込む
SA-negバリアントはOpenFOAMにも実装されてますか?
OpenFOAMのv2306以降では SpalartAllmaras クラスに負値処理が含まれている。FluentでもSA-negは対応済みだ。
Coffee Break よもやま話
SAモデルの壁距離——小さな入力の大きな影響
Spalart-Allmarasモデルは壁面からの距離 $d$ が唯一の幾何学的入力で、この $d$ の精度がモデル全体の精度を左右します。複雑な形状、例えば翼とフラップの隙間や機体・エンジンの接合部では、壁距離の計算が難しくなります。特に内部壁(キャビティの内面)を「外壁」として誤認識すると、壁距離が過大になり局所的に渦粘性が大きく見積もられる。SAモデルを使うときは壁距離フィールドを必ず可視化して確認する癖が、計算精度を守る現場の鉄則です。
風上差分(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次だが、流れの方向を正しく捕捉するため安定性が高い。
壁面と遠方場でどんな境界条件を設定するんですか?
| 境界 | 条件 | 備考 |
|---|---|---|
| 壁面 | $\tilde{\nu} = 0$ | 完全な粘着条件 |
| 入口 | $\tilde{\nu}_{\text{in}} = 3\nu$ 〜 $5\nu$ | 低乱流度の外部流 |
| 遠方場 | $\tilde{\nu}_{\infty} / \nu = 3$ 〜 $5$ | NASA推奨値 |
入口の $\tilde{\nu}$ 設定は結果に影響する。NASA Turbulence Modeling Resourceでは $\tilde{\nu}/\nu = 3$ を推奨しているが、風洞実験との比較では乱流強度に応じて調整が必要だ。
SAモデルで計算が不安定になることはありますか?
$\tilde{\nu}$ が負値になると物理的に無意味だ。対策として以下が使われる。
SA-negバリアントはOpenFOAMにも実装されてますか?
OpenFOAMのv2306以降では SpalartAllmaras クラスに負値処理が含まれている。FluentでもSA-negは対応済みだ。
SAモデルの壁距離——小さな入力の大きな影響
Spalart-Allmarasモデルは壁面からの距離 $d$ が唯一の幾何学的入力で、この $d$ の精度がモデル全体の精度を左右します。複雑な形状、例えば翼とフラップの隙間や機体・エンジンの接合部では、壁距離の計算が難しくなります。特に内部壁(キャビティの内面)を「外壁」として誤認識すると、壁距離が過大になり局所的に渦粘性が大きく見積もられる。SAモデルを使うときは壁距離フィールドを必ず可視化して確認する癖が、計算精度を守る現場の鉄則です。
風上差分(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次だが、流れの方向を正しく捕捉するため安定性が高い。
実践ガイド
SAモデルの適用範囲
SAモデルを使うべき場面と避けるべき場面を教えてください。
明確な棲み分けがある。
| 適している用途 | 理由 |
|---|---|
| 翼型周りの空力解析(NACA翼、航空機翼) | 開発目的そのもの。付着境界層で高精度 |
| ロケットノズル内部流 | 壁面近傍で安定、高Re対応 |
| タービン翼列の基本検討 | 計算コストが低く多ケース検討向き |
| DES/DDESのRANS領域 | SA-DES, SA-DDESとして広く利用 |
メッシュ要件
SAモデルに必要なメッシュ解像度は?
SAモデルは壁面近傍まで解くことを前提に設計されている。Low-Reダンピング関数 $f_{v1}$ が内蔵されているため、$y^+ \approx 1$ が理想だ。
| パラメータ | 推奨値 |
|---|---|
| 壁面第1層 $y^+$ | 1以下 |
| 境界層内の層数 | 20層以上 |
| 成長率 | 1.1〜1.2 |
| 流れ方向の解像度 | 翼弦長あたり200セル以上 |
壁関数と組み合わせることもできますか?
できるが非推奨だ。SAモデルの強みは壁面挙動の正確さにあるから、壁関数で省略すると利点が失われる。壁関数を使いたいなら、k-epsilon系やSST k-omegaの方が適している。
DES/DDESとの連携
SA-DESについて教えてください。
Spalart et al. (1997) が提案したDetached-Eddy Simulation(DES)は、SAモデルの壁面距離 $d$ を修正して、壁から離れた領域でLES的な挙動をさせるハイブリッド手法だ。
$$ \tilde{d} = \min(d, C_{\text{DES}} \Delta) $$
SA-DESについて教えてください。
Spalart et al. (1997) が提案したDetached-Eddy Simulation(DES)は、SAモデルの壁面距離 $d$ を修正して、壁から離れた領域でLES的な挙動をさせるハイブリッド手法だ。
ここで $\Delta$ はグリッド幅、$C_{\text{DES}} = 0.65$ だ。壁近傍では $d < C_{\text{DES}}\Delta$ なのでRANS、壁から離れると $C_{\text{DES}}\Delta < d$ となりLES的な振る舞いになる。
DDESはDESとどう違うんですか?
Delayed DES(DDES)はSpalart et al. (2006) の改良版で、境界層内でLESモードに不用意に切り替わる "Grid-Induced Separation" 問題を防ぐ。遅延関数 $f_d$ を導入して境界層内ではRANSを維持する。航空分野ではDDESが事実上の標準だ。
SAモデルが宇宙往還機の熱環境評価に使われる理由
スペースシャトルの再突入時の空力加熱解析でもSpalart-Allmarasモデルが活躍しました。1方程式という軽さが膨大なパラメータスタディを可能にし、再突入角度・速度・姿勢の組み合わせを網羅的にCFDで評価できたからです。計算リソースが限られていた1990年代〜2000年代には、2方程式より25〜30%速いSAの計算速度優位は決定的でした。「シンプルさは力である」というUNIX哲学をSAモデルが体現しているとも言えます。
解析フローのたとえ
CFDの解析フローは「水族館の水槽を設計する」感覚で考えてみてください。まず水槽の形を決め(計算領域)、水の入り口と出口を設計し(境界条件)、ポンプの強さを設定する(流量条件)。魚がどう泳ぐか見たければ粒子追跡。水温が気になれば熱解析を追加。…どうですか? 意外と直感的ではありませんか?
初心者が陥りやすい落とし穴
「y+って何ですか?」——この質問が出たら要注意。壁面近くのメッシュ解像度を表すy+は、CFDの結果精度を左右する最重要パラメータの1つ。壁関数を使うなら30〜300、壁を完全に解像するなら1以下。これを確認せずに「摩擦抵抗が合わない!」と悩む人がとても多い。体温計の先端をちゃんと脇に挟まないで「熱がないのに37.5度って出た!」と慌てているようなものです。
境界条件の考え方
入口の境界条件は「蛇口をどのくらい開けるか」と同じ。ちょろちょろ出すか(低速)、全開にするか(高速)。でもCFDではもう一つ——「どのくらい暴れた水を出すか」(乱流強度)も指定する必要があります。蛇口の開け方を間違えると、下流のシンク全体の流れが変わりますよね? CFDでも入口条件のミスは下流全体に波及します。
ソフトウェア比較
ソルバー別の実装比較
SAモデルの実装はソルバーごとに違いがありますか?
モデル方程式自体は同じだが、バリアントの対応状況やDES連携に差がある。
| 機能 | Ansys Fluent | Ansys CFX | STAR-CCM+ | OpenFOAM |
|---|---|---|---|---|
| Standard SA | 対応 | 対応 | 対応 | 対応 |
| SA with rotation/curvature | 対応(SA-RC) | 対応 | 対応 | 対応 |
| SA-neg(負値許容) | 対応 | -- | 対応 | 対応 |
| SA-DES | 対応 | 対応 | 対応 | 対応 |
| SA-DDES | 対応 | 対応 | 対応 | 対応 |
| SA-IDDES | 対応 | -- | 対応 | 対応 |
NASA検証ケースでの比較
各ソルバーでSAモデルの結果は一致しますか?
NASA Turbulence Modeling Resourceが提供する検証ケース(Flat Plate, NACA 0012, DPW等)では、正しく設定すれば各ソルバーの結果はほぼ一致する。ただし以下の点で差が出ることがある。
| 差異の原因 | 影響 |
|---|---|
| 壁面距離の計算方法 | 複雑形状でセル単位の $d$ が異なる |
| 対流スキームの精度 | 2次風上 vs. MUSCL vs. TVDスキーム |
| ソース項の線形化方法 | 収束性と安定性に影響 |
| 遷移処理 | Fully turbulent vs. trip条件 |
Fluentで設定するときの手順を教えてください。
1. Models > Viscous > Spalart-Allmaras (1 Equation) を選択
2. Options で Strain/Vorticity-Based Production を選択(推奨は Vorticity)
3. Curvature Correction を有効にする場合は SA Options で Rotation/Curvature Correction にチェック
4. 入口BCで Modified Turbulent Viscosity を $3\nu$ 〜 $5\nu$ に設定
OpenFOAMでの設定例
OpenFOAMではどう設定しますか?
constant/turbulenceProperties で以下のように指定する。
```
RAS {
model SpalartAllmaras;
turbulence on;
printCoeffs on;
}
```
初期条件の nuTilda は 0/nuTilda ファイルで設定。内部場は $3\nu$ 〜 $5\nu$、壁面は fixedValue uniform 0 だ。
SAモデルは航空系の第一選択で、DES/DDESへの拡張性が高いのが強みですね。産業用途ではSST k-omegaとの二択になることが多いと。
その認識で正しい。壁面近傍を丁寧に解きたい航空系ならSA、壁関数との併用や熱解析まで含むならSST k-omegaという棲み分けだ。
NASAのSA検証ページ——公式ベンチマークが世界に与えた影響
NASAのTurbulence Modeling Resourceウェブサイトは、SAモデルを含む主要RANSモデルのリファレンス実装と検証データを公開しています。このサイトが整備されたことで「私の計算はNASAの参照解と一致している」と言えるようになり、ソルバー間比較の標準基盤が生まれました。Fluent・OpenFOAM・SU2などのソルバー開発者も、このNASAベンチマークで自実装を検証しています。Spalart本人もこのサイトの整備に関与しており、自分のモデルを「公式の尺度」にした研究者は珍しいと言えます。
選定で最も重要な3つの問い
- 「何を解くか」:Spalart-Allmarasモデルに必要な物理モデル・要素タイプが対応しているか。例えば、流体ではLES対応の有無、構造では接触・大変形の対応能力が差になる。
- 「誰が使うか」:初心者チームならGUIが充実したツール、経験者ならスクリプト駆動の柔軟なツールが適する。自動車のAT車(GUI)とMT車(スクリプト)の違いに似ている。
- 「どこまで拡張するか」:将来の解析規模拡大(HPC対応)、他部門への展開、他ツールとの連携を見据えた選択が長期的なコスト削減につながる。
先端技術
回転・曲率補正(SA-RC)
SAモデルの回転・曲率補正ってどういうものですか?
Shur et al. (2000) が提案した修正で、生成項に回転・曲率の効果を含める。回転関数 $f_{r1}$ を乗じて、
$f_{r1}$ はストレインレートテンソルとローテーションレートテンソルの比から計算される。凸面側(安定化効果)で乱流を抑制し、凹面側(不安定化効果)で乱流を増強する。
どういう場面で効きますか?
翼端渦、U字管内流、ターボ機械翼列など曲率の強い流れで改善が見られる。NASAのCommon Research Model(CRM)の翼端部でSA-RCを使うと、標準SAより実験との一致が改善されることが報告されている。
SA-QCR(Quadratic Constitutive Relation)
SA-QCRも聞いたことがあるんですけど。
標準のBoussinesq仮定(線形渦粘性モデル)では、レイノルズ応力テンソルがストレインレートに比例する。SA-QCR(Spalart, 2000)はこれに二次項を追加して異方性を部分的に再現する。
ここで $a_{ij}$ は正規化レイノルズ応力の異方性テンソル、$C_{cr1} = 0.3$ だ。
翼-胴体接合部のコーナー渦や翼根の二次流れの予測が改善される。NASAのDrag Prediction Workshop(DPW)では標準SAよりSA-QCRの方が抗力予測が実験に近いことが示されている。
機械学習による改良
SAモデルをAIで改良する研究はありますか?
ある。代表的なアプローチは以下の2つだ。
1. Field Inversion and Machine Learning (FIML): Parikh-Duraisamy (2016)。実験データとの差を最小化するように生成項の補正係数 $\beta(\mathbf{x})$ を場全体で逆推定し、その $\beta$ をMLで一般化する
2. PINN (Physics-Informed Neural Network): SAの輸送方程式を物理制約としてNNに組み込み、少数のDNS/LESデータからモデル定数を最適化する
FIMLは実用段階ですか?
まだ研究段階だが、Boeing等が航空機設計への適用を検討している。壁面距離関数を通じたSAモデルの構造がFIMLと相性が良く、他のRANSモデルより改良しやすいと言われている。
SA-noftモデル
他にバリアントはありますか?
SA-noft(no $f_{t2}$ term)は遷移項 $f_{t2}$ を除去した簡略版で、完全乱流の計算では標準SAとほぼ同等の結果を与える。NASAのTurbulence Modeling Resourceでは、特に理由がなければSA-noftを推奨している。これはFluentの標準実装でもある。
SAモデルとDES——「壁はRANS、渦はLES」の発想
Spalart-Allmarasモデルは、Detached Eddy Simulation(DES)という画期的な手法の出発点にもなりました。DES(1997年提案)はSAの壁距離 $d$ を修正して境界層内ではRANSとして、剥離域ではサブグリッドモデルとして動作させるハイブリッド手法です。「1つのモデルの切替だけでRANSとLESを繋ぐ」という発想は当時非常に斬新で、SAモデルの設計者Spalartが自身のモデルを拡張した形になります。今日のDES・DDES・IDDESの全ての起源にSAモデルがあります。
トラブルシューティング
よくある問題と対策
SAモデルで計算がうまくいかないとき、何を確認すればいいですか?
1. nuTilda が負値になる
症状: 計算中に $\tilde{\nu}$ が負値に発散し、NaN/Infが発生
原因: 初期条件が不適切($\tilde{\nu}$ の初期値がゼロまたは非常に小さい)、メッシュ品質が悪い、逆流が入口境界で発生
対策:
- 初期値を $\tilde{\nu} = 3\nu$ 〜 $5\nu$ に設定
- SA-negバリアントを使用(Fluentでは自動対応)
- 入口の $\tilde{\nu}$ 値を上げる($10\nu$ 程度に増やして安定化後に戻す)
- メッシュ品質指標(スキューネス < 0.85)を確認
2. 壁面距離の計算エラー
壁面距離がおかしいとどうなりますか?
症状: 散逸項 $c_{w1}f_w(\tilde{\nu}/d)^2$ が異常値を取り、渦粘性が過大または過小
原因: 複数の壁面が近接する領域(隙間、薄い構造)で壁面距離が正しく計算されない
対策:
- FluentではSolve > Initialize > Wall Distance を再計算
- OpenFOAMでは
wallDistの method をmeshWave(デフォルト)からPoissonに変更してみる - 隙間が非常に狭い場合は形状を簡略化
3. 自由せん断層の過大予測
噴流のスプレッド角がおかしいんですけど。
症状: ジェットの拡がり率が実験より20〜30%大きい
原因: SAモデルは自由せん断流に対してキャリブレーションされていない。壁面距離 $d$ が大きい領域で散逸が不足し、渦粘性が過大になる
対策:
- 噴流・混合層の解析にはSST k-omegaまたはk-epsilon Realizableを使う
- DES/DDESに切り替えて自由せん断層をLESで解く
4. 遷移位置が実験と合わない
症状: 翼面の層流-乱流遷移位置が実験と異なる
原因: 標準SAモデルは完全乱流を仮定。遷移を予測する機能がない
対策:
- 遷移を考慮したいならSA + $\gamma$-$Re_\theta$ 遷移モデルを使う
- Fluentでは Transition SST が利用可能
- trip条件で遷移位置を手動指定する方法もある(NASAケースではよく使われる)
検証用ベンチマーク
SAモデルの結果を検証するのに適したベンチマークは?
NASA Turbulence Modeling Resource (https://turbmodels.larc.nasa.gov/) が最も信頼できる。以下のケースが推奨だ。
| ケース | 検証項目 | 実験データ |
|---|---|---|
| Flat Plate | $C_f$ 分布 | Wieghardt (1951) |
| NACA 0012 | $C_p$, $C_L$-$\alpha$ | Gregory-O'Reilly (1970) |
| RAE 2822 | 遷音速 $C_p$ | Cook et al. (1979) |
| DPW (CRM) | 巡航条件の $C_D$ | NASA CRM実験 |
まずFlat Plateで $C_f$ が理論値($C_f = 0.058 Re_x^{-0.2}$)と一致するか確認して、それからNACA翼に進むのが王道ですね。
ν̃が負になる問題——OpenFOAMユーザーが最初に踏む地雷
SAモデルの作業変数 ν̃(修正渦粘性)は理論上は非負ですが、数値計算中に負値になることがあります。これが起きると渦粘性が負になり計算が発散します。OpenFOAMのSpalartAllmarasソルバーでは、負値を対処するSA-neg変形が導入されましたが、古いバージョンではこの対処が不十分で初心者が頻繁に詰まりました。「OpenFOAMのSAでnu_tがおかしい」という質問はCFDフォーラムの定番トピックで、最初のセルのy+を正しく設定してν̃の初期値を適切にすることが解決への近道です。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——Spalart-Allmarasモデルの問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告