いきなりOpenFOAM (36)

堰を越える流れ(その1)

解析モデルと条件領域

 前回は、XSimで設定されたメッシュをひな型フォルダに移動し、必要なファイルを修正すれば、任意のモデル・条件で解析できることを説明しました。今回は、簡単なモデルとして、堰を越える流れで試してみます。モデルは図1に示すように、幅100mm、長さ5mの途中に、高さ500mmの堰がある水路で、流量は0.01m3/sとします。CADでモデルを作成し、図2に示すように、面要素に分解し、領域を設定します。図で赤い面がinletで、青い面がoutletです。inletを底面に設けたのは、inlet全面が水となるようにするためです(側面に設けると、側面全体から流入した水が本来の水面位置まで滝のように流れ、液面が揺動します)。また、黄色で示した水路上面をatmosphereとし、その他の面はwallsとし、STLファイルを出力します。

図1 解析モデルおよび寸法
図2 条件領域
XSimでのメッシュ設定

 XSimを起動し、STLファイルをインポートし、図3に示すようにスケールを変更します。続いて、図4に示すようにメッシュ設定を行います。今回は、目標ベースメッシュ数を一桁多くし、全体を細分化します。

図3 スケール変換
図4 メッシュ設定

 XSimでのその他の項目設定は不要で、エクスポートで解析ファイルを出力し、展開したフォルダで、端末を起動し、./Allrun –mと入力し、メッシュ生成を行います。paraFoamと入力し、ParaViewを起動し、メッシュを表示すると、図5に示すようにメッシュが生成されていることが確認できます。

図5 計算メッシュ
ひな型を利用した条件設定

 あらかじめ用意しておいたひな型フォルダのconstantフォルダ内に先ほど生成されたpolyMeshフォルダを移動します。XSimから生成されたフォルダやファイルは不要なので、削除してもかまいません。
 ひな型フォルダ内の0フォルダ内のUファイルを修正します。図6に示すUファイルで赤い楕円で囲まれた流入口の流量を0.01m3/sに変更します。controlDictファイルもクーラン条件を満足するようにdeltaTを修正する必要がありますが、今回は試しに、図7に示すそのままの条件で実行してみます。

図6 0/Uファイルを修正
図7 controlDictファイルの設定
interFoamでの計算実行

 端末内で、interFoamと入力し、実行させると、図8に示すように、計算経過が表示されます。図中、赤色の枠で囲まれた部分のクーラン数を見ると、60.47と大きな値となっています。このままでは、計算が不安定となるので、controlDictファイルの時間刻みdeltaTを修正します。クーラン数は時間刻みに比例するので、時間刻みを1/100にすると、クーラン数を1未満にできます。詳しくは、いきなりOpenFOAM第27回を参照してください。

図8 interFoam実行時の画面

 Ctrlキー+Cキーで計算を停止し、controlDictファイルのdeltaTを図9に示すように、0.001に変更します。上書き保存し、interFoamを実行すると、図10に示すように、クーラン数は1未満となることがわかります。クーラン数は流速とも比例するため、計算が進むと変化し、1を超える場合がありますが、OpenFOAMは陰解法を採用しているため、計算が不安定になることはありません。
 ソルバーによっては、時間刻みを自動調整する機能を持っていて、今回計算で使っているinterFoamも自動調整機能を持っています。自動調整機能を使うには、図9に示すcontrolDictファイル内のadjustTimeStepをyesに設定します。すると、計算中は時間刻みの自動調整が働き、maxCoで指定したクーラン数の上限を超えないように時間刻みを自動で設定します。そのため、計算が進むと端末に表示される時間刻みは、図9のdeltaTとは異なる値となります。adjustTimeStepをnoにすると、自動調整は働くなり、端末に表示される時間刻みはdeltaTと等しくなります。また、runTimeModifiableは、計算中にcontrolDictファイルの内容を反映させる機能で、yesに設定しておくと、例えば、計算中に終了時間を変更したい場合、endTimeを修正し上書き保存すると計算に反映され、計算終了時間を変更できます。

図9 controlDictファイルを修正
図10 時間刻み修正後のinterFoam実行画面
ParaViewでの結果の可視化

 計算が完了したら、paraFoamと入力し、ParaViewを起動し、水面を表示させると、図11に示すように、堰を越える流れの水面形状が表示されます。水面の表示については、いきなりOpenFOAM第34回を参照してください。

図11 流入開始から20秒後の水面

 ParaViewでSaveAnimationとして、各時間の画像を保存した後、端末からconvertコマンドで、図12に示す動画を作成できます。詳しくは、いきなりOpenFOAM第34回を参照してください。

図12 水位の変化(アニメーション)

 今回は、任意のモデルとして堰を越える流れを計算してみました。流れの解析ができましたが、水面の変化が激しく、水理学と呼ばれる水位を理論的に解析する手法と比較するには、あまり良い結果とは言えません。そこで、次回は、モデルを修正し現実的な形状を解析してみます。

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

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