Added axialTurbine tutorial for MRFSimpleFoam

This commit is contained in:
Håkan Nilsson 2014-05-25 16:52:08 +02:00
parent 62dd0f0650
commit d67e2dc111
17 changed files with 1649 additions and 0 deletions

View file

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 -1);
boundaryField
{
GVINLET
{
type fixedValue;
value uniform (0 0 -1);
}
GVOUTLET
{
type ggi;
}
GVCYCLIC1
{
type cyclicGgi;
}
GVCYCLIC2
{
type cyclicGgi;
}
GVBLADE
{
type fixedValue;
value uniform (0 0 0);
}
GVHUB
{
type rotatingWallVelocity;
origin (0 0 0);
axis (0 0 1);
omega -10;
value uniform (0 0 0);
}
GVSHROUD
{
type fixedValue;
value uniform (0 0 0);
}
RUINLET
{
type ggi;
}
RUOUTLET
{
type ggi;
}
RUCYCLIC1
{
type cyclicGgi;
}
RUCYCLIC2
{
type cyclicGgi;
}
RUBLADE
{
type fixedValue;
value uniform (0 0 0);
}
RUHUB
{
type fixedValue;
value uniform (0 0 0);
}
RUSHROUD
{
type fixedValue;
value uniform (0 0 0);
}
DTINLET
{
type ggi;
}
DTOUTLET
{
type zeroGradient;
}
DTCYCLIC1
{
type cyclicGgi;
}
DTCYCLIC2
{
type cyclicGgi;
}
DTHUB
{
type fixedValue;
value uniform (0 0 0);
}
DTSHROUD
{
type fixedValue;
value uniform (0 0 0);
}
}
// ************************************************************************* //

View file

