いきなりOpenFOAM (53)
液体時計
解析モデルとメッシュ作成
インターネットで「水時計」を検索すると、前回の例のようなもののほか、液体時計などと呼ばれる2種類の液体が入れ替わるタイプのものも見つかります。今回は、OpenFOAMで液体時計を再現してみます。
図1は、解析モデルの寸法・形状です。解析モデルは2つの円柱型容器と容器同士をつなぐ流路とからなります。密閉容器のため、領域はwallsすなわち壁面のみです。モデル表面をwallsという名称でstlファイルに出力します。
ブラウザでXSimを開き、先ほど出力したstlファイルをインポートし、スケールを変更します。次に、メッシュ設定では、図2に示すように、モデル中心に円柱形状の再分割領域を設けます。また、領域wallsにデフォルト設定で境界層を設けます。エクスポートで解析ファイルを出力、展開した後、端末からコマンド./Allrun –mでメッシュを生成します。
ファイルの修正
解析は前回の「水時計」用のファイルなどを流用します。流用するフォルダをコピーし、フォルダ内の計算結果やalpha.waterファイルをやpolymeshフォルダを削除します。次に、先ほど生成したpolymeshフォルダを解析フォルダ内のconstantフォルダ内に移動します。また、0フォルダ内のalpha.water.orgファイル、p_rghファイル、Uファイル内の領域atmosphere、inlet、outletに関する行を削除します。
次に、constantフォルダ内のtransportPropertiesファイルを図3の赤い枠で示したように修正します。液体時計では水と油を用いているので、名称airはそのままにして、動粘性係数nuと密度rhoを適当な値に変更します。
さらに、今回は密閉容器での解析なので、圧力を指定しておく必要があります。具体的には、systemフォルダ内のfvSolutionファイルに図4の赤い枠で示した部分を追加します。これにより、座標(0,0,0)での静圧は1×105Paに固定されます。
次に、systemフォルダ内のsetFieldsDictファイルを図5に示すように修正します。デフォルトで全体をalpha.waterが0すなわちairで設定した物性値に、boxToCellで液体時計の上半分がwaterで設定した物性値にします。これで、密度差により下側の容器から上側の容器にairで設定した液体が移動します。setFieldsDictファイル設定の詳細については、いきなりOpenFOAM第45回を参照してください。
controlDictファイルを図6に示すように設定します。controlDictファイルでは解析終了時間や計算結果の出力間隔を設定します。controlDictファイル設定については、いきなりOpenFOAM第36回を参照してください。
ファイルを修正・上書き保存したら、端末で、setFields、interFoamの順にコマンドを入力すると、計算が始まります。
結果の可視化
計算が終了したら、paraFoamと入力し、Paraviewを起動して結果を可視化します。Paraviewの使い方や液面の表示については、いきなりOpenFOAM第34回を参照してください。
図7は2つの液体の界面を表示したものです。図8は界面の変化を動画にしたものです。下の容器の液体が上側の容器に、また、上側の容器の液体が下側の容器に移動する様子がわかります。
Paraviewで水面をstlファイルとして保存し、CADで作成した容器とあわせてレンダリングソフトで作成したCGを図9に示します。最近のCGソフトには流体の表現を行う機能もありますが、OpenFOAMの解析結果をもとに作成することで、より現実性の高い表現ができます。
次回は、二次流れを再現してみます。二次流れとは、曲がりのある部分の断面に発生する流れに鉛直な流れ成分です。河川では二次流れは土砂の堆積や河側面の浸食などの原因となります。
このページでは、各アプリケーションの操作説明は省略しています。FreeCADの具体的な操作については、いきなりOpenFOAM第5回および第7回、OpenFOAMでの計算実行は第8回、ParaViewの操作については第3回、第4回および第8回を参考にしてみてください。
おことわり
本コンテンツの動作や表示はお使いのバージョンにより異なる場合があります。
本コンテンツの動作ならびに設定項目等に関する個別の情報提供およびサポートはできかねますので、あらかじめご了承ください。
本コンテンツは動作および結果の保証をするものではありません。ご利用に際してはご自身の判断でお使いいただきますよう、お願いいたします。