/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2006 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // scale 1; verbose no; // Geometric parameters rxo 2; ryo 3; rzo 4; // Geometric parameters outerRadius 1; innerRatio 0.75; // Divisions in x/y/z and radial directions. Can be unequal. nx 30; ny 24; nz 20; nr 6; geometry { sphere { type sphere; origin (0 0 0); radius ($rxo $ryo $rzo); } innerSphere { $sphere radius ( #eval{ $rxo * $innerRatio } #eval{ $ryo * $innerRatio } #eval{ $rzo * $innerRatio } ); } } // Outer box sizes (approximate) vxo #eval{ sqrt(1.0/3.0) * $rxo }; mvxo #eval{ -$vxo }; vyo #eval{ sqrt(1.0/3.0) * $ryo }; mvyo #eval{ -$vyo }; vzo #eval{ sqrt(1.0/3.0) * $rzo }; mvzo #eval{ -$vzo }; // Inner box sizes - % of overall dimension vxi #eval{ $vxo * $innerRatio }; mvxi #eval{ -$vxi }; vyi #eval{ $vyo * $innerRatio }; mvyi #eval{ -$vyi }; vzi #eval{ $vzo * $innerRatio }; mvzi #eval{ -$vzi }; vertices ( // Inner block points project ($mvxi $mvyi $mvzi) (innerSphere) project ( $vxi $mvyi $mvzi) (innerSphere) project ( $vxi $vyi $mvzi) (innerSphere) project ($mvxi $vyi $mvzi) (innerSphere) project ($mvxi $mvyi $vzi) (innerSphere) project ( $vxi $mvyi $vzi) (innerSphere) project ( $vxi $vyi $vzi) (innerSphere) project ($mvxi $vyi $vzi) (innerSphere) // Outer block points project ($mvxo $mvyo $mvzo) (sphere) project ( $vxo $mvyo $mvzo) (sphere) project ( $vxo $vyo $mvzo) (sphere) project ($mvxo $vyo $mvzo) (sphere) project ($mvxo $mvyo $vzo) (sphere) project ( $vxo $mvyo $vzo) (sphere) project ( $vxo $vyo $vzo) (sphere) project ($mvxo $vyo $vzo) (sphere) ); blocks ( hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) grading (1 1 1) // Inner block // Outer blocks hex ( 8 0 3 11 12 4 7 15) ($nr $ny $nz) grading (1 1 1) // x-min hex ( 1 9 10 2 5 13 14 6) ($nr $ny $nz) grading (1 1 1) // x-max hex ( 8 9 1 0 12 13 5 4) ($nx $nr $nz) grading (1 1 1) // y-min hex ( 3 2 10 11 7 6 14 15) ($nx $nr $nz) grading (1 1 1) // y-max hex ( 8 9 10 11 0 1 2 3) ($nx $ny $nr) grading (1 1 1) // z-min hex ( 4 5 6 7 12 13 14 15) ($nx $ny $nr) grading (1 1 1) // z-max ); edges ( // Outer blocks project 8 9 (sphere) project 10 11 (sphere) project 14 15 (sphere) project 12 13 (sphere) project 8 11 (sphere) project 9 10 (sphere) project 13 14 (sphere) project 12 15 (sphere) project 8 12 (sphere) project 9 13 (sphere) project 10 14 (sphere) project 11 15 (sphere) // Inner block project 0 1 (innerSphere) project 2 3 (innerSphere) project 6 7 (innerSphere) project 4 5 (innerSphere) project 0 3 (innerSphere) project 1 2 (innerSphere) project 5 6 (innerSphere) project 4 7 (innerSphere) project 0 4 (innerSphere) project 1 5 (innerSphere) project 2 6 (innerSphere) project 3 7 (innerSphere) ); faces ( // Outer blocks project ( 8 12 15 11) sphere // x-min project ( 9 10 14 13) sphere // x-max project ( 8 9 13 12) sphere // y-min project (11 15 14 10) sphere // y-max project ( 8 11 10 9) sphere // z-min project (12 13 14 15) sphere // z-max ); boundary ( walls { type wall; faces ( ( 8 12 15 11) // x-min ( 9 10 14 13) // x-max ( 8 9 13 12) // y-min (11 15 14 10) // y-max ( 8 11 10 9) // z-min (12 13 14 15) // z-max ); } ); // ************************************************************************* //