いきなりOpenFOAM (44)

damBreakチュートリアルを実行してみる

はじめに

 前回までは、設定を簡単にするために、setFieldsDictを使った初期条件の設定については行いませんでしたが、これが使えると、任意の部分を液体にして解析を行うなど解析できるケースが広がります。
 今回から数回に分けてsetFieldsDictを使った解析について説明します。

damBreakチュートリアルの実行

 今回は例題として、damBreakチュートリアルを行ってみます。
 OpenFOAMのTutorialフォルダからmultiphase→interFoam→ras内のdamBreakフォルダを任意の箇所にコピーします。damBreakチュートリアルはblockMesh→setFields→interFoamの順にコマンドを動作させると、図5の動画に示すように液体ブロックが崩壊する様子を計算します。順にコマンドを動作させて結果を確認してみます。
 端末でblockMeshと入力すると、メッシュ生成が行われます。paraFoamと入力し、メッシュを表示させると、図1に示すように、メッシュが生成されていることがわかります。この時、constantフォルダ内にはpolyMeshフォルダが生成されています。つまり、XSimなどで任意のCAD形状のメッシュ分割を設定し、./Allrun –mでメッシュ生成だけを行わせてpolyMeshフォルダをdamBreakチュートリアルのconstantフォルダ内に移動させれば、任意形状でのdamBreak問題を解析できます。

図1 メッシュ図

 ただし、この状態では解析空間内には液体は存在しません。そこで、端末でsetFieldsと入力し、同様にしてメッシュを生成し、メッシュ表示をalpha.waterとして、液相率をコンター表示すると、図2に示すように、左下に液相率が1、つまり液体部分が現れます。この液体部分の形状を設定しているファイルがsystemフォルダ内のsetFieldsDictファイルです。つまり、setFieldsDictファイルを書き換えることで任意の範囲に液体部分を生じさせることができます。

図2 setFieldsコマンド実行後の液相率

 次に、端末でinterFoamと入力すると、計算が行われ、図3、図4および図5の動画に示すような液面の変化が得られます。

図3 液面(0.1秒後)
図4 液面(0.5秒後)
図5 液面の変化(アニメーション)

 以上の操作をまとめたものが図6です。interFoamを実行する前に、setFieldsを実行させる以外は、前回までの任意形状のモデルでの自由表面解析と同じです。ファイルの修正についても、setFieldsDictファイルの修正が追加された以外は、前回までの任意形状のモデルでの自由表面解析と同じです。

図6 任意モデルを解析する場合の手順

 今回はsetFieldsDictを使う場合の手順をチュートリアルで説明しました。次回はsetFieldsDictの設定項目などを説明します。

 このページでは、各アプリケーションの操作説明は省略しています。FreeCADの具体的な操作については、いきなりOpenFOAM第5回および第7回、OpenFOAMでの計算実行は第8回、ParaViewの操作については第3回第4回および第8回を参考にしてみてください。

おことわり
 本コンテンツの動作や表示はお使いのバージョンにより異なる場合があります。
 本コンテンツの動作ならびに設定項目等に関する個別の情報提供およびサポートはできかねますので、あらかじめご了承ください。
 本コンテンツは動作および結果の保証をするものではありません。ご利用に際してはご自身の判断でお使いいただきますよう、お願いいたします。