連続の式(質量保存)
連続の式(質量保存)の理論基礎
概要
先生、連続の式ってNS方程式と並んで出てきますけど、何を表してるんですか?
質量保存則の微分形だ。「流体はどこからともなく湧いたり消えたりしない」という物理を数式にしたもの。CFDのすべての基盤だよ。
一般形(圧縮性流れ)
任意の流体に対する連続の式は次の通り。
展開すると、
各項はどう読めばいいんですか?
$\partial\rho/\partial t$ は検査体積内の密度変化率。$\nabla\cdot(\rho\mathbf{u})$ は検査体積表面を通る質量フラックスの正味流出率。両者の和がゼロ、つまり質量が保存されるということだ。
物質微分形
物質微分 $D/Dt$ を使うと別の形で書ける。
これは「流体粒子に乗って見たときの密度変化率は、速度場の発散に比例する」ことを意味する。
非圧縮性流れの場合
非圧縮なら $\rho$ は一定ですよね?
その通り。$D\rho/Dt = 0$ なので、連続の式は非常にシンプルになる。
成分表示では、
これは「速度場が発散フリー(divergence-free)」であることを意味する。ソレノイダル条件とも呼ばれる。
非圧縮でも密度が場所によって違うケース(多相流とか)はありませんか?
鋭い指摘だ。例えば温度差による浮力流れ(Boussinesq近似)では密度変化を浮力項にだけ考慮し、連続の式は $\nabla\cdot\mathbf{u}=0$ のまま使う。ただし、VOF(Volume of Fluid)法で水と空気を扱う場合は密度が不連続に変わるので、圧縮性形の連続の式を使う必要がある。
積分形
有限体積法の基礎となる積分形も重要だ。検査体積 $V$ に対して、
FVMでは各セルでこの積分形を離散化する。セル面を通る質量フラックスの収支がゼロになるよう圧力場を調整するのがSIMPLEアルゴリズムの核心だ。
血管が詰まると流速が16倍になる
連続の式(質量保存)が日常生活に直結する最も怖い例は動脈狭窄です。断面積が半分になると流速は2倍になりますが、直径が半分になると断面積は4分の1になるため流速は4倍。では直径が半分の動脈硬化が起きたら? 流速は4倍、そして壁面せん断応力は流速の二乗に比例するので実に16倍以上になります。プラークが積もった動脈の壁にこんな応力がかかっていたら——そりゃ剥がれますよ、という話です。連続の式は教科書では地味な式ですが、心臓外科医も毎日使っています。
連続の式(質量保存)の数値計算手法
非圧縮性流れにおける圧力の役割
非圧縮性だと連続の式に圧力が入ってないですよね。圧力はどうやって決まるんですか?
核心を突いた質問だ。非圧縮NS方程式では密度が既知なので、連続の式 $\nabla\cdot\mathbf{u}=0$ は状態方程式の代わりに圧力を決める制約条件として働く。圧力は「速度場を発散フリーに保つためのラグランジュ乗数」と解釈できる。
圧力-速度連成法
代表的なアルゴリズムを整理しよう。
| 手法 | 概要 | 適用 |
|---|---|---|
| SIMPLE | 圧力補正法。仮速度→圧力補正→速度補正 | 定常・非定常 |
| SIMPLEC | SIMPLEの収束加速版。補正の緩和が不要 | 定常問題 |
| PISO | 1ステップ内で2回圧力補正。非定常向き | 非定常問題 |
| 分離法(Fractional Step) | 速度予測→圧力ポアソン→速度射影 | 非定常・学術コード |
| Coupled | 速度と圧力を同時に解く | 高速収束が必要な場合 |
SIMPLEが一番よく見る気がします。
SIMPLEの圧力補正方程式は、連続の式から導かれるポアソン型方程式だ。
ここで $p'$ は圧力補正値、$\mathbf{u}^$ は仮速度(運動量方程式から暫定的に求めた速度)、$a_P$ は運動量方程式の対角係数。$\nabla\cdot\mathbf{u}^ \neq 0$ の残差を $p'$ で修正する。
質量保存の検証
計算結果で質量保存が守られているか、どう確認すればいいですか?
各面の質量流量の収支を確認する。
Fluentなら Report > Fluxes > Mass Flow Rate で各境界面の流量を確認できる。imbalanceが全体流量の0.1%以下なら十分に収束している。
Rhie-Chow補間
コロケーション格子(速度と圧力を同じ位置に配置)では、チェッカーボード不安定性が生じる。Rhie-Chow補間はセル面の速度に圧力勾配の補正を加えてこの問題を解消する手法で、現代の有限体積法ソルバーでは標準的に採用されている。
連続の式は一見シンプルなのに、数値実装では相当な工夫が必要なんですね。
そう。非圧縮CFDの難しさの大半は「連続の式をいかに満たすか」、つまり圧力-速度連成の問題に帰着する。
流量計はみんな連続の式で動いている
工場の配管に使われている差圧式流量計(オリフィス流量計)の仕組みは、連続の式そのものです。絞り部で断面積を小さくして流速を上げると、ベルヌーイの定理で圧力が下がる。その前後の圧力差を測れば、逆算で流量がわかります。航空機の対気速度計(ピトー管)も同じ原理。数値解析でも、計算後に「入口流量=出口流量」が成立しているかを確認するのは基本中の基本です。もし連続の式が成立していなければ、メッシュにどこかリークがあるか、境界条件が矛盾しています。
連続の式(質量保存)の実務適用
実践ガイド
質量保存を正しく扱うための実務上のポイントを教えてください。
質量保存の違反はCFD結果全体の信頼性を損なう。以下の点に注意しよう。
境界条件と質量保存
入口・出口の境界条件の組み合わせが質量保存に直結する。
| 入口 BC | 出口 BC | 質量保存 | 注意点 |
|---|---|---|---|
| Velocity Inlet | Pressure Outlet | 自動で満足 | 出口圧力が結果に影響 |
| Mass Flow Inlet | Pressure Outlet | 自動で満足 | 最も確実 |
| Pressure Inlet | Pressure Outlet | 圧力差で流量が決まる | 流量の事前予測が困難 |
| Velocity Inlet | Outflow | 自動で満足 | 出口で完全発達流を仮定 |
入口と出口の両方にVelocity条件を設定するのはまずいですか?
基本的にNGだ。入口と出口の質量流量が自動的に一致する保証がなく、非物理的な圧力場が発生する。必ず片方は圧力条件にすること。
多相流での質量保存
VOF法で気液二相流を解くとき、質量保存は大丈夫ですか?
VOF法では体積分率 $\alpha$ の輸送方程式を解く。
$\alpha$ が0〜1の範囲を超える(undershoot/overshoot)と質量保存が崩れる。対策として以下が有効。
- 界面圧縮スキーム: Fluentの Geo-Reconstruct, STAR-CCM+の HRIC
- Courant数の制限: VOFでは $Co < 0.25$ が推奨(全体は $Co < 1$)
- AMR(適応メッシュ細分化): 界面近傍のみ自動細分化
質量不足の診断フロー
質量が合わないときの調査手順を示そう。
1. グローバル質量収支: 入出口の流量差を確認(0.1%以下が目標)
2. 残差の確認: 連続の式の残差が十分に低下しているか($10^{-4}$以下)
3. 局所的な流量チェック: 断面ごとの流量をモニタリング
4. メッシュ品質: 非直交性が高いセルで数値的な質量漏洩が起きていないか
残差が下がっていても質量が合わないことがあるんですか?
スケーリングの問題で残差の絶対値が小さく見えても、実際の質量不均衡が大きい場合がある。必ず Flux Report で実値を確認すること。
ホースを指で塞ぐと水が遠くに飛ぶ理由
庭のホースで水まきをするとき、先端を指で半分塞ぐと水が遠くまで飛びますよね。これ、連続の式がそのまま体験できる現象です。ホース断面積が半分になれば、流量を保つために流速が2倍になる。そして「動圧 = 0.5ρv²」なので流速が2倍なら動圧は4倍になり、水が勢いよく飛ぶ。消防の放水ノズルも同じ原理で設計されています。直径を絞ることで少ないポンプ出力でも到達距離を稼げる——連続の式は設計者の強力な道具です。
連続の式(質量保存)のソフトウェア比較
圧力-速度連成法の実装比較
各ソルバーで圧力-速度の連成手法って違うんですか?
根本原理は同じだが、実装の詳細とデフォルト設定が異なる。
| ソルバー | 分離型(Segregated) | 結合型(Coupled) | デフォルト |
|---|---|---|---|
| Fluent | SIMPLE, SIMPLEC, PISO | Coupled (圧力ベース) | Coupled |
| CFX | なし | Coupled のみ | Coupled |
| STAR-CCM+ | SIMPLE | Coupled | SIMPLE |
| OpenFOAM | SIMPLE (simpleFoam), PISO (pisoFoam) | block-coupled (非標準) | 問題に応じて選択 |
Coupled と SIMPLE の使い分けはどうすればいいですか?
一般に次の通り。
- Coupled: 収束が速い、メモリ使用量が多い。定常問題に強い
- SIMPLE/SIMPLEC: メモリ効率が良い。緩和係数の調整が必要
- PISO: 非定常問題専用。時間刻みごとに少ない反復で収束
質量保存の精度
有限体積法はセルごとの保存則を厳密に満たすため、理論上は質量保存がマシン精度で保証される。ただし以下の条件で劣化する。
| 状況 | 質量保存への影響 | 対策 |
|---|---|---|
| 非直交メッシュ | 面フラックスの補正誤差 | 非直交補正の反復回数を増やす |
| AMR(適応細分化) | 細分化/粗化時の質量不均衡 | 保存的な補間スキーム使用 |
| 移動メッシュ | GCL (Geometric Conservation Law) 違反 | GCL準拠のメッシュ速度計算 |
| 人工圧縮性法 | 定常到達前は質量保存しない | 十分な疑似時間発展 |
OpenFOAMでの連続の式の確認
OpenFOAMで質量保存を確認するにはどうすればいいですか?
ログファイルの continuity errors を確認する。sum local と global の値が出力される。globalが $10^{-10}$ 以下であれば良好。また、postProcess -func 'flowRatePatch(name=inlet)' で各パッチの流量を直接確認できる。
どのソルバーでも、質量保存の確認は計算後の最初のチェック項目ですね。
その通り。質量が保存されていない結果には一切の意味がない。
ツールによって「保存性」の強さが違う
CFDツールを選ぶとき、「連続の式がどれだけ厳密に保たれるか」はあまり語られないポイントです。有限体積法ベースのOpenFOAMやFluentは「保存形式」で離散化するため、セルごとの質量収支が厳密に成立します。一方、有限要素法ベースのコードは形状自由度が高い反面、局所的な質量保存が甘くなることがあります。長距離輸送シミュレーション(例えばパイプラインの数時間分の過渡解析)では、この違いが長時間積算してじわじわと誤差に効いてきます。用途に合わせたツール選定が重要な理由のひとつです。
連続の式(質量保存)の先端研究
先端トピック
連続の式に関連した最新の研究ってどんなものがありますか?
質量保存は不変だが、その数値的な実現方法は今も進化し続けている。
人工圧縮性法(ACM)
非圧縮流れに人工的な圧縮性を導入し、圧力波を伝播させて定常解を求める手法だ。
ここで $\tau$ は疑似時間、$\beta$ は人工音速。圧力のポアソン方程式を解く必要がなく、GPUとの親和性が高い。ただし非定常計算では二重時間積分(dual time stepping)が必要になる。
格子ボルツマン法(LBM)での質量保存
LBMでも連続の式は成り立つんですか?
LBMは分子の速度分布関数を格子上で衝突・輸送する手法だ。Chapman-Enskog展開により、マクロな連続の式とNS方程式を漸近的に再現する。
質量保存は分布関数の総和が保存されることで自動的に満たされる。PowerFLOWやProLBはこの手法を商用化している。
発散フリー条件の射影法
高精度な非圧縮ソルバーでは、Helmholtz-Hodge分解に基づく射影法が使われる。
ここで $\nabla\cdot\mathbf{u}^{n+1} = 0$ の条件から圧力ポアソン方程式が導かれる。
このポアソン方程式の高速解法(FFT、マルチグリッド、AMG等)がCFDの計算効率を左右する。
混相流での質量保存の厳密化
Level Set法は界面の追跡精度は高いが質量保存性に欠ける。CLSVOF(Coupled Level Set + VOF)やMOF(Moment of Fluid)法は、VOFの質量保存性とLevel Setの幾何精度を組み合わせた手法だ。
「質量を保存する」という当たり前のことが、数値的にはこんなに奥深いんですね。
宇宙でも成立する連続の式
連続の式は地球上の流体だけでなく、太陽風の流れや銀河のガス雲にも適用されます。天体物理学では「質量フラックス保存」として、太陽から吹き出す荷電粒子の流れを記述するのに使われています。面白いのは、連続の式は「相対論的流体力学」でも形は変わらず成立すること(ただし4次元時空ベクトルに拡張されます)。つまり光速に近い速さで流れるブラックホール近傍のガスも、連続の式の支配下にある——スケールを超えた物理の普遍性です。
連続の式(質量保存)のトラブル対応
トラブルシューティング
質量保存に関連するCFDの問題ってどういうものがありますか?
連続の式の残差が下がらない問題は、CFDで最も頻繁に遭遇するトラブルだ。
1. 連続の式の残差が下がらない
症状: continuity残差が$10^{-1}$〜$10^{-2}$で停滞。
考えられる原因と対策:
| 原因 | 診断方法 | 対策 |
|---|---|---|
| メッシュ品質不良 | Orthogonal Quality < 0.1 のセルを確認 | メッシュ修正 |
| 緩和係数が不適切 | 圧力の緩和係数が低すぎる | SIMPLE: 圧力0.3, 運動量0.7で開始 |
| 初期条件が不適切 | 速度場が非物理的 | 良好な初期値を与える |
| 境界条件の不整合 | 入口流量と出口条件の矛盾 | BCの見直し |
2. 局所的な質量漏洩
全体の質量収支は合ってるのに、局所的に変な値が出ることがあるんですけど…
症状: 壁面を通って流体が漏れているように見える。
原因: 非直交補正が不十分。非構造メッシュでは面法線ベクトルとセル中心間ベクトルがずれるため、面フラックスに補正が必要。
対策:
- Fluentなら Non-Orthogonal Correctors を増やす(デフォルト0→2〜3)
- OpenFOAMなら
nNonOrthogonalCorrectors 2;を fvSolution に設定
3. 圧縮性流れでの質量保存異常
症状: 衝撃波近傍で質量フラックスが振動。
対策: TVD(Total Variation Diminishing)スキームやリミッターを使用。Fluentなら Second Order Upwind + Gradient Limiter、OpenFOAMなら vanLeer や Minmod リミッター。
4. 非定常計算での質量蓄積
非定常計算で時間とともに質量が徐々にずれていくんですが…
原因: 各時間ステップでの収束が不十分(内部反復が足りない)。
対策:
- 各時間ステップの内部反復回数を増やす(20回以上)
- 残差が十分低下してから次の時間ステップに進む
- 時間刻みを小さくする(CFL数を下げる)
連続の式の残差は、計算がうまくいっているかの最も基本的なバロメーターですね。
その通り。他の残差がいくら下がっていても、continuityが収束していなければ結果は信頼できない。まずcontinuityの残差をチェックすることを習慣にしよう。
「質量が湧いてくる」バグの見つけ方
CFDの計算後に質量収支レポートを確認したら「入口100 kg/s、出口98 kg/s」——2 kg/sが消えている。こんな状況に出くわしたことはありませんか? 原因として多いのは①周期境界条件の設定ミス、②スリップ境界で流体が「壁を抜けている」、③パッチ接合部のメッシュ不整合です。逆に「出口が入口より多い」場合は内部でソース項が予期せず発生しています。コツは「まず面ごとに流量を書き出す」こと。どこで質量が増減しているかを地道に追うのが、このタイプのバグ潰しの王道です。
関連トピック
なった
詳しく
報告