第11-A回 境界適合格子の生成方法[julia]
現在はフリーの格子生成ソフトがあふれており、パソコンの性能も上がっているため、数値解析を行う人にとっては、とても便利な世の中だと思います。
ただ、境界適合格子生成について良いものが見当たらなかったため、自作しました。
ので、生成方法やO型格子の境界条件について簡単に説明したいと思います。
コードは下記にアップしています。
https://github.com/hide-dog/code-of-generating-Boundary-Fitted-Coordinate
最終的には、NACA4412の格子やはやぶさカプセルに対する格子を作ります。
1 幾何的生成方法
今回採用した幾何的格子生成方法[1,2]は、コードが簡単に書けるため採用しました。
まず簡単のため、下記のような領域を考えます。
上記の領域でメッシュを作るわけですが、端の座標は決まっているわけです。
その境界の座標を①~④に分け、下記のように値を定義します。
$$x_1=x_1(\xi), \ \ y_1=y_1(\xi)$$
$$x_2=x_2(\eta), \ \ y_2=y_2(\eta)$$
$$x_3=x_3(\xi), \ \ y_3=y_3(\xi)$$
$$x_4=x_4(\eta), \ \ y_4=y_4(\eta)$$
$$0 \le \xi \le 1, \ \ 0 \le \eta \le 1,$$
つまり、境界の初めが0、終わりが1になるように座標を定義してあげます。
そして、下記の式に代入し、境界適合格子を生成します。
$$x(\xi,\eta) = (1-\eta)x_1(\xi) + \eta x_3 (\xi) + (1-\xi)x_2 (\eta)+\xi x_4(\eta) \\ – \left[\xi \eta x_3(1) + \xi (1-\eta) x_1(1) + \eta ( 1-\xi) x_3(0) + (1-\xi)(1-\eta) x_1(0) \right]$$
$$y(\xi,\eta) = (1-\eta)y_1(\xi) + \eta y_3 (\xi) + (1-\xi)y_2 (\eta)+\xi y_4(\eta) \\ – \left[\xi \eta y_3(1) + \xi (1-\eta) y_1(1) + \eta ( 1-\xi) y_3(0) + (1-\xi)(1-\eta) y_1(0) \right]$$
また、\(\xi=0,1 , \ \eta=0,1\)の定義は下記の通りです。
$$(x_1(0), y_1(0)) = (x_2(0), y_2(0))$$
$$(x_2(1), y_2(1)) = (x_3(0), y_3(0))$$
$$(x_3(1), y_3(1)) = (x_4(1), y_4(1))$$
$$(x_4(0), y_4(0)) = (x_1(1), y_1(1))$$
O型格子を作る場合は次のように境界を決めています。
向きは矢印の通りです。①と③は同じ座標となります。
2 O型格子の境界条件
O型格子の境界は上述の図で示した4つになります。
②は物体のため、壁条件を課します。④は前方が流入条件、後方が流出条件となるようにします。
①と③にはお互いに影響を及ぼすようにしなければいけません。そのため、周期境界条件を課します。
これにより、物体背面も問題なく解析できます。
今回の解析コードでは、仮想セルに値を代入していますが、仮想セル領域が物理セル領域と厳密に一致するように定義していないので、注意してください。(格子が十分細かければ問題ない程度)
・その他
NACA4412翼のようにキャンバーがついていると翼後縁でアスペクト比の大きいできてしまうため、C型格子が良いと思います。
境界座標の定義さえすれば、C型格子もこの方法で作成できると思います。
by hide
References
[1] J.F. Thompson, Z.U.A. Warsi and C.W. Mastin, Numerical Grid Generation: Foundations and Applications, North-Holland, amsterdam,1985.
[2] José E. Castillo,Mathematical Aspects of Numerical Grid Generation,Society for Industrial and Applied Mathematics,1987
Tweet
コメントを残す