Spalart-Allmarasモデル

カテゴリ: 流体解析(CFD) | 統合版 2026-04-06
CAE visualization for spalart allmaras theory - technical simulation diagram
Spalart-Allmarasモデル

Spalart-Allmarasの理論基礎

概要

🧑‍🎓

先生、Spalart-Allmarasモデルって航空分野でよく使われるって聞いたんですけど、どういうモデルなんですか?


🎓

Spalart-Allmaras(SA)モデルは、修正渦粘性 $\tilde{\nu}$ に対する1本の輸送方程式だけで乱流を記述する1方程式モデルだ。1992年にPhilippe SpalartとSteven Allmarasが発表した。航空機の翼周り流れに特化して開発され、NASAの標準乱流モデルの一つになっている。


🧑‍🎓

1方程式ってことは、k-epsilonの2方程式より軽いんですか?


🎓

その通り。輸送方程式が1本少ない分、計算コストが低く収束も速い。壁面近傍の挙動が良好で、付着境界層や弱い逆圧力勾配下の流れに対して高い精度を発揮する。


支配方程式

🧑‍🎓

具体的な方程式を教えてください。


🎓

修正渦粘性 $\tilde{\nu}$ の輸送方程式は次の通りだ。


$$ \frac{D\tilde{\nu}}{Dt} = c_{b1}\tilde{S}\tilde{\nu} - c_{w1}f_w\left(\frac{\tilde{\nu}}{d}\right)^2 + \frac{1}{\sigma}\left[\nabla\cdot\left((\nu + \tilde{\nu})\nabla\tilde{\nu}\right) + c_{b2}(\nabla\tilde{\nu})^2\right] $$

🎓

各項の物理的意味はこうだ。


物理的意味
生成項$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}$ を使って次のように計算する。


$$ \nu_t = \tilde{\nu}\, f_{v1}, \quad f_{v1} = \frac{\chi^3}{\chi^3 + c_{v1}^3}, \quad \chi = \frac{\tilde{\nu}}{\nu} $$

壁面近傍($\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方程式モデルのシンプルさだ。

Coffee Break よもやま話

「1方程式で翼を解く」——PhilipとAmir の賭け

1992年にPhilip SpalartとSteven Allmarasが発表したSAモデルは、「渦粘性そのものの輸送方程式を1本だけ解く」というコンセプトで設計されました。当時のCFDコミュニティは「方程式を2本解かないと乱流は計算できない」という思い込みがあり、1方程式アプローチは懐疑的に受け取られました。しかし翼面境界層の計算精度は2方程式モデルに勝るとも劣らず、航空業界に急速に普及しました。NASAの外部空力CFDガイドラインで長年推奨されてきたのも、この1方程式の軽さと堅牢さが理由です。

Spalart-Allmarasの数値計算手法

FVMでの離散化

🧑‍🎓

SAモデルをCFDソルバーでどう離散化するんですか?


🎓

有限体積法(FVM)での離散化は、他のスカラー輸送方程式と同じ枠組みだ。対流項と拡散項を面フラックスに変換して離散化する。


$$ \int_V \frac{\partial(\rho\tilde{\nu})}{\partial t}dV + \oint_S \rho\tilde{\nu}\mathbf{u}\cdot d\mathbf{A} = \oint_S \frac{\rho(\nu+\tilde{\nu})}{\sigma}\nabla\tilde{\nu}\cdot d\mathbf{A} + \int_V S_{\tilde{\nu}}\, dV $$

🎓

ただし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モデルを使うときは壁距離フィールドを必ず可視化して確認する癖が、計算精度を守る現場の鉄則です。

Spalart-Allmarasの実務適用

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) $$

ここで $\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が事実上の標準だ。

Coffee Break よもやま話

SAモデルが宇宙往還機の熱環境評価に使われる理由

スペースシャトルの再突入時の空力加熱解析でもSpalart-Allmarasモデルが活躍しました。1方程式という軽さが膨大なパラメータスタディを可能にし、再突入角度・速度・姿勢の組み合わせを網羅的にCFDで評価できたからです。計算リソースが限られていた1990年代〜2000年代には、2方程式より25〜30%速いSAの計算速度優位は決定的でした。「シンプルさは力である」というUNIX哲学をSAモデルが体現しているとも言えます。

Spalart-Allmarasのソフトウェア比較

ソルバー別の実装比較

🧑‍🎓

SAモデルの実装はソルバーごとに違いがありますか?


