いきなりOpenFOAM (6)

専用プリプロセッサ「XSim」の使い方

XSimについて

 前回、OpenFOAM用の解析ファイルはテキスト形式のファイルであり、規則にしたがってエディタで記述することで、任意形状および任意条件で計算ができること、同時に、規則を正しく理解して記載しないと動作しないなど、初めて使う人にはかなりハードルが高く、GUIがあるブラウザベースのプリプロセッサXSimを利用することをお話しました。
Xsimは無料で利用でき、かつ日本語メニューなど、初めてOpenFOAMで解析を行う人にはとてもハードルが低く、分かりやすいシステムです。
 ●プリプロセッサXSimの起動はこちらから https://xsim.work/
 ●XSimのユーザーズマニュアル、OpenFOAMやFreeCAD等に関する技術情報はこちら https://www.xsim.info/

XSimの起動からメッシュ作成まで

 今回は簡単な例として、円筒の底面を流入口inlet、上面を流出口outlet、側面をFaceという名称で出力したstlファイルを使って、具体的な手順を説明します。ここでは、操作そのものをトレースするのではなく、どのような項目を設定してゆくのかを順番に紹介します。
 ブラウザを起動し、XSimのサイト(https://xsim.work/)にアクセスすると、図1に示すようなプロジェクト名の入力画面が表示されます。任意のプロジェクト名を入力し、赤い〇で囲まれた「作成」をクリックすると、次の段階に進みます。
 なお、会員登録をしなくても利用できますが、登録をし、ログインした状態で作業をすると、作業内容をクラウド上に保存できます。

図1 起動後のプロジェクト名入力画面

「次へ」をクリックすると、図2に示す形状のインポートに移ります。ファイルドロップタブを選択し、stlファイルをドラッグドロップすると、図に示すように、右側のウィンドウに形状が表示されます。ここで、右下赤い〇で囲まれたアイコンをクリックすると、寸法が表示されます。この例では、非常に大きな寸法となっています。これは、stlファイルは単位を持っていないため、作成時の数値(この例ではmmの単位の数値)がそのままインポートされています。一方、OpenFOAMはSI単位すなわちメートル基準です。
 そこで、図3に示すように、形状編集タブを選択し、スケールを変更します。赤い□で囲まれた拡大縮小率でmm⇔mを選択し、拡大縮小中心として原点を選択し、「適用」をクリックするとモデルのスケールが変わります。右側のウィンドウから一旦モデルが消えますが、右下の青い〇で囲まれた虫眼鏡アイコンをクリックすると、再度表示されます。図を見ると、正しい寸法になっていることがわかります。
 なお、右側のウィンドウのモデルはマウスで回転・移動・拡大縮小できます。マウス左ボタンで回転、マウス中ボタンで移動、マウスホイールが拡大・縮小です。

図2 形状のインポート
図3 スケール変更

 「次へ」をクリックし、メッシュ設定に移ります。体積メッシュはモデルを囲む直方体部分の基本となるメッシュ分割で、同時にメッシュ数なども指定します。その際、赤い〇で囲まれた「計算領域」で示された座標を含む空間が流体領域と認識します。計算領域はデフォルトでは、モデルを囲む直方体の中心に設定されるため、通常は、設定する必要はありませんが、流路が偏っているなど中心からずれるようなモデルでは、流体領域内となるように座標を修正してください。
 なお、図の右下の青い〇で囲まれたアイコンをクリックするごとに、モデルはレンダー(ソリッド)→半透明→ワイヤーフレームと表示が切り替わります。

図4 流体領域の設定

 入力欄の下側に移動し、再分割設定を行います。流体解析では、メッシュの細かさと計算時間とはトレードオフの関係にあります。そこで、全体を細かくするのではなく、必要な箇所のみを細かくすることで計算時間を短縮します。これが再分割設定です。
 図5に示すように、細かくする範囲のタイプを選択し、図6に示すように範囲を示す座標を入力し、「追加」をクリックすると再分割領域が設定されます。

図5 再分割設定1
図6 再分割設定2

 入力欄を下側に移動し、レイヤーメッシュを設定します。流体と静止する物体表面の境では、流速の変化が大きくなるため、さらにメッシュを細分化する必要があります。レイヤーメッシュを設定する領域(面)を選択し、層数を入力し、「設定」をクリックするとレイヤーメッシュが設定されます。
 なお、レイヤーメッシュの厚みや総数は流速や使用する乱流モデルなどから理論的な最適値(推奨値)があるのですが、メッシュ形状がいびつにならないように、まずは、厚み比率を0.1~0.3、層数を1~3あたりを目安にするのが良いと思います。

図7 レイヤーメッシュの設定

 ここまでで、モデルのインポートからメッシュの設定が終わりました。計算メッシュの生成はOpenFOAM計算時に行われるため、この画面上で計算メッシュを確認することはできません。

条件設定

 レイヤーメッシュ設定後「次へ」をクリックすると、図8に示す基本設定に移ります。定常解析と非定常解析、および終了サイクルを設定します。
 「乱流」にチェックを入れると、乱流モデルを選ぶことができますが、まずは幅広く利用できる標準k-εモデルを選ぶのが良いと思います。その他の乱流モデルについては、適用範囲や計算負荷などを理解したうえで利用することをお勧めします。また「熱」にチェックを入れると温度変化を伴う計算も可能です。
 最後に「次へ」をクリックすると、基本設定は完了です。

図8 基本設定

 次に、物性設定で流体物性値を設定します。(図9) 水と空気については、物性値がプリセットされています。図の赤い〇で囲まれたアイコンをクリックして表示されるウィンドウでAirあるいはWaterを選択し、「OK」をクリックすると、流体の物性値が設定できます。
 流体のタイプは水や空気などの一般的な流体であれば「ニュートン流体」を選択します。

図9 物性値の設定

 物性の後は、初期条件の設定になります。(図10) 速度、圧力などが設定できます。速度を設定し、数値欄をクリックして表示されるウィンドウに数値を入力し、「設定」をクリックすると初期条件が設定されます。

図10 初期条件設定

 境界条件設定に移ります。境界条件は図11に示すように、流入流出には、流速指定、流量指定、圧力指定、自然流入出が選択できます。また、壁面には、すべり壁、静止壁などが設定できます。
 流速指定、圧力指定は言葉通りですが、自然流入出について簡単に説明します。流速指定・圧力指定ともに、速度は一様を仮定しています。しかしながら、現実の流入出では速度が均一となるとは限らないため、OpenFOAMでは不均一な速度にも対応できるpressureInletOutletVelocityというコマンドが用意されています。自然流入出はこのコマンドを利用して不均一速度の流入出にも対応できるようになっています。
 タイプを選択後、図12のように領域(面)と個別タイプを選択し、数値を入力後「設定」をクリックすることで、境界条件が設定できます。(下の境界条件ボックスに条件が追加されます)

図11 境界条件設定1
図12 境界条件設定2

 計算設定では、並列数と図13に示す数値スキームの選択、図14に示すソルバーの選択が行えます。
 並列数はコンピュータのコア数以内であれば、多いほど計算が速くなりますが、すべてのコアを計算に使ってしまうと他の操作ができなくなってしまうため、コア数未満にするのが一般的です。
 なお、数値スキームとソルバーはまずはデフォルトの設定で計算してみて、うまく計算できない場合に変更することをお勧めします。また緩和係数の数値は一般的に推奨されている値がデフォルトでセットされています。

図13 計算設定1
図14 計算設定2

 図15の赤い〇で囲まれた□にチェックを入れOpenFOAMで計算を開始すると、残差グラフを表示します。「可能な場合はモニターウィンドウを表示」とありますが、通常GNUプロットがインストールされていれば表示されます。
 また、「定常収束判定値」は残差がこの値を下回ると計算を終了させるもので、定常解析でのみ有効です。

図15 計算設定3

 ここまでで計算設定は終了です。計算設定ではいくつか数値流体力学の知識が必要な部分がありますが、まずはデフォルトの条件で計算してみて、うまく計算できない場合に調整することをお勧めします。また、計算がうまくいかない原因の多くが、入口はあるのに出口が無いなどの条件の矛盾、単位やスケールの間違いに起因しています。数値スキームや行列ソルバー、緩和係数などの計算コントロールを調整する前に、今一度設定した条件を見直して、矛盾が無いことを確認してみてください。

出力設定

 計算設定が終わると出力設定に移ります。図16に示すように、出力するタイミングを「指定サイクルごと」と「指定時刻ごと」から選択し、出力間隔を入力します。図17に示すように出力結果のフォーマットも選択できます。

図16 出力設定1
図17 出力設定2

 図18に示すように、「全体」タブで各項目にチェックを入れることで、どのようなパラメータを出力するかを選択できます。

図18 出力設定3

 図19の「領域」タブをクリックすると、領域に付随した情報を出力できます。例えば、抗力係数や揚力係数の算出は、「力係数」を利用すると簡単に行えます。これらの具体的な方法については後の回の事例で紹介します。

図19 出力設定4

 図20に示す「サンプリング」タブは、指定した位置での情報を出力します。物理量を選択し、座標を入力、座標を入力した右の青い〇で囲まれたアイコンをクリックすると、図21に示すように、右側のウィンドウに赤い〇で囲まれた点の情報が出力されます。

図20 出力設定5
図21 出力設定6

 XSimではデフォルトでParaView用のファイルを出力するように設定されますが、図22に示すように、その他のポストプロセッサ用のデータを出力することもできます。

図22 出力設定7
設定ファイルのエクスポートと計算の実行

 最後にエクスポートでOpenFOAM用の設定ファイルを出力します。図23に示すように、XSimはOpenFOAM4とOpenFOAM7用の解析ファイルを出力できます。OpenFOAMは機能追加などによりコマンドが頻繁に変わります。そのため、設定ファイルのバージョンとあわないとエラーとなる場合があります。一方、OpenFOAM財団版とESI版の2つのバージョンについては、世代が同じであれば、そのまま使える可能性があります。XSimから出力したOpenFOAM 7用のファイルはESI版のOpenFOAM v1912でも実行できる可能性があります。
フォーマットを選択し、「エクスポート」をクリックすると、ファイルブラウザが開きます。保存場所を指定して、OKをクリックすると、設定ファイルがzip形式で出力されます。

図23 エクスポート

出力されたzipファイルを解凍すると、フォルダ内にOpenFOAM用の設定ファイル(一式)があります。いくつかファイルやフォルダがありますが、名前やフォルダ構成等は変更しないようにしてください。
解凍したファイルの中に、「Allrun」というシェルスクリプトがあります。Allrunに実行権限を付与し、Allrunを実行すると、OpenFOAMが起動し、メッシュ分割から計算を自動で行います。また、同じフォルダにある「Allclean」というシェルスクリプトを実行すると、計算結果を削除して計算前の状態に戻すことができます。
なお、Linuxのターミナル上ではAllrunまたはAllcleanのファイルがあるディレクトリに移動し、下記のようにコマンドを入力しEnterで実行します。

 ./Allrun
 ./Allclean

 今回は少々長かったですが、XSimでの設定の流れを紹介しました。次回は具体的なモデルを使って、XSimで計算用ファイルを作成、計算実行まで行います。

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