buoyantSimpleFoamに関する質問

1,593 views
Skip to first unread message

iwadera

unread,
Jun 18, 2013, 6:27:27 AM6/18/13
to open...@googlegroups.com
お世話になっております.
iwaderaです.

私は,大学でOpenFOAM ver2.1.1を使用して数値解析を行っています.
私は,OpenFOAMで熱流束一定条件のもとで加熱している平板に空気を吹き付けて冷却した時に,
平板の温度がどのように変化するのか解析したいと考えています.そのため,私はbuoyantSimpleFoam
を用いて,流入口の温度と流速をそれぞれ300[K],1[m/s]で固定し,平板の伝熱面に,熱流束1600[W/m^2]
(熱量64[W],伝熱面積0.04[m^2])を与えて解析を行っています.

数値解析自体は収束して解析を行うことができたのですが,伝熱面の表面温度が,平均で400[K]まで上昇しました.
私は,解析と同様な条件で実験を行い,伝熱面の表面温度を測定しているのですが,温度は加熱前と比べて,最大でも
50[K]程度しか上昇していないため,解析結果に妥当性が無いと考えています.そのため,thermophysicalProperties
等を変更して,解析をやり直しているのですが,期待している結果が得られていない状態です.
どなたか,この問題に対処する方法を,教えて頂けないでしょうか.
今回用いた解析モデルの概略図と解析結果(温度,流速)を添付します.

