無料で使えて手軽な流体シミュレーション・ソフトウェア
金魚鉢内の流動シミュレーション
本ページでは2023R1.0以降の新しいバージョンのFlowsquqare+による手順を記載しています。
1.はじめに
本チュートリアルでは、サブトラクション(減算)機能を用いることで実現可能な滑らかな曲面を有する容器(金魚鉢)内の流動シミュレーションを実施します。紹介するシミュレーション実行に必要な全ての入力ファイルは、以下からダウンロードできます。
入力ファイル
- param.txt
- bcXY0.bmp
- bcXY1.bmp
- bcXY2.bmp
- bcYZ0.bmp
- bcYZ1.bmp
- bcZX0.bmp
- bmp.txt(境界条件の構築順が記録されている。以下で説明の境界条件構築順序を設定すれば不必要)
本シミュレーションは、Intel COREi7搭載のノートパソコン上で、並列レベルparallel = 3を用いて、1000ステップ10分程度の計算コストです。
2.シミュレーション対象
シミュレーションにおいて最も大事なことは、シミュレーション対象を明確にすることです。本チュートリアルでは、次のような水流を生む出すポンプのある、水の満たされた模擬的な金魚鉢を対象とします。
ここで、青色物体はx方向に水流を生む出すポンプ、灰色(濃・薄)は、壁境界を示します。また、水は緑色の線まで満たされている、とします。点線は今回のシミュレーション領域を示します。今回は、「ヨット船底及びキールの流体解析」と同様に、水面の境界条件の簡易的表現として、水面の面外方向であるY方向に速度0(ゼロ)の滑りあり壁境界条件を用います。
3.3次元モデル作成
3次元モデル作成における基本的な構築ルールは、こちらのページをご覧ください。構築の手順として、まず要素ごとにビットマップ画像作成し3次元モデルを作ります。例えば、最初は金魚鉢を作成し確認、次にポンプを作成し確認、その後、滑りあり壁境界条件を作成し確認、という風に要素部品ごとに作成と確認を繰り返します。
本シミュレーションにおいては、以下のような境界条件色を使用して境界条件ビットマップ画像を作成し、金魚鉢をモデル化します。
プリセット色- ■ ポンプ吸引・排出口
- ■ 水面の簡略表現のための滑りあり壁境界(水面の面外方向であるY方向のみ速度ゼロ)
- ■ 金魚鉢(サブトラクション(減算)を使うため、正確には金魚鉢の流体側)
- ■ 固体壁
これら境界条件色の選択は、要素部品ごとの作成と確認の過程で徐々に決定していくもので、最初から全ての配色を決定するわけではありません。
また、以下に紹介する各境界条件指定ビットマップ画像のピクセル数に関して、厳密に計算領域サイズの縦横比に比例させる必要はありません(ソフトウェアで自動で補間処理を行うため)。しかし、基本的には、ある程度サイズの縦横比を反映させるほうが、画像作成上便利です。上記からダウンロード可能な、本ケースで紹介している入力ファイルでは、境界条件構築用ビットマップ画像のピクセル当たり1mmのサイズで作成されています。
下図は境界条件用ビットマップ画像とシミュレーション領域内でのそれぞれの画像の向きです。
ここで、まず金魚鉢の形状に関して、非プリセットカラー■には、ZX方向のストレッチの構築ルールを選択します(選択の仕方はこちら)。つまり、上で示されている、XY断面形状(bcXY0.bmp)及びYZ断面形状(bcYZ0.bmp)の両断面形状に沿って、ZX断面形状(bcZX0.bmp)をストレッチし滑らかな3次元曲面から構成される金魚鉢を構築します。
また、非プリセットカラー ■ で構築される固体領域から、非プリセットカラー ■ で構築される金魚鉢の形状モデルを減算することで、金魚鉢内を流体領域に設定するような境界条件構築します。この際、デフォルトの設定の場合、プリセット青色 ■ で指定されるポンプは金魚鉢より先に構築されますが、あとから構築される金魚鉢内に存在します。このため、後から構築される金魚鉢によって、プリセット青色 ■ で指定される境界条件は上書きされてしまいます。これを回避するために、ポンプの構築を金魚鉢の構築の後に変更します。また、同様に非プリセットカラー ■ の構築順序を、非プリセットカラー ■ の後に設定します。構築順序の変更は、こちらに解説されていますが、単に画像ファイル読み込み画面にて、プリセット青色■、非プリセットカラー■、■をドラッグ&ドロップすることで順序変更可能です。
以上の構築ルール変更及び構築順序変更の手順をまとめると以下の図のようになります。これらの選択項目は、自動で生成されるプロジェクト内のinput/bmp.txtに記載されており、一度設定すれば、同じプロジェクトに限り次回以降の設定は必要ありません。
上記の手順で構築される最終的な3次元モデルは以下となります。金魚鉢外側は、全て固体領域ですので3次元モデルの裏側と定義され、反射も考慮されず黒となります。ただし、アニメーションにあるように、金魚鉢の中は流体領域であり、3次元モデルの表側と定義され、正しく光の反射が考慮されています。従って、正しく金魚鉢が構築できたことが分かります。また、アニメーションにおいて、金魚鉢内にプリセット青色で構築したポンプも確認することができます。
4.入力パラメータ
以下は、本シミュレーションにおいて特に重要なパラメータについての説明です。一般的な計算パラメータの説明は、こちらをご覧ください。
- cmode
0の流体解析モード(密度変動、温度変動なし)を選択。 - lx, ly, lz
x, y, z方向領域サイズはそれぞれ0.3, 0.3, 0.3m。 - nx, ny, nz
x, y, z方向の格子点数は、必要な空間解像度や計算資源を考慮して決定する。本チュートリアルでは、(nx, ny, nz) = (75, 75, 75)とする。 - rhoW
水の密度である997.0 kg/m^3を指定。 - uinB, vinB, winB
ポンプからの流速は、x方向正の向きに1m/s。従って、uinB = 1.0 m/sとする。vinBとwinBはデフォルト値がゼロなので、指定する必要はない。 - uinG, vinG, winG
水面を簡略的に表現するための滑りあり壁条件として適用。水面の面外方向(Y方向)速度のみゼロでそれ以外は滑り条件。従って、(uinG, vinG, winG) = (-,0,-) m/s。 - mu
水の粘性係数として、1.0E-3 (kg/m/s)を指定。
5.シミュレーション結果
今回の設定におけるシミュレーション結果ファイルを無償の外部可視化ソフトParaviewで可視化した図を以下に示します(Paraviewによる可視化方法はこちら)。
今回は、3次元的な局面で構成される容器内を構築するためにインバースを用いましたが、通常の水槽のような矩形容器の場合は、5枚の2次元的形状を有する壁でインバースを用いることなくモデル構築が可能です。