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の一般的な境界条件はこちら。

PENGUINITIS - 境界条件タイプリスト

一方で、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;
        }

PENGUINITIS - 流体・固体熱連成解析

輻射の境界条件の設定は、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全般

PENGUINITIS - 計算の確認と計算結果の処理

http://www.opencae.or.jp/wp-content/uploads/2015/06/C-_%E7%AC%AC2%E5%9B%9E.pdf

http://eddy.pu-toyama.ac.jp/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3CAE%E5%8B%89%E5%BC%B7%E4%BC%9A-%E5%AF%8C%E5%B1%B1/?action=cabinet_action_main_download&block_id=99&room_id=1&cabinet_id=1&file_id=40&upload_id=121

伝熱解析全般

http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?plugin=attach&pcmd=open&file=buoyantBoussinesqSimleFoam1.pdf&refer=%C2%E8%A3%B1%A3%B8%B2%F3%CA%D9%B6%AF%B2%F1%A1%A7H241103

OpenFOAM 標準ユーティリティー一覧 - XSim

chtMultiRegionFoam情報

PENGUINITIS - 流体・固体熱連成解析

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

PENGUINITIS - 非圧縮性流体ソルバーにおける温度計算