OpenFOAM【chtMultiRegionFoamで輻射:基礎編】
chtMultiRegionFoamで輻射を入れる方法についてまとめ。
基本的な考え方
OpenFOAMで輻射を計算する場合、輻射に関する変数(G, IDefault, qr)が追加され、その変数を合わせて解くことになります。
輻射のモデルとしては、P1, viewFactor, FvDOMなどを選択可。viewFactorは形態係数を解析領域から計算させる必要があります(後述)。FvDOMは直接求解しているようで、計算コストを要します。
G: 入射の強度。前ステップの温度場から、MarshakRadiationの境界条件にもとづいて計算される。Marshak Radiationの境界条件の原著は下の論文(みたい)。 Phys. Rev. 71, 443 (1947) - Note on the Spherical Harmonic Method As Applied to the Milne Problem for a Sphere
IDefault:放射の強度。greyDiffusiveRadiationの境界条件から計算される。
qr:輻射による熱交換量。greyDiffusiveRadiationViewFactorの境界条件から計算される。viewFactorモデルの際に使用。
境界条件の設定
OpenFOAMの一般的な境界条件はこちら。
一方で、constant中に配置するboundaryRadiationPropertiesでも輻射に関しての境界を設定できそうです。下のフォーラムによればどちらかで設定すればよさそう、とのことですが、tutorialのmultiRegionHeaterRadiationでは、どちらでも設定されているようです(例えばsystem/topAir/changeDictionaryDictとconstant/topAir/boundaryRadiationProperties)。これらの設定の反映については要確認だが、とりあえずどっちにも設定しとけばよいかも。
What is boundaryRadiationProperties -- CFD Online Discussion Forums
また、multiRegionHeaterRadiationの設定を確認すると、流体側のG,IDefault, qrには輻射に関する境界条件・界面の条件が付与されている一方で、固体側の境界条件には
{
type calculated;
value uniform 0;
}
で付与されています。
温度Tの境界条件
compressible::turbulentTemperatureRadCoupledMixed を設定することで、輻射熱を温度の境界に反映させることができるようです。流体側と固体側とでqrNbr,qrをそれぞれ設定する必要があるようです。
流体側
"topAir_to_.*" { type compressible::turbulentTemperatureRadCoupledMixed; Tnbr T; kappaMethod fluidThermo; qrNbr none; qr qr; value uniform 300; }
固体側
heater_to_topAir
{
type compressible::turbulentTemperatureRadCoupledMixed; Tnbr T;
kappaMethod solidThermo;
qrNbr qr;
qr none;
value uniform 300;
}
輻射の境界条件の設定は、turbulentTemperatureRadCoupledMixedのようですが、もとは以下フォルダに格納です。
src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed
Understanding temperature coupling BCs -- CFD Online Discussion Forums
viewFactorモデルの使用について
viewFactorを計算するには、preprocessで形態係数に関する設定が必要です。なので、constant中にviewFactorsDictを配置して、preprocessが必要です。multiRegionHeaterRadiationを参考にすると、以下のコマンドが必要。
# Agglomerate patch faces for region in bottomAir topAir do runApplication -s $region \ faceAgglomerate -region $region -dict constant/viewFactorsDict done # Generate view factors for region in bottomAir topAir do runApplication -s $region \ viewFactorsGen -region $region done
あわせて、境界条件の設定も必要なようです。
boundary { ".*" { inGroups 2(wall viewFactorWall); } }
【参考】multiRegion+輻射に関するチュートリアル
各モデルと初期条件で設定されている変数のまとめ。参照しているのはOpenFOAM-v1912です。
/heatTransfer/buoyantSimpleFoam/hotRadiationRoom
- SIMPLE+P1
- G T U alphat epsilon k nut p p_rgh
/heatTransfer/buoyantSimpleFoam/hotRadiationRoomFvDOM
- SIMPLE+fvDOM
- G IDefault T U alphat epsilon k nut p p_rgh
/heatTransfer/chtMultiRegionFoam/multiRegionHeater
- multiregion+PIMPLE
- T U epsilon k p p_rgh
/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation
- multiregion+SIMPLE+viewFactor
- G IDefault T U epsilon k p p_rgh qr
/heatTransfer/buoyantPimpleFoam/thermocoupleTestCase
- PIMPLE+fvDOM;
- IDefault T U p p_rgh
参考にしました。
OpenFOAM全般
http://www.opencae.or.jp/wp-content/uploads/2015/06/C-_%E7%AC%AC2%E5%9B%9E.pdf
伝熱解析全般
chtMultiRegionFoam情報
chtMultiRegionSimpleFoam:流体-固体熱連成解析(定常) - Onion Salad - OpenFOAMチュートリアルドキュメント作成プロジェクト
chtMultiRegionSimpleFoam:熱交換器とファン - Onion Salad - OpenFOAMチュートリアルドキュメント作成プロジェクト
OpenFOAMのマルチリージョン(標準ソルバー編 その1 ケースディレクトリ) - Qiita
OpenFOAM マルチリージョンの取り扱い(境界条件と並列処理) - Qiita
OpenFOAM-v1712のCHT部分の変更点(sub-looping) - Qiita
OpenFOAMでの輻射解析
https://scielo.conicyt.cl/pdf/ingeniare/v26n4/0718-3305-ingeniare-26-04-00546.pdf
輻射を考慮した直方体領域内の自然対流(fvDOM モデル) - XSim
http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/AlexeyVdovin/Radiation_in_OpenFoam_final.pdf
OpenFOAM: API Guide: Radiation models
How to deal with Conduction, Convection and radiation in OpenFOAM | CFD WITH A MISSION
https://www.foamacademy.com/wp-content/uploads/2018/03/thermo_training_handout_public.pdf
Difference between IDefault and G (radiation) -- CFD Online Discussion Forums
chtMultiRegionFoam: crash with fvDOM and unstructured mesh -- CFD Online Discussion Forums