mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
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:
@ -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
|
||||
|
||||
@ -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 );
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 );
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -42,7 +42,7 @@ solvers
|
||||
|
||||
centreOfMass (0.5 0.5 0.4);
|
||||
cOfGdisplacement CofG;
|
||||
|
||||
|
||||
// Cuboid dimensions
|
||||
Lx 0.24;
|
||||
Ly 0.24;
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user