@ -0,0 +1,138 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 14.855;
boundaryField
{
GVINLET
{
type fixedValue;
value uniform 14.855;
}
GVOUTLET
{
type ggi;
}
GVCYCLIC1
{
type cyclicGgi;
}
GVCYCLIC2
{
type cyclicGgi;
}
GVBLADE
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
GVHUB
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
GVSHROUD
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
RUINLET
{
type ggi;
}
RUOUTLET
{
type ggi;
}
RUCYCLIC1
{
type cyclicGgi;
}
RUCYCLIC2
{
type cyclicGgi;
}
RUBLADE
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
RUHUB
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
RUSHROUD
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
DTINLET
{
type ggi;
}
DTOUTLET
{
type zeroGradient;
}
DTCYCLIC1
{
type cyclicGgi;
}
DTCYCLIC2
{
type cyclicGgi;
}
DTHUB
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
DTSHROUD
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 14.855;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,114 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.375;
boundaryField
{
GVINLET
{
type fixedValue;
value uniform 0.375;
}
GVOUTLET
{
type ggi;
}
GVCYCLIC1
{
type cyclicGgi;
}
GVCYCLIC2
{
type cyclicGgi;
}
GVBLADE
{
type kqRWallFunction;
value uniform 0.375;
}
GVHUB
{
type kqRWallFunction;
value uniform 0.375;
}
GVSHROUD
{
type kqRWallFunction;
value uniform 0.375;
}
RUINLET
{
type ggi;
}
RUOUTLET
{
type ggi;
}
RUCYCLIC1
{
type cyclicGgi;
}
RUCYCLIC2
{
type cyclicGgi;
}
RUBLADE
{
type kqRWallFunction;
value uniform 0.375;
}
RUHUB
{
type kqRWallFunction;
value uniform 0.375;
}
RUSHROUD
{
type kqRWallFunction;
value uniform 0.375;
}
DTINLET
{
type ggi;
}
DTOUTLET
{
type zeroGradient;
}
DTCYCLIC1
{
type cyclicGgi;
}
DTCYCLIC2
{
type cyclicGgi;
}
DTHUB
{
type kqRWallFunction;
value uniform 0.375;
}
DTSHROUD
{
type kqRWallFunction;
value uniform 0.375;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,106 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
GVINLET
{
type zeroGradient;
}
GVOUTLET
{
type ggi;
}
GVCYCLIC1
{
type cyclicGgi;
}
GVCYCLIC2
{
type cyclicGgi;
}
GVBLADE
{
type zeroGradient;
}
GVHUB
{
type zeroGradient;
}
GVSHROUD
{
type zeroGradient;
}
RUINLET
{
type ggi;
}
RUOUTLET
{
type ggi;
}
RUCYCLIC1
{
type cyclicGgi;
}
RUCYCLIC2
{
type cyclicGgi;
}
RUBLADE
{
type zeroGradient;
}
RUHUB
{
type zeroGradient;
}
RUSHROUD
{
type zeroGradient;
}
DTINLET
{
type ggi;
}
DTOUTLET
{
type fixedValue;
value uniform 0;
}
DTCYCLIC1
{
type cyclicGgi;
}
DTCYCLIC2
{
type cyclicGgi;
}
DTHUB
{
type zeroGradient;
}
DTSHROUD
{
type zeroGradient;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,4 @@
#!/bin/sh
( cd constant/polyMesh && rm -r boundary* blockMeshDict *Zones* faces* neighbour* owner* points* sets )
rm -r 0 [1-9]* VTK log* processor*

View file

@ -0,0 +1,20 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
application="MRFSimpleFoam"
#application="simpleFoam"
#Create the mesh:
./makeMesh
#Fix constant/boundary:
changeDictionary
# Set 0-directory and create GGI set:
cp -r 0_orig 0
setSet -batch setBatchGgi
setsToZones -noFlipMap
runApplication $application

View file

@ -0,0 +1,31 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object MRFZones;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
1
(
rotor
{
//patches (rotor);
// Fixed patches (by default they 'move' with the MRF zone)
nonRotatingPatches ( RUSHROUD );
origin origin [0 1 0 0 0 0 0] (0 0 0);
axis axis [0 0 0 0 0 0 0] (0 0 1);
omega omega [0 0 -1 0 0 0 0] -10;
}
)
// ************************************************************************* //

View file

@ -0,0 +1,191 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
RASModel RNGkEpsilon;
turbulence on;
printCoeffs on;
laminarCoeffs
{
}
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
RNGkEpsilonCoeffs
{
Cmu 0.0845;
C1 1.42;
C2 1.68;
alphak 1.39;
alphaEps 1.39;
eta0 4.38;
beta 0.012;
}
kOmegaSSTCoeffs
{
alphaK1 0.85034;
alphaK2 1.0;
alphaOmega1 0.5;
alphaOmega2 0.85616;
gamma1 0.5532;
gamma2 0.4403;
beta1 0.0750;
beta2 0.0828;
betaStar 0.09;
a1 0.31;
c1 10;
Cmu 0.09;
}
NonlinearKEShihCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76932;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
}
LienCubicKECoeffs
{
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
}
QZetaCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaZeta 0.76923;
anisotropic no;
}
LaunderSharmaKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
LamBremhorstKECoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphaEps 0.76923;
}
LienCubicKELowReCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
A1 1.25;
A2 1000;
Ctau1 -4;
Ctau2 13;
Ctau3 -2;
alphaKsi 0.9;
Am 0.016;
Aepsilon 0.263;
Amu 0.00222;
}
LienLeschzinerLowReCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
alphak 1;
alphaEps 0.76923;
Am 0.016;
Aepsilon 0.263;
Amu 0.00222;
}
LRRCoeffs
{
Cmu 0.09;
Clrr1 1.8;
Clrr2 0.6;
C1 1.44;
C2 1.92;
Cs 0.25;
Ceps 0.15;
alphaEps 0.76923;
}
LaunderGibsonRSTMCoeffs
{
Cmu 0.09;
Clg1 1.8;
Clg2 0.6;
C1 1.44;
C2 1.92;
C1Ref 0.5;
C2Ref 0.3;
Cs 0.25;
Ceps 0.15;
alphaEps 0.76923;
alphaR 1.22;
}
SpalartAllmarasCoeffs
{
alphaNut 1.5;
Cb1 0.1355;
Cb2 0.622;
Cw2 0.3;
Cw3 2;
Cv1 7.1;
Cv2 5.0;
}
wallFunctionCoeffs
{
kappa 0.4187;
E 9;
}
// ************************************************************************* //

View file

