167 lines
4.3 KiB
C++
167 lines
4.3 KiB
C++
/*--------------------------------*- 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
|
|
);
|
|
}
|
|
);
|
|
|
|
// ************************************************************************* //
|