混合対流 — 浮力流CFDの典型的問題と解決策
計算が発散する
混合対流の計算を始めたら、数十反復で発散してしまいます。
浮力流は初期条件との乖離が大きいと速度場が急激に変動して発散しやすい。以下の手順を試そう。(1) まずgravityをOFFにして等温流れ場を収束させる。(2) gravityをONにして温度差を段階的に増加させる(FluentならPatch機能で温度を設定)。(3) Pseudo Transientまたは非定常計算で安定化する。
under-relaxation factorはどう調整すべきですか?
密度のunder-relaxationを追加して0.8程度に設定する(Fluentでは通常1.0がデフォルトでリストに表示されない。Solution > Methods > Under-Relaxation FactorsでDensityを追加する)。Body Forceのunder-relaxationも0.8程度に下げるとよい。
温度場が非物理的な対称性を持つ
水平管の混合対流なのに、温度分布が上下対称になってしまいます。
浮力効果がモデルに反映されていない可能性がある。確認ポイント: (1) gravityベクトルの向きが正しいか。(2) DensityがConstantではなくBoussinesqまたはIdeal Gasになっているか。(3) Operating DensityまたはReference Densityが適切に設定されているか。(4) Full Buoyancy EffectsがONか。
全部確認したけど対称です。
非常に低いRi数($Ri < 0.01$)なら浮力効果がほぼ無視できるので対称は正常。$Ri > 0.1$ で対称なら、初期条件が完全対称になっていて、浮力による摂動が数値的に発達しない可能性がある。わずかな非対称初期摂動(温度場に0.1度程度のランダムノイズ)を加えるか、非定常計算に切り替えるとよい。
OpenFOAMのbuoyantSimpleFoamで残差が振動する
buoyantSimpleFoamで残差が周期的に振動して収束しません。
浮力流では定常解が存在しない場合がある。まずRa数を確認しよう。$Ra > 10^8$ 程度(密閉キャビティの場合)では流れが本質的に非定常になる。buoyantPimpleFoamに切り替えて非定常計算し、時間平均を取るのが正しいアプローチだ。
非定常計算の時間刻みの目安は?
浮力流の特性速度 $u_{buoy} = \sqrt{g \beta \Delta T L}$ とセルサイズ $\Delta x$ からCFL数が1以下になるように設定する。adaptive time steppingが使えるならMaxCo 0.5程度で自動調整させるのがよい。OpenFOAMのcontrolDictでadjustTimeStepをyesに設定し、maxCoを指定すればよい。
F1と空力の戦い
F1マシンは時速300kmで走ると、車重と同じくらいのダウンフォース(下向きの空力的な力)を発生します。つまり理論上、天井に貼り付けて走れる! チームは数千CPU時間のCFDシミュレーションを毎週実行し、フロントウィングの角度を0.1°単位で最適化しています。F1はCAEの技術力がそのまま順位に直結する世界です。
トラブル解決の考え方
デバッグのイメージ
CFDのデバッグは「水道管の詰まり修理」に似ている。まず「どこで詰まっているか」(どの残差が下がらないか)を特定し、次に「何が詰まっているか」(メッシュ品質?境界条件?乱流モデル?)を調べ、最後に「どう直すか」(メッシュ修正?緩和係数?)を判断する。
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——混合対流の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
CFDメッシュの品質管理や乱流モデルの選定に悩む時間を、もっと創造的な設計作業に使えたら。 — Project NovaSolverはそんな実務者の声から生まれました。
CAEの未来を、実務者と共に考える
Project NovaSolverは、混合対流における実務課題の本質に向き合い、エンジニアリングの現場を支える道具づくりを目指す研究開発プロジェクトです。
プロジェクトの最新情報を見る →