OpenFOAM【chtMultiRegionFoamで輻射:viewFactorモデルについて】

OpenFOAMでchtMultiRegionFoam+viewFactorの導入について検討したのでそのまとめです。

viewFactorモデルの考え方

形態係数に基づいて輻射を計算します。OpenFOAMではfluid側で新しく輻射の熱流束に関する変数qrを追加して計算します。qr境界条件は、fluid側の境界条件および固体流体の界面であるfluid_to_solidで設定されます。qrはfluid_to_solid、solid_to_fluidの両設定により固体側へ伝えることができます。

viewFactorの実際の導入についての方針

tutorialにはchtMultiRegionFoam(chtMultiRegionSimpleFoamではない)+viewFactorが存在していないので、viewFactorモデルを実際に導入するには

  1. chtMultiRegionFoamで正常に計算できるモデル・条件を設定
  2. viewFactorを追加

するのが正着と思われます。

viewFactorを追加するときに設定する部分

  • /0.org にqrを追加する
  • /constant中のファイルは
    • /solidにradiationPropertiesを追加する。モデルはopaqueSolid。
    • /fluidにradiationPropertiesを追加する。モデルはviewFactor。
    • /fluidにboundaryRadiationProperties、viewFactorsDictを追加する。
  • /system中のファイルは
    • changeDictionaryDictを修正。
    • /solidのT/solid_to_fluidのtypeをturbulentTemperatureRadCoupledMixedに修正。
    • /solidのT/solid_to_fluidにqr, qrNbrを追加。
    • /fluidのT/fluid_to_solidのtypeをturbulentTemperatureRadCoupledMixedに修正。
    • /fluidのT/fluid_to_solidにqr, qrNbrを追加。
    • /fluidにqrを追加
    • /fluidの boundaryにinGroupsでwall, viewFactorWallを追加

なお、前処理(メッシュ作成)で

$ faceAgglomerate
$ viewFactorsGen

を実行する必要があります。

デバッグの覚書(トラブルシューティング

輻射を受ける対象物(固体)の温度が上がり続ける(下がり続ける)

平衡状態に達するハズなので、温度が上がり続けることはないです。直接的には、

  • 壁面の輻射の境界条件が初期条件から更新されていない。

ことが考えられます。paraviewなどで、qrの時間経過を確認しましょう。時間の経過とともに平衡へと向かう熱流束に収束していくはずです。qrはfluid側の境界面およびfluid_to_solidで可視化できます。

見直すべき部分としては

  • 境界条件、物性の設定
  • fluid_to_solidの伝熱物性の見直し

qrの計算はfluid側で実施されているので、solid側の温度情報がfluid側に反映されていないとqrの更新はされないと推察されます。

温度が振動して、最後は異常終了で計算停止

標準出力で出てくるMin/max Tあたりが大きな-の値として出力されたりします。

  • qrの値、輻射境界面のfluid温度が振動

したりしてます(paraviewとかで確認)。

輻射での熱流束は平衡に達するよう進行しますが、各タイムステップの1回目においては平衡前の温度を参考に熱流束が計算され、過剰に評価してしまいそのまま温度が暴走することがあります。デバッグとしては、まず輻射のモデルをoffにした条件で適切に計算が実施されることを確認したうえで

  • 時間刻みを短くする
  • qr, hを緩和する
  • 輻射面を細かくする

が対処ほうで考えられます。緩和はhよりもqrの方が有効な気がしています(体感)。qrの緩和はfluidのfvSolution中でrelaxationFactors -> fieldsで設定できるようです。

relaxationFactors
{
    fields
    {
        rho             1.0;
        p_rgh           0.7;
        qr              0.3;
    }
    equations
    {
        U               0.3;
        h               0.5;
        "(k|epsilon|omega)" 0.7;
        ".*Final"       1;
    }
}

輻射面を細かくするにはviewFactorsDictのnFacesInCoarsestLevel(大きくする)、featureAngle(大きくする)で設定します。

参考にしました

OpenFOAM全般

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

PENGUINITIS - 境界条件の設定

chtMultiRegionFoamに関して

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

https://www.foamacademy.com/wp-content/uploads/2016/11/thermo_training_handout_public.pdf

OpenFOAMの輻射モデルについて

OpenFOAM を用いたふく射・対流場の連成伝熱解析の妥当性評価

https://scielo.conicyt.cl/pdf/ingeniare/v26n4/0718-3305-ingeniare-26-04-00546.pdf

http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/AlexeyVdovin/Radiation_in_OpenFoam_final.pdf

OpenFOAM: API Guide: viewFactor Class Reference

OpenFOAM: viewFactor Class Reference

フォーラム情報

viewfactor -- CFD Online Discussion Forums

viewFactor radiation model problem! -- CFD Online Discussion Forums

View factor radiation model. Symmetry boundaries verification.. -- CFD Online Discussion Forums

Understanding temperature coupling BCs -- CFD Online Discussion Forums

Problems adding Qr field in externalWallHeatFluxTemperature BC -- CFD Online Discussion Forums

error in implementing viewfactor model in chtMultiregionFoam -- CFD Online Discussion Forums

Problem with chtMultiregionFoam radiation boundary condition -- CFD Online Discussion Forums

Radiation in chtMultiRegionSimpleFoam -- CFD Online Discussion Forums

ViewFactor Radiation -- CFD Online Discussion Forums

CHT +viewfactor model -- CFD Online Discussion Forums

viewFactorsGen produces incorrect view factors in a very thin gap -- CFD Online Discussion Forums

Heated wall by radiation -- CFD Online Discussion Forums

convert viewFactorField to ascii and visualization -- CFD Online Discussion Forums

0001704: externalWallHeatFluxTemperature BC makes the solver crash when Qr is added to the balance - OpenFOAM Issue Tracking