こんだけ。非圧縮性ソルバー はそんなにない
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) );