混合対流 — 浮力流CFDの典型的問題と解決策
より充実した内容を mixed-convection.html でご覧いただけます。
計算が発散する
混合対流の計算を始めたら、数十反復で発散してしまいます。
浮力流は初期条件との乖離が大きいと速度場が急激に変動して発散しやすい。以下の手順を試そう。(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を指定すればよい。
混合対流の収束が遅い——その本当の理由
混合対流の定常解析で「残差が10⁻³から先に全く下がらない」という経験をしたエンジニアは多いはずだ。これは単なる設定ミスではなく、物理的な理由がある。Ri ≈ 1付近の混合対流は流れが本質的に「不安定」な状態にあり、複数の安定解が共存できる。つまり定常解が存在しない、あるいは複数存在するという状況になっている。この場合、定常ソルバーを使い続けても収束しない——解そのものが振動している可能性が高い。対策として非定常計算(URANS)に切り替え、十分な時間積分後に時間平均を取る手法が有効だ。また緩和係数を0.1〜0.3程度に下げると振動が抑制されることもある。「定常で解けない混合対流は非定常に切り替えろ」が経験則だ。
トラブル解決の考え方
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——混合対流の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告