非圧縮性Navier-Stokes方程式
非圧縮性Navier-Stokes方程式の理論基礎
概要
先生、Navier-Stokes方程式ってCFDの根幹ですよね。非圧縮性の場合を詳しく教えてください。
CFDで解く方程式の中で最も基本的かつ重要なものだ。非圧縮性NS方程式はニュートン流体の粘性流れを記述する。連続の式と運動量方程式のセットで構成される。
支配方程式
非圧縮性NS方程式は次の2式だ。
運動量方程式(ニュートンの第2法則):
各項の物理的意味を教えてください。
成分表示($x$方向)で書くとわかりやすい。
Reynolds数
Reynolds数ってNS方程式とどう関係するんですか?
方程式を代表速度 $U$、代表長さ $L$ で無次元化すると、唯一のパラメータとしてRe数が現れる。
| Re範囲 | 流れの特徴 | 典型例 |
|---|---|---|
| Re < 1 | クリープ流(Stokes流) | 微生物の遊泳、MEMS |
| 1 < Re < 2300 | 層流 | 管内流(発達流) |
| 2300 < Re < 4000 | 遷移域 | 管内流(不安定) |
| Re > 4000 | 乱流 | ほとんどの工業的流れ |
方程式の数学的性質
NS方程式の解の存在と一意性って未解決問題なんですよね?
その通り。3次元NS方程式の滑らかな解の大域的存在と一意性はクレイ数学研究所のミレニアム懸賞問題の一つだ(賞金100万ドル)。工学的にはDNS(直接数値シミュレーション)で有限時間・有限領域の解は得られているが、数学的な証明は未だ成されていない。
方程式の非線形性は移流項 $(\mathbf{u}\cdot\nabla)\mathbf{u}$ に起因する。この項が乱流、カオス、渦崩壊などの複雑な現象を生み出す源泉だ。
100万ドルの懸賞、誰も解けていない
非圧縮性Navier-Stokes方程式、実は「解が必ず存在するか」すら数学的に証明されていません。クレイ数学研究所が2000年に選んだ「ミレニアム問題」7問のうちの1つで、解決したら100万ドル(約1.5億円)もらえます。エンジニアが毎日CFDで回している計算は、厳密には「本当に解があるかわからない方程式を数値的に解いている」という、なかなかシュールな状況なんです。しかも残り6問のうちすでに解かれたのは1問だけ——Navier-Stokesはいまだ人類未踏の領域です。
非圧縮性Navier-Stokes方程式の数値計算手法
空間離散化
NS方程式を数値的に解くにはどうするんですか?
有限体積法(FVM)が商用CFDの主流だ。計算領域をセルに分割し、各セルで保存則の積分形を離散化する。
移流項の離散化
移流項のスキーム選択は精度と安定性に直結する。
| スキーム | 精度 | 安定性 | 数値拡散 | 用途 |
|---|---|---|---|---|
| 1次風上 | $O(h)$ | 非常に安定 | 大 | 初期計算、収束困難時 |
| 2次風上 | $O(h^2)$ | 安定 | 中 | 一般的な定常計算 |
| QUICK | $O(h^3)$ | やや不安定 | 小 | 高精度計算 |
| 中心差分 | $O(h^2)$ | 不安定(高Pe) | なし | LES |
| Bounded CD | $O(h^2)$ | 安定 | 最小限 | LESの標準 |
LESで中心差分を使うのはなぜですか?
数値拡散がSGS渦を人工的に減衰させてしまうからだ。LESでは物理的な渦はできるだけ保存し、SGSモデルでのみ散逸させる必要がある。ただし中心差分はチェッカーボード不安定を起こしやすいので、リミッター付きのBounded Central Differenceが実用的だ。
時間積分
非定常計算の時間積分スキームを比較しよう。
| スキーム | 精度 | 安定性 | CFL制約 |
|---|---|---|---|
| 1次陰的(後退Euler) | $O(\Delta t)$ | 無条件安定 | なし |
| 2次陰的(BDF2) | $O(\Delta t^2)$ | 無条件安定 | なし |
| Crank-Nicolson | $O(\Delta t^2)$ | 無条件安定 | 振動の可能性 |
| 陽的(RK4等) | $O(\Delta t^4)$ | 条件付き安定 | $CFL < 1$ |
CFL条件
CFL数ってよく聞きますけど、正確にはどういう意味ですか?
Courant-Friedrichs-Lewy数は、1タイムステップで情報がセル何個分移動するかの指標だ。
陽的解法では $CFL < 1$ が安定性の必要条件。陰的解法には制約はないが、時間精度のためには $CFL < 5$〜20程度が推奨される。LESでは $CFL < 1$ を守るのが一般的だ。
線形ソルバー
離散化後の連立方程式を解く線形ソルバーの選択も重要だ。
| 対象方程式 | 推奨ソルバー | 備考 |
|---|---|---|
| 圧力(ポアソン方程式) | AMG (代数的マルチグリッド) | 収束が最も困難、全計算時間の50〜80% |
| 運動量 | ILU前処理付きBiCGSTAB | 比較的収束が容易 |
| スカラー(温度等) | Gauss-Seidel or ILU | 線形問題 |
SIMPLE法誕生秘話——圧力と速度の「神経戦」
非圧縮性流れの最大の難関は「圧力方程式がない」ことです。速度と圧力を同時に解こうとすると連立方程式が破綻する。1972年にPatankarとSpaldingがこの難問を解くアルゴリズム「SIMPLE法」を発表しました。アイデアは「まず圧力を仮置きして速度を解き、そこから圧力を補正して速度を再計算する」という反復ループ。シンプルな考え方に見えますが、このアルゴリズムなしに現代の商用CFDコードはほぼ存在できません。毎日Fluentで「Iterations」を眺めているあの画面の裏側は、半世紀前の2人の知恵が動いています。
非圧縮性Navier-Stokes方程式の実務適用
実践ガイド
実務でNS方程式を解くときの基本的なワークフローを教えてください。
以下の手順で進めるのが標準的だ。
解析フロー
1. 問題の定式化: Re数を計算し、層流/乱流を判定。非圧縮条件($Ma < 0.3$)を確認
2. 形状とメッシュ: CADから流体領域を抽出、境界層メッシュ含むメッシュ生成
3. 物理モデル設定: 乱流モデル、定常/非定常、エネルギー方程式の有無
4. 境界条件: 入口(速度 or 圧力)、出口(圧力)、壁面(no-slip)、対称面
5. 求解: ソルバー実行、残差・モニタリング量の確認
6. 後処理・検証: 理論解やベンチマークとの比較、メッシュ収束性の確認
乱流モデルの選定ガイド
乱流モデルが多すぎて選べないんですけど…
最もよく使われるモデルの使い分けを整理しよう。
| モデル | 計算コスト | 剥離の予測 | 推奨用途 |
|---|---|---|---|
| Spalart-Allmaras | 低 | 中程度 | 航空機外装、添付流 |
| Realizable k-epsilon | 低 | 弱い | 管内流、混合、初期検討 |
| SST k-omega | 中 | 良好 | 汎用。迷ったらこれ |
| Transition SST | 中 | 遷移も捕捉 | 低Re翼型、タービン |
| DES/IDDES | 高 | 非常に良好 | 大規模剥離、非定常力 |
| LES (WALE/Sigma) | 非常に高 | 最も正確 | 音響、燃焼、学術 |
メッシュ収束性の確認
メッシュ収束性ってどうやって確認するんですか?
GCI(Grid Convergence Index)法が推奨される。3水準のメッシュ(粗・中・密)で注目量を計算し、Richardson外挿で真値を推定する。
ここで $F_s = 1.25$(安全係数)、$\epsilon$ は中密と密の結果の差、$r$ はメッシュ比、$p$ は収束次数。GCIが5%以下なら十分な収束と判断できる。
典型的なベンチマーク問題
| 問題 | Re | 検証量 | 参照データ |
|---|---|---|---|
| Lid-driven cavity | 100〜10000 | 中心線速度分布 | Ghia et al. (1982) |
| 円柱後流 | 40〜200 | Strouhal数、Cd | 実験多数 |
| 後ろ向きステップ | 36000 | 再付着長さ | Driver & Seegmiller |
| NACA0012翼型 | $6\times10^6$ | Cl, Cd | 風洞データ |
まずベンチマークで自分の計算環境を検証してから、本番の解析に入るべきなんですね。
その通り。ベンチマーク問題で良い結果が出せないなら、実問題の結果も信頼できない。
「収束した」は「正しい」ではない
CFDの実務あるある話。残差が1e-6まで下がって「よし収束した!」と喜んでいたら、流量を確認すると入口と出口でバランスが取れていない——なんてことが現場では普通に起こります。非圧縮性N-S方程式を解くとき、残差は「反復計算のブレ幅」であって「物理的な正確さ」ではない。実際のチェックリストは①連続の式の質量収支、②エネルギーバランス、③壁面y+の確認など複数あります。「収束確認=残差確認」だけで済ませると、見た目はきれいだけど物理的に破綻した結果を堂々と報告書に載せることになります。
非圧縮性Navier-Stokes方程式のソフトウェア比較
主要CFDソルバーの比較
非圧縮NS方程式を解く主要なソルバーを比較してもらえますか?
商用・オープンソースの主要ソルバーを整理しよう。
| ソルバー | 開発元 | 離散化 | 主な強み |
|---|---|---|---|
| Ansys Fluent | Ansys Inc. | FVM (セル中心) | 汎用性、GUI、サポート |
| Ansys CFX | Ansys Inc. | FVM (頂点中心) | 結合型ソルバー、ターボ機械 |
| STAR-CCM+ | Siemens | FVM (セル中心) | 自動メッシュ、ポリヘドラル |
| OpenFOAM | オープンソース | FVM (セル中心) | 自由度、拡張性、無償 |
| COMSOL | COMSOL AB | FEM | マルチフィジックス連成 |
ソルバータイプの違い
Fluent のPressure-Based と Density-Based ってどう違うんですか?
非圧縮性流れでは Pressure-Based ソルバーを使う。
| Pressure-Based | Density-Based | |
|---|---|---|
| 対象 | 非圧縮〜低速圧縮 | 高速圧縮性(Ma > 0.3) |
| 圧力の決定 | 圧力補正法 | 状態方程式 |
| 連成 | Segregated or Coupled | Coupled(暗黙的) |
| 適用Ma数 | 0〜数Ma程度 | 全Ma数 |
OpenFOAMのソルバー選択
OpenFOAMはソルバーがたくさんあって迷います。
非圧縮性の主要ソルバーを整理しよう。
| ソルバー名 | 定常/非定常 | アルゴリズム | 用途 |
|---|---|---|---|
| simpleFoam | 定常 | SIMPLE | 最も基本的 |
| pisoFoam | 非定常 | PISO | 汎用非定常 |
| pimpleFoam | 非定常 | PIMPLE (PISO+SIMPLE) | 大きいCFL数で安定 |
| icoFoam | 非定常 | PISO (層流のみ) | 学習用、低Re |
| adjointOptimisationFoam | 定常 | 随伴法 | 形状最適化 |
ライセンスとコスト
| ソルバー | ライセンス形態 | 年間コスト目安 |
|---|---|---|
| Fluent | 商用(ノードロック/フローティング) | 数百万円〜 |
| STAR-CCM+ | 商用(トークン制) | 数百万円〜 |
| OpenFOAM | GPL (オープンソース) | 無償(サポートは有償) |
| COMSOL CFD Module | 商用(モジュール別) | 100万円台〜 |
OpenFOAMは無料で使えるけど、サポートがないのがネックですね。
ESI GroupやCFD directが有償サポートを提供している。また、大学や研究機関ではOpenFOAMのコミュニティが充実しているので、情報は入手しやすい。商用ツールは安定性とサポートに対価を払う、という判断だ。
ANSYSもOpenFOAMも、根っこは同じ大学の研究室
主要CFDコードの系譜を辿ると、多くはImperial College London(ロンドン帝国大学)のSpalding教授の研究室に行き着きます。SIMPLE法を発明した研究室です。Fluentの原型もそこから派生し、後にAnsysに買収されました。OpenFOAMも同系統の思想を引き継いでいます。つまり、商用の高級ライセンスを使っていても、フリーのOpenFOAMを使っていても、数値スキームの「DNA」はほぼ共通。ベンダーが違っても計算結果が近いのは、そういう歴史的な理由もあります。
非圧縮性Navier-Stokes方程式の先端研究
先端トピック
NS方程式の数値解法で、最新の動向はどんなものですか?
いくつかの重要なトレンドを紹介しよう。
DNS(直接数値シミュレーション)の進展
DNSはNS方程式を乱流モデルなしで直接解く。すべてのスケールを解像するため、セル数は $N \propto Re^{9/4}$ でスケールする。
| Re_tau | セル数(チャネル流) | 計算資源 |
|---|---|---|
| 180 | 約$10^6$ | ワークステーション |
| 1000 | 約$10^9$ | 中規模HPC |
| 5200 | 約$10^{11}$ | 大規模HPC (Lee & Moser 2015) |
| 工業Re ($10^6$以上) | $10^{18}$以上 | 現時点で不可能 |
工業的なReでDNSは当分無理なんですね。
そう。だからこそRANSやLESの精度向上が重要であり続ける。
GPUによるCFDの加速
GPUの並列性を活かしたCFDが急速に普及している。
- Fluent (2024+): Native GPU Solver。最大10倍の高速化
- AmgX: NVIDIAのAMGライブラリ。圧力ポアソンの高速解法
- LBM: 格子ボルツマン法はGPUとの相性が特に良い
物理インフォームドニューラルネットワーク (PINN)
PINNはNS方程式を損失関数に組み込んだニューラルネットワークだ。
メッシュ不要で逆問題にも対応できるが、現時点では高Re乱流の正解法には程遠い。実験データとの融合(データ同化)には有望だ。
高精度手法
FVMの2次精度を超える手法も進展している。
| 手法 | 精度 | 特徴 |
|---|---|---|
| Spectral Element (Nek5000/NekRS) | 高次(p次) | DNS/LESに最適 |
| Discontinuous Galerkin (DG) | 任意高次 | 衝撃波にも対応 |
| Flux Reconstruction (FR) | 任意高次 | DGの効率的実装 |
| Lattice Boltzmann (PowerFLOW) | 2次 | 空力音響に強い |
100年以上前の方程式が、今でもこれほど活発に研究されてるとは驚きです。
NS方程式は流体力学のすべてを内包している。計算機の進歩とアルゴリズムの革新によって、解ける問題の範囲が着実に広がっている。
DNS計算のとんでもないコスト
乱流の直接数値シミュレーション(DNS)はNavier-Stokes方程式をモデルなしで解く究極の手法ですが、必要なグリッド数がRe数の9/4乗に比例して増えます。自動車まわりの流れ(Re≈10^7)をDNSで解こうとすると、単純計算で地球上のすべてのコンピュータを束ねても計算が終わらない規模になります。現在DNSが実用的なのはせいぜいRe数が数千程度のチャネル流れ。「DNSが使える≒よほど小さい・遅い流れ」と覚えておくと、論文の主張の重さが実感できます。
非圧縮性Navier-Stokes方程式のトラブル対応
トラブルシューティング
NS方程式を解くときによく遭遇するトラブルを教えてください。
発散(divergence)と非物理的な結果が二大トラブルだ。
1. 計算が発散する
症状: 残差が急増し、速度や圧力が$10^{20}$等の異常値に。
| 原因 | 診断 | 対策 |
|---|---|---|
| CFL数が大きすぎる | タイムステップ確認 | $\Delta t$ を半分にする |
| メッシュ品質不良 | 最小Orthogonal Quality確認 | 0.1以下のセルを修正 |
| 境界条件の矛盾 | 入出口の流量バランス | BC見直し |
| 初期条件が不適切 | 初期速度場が非物理的 | ポテンシャル流で初期化 |
| 緩和係数が高すぎる | SIMPLE設定確認 | 圧力0.3, 運動量0.5で試行 |
2. 残差が停滞する
残差が$10^{-3}$くらいで止まっちゃうんですけど…
対策の優先順位:
1. メッシュ品質の確認・改善
2. 2次精度で計算開始し、1次で初期化してから切替
3. 緩和係数の調整(上げすぎると発散、下げすぎると停滞)
4. Coupled ソルバーに切替(Fluent の場合)
5. 初期条件の改善(粗メッシュの解を補間)
3. 非物理的な逆流
症状: 出口境界で逆流(Reversed Flow)の警告が大量に出る。
原因: 出口が流れの剥離・再循環領域に近すぎる。
対策:
- 出口を下流に延長(管径の10〜20倍)
- Fluentなら Prevent Backflow オプションを有効化
- 逆流時の温度・乱流量の値を適切に設定
4. 圧力振動(チェッカーボード)
症状: 圧力場に市松模様状の振動が見られる。
原因: コロケーション格子でのRhie-Chow補間が不十分、またはメッシュの非直交性が高い。
対策:
- 圧力の離散化を PRESTO! (Fluent) に変更
- OpenFOAMなら nNonOrthogonalCorrectors を増やす
- メッシュの直交性を改善
5. 定常計算が収束しない(物理的な原因)
どんなにメッシュを改善しても定常計算が収束しないことがあるんですが…
流れ自体が非定常の場合がある。 カルマン渦列(Re > 47 で発生)のように、物理的に非定常な流れを定常計算で解こうとすると残差が振動し続ける。このときは非定常計算に切り替えること。モニタリング量の時間変動を確認し、周期的振動が見られたら非定常で解くべきだ。
物理を理解していないと、数値的なトラブルなのか物理的な現象なのか区別がつかないんですね。
まさにその通り。CFDのデバッグには流体力学の基礎知識が不可欠だ。
発散の犯人、9割は境界条件
「計算が発散した!」——CFD初学者が最初に壁にぶつかるのがこれです。原因として真っ先に疑われるのはメッシュ品質やタイムステップですが、現場の経験則では「発散の原因9割は境界条件の設定ミス」と言われています。例えば、入口を速度境界にして出口も圧力固定にしないと、方程式系が数学的に不定になって発散します。非圧縮性流れは特に圧力境界の設定が繊細で、「少なくとも1か所は圧力を絶対値で固定する」というルールを押さえておくだけで、謎の発散トラブルの大半は防げます。
関連トピック
なった
詳しく
報告