また,私が作成した境界条件の一部は次のようになります.
0/U
internalField   uniform (0 0 1);
boundaryField
{
    wall-4
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    inlet-5
    {
        type            fixedValue;
        value           uniform (0 0 1);
    }
    outlet-6
    {
        type            zeroGradient;
    }
    heater-7
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
0/T
internalField   uniform 300;
boundaryField
{
    wall-4
    {
        type            zeroGradient;
    }
    inlet-5
    {
        type            fixedValue;
        value           uniform 300;
    }
    outlet-6
    {
        type            zeroGradient;
    }
    heater-7
    {
     type            compressible::turbulentHeatFluxTemperature;
     heatSource      flux;        // power [W]; flux [W/m2]
     q               uniform 1600;  // heat power or flux
     KName           K;
     K               basicThermo; // calculate K by alphaEff*thermo.Cp
     value           uniform 300; // initial temperature value
    }
0/p
internalField   uniform 1.013e5;
boundaryField
{
    wall-4
    {
        type            calculated;
        value           $internalField;
    }
    inlet-5
    {
        type            zeroGradient;
    }
    outlet-6
    {
        type            calculated;
        value           $internalField;;
    }
    heater-7
    {
        type            calculated;
        value           $internalField;
    }
0/p_rgh
internalField   uniform 1.013e5;
boundaryField
{
    wall-4
    {
        type            buoyantPressure;
        value           $internalField;
    }
    inlet-5
    {
        type            zeroGradient;
    }
    outlet-6
    {
        type            fixedValue;
        value           uniform 1.013e5;
    }
    heater-7
    {
        type            buoyantPressure;
        value           $internalField;
    }

その他の境界条件などについてはこちらのURLからダウンロードしてください.


宜しくお願い致します.





解析結果.zip
Message has been deleted
Message has been deleted
Message has been deleted

ONO Hiroki

unread,
Jun 19, 2013, 3:29:33 AM6/19/13
to open...@googlegroups.com
こんにちは。

表面温度が固定される条件ではないので、放射伝熱を考慮しないとこの場合は温度が高くなってしまうのではないでしょうか。

2013年6月18日火曜日 19時27分27秒 UTC+9 iwadera:
Message has been deleted

iwadera

unread,
Jun 19, 2013, 5:19:58 AM6/19/13
to open...@googlegroups.com
ONO Hiroki 様
返信ありがとうございます.

iwaderaです.

放射伝熱を考慮する場合,heaterの境界条件をどのように修正すべきなのでしょうか?
もしくは,境界条件にcompressible::turbulentHeatFluxTemperatureを設定する方法以外に,何か方法があるのでしょうか?

ONO Hiroki

unread,
Jun 19, 2013, 11:06:14 AM6/19/13
to open...@googlegroups.com
OF付属のライブラリのみを使うのであれば、
turbulentTemperatureRadCoupledMixed
という境界条件を使います。

ただしこれは、固体ー流体間の熱のやりとりも考慮する境界条件ですので、それに対応したソルバchtMultiRegionSimpleFoam
を使う必要があります。今回の場合では板の部分もメッシュを切って内部の熱伝導を解くようにする必要があります。

詳しくは上記ソルバのチュートリアルを見てみてください。

固体連成は必要ないのでbuoyantSimpleFoamで計算を行いたいという場合は、groovyBCなどを用いて自ら境界条件を作成することになります。

2013年6月19日水曜日 18時19分58秒 UTC+9 iwadera:
Message has been deleted

iwadera

unread,
Jun 20, 2013, 2:00:10 AM6/20/13
to open...@googlegroups.com
ONO Hiroki 様
返信ありがとうございます.
iwaderaです.

ご指摘して頂いた方法で,数値解析を試したいと思います.
あと,もう一つだけ気になったことがあったので質問させてください.
OpenFOAM ver2.1.1のチュートリアルを調べていた時に,buoyantSimpleRadiationFoam
というものを見つけました.ユーザーガイドによると,このソルバは,放射を考慮した,換気・熱輸送
のための,浮力を伴う圧縮性乱流用定常状態ソルバです.
私は,このソルバを使えば,heaterにcompressible::turbulentHeatFluxTemperatureを使っても放射を
考慮した解析を行えると考えています.
私の考えは,間違っていないでしょうか?

2013年6月20日木曜日 0時06分14秒 UTC+9 ONO Hiroki:

ONO Hiroki

unread,
Jun 22, 2013, 11:48:52 AM6/22/13
to open...@googlegroups.com
CFDで放射を扱う場合は大きく分けて2つのケースが存在します。すなわち
①流体そのものが放射の影響を受けて温度が変化する場合(いわゆる灰色ガスとよばれる流体を扱う計算)
②流体そのものは放射の影響を(ほとんど)受けないが、流体を覆う壁面の温度が規定されておらず放射の影響を受けて温度が決まるケース

です。①の場合には放射強度の輸送方程式を立てて、それを解きます。(radiation  modelにP1やfvDOMと指定)
一方、②の場合には壁面同士の熱のやりとりを考え、壁面上では放射・対流・伝導・蓄熱(=温度上昇)(・発生)のバランスをとって壁面温度を決定します。( Radiation modelにviewFactorと指定)

今回の問題は②のケースに当てはまると思いますので、上記の「バランスをとって壁面温度を決定」するための境界条件が必要となります。
その境界条件が今のところOF標準ではturbulentTemperatureRadCoupled
Mixedしか用意されておりません。したがって、chtMultiRegionSimpleFoamを使う必要が出てきてしまいます。

つまり、
buoyantSimple(Radiation)FoamでもviewFactorを用いた計算は出来るが、そのための境界条件が用意されていないので実質不可、
というのが現状です。

実は、拙作のカスタム境界条件ライブラリを用いるとbuoyantSimple(Radiation)Foamでも放射を考慮した計算が出来るのですが、
たしか熱流規定の境界条件には対応していないので、そこのところを改良する必要があります。
http://openfoamwiki.net/index.php/Contrib_wallRadiationTemperature





2013年6月20日木曜日 15時00分10秒 UTC+9 iwadera:

Masashi Imano

unread,
Jun 22, 2013, 8:20:08 PM6/22/13
to open...@googlegroups.com
今野です。

Ver.2.2 から buoyantSimpleFoam が標準で放射伝熱項を扱えます。

https://github.com/OpenFOAM/OpenFOAM-2.2.x/blob/master/applications/solvers/heatTransfer/buoyantSimpleFoam/buoyantSimpleFoam.C
ーーー
Application
buoyantSimpleFoam

Description
Steady-state solver for buoyant, turbulent flow of compressible fluids,
including radiation, for ventilation and heat-transfer.
ーーー

また圧縮性のturbulentHeatFluxTemperature 境界条件は標準で放射伝熱項を考慮します。

https://github.com/OpenFOAM/OpenFOAM-2.2.x/blob/master/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
ーーー
Class
Foam::turbulentHeatFluxTemperatureFvPatchScalarField

Description
Fixed heat boundary condition to specify temperature gradient. Input
heat source either specified in terms of an absolute power [W], or as a
flux [W/m2].

Example usage:

hotWall
{
type compressible::turbulentHeatFluxTemperature;
heatSource flux; // power [W]; flux [W/m2]
q uniform 10; // heat power or flux
kappa fluidThermo; // calculate kappa=alphaEff*thermo.Cp
Qr none; // name of the radiative flux
value uniform 300; // initial temperature value
}
ーーー

さらに, Ver.2.2からequationOfStateとして導入されたincompressiblePerfectGasモデルを
使うと,圧縮性ソルバーであってもブシネスク近似となります。

https://github.com/OpenFOAM/OpenFOAM-2.2.x/blob/master/src/thermophysicalModels/specie/equationOfState/incompressiblePerfectGas/incompressiblePerfectGas.H
ーーー
Class
Foam::incompressiblePerfectGas

Description
Incompressible gas equation of state using a constant reference pressure in
the perfect gas equation of state rather than the local pressure so that the
density only varies with temperature and composition.
ーーー

constant/thermophysicalProperties での指定例
ーーー
thermoType
{
(略)
equationOfState incompressiblePerfectGas;
}

mixture
{
(略)
equationOfState
{
pRef 1e+5;
}
}
ーーー

しかし,現状のView Factorモデルは通常相反則を満たしますが,総和則を満しません。

以下のように閉鎖空間用に総和則を満すようにスケーリングすることもできますが,
これを行うと逆に相反則を満たしません。

constant/radiationProperties :
ーーー
viewFactorCoeffs
{
// Smooth view factor matrix
// Use when in a close surface to force Sum(Fij = 1)
smoothing true;
(略)
}
ーーー

また,View Factorだけでは元々多重放射も考慮されませんので,相反則と総和則を同時に
高精度に満し,多重放射を考慮するにはどちらにせよソースのカスタマイズが必要です。

さらに言うと,現在のviewFactorsGenはview factorの算出に単純な2重面積分を使っており,
解析精度が非常に悪いので,より高精度なアルゴリズムに改良することも必要でしょう。

ーーー
Application
viewFactorsGen

Description
View factors are calculated based on a face agglomeration array
(finalAgglom generated by faceAgglomerate utility).

Each view factor between the agglomerated faces i and j (Fij) is calculated
using a double integral of the sub-areas composing the agglomaration.

The patches involved in the view factor calculation are taken from the Qr
volScalarField (radiative flux) when is greyDiffusiveRadiationViewFactor
otherwise they are not included.
ーーー

以上です。

2013年6月23日 0:48 ONO Hiroki <h_...@meiji.ac.jp>:
> --
> このメールは Google グループのグループ「OpenFOAM」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、openfoam+u...@googlegroups.com にメールを送信します。
> このグループに投稿するには、open...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/openfoam からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>



--
IMANO Masashi, Ph.D.

ONO Hiroki

unread,
Jun 23, 2013, 2:01:31 AM6/23/13
to open...@googlegroups.com
今野様

御指摘&訂正ありがとうございます。
incompressible::turbulentHeatFluxTemperatureのソースを見て早合点しておりました…^^;

また、incompressiblePerfectGasモデルについては全く知りませんでした。勉強になります。

viewFactorモデルを使う側の環境(ライブラリ)はかなり整ってきたが、肝心のviewFactorモデルライブラリ自体がまだまだ途上ということですね。



2013年6月23日日曜日 9時20分08秒 UTC+9 Masashi Imano:
> このグループから退会し、メールの受信を停止するには、openfoam+unsubscribe@googlegroups.com にメールを送信します。
Message has been deleted

iwadera

unread,
Jun 23, 2013, 3:40:46 AM6/23/13
to open...@googlegroups.com
今野様,ONO Hiroki 様

iwaderaです.

丁寧に説明してくださり,ありがとうございます.大変勉強になりました.
.皆様の意見を参考にして,解析を進めたいと思います.
ありがとうございました.

ONO Hiroki

unread,
Jun 24, 2013, 2:09:56 AM6/24/13
to open...@googlegroups.com
小野です。

余談ですが、2.2.xではbuoyantBoussinesq系ソルバでもradiationモデルが扱えるようになっていますね。
なのでincompressible::turbulentHeatFluxTemperatureでも近々Qrとのバランスが正式にコミットされるかもしれませんね。

2013年6月23日日曜日 16時40分46秒 UTC+9 iwadera:
Reply all
Reply to author
Forward
0 new messages