インポートした形状データの周りに解析領域を作り、OpenFOAM® 用の解析設定ファイルを作成する方法を説明します。また抗力係数、揚力係数などの力係数の値を出力します。
時速約 10 km の空気の流れの中におかれた模擬車体モデル(Ahmed body)の周りの非定常流れを5秒間分、計算します。また抗力係数、揚力係数などの出力設定を行なって各時刻での値を取得します。
XSim を開き、プロジェクトの作成ダイアログでプロジェクト名として「MyProject」と入力し を押します。
このチュートリアルではあらかじめ用意された形状ファイルを使用します。次のリンク「tutorial-AhmedBody.zip」からZipファイルをダウンロードし、適当な場所に展開します。
「ファイルドロップ」タブでダウンロード・展開したファイル「AhmedBody.stl」をドラッグ&ドロップして読み込みます。読み込まれた形状は3Dビュー上に表示されます。
「形状の追加」タブでタイプとして「直方体」を選び、最小座標に(-2, -1.5, 0)m、最大座標(5, 1.5, 1.5)m を設定します。
を押します。3Dビュー下の表示切り替えで3D表示を半透明に切り替えることができます。外部流れの解析では解析領域外との境界の影響を減らすためにできるだけ大きな解析領域を設定することが望ましいですが、一方で、解析領域が大きければそれだけ計算時間や使用メモリ量といった計算コストが大きくなるため、適切なバランスを取る必要があります。
基準としては次の図のように解析対象の最大長さをLとして、上流側に2L、下流側に5~10L、側面方向に5Lの距離を取ると境界の影響を減らせることが経験的に知られています。
また側面方向の距離の目安としては、解析対象の前面投影面積と解析領域の断面積の比であるブロッケージ比(blockage ratio)を基準にすることもあります。ブロッケージ比を基準とする場合、環境風洞では100%~60%以下、力特性測定に用いられる空力風洞では10%以下となるのが望ましいとされます(参考文献[1][2][3])。
でメッシュ設定へ進みます。
「再分割設定」で範囲タイプとして「直方体」を選び、最小座標に(-0.1, -0.5, 0)m、最大座標(3, 0.5, 0.5)m を設定します。また再分割レベルを2に設定します。プレビューボタンを押して形状を確認したら
を押します。さらに「再分割設定」で範囲タイプとして「表面(領域)」を選び、領域として「AhmedBody」を選びます。再分割レベルは3に設定します。設定が終わったら
を押します。厚み比率が0.3、領域が「選択されている領域」、レイヤー層数が3となっていることを確認し、ウィンドウ左側のナビゲーション・ビューで「AhmedBody」、「ZMin」をクリックして選択してから
を押します。で解析の基本設定へ進みます。
解析の種類を設定します。「非定常」を選択し終了時間を5秒に設定します。
で物性の設定へ進みます。
流体の種類を設定します。物性値ライブラリーボタンを押して表示されたダイアログで「Air(空気)」を選択して
を押します。で初期条件設定へ進みます。
最終的な解を得るまでの計算時間を短縮するために、初期流れ場を設定します。物理量で「速度」を選び、値として(2.77, 0, 0)m/s を設定して
を押します。で境界条件設定へ進みます。
領域として「選択されている領域」、タイプとして「流速指定」を選び、ナビゲーション・ビューで「XMin」を選択してから流速として(2.77, 0, 0)m/s を設定して
を押します。領域として「選択されている領域」、タイプとして「静圧指定」を選び、ナビゲーション・ビューで「XMax」を選択してから静圧として0 Pa を設定して
を押します。領域として「選択されている領域」、タイプとして「静止壁」を選び、ナビゲーション・ビューで「AhmedBody」、「ZMin」を選択してから
を押します。流入境界と流出境界は3Dビュー上に矢印で表示されます。
で計算設定へ進みます。
計算に使用するマシンの CPU コア数に合わせて並列数を設定します(例えば 4) 。
で出力設定へ進みます。
今回の計算は非定常計算なのでタイプとして「指定時刻ごと」を選択し、間隔として1秒を設定します。
次に抗力係数の出力を設定します。
「領域」タブを選択し、領域として「選択されている領域」、タイプとして「力係数」を選びます。さらに代表速度として2.77 m/sを設定します。
ナビゲーション・ビューで「AhmedBody」を選択してから投影面積の測定ボタンを押し、投影面積ダイアログで
を押して代表面積を設定します。パラメーターの設定が全て終わったら
ボタンを押して力係数の出力を設定します。でエクスポートページへ進みます。
これで全ての設定が終わりました。
ボタンをクリックして解析設定を zip 圧縮された OpenFOAM ケースのディレクトリ「MyProject.zip」としてエクスポートします。 zip ファイルのダウンロードはただちに開始されます。ダウンロードした「MyProject.zip」を展開します。ケース・ディレクトリ内に bash スクリプト「Allrun」があります。以下のコマンドでこのスクリプトを実行してメッシュの作成と OpenFOAM ソルバーの実行を行います。
実行しているマシンがデスクトップ環境で、gnuplot がインストールされている場合にはモニタリング用に残差収束グラフが表示されます。
4並列(Inter(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19GHz)で実行した場合、メッシュ作成には10秒、解析には8分ほどかかります。
計算が終了したら以下のコマンドで ParaView を実行してメッシュと計算結果を可視化できます。
まずメッシュです。
流速、圧力の分布は以下の様になります。
抗力係数などは「postProcessing/forceCoeffs(AhmedBody)/0」フォルダ内のファイル「forceCoeffs.dat」に以下のような形式のテキストとして出力されます。
# Force coefficients # liftDir : (0.000000e+00 0.000000e+00 1.000000e+00) # dragDir : (1.000000e+00 0.000000e+00 0.000000e+00) # pitchAxis : (0.000000e+00 -1.000000e+00 0.000000e+00) # magUInf : 2.770000e+00 # lRef : 1.000000e+00 # Aref : 1.151719e-01 # CofR : (3.369437e-01 2.145408e-05 7.275021e-02) # Time Cm Cd Cl Cl(f) Cl(r) 0 -5.587547e-03 7.058447e-02 5.698159e-04 -5.302639e-03 5.872454e-03 0.000361925 -1.563391e+01 1.850193e+02 4.270235e+01 5.717266e+00 3.698508e+01 0.000783536 -1.687351e+01 2.081231e+02 5.050325e+01 8.378113e+00 4.212514e+01 ……(省略)…… 4.99739 9.405859e-02 4.975069e-01 5.129965e-01 3.505568e-01 1.624397e-01 4.9987 9.400983e-02 4.974598e-01 5.128405e-01 3.504301e-01 1.624104e-01 5 9.397174e-02 4.974367e-01 5.127337e-01 3.503386e-01 1.623951e-01
Cm、Cd、Clはそれぞれトルク係数、抗力係数、揚力係数を表します。またCl(f)は「Cl/2.0 + Cm」、Cl(r)は「Cl/2.0 - Cm」で定義される値です。