blockMeshDGなんていうツールもあるが、ちょっと調べたら2.3.xから本家のblockMeshコマンドにmultiGrading機能が追加されていたとのことで調べてみた。
従来のblockMeshでは例えば矩形ダクト流れを計算するときに壁面にメッシュを寄せたい場合は、ブロックを分割して壁面側にgradingを近づける必要があったが、新しい機能では、その必要がないということらしい。
1)一様メッシュ
blocks
(
hex (0 1 2 3 4 5 6 7) (100 40 40)
simpleGrading (1
1
1
)
);
2)multiGrading
blocks
(
hex (0 1 2 3 4 5 6 7) (100 40 40)
simpleGrading (
1
// (fraction of the block, fraction of the divisions, grading ratio)
( (0.2 0.3 10) (0.6 0.4 1) (0.2 0.3 0.1) )
( (0.2 0.3 10) (0.6 0.4 1) (0.2 0.3 0.1) )
)
);
上記の例だと、x方向は一様分割で、yおよびz方向は、3つのグレーディングセクションに分かれており(3つの括弧が対応)、それぞれの括弧内は以下のように指定する。
(ブロック全体に占める割合 セクションが占める分割数の割合 グレーディング比)
具体的には、
(0.2 0.3 10)・・・ブロックの2割をセクション化し、分割数40分割の3割を割り当てるとする。比率は10なのでだんだん大きくなるようにする
(0.6 0.4 1)・・・ブロックの6割部分(真ん中のセクション)は一様分割
(0.2 0.3 0.1)・・・ブロックの2割をセクション化し、分割数40の3割を割り当てる。比率は0.1なのでだんだん小さくなるようにする
※ なお、0.2とか0.3というのは割合を指定できればよく、内部で規格化されるので、必ずしも和が1でなくてもよい。