kとepsilonの設定内容について

1,575 views
Skip to first unread message

小南秀彰

unread,
Feb 23, 2017, 12:52:07 AM2/23/17
to OpenFOAM
みなさま 今日は。

自分はDEXCS-OF2016を使っています。

0(初期値フォルダー)のテンプレートに記載されている内容について教えてください。

===テンプレートの内容===
inlet境界条件
・epsilon(散逸率)
  type turbulentMixingLengthDissipationRateInlet;
  mixingLength    0.025;
  value        uniform 14.855;

・k(乱流エネルギ)
  type            turbulentIntensityKineticEnergyInlet;
  intensity       0.10;
  value           uniform 0.35;
========================

L:混合長(mixingLength)としたとき、

k^(3/2)=ε・√(2)・L ですから
epsilonタブの中でmixingLengthとvalueを記載すると、乱流エネルギーkも指定したことになるのでしょうか?

また、u,v,wをRANDSモデルの速度変動成分としたとき
k=(u^2+v^2+w^2)^(1/2)です。
おそらく、intensity = k÷平均流速 のことだと思うので、
kタブの中でinkensityとvalueを記載すると乱流エネルギーを2重に指定していることになるのでしょうか?

もしkとepsilonを2重に設定していることになるなら、そして、もしその設定に矛盾が生じていた場合、solver計算の時には、どちらの値が採用されるのでしょうか?

以上 よろしく お願いします

Masashi Imano

unread,
Feb 23, 2017, 1:12:15 AM2/23/17
to OpenFOAM
Message has been deleted

小南秀彰

unread,
Feb 24, 2017, 2:30:26 AM2/24/17
to OpenFOAM
今野さん、ありがとうございます。

epsilon(散逸率)にも k(乱流エネルギ)にも
  value        uniform 1;   // placeholder
と書いてありました。
ならば(1)仮の値を指定しないとエラーになる。(2)epsilonではmixingLengthだけが必要で、kでは intensityだけが必要
という解釈で宜しいでしょうか?


"May the Source be with you"
---->   "One day,I shall be the knight of OpenFOAM "


2017年2月23日木曜日 15時12分15秒 UTC+9 Masashi Imano:

Masashi Imano

unread,
Feb 24, 2017, 2:47:30 AM2/24/17
to OpenFOAM
今野です.

> (1)仮の値を指定しないとエラーになる。

それはテストすればわかると思います.
OpenFOAMのユーティリティではエラーにならない場合でも,
ParaViewなどの可視化ソフトウェアでもテストしてみてください.
("Place holder"はOpenFOAMのユーティリティためだけとは限りません.)

> (2)epsilonではmixingLengthだけが必要で、kでは intensityだけが必要

境界条件の実装詳細は通常*.Hにあるdescriptionだけではなく,
メンバー関数定義側のソース(*.C)を見てください.
簡単な境界条件なら,境界の値を算出している部分はすぐに見付かると思います.



"Remember, the Source be with you, always"

2017年2月24日金曜日 16時30分26秒 UTC+9 小南秀彰:

小南秀彰

unread,
Feb 24, 2017, 5:09:06 AM2/24/17
to OpenFOAM
今野さん

小南です。

turbulentIntensityKineticEnergyInletFvPatchScalarField.C
turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
の中に、それぞれ
intensity_
mixingLength_
という、変数やら関数やらが見つかりますが
value_は見当たりません。もちろん、文字列変数"value"を除きますけど。

また、参照patchとして名前が出ている
inletOutletFvPatchScalarField
について、
*.c と *.h も読みましたが。value_のような変数が見つからないです。


もちろん
turbulentIntensityKineticEnergyInletFvPatchScalarField.C
の138行目が おそらく、
乱流エネルギー=1.5*sqr(乱流強度)*流速
という代入文とだと思われます。

turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
の149行目が、おそらく
ε=(0.09)^(0.75)*(kp)÷混合長
という代入文だと思われます。

それにしても、RANDの渦粘性モデルのフィッティング係数Cμを使って表すのは初めてみました。
渦粘性係数μt=ρ・Cμ・sqrt(乱流エネルギ)・混合長=ρ・Cμ・(乱流エネルギ)^2÷ε
から、自分が最初に投稿した記載の中の「 k^(3/2)=ε・√(2)・L 」という関係だと思っていました。

さて、
理力(force)ではなく、自分の野生の勘が
epsilonとkの設定の中での、value // placefold というのは、
それぞれ、mixingLength と  intensity から、RANSのk-εモデルの式に従ってサブルーチンが計算した値を格納するための、すなわちpost処理のためのplacefoldだと叫んでいます。これは自分の妄想でしょうか?

以上、よろしく 御教示いただきたく、お願いします。

2017年2月24日金曜日 16時47分30秒 UTC+9 Masashi Imano:

Masashi Imano

unread,
Feb 24, 2017, 5:34:38 AM2/24/17
to OpenFOAM
今野です.

inletOutletFvPatchScalarField のソースまで読んだのであれば,もう一歩ですね.
Doxygenを頼りにその親も辿ってください.

https://cpp.openfoam.org/v4/a01118.html

placefolderは,そのキーワード(ここではvalue)の値を設定していないと,
OpenFOAMのユーティリティ実行時にエラーになるから,
仮に穴埋めしておいてという本来の意味と,
小南さんのおっしゃるように,ParaViewなどの可視化用に出力値が入るという
意味のどちらもあると思ってました.

なお,value_変数はそもそも無いので,それに代入するというのは妄想だと思います.

2017年2月24日金曜日 19時09分06秒 UTC+9 小南秀彰:

小南秀彰

unread,
Feb 24, 2017, 7:52:43 AM2/24/17
to OpenFOAM
今野さん

小南です。

> inletOutletFvPatchScalarField のソースまで読んだのであれば,もう一歩ですね.
> Doxygenを頼りにその親も辿ってください.
ありがとうございます。続きは今度にいたします。

さて
turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
の149行目についてですが
Soreceの記載は
this->refValue() = Cmu75*kp*sqrt(kp)/mixingLength_;
です。

数値流体力学 (H.K.ヴァースティーグ, W.マララセーカラ)の記載では、
ε=Cμ^(0.75)*(乱流エネルギー)^(3/2)÷混合長
Sorceのkpが乱流エネルギの3乗なら一致しますが、すぐ上の143行でkpへの代入文があります。

コンピュータによる流体力学(J.H.ファーツィガー, M.ペリッチ)
の記載では、
渦粘性係数μt=ρ・Cμ・sqrt(乱流エネルギ)・混合長=ρ・Cμ・(乱流エネルギ)^2÷ε

つまり、本によって違うのですね。

2017年2月24日金曜日 19時34分38秒 UTC+9 Masashi Imano:
Reply all
Reply to author
Forward
0 new messages