🎓

モデル方程式自体は同じだが、バリアントの対応状況やDES連携に差がある。


機能Ansys FluentAnsys CFXSTAR-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;

}

```


初期条件の nuTilda0/nuTilda ファイルで設定。内部場は $3\nu$ 〜 $5\nu$、壁面は fixedValue uniform 0 だ。


🧑‍🎓

SAモデルは航空系の第一選択で、DES/DDESへの拡張性が高いのが強みですね。産業用途ではSST k-omegaとの二択になることが多いと。


🎓

その認識で正しい。壁面近傍を丁寧に解きたい航空系ならSA、壁関数との併用や熱解析まで含むならSST k-omegaという棲み分けだ。

Coffee Break よもやま話

NASAのSA検証ページ——公式ベンチマークが世界に与えた影響

NASAのTurbulence Modeling Resourceウェブサイトは、SAモデルを含む主要RANSモデルのリファレンス実装と検証データを公開しています。このサイトが整備されたことで「私の計算はNASAの参照解と一致している」と言えるようになり、ソルバー間比較の標準基盤が生まれました。Fluent・OpenFOAM・SU2などのソルバー開発者も、このNASAベンチマークで自実装を検証しています。Spalart本人もこのサイトの整備に関与しており、自分のモデルを「公式の尺度」にした研究者は珍しいと言えます。

Spalart-Allmarasの先端研究

回転・曲率補正(SA-RC)

🧑‍🎓

SAモデルの回転・曲率補正ってどういうものですか?


🎓

Shur et al. (2000) が提案した修正で、生成項に回転・曲率の効果を含める。回転関数 $f_{r1}$ を乗じて、


$$ P_{\text{SA-RC}} = c_{b1}(f_{r1} - f_{t2})\tilde{S}\tilde{\nu} $$

$f_{r1}$ はストレインレートテンソルとローテーションレートテンソルの比から計算される。凸面側(安定化効果)で乱流を抑制し、凹面側(不安定化効果)で乱流を増強する。


🧑‍🎓

どういう場面で効きますか?


🎓

翼端渦、U字管内流、ターボ機械翼列など曲率の強い流れで改善が見られる。NASAのCommon Research Model(CRM)の翼端部でSA-RCを使うと、標準SAより実験との一致が改善されることが報告されている。


SA-QCR(Quadratic Constitutive Relation)

🧑‍🎓

SA-QCRも聞いたことがあるんですけど。


🎓

標準のBoussinesq仮定(線形渦粘性モデル)では、レイノルズ応力テンソルがストレインレートに比例する。SA-QCR(Spalart, 2000)はこれに二次項を追加して異方性を部分的に再現する。


$$ \tau_{ij} = -2\mu_t S_{ij} + C_{cr1}\left(\overline{\Omega}_{ik}a_{jk} + \overline{\Omega}_{jk}a_{ik}\right) $$

ここで $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の標準実装でもある。

Coffee Break よもやま話

SAモデルとDES——「壁はRANS、渦はLES」の発想

Spalart-Allmarasモデルは、Detached Eddy Simulation(DES)という画期的な手法の出発点にもなりました。DES(1997年提案)はSAの壁距離 $d$ を修正して境界層内ではRANSとして、剥離域ではサブグリッドモデルとして動作させるハイブリッド手法です。「1つのモデルの切替だけでRANSとLESを繋ぐ」という発想は当時非常に斬新で、SAモデルの設計者Spalartが自身のモデルを拡張した形になります。今日のDES・DDES・IDDESの全ての起源にSAモデルがあります。

Spalart-Allmarasのトラブル対応

よくある問題と対策

🧑‍🎓

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翼に進むのが王道ですね。

Coffee Break よもやま話

ν̃が負になる問題——OpenFOAMユーザーが最初に踏む地雷

SAモデルの作業変数 ν̃(修正渦粘性)は理論上は非負ですが、数値計算中に負値になることがあります。これが起きると渦粘性が負になり計算が発散します。OpenFOAMのSpalartAllmarasソルバーでは、負値を対処するSA-neg変形が導入されましたが、古いバージョンではこの対処が不十分で初心者が頻繁に詰まりました。「OpenFOAMのSAでnu_tがおかしい」という質問はCFDフォーラムの定番トピックで、最初のセルのy+を正しく設定してν̃の初期値を適切にすることが解決への近道です。

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

熱解析V&V・品質保証構造解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
プロフィールを見る