2D Navier-Stokes 流れシミュレーター 戻る
流体解析

2D Navier-Stokes 流れシミュレーター

渦度ストリーム関数法で蓋駆動キャビティ流れをリアルタイム数値解析。レイノルズ数を変えながらCFDの基礎を直感的に学ぼう。

パラメータ設定
レイノルズ数 Re
グリッドサイズ N
時間ステップ速度
統計
計算結果
400
Re
0
反復数
0.00
最大渦度
0.00
最小渦度
5
steps/frame
渦度コンター(赤=正、青=負回転) + 流線
負回転
正回転
黒線:流線(ストリーム関数の等値線)
理論・主要公式

渦度輸送方程式:

$$\frac{\partial \omega}{\partial t}+ u\frac{\partial \omega}{\partial x}+ v\frac{\partial \omega}{\partial y}= \nu \nabla^2 \omega$$

ポアソン方程式:

$$\nabla^2 \psi = -\omega$$

速度—ストリーム関数関係:

$$u = \frac{\partial \psi}{\partial y},\quad v = -\frac{\partial \psi}{\partial x}$$

2D Navier-Stokes 流れシミュレーターとは

🙋
蓋駆動キャビティ流れって何ですか?教科書でよく見るあの絵ですよね。
🎓
そう、四方が壁の箱の上辺(蓋)だけが動く、CFDの最も基本的なベンチマーク問題だ。大まかに言うと、蓋が動くことで箱の中の流体が引きずられて複雑な渦ができる様子を調べるんだ。このシミュレーターでは、上の「レイノルズ数」スライダーを動かすと、その渦の形がどう変わるかがリアルタイムで見られるよ。
🙋
え、レイノルズ数を変えると渦が変わるんですか?例えばどうなるんですか?
🎓
大きく変わるよ。例えば、Re=100くらいだと中心にぽっかり一つ大きな渦ができる。でも、Reを1000くらいまで上げてみると、中心の渦は左上に寄り、さらに箱の左下や右下の角に、小さな「二次渦」や「三次渦」と呼ばれる渦がポコポコと発生するんだ。シミュレーターでパラメータを変えながら観察してみて。
🙋
なるほど!でも、なんで速度じゃなくて「渦度」と「ストリーム関数」で計算するんですか?圧力は考えないんですか?
🎓
良い質問だ。これは「渦度-ストリーム関数法」という2次元CFDの有名な手法で、実務でも基礎研究でよく使われる。速度の代わりにこれらを使う最大の利点は、連続の式(質量保存則)を自動的に満たすようにできて、しかも圧力を直接計算しなくて済むんだ。計算がシンプルで安定するから、このような教育用シミュレーターにピッタリなんだよ。グリッドサイズNを変えて計算の細かさを体験してみるといい。

よくある質問

レイノルズ数(Re)は移流と拡散の強さの比です。Reが小さいと粘性が支配的で流れは層流的に安定します。Reを大きくすると渦が発生しやすくなり、流れ場が複雑になります。キャビティ内の主流渦の位置や強さも変化するので、Reをスライダーで動かしながら比較してみてください。
発散の主な原因は時間刻み幅が大きすぎることです。画面の設定パネルでΔt(時間刻み)を小さくするか、CFL条件を満たすように調整してください。また、レイノルズ数が極端に高い(例:Re > 10000)と数値的に不安定になりやすいので、まずは低いRe(例:100~1000)で試すことをおすすめします。
本シミュレーターは2次元・非圧縮・定常状態を仮定した渦度ストリーム関数法に基づいており、蓋駆動キャビティ流れのベンチマーク問題として広く検証されています。低~中レイノルズ数(Re < 5000程度)では実験や高精度計算とよく一致しますが、高Reでは3次元効果や乱流の影響を無視しているため定性的な傾向を学ぶ目的に適しています。
画面右側または上部にある表示設定パネルで、「速度ベクトル」「流線」「渦度コンター」などのチェックボックスをオン/オフすることで切り替えられます。また、カラーマップの種類や透明度も調整可能です。表示が重なって見づらい場合は、不要な項目を一時的にオフにすると見やすくなります。

実世界での応用

CFDソフトウェアの検証・ベンチマーク:商用ソフト(ANSYS Fluent, Siemens Star-CCM+)やオープンソース(OpenFOAM)の開発・導入時、計算コードが正しいかを確認する第一歩として必ずこの蓋駆動キャビティ流れが計算されます。Ghiaら(1982)のデータが世界的な基準です。

混練・攪拌プロセスの基礎研究:タンク内の撹拌翼が流体をかき混ぜる挙動を理解するための基礎モデルとして応用されます。キャビティの蓋の動きを撹拌翼に見立て、どのような渦が発生すれば効率的に混合できるかをシミュレーションで予測します。

マイクロ流体デバイスの設計:生体チップ(Lab-on-a-chip)など微小な流路内の流れは、しばしば2次元的な性質を示します。薬液の混合や粒子の分離を設計する際、本シミュレーターのような2D NSソルバーが初期検討に使われます。

建築・環境風工学の簡易評価:建物周辺の風の流れや、区画された空間内の空気流れを2次元的に把握する簡易モデルとして利用されます。例えば、機械室内の熱気の滞留する場所(二次渦が発生する角部など)を特定するのに役立ちます。

よくある誤解と注意点

このシミュレーターを使い始めるとき、いくつか勘違いしやすいポイントがあるよ。まず、「レイノルズ数が高いほど、現実の流れに近い」と思いがちだけど、それは違う。Reを上げると確かに渦が複雑になるけど、それは「非定常で乱流に近い挙動」を模倣しようとしている状態。でも、このシミュレーションは2次元で、しかも「層流」の仮定で計算しているんだ。実世界の3次元乱流とは根本的に異なるから、例えばRe=10000の結果をそのままポンプ設計に使うのは危険だよ。あくまで現象の「傾向」を見るためのツールと心得よう。

次に、グリッドサイズNの設定。N=32や64だと計算は速いけど、特に高レイノルズ数では渦の形が粗く、場合によっては不安定で振動してしまうことがある。これは数値拡散が強く効いて、本来の物理的な粘性効果を打ち消してしまうから。実務でもメッシュ(格子)の解像度はシミュレーションの生命線で、「メッシュ依存性調査」といって、結果がメッシュの粗さに依存しなくなるまで細かくする作業が必須なんだ。このツールでも、例えばRe=1000でN=64, 128, 256と変えて、左下の二次渦がどう表現されるか比べてみると、その重要性が体感できるはず。

最後に、「圧力が計算されていない」ことの意味を理解しておこう。渦度-ストリーム関数法は計算が安定して素晴らしいけど、翼の揚抗力や配管内の圧力損失など「圧力そのものが知りたい現象」には直接使えない。そういう時は、速度と圧力を直接求める「プリミティブ変数法」(MAC法、SIMPLE法など)が必要になる。このツールは、流れの「パターン」と「構造」を理解するための第一歩なんだ。

使い方ガイド

  1. レイノルズ数(Re)スライダーを1~10000の範囲で調整し、流体粘性と慣性力の比率を設定します
  2. 格子分割数(n)を16~256の間で選択して計算領域を離散化し、空間解像度を決定します
  3. 時間刻み幅(dt)を0.001~0.1秒の範囲で指定してCFD安定性を確保し、再生ボタンで蓋駆動キャビティ流れの解析を開始します

具体的な計算例

Re=1000、格子数n=128で計算を実行した場合、収束に約500ステップ要します。蓋速度1.0m/sのキャビティ(1m×1m)では、中心渦度は0.8~1.2rad/sの範囲で振動します。Re=5000では隅部に二次渦が発生し、最大渦度は3.5rad/s以上に達します。dt=0.01sの設定で数値安定性を維持できます。

実務での注意点