いきなりOpenFOAM (45)

setFieldsDictの設定

はじめに

 前回のdamBreakチュートリアルで、setFieldsDictファイルの設定により任意の形状、位置に液体部分を生成できることがわかりました。今回は、setFieldsDictファイルの内容を説明し、いくつかの例を紹介します。

解析空間の作成

 はじめに、練習用の解析領域を用意します。XSimで図1に示すように、原点が中心となるように縦横高さ10mの立方体を作成し、解析ファイルをエクスポートします。メッシュ生成などもデフォルトでかまいません。解析ファイルを展開し、./Allrun –mと入力し、メッシュを生成します。constantフォルダ内のpolyMeshフォルダをdamBreakチュートリアルのconstantフォルダ内に移動します。また、0フォルダ内にalpha.waterファイルがあれば、削除しておきます。
 以上のファイルのセットを異なる液体領域設定ごとに複数コピーします。systemフォルダ内のsetFieldsDictファイルを修正し、端末からsetFields、paraFoamと入力し、ParaViewを起動して、液体表面を表示させると、setFieldsDictファイルで設定した液体部分を確認できます。

図1 解析空間を作成
setFieldsDictの説明

 setFieldsDictファイルは図2に示すように、defaultFieldValuesとregionsの2つからなります。defaultFieldValuesは解析空間全体の値を設定します。図2では液相率が0です。一方、regionsは解析空間内に設定したい形状と値を設定します。regionsは形状と値とからなり、図2では液相率が1の直方体を設定しています。
 形状の設定は3種類あり、boxToCellで直方体、sphereToCellで球体、cylinderToCellで円柱を設定できます。

図2 直方体を生成するsetFieldsDictファイル

 次にboxToCellについて説明します。boxToCellはbox(最小x 最小y 最小z)(最大x 最大y 最大z)で、直方体の位置と寸法を設定します。上記の図2では、原点を中心に縦横高さ2mの立方体の液体部分を生成します。端末からsetFields、paraFoamと入力し、液面を表示させた結果が図3です。

図3 図2の設定で生成された液面

 sphereToCellは、球体を生成します。「centre(球の中心座標)」と「radius 球の半径」で、位置と寸法を設定します。図4では、原点を中心に半径4mの球体を生成します。同様にして可視化した結果が図5です。

図4 球体を生成する設定
図5 図4の設定で生成された液面

 cylinderToCellは、円柱を生成します。「p1(円柱底面の中心座標)」と「p2(円柱上面の中心座標)」と「radius 円柱の半径」で、位置と寸法を設定します。図6では、原点を中心に半径4m、高さ2mの円柱を生成します。同様にして可視化した結果が図7です。

図7 円柱を生成する設定
図7 図6の設定で生成された液面

 regions内に形状、値の組み合わせを続けて記載すると、領域を複数設定できます。図8は球体と直方体を生成させる設定で、可視化した結果は図9に示すように、解析領域の底に高さ1mの液体と底面から高さ8mの位置に半径1mの球状の液体が生成されます。
 なお、~ToCellとあるように、設定はメッシュに対して行われるため、メッシュの範囲を超えた部分は生成されません。例えば、メッシュの底面を原点に球体を生成させると、上半分だけの半球が生成されます。

図8 球体と直方体を生成する設定
図9 図8の設定で生成された液面

 今回はsetFieldsDictの設定項目について説明しました。次回はこれらの設定を使ってダムブレイクの計算を行ってみます。

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

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