数値流体計算(3)interFoam への温度場計算追加
5月16日の記事の続きです。
私が計算したい円筒表面温度に差がある円筒内の回転流体を解析するためには、interFoamにさらに
・温度場の計算
・温度による密度変化に起因する浮力の計算
を入れる必要があります。
まずは、下記の情報を参考にinterFoamに温度場を加えたinterTempFoamを作成しました。
OpenFOAMのカスタマイズ・ソースコード改造入門(interFoam への温度場計算追加)
関連する情報は次のサイトにも http://eddy.pu-toyama.ac.jp/OpenFOAM/
OpenFoamの混相流solver interFoamのパラメータによる解の変化
自分で作成したものは、まだコンパイルが上手くいきません。海外のOpenFoam掲示板で調べて解決策が見つかりましたが、まだ納得できていないので、開発をとりあえず保留しています。
代わりに、上記1つ目のサイトでダウンロードできるソースコードをコンパイルして利用しようとしましたが、上手くコンパイルできません。
OpenFOAM 2.3.x では、interFoamのライブラリに変更があり、incompressibleTwoPhaseMixture を使わず、immiscibleIncompressibleTwoPhaseMixture が新設され使われているためのようです。
海外のOpenFoam掲示板で調べて解決策(問題箇所をコメントアウトする)を見つけコンパイル成功。ただし、この方法はもう少し検証が必要である。
まずは、普通のinterFoamの計算と比較するために、interTempFoamの温度場の初期値を均一に設定して計算をする。
t=5sの状態
water, airの温度初期設定T=300Kで計算開始すると最初からwater,とairの境界で300K以上の領域が発生する。(ソースコードの元サイトにも書かれているように、Tの方程式の離散化について検討する必要があるようです)
またOpenFOAMのgoogleグループの投稿「温度場を導入したinterFoamの異常」には
・時間刻みを小さくすると多少改善される。
・速度場が大きいと温度場が破綻しやすい。
・容器に半分水を張ったような全く動きのない系でも最大温度を超える。(これについてはなぜか界面でわずかに速度場があることも疑問である。)
と書いてありました。これを参考にもう少し検討をしてみます。