User Guide - 2.1.8 High Reynolds number flow
出典: OFWikiJa
paraFoamによる結果の確認と速度ベクトルの表示をさせます。計算領域の角における二次渦が幾分増大しています。ここでユーザーは粘性係数を下げることによりレイノルズ数を増大させた計算ケースを実行できます。 渦の数が増加するにともない、より複雑な流れを解くために当該領域でのメッシュ解像度を上げる必要があるでしょう。 更に、レイノルズ数は収束に要する時間を増加させます。ユーザーは残差をモニターし、解を収束させるためにendTimeを延長しなければなりません。
空間および時間解像度の増加を要することは、流れが乱流域に移行するという非現実的な状態となり、解法の安定性の問題が生じることとなります。 もちろん、多くのエンジニアリングな問題は極めて高いレイノルズ数条件となっており、したがって、乱流挙動を直接解くのに多くのコストを負担することとなり、実行不可能であります。 これにかわり乱流モデルが平均流れの挙動を解くのに用いられ、ゆらぎの統計値が計算されています。 壁関数を伴う標準構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k-\epsilon モデルが本チュートリアルの上面が移動するキャビティケース(レイノルズ数構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): 10^4 )を解くのに用いられています。 二つの追加変数が解かれています: それは、乱流エネルギー構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k 、乱流消散速度構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon です。 乱流のための追加の方程式およびモデルはOpenFOAMソルバーにおいて、turbFoamで呼び出され、実行されます。
[編集] 2.1.8.1 プリプロセッシング
FoamXにて、$HOME_RUN/tutorials/turbFoamディレクトリのcavityケースを開きます。従来通り、blockMeshを走らせ、メッシュを生成します。壁関数付き標準構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k-\epsilon モデルを用いる場合は、壁近傍のセルにおける流れがモデル化されることにより、壁方向へのメッシュ勾配は必ずしも必要ではありません。
セクション2.1.1.2で述べたように、FoamXを用いて境界条件を設定します。壁タイプの境界条件の選択には、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon についてはzeroGradient境界条件を、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k についてはfixedValue 0を指定します。 初期条件の設定のために、先に述べた条件を選択します。すなわち、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): U 、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): p はそれぞれ構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): (0,0,0) および構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): 0 とします。 しかし、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k 、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon については、解法アルゴリズムにてゼロ割を避けるために、正の値を与えます。 構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k 、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon の適当な初期条件は、速度変動構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): U' と乱流長さスケール構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): l を用いて設定することが出来、次式に示すように表されます。
構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k = \frac{1}{2} \overline{\bf U' \cdot U'} eq.(2.8)
構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon = \frac{C_\mu^{0.75} k^{1.5}}{l} eq.(2.9)
ここで構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): C_\mu は構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k-\epsilon モデルの定数であり、その値は0.09です。カーデシアン座標系では構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k は、
構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k = \frac{1}{2} ( U'_x^2 + U'_y^2 + U'_z^2) eq.(2.10)
で表されます。各項はx、y、z方向速度ゆらぎ成分です。ここで、初期乱流が等方的であると仮定します。例えば、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): U'_x^2 = U'_y^2 = U'_z^2 となり、これら速度は上面速度の5%に等しく、また、乱流長さスケール構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): l はボックス幅0.1mの20%に等しいとすると、次のように表されます。
構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): U'_x = U'_y = U'_z = \frac{5}{100} 1 ms^{-1} eq.(2.11)
構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \rightarrow k = \frac{3}{2} \left( \frac{5}{100} \right)^2 m^2s^{-2} = 3.75 \times 10^{-3} m^2s^{-2} eq.(2.12)
構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon = \frac{C_mu^{0.75}k^{1.5}}{l} \sim 7.65 \times 10^{-4} m^2s^{-3} eq.(2.13)
上記のとおり構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k 、構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): \epsilon を設定してください。
次いで、transportPropertiesディクショナリの層流動粘度を設定します。 レイノルズ数構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): 10^4 を実現するために、式2.1のレイノルズ数の定義式に示されるように、動粘度を構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): 10^{-5} mにする必要があります。
turbulencePropertiesディクショナリを開き、乱流モデルを選択します。乱流モデルはturbulenceModelエントリーで選択されます。表3.9に示すように多くの使用可能なモデルが与えられています。ユーザーは標準構文解析失敗 (texvcプログラムが見つかりません。math/READMEを読んで正しく設定してください。): k-\epsilon モデルを表すkEpsilonをここでは選択します。そして、turbulenceのスイッチをonにします。 乱流モデルに関する係数は標準ディクショナリのkEpsilonCoeffs以下に、また、同ディクショナリにwallFunctionCoeffsの設定もあります。
次いで、controlDictのstartTime、stopTime、deltaT、そしてwriteIntervalを設定します。クーラン数の制限を満たすためにdeltaTを0.005sに設定し、endTimeは10sとします。
[編集] 2.1.8.2 コードの実行
本チュートリアルで先に述べた方法でturbFoamを実行します。粘性が小さいこの計算ケースでは、移動している上面近傍の境界層は極めてうすく、そして、上面に面するセルは比較的大きいことから、上面速度よりもそれらセル中心の流体速度は極めて小さいです。 事実、100時間ステップ後、上面に隣接したセルにおける速度は、上限である0.2ms-1程度です。したがって最大クーラン数は0.2以上にはなりません。 クーラン数がより1に近接するように時間ステップを大きくし、解析時間を増やすことは理にかなっています。 したがって、deltaTを0.02sにセットし直し、これに伴い、startFromをlatestTimeにセットします。 本操作は、turbFoamが最新のディレクトリ、例えば10.0、からスタートデータを読み込むように指示するものです。endTimeは層流条件よりも収束に時間を要するため、20sにセットします。従来通り計算をリスタートし、解析の収束をモニターします。
