レッスン2.1 — bc.bmp

基本的にFlowsquareで各自のシミュレーションを行うには、まずシミュレーション例から似ているケースを見つけ、そこで紹介されている入力ファイルを少し変える、というプロセスが基本です。これにより、誰でも(数値流体力学CFDに関する深い知識無しでも)シミュレーションを実行できます。しかし、時には自分で1からシミュレーションの条件を決めないといけない事もあるかと思います。このページでは、シミュレーションの為の境界条件の設定について学びます。

境界条件は流体シミュレーションを行う上で最も大事な物のひとつです。Flowsquareではbc.bmpという画像(ビットマップ)ファイルによってこの境界条件を設定します。この画像ファイルをペイントソフトなどをもちいて編集することで、各シミュレーションに最適に境界条件を設定することが出来ます。例えば、2次元チャネル流シミュレーションでのデフォルトのbc.bmpは以下のようになっています。

2次元チャネル流れのシミュレーションにおけるbc.bmp。

2次元チャネル流れのシミュレーションにおけるbc.bmp

この画像はシミュレーション領域全体の境界条件を表しています。このbc.bmpの画像サイズはシミュレーション領域サイズと同じであるべき(grid.txtにてnxny格子点数の領域を設定の場合、nx × nyピクセルの画像を用意)ですが、このサイズが一致しなくてもFlowsquareは自動的に補間します。上の境界条件の場合、左の領域境界に青い線があり、2本の黒い線が上と下の領域境界に位置しています。色はそれぞれ境界条件に関する意味を持ち、Flowsquareでは色によって様々な境界条件を指定します。以下はその説明のリストです。

  • 色 (R,G,B): 境界条件のタイプ
  • 黒 (0,0,0): 滑りなし、勾配無し/温度一定境界条件(壁境界条件)
  • 青 (0,0,255): 流入境界条件1
  • 赤 (255,0,0): 流入境界条件2
  • 緑 (0,255,0): 移動境界条件(勾配無し、または温度一定)
  • 桃 (255,0,255): 純粋空気流入境界(予混合モードのみで利用)
  • 黄 (255,255,0): 追加のスカラー境界

特に、青、赤、桃色の境界条件は、領域境界(シミュレーション領域の縁)のみで用いる事が出来ます。(例 (i, j)=(1, j), (nx, j), (i, 1), (i, ny) )。 仮にこれらの境界条件が領域内(2<=i<=nxかつ2<=j<=ny)で用いられると、その領域は初期条件としてのみ取り扱われるので注意が必要です(さらに注意。初期条件ではic.bmpを使って別に設定することも出来ますが、この場合、ic.bmpが優先されます)。それ以外の境界条件(黒、緑、黄色)に関しては、領域縁及び領域内のどこでも境界条件として利用することが出来ます。それぞれの境界条件のタイプに関するパラメーターはgrid.txt内で設定することが出来ます。そのうちいくつかのパラメーターはオプションです。以下に境界条件のタイプごとにgrid.txtで設定されるパラメーターを説明します。grid.txtで使われるパラメーター名もここでリストします。以下にたびたび現れるcmodeというのはgrid.txtであらかじめ設定するシミュレーションモードであり、cmode=0は非反応・非圧縮性流れ、1は予混合反応性流れ、2は非予混合反応性流れ、3は亜音速・超音速流れモードです。

  • 黒 (0,0,0): 壁境界。滑りなし、勾配無し/温度一定境界
    tempew: 壁面温度(オプション)。もしこれがゼロ以外に設定されると、壁面温度はシミュレーション中、この温度で固定されます。ゼロに設定されると、この壁面温度は周囲の流体温度によって変化します(基本的に勾配ゼロ)。
  • 青 (0,0,255): 流入境界
    uin1: 境界上でのx方向(横方向)速度成分。
    vin1: 境界上でのy方向(縦方向)速度成分。
    rho1: 境界での流体密度(この境界が使われ、cmode=0及び3の場合、設定されなければならない).
    temp1: 境界での流体温度(この境界が使われ、cmode=1及び2の場合、設定されなければならない).
    scalar1: Mixture fraction (この境界条件が使われ、cmode=2の場合、設定されなければならない).
  • Red (255,0,0): 流入境界
    uin2: 境界上でのx方向(横方向)速度成分。
    vin2: 境界上でのy方向(縦方向)速度成分。
    rho2: 境界での流体密度(この境界が使われ、cmode=0及び3の場合、設定されなければならない).
    temp2: 境界での流体温度(この境界が使われ、cmode=1及び2の場合、設定されなければならない).
    scalar2: Mixture fraction (この境界条件が使われ、cmode=2の場合、設定されなければならない).
  • 緑 (0,255,0): 移動境界。勾配無し/温度一定境界
    imb: 1に設定されると、移動境界は周期的に動き続けます。0に設定されると、一体シミュレーション領域から外に出ると戻ってきません。
    umb: x方向(横方向)の壁の移動速度。
    vmb: y方向(縦方向)の壁の移動速度。
    tempew: 移動境界の温度(オプション)。もしこれがゼロ以外に設定されると、移動壁面温度はシミュレーション中、この温度で固定されます。ゼロに設定されると、この移動壁面温度は周囲の流体温度によって変化します(基本的に勾配ゼロ)。
  • 桃 (255,0,255): 純粋空気流入境界(予混合反応性流体モードのみ)
    uin3: 境界上でのx方向(横方向)速度成分。
    vin3: 境界上でのy方向(縦方向)速度成分。
    temp2: 境界での流体温度(この境界が使われる場合必須)。
  • 黄 (255,255,0): 追加のスカラー境界
    scalarT: 境界でのスカラーの値(ユーザーガイド、反応項がない場合の式(25)中のcに一致する。).

これをもとに1から入力ファイルを作ることが出来ます。しかし、一度シミュレーション例に目を通し、類似するシミュレーションケースを見る事をお勧めします。