head_img

金魚鉢内の流動シミュレーション

1.はじめに

本チュートリアルでは、インバース機能を用いることで実現可能な滑らかな曲面を有する容器(金魚鉢)内の流動シミュレーションを実施します。紹介するシミュレーション実行に必要な全ての入力ファイルは、以下からダウンロードできます。

入力ファイル

本シミュレーションは、Intel COREi7搭載のノートパソコン上で、並列レベルparallel = 3を用いて、1000ステップ10分程度の計算コストです。


 

2.シミュレーション対象

シミュレーションにおいて最も大事なことは、シミュレーション対象を明確にすることです。本チュートリアルでは、次のような水流を生む出すポンプのある、水の満たされた模擬的な金魚鉢を対象とします。

水流を生む出すポンプのある、水の満たされた模擬的な金魚鉢。
水流を生む出すポンプのある、水の満たされた模擬的な金魚鉢。

ここで、青色物体はx方向に水流を生む出すポンプ、灰色(濃・薄)は、壁境界を示します。また、水は緑色の線まで満たされている、とします。点線は今回のシミュレーション領域を示します。今回は、「ヨット船底及びキールの流体解析」と同様に、水面の境界条件の簡易的表現として、水面の面外方向であるY方向に速度0(ゼロ)の滑りあり壁境界条件を用います。


 

3.3次元モデル作成

3次元モデル作成における基本的な構築ルールは、こちらのページをご覧ください。構築の手順として、まず要素ごとにビットマップ画像作成し3次元モデルを作ります。例えば、最初は金魚鉢を作成し確認、次にポンプを作成し確認、その後、滑りあり壁境界条件を作成し確認、という風に要素部品ごとに作成と確認を繰り返します。

本シミュレーションにおいては、以下のような境界条件色を使用して境界条件ビットマップ画像を作成し、金魚鉢をモデル化します。

プリセット色
  • ポンプ吸引・排出口
  • 水面の簡略表現のための滑りあり壁境界(水面の面外方向であるY方向のみ速度ゼロ)
非プリセット色
  • 金魚鉢(インバースを使うため、正確には金魚鉢の流体側)

これら境界条件色の選択は、要素部品ごとの作成と確認の過程で徐々に決定していくもので、最初から全ての配色を決定するわけではありません。

また、以下に紹介する各境界条件指定ビットマップ画像のピクセル数に関して、厳密に計算領域サイズの縦横比に比例させる必要はありません(ソフトウェアで自動で補間処理を行うため)。しかし、基本的には、ある程度サイズの縦横比を反映させるほうが、画像作成上便利です。上記からダウンロード可能な、本ケースで紹介している入力ファイルでは、境界条件構築用ビットマップ画像のピクセル当たり1mmのサイズで作成されています。

下図は境界条件用ビットマップ画像とシミュレーション領域内でのそれぞれの画像の向きです。

bcXY0.bmp
bcXY0.bmp
bcXY1.bmp
bcXY1.bmp
bcXY0.bmpの配置方向。
bcXY0.bmpの配置方向。
bcXY1.bmpの配置方向。
bcXY1.bmpの配置方向。
bcYZ0.bmp
bcYZ0.bmp
bcYZ1.bmp
bcYZ1.bmp
bcYZ0.bmpの配置方向。
bcYZ0.bmpの配置方向。
bcYZ1.bmpの配置方向。
bcYZ1.bmpの配置方向。
bcZX0.bmp
bcZX0.bmp
bcZX0.bmpの配置方向。
bcZX0.bmpの配置方向。

ここで、まず金魚鉢の形状に関して、非プリセットカラーには、ZX方向のストレッチの構築ルールを選択します(選択の仕方はこちら)。つまり、上で示されている、XY断面形状(bcXY0.bmp)及びYZ断面形状(bcYZ0.bmp)の両断面形状に沿って、ZX断面形状(bcZX0.bmp)をストレッチし滑らかな3次元曲面から構成される金魚鉢を構築します。

境界条件を構築すると、以下のような形状が生成されます。これは、金魚鉢の裏表が逆のモデルとなっており、つまり金魚鉢の中が固体、外側が流体で構成されるモデルです。3次元モデルは常に流体側を表面として構築されるため、下図のように反射面側が流体領域であると判断できます。

構築された裏表逆の金魚鉢モデル。
構築された裏表逆の金魚鉢モデル。

モデルの裏表を逆にするために、非プリセットカラーインバースを追加の構築ルールとして適用します(適用の仕方はこちら)。

この際、デフォルトの設定の場合、プリセット青色で指定されるポンプは金魚鉢より先に構築されますが、あとから構築される金魚鉢内に存在します。この時、上記のインバース操作で、ポンプも一緒にインバースされ、自由に移流する流体領域と認識されてしまいます。これを回避するために、ポンプの構築を金魚鉢の構築の後に変更します。構築順序の変更は、こちらに解説されていますが、単に画像ファイル読み込み画面にて、プリセット青色の項目を非プリセットカラーの項目の下にドラッグ&ドロップするだけです。

以上の構築ルール変更及び構築順序変更の手順をまとめると以下の図のようになります。これらの選択項目は、自動で生成されるプロジェクト内のinput/bmp.txtに記載されており、一度設定すれば、同じプロジェクトに限り次回以降の設定は必要ありません。

①ZX断面にストレッチ (strtch) を適用。
①ZX断面にストレッチ (strtch) を適用。
②インバースを適用。
にインバースを適用。
③プリセット青色の順序を下位に変更。
の順序を下位に変更。

上記の手順で構築される最終的な3次元モデルは以下となります。金魚鉢外側は、全て固体領域ですので3次元モデルの裏側と定義され、反射も考慮されず黒となります。ただし、アニメーションにあるように、金魚鉢の中は流体領域であり、3次元モデルの表側と定義され、正しく光の反射が考慮されています。従って、正しく金魚鉢が構築できたことが分かります。また、アニメーションにおいて、金魚鉢内にプリセット青色で構築したポンプも確認することができます。

構築される最終的な3次元モデル。
構築される最終的な3次元モデル。
構築される最終的な3次元モデル(アニメーション)。
構築される最終的な3次元モデル(アニメーション)。

 

4.入力パラメータ

以下は、本シミュレーションにおいて特に重要なパラメータについての説明です。一般的な計算パラメータの説明は、こちらをご覧ください。

  1. cmode
    0の流体解析モード(密度変動、温度変動なし)を選択。
  2. lx, ly, lz
    x, y, z方向領域サイズはそれぞれ0.3, 0.3, 0.3m。
  3. nx, ny, nz
    x, y, z方向の格子点数は、必要な空間解像度や計算資源を考慮して決定する。本チュートリアルでは、(nx, ny, nz) = (75, 75, 75)とする。
  4. rhoW
    水の密度である997.0 kg/m^3を指定。
  5. uinB, vinB, winB
    ポンプからの流速は、x方向正の向きに1m/s。従って、uinB = 1.0 m/sとする。vinBとwinBはデフォルト値がゼロなので、指定する必要はない。
  6. uinG, vinG, winG
    水面を簡略的に表現するための滑りあり壁条件として適用。水面の面外方向(Y方向)速度のみゼロでそれ以外は滑り条件。従って、(uinG, vinG, winG) = (-,0,-) m/s。
  7. mu
    水の粘性係数として、1.0E-3 (kg/m/s)を指定。

 

5.シミュレーション結果

今回の設定におけるシミュレーション結果ファイルを無償の外部可視化ソフトParaviewで可視化した図を以下に示します(Paraviewによる可視化方法はこちら)。

ポンプ付近からの流線の可視化図。
ポンプ付近からの流線の可視化図。

今回は、3次元的な局面で構成される容器内を構築するためにインバースを用いましたが、通常の水槽のような矩形容器の場合は、5枚の2次元的形状を有する壁でインバースを用いることなくモデル構築が可能です。


 


Top