@ -0,0 +1,410 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// General macros to create 2D/extruded-2D meshes
changecom(//)changequote([,])
define(calc, [esyscmd(perl -e 'printf ($1)')])
//define(calc, [esyscmd(echo $1 | bc | tr -d \\n)])
define(VCOUNT, 0)
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
define(pi, 3.14159265)
define(hex2D, hex ($1b $2b $3b $4b $1t $2t $3t $4t))
define(quad2D, ($1b $2b $2t $1t))
define(frontQuad, ($1t $2t $3t $4t))
define(backQuad, ($1b $4b $3b $2b))
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
// HUB AND SHROUD RADIUS
// Hub radius (m)
define(hr, 0.05)
// Shroud radius (m)
define(sr, 0.1)
// GUIDE VANE REGION GEOMETRY AND MESH PROPERTIES
// Guide vane inlet axial length (m)
define(GVial, 0.1)
// Guide vane axial length (m)
define(GVbal, 0.1)
// Guide vane outlet axial length (m)
define(GVoal, 0.02)
// Number of guide vanes per 360 degrees (integer!)
define(GVnb, 5)
// Number of cells in radial direction at guide vane
define(GVrc, 10)
// Number of cells in tangential direction between guide vanes
define(GVtc, 10)
// Number of cells in axial direction at guide vane inlet
define(GViac, 10)
// Number of cells in axial direction between guide vanes
define(GVbac, 10)
// Number of cells in axial direction at guide vane outlet
define(GVoac, 2)
// RUNNER REGION GEOMETRY AND MESH PROPERTIES
// Runner inlet axial length (m)
define(RUial, 0.02)
// Runner axial length (m)
define(RUal, 0.1)
// Runner outlet axial length (m)
define(RUoal, 0.02)
// Number of runner blades per 360 degrees (integer!)
define(RUnb, 5)
// Number of cells in radial direction in runner
define(RUrc, 10)
// Number of cells in tangential direction between runner blades
define(RUtc, 10)
// Number of cells in axial direction at runner inlet
define(RUiac, 2)
// Number of cells in axial direction between runner blades
define(RUbac, 10)
// Number of cells in axial direction at runner outlet
define(RUoac, 2)
// DRAFT TUBE REGION GEOMETRY AND MESH PROPERTIES
// "Draft tube" axial length (m)
define(DTal, 0.07)
// Number of sections per 360 degrees (integer!)
define(DTns, 5)
// Number of cells in radial direction in "draft tube"
define(DTrc, 10)
// Number of cells in tangential direction in "draft tube"
define(DTtc, 10)
// Number of cells in axial direction in "draft tube"
define(DTac, 7)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// TANGENTIAL PITCHES (RADIANS)
// Guide vane region
define(GVp, calc(2*pi/GVnb))
// Runner region
define(RUp, calc(2*pi/RUnb))
// Draft tube region
define(DTp, calc(2*pi/DTns))
// TANGENTIAL SHIFTS BETWEEN AXIAL LEVELS (BOTTOM-UP)
// Tangential shift from level DT0 to DT1
define(DTts01, calc(5*DTp))
// Runner region
// Tangential shift from level RU0 to RU1
define(RUts01, calc(-1/10*RUp))
// Tangential shift from level RU1 to RU2
define(RUts12, calc(-4/5*RUp))
// Tangential shift from level RU2 to RU3
define(RUts23, calc(-1/10*RUp))
// Guide vane region
// Tangential shift from level GV0 to GV1
define(GVts01, calc(1/10*GVp))
// Tangential shift from level GV1 to GV2
define(GVts12, calc(1/2*GVp))
// Tangential shift from level GV2 to GV3
define(GVts23, calc(0*GVp))
// AXIAL/TANGENTIAL BASE POINTS FOR EACH LEVEL (BOTTOM-UP):
// (CENTER OF RUNNER SET TO THETA=0, Z=0)
// Draft tube:
define(DTa0, calc(-RUoal-0.5*RUal-DTal)) //Center runner
define(DTt0, calc(-0.5*RUp-(0.5*RUts12)-(0*DTts01))) // Straight draft tube!
define(DTt1, calc(-0.5*RUp-(0.5*RUts12))) //Center runner
// Runner:
define(RUa0, calc(-RUoal-0.5*RUal)) //Center runner
define(RUt0, calc(-0.5*RUp-(0.5*RUts12))) //Center runner
define(RUt1, calc(RUt0+RUts01))
define(RUt2, calc(RUt1+RUts12))
define(RUt3, calc(RUt2+RUts23))
// Guide vane:
define(GVa0, calc(0.5*RUal+RUial)) //Center runner
define(GVt0, calc(-0.5*RUp-(0.5*RUts12)+RUts01+RUts12+RUts23)) //Center runner
define(GVt1, calc(GVt0+GVts01))
define(GVt2, calc(GVt1+GVts12))
define(GVt3, calc(GVt2+GVts23))
vertices //(radial [m], tangential [radians], axial [m])
(
//Guide vane hub:
(hr GVt0 GVa0) vlabel(GV0lb)
(hr calc(GVt0+GVp) GVa0) vlabel(GV0rb)
(hr GVt1 calc(GVa0+GVoal)) vlabel(GV1lb)
(hr calc(GVt1+GVp) calc(GVa0+GVoal)) vlabel(GV1rb)
(hr GVt2 calc(GVa0+GVoal+GVbal)) vlabel(GV2lb)
(hr calc(GVt2+GVp) calc(GVa0+GVoal+GVbal)) vlabel(GV2rb)
(hr GVt3 calc(GVa0+GVoal+GVbal+GVial)) vlabel(GV3lb)
(hr calc(GVt3+GVp) calc(GVa0+GVoal+GVbal+GVial)) vlabel(GV3rb)
//Guide vane shroud:
(sr GVt0 GVa0) vlabel(GV0lt)
(sr calc(GVt0+GVp) GVa0) vlabel(GV0rt)
(sr GVt1 calc(GVa0+GVoal)) vlabel(GV1lt)
(sr calc(GVt1+GVp) calc(GVa0+GVoal)) vlabel(GV1rt)
(sr GVt2 calc(GVa0+GVoal+GVbal)) vlabel(GV2lt)
(sr calc(GVt2+GVp) calc(GVa0+GVoal+GVbal)) vlabel(GV2rt)
(sr GVt3 calc(GVa0+GVoal+GVbal+GVial)) vlabel(GV3lt)
(sr calc(GVt3+GVp) calc(GVa0+GVoal+GVbal+GVial)) vlabel(GV3rt)
//Runner hub:
(hr RUt0 RUa0) vlabel(RU0lb)
(hr calc(RUt0+RUp) RUa0) vlabel(RU0rb)
(hr RUt1 calc(RUa0+RUoal)) vlabel(RU1lb)
(hr calc(RUt1+RUp) calc(RUa0+RUoal)) vlabel(RU1rb)
(hr RUt2 calc(RUa0+RUoal+RUal)) vlabel(RU2lb)
(hr calc(RUt2+RUp) calc(RUa0+RUoal+RUal)) vlabel(RU2rb)
(hr RUt3 calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3lb)
(hr calc(RUt3+RUp) calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3rb)
//Runner shroud:
(sr RUt0 RUa0) vlabel(RU0lt)
(sr calc(RUt0+RUp) RUa0) vlabel(RU0rt)
(sr RUt1 calc(RUa0+RUoal)) vlabel(RU1lt)
(sr calc(RUt1+RUp) calc(RUa0+RUoal)) vlabel(RU1rt)
(sr RUt2 calc(RUa0+RUoal+RUal)) vlabel(RU2lt)
(sr calc(RUt2+RUp) calc(RUa0+RUoal+RUal)) vlabel(RU2rt)
(sr RUt3 calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3lt)
(sr calc(RUt3+RUp) calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3rt)
//Draft tube hub:
(hr DTt0 DTa0) vlabel(DT0lb)
(hr calc(DTt0+DTp) DTa0) vlabel(DT0rb)
(hr DTt1 calc(DTa0+DTal)) vlabel(DT1lb)
(hr calc(DTt1+DTp) calc(DTa0+DTal)) vlabel(DT1rb)
//Draft tube shroud:
(sr DTt0 DTa0) vlabel(DT0lt)
(sr calc(DTt0+DTp) DTa0) vlabel(DT0rt)
(sr DTt1 calc(DTa0+DTal)) vlabel(DT1lt)
(sr calc(DTt1+DTp) calc(DTa0+DTal)) vlabel(DT1rt)
);
blocks
(
//Guide vane:
hex2D(GV0l, GV0r, GV1r, GV1l)
(GVtc GVoac GVrc)
simpleGrading (1 1 1)
hex2D(GV1l, GV1r, GV2r, GV2l)
(GVtc GVbac GVrc)
simpleGrading (1 0.2 1)
hex2D(GV2l, GV2r, GV3r, GV3l)
(GVtc GViac GVrc)
simpleGrading (1 1 1)
//Runner:
hex2D(RU0l, RU0r, RU1r, RU1l)
rotor
(RUtc RUoac RUrc)
simpleGrading (1 1 1)
hex2D(RU1l, RU1r, RU2r, RU2l)
rotor
(RUtc RUbac RUrc)
simpleGrading (1 0.4 1)
hex2D(RU2l, RU2r, RU3r, RU3l)
rotor
(RUtc RUiac RUrc)
simpleGrading (1 1 1)
//Draft tube:
hex2D(DT0l, DT0r, DT1r, DT1l)
(DTtc DTac DTrc)
simpleGrading (1 1 1)
);
edges // Inappropriate with arc due to coordinate conversion
(
//Runner
spline RU1lt RU2lt
(
(sr calc(RUt1+0.65*(RUt2-(RUt1))) calc(RUa0+RUoal+0.5*RUal))
)
spline RU1lb RU2lb
(
(hr calc(RUt1+0.65*(RUt2-(RUt1))) calc(RUa0+RUoal+0.5*RUal))
)
spline RU1rt RU2rt
(
(sr calc(RUt1+RUp+0.75*(RUt2-(RUt1))) calc(RUa0+RUoal+0.5*RUal))
)
spline RU1rb RU2rb
(
(hr calc(RUt1+RUp+0.75*(RUt2-(RUt1))) calc(RUa0+RUoal+0.5*RUal))
)
//Guide vane
spline GV1lt GV2lt
(
(sr calc(GVt1+0.75*(GVt2-(GVt1))) calc(GVa0+GVoal+0.5*GVbal))
)
spline GV1lb GV2lb
(
(hr calc(GVt1+0.75*(GVt2-(GVt1))) calc(GVa0+GVoal+0.5*GVbal))
)
spline GV1rt GV2rt
(
(sr calc(GVt1+GVp+0.65*(GVt2-(GVt1))) calc(GVa0+GVoal+0.5*GVbal))
)
spline GV1rb GV2rb
(
(hr calc(GVt1+GVp+0.65*(GVt2-(GVt1))) calc(GVa0+GVoal+0.5*GVbal))
)
);
patches
(
patch GVINLET
(
quad2D(GV3r, GV3l)
)
ggi GVOUTLET
(
quad2D(GV0l, GV0r)
)
cyclicGgi GVCYCLIC1
(
quad2D(GV1l, GV0l)
quad2D(GV3l, GV2l)
)
cyclicGgi GVCYCLIC2
(
quad2D(GV0r, GV1r)
quad2D(GV2r, GV3r)
)
//cyclic GVCYCLIC
//(
// quad2D(GV1l, GV0l)
// quad2D(GV3l, GV2l)
// quad2D(GV0r, GV1r)
// quad2D(GV2r, GV3r)
//)
wall GVBLADE
(
quad2D(GV2l, GV1l)
quad2D(GV1r, GV2r)
)
wall GVHUB
(
backQuad(GV0l, GV0r, GV1r, GV1l)
backQuad(GV1l, GV1r, GV2r, GV2l)
backQuad(GV2l, GV2r, GV3r, GV3l)
)
wall GVSHROUD
(
frontQuad(GV0l, GV0r, GV1r, GV1l)
frontQuad(GV1l, GV1r, GV2r, GV2l)
frontQuad(GV2l, GV2r, GV3r, GV3l)
)
ggi RUINLET
(
quad2D(RU3r, RU3l)
)
ggi RUOUTLET
(
quad2D(RU0l, RU0r)
)
cyclicGgi RUCYCLIC1
(
quad2D(RU1l, RU0l)
quad2D(RU3l, RU2l)
)
cyclicGgi RUCYCLIC2
(
quad2D(RU0r, RU1r)
quad2D(RU2r, RU3r)
)
//cyclic RUCYCLIC
//(
// quad2D(RU1l, RU0l)
// quad2D(RU3l, RU2l)
// quad2D(RU0r, RU1r)
// quad2D(RU2r, RU3r)
//)
wall RUBLADE
(
quad2D(RU2l, RU1l)
quad2D(RU1r, RU2r)
)
wall RUHUB
(
backQuad(RU0l, RU0r, RU1r, RU1l)
backQuad(RU1l, RU1r, RU2r, RU2l)
backQuad(RU2l, RU2r, RU3r, RU3l)
)
wall RUSHROUD
(
frontQuad(RU0l, RU0r, RU1r, RU1l)
frontQuad(RU1l, RU1r, RU2r, RU2l)
frontQuad(RU2l, RU2r, RU3r, RU3l)
)
ggi DTINLET
(
quad2D(DT1r, DT1l)
)
patch DTOUTLET
(
quad2D(DT0l, DT0r)
)
cyclicGgi DTCYCLIC1
(
quad2D(DT1l, DT0l)
)
cyclicGgi DTCYCLIC2
(
quad2D(DT0r, DT1r)
)
//cyclic DTCYCLIC
//(
// quad2D(DT1l, DT0l)
// quad2D(DT0r, DT1r)
//)
wall DTHUB
(
backQuad(DT0l, DT0r, DT1r, DT1l)
)
wall DTSHROUD
(
frontQuad(DT0l, DT0r, DT1r, DT1l)
)
);
// ************************************************************************* //

View file

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [0 2 -1 0 0 0 0] 1e-05;
CrossPowerLawCoeffs
{
nu0 nu0 [0 2 -1 0 0 0 0] 1e-06;
nuInf nuInf [0 2 -1 0 0 0 0] 1e-06;
m m [0 0 1 0 0 0 0] 1;
n n [0 0 0 0 0 0 0] 1;
}
BirdCarreauCoeffs
{
nu0 nu0 [0 2 -1 0 0 0 0] 1e-06;
nuInf nuInf [0 2 -1 0 0 0 0] 1e-06;
k k [0 0 1 0 0 0 0] 0;
n n [0 0 0 0 0 0 0] 1;
}
// ************************************************************************* //

View file

@ -0,0 +1,5 @@
#!/bin/sh
m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict
blockMesh
transformPoints -cylToCart "((0 0 0) (0 0 1) (1 0 0))"

View file

@ -0,0 +1,11 @@
faceSet GVCYCLIC1Zone new patchToFace GVCYCLIC1
faceSet GVCYCLIC2Zone new patchToFace GVCYCLIC2
faceSet RUCYCLIC1Zone new patchToFace RUCYCLIC1
faceSet RUCYCLIC2Zone new patchToFace RUCYCLIC2
faceSet DTCYCLIC1Zone new patchToFace DTCYCLIC1
faceSet DTCYCLIC2Zone new patchToFace DTCYCLIC2
faceSet GVOUTLETZone new patchToFace GVOUTLET
faceSet RUINLETZone new patchToFace RUINLET
faceSet RUOUTLETZone new patchToFace RUOUTLET
faceSet DTINLETZone new patchToFace DTINLET
quit

View file

@ -0,0 +1,188 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object changeDictionaryDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dictionaryReplacement
{
boundary
{
GVINLET
{
type patch;
}
GVCYCLIC1
{
type cyclicGgi;
shadowPatch GVCYCLIC2;
zone GVCYCLIC1Zone;
bridgeOverlap false;
rotationAxis (0 0 1);
rotationAngle 72;
separationOffset (0 0 0);
}
GVCYCLIC2
{
type cyclicGgi;
shadowPatch GVCYCLIC1;
zone GVCYCLIC2Zone;
bridgeOverlap false;
rotationAxis (0 0 1);
rotationAngle -72;
separationOffset (0 0 0);
}
RUCYCLIC1
{
type cyclicGgi;
shadowPatch RUCYCLIC2;
zone RUCYCLIC1Zone;
bridgeOverlap false;
rotationAxis (0 0 1);
rotationAngle 72;
separationOffset (0 0 0);
}
RUCYCLIC2
{
type cyclicGgi;
shadowPatch RUCYCLIC1;
zone RUCYCLIC2Zone;
bridgeOverlap false;
rotationAxis (0 0 1);
rotationAngle -72;
separationOffset (0 0 0);
}
DTCYCLIC1
{
type cyclicGgi;
shadowPatch DTCYCLIC2;
zone DTCYCLIC1Zone;
bridgeOverlap false;
rotationAxis (0 0 1);
rotationAngle 72;
separationOffset (0 0 0);
}
DTCYCLIC2
{
type cyclicGgi;
shadowPatch DTCYCLIC1;
zone DTCYCLIC2Zone;
bridgeOverlap false;
rotationAxis (0 0 1);
rotationAngle -72;
separationOffset (0 0 0);
}
GVOUTLET
{
type ggi;
shadowPatch RUINLET;
zone GVOUTLETZone;
bridgeOverlap false;
//type mixingPlane;
//shadowPatch RUINLET;
//zone GVOUTLETZone;
//coordinateSystem
//{
// type cylindrical;
// //name mixingCS;
// origin (0 0 0);
// e1 (1 0 0);
// e3 (0 0 1);
//}
//ribbonPatch
//{
// sweepAxis Theta;
// stackAxis R;
// discretisation bothPatches;
//}
}
RUINLET
{
type ggi;
shadowPatch GVOUTLET;
zone RUINLETZone;
bridgeOverlap false;
//type mixingPlane;
//shadowPatch GVOUTLET;
//zone RUINLETZone;
//coordinateSystem
//{
// type cylindrical;
// //name mixingCS;
// origin (0 0 0);
// e1 (1 0 0);
// e3 (0 0 1);
//}
//ribbonPatch
//{
// sweepAxis Theta;
// stackAxis R;
// discretisation bothPatches;
//}
}
RUOUTLET
{
type ggi;
shadowPatch DTINLET;
zone RUOUTLETZone;
bridgeOverlap false;
//type mixingPlane;
//shadowPatch DTINLET;
//zone RUOUTLETZone;
//coordinateSystem
//{
// type cylindrical;
// //name mixingCS;
// origin (0 0 0);
// e1 (1 0 0);
// e3 (0 0 1);
//}
//ribbonPatch
//{
// sweepAxis Theta;
// stackAxis R;
// discretisation bothPatches;
//}
}
DTINLET
{
type ggi;
shadowPatch RUOUTLET;
zone DTINLETZone;
bridgeOverlap false;
//type mixingPlane;
//shadowPatch RUOUTLET;
//zone DTINLETZone;
//coordinateSystem
//{
// type cylindrical;
// //name mixingCS;
// origin (0 0 0);
// e1 (1 0 0);
// e3 (0 0 1);
//}
//ribbonPatch
//{
// sweepAxis Theta;
// stackAxis R;
// discretisation bothPatches;
//}
}
DTOUTLET
{
type patch;
}
}
}
// ************************************************************************* //

View file

@ -0,0 +1,47 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application simpleFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 200;
deltaT 1;
writeControl timeStep;
writeInterval 20;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression compressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
// ************************************************************************* //

View file

@ -0,0 +1,89 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 8;
//method metis;
method patchConstrained;
globalFaceZones
(
GVCYCLIC2Zone
RUCYCLIC1Zone
RUINLETZone
RUCYCLIC2Zone
RUOUTLETZone
GVOUTLETZone
DTINLETZone
GVCYCLIC1Zone
DTCYCLIC1Zone
DTCYCLIC2Zone
);
patchConstrainedCoeffs
{
method metis;
numberOfSubdomains 8;
patchConstraints
(
(RUINLET 1)
(GVOUTLET 1)
(RUOUTLET 2)
(DTINLET 2)
);
}
simpleCoeffs
{
n (2 2 1);
delta 0.001;
}
hierarchicalCoeffs
{
n (1 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
processorWeights
(
1
1
1
1
1
1
1
1
);
}
manualCoeffs
{
dataFile "";
}
distributed no;
roots
(
);
// ************************************************************************* //

View file

@ -0,0 +1,64 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}
laplacianSchemes
{
default none;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p;
}
// ************************************************************************* //

View file

@ -0,0 +1,77 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-8;
relTol 0.05;
smoother GaussSeidel;
cacheAgglomeration true;
nCellsInCoarsestLevel 20;
agglomerator faceAreaPair;
mergeLevels 1;
}
U
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-7;
relTol 0.1;
}
k
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-7;
relTol 0.1;
}
epsilon
{
solver smoothSolver;
smoother GaussSeidel;
nSweeps 2;
tolerance 1e-7;
relTol 0.1;
}
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
relaxationFactors
{
p 0.3;
U 0.5;
k 0.5;
epsilon 0.5;
}
// ************************************************************************* //