こんだけ。非圧縮性ソルバー はそんなにない
mkdir -p $FOAM_RUN // runディレクトリを作っておく。(もしないなら) run // = cd $FOAM_RUN (便利) cp -r $FOAM_TUTORIAL/incompressible/simpleFoam/pitzDaily . cd PitzDaily blockMesh simpleFoam paraFoam
cd steadyIsoThermal blockMesh surfaceFeaturExtract snappyHexMesh -overwrite createPatch -overwrite (v.4以降は不要) paraFoam (メッシュの確認) foamJob simpleFoam (バックグラウンド実行) tail -f log (ログ確認. "End"が計算終了合図)
ログの確認
foamLog log //logsディレクトリができる gnuplot residual.gp evince residual.eps
cd constant rm -rf polyMesh ln -s ../../steadyIsothermal/constant/polyMesh
foamJob buoyantPimpleFoam // 並列の場合 decomposePar // 並列用に領域分割する foamJob -p buoyantPimpleFoam // -pで並列実行 reconstructPar // 領域結合 tail -f log //途中経過確認 paraFoam
// どこのメッシュを残すか locationInMesh (0 0 0);
# vtk DataFile Version 2.0
grid.vtk
ASCII
DATASET POLYDATA
POINTS 8 float
3.2 1.5 1.2
3.7 1.5 1.2
3.7 1.5 1.2
3.2 1.5 1.2
3.2 2.1 1.2
3.7 2.1 1.2
3.7 2.1 1.2
3.2 2.1 1.2
POLYGONS 2 10
4 0 1 2 3
4 4 5 6 7
blockMesh paraFoam -block
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// x3^
// |
// |__ x1
// /
// x2
// 3____ 2
// /| /|
// /_0__/ |1
//7| |6/
// |____|/
// 4 5
// __ 1
// /|
// _2/ |0 ==> 外向きに右ねじの法則
// __|/
// 3
//
convertToMeters 1; //[m]
vertices
(
(0 0 0) //0
(1 0 0) //1
(1 1 0) //2
(0 1 0) //3
(0 0 0.1) //4
(1 0 0.1) //5
(1 1 0.1) //6
(0 1 0.1) //7
);
blocks
(
hex (0 1 2 3 4 5 6 7) (40 40 10) simpleGrading (8 5 2)
//
// simpleGrading (x1s x2s x3s)
// x*s : 分割幅の比率 (最後の分割幅)/(最初の分割幅)
// edgeGrading(g0 g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 g11)
// g* : 全ての辺に対する分割幅の比率
//
);
edges
(
);
// -*- Boundary Type -*-
// patch パッチ (入/出境界)
// wall 壁
// symmetryPlane 対称面
// cyclic 周期境界
// cyclicAMI 不適合境界
// wedge 2次元軸対象
// empty 2次元問題
boundary
(
top
{
type wall;
faces
(
(3 7 6 2)
); // カンマ必須
}
bottom
{
type wall;
faces
(
(1 5 4 0)
);
}
left
{
type wall;
faces
(
(0 4 7 3)
);
}
right
{
type wall;
faces
(
(2 6 5 1)
);
}
frontAndBack
{
type empty; // 2次元問題
faces
(
(4 5 6 7)
(0 3 2 1)
);
}
);
// mergePatchPairs
// {};
変数宣言
minx -0.00101;
maxx 0.05101;
miny -0.00601;
maxy 0.05601;
minz -0.01001;
maxz 0.05601;
nx 52;
ny 32;
nz 56;
vertices
(
($minx $miny $minz)
($maxx $miny $minz)
($maxx $maxy $minz)
($minx $maxy $minz)
($minx $miny $maxz)
($maxx $miny $maxz)
($maxx $maxy $maxz)
($minx $maxy $maxz)
);
blocks
(
hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 1 1)
);