Added axialTurbine tutorial for pimpleDyMFoam

This commit is contained in:
Håkan Nilsson 2014-05-25 16:54:16 +02:00
parent d67e2dc111
commit 4fd91ff21d
20 changed files with 6300 additions and 0 deletions

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 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 overlapGgi;
}
GVCYCLIC1
{
type cyclicGgi;
}
GVCYCLIC2
{
type cyclicGgi;
}
GVBLADE
{
type fixedValue;
value uniform (0 0 0);
}
GVHUB
{
type fixedValue;
value uniform (0 0 0);
}
GVSHROUD
{
type fixedValue;
value uniform (0 0 0);
}
RUINLET
{
type overlapGgi;
}
RUOUTLET
{
type overlapGgi;
}
RUCYCLIC1
{
type cyclicGgi;
}
RUCYCLIC2
{
type cyclicGgi;
}
RUBLADE
{
type movingWallVelocity;
value uniform (0 0 0);
}
RUHUB
{
type movingWallVelocity;
value uniform (0 0 0);
}
RUSHROUD
{
type fixedValue;
value uniform (0 0 0);
}
DTINLET
{
type overlapGgi;
}
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 overlapGgi;
}
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 overlapGgi;
}
RUOUTLET
{
type overlapGgi;
}
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 overlapGgi;
}
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 overlapGgi;
}
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 overlapGgi;
}
RUOUTLET
{
type overlapGgi;
}
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 overlapGgi;
}
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 overlapGgi;
}
GVCYCLIC1
{
type cyclicGgi;
}
GVCYCLIC2
{
type cyclicGgi;
}
GVBLADE
{
type zeroGradient;
}
GVHUB
{
type zeroGradient;
}
GVSHROUD
{
type zeroGradient;
}
RUINLET
{
type overlapGgi;
}
RUOUTLET
{
type overlapGgi;
}
RUCYCLIC1
{
type cyclicGgi;
}
RUCYCLIC2
{
type cyclicGgi;
}
RUBLADE
{
type zeroGradient;
}
RUHUB
{
type zeroGradient;
}
RUSHROUD
{
type zeroGradient;
}
DTINLET
{
type overlapGgi;
}
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 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="pimpleDyMFoam"
#application="icoDyMFoam"
#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

File diff suppressed because it is too large Load diff

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 kEpsilon;
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,43 @@
/*--------------------------------*- 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 dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh turboFvMesh;
turboFvMeshCoeffs
{
coordinateSystem
{
type cylindrical;
origin (0 0 0);
axis (0 0 1);
direction (1 0 0);
}
rpm
{
rotor -95.49578;
}
slider
{
RUINLET -95.49578;
RUOUTLET -95.49578;
RUCYCLIC1 -95.49578;
RUCYCLIC2 -95.49578;
}
}
// ************************************************************************* //

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)
)
overlapGgi 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)
)
overlapGgi RUINLET
(
quad2D(RU3r, RU3l)
)
overlapGgi 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)
)
overlapGgi 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,21 @@
/*--------------------------------*- 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;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//simulationType laminar;
simulationType RASModel; //epsilon diverges after a while
// ************************************************************************* //

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,196 @@
/*--------------------------------*- 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 overlapGgi;
shadowPatch RUINLET;
zone GVOUTLETZone;
rotationAxis ( 0 0 1 );
nCopies 5;
//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 overlapGgi;
shadowPatch GVOUTLET;
zone RUINLETZone;
rotationAxis ( 0 0 1 );
nCopies 5;
//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 overlapGgi;
shadowPatch DTINLET;
zone RUOUTLETZone;
rotationAxis ( 0 0 1 );
nCopies 5;
//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 overlapGgi;
shadowPatch RUOUTLET;
zone DTINLETZone;
rotationAxis ( 0 0 1 );
nCopies 5;
//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,51 @@
/*--------------------------------*- 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 0.6283; //One rotation
deltaT 0.00175; //Approx 1 degree per time step
writeControl timeStep;
writeInterval 10; //Every 10 degrees
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression compressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 5;
// ************************************************************************* //

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,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 fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default none;
//div(phi,U) Gauss upwind;
//div(phi,k) Gauss upwind;
//div(phi,epsilon) Gauss upwind;
div(phi,U) Gauss linearUpwind Gauss linear;
div(phi,k) Gauss linearUpwind Gauss linear;
div(phi,epsilon) Gauss linearUpwind Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited 0.5;
//default none;
//laplacian(nu,U) Gauss linear corrected;
//laplacian(rAU,pcorr) Gauss linear corrected;
//laplacian(rAU,p) Gauss linear corrected;
//laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
//laplacian(nuEff,U) Gauss linear uncorrected;
//laplacian(DepsilonEff,epsilon) Gauss linear corrected;
//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;
//laplacian(DREff,R) Gauss linear corrected;
//laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
//pcorr ;
p ;
}
// ************************************************************************* //

View file

@ -0,0 +1,61 @@
/*--------------------------------*- 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|pFinal)" //Unstable to change settings for final - iterate more instead
{
solver PCG;
preconditioner DIC;
tolerance 1e-07;
relTol 0.01;
}
U
{
solver BiCGStab;
preconditioner DILU;
tolerance 1e-06;
relTol 0.1;
}
"(k|epsilon)"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-06;
relTol 0.1;
}
}
PIMPLE
{
nOuterCorrectors 10;
nCorrectors 1;
nNonOrthogonalCorrectors 1;
}
relaxationFactors
{
p 0.3;
U 0.7;
UFinal 0.7; // To avoid sudden increase in pressure residual
k 0.7;
epsilon 0.7;
}
// ************************************************************************* //