TUT: generalize (parameterize) blockMeshDict for half-cylinder geometries

- profit from some of the recent modifications to parser expansion

TUT: adjust some #eval statements for less clutter
This commit is contained in:
Mark Olesen
2021-05-17 14:41:39 +02:00
parent 2dbabb242b
commit ec81436cce
19 changed files with 384 additions and 283 deletions

View File

@ -16,9 +16,27 @@ FoamFile
scale 1;
// Front/back locations
zmin -0.5;
zmax 0.5;
// 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
{
@ -29,30 +47,27 @@ vertices #codeStream
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}
/* 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
@ -68,19 +83,21 @@ vertices #codeStream
#};
};
// Can remove unneeded variables
#remove ( "r(Inner|Outer).*" "[xy](min|max)" )
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)
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

View File

@ -0,0 +1,27 @@
/*--------------------------------*- 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 decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
method simple;
coeffs
{
n ( 2 2 1 );
}
// ************************************************************************* //

View File

@ -40,22 +40,20 @@ nz #eval{ round($nz / 5) };
#endif
zmin #eval{ -$zmax };
mrad0 #eval{ -$rad0 };
mrad1 #eval{ -$rad1 };
vertices
(
// back-plane:
// inlet region
( $xin $rad0 $zmin) // pt 0
( 0 $rad0 $zmin) // pt 1
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
( $xin $rad0 $zmin) // pt 0
( 0 $rad0 $zmin) // pt 1
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
// outlet region
( $xout $mrad1 $zmin) // pt 4
( 0 $mrad1 $zmin) // pt 5
( 0 $mrad0 $zmin) // pt 6
( $xout $mrad0 $zmin) // pt 7
( $xout -$rad1 $zmin) // pt 4
( 0 -$rad1 $zmin) // pt 5
( 0 -$rad0 $zmin) // pt 6
( $xout -$rad0 $zmin) // pt 7
// bend mid-points
( $rad0 0 $zmin) // pt 8
( $rad1 0 $zmin) // pt 9
@ -66,13 +64,13 @@ vertices
( 0 $rad1 $zmax) // pt 2 + 10
( $xin $rad1 $zmax) // pt 3 + 10
// outlet region
( $xout $mrad1 $zmax) // pt 4 + 10
( 0 $mrad1 $zmax) // pt 5 + 10
( 0 $mrad0 $zmax) // pt 6 + 10
( $xout $mrad0 $zmax) // pt 7 + 10
( $xout -$rad1 $zmax) // pt 4 + 10
( 0 -$rad1 $zmax) // pt 5 + 10
( 0 -$rad0 $zmax) // pt 6 + 10
( $xout -$rad0 $zmax) // pt 7 + 10
// bend mid-points
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10
);
blocks

View File

@ -40,22 +40,20 @@ nz #eval{ round($nz / 5) };
#endif
zmin #eval{ -$zmax };
mrad0 #eval{ -$rad0 };
mrad1 #eval{ -$rad1 };
vertices
(
// back-plane:
// inlet region
( $xin $rad0 $zmin) // pt 0
( 0 $rad0 $zmin) // pt 1
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
( $xin $rad0 $zmin) // pt 0
( 0 $rad0 $zmin) // pt 1
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
// outlet region
( $xout $mrad1 $zmin) // pt 4
( 0 $mrad1 $zmin) // pt 5
( 0 $mrad0 $zmin) // pt 6
( $xout $mrad0 $zmin) // pt 7
( $xout -$rad1 $zmin) // pt 4
( 0 -$rad1 $zmin) // pt 5
( 0 -$rad0 $zmin) // pt 6
( $xout -$rad0 $zmin) // pt 7
// bend mid-points
( $rad0 0 $zmin) // pt 8
( $rad1 0 $zmin) // pt 9
@ -66,13 +64,13 @@ vertices
( 0 $rad1 $zmax) // pt 2 + 10
( $xin $rad1 $zmax) // pt 3 + 10
// outlet region
( $xout $mrad1 $zmax) // pt 4 + 10
( 0 $mrad1 $zmax) // pt 5 + 10
( 0 $mrad0 $zmax) // pt 6 + 10
( $xout $mrad0 $zmax) // pt 7 + 10
( $xout -$rad1 $zmax) // pt 4 + 10
( 0 -$rad1 $zmax) // pt 5 + 10
( 0 -$rad0 $zmax) // pt 6 + 10
( $xout -$rad0 $zmax) // pt 7 + 10
// bend mid-points
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10
);
blocks

View File

@ -40,8 +40,6 @@ nz #eval{ round($nz / 5) };
#endif
zmin #eval{ -$zmax };
mrad0 #eval{ -$rad0 };
mrad1 #eval{ -$rad1 };
vertices
(
@ -52,13 +50,13 @@ vertices
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
// outlet region
( $xout $mrad1 $zmin) // pt 4
( 0 $mrad1 $zmin) // pt 5
( 0 $mrad0 $zmin) // pt 6
( $xout $mrad0 $zmin) // pt 7
( $xout -$rad1 $zmin) // pt 4
( 0 -$rad1 $zmin) // pt 5
( 0 -$rad0 $zmin) // pt 6
( $xout -$rad0 $zmin) // pt 7
// bend mid-points
( $rad0 0 $zmin) // pt 8
( $rad1 0 $zmin) // pt 9
( $rad0 0 $zmin) // pt 8
( $rad1 0 $zmin) // pt 9
// front-plane:
// inlet region
( $xin $rad0 $zmax) // pt 0 + 10
@ -66,10 +64,10 @@ vertices
( 0 $rad1 $zmax) // pt 2 + 10
( $xin $rad1 $zmax) // pt 3 + 10
// outlet region
( $xout $mrad1 $zmax) // pt 4 + 10
( 0 $mrad1 $zmax) // pt 5 + 10
( 0 $mrad0 $zmax) // pt 6 + 10
( $xout $mrad0 $zmax) // pt 7 + 10
( $xout -$rad1 $zmax) // pt 4 + 10
( 0 -$rad1 $zmax) // pt 5 + 10
( 0 -$rad0 $zmax) // pt 6 + 10
( $xout -$rad0 $zmax) // pt 7 + 10
// bend mid-points
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10

View File

@ -18,66 +18,91 @@ FoamFile
scale 0.016;
// Front/back locations
zmin 0;
zmax 0.5;
// Geometric parameters
rInner 0.5;
rOuter 1;
xmax 2;
ymax 2;
zmin 0; // 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) }};
xmin ${{ -$xmax }};
vertices
(
(0.5 0 $zmin)
(1 0 $zmin)
(2 0 $zmin)
(2 0.707107 $zmin)
(0.707107 0.707107 $zmin)
(0.353553 0.353553 $zmin)
(2 2 $zmin)
(0.707107 2 $zmin)
(0 2 $zmin)
(0 1 $zmin)
(0 0.5 $zmin)
(-0.5 0 $zmin)
(-1 0 $zmin)
(-2 0 $zmin)
(-2 0.707107 $zmin)
(-0.707107 0.707107 $zmin)
(-0.353553 0.353553 $zmin)
(-2 2 $zmin)
(-0.707107 2 $zmin)
(0.5 0 $zmax)
(1 0 $zmax)
(2 0 $zmax)
(2 0.707107 $zmax)
(0.707107 0.707107 $zmax)
(0.353553 0.353553 $zmax)
(2 2 $zmax)
(0.707107 2 $zmax)
(0 2 $zmax)
(0 1 $zmax)
(0 0.5 $zmax)
(-0.5 0 $zmax)
(-1 0 $zmax)
(-2 0 $zmax)
(-2 0.707107 $zmax)
(-0.707107 0.707107 $zmax)
(-0.353553 0.353553 $zmax)
(-2 2 $zmax)
(-0.707107 2 $zmax)
/* 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 )
/*19*/ ( $rInner 0 $zmax )
/*20*/ ( $rOuter 0 $zmax )
/*21*/ ( $xmax 0 $zmax )
/*22*/ ( $xmax $rOuter45 $zmax )
/*23*/ ( $rOuter45 $rOuter45 $zmax )
/*24*/ ( $rInner45 $rInner45 $zmax )
/*25*/ ( $xmax $ymax $zmax )
/*26*/ ( $rOuter45 $ymax $zmax )
/*27*/ ( 0 $ymax $zmax )
/*28*/ ( 0 $rOuter $zmax )
/*29*/ ( 0 $rInner $zmax )
/*30*/ ( -$rInner 0 $zmax )
/*31*/ ( -$rOuter 0 $zmax )
/*32*/ ( -$xmax 0 $zmax )
/*33*/ ( -$xmax $rOuter45 $zmax )
/*34*/ ( -$rOuter45 $rOuter45 $zmax )
/*35*/ ( -$rInner45 $rInner45 $zmax )
/*36*/ ( -$xmax $ymax $zmax )
/*37*/ ( -$rOuter45 $ymax $zmax )
);
// Can remove some unneeded variables
#remove ( "r(Inner|Outer).*" "[xy](min|max)" )
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)
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

View File

@ -0,0 +1,27 @@
/*--------------------------------*- 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 decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
method simple;
coeffs
{
n ( 2 2 1 );
}
// ************************************************************************* //

View File

@ -46,7 +46,7 @@ timePrecision 6;
runTimeModifiable true;
// Allow 10% run-up before calculating mean
timeStart #eval #{ 0.1 * ${/endTime} #};
timeStart #eval{ 0.1 * ${/endTime} };
functions

View File

@ -40,22 +40,20 @@ nz #eval{ round($nz / 5) };
#endif
zmin #eval{ -$zmax };
mrad0 #eval{ -$rad0 };
mrad1 #eval{ -$rad1 };
vertices
(
// back-plane:
// inlet region
( $xin $rad0 $zmin) // pt 0
( 0 $rad0 $zmin) // pt 1
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
( $xin $rad0 $zmin) // pt 0
( 0 $rad0 $zmin) // pt 1
( 0 $rad1 $zmin) // pt 2
( $xin $rad1 $zmin) // pt 3
// outlet region
( $xout $mrad1 $zmin) // pt 4
( 0 $mrad1 $zmin) // pt 5
( 0 $mrad0 $zmin) // pt 6
( $xout $mrad0 $zmin) // pt 7
( $xout -$rad1 $zmin) // pt 4
( 0 -$rad1 $zmin) // pt 5
( 0 -$rad0 $zmin) // pt 6
( $xout -$rad0 $zmin) // pt 7
// bend mid-points
( $rad0 0 $zmin) // pt 8
( $rad1 0 $zmin) // pt 9
@ -66,13 +64,13 @@ vertices
( 0 $rad1 $zmax) // pt 2 + 10
( $xin $rad1 $zmax) // pt 3 + 10
// outlet region
( $xout $mrad1 $zmax) // pt 4 + 10
( 0 $mrad1 $zmax) // pt 5 + 10
( 0 $mrad0 $zmax) // pt 6 + 10
( $xout $mrad0 $zmax) // pt 7 + 10
( $xout -$rad1 $zmax) // pt 4 + 10
( 0 -$rad1 $zmax) // pt 5 + 10
( 0 -$rad0 $zmax) // pt 6 + 10
( $xout -$rad0 $zmax) // pt 7 + 10
// bend mid-points
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10
( $rad0 0 $zmax) // pt 8 + 10
( $rad1 0 $zmax) // pt 9 + 10
);
blocks

View File

@ -18,64 +18,87 @@ FoamFile
scale 1;
// Front/back locations
zmin -0.5;
zmax 0.5;
// 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 11;
// ----------------
// Derived quantities
rInner45 ${{ $rInner * sqrt(0.5) }};
rOuter45 ${{ $rOuter * sqrt(0.5) }};
vertices
(
(0.5 0 $zmin)
(1 0 $zmin)
(2 0 $zmin)
(2 0.707107 $zmin)
(0.707107 0.707107 $zmin)
(0.353553 0.353553 $zmin)
(2 2 $zmin)
(0.707107 2 $zmin)
(0 2 $zmin)
(0 1 $zmin)
(0 0.5 $zmin)
(-0.5 0 $zmin)
(-1 0 $zmin)
(-2 0 $zmin)
(-2 0.707107 $zmin)
(-0.707107 0.707107 $zmin)
(-0.353553 0.353553 $zmin)
(-2 2 $zmin)
(-0.707107 2 $zmin)
(0.5 0 $zmax)
(1 0 $zmax)
(2 0 $zmax)
(2 0.707107 $zmax)
(0.707107 0.707107 $zmax)
(0.353553 0.353553 $zmax)
(2 2 $zmax)
(0.707107 2 $zmax)
(0 2 $zmax)
(0 1 $zmax)
(0 0.5 $zmax)
(-0.5 0 $zmax)
(-1 0 $zmax)
(-2 0 $zmax)
(-2 0.707107 $zmax)
(-0.707107 0.707107 $zmax)
(-0.353553 0.353553 $zmax)
(-2 2 $zmax)
(-0.707107 2 $zmax)
/* 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 )
/*19*/ ( $rInner 0 $zmax )
/*20*/ ( $rOuter 0 $zmax )
/*21*/ ( $xmax 0 $zmax )
/*22*/ ( $xmax $rOuter45 $zmax )
/*23*/ ( $rOuter45 $rOuter45 $zmax )
/*24*/ ( $rInner45 $rInner45 $zmax )
/*25*/ ( $xmax $ymax $zmax )
/*26*/ ( $rOuter45 $ymax $zmax )
/*27*/ ( 0 $ymax $zmax )
/*28*/ ( 0 $rOuter $zmax )
/*29*/ ( 0 $rInner $zmax )
/*30*/ ( -$rInner 0 $zmax )
/*31*/ ( -$rOuter 0 $zmax )
/*32*/ ( -$xmax 0 $zmax )
/*33*/ ( -$xmax $rOuter45 $zmax )
/*34*/ ( -$rOuter45 $rOuter45 $zmax )
/*35*/ ( -$rInner45 $rInner45 $zmax )
/*36*/ ( -$xmax $ymax $zmax )
/*37*/ ( -$rOuter45 $ymax $zmax )
);
// Can remove some unneeded variables
#remove ( "r(Inner|Outer).*" "[xy](min|max)" )
blocks
(
hex (5 4 9 10 24 23 28 29) (10 10 11) simpleGrading (1 1 1)
hex (0 1 4 5 19 20 23 24) (10 10 11) simpleGrading (1 1 1)
hex (1 2 3 4 20 21 22 23) (20 10 11) simpleGrading (1 1 1)
hex (4 3 6 7 23 22 25 26) (20 20 11) simpleGrading (1 1 1)
hex (9 4 7 8 28 23 26 27) (10 20 11) simpleGrading (1 1 1)
hex (15 16 10 9 34 35 29 28) (10 10 11) simpleGrading (1 1 1)
hex (12 11 16 15 31 30 35 34) (10 10 11) simpleGrading (1 1 1)
hex (13 12 15 14 32 31 34 33) (20 10 11) simpleGrading (1 1 1)
hex (14 15 18 17 33 34 37 36) (20 20 11) simpleGrading (1 1 1)
hex (15 9 8 18 34 28 27 37) (10 20 11) simpleGrading (1 1 1)
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

View File

@ -34,20 +34,19 @@ geometry
}
}
// Box sizes
// Box size
vo #eval{ sqrt($outerRadius/3) };
mvo #eval{ -$vo };
vertices
(
($mvo $mvo $mvo)
( $vo $mvo $mvo)
( $vo $vo $mvo)
($mvo $vo $mvo)
($mvo $mvo $vo)
( $vo $mvo $vo)
(-$vo -$vo -$vo)
( $vo -$vo -$vo)
( $vo $vo -$vo)
(-$vo $vo -$vo)
(-$vo -$vo $vo)
( $vo -$vo $vo)
( $vo $vo $vo)
($mvo $vo $vo)
(-$vo $vo $vo)
);
blocks

View File

@ -37,35 +37,33 @@ geometry
}
}
// Outer box sizes
// Outer box size
vo #eval{ sqrt($outerRadius/3) };
mvo #eval{ -$vo };
// Inner box sizes - % of overall dimension
// Inner box size - % of overall dimension
vi #eval{ $vo * $innerRatio };
mvi #eval{ -$vi };
vertices
(
// Inner block
($mvi $mvi $mvi)
( $vi $mvi $mvi)
( $vi $vi $mvi)
($mvi $vi $mvi)
($mvi $mvi $vi)
( $vi $mvi $vi)
(-$vi -$vi -$vi)
( $vi -$vi -$vi)
( $vi $vi -$vi)
(-$vi $vi -$vi)
(-$vi -$vi $vi)
( $vi -$vi $vi)
( $vi $vi $vi)
($mvi $vi $vi)
(-$vi $vi $vi)
// Outer blocks
($mvo $mvo $mvo)
( $vo $mvo $mvo)
( $vo $vo $mvo)
($mvo $vo $mvo)
($mvo $mvo $vo)
( $vo $mvo $vo)
(-$vo -$vo -$vo)
( $vo -$vo -$vo)
( $vo $vo -$vo)
(-$vo $vo -$vo)
(-$vo -$vo $vo)
( $vo -$vo $vo)
( $vo $vo $vo)
($mvo $vo $vo)
(-$vo $vo $vo)
);
blocks

View File

@ -44,35 +44,33 @@ geometry
}
// Outer box sizes (approximate)
// Outer box size (approximate)
vo #eval{ sqrt($outerRadius/3) };
mvo #eval{ -$vo };
// Inner box sizes - % of overall dimension
// Inner box size - % of overall dimension
vi #eval{ $vo * $innerRatio };
mvi #eval{ -$vi };
vertices
(
// Inner block points
project ($mvi $mvi $mvi) (innerSphere)
project ( $vi $mvi $mvi) (innerSphere)
project ( $vi $vi $mvi) (innerSphere)
project ($mvi $vi $mvi) (innerSphere)
project ($mvi $mvi $vi) (innerSphere)
project ( $vi $mvi $vi) (innerSphere)
project (-$vi -$vi -$vi) (innerSphere)
project ( $vi -$vi -$vi) (innerSphere)
project ( $vi $vi -$vi) (innerSphere)
project (-$vi $vi -$vi) (innerSphere)
project (-$vi -$vi $vi) (innerSphere)
project ( $vi -$vi $vi) (innerSphere)
project ( $vi $vi $vi) (innerSphere)
project ($mvi $vi $vi) (innerSphere)
project (-$vi $vi $vi) (innerSphere)
// Outer block points
project ($mvo $mvo $mvo) (sphere)
project ( $vo $mvo $mvo) (sphere)
project ( $vo $vo $mvo) (sphere)
project ($mvo $vo $mvo) (sphere)
project ($mvo $mvo $vo) (sphere)
project ( $vo $mvo $vo) (sphere)
project (-$vo -$vo -$vo) (sphere)
project ( $vo -$vo -$vo) (sphere)
project ( $vo $vo -$vo) (sphere)
project (-$vo $vo -$vo) (sphere)
project (-$vo -$vo $vo) (sphere)
project ( $vo -$vo $vo) (sphere)
project ( $vo $vo $vo) (sphere)
project ($mvo $vo $vo) (sphere)
project (-$vo $vo $vo) (sphere)
);
blocks

View File

@ -44,47 +44,42 @@ geometry
innerSphere
{
$sphere
radius
(
#eval{ $rxo * $innerRatio }
#eval{ $ryo * $innerRatio }
#eval{ $rzo * $innerRatio }
);
radius #eval{ $innerRatio*$[(vector) ../sphere/radius] };
}
}
// 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 };
vxo #eval{ sqrt(1.0/3.0) * $rxo };
vyo #eval{ sqrt(1.0/3.0) * $ryo };
vzo #eval{ sqrt(1.0/3.0) * $rzo };
// 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 };
vxi #eval{ $vxo * $innerRatio };
vyi #eval{ $vyo * $innerRatio };
vzi #eval{ $vzo * $innerRatio };
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 ( $vxi -$vyi -$vzi) (innerSphere)
project ( $vxi $vyi -$vzi) (innerSphere)
project (-$vxi $vyi -$vzi) (innerSphere)
project (-$vxi -$vyi $vzi) (innerSphere)
project ( $vxi -$vyi $vzi) (innerSphere)
project ( $vxi $vyi $vzi) (innerSphere)
project ($mvxi $vyi $vzi) (innerSphere)
project (-$vxi $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 ( $vxo -$vyo -$vzo) (sphere)
project ( $vxo $vyo -$vzo) (sphere)
project (-$vxo $vyo -$vzo) (sphere)
project (-$vxo -$vyo $vzo) (sphere)
project ( $vxo -$vyo $vzo) (sphere)
project ( $vxo $vyo $vzo) (sphere)
project ($mvxo $vyo $vzo) (sphere)
project (-$vxo $vyo $vzo) (sphere)
);
blocks

View File

@ -37,21 +37,21 @@ geometry
}
// Box sizes
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};
vxo ${{sqrt(1.0/3.0) * $rxo}};
vyo ${{sqrt(1.0/3.0) * $ryo}};
vzo ${{sqrt(1.0/3.0) * $rzo}};
vertices
(
// 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 ( $vxo -$vyo -$vzo) (sphere)
project ( $vxo $vyo -$vzo) (sphere)
project (-$vxo $vyo -$vzo) (sphere)
project (-$vxo -$vyo $vzo) (sphere)
project ( $vxo -$vyo $vzo) (sphere)
project ( $vxo $vyo $vzo) (sphere)
project ($mvxo $vyo $vzo) (sphere)
project (-$vxo $vyo $vzo) (sphere)
);
blocks

View File

@ -25,7 +25,7 @@ boundaryField
type rotatingWallVelocity;
axis (0 1 0);
origin (0 0 0);
omega constant #eval{ 2.1 * (2*pi()) }; // rev/s -> rads/s
omega constant ${{ 2.1 * (2*pi()) }}; // rev/s -> rads/s
value uniform (0 0 0);
}

View File

@ -26,7 +26,7 @@ boundaryField
type rotatingWallVelocity;
axis (0 1 0);
origin (0 0 0);
omega constant #eval{ 2.1 * (2*pi()) }; // rev/s -> rads/s
omega constant ${{ 2.1 * (2*pi()) }}; // rev/s -> rads/s
value uniform (0 0 0);
}
vessel

View File

@ -42,7 +42,7 @@ solvers
centreOfMass (0.5 0.5 0.4);
cOfGdisplacement CofG;
// Cuboid dimensions
Lx 0.24;
Ly 0.24;

View File

@ -49,7 +49,7 @@ adjustTimeStep false;
// Allow 10% of time for initialisation before sampling
timeStart #eval #{ 0.1 * ${/endTime} #};
timeStart #eval{ 0.1 * ${/endTime} };
functions
{