キャビティ流れ(蓋駆動) — 理論と支配方程式
概要
先生、lid-driven cavity ってCFDで一番最初にやるベンチマーク問題ですよね?
その通り。正方形キャビティの上面(蓋)を一定速度で水平にスライドさせる問題だ。幾何形状が単純で境界条件も明確、しかもRe数を変えると豊かな流れ構造が現れる。Ghia et al. (1982) のベンチマークデータが40年以上にわたって使われ続けている。
問題設定
問題の定式化を教えてください。
正方形キャビティ(一辺 $L$)の上壁面が速度 $U$ で $x$ 方向に移動する。他の3壁面は静止。支配方程式は非圧縮Navier-Stokes方程式だ。
無次元パラメータは $Re = UL/\nu$ の一つだけだ。境界条件は、
- 上壁面: $u = U$, $v = 0$
- 下壁面・左壁面・右壁面: $u = 0$, $v = 0$
流れ構造のRe依存性
Re数によってどう変わるんですか?
以下のように整理できる。
| Re | 主渦の位置(中心座標) | コーナー渦 | 流れの性質 |
|---|---|---|---|
| 100 | (0.6189, 0.7344) | 下隅に微小渦 | 定常、主渦がやや上方・右寄り |
| 400 | (0.5547, 0.6055) | 下両隅に渦 | 定常、主渦が中心に近づく |
| 1000 | (0.5313, 0.5625) | 下両隅+左上に渦 | 定常、主渦がほぼ中心 |
| 5000 | (0.5117, 0.5352) | 全コーナーに渦 | 定常(2D)、3Dでは不安定 |
| 10000 | (0.5117, 0.5313) | 渦の階層構造 | 2Dでは定常/弱非定常、3Dでは乱流化 |
コーナー渦って、角に小さな渦ができるんですよね。
そうだ。Moffatt (1964) が理論的に示したように、鋭角コーナーでは無限の渦列が存在する。各渦の強度は幾何級数的に減少する。CFDでは最初の2〜3個の渦が解像できれば十分だが、メッシュをコーナーに向けて細かくする必要がある。
渦度-流れ関数定式化
2Dの場合は渦度-流れ関数で解くことが多いんですか?
2D非圧縮流では渦度-流れ関数定式化が連続の式を自動的に満たすため効率的だ。
ここで渦度 $\omega = \partial v/\partial x - \partial u/\partial y$、流れ関数 $\psi$ は $u = \partial \psi / \partial y$, $v = -\partial \psi / \partial x$ だ。
ただし3Dや可変密度流れへの拡張が困難なので、汎用CFDコードでは速度-圧力定式化(primitive variable formulation)が標準だ。
蓋の角の特異性
蓋の端で壁面速度が不連続になりますよね。これは問題にならないんですか?
良い指摘だ。蓋の角($(0,L)$ と $(L,L)$)では速度が不連続になる。$u = U$(上壁面)と $u = 0$(側壁面)が同時に成立しない。これは数学的な特異点であり、メッシュを細かくしても解が収束しない。
実務的な対処法は、
- 角から数セル離れた領域で結果を評価する
- 正則化条件を使う(蓋の速度を角に向かってスムーズにゼロに遷移させる)
- 特異性を承知の上で、十分なメッシュ密度で計算し、角以外の領域の精度を確保する
レイノルズの実験(1883年)——乱流発見の瞬間
オズボーン・レイノルズは、管内の水にインクを流す実験で「層流から乱流への遷移」を発見しました。流速を上げていくと、インクの線がある瞬間にグチャグチャに乱れる。この劇的な瞬間を、レイノルズは数学的に $Re = \rho uD/\mu$ という無次元数で表現した。100年以上経った今も、CFDエンジニアが最初に確認するのはこのレイノルズ数です。
各項の物理的意味
- 時間項 $\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$。時間刻みの安定性に直結 |
数値例:円管内層流(d=10mm, L=1m, 水μ=0.001Pa·s, Q=0.1L/min)
Re = ρuD/μ = 998×0.021×0.01/0.001 ≈ 212(層流) 圧力損失 ΔP = 128μLQ/(πd⁴) ≈ 68.2 Pa
乱流モデル別の精度比較(後向きステップ、再付着長さ):
k-ω SSTは精度とコストのバランスが良く、多くの実務で最初の選択肢になります。
CFDメッシュの品質管理や乱流モデルの選定に悩む時間を、もっと創造的な設計作業に使えたら。 — Project NovaSolverはそんな実務者の声から生まれました。
Project NovaSolver — CAE実務の課題に向き合う研究開発
「キャビティ流れ(蓋駆動)をもっと効率的に解析できないか?」——私たちは実務者の声に耳を傾け、既存ワークフローの改善を目指す次世代CAEプロジェクトに取り組んでいます。具体的な機能はまだ公開前ですが、開発の進捗をお届けします。
進捗通知を受け取る →