非圧縮性Navier-Stokes方程式
理論と物理
概要
先生、Navier-Stokes方程式ってCFDの根幹ですよね。非圧縮性の場合を詳しく教えてください。
CFDで解く方程式の中で最も基本的かつ重要なものだ。非圧縮性NS方程式はニュートン流体の粘性流れを記述する。連続の式と運動量方程式のセットで構成される。
支配方程式
非圧縮性NS方程式は次の2式だ。
運動量方程式(ニュートンの第2法則):
各項の物理的意味を教えてください。
成分表示($x$方向)で書くとわかりやすい。
Reynolds数
Reynolds数ってNS方程式とどう関係するんですか?
方程式を代表速度 $U$、代表長さ $L$ で無次元化すると、唯一のパラメータとしてRe数が現れる。
$$ \frac{\partial \mathbf{u}^*}{\partial t^*} + (\mathbf{u}^* \cdot \nabla^*)\mathbf{u}^* = -\nabla^* p^* + \frac{1}{Re}\nabla^{*2}\mathbf{u}^* $$
$$ Re = \frac{UL}{\nu} = \frac{\text{慣性力}}{\text{粘性力}} $$
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はいまだ人類未踏の領域です。
各項の物理的意味
- 時間項 $\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$。時間刻みの安定性に直結 |
数値解法と実装
空間離散化
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 = \frac{u\Delta t}{\Delta x} $$
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人の知恵が動いています。
風上差分(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次だが、流れの方向を正しく捕捉するため安定性が高い。
実践ガイド
実践ガイド
実務で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+の確認など複数あります。「収束確認=残差確認」だけで済ませると、見た目はきれいだけど物理的に破綻した結果を堂々と報告書に載せることになります。
解析フローのたとえ
CFDの解析フローは「水族館の水槽を設計する」感覚で考えてみてください。まず水槽の形を決め(計算領域)、水の入り口と出口を設計し(境界条件)、ポンプの強さを設定する(流量条件)。魚がどう泳ぐか見たければ粒子追跡。水温が気になれば熱解析を追加。…どうですか? 意外と直感的ではありませんか?
初心者が陥りやすい落とし穴
「y+って何ですか?」——この質問が出たら要注意。壁面近くのメッシュ解像度を表すy+は、CFDの結果精度を左右する最重要パラメータの1つ。壁関数を使うなら30〜300、壁を完全に解像するなら1以下。これを確認せずに「摩擦抵抗が合わない!」と悩む人がとても多い。体温計の先端をちゃんと脇に挟まないで「熱がないのに37.5度って出た!」と慌てているようなものです。
境界条件の考え方
入口の境界条件は「蛇口をどのくらい開けるか」と同じ。ちょろちょろ出すか(低速)、全開にするか(高速)。でもCFDではもう一つ——「どのくらい暴れた水を出すか」(乱流強度)も指定する必要があります。蛇口の開け方を間違えると、下流のシンク全体の流れが変わりますよね? CFDでも入口条件のミスは下流全体に波及します。
ソフトウェア比較
主要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」はほぼ共通。ベンダーが違っても計算結果が近いのは、そういう歴史的な理由もあります。
選定で最も重要な3つの問い
- 「何を解くか」:非圧縮性Navier-Stokes方程式に必要な物理モデル・要素タイプが対応しているか。例えば、流体ではLES対応の有無、構造では接触・大変形の対応能力が差になる。
- 「誰が使うか」:初心者チームならGUIが充実したツール、経験者ならスクリプト駆動の柔軟なツールが適する。自動車のAT車(GUI)とMT車(スクリプト)の違いに似ている。
- 「どこまで拡張するか」:将来の解析規模拡大(HPC対応)、他部門への展開、他ツールとの連携を見据えた選択が長期的なコスト削減につながる。
先端技術
先端トピック
NS方程式の数値解法で、最新の動向はどんなものですか?
いくつかの重要なトレンドを紹介しよう。
DNS(直接数値シミュレーション)の進展
DNSはNS方程式を乱流モデルなしで直接解く。すべてのスケールを解像するため、セル数は $N \propto Re^{9/4}$ でスケールする。
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が使える≒よほど小さい・遅い流れ」と覚えておくと、論文の主張の重さが実感できます。
トラブルシューティング
トラブルシューティング
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か所は圧力を絶対値で固定する」というルールを押さえておくだけで、謎の発散トラブルの大半は防げます。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——非圧縮性Navier-Stokes方程式の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告