/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2312 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // scale 1; // Geometric parameters rInner 0.5; rOuter 1; xmax 2; ymax 2; zmin -0.5; // Back/front locations zmax 0.5; // Divisions: Radial, quarter circumference, outer region and z-directions. nRadial 10; nQuarter 10; nxOuter 20; nyOuter 20; nz 1; // ---------------- // Derived quantities rInner45 ${{ $rInner * sqrt(0.5) }}; rOuter45 ${{ $rOuter * sqrt(0.5) }}; vertices #codeStream { codeInclude #{ #include "pointField.H" #}; code #{ pointField points ({ /* 0*/ { $rInner, 0, $zmin }, /* 1*/ { $rOuter, 0, $zmin }, /* 2*/ { $xmax, 0, $zmin }, /* 3*/ { $xmax, $rOuter45, $zmin }, /* 4*/ { $rOuter45, $rOuter45, $zmin }, /* 5*/ { $rInner45, $rInner45, $zmin }, /* 6*/ { $xmax, $ymax, $zmin }, /* 7*/ { $rOuter45, $ymax, $zmin }, /* 8*/ { 0, $ymax, $zmin }, /* 9*/ { 0, $rOuter, $zmin }, /*10*/ { 0, $rInner, $zmin }, /*11*/ { -$rInner, 0, $zmin }, /*12*/ { -$rOuter, 0, $zmin }, /*13*/ { -$xmax, 0, $zmin }, /*14*/ { -$xmax, $rOuter45, $zmin }, /*15*/ { -$rOuter45, $rOuter45, $zmin }, /*16*/ { -$rInner45, $rInner45, $zmin }, /*17*/ { -$xmax, $ymax, $zmin }, /*18*/ { -$rOuter45, $ymax, $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; #}; }; // Can remove unneeded variables #remove ( "r(Inner|Outer).*" "[xy](min|max)" ) blocks ( hex (5 4 9 10 24 23 28 29) ($nRadial $nQuarter $nz) grading (1 1 1) hex (0 1 4 5 19 20 23 24) ($nRadial $nQuarter $nz) grading (1 1 1) hex (1 2 3 4 20 21 22 23) ($nxOuter $nQuarter $nz) grading (1 1 1) hex (4 3 6 7 23 22 25 26) ($nxOuter $nyOuter $nz) grading (1 1 1) hex (9 4 7 8 28 23 26 27) ($nQuarter $nyOuter $nz) grading (1 1 1) hex (15 16 10 9 34 35 29 28) ($nRadial $nQuarter $nz) grading (1 1 1) hex (12 11 16 15 31 30 35 34) ($nRadial $nQuarter $nz) grading (1 1 1) hex (13 12 15 14 32 31 34 33) ($nxOuter $nQuarter $nz) grading (1 1 1) hex (14 15 18 17 33 34 37 36) ($nxOuter $nyOuter $nz) grading (1 1 1) hex (15 9 8 18 34 28 27 37) ($nQuarter $nyOuter $nz) grading (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 ( ); // ************************************************************************* //