VOF法(Volume of Fluid) — 数値解法と実装
数値解法の詳細
VOF法の具体的な解法アルゴリズムを教えてください。
VOF法は基本的にSIMPLE系アルゴリズムやPISO法の枠組みの中で、体積分率方程式を追加で解くことになる。1タイムステップの流れはこうだ。
1. 体積分率 $\alpha$ を前ステップから輸送方程式で更新
2. 物性値($\rho$, $\mu$)を $\alpha$ から再計算
3. 運動量方程式を解いて仮の速度場を求める
4. 圧力Poisson方程式を解いて圧力補正
5. 速度場を補正
6. 収束するまで繰り返し
タイムステップの制約はありますか?
VOF法では界面のCourant数が重要だ。
界面近傍では $Co < 0.25$(最大でも0.5)を守る必要がある。体積全体では $Co < 1$ で十分でも、界面の解像度を確保するために、界面付近だけタイムステップを細かくするサブサイクリングが使われることが多い。
サブサイクリングって何ですか?
メインの流れ場は大きなタイムステップで解きつつ、$\alpha$ の輸送方程式だけをそのタイムステップ内で複数回小刻みに解く手法だ。Ansys Fluentでは自動的に実行されるし、OpenFOAMでは nAlphaSubCycles で指定できる。
表面張力の数値的取り扱い
表面張力の計算って難しいんですか?
実は多相流CFDで最も数値的に厄介なのが表面張力項だ。CSFモデルでは曲率 $\kappa$ の計算精度が問題になる。$\alpha$ の勾配から法線を求め、その発散で曲率を計算するため、$\alpha$ の分布がステップ関数的であるほど数値微分のノイズが大きい。
これが「寄生流(parasitic currents)」と呼ばれるスプリアスな速度場を生む。静止している液滴の周りに非物理的な渦が発生する現象だ。対策としては以下がある。
- 界面のスムージング(法線計算前に $\alpha$ を平滑化)
- Height Function法(構造格子向けの高精度曲率計算)
- CSS(Continuum Surface Stress)モデル
- Sharp Surface Force法(界面を再構成してから表面力を計算)
寄生流ってどの程度問題になるんですか?
毛細管数 $Ca = \mu U / \sigma$ が小さい流れ、つまり表面張力が支配的な流れ(マイクロ流体デバイスなど)では深刻だ。寄生流の速度が物理的な流速と同程度になることもある。
OpenFOAMでの実装
OpenFOAMでVOF法を使うにはどうすればいいですか?
interFoam ソルバーがVOF法の標準実装だ。主要な設定ファイルは以下の通り。
| ファイル | 設定内容 |
|---|---|
| constant/transportProperties | 二相の物性値($\rho$, $\nu$, $\sigma$) |
| system/fvSchemes | $\alpha$ の移流スキーム(interfaceCompression等) |
| system/fvSolution | $\alpha$ のサブサイクル数、PIMPLE設定 |
| 0/alpha.water | 初期の体積分率場 |
fvSchemes では div(phi,alpha) に Gauss vanLeer や Gauss interfaceCompression を指定する。界面圧縮項の強度は cAlpha パラメータ(通常1.0)で制御する。
Fluent側のポイントも教えてください。
Ansys Fluentでは Multiphase Model から VOF を選択する。キーポイントは以下だ。
- Scheme: Explicit vs. Implicit(Explicitが高精度だが $Co$ 制約あり)
- Interface Modeling: Sharp vs. Dispersed
- Body Force Formulation: Implicit Body Force を有効にすると表面張力の安定性向上
- Geo-Reconstruct: 界面精度が必要な場合に選択
ライト兄弟は最初の「CFDエンジニア」だった?
ライト兄弟は1901年に自作の風洞で200以上の翼型を試験しました。当時のコンピュータは? もちろん存在しません。彼らは手作業で揚力と抗力を測定し、最適な翼型を見つけ出した。現代のCFDエンジニアがFluent1発で計算する揚力係数を、ライト兄弟は何百回もの風洞実験で手に入れたのです。
離散化手法の詳細解説
空間離散化における手法選択が数値精度・安定性・計算コストに与える影響を詳述する。
風上差分(Upwind)
1次風上: 数値拡散が大きいが安定。2次風上: 精度向上するが振動のリスク。高レイノルズ数流れでは必須。
中心差分(Central Differencing)
2次精度だが、Pe数 > 2で数値振動が発生。低レイノルズ数の拡散支配流れに適する。
TVDスキーム(MUSCL、QUICK等)
リミッタ関数により数値振動を抑制しつつ高精度を維持。衝撃波や急勾配の捕捉に有効。
有限体積法 vs 有限要素法
FVM: 保存則を自然に満足。CFDの主流。FEM: 複雑形状・マルチフィジックスに有利。SPH等のメッシュフリー法も発展中。
マトリクスソルバーの選定指針
問題規模と特性に応じた最適なソルバー選択のガイドライン。
| ソルバー種別 | 詳細・推奨条件 |
|---|---|
| 圧力-速度連成(SIMPLE系) | SIMPLE: 標準的だが収束が遅い。SIMPLEC: 圧力補正の緩和が改善。PISO: 非定常問題に適する。 |
| 連立系ソルバー | AMG(代数的マルチグリッド): 大規模問題の標準。ILU前処理: メモリ効率良好。ブロックGauss-Seidel: 連成系に有効。 |
| DOF別推奨 | 〜10⁵セル: SIMPLE+AMG、10⁵〜10⁷セル: SIMPLEC+AMG+並列、10⁷セル〜: 結合型ソルバー(Coupled Solver)を検討 |
時間積分法と収束判定
ソルバー内部の制御パラメータと収束判定基準について記述する。
CFL条件(クーラン数)
陽解法: CFL ≤ 1が安定条件。陰解法: CFL > 1でも安定だが、精度と反復回数に影響。LES: CFL ≈ 1を推奨。物理的意味: 1タイムステップで情報が1セル以上進まないこと。
残差モニタリング
連続の式・運動量・エネルギーの各残差が3〜4桁低下で収束と判断。質量保存の残差は特に重要。
緩和係数
圧力: 0.2〜0.3、速度: 0.5〜0.7が一般的な初期値。発散する場合は緩和係数を下げる。収束後は上げて加速。
非定常計算の内部反復
各タイムステップ内で定常解に収束するまで反復。内部反復数: 5〜20回が目安。残差がタイムステップ間で変動する場合は時間刻みを見直す。
数値解法の直感的理解
FVMのイメージ
有限体積法は「会計帳簿」に似ている。各セル(口座)について「入ってくる量」と「出ていく量」の収支を厳密に管理する。隣のセルに流れ出た量は、そのセルに流れ込む量と完全に一致する——これが「保存性」であり、流体解析で質量やエネルギーが勝手に増減しないことを保証する。
SIMPLE法のたとえ
SIMPLE法は「交互に調整する」手法。まず速度を仮に求め(予測ステップ)、その速度で質量保存が満たされるよう圧力を補正し(補正ステップ)、補正された圧力で速度を修正する——このキャッチボールを繰り返して正解に近づく。2人で棚を水平にする作業に似ている:片方が高さを合わせ、もう片方がバランスを取り、これを交互に繰り返す。
風上差分のたとえ
風上差分は「川の流れに立って上流の情報を重視する」手法。川の中にいる人が下流を見ても水の出所は分からない——上流の情報が下流を決めるという物理を反映した離散化手法。精度は1次だが、流れの方向を正しく捕捉するため安定性が高い。
CFDメッシュの品質管理や乱流モデルの選定に悩む時間を、もっと創造的な設計作業に使えたら。 — Project NovaSolverはそんな実務者の声から生まれました。
CAEの未来を、実務者と共に考える
Project NovaSolverは、VOF法における実務課題の本質に向き合い、エンジニアリングの現場を支える道具づくりを目指す研究開発プロジェクトです。
プロジェクトの最新情報を見る →