流れ関数 — 実践ガイドとベストプラクティス
CFDツールでの流れ関数の活用
商用CFDツールでは流れ関数ってどう使われるんですか? 直接解いているわけではないですよね。
その通り。Ansys FluentやSTAR-CCM+は原始変数法(SIMPLE系)でN-S方程式を解く。しかし後処理で流れ関数を計算して流れの構造を分析するのは非常に有効だ。
- Ansys Fluent: Custom Field Function で $\psi$ を定義できないが、Streamlines(流線)の可視化は標準機能。Pathlines やParticle Tracks で流体粒子の軌跡を追跡可能
- STAR-CCM+: Stream Function をDerived Part として計算可能。2D解析では直接的に流れ関数等値線をプロットできる
- OpenFOAM:
postProcess -func streamFunctionで $\psi$ フィールドを出力可能(2D問題のみ)
ParaViewで流線を描くこともできますよね?
ParaViewのStream Tracerフィルターで流線を可視化できる。Seed Points の配置が重要で、関心領域を横切るように直線上に等間隔で配置するのが基本だ。渦の中心を通るように配置すれば閉じた流線が得られる。
典型的なベンチマーク問題
流れ関数法の検証にはどんな問題を使うんですか?
代表的なベンチマークを紹介しよう。
Lid-driven cavity(蓋駆動キャビティ)
正方形領域の上壁が速度 $U$ で移動。Ghia et al.(1982)の参照データが標準。Re=100〜10000 の結果が報告されている。
| Re | 主渦 $\psi_{min}/(UL)$ | 主渦中心 $(x/L, y/L)$ |
|---|---|---|
| 100 | $-0.1034$ | (0.6172, 0.7344) |
| 1000 | $-0.1179$ | (0.5313, 0.5625) |
| 5000 | $-0.1190$ | (0.5117, 0.5352) |
後向きステップ流れ
ステップ高さ $h$ の後ろに剥離再付着流れが形成される。再付着長さ $x_r/h$ が検証指標。Re=100 で $x_r/h \approx 3.0$、Re=800 で $x_r/h \approx 11.3$ が標準値。
Taylor-Green渦
解析解 $\psi = -\cos(x)\cos(y) e^{-2\nu t}$ が既知で、時間積分精度の検証に最適。エネルギー減衰率が $e^{-4\nu t}$ に従うことを確認する。
自分のコードの検証にはまずLid-driven cavityから始めるのが良さそうですね。
そうだね。Re=100から始めて、格子を $32^2$、$64^2$、$128^2$ と細かくしてメッシュ収束性を確認する。Ghiaの参照データとキャビティ中心線上の速度プロファイルを比較するのが定番だ。
メッシュ設計の指針
流れ関数法でのメッシュ設計のコツを教えてください。
2次元問題でのメッシュ設計指針をまとめよう。
- 壁面近傍: 境界層厚さ $\delta \sim L/\sqrt{Re}$ に最低10セル配置。幾何級数的に壁から離れる方向に膨張させる
- 剥離・再付着領域: 流れ方向にも十分な解像度が必要。セルアスペクト比は5以下
- 渦構造: 渦核の直径に10セル以上。渦が移動する領域全体で均一な解像度を確保
- 遠方境界: 流入・流出境界は関心領域から十分離す。閉空間問題なら不要
構造格子と非構造格子のどちらが良いですか?
流れ関数法は有限差分法と組み合わせることが多く、その場合は直交構造格子が自然だ。曲線境界には体に合った座標変換(body-fitted coordinate)を適用する。有限要素法で流れ関数を解く場合は三角形非構造格子も使えるが、精度は六面体構造格子に劣る傾向がある。
結果の検証手順
解析結果が正しいかどうかをどう確認すればいいですか?
以下のチェックリストを推奨する。
1. 質量保存: 流れ関数法では構造的に保証されるが、数値誤差の影響を確認。流入流量 = 流出流量を検証
2. メッシュ収束性: 3水準以上のメッシュでRichardson外挿。理論上の収束次数(2次精度なら $O(h^2)$)と一致するか確認
3. 参照データとの比較: Ghia et al. のようなベンチマークデータとの定量比較
4. 対称性の確認: 対称な問題設定で解が対称になるか
5. エネルギー収支: Taylor-Green渦などで運動エネルギーの時間変化が解析解と一致するか
Richardson外挿ってどうやるんですか?
格子間隔 $h_1 = h$, $h_2 = 2h$, $h_3 = 4h$ の3水準で計算し、解 $f_1, f_2, f_3$ から収束次数 $p = \ln\frac{f_3 - f_2}{f_2 - f_1}/\ln 2$ を求める。外挿値は $f_{exact} \approx f_1 + \frac{f_1 - f_2}{2^p - 1}$ だ。GCI(Grid Convergence Index)を用いれば不確かさの定量化もできるよ。
F1と空力の戦い
F1マシンは時速300kmで走ると、車重と同じくらいのダウンフォース(下向きの空力的な力)を発生します。つまり理論上、天井に貼り付けて走れる! チームは数千CPU時間のCFDシミュレーションを毎週実行し、フロントウィングの角度を0.1°単位で最適化しています。F1はCAEの技術力がそのまま順位に直結する世界です。
実務者のための直感的理解
この解析分野のイメージ
CFDって、要は「デジタル風洞」です。自動車メーカーが巨大な風洞実験設備に何億円もかけるところを、PCの中で再現できる。でも1つ注意——風洞実験なら「風を当てれば結果が出る」けど、CFDでは「メッシュの品質」と「乱流モデルの選択」という見えない品質要因がある。ここを手抜きすると、きれいなコンター図が出ても中身はデタラメ…なんてことになりかねません。
解析フローのたとえ
CFDの解析フローは「水族館の水槽を設計する」感覚で考えてみてください。まず水槽の形を決め(計算領域)、水の入り口と出口を設計し(境界条件)、ポンプの強さを設定する(流量条件)。魚がどう泳ぐか見たければ粒子追跡。水温が気になれば熱解析を追加。…どうですか? 意外と直感的ではありませんか?
初心者が陥りやすい落とし穴
「y+って何ですか?」——この質問が出たら要注意。壁面近くのメッシュ解像度を表すy+は、CFDの結果精度を左右する最重要パラメータの1つ。壁関数を使うなら30〜300、壁を完全に解像するなら1以下。これを確認せずに「摩擦抵抗が合わない!」と悩む人がとても多い。体温計の先端をちゃんと脇に挟まないで「熱がないのに37.5度って出た!」と慌てているようなものです。
境界条件の考え方
入口の境界条件は「蛇口をどのくらい開けるか」と同じ。ちょろちょろ出すか(低速)、全開にするか(高速)。でもCFDではもう一つ——「どのくらい暴れた水を出すか」(乱流強度)も指定する必要があります。蛇口の開け方を間違えると、下流のシンク全体の流れが変わりますよね? CFDでも入口条件のミスは下流全体に波及します。
CFDメッシュの品質管理や乱流モデルの選定に悩む時間を、もっと創造的な設計作業に使えたら。 — Project NovaSolverはそんな実務者の声から生まれました。
次世代CAEプロジェクト:開発者と実務者をつなぐ
Project NovaSolverは、流れ関数を含む幅広い解析分野において、実務者の知見を最大限に活かせる環境の実現を探求しています。まだ道半ばですが、共に歩んでいただける方を募集しています。
開発パートナー登録 →