/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2012 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // scale 1; // Front/back locations zmin -0.5; zmax 0.5; vertices #codeStream { codeInclude #{ #include "pointField.H" #}; code #{ // sin(45), cos(45) const scalar sqrt05 = sqrt(0.5); pointField points ({ /* 0*/ {0.5, 0, $zmin}, /* 1*/ {1, 0, $zmin}, /* 2*/ {2, 0, $zmin}, /* 3*/ {2, sqrt05, $zmin}, /* 4*/ {sqrt05, sqrt05, $zmin}, /* 5*/ {sqrt05/2, sqrt05/2, $zmin}, /* 6*/ {2, 2, $zmin}, /* 7*/ {sqrt05, 2, $zmin}, /* 8*/ {0, 2, $zmin}, /* 9*/ {0, 1, $zmin}, /*10*/ {0, 0.5, $zmin}, /*11*/ {-0.5, 0, $zmin}, /*12*/ {-1, 0, $zmin}, /*13*/ {-2, 0, $zmin}, /*14*/ {-2, sqrt05, $zmin}, /*15*/ {-sqrt05, sqrt05, $zmin}, /*16*/ {-sqrt05/2, sqrt05/2, $zmin}, /*17*/ {-2, 2, $zmin}, /*18*/ {-sqrt05, 2, $zmin} }); // Duplicate z points for zmax const label sz = points.size(); points.resize(2*sz); for (label i = 0; i < sz; ++i) { const point& pt = points[i]; points[i + sz] = point(pt.x(), pt.y(), $zmax); } os << points; #}; }; blocks ( hex (5 4 9 10 24 23 28 29) (10 10 1) simpleGrading (1 1 1) hex (0 1 4 5 19 20 23 24) (10 10 1) simpleGrading (1 1 1) hex (1 2 3 4 20 21 22 23) (20 10 1) simpleGrading (1 1 1) hex (4 3 6 7 23 22 25 26) (20 20 1) simpleGrading (1 1 1) hex (9 4 7 8 28 23 26 27) (10 20 1) simpleGrading (1 1 1) hex (15 16 10 9 34 35 29 28) (10 10 1) simpleGrading (1 1 1) hex (12 11 16 15 31 30 35 34) (10 10 1) simpleGrading (1 1 1) hex (13 12 15 14 32 31 34 33) (20 10 1) simpleGrading (1 1 1) hex (14 15 18 17 33 34 37 36) (20 20 1) simpleGrading (1 1 1) hex (15 9 8 18 34 28 27 37) (10 20 1) simpleGrading (1 1 1) ); edges ( // Inner cylinder arc 0 5 origin (0 0 $zmin) arc 5 10 origin (0 0 $zmin) arc 1 4 origin (0 0 $zmin) arc 4 9 origin (0 0 $zmin) arc 19 24 origin (0 0 $zmax) arc 24 29 origin (0 0 $zmax) arc 20 23 origin (0 0 $zmax) arc 23 28 origin (0 0 $zmax) // Intermediate cylinder arc 11 16 origin (0 0 $zmin) arc 16 10 origin (0 0 $zmin) arc 12 15 origin (0 0 $zmin) arc 15 9 origin (0 0 $zmin) arc 30 35 origin (0 0 $zmax) arc 35 29 origin (0 0 $zmax) arc 31 34 origin (0 0 $zmax) arc 34 28 origin (0 0 $zmax) ); boundary ( down { type symmetryPlane; faces ( (0 1 20 19) (1 2 21 20) (12 11 30 31) (13 12 31 32) ); } right { type patch; faces ( (2 3 22 21) (3 6 25 22) ); } up { type symmetryPlane; faces ( (7 8 27 26) (6 7 26 25) (8 18 37 27) (18 17 36 37) ); } left { type patch; faces ( (14 13 32 33) (17 14 33 36) ); } cylinder { type symmetry; faces ( (10 5 24 29) (5 0 19 24) (16 10 29 35) (11 16 35 30) ); } ); mergePatchPairs ( ); // ************************************************************************* //