From cf5eaef23611461c1f83ce5453ee02232576804b Mon Sep 17 00:00:00 2001 From: Hakan Nilsson <> Date: Fri, 7 Jun 2024 09:53:06 +0100 Subject: [PATCH] INT: cyclicPeriodicAMI: demo case provided by Hakan Nilsson --- .../axialTurbine_rotating_oneBlade/0.orig/U | 65 + .../0.orig/epsilon | 62 + .../axialTurbine_rotating_oneBlade/0.orig/k | 58 + .../axialTurbine_rotating_oneBlade/0.orig/nut | 59 + .../axialTurbine_rotating_oneBlade/0.orig/p | 59 + .../axialTurbine_rotating_oneBlade/Allclean | 8 + .../RAS/axialTurbine_rotating_oneBlade/Allrun | 11 + .../axialTurbine_rotating_oneBlade/Allrun.pre | 26 + .../axialTurbine_rotating_oneBlade/README.txt | 12 + .../angPer.pvsm | 6439 +++++++++++++++++ .../constant/dynamicMeshDict | 34 + .../constant/transportProperties | 22 + .../constant/turbulenceProperties | 30 + .../system/blockMeshDict-conformal.m4 | 468 ++ .../system/blockMeshDict-non-conformal.m4 | 477 ++ .../system/changeDictionaryDict_cyclicAMI | 209 + .../system/controlDict | 55 + .../system/fvSchemes | 55 + .../system/fvSolution | 81 + 19 files changed, 8230 insertions(+) create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/U create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/epsilon create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/k create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/nut create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/p create mode 100755 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allclean create mode 100755 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun create mode 100755 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun.pre create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/README.txt create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/angPer.pvsm create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/dynamicMeshDict create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/transportProperties create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/turbulenceProperties create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-conformal.m4 create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-non-conformal.m4 create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/changeDictionaryDict_cyclicAMI create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/controlDict create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSchemes create mode 100644 tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSolution diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/U b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/U new file mode 100644 index 0000000000..2042c1a0c6 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/U @@ -0,0 +1,65 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 1 -1 0 0 0 0 ]; + +internalField uniform ( 0 0 -1 ); + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + GVINLET + { + type fixedValue; + value uniform ( 0 0 -1 ); + } + + DTOUTLET + { + type zeroGradient; + value $internalField; + } + + "(.*HUB|GVBLADE|.*SHROUD)" + { + type fixedValue; + value uniform ( 0 0 0 ); + } + + "(RUBLADE.*|RUHUB)" + { + type movingWallVelocity; + value uniform ( 0 0 0 ); + } + + "(GVOUTLET|RUINLET|RUOUTLET|DTINLET)" + { + type cyclicAMI; + value $internalField; + } +/* + "(.*CYCLIC.*)" + { + type cyclicAMI; + value $internalField; + } +*/ +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/epsilon b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/epsilon new file mode 100644 index 0000000000..32679821c7 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/epsilon @@ -0,0 +1,62 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -3 0 0 0 0 ]; + +internalField uniform 14.855; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + GVINLET + { + type fixedValue; + value $internalField; + } + + DTOUTLET + { + type zeroGradient; + } + + "(.*HUB|RUBLADE.*|GVBLADE.*|.*SHROUD)" + { + type epsilonWallFunction; + refValue uniform 0; + value $internalField; + Cmu 0.09; + kappa 0.41; + E 9.8; + } + + "(GVOUTLET|RUINLET|RUOUTLET|DTINLET)" + { + type cyclicAMI; + value $internalField; + } +/* + "(.*CYCLIC.*)" + { + type cyclicAMI; + value $internalField; + } +*/ +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/k b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/k new file mode 100644 index 0000000000..e5a5e63e2d --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/k @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -2 0 0 0 0 ]; + +internalField uniform 0.375; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + GVINLET + { + type fixedValue; + value $internalField; + } + + DTOUTLET + { + type zeroGradient; + } + + "(.*HUB|RUBLADE.*|GVBLADE.*|.*SHROUD)" + { + type kqRWallFunction; + value $internalField; + } + + "(GVOUTLET|RUINLET|RUOUTLET|DTINLET)" + { + type cyclicAMI; + value $internalField; + } +/* + "(.*CYCLIC.*)" + { + type cyclicAMI; + value $internalField; + } +*/ +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/nut b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/nut new file mode 100644 index 0000000000..14b7f2f052 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/nut @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + GVINLET + { + type calculated; + value $internalField; + } + + DTOUTLET + { + type calculated; + value $internalField; + } + + "(.*HUB|RUBLADE.*|GVBLADE.*|.*SHROUD)" + { + type nutkWallFunction; + value $internalField; + } + + "(GVOUTLET|RUINLET|RUOUTLET|DTINLET)" + { + type cyclicAMI; + value $internalField; + } +/* + "(.*CYCLIC.*)" + { + type cyclicAMI; + value $internalField; + } +*/ +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/p b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/p new file mode 100644 index 0000000000..4729f942ac --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/0.orig/p @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [ 0 2 -2 0 0 0 0 ]; + +internalField uniform 0; + +boundaryField +{ + #includeEtc "caseDicts/setConstraintTypes" + + GVINLET + { + type zeroGradient; + value $internalField; + } + + DTOUTLET + { + type fixedValue; + value $internalField; + } + + "(.*HUB|RUBLADE.*|GVBLADE.*|.*SHROUD)" + { + type zeroGradient; + value $internalField; + } + + "(GVOUTLET|RUINLET|RUOUTLET|DTINLET)" + { + type cyclicAMI; + value $internalField; + } +/* + "(.*CYCLIC.*)" + { + type cyclicAMI; + value $internalField; + } +*/ +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allclean b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allclean new file mode 100755 index 0000000000..759449668e --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allclean @@ -0,0 +1,8 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial run functions +#------------------------------------------------------------------------------ + +cleanCase0 +rm -rf system/blockMeshDict +rm -rf VTK diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun new file mode 100755 index 0000000000..5c83ae25ab --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun @@ -0,0 +1,11 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions +#------------------------------------------------------------------------------ + +./Allrun.pre + +# Start simulation from scratch +runApplication pimpleFoam + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun.pre b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun.pre new file mode 100755 index 0000000000..b88249d28e --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/Allrun.pre @@ -0,0 +1,26 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions +#------------------------------------------------------------------------------ + +# Generate mesh + +#- Conformal starting mesh +#m4 < system/blockMeshDict-conformal.m4 > system/blockMeshDict + +#- Non-conformal starting mesh +m4 < system/blockMeshDict-non-conformal.m4 > system/blockMeshDict +runApplication blockMesh +# Convert coordinates from cylindrical into Cartesian +runApplication -s cylToCart transformPoints -cylToCart "((0 0 0) (0 0 1) (1 0 0))" + +# Final clean-up, setting of boundary file, etc. +rm -rf 0/ +runApplication -s cyclicAMI changeDictionary -dict system/changeDictionaryDict_cyclicAMI -noZero -constant +runApplication checkMesh -constant +restore0Dir + +# Set up postprocessing +paraFoam -vtk -touch + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/README.txt b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/README.txt new file mode 100644 index 0000000000..adca508a8c --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/README.txt @@ -0,0 +1,12 @@ +- case provided by Hakan Nilsson +- demonstrates: + - meshing in cylindrical coordinates + - use of cyclicPeriodicAMI + - setting of non-default matchTolerance (0.01) to get correct number + of sectors + - using paraview AngularPeriodicFilter + +- touch axialTurbine_rotating_oneBlade.foam +- paraview + - File -> Load State -> select 'angPer.pvsm' + - Choose FileName and select the .foam file diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/angPer.pvsm b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/angPer.pvsm new file mode 100644 index 0000000000..025b9490a3 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/angPer.pvsm @@ -0,0 +1,6439 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/dynamicMeshDict b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/dynamicMeshDict new file mode 100644 index 0000000000..766090ae87 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/dynamicMeshDict @@ -0,0 +1,34 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh dynamicMotionSolverFvMesh; + +solver solidBody; + +solidBodyCoeffs +{ + cellZone rotor; + + solidBodyMotionFunction rotatingMotion; + rotatingMotionCoeffs + { + origin (0 0 0); + axis (0 0 1); + omega -10; //in rad/sec + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/transportProperties b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/transportProperties new file mode 100644 index 0000000000..94d2050bf4 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/transportProperties @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ 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; + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/turbulenceProperties new file mode 100644 index 0000000000..2222b3cfd3 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/constant/turbulenceProperties @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; +//simulationType laminar; + +RAS +{ + RASModel RNGkEpsilon; + + turbulence on; + + printCoeffs on; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-conformal.m4 b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-conformal.m4 new file mode 100644 index 0000000000..a5fedcf662 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-conformal.m4 @@ -0,0 +1,468 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ 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, calc(3.14159265/20)) + +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)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale (1 20 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 1 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 1 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)) + ) +); + +boundary +( + GVINLET + { + type patch; + faces + ( + quad2D(GV3r, GV3l) + ); + } + + GVOUTLET + { + type patch; + faces + ( + quad2D(GV0l, GV0r) + ); + } + + GVCYCLIC1 + { + type patch; + faces + ( + quad2D(GV1l, GV0l) + quad2D(GV3l, GV2l) + ); + } + + GVCYCLIC2 + { + type patch; + faces + ( + quad2D(GV0r, GV1r) + quad2D(GV2r, GV3r) + ); + } + + GVBLADE + { + type patch; + faces + ( + quad2D(GV2l, GV1l) + quad2D(GV1r, GV2r) + ); + } + + GVHUB + { + type patch; + faces + ( + backQuad(GV0l, GV0r, GV1r, GV1l) + backQuad(GV1l, GV1r, GV2r, GV2l) + backQuad(GV2l, GV2r, GV3r, GV3l) + ); + } + + GVSHROUD + { + type patch; + faces + ( + frontQuad(GV0l, GV0r, GV1r, GV1l) + frontQuad(GV1l, GV1r, GV2r, GV2l) + frontQuad(GV2l, GV2r, GV3r, GV3l) + ); + } + + RUINLET + { + type patch; + faces + ( + quad2D(RU3r, RU3l) + ); + } + + RUOUTLET + { + type patch; + faces + ( + quad2D(RU0l, RU0r) + ); + } + + RUCYCLIC1 + { + type patch; + faces + ( + quad2D(RU1l, RU0l) + quad2D(RU3l, RU2l) + ); + } + + RUCYCLIC2 + { + type patch; + faces + ( + quad2D(RU0r, RU1r) + quad2D(RU2r, RU3r) + ); + } + + RUBLADE + { + type patch; + faces + ( + quad2D(RU2l, RU1l) + quad2D(RU1r, RU2r) + ); + } + + RUHUB + { + type patch; + faces + ( + backQuad(RU0l, RU0r, RU1r, RU1l) + backQuad(RU1l, RU1r, RU2r, RU2l) + backQuad(RU2l, RU2r, RU3r, RU3l) + ); + } + + RUSHROUD + { + type patch; + faces + ( + frontQuad(RU0l, RU0r, RU1r, RU1l) + frontQuad(RU1l, RU1r, RU2r, RU2l) + frontQuad(RU2l, RU2r, RU3r, RU3l) + ); + } + + DTINLET + { + type patch; + faces + ( + quad2D(DT1r, DT1l) + ); + } + + DTOUTLET + { + type patch; + faces + ( + quad2D(DT0l, DT0r) + ); + } + + DTCYCLIC1 + { + type patch; + faces + ( + quad2D(DT1l, DT0l) + ); + } + + DTCYCLIC2 + { + type patch; + faces + ( + quad2D(DT0r, DT1r) + ); + } + + DTHUB + { + type patch; + faces + ( + backQuad(DT0l, DT0r, DT1r, DT1l) + ); + } + + DTSHROUD + { + type patch; + faces + ( + frontQuad(DT0l, DT0r, DT1r, DT1l) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-non-conformal.m4 b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-non-conformal.m4 new file mode 100644 index 0000000000..f91443c509 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/blockMeshDict-non-conformal.m4 @@ -0,0 +1,477 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ 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, calc(3.14159265/20)) + +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)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale (1 20 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.04) +// 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, 4) +// 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)) + +// Add tangential twist at RU inlet (3) and outlet (0) at hub (h) and shroud (s) +define(RUt0htw, calc(-2*pi/100)) +define(RUt3htw, calc(-2*pi/100)) +define(RUt0stw, calc(2*pi/100)) +define(RUt3stw, calc(2*pi/100)) + +// Rotate runner +define(RUrot, calc(2*pi/3)) + +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 calc(RUt0+RUt0htw+RUrot) RUa0) vlabel(RU0lb) + (hr calc(RUt0+RUp+RUt0htw+RUrot) RUa0) vlabel(RU0rb) + (hr calc(RUt1+RUrot) calc(RUa0+RUoal)) vlabel(RU1lb) + (hr calc(RUt1+RUp+RUrot) calc(RUa0+RUoal)) vlabel(RU1rb) + (hr calc(RUt2+RUrot) calc(RUa0+RUoal+RUal)) vlabel(RU2lb) + (hr calc(RUt2+RUp+RUrot) calc(RUa0+RUoal+RUal)) vlabel(RU2rb) + (hr calc(RUt3+RUt3htw+RUrot) calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3lb) + (hr calc(RUt3+RUp+RUt3htw+RUrot) calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3rb) + +//Runner shroud: + (sr calc(RUt0+RUt0stw+RUrot) RUa0) vlabel(RU0lt) + (sr calc(RUt0+RUp+RUt0stw+RUrot) RUa0) vlabel(RU0rt) + (sr calc(RUt1+RUrot) calc(RUa0+RUoal)) vlabel(RU1lt) + (sr calc(RUt1+RUp+RUrot) calc(RUa0+RUoal)) vlabel(RU1rt) + (sr calc(RUt2+RUrot) calc(RUa0+RUoal+RUal)) vlabel(RU2lt) + (sr calc(RUt2+RUp+RUrot) calc(RUa0+RUoal+RUal)) vlabel(RU2rt) + (sr calc(RUt3+RUt3stw+RUrot) calc(RUa0+RUoal+RUal+RUial)) vlabel(RU3lt) + (sr calc(RUt3+RUp+RUt3stw+RUrot) 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 1 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 1 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))+RUrot) calc(RUa0+RUoal+0.5*RUal)) + ) + spline RU1lb RU2lb + ( + (hr calc(RUt1+0.65*(RUt2-(RUt1))+RUrot) calc(RUa0+RUoal+0.5*RUal)) + ) + spline RU1rt RU2rt + ( + (sr calc(RUt1+RUp+0.75*(RUt2-(RUt1))+RUrot) calc(RUa0+RUoal+0.5*RUal)) + ) + spline RU1rb RU2rb + ( + (hr calc(RUt1+RUp+0.75*(RUt2-(RUt1))+RUrot) 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)) + ) +); + +boundary +( + GVINLET + { + type patch; + faces + ( + quad2D(GV3r, GV3l) + ); + } + + GVOUTLET + { + type patch; + faces + ( + quad2D(GV0l, GV0r) + ); + } + + GVCYCLIC1 + { + type patch; + faces + ( + quad2D(GV1l, GV0l) + quad2D(GV3l, GV2l) + ); + } + + GVCYCLIC2 + { + type patch; + faces + ( + quad2D(GV0r, GV1r) + quad2D(GV2r, GV3r) + ); + } + + GVBLADE + { + type patch; + faces + ( + quad2D(GV2l, GV1l) + quad2D(GV1r, GV2r) + ); + } + + GVHUB + { + type patch; + faces + ( + backQuad(GV0l, GV0r, GV1r, GV1l) + backQuad(GV1l, GV1r, GV2r, GV2l) + backQuad(GV2l, GV2r, GV3r, GV3l) + ); + } + + GVSHROUD + { + type patch; + faces + ( + frontQuad(GV0l, GV0r, GV1r, GV1l) + frontQuad(GV1l, GV1r, GV2r, GV2l) + frontQuad(GV2l, GV2r, GV3r, GV3l) + ); + } + + RUINLET + { + type patch; + faces + ( + quad2D(RU3r, RU3l) + ); + } + + RUOUTLET + { + type patch; + faces + ( + quad2D(RU0l, RU0r) + ); + } + + RUCYCLIC1 + { + type patch; + faces + ( + quad2D(RU1l, RU0l) + quad2D(RU3l, RU2l) + ); + } + + RUCYCLIC2 + { + type patch; + faces + ( + quad2D(RU0r, RU1r) + quad2D(RU2r, RU3r) + ); + } + + RUBLADE + { + type patch; + faces + ( + quad2D(RU2l, RU1l) + quad2D(RU1r, RU2r) + ); + } + + RUHUB + { + type patch; + faces + ( + backQuad(RU0l, RU0r, RU1r, RU1l) + backQuad(RU1l, RU1r, RU2r, RU2l) + backQuad(RU2l, RU2r, RU3r, RU3l) + ); + } + + RUSHROUD + { + type patch; + faces + ( + frontQuad(RU0l, RU0r, RU1r, RU1l) + frontQuad(RU1l, RU1r, RU2r, RU2l) + frontQuad(RU2l, RU2r, RU3r, RU3l) + ); + } + + DTINLET + { + type patch; + faces + ( + quad2D(DT1r, DT1l) + ); + } + + DTOUTLET + { + type patch; + faces + ( + quad2D(DT0l, DT0r) + ); + } + + DTCYCLIC1 + { + type patch; + faces + ( + quad2D(DT1l, DT0l) + ); + } + + DTCYCLIC2 + { + type patch; + faces + ( + quad2D(DT0r, DT1r) + ); + } + + DTHUB + { + type patch; + faces + ( + backQuad(DT0l, DT0r, DT1r, DT1l) + ); + } + + DTSHROUD + { + type patch; + faces + ( + frontQuad(DT0l, DT0r, DT1r, DT1l) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/changeDictionaryDict_cyclicAMI b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/changeDictionaryDict_cyclicAMI new file mode 100644 index 0000000000..7caa363b5f --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/changeDictionaryDict_cyclicAMI @@ -0,0 +1,209 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object changeDictionaryDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +boundary +{ + GVINLET + { + type patch; + inGroups 1(inlet); + } + GVCYCLIC1 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + matchTolerance 0.0001; + transform rotational; + rotationAxis (0 0 1); + rotationCentre (0 0 0); + rotationAngle 72; + neighbourPatch GVCYCLIC2; + AMIMethod faceAreaWeightAMI; + restartUncoveredSourceFace 1; + } + GVCYCLIC2 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + matchTolerance 0.0001; + transform rotational; + rotationAxis (0 0 1); + rotationCentre (0 0 0); + rotationAngle -72; + neighbourPatch GVCYCLIC1; + AMIMethod faceAreaWeightAMI; + restartUncoveredSourceFace 1; + } + GVBLADE + { + type wall; + inGroups 1(blades); + closedSolidBodyMotion false; + } + GVHUB + { + type wall; + inGroups 1(hub); + closedSolidBodyMotion false; + } + GVSHROUD + { + type wall; + inGroups 1(shroud); + closedSolidBodyMotion false; + } + GVOUTLET + { + type cyclicPeriodicAMI; + inGroups 2(cyclicAMI upstreamRSIs); + matchTolerance 0.01; + transform unknown; + neighbourPatch RUINLET; + periodicPatch RUCYCLIC1; + AMIMethod faceAreaWeightAMI; + requireMatch 0; + restartUncoveredSourceFace 1; + maxIter 4; + } + RUINLET + { + type cyclicPeriodicAMI; + inGroups 2(cyclicAMI downstreamRSIs); + matchTolerance 0.01; + transform unknown; + neighbourPatch GVOUTLET; + periodicPatch RUCYCLIC1; + AMIMethod faceAreaWeightAMI; + requireMatch 0; + restartUncoveredSourceFace 1; + maxIter 4; + } + RUCYCLIC1 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + matchTolerance 0.0001; + transform rotational; + neighbourPatch RUCYCLIC2; + rotationAxis (0 0 1); + rotationCentre (0 0 0); + rotationAngle 72; + AMIMethod faceAreaWeightAMI; + restartUncoveredSourceFace 1; + } + RUCYCLIC2 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + matchTolerance 0.0001; + transform rotational; + neighbourPatch RUCYCLIC1; + rotationAxis (0 0 1); + rotationCentre (0 0 0); + rotationAngle -72; + AMIMethod faceAreaWeightAMI; + restartUncoveredSourceFace 1; + } + RUBLADE + { + type wall; + inGroups 1(blades); + closedSolidBodyMotion false; + } + RUHUB + { + type wall; + inGroups 1(hub); + closedSolidBodyMotion false; + } + RUSHROUD + { + type wall; + inGroups 1(shroud); + closedSolidBodyMotion false; + } + RUOUTLET + { + type cyclicPeriodicAMI; + inGroups 2(cyclicAMI upstreamRSIs); + matchTolerance 0.01; + transform unknown; + neighbourPatch DTINLET; + periodicPatch RUCYCLIC1; + AMIMethod faceAreaWeightAMI; + requireMatch 0; + restartUncoveredSourceFace 1; + maxIter 4; + } + DTINLET + { + type cyclicPeriodicAMI; + inGroups 2(cyclicAMI downstreamRSIs); + matchTolerance 0.01; + transform unknown; + neighbourPatch RUOUTLET; + periodicPatch RUCYCLIC1; + AMIMethod faceAreaWeightAMI; + requireMatch 0; + restartUncoveredSourceFace 1; + maxIter 4; + } + DTOUTLET + { + type patch; + inGroups 1(outlet); + } + DTCYCLIC1 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + matchTolerance 0.0001; + transform rotational; + neighbourPatch DTCYCLIC2; + rotationAxis (0 0 1); + rotationCentre (0 0 0); + rotationAngle 72; + AMIMethod faceAreaWeightAMI; + restartUncoveredSourceFace 1; + } + DTCYCLIC2 + { + type cyclicAMI; + inGroups 1(cyclicAMI); + matchTolerance 0.0001; + transform rotational; + neighbourPatch DTCYCLIC1; + rotationAxis (0 0 1); + rotationCentre (0 0 0); + rotationAngle -72; + AMIMethod faceAreaWeightAMI; + restartUncoveredSourceFace 1; + } + DTHUB + { + type wall; + inGroups 1(hub); + closedSolidBodyMotion false; + } + DTSHROUD + { + type wall; + inGroups 1(shroud); + closedSolidBodyMotion false; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/controlDict b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/controlDict new file mode 100644 index 0000000000..e78937d299 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/controlDict @@ -0,0 +1,55 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 0.6283; //One rotation +//endTime 1.2566; //Two rotations + +deltaT 0.00175;//Approx 1 degree per time step + +writeControl timeStep; + +writeInterval 10;//Every 10 degrees + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep no; + +DebugSwitches +{ + //cyclicPeriodicAMI 5; + //cyclicAMI 5; + //cyclic 5; +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSchemes b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSchemes new file mode 100644 index 0000000000..4f3f4fde58 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSchemes @@ -0,0 +1,55 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ 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 linearUpwindV grad(U); + div(phi,k) Gauss linearUpwind default; + div(phi,epsilon) Gauss linearUpwind default; + div((nuEff*dev(T(grad(U))))) Gauss linear; + div((nuEff*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSolution b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSolution new file mode 100644 index 0000000000..371ed65aeb --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/axialTurbine_rotating_oneBlade/system/fvSolution @@ -0,0 +1,81 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2406 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + "(p|pFinal)" + { + solver PBiCGStab; + preconditioner FDIC; + tolerance 1e-08; + relTol 0.05; + } + U + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-07; + relTol 0.1; + } + UFinal + { + $U; + relTol 0; + } + k + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-07; + relTol 0.1; + } + epsilon + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-07; + relTol 0.1; + } + "(k|epsilon)Final" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-07; + relTol 0; + } + +} + + +PIMPLE +{ + correctPhi no; + 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; +} + + +// ************************************************************************* //