いきなりOpenFOAM (52)
水時計
解析モデルとメッシュ作成
水時計とは、容器に満たされる水面高さから時間を計測するもので、常に一定の流速で容器に水を供給する仕組みが必要となります。
https://ja.wikipedia.org/wiki/%E6%B0%B4%E6%99%82%E8%A8%88
この方法として、容器を多段にして安定化させる方法と、供給側の容器にオーバーフロー樋を設けて供給側の水面高さを一定にする方法とがあります。今回は後者のオーバーフロー型をOpenFOAMで再現してみます。
始めに、モデルを設計します。図1に解析モデルの寸法・形状を示します。解析モデルは2つの容器からなり、左側の容器の左側面の流入口から水が流入し、同じく右側面の流出口から右側の容器に流出します。左側の容器の手前側にはオーバーフロー用の流出口があり、左側の容器の水面高さは一定に保たれます。次に、モデルを面に分割し、図2に示した色の各面に名称を付け、stlファイルを出力します。図中、赤色の面にinletとして流入口、青色の面にoutletとして流出口、黄色の面にatmosphereとして大気開放、その他の面にwallsとして壁面とします。
ブラウザでXSimを開き、先ほど出力したstlファイルをインポートし、スケールを変更します。次に、メッシュ設定では、図3に示すように、目標ベースメッシュ数を適当な値に設定し、領域wallsにデフォルト設定で境界層を設けます。エクスポートで解析ファイルを出力、展開した後、端末からコマンド./Allrun –mでメッシュを生成します。
ファイルの修正
解析は前回の「ピタゴラスの盃」用のファイルなどを流用します。流用するフォルダをコピーし、フォルダ内の計算結果やalpha.waterファイルやpolymeshフォルダを削除します。次に、先ほど生成したpolymeshフォルダを解析フォルダ内のconstantフォルダ内に移動します。0フォルダ内のUファイルを図4に示すように修正します。流入口には体積流量0.1×10-3m3/sを設定します。水面の高さは右側の容器の寸法と流入速度とから計算できます。適当な解析時間で現象が再現できるようにモデル形状とあわせて設定してください。
次に、systemフォルダ内のsetFieldsDictファイルを設定します。図5に示すようにboxToCellで高さ160mmまで水面を設定すると、左側の容器には容器底から10mmの高さまで水が充填されます。setFieldsDictファイル設定の詳細については、いきなりOpenFOAM第45回を参照してください。
controlDictファイルを図6に示すように設定します。controlDictファイルでは解析終了時間や計算結果の出力間隔を設定します。controlDictファイル設定については、いきなりOpenFOAM第36回を参照してください。
ファイルを修正・上書き保存したら、端末で、setFields、interFoamの順にコマンドを入力すると、計算が始まります。
結果の可視化
計算が終了したら、paraFoamと入力し、Paraviewを起動して結果を可視化します。Paraviewの使い方や液面の表示については、いきなりOpenFOAM第34回を参照してください。
図7は流入開始から10秒後の液面で、奥側の容器から手前側の容器へと水が流れる様子がわかります。図8は液面変化の動画で、手前の容器の水面が一定の速度で上昇することがわかります。
Paraviewで水面をstlファイルとして保存し、CADで作成した容器とあわせてレンダリングソフトで作成したCGを図9に示します。このように、CFD解析結果は設計や解析のほかに、CG作成用としても用いることができます。
次回は、液体時計をOpenFOAMで再現してみます。液体時計とは、砂時計の砂の代わりに、密度の異なる液体を用いたもので、2つの液体が入れ替わった割合から時間を計測するものです。
このページでは、各アプリケーションの操作説明は省略しています。FreeCADの具体的な操作については、いきなりOpenFOAM第5回および第7回、OpenFOAMでの計算実行は第8回、ParaViewの操作については第3回、第4回および第8回を参考にしてみてください。
おことわり
本コンテンツの動作や表示はお使いのバージョンにより異なる場合があります。
本コンテンツの動作ならびに設定項目等に関する個別の情報提供およびサポートはできかねますので、あらかじめご了承ください。
本コンテンツは動作および結果の保証をするものではありません。ご利用に際してはご自身の判断でお使いいただきますよう、お願いいたします。