メッシュファイルの書式2017年11月21日 | |
はじめにOpenFOAM のメッシュファイルの書式について。 メッシュファイルの構成OpenFOAM のメッシュは polyMesh ディレクトリにの中に複数のファイルの形で格納されている。
1セルまず、blockMesh で 1 セルだけのメッシュを作ってみる。 blockMeshDict
convertToMeters 1;
vertices
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 1)
(1 0 1)
(1 1 1)
(0 1 1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
movingWall
{
type wall;
faces
(
(3 7 6 2)
);
}
fixedWalls
{
type wall;
faces
(
(0 4 7 3)
(2 6 5 1)
(1 5 4 0)
);
}
frontAndBack
{
type empty;
faces
(
(0 3 2 1)
(4 5 6 7)
);
}
);
mergePatchPairs
(
);
![]() boundaryboundary
3
(
movingWall
{
type wall;
inGroups 1(wall);
nFaces 1;
startFace 0;
}
fixedWalls
{
type wall;
inGroups 1(wall);
nFaces 3;
startFace 1;
}
frontAndBack
{
type empty;
inGroups 1(empty);
nFaces 2;
startFace 4;
}
)
最初の数字は項目数である。括弧はリストを表す。"movingWall" などは任意の境界名である。"{...}" の形で辞書形式になっている。"type" は境界のタイプで、主に "wall" か "patch" を設定する。壁は "wall" で、出入り口などは "patch" である。その他に "empty" や "symmetry"、"cyclic" など特殊な境界条件用のタイプがある。inGroups はポスト処理用のもので、同じグループ名の境界をひとまとめにする。nFaces は面の数、startFace は最初の面の番号である。面の番号は 0 からはじまる。最初の番号と面の数だけが指定してあるということは、面の番号は境界ごとに順番に並んでいるということである。 pointspoints 8((0 0 0) (1 0 0) (0 1 0) (1 1 0) (0 0 1) (1 0 1) (0 1 1) (1 1 1)) 面を構成する点の座標である。 facesfaces 6 ( 4(2 6 7 3) 4(0 4 6 2) 4(1 3 7 5) 4(0 1 5 4) 4(0 2 3 1) 4(4 5 7 6) ) 面を構成する点の番号である。 owner
6{0}
面の所有セルである。セルは 1 つしかないので、すべての面の所有セルは 0 番である。 neighbour0() 面の隣接セルである。隣接セルを持ち得るのは内部面のみである。セルが 1 つしかないので内部面がなく、隣接セルをもつ面はない。 2セル続いて、2 セル作ってみよう。 blockMeshDict (一部)
blocks
(
hex (0 1 2 3 4 5 6 7) (2 1 1) simpleGrading (1 1 1)
);
![]() boundaryboundary
3
(
movingWall
{
type wall;
inGroups 1(wall);
nFaces 2;
startFace 1;
}
fixedWalls
{
type wall;
inGroups 1(wall);
nFaces 4;
startFace 3;
}
frontAndBack
{
type empty;
inGroups 1(empty);
nFaces 4;
startFace 7;
}
)
1 セルの場合と異なり、"movingWall" の startFace が 1 になっている。面 0 が内部面であることを意味する。面番号は最初に内部面が並び、続いて境界面が並んでいる。 pointspoints 12 ( (0 0 0) (0.5 0 0) (1 0 0) (0 1 0) (0.5 1 0) (1 1 0) (0 0 1) (0.5 0 1) (1 0 1) (0 1 1) (0.5 1 1) (1 1 1) ) facesfaces 11 ( 4(1 4 10 7) 4(3 9 10 4) 4(4 10 11 5) 4(0 6 9 3) 4(2 5 11 8) 4(0 1 7 6) 4(1 2 8 7) 4(0 3 4 1) 4(1 4 5 2) 4(6 7 10 9) 4(7 8 11 10) ) 最初の (1 4 10 7) は内部面である (図を参照) ownerowner 11 ( 0 0 1 0 1 0 1 0 1 0 1 ) セルが 2 つあるので、所有セルは 0 か 1 である。 neighbourneighbour 1(1) 内部面が 1 つあるので、隣接セル情報がある。owner で面 0 の所有セルが 0 になっているので、隣接セルは 1 である。 3セル今度は 3 セル。 blockMeshDict (一部)
blocks
(
hex (0 1 2 3 4 5 6 7) (3 1 1) simpleGrading (1 1 1)
);
![]() boundaryboundary
3
(
movingWall
{
type wall;
inGroups 1(wall);
nFaces 3;
startFace 2;
}
fixedWalls
{
type wall;
inGroups 1(wall);
nFaces 5;
startFace 5;
}
frontAndBack
{
type empty;
inGroups 1(empty);
nFaces 6;
startFace 10;
}
)
内部面が 2 つあるので、"movingWall" の startFace は 2 になっている。 pointspoints 16 ( (0 0 0) (0.3333333333 0 0) (0.6666666667 0 0) (1 0 0) (0 1 0) (0.3333333333 1 0) (0.6666666667 1 0) (1 1 0) (0 0 1) (0.3333333333 0 1) (0.6666666667 0 1) (1 0 1) (0 1 1) (0.3333333333 1 1) (0.6666666667 1 1) (1 1 1) ) facesfaces 16 ( 4(1 5 13 9) 4(2 6 14 10) 4(4 12 13 5) 4(5 13 14 6) 4(6 14 15 7) 4(0 8 12 4) 4(3 7 15 11) 4(0 1 9 8) 4(1 2 10 9) 4(2 3 11 10) 4(0 4 5 1) 4(1 5 6 2) 4(2 6 7 3) 4(8 9 13 12) 4(9 10 14 13) 4(10 11 15 14) ) 最初の 2 つが内部面である。 ownerowner 16 ( 0 1 0 1 2 0 2 0 1 2 0 1 2 0 1 2 ) 内部面の所有セルは 0 と 1 である。 neighbourneighbour 2(1 2) 内部面の所有セルが 0 と 1 なので、隣接セルは 1 と 2 である。 4セル最後に 4 セル。 blockMeshDict (一部)
blocks
(
hex (0 1 2 3 4 5 6 7) (2 2 1) simpleGrading (1 1 1)
);
![]() boundaryboundary
3
(
movingWall
{
type wall;
inGroups 1(wall);
nFaces 2;
startFace 4;
}
fixedWalls
{
type wall;
inGroups 1(wall);
nFaces 6;
startFace 6;
}
frontAndBack
{
type empty;
inGroups 1(empty);
nFaces 8;
startFace 12;
}
)
pointspoints 18 ( (0 0 0) (0.5 0 0) (1 0 0) (0 0.5 0) (0.5 0.5 0) (1 0.5 0) (0 1 0) (0.5 1 0) (1 1 0) (0 0 1) (0.5 0 1) (1 0 1) (0 0.5 1) (0.5 0.5 1) (1 0.5 1) (0 1 1) (0.5 1 1) (1 1 1) ) facesfaces 20 ( 4(1 4 13 10) 4(3 12 13 4) 4(4 13 14 5) 4(4 7 16 13) 4(6 15 16 7) 4(7 16 17 8) 4(0 9 12 3) 4(3 12 15 6) 4(2 5 14 11) 4(5 8 17 14) 4(0 1 10 9) 4(1 2 11 10) 4(0 3 4 1) 4(3 6 7 4) 4(1 4 5 2) 4(4 7 8 5) 4(9 10 13 12) 4(12 13 16 15) 4(10 11 14 13) 4(13 14 17 16) ) ownerowner 20 ( 0 0 1 2 2 3 0 2 1 3 0 1 0 2 1 3 0 2 1 3 ) neighbourneighbour 4(1 2 3 3) | |
| PENGUINITIS | |