Sig Turbomachinery / ERCOFTAC conical diffuser

From OpenFOAMWiki

Contents

1 The ERCOFTAC conical diffuser case-study

Hakan Nilsson, Chalmers University of Technology, Gothenburg, Sweden

Maryse Page, Hydro-Québec, Montréal, Canada

The ERCOFTAC conical diffuser testcase [1] is a swirling boundary layer developing in a conical diffuser (axi-symmetric expansion of a circular pipe). A description of the measurements made by Clausen, Koh and Wood is available in references [1]. The experimental set-up is such that the inlet swirl prevents boundary layer separation but is just insufficient to cause recirculation in the core of the flow. Experimental results are available in the ERCOFTAC Classic database (Case 60: Swirling Boundary Layer in Conical Diffuser). The testcase was included in the ERCOFTAC Workshop on Data Bases and Testing of Calculation Methods for Turbulent Flows held in Karlsruhe in 1995 [2]. The testcase is also part of the QNET-CFD Knowledge Base (Swirling diffuser flow).

Figure ERCOFTACdiffuser.1 shows a 3D view of the geometry. The inlet is in this case located at the beginning of the honeycomb that was used in the experiments to generate a plug flow with a solid body rotation/swirl. In the experiments it was open air after the end of the expansion.

Several two-dimensional flow computations were submitted to the ERCOFTAC Workshop in 1995 [2]. Two-dimensional computations [3] and three-dimensional [4] computations using the experimental data at the inlet of the conical diffuser were also published in 1996 and 1997. More recently, results were presented using OpenFOAM at the Second OpenFOAM Workshop [5]. Computations reflecting more the experimental set-up were presented in 2006 [6].

Experimental results related to the same conical diffuser were also presented in 1987 by Clausen and Wook in the conference paper [7]. Prediction of turbulence quantities for this swirling flow were presented by Armfield, Cho and Fletcher in [8].

A conclusion of the work in this case study was presented at the third OpenFOAM workshop 2008 [12], and at the 24th IAHR Symposium 2008 [11]. Future work on the case study, using the original files mentioned below, should refer to these publications:

  • H. Nilsson, M. Page, M. Beaudoin, B. Gschaider and H. Jasak. The openFOAM Turbomachinery Working Group, and Conclusions from the Turbomachinery Session of the Third OpenFOAM Workshop. 24th IAHR Symposium on Hydraulic Machinery and Systems, October 27-31, 2008, Foz Do Iguassu, Brazil. (paper slides)
  • O. Bounous. Studies of the ERCOFTAC Conical Diffuser with OpenFOAM. Research Report 2008:05, Applied Mechanics, Chalmers University of Technology, Sweden, 2008. Presented at the Third OpenFOAM Workshop in Milano, July 9-11, 2008. (report slides - page 26-59 presented by Omar)

ERCOFTAC geometry.jpg

Figure ERCOFTACdiffuser.1. 3D view of the ERCOFTAC diffuser geometry.

1.1 How to get the files

The OpenFOAM ERCOFTAC conical diffuser case described below was developed as a case-study for the third OpenFOAM workshop, Milano, 2008, and it can be found at the OpenFOAM-extend SourceForge project. It includes parametrizations of the geometry and the O-grid, complete OpenFOAM cases that solves the flow in the domain, automatic post-processing of the results, and xfig files for generation of the figures below. The parametrization is made using m4, and instructions on how to run m4 are included below.

Get all the current files by doing:

For OpenFOAM-1.4.1:

 
run
svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder/OSIG/TurboMachinery/ercoftacConicalDiffuser ercoftacConicalDiffuser

For OpenFOAM-1.5:

 
run
svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_1.5/OSIG/TurboMachinery/ercoftacConicalDiffuser ercoftacConicalDiffuser

In the descriptions below we thus assume that the ercoftacConicalDiffuser directory is located in the directory pointed by the environment variable FOAM_RUN.

Update your files every now and then by doing:

 
cd $FOAM_RUN/ercoftacConicalDiffuser
svn update

See further info at the OpenFOAM-extend project

1.2 Case0: Base case

The case is set up according to the instructions in the ERCOFTAC database. Note however that we here use the z-axis as the main flow axis instead of the x-axis. The measured profiles at z=-25mm are used as inlet boundary conditions, and the outlet is located at the position where the diffuser ends into open air.

1.2.1 Case0, mesh parametrization

Figure Case0.1 shows the definitions of the parameters rIn, diffuserLength and openingAngle. It is thus easy to modify the geometry in terms of these parameters.

ERCOFTAC base case BCD 2dView.jpg

Figure Case0.1. 2D view of Case0. The radius is here doubled for visualization reasons.

The grid generation in blockMesh is based on a number of cross-sections. It is easy to add or delete cross-sections in the m4 file if anyone would like to study another version of the same case. Figure Case0.2 shows cross-sections A-C, that are used when making the mesh for the base case. The cross-sections refer to:

A: The inlet of the computational domain, where measurements are available.

B: The inlet of the expansion.

C: The outlet of the expansion, and the outlet of the computational domain.

The number of cells in the z-direction between each cross-section is specified in the m4 file using parameters zABnumberOfCells (for the number of cells between cross-sections A and B), and zBCnumberOfCells (for the number of cells between cross-sections B and C). The grid spacing in the z-direction is uniform.

ERCOFTACdiffuser planes Case0.jpg

Figure Case0.2. Planes used in the parametrization of Case0. The radius is here according to the ERCOFTAC description.

Figure Case0.3 shows the parameters used for defining the O-grid throughout the domain. The figure is an example of the grid plane at cross-section A, but the parametrization at other planes are defined with parameters where 'A' is exchanged with the letter of the other cross-section. The number of cells in the radial direction in the O-grid is specified using parameter rNumberOfCells, and the number of cells in the tangential direction is specified using parameter tNumberOfCells (these must be integers!). The center block will thus get tNumberOfCells in both directions. These numbers are the same for all cross-sections. The grid point distribution of the center block, and thus in the tangential direction of the O-grid is uniform. The grid point distribution in the radial direction in the O-grid is defined using parameter rGrading, which is the same at all cross-sections. rGrading is the ratio between the size of the radially innermost cell in the O-grid to that of the outermost cell. That is how blockMesh generates non-uniform meshes.

The location of cross-section A in the z-direction is specified using parameter zA. The outer radius of cross-section A is specified using parameter rA. The radius of the vertices of the center block, relative to rA, is specified using the parameter rRelA, which should be between 0 and 1. In other words, the radius of the vertices may be anything from 0 (rRelA = 0, but that would make no sense) to rA (rRelA = 1). The radius of the center point of each edge of the center block is specified relative to the radius of the vertices of the center block. The edge between two vertices is thus an arc with a center radius of rRelAc * rRelA * rA. rRelAc should be between 0 and 1, where 1 gives a center block with circular edges. These definitions make it easy to modify the O-grid thickness relative to the outer radius, while keeping a high quality shape of the O-grid.

ERCOFTAC base case o-grid.jpg

Figure Case0.3. O-grid used in the parametrization of the base case.

1.2.2 Case0, how to run the case

Generate the grid by typing:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0/constant/polyMesh
m4 -P blockMeshDict.m4 > blockMeshDict

Then run blockMesh: For OpenFOAM-1.4.1:

 
blockMesh $FOAM_RUN/ercoftacConicalDiffuser/cases Case0

For OpenFOAM-1.5:

 
blockMesh -case $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0

Make sure that there is a 0 directory. An original 0 directory is named 0_orig, and it is a good idea to keep this untouched. If there is no 0 directory, or if the 0 directory has been modified, type:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0
rm -r 0
cp -r 0_orig 0

To impose the inlet BC based on the measured profile at z=-25mm, the profile1DfixedValue boundary condition is used. The source of the BC is located at the OpenFOAM-extend project on SourceForge the OpenFOAM-extend project under the TurboWG subversion directory: trunk/Breeder/OSIG/Turbomachinery.

How to get the source, how to compile it and how to generate the library is described in the following section of the Wiki: Library OpenFoamTurbo.

The name of the library is libOpenFoamTurbo.so. In order to use it with, it is important to add this line in the system/controlDict file (this has already been done in Case0):

 
libs ("libOpenFoamTurbo.so");

The file OFturboWGcase0.csv (located in the constant directory) contains the inlet values for the reference testcase Case0. The inlet cylindrical radial profile for the velocity components and the turbulent quantities is based directly on the available measurements of Clausen, Koh and Wood (reference 1) at z=-25mm: Velocity Axial, Velocity Circumferential and Turbulent Kinetic Energy. The unmeasured radial component of the velocity is imposed to 0. The turbulent dissipation Epsilon corresponds to turbulent viscosity ratio of \mu_t/\mu=14.5. More info about it can be found in reference 3.

Move back to the case:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0

Run the case by typing, for OpenFOAM-1.4.1:

 
simpleFoam $FOAM_RUN/ercoftacConicalDiffuser/cases Case0 >& log&

For OpenFOAM-1.5:

 
simpleFoam -case $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0 >& log&

If you are using OpenFOAM-1.4.1-dev: The basic set-up is made for OpenFOAM 1.4.1 version from OpenCFD. The testcase can also run with OpenFOAM 1.4.1-dev available from OpenFOAM-extend project. It is only necessary to update the file system/fvSolution. The following commands should be done for user using OpenFOAM 1.4.1-dev:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0/system
cp fvSolution-1.4.1-dev fvSolution
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0
simpleFoam $FOAM_RUN/ercoftacConicalDiffuser/cases Case0

1.2.3 Case0, how to post-process the case

We have set up an automatic post-processing procedure using the experimental data. Follow these instructions to post-process the results:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case0/postProcessing

For OpenFOAM-1.4.1:

 
sample ../.. Case0 -time 500

For OpenFOAM-1.5:

 
sample -case ../../Case0 -time 500

Run Gnuplot scripts and visualize with Mozilla:

 
gnuplot compareAll.gplt
mozilla file://$PWD/compareAll.html

There is also a README file describing this in the case distribution.

1.3 Case1: Extended base case set-up

This case is similar to Case0, but with extensions before and after the diffuser. The inlet extension is added to generate a plug flow with a solid body rotation swirl (see the addSwirlAndRotation utility). The outlet extension is added to better approximate the outlet of the diffuser into open air.

1.3.1 Case1, mesh parametrization

Figure Case1-1 shows the definitions of the parameters rIn, diffuserLength, extensionLength and openingAngle. It is thus easy to modify the geometry in terms of these parameters.

ERCOFTAC base case 2dView.jpg

Figure Case1-1. 2D view of the ERCOFTAC conical diffuser base case. The radius is here doubled for visualization reasons.

Figure Case1-2 shows cross-sections A-F, that are used when making the mesh for the base case. The cross-sections refer to:

A: The beginning of the honeycomb, and the inlet of the computational domain.

B: The edge of a rotating part of the wall.

C: A measurement plane (the one used as inlet in Case0).

D: The inlet of the expansion.

E: The outlet of the expansion.

F: The outlet of the artificial extension, and the outlet of the computational domain.

ERCOFTACdiffuser planes Case1.jpg

Figure Case1-2. Planes used in the parametrization of the base case. The radius is here according to the ERCOFTAC description.

1.3.2 Case1, how to run the case

Generate the grid by typing:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1/constant/polyMesh
m4 -P blockMeshDict.m4 > blockMeshDict

For OpenFOAM-1.4.1:

 
blockMesh $FOAM_RUN/ercoftacConicalDiffuser/cases Case1

For OpenFOAM-1.5:

 
blockMesh -case $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1

Make sure that there is a 0 directory. An original 0 directory is named 0_orig, and it is a good idea to keep this untouched. If there is no 0 directory, or if the 0 directory has been modified, type:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1
rm -r 0
cp -r 0_orig 0

Compile the addSwirlAndRotation utility. See a description of the addSwirlAndRotation utility and how to compile it further down at this page.

Set the swirl and rotation at the inlet and at the rotating walls, and initialize the internal field by typing: For OpenFOAM-1.4.1:

 
addSwirlAndRotation $FOAM_RUN/ercoftacConicalDiffuser/cases Case1

For OpenFOAM-1.5:

 
addSwirlAndRotation -case $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1

Note that addSwirlAndRotation ADDS the swirls and rotation, so if you run it again on the same time directory you will ADD again!

Run the case by typing For OpenFOAM-1.4.1:

 
simpleFoam $FOAM_RUN/ercoftacConicalDiffuser/cases Case1 >&log&

For OpenFOAM-1.5:

 
simpleFoam -case $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1 >&log&

1.3.3 Case1, how to post-process the case

We have set up an automatic post-processing procedure using the experimental data. Follow these instructions to post-process the results:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1/postProcessing

For OpenFOAM-1.4.1:

 
sample ../.. Case1 -time 1000

For OpenFOAM-1.5:

 
sample -case ../../Case1 -time 1000

Run through the Gnuplot script and visualize with Mozilla:

 
gnuplot compareAll.gplt
mozilla file://$PWD/compareAll.html

There is also a README file describing this in the case distribution.

1.3.4 Case1, how to visualize the residuals

Do the following to visualize the residuals: (this requires that you have a 'log' file in the Case1 directory)

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1/postProcessing

For OpenFOAM-1.4.1:

 
foamLog ../.. Case1 ../log

For OpenFOAM-1.5:

 
foamLog ../log
 
gnuplot plotResiduals.gplt
mozilla file://$PWD/residuals.png

There is also a README file describing this in the case distribution.

1.4 Case1.1: Case1 with a radial mesh

This case is similar to Case1, but the mesh is radial instead of an O-grid topology. At each cross section the mesh consists of four blocks, as shown in figure Case1.1-1

ERCOFTAC Case1.1 grid.jpg

Figure Case1.1-1. Mesh topology at cross-section A of Case1.1.

Run the case exactly like Case1, but note that the default is to run it for 1200 iterations to reach full convergence (use -time 1200 when postProcessing).

1.5 Case1.2: Case1 with MRFSimpleFoam

This case is similar to Case1, but the rotating part (the inlet, the rotating walls, and the cells in that region - region AB) is marked as rotating and simulated as such using MRFSimpleFoam. The rotation of the walls is set by the procedure below instead of using addSwirlAndVelocity, while the inlet swirl is still added using addSwirlAndVelocity.

Follow these steps to run the case from scratch:

First move to Case1.2:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1.2

If you didn't already compile MRFSimpleFoam (it is not compiled in the distribution), you can copy the source code to anywhere you like and compile it. Here we put it in the same directory as the case:

 
cp -r $WM_PROJECT_DIR/tutorials/MRFSimpleFoam/MRFSimpleFoam .
cd MRFSimpleFoam
wmake
cd ..

Now we set up the case for MRFSimpleFoam and run it:

 
./makeMesh
cp -r 0_orig 0

For OpenFOAM-1.4.1:

 
addSwirlAndRotation . .
MRFSimpleFoam . . >& log&

For OpenFOAM-1.5:

 
addSwirlAndRotation
MRFSimpleFoam >& log&

1.5.1 Case1.2, how to post-process the case

See Case1

1.5.2 Case1.2, how to visualize the residuals

See Case1

1.6 Case1.3: Case1 as a 2D wedge case

This case is similar to Case1, but the simulation is now done in 2D using a wedge geometry (2D radial mesh) and wedge boundary conditions. OpenFOAM requires such geometries to have the symmetry axis along the x-axis, so Case1.3 is transformed to use the x-axis as the main flow direction instead of the z-axis. Figure Case1.3-1 shows a view of the wedge geometry and the coordinate system.

ERCOFTACdiffuser Case1.3 wedge.jpg

Figure Case1.3-1. A view of the wedge geometry and the coordinate system.

Follow these steps to run the case from scratch:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case1.3
cp -r 0_orig 0
cd constant/polyMesh
m4 -P blockMeshDict.m4 > blockMeshDict
cd ../..

For OpenFOAM-1.4.1:

 
blockMesh . .
addSwirlAndRotation . .
simpleFoam . . >& log&

For OpenFOAM-1.5:

 
blockMesh
addSwirlAndRotation
simpleFoam >& log&

1.6.1 Case1.3, how to post-process the case

Read the README file in the postProcessing directory. Note that the U vector field is now decomposed into components, since the interpolation in the sample utility did not work in this case for vector fields.

1.6.2 Case1.3, how to visualize the residuals

See Case1.

1.7 Case2: Dump case

This case is similar to Case1, but with a dump instead of a constant area extension after the diffuser. The dump is added to better approximate the outlet of the diffuser into open air. The inlet part is similar to Case1. A similar geometry and grid was used by W. Gyllenram and H. Nilsson, "Very Large Eddy Simulation of Draft Tube Flow", In Proceedings of 23rd IAHR Symposium, Yokohama, 2006.

1.7.1 Case2, mesh parametrization

Figure Case2-1 shows the definitions of the parameters rIn, diffuserLength, openingAngle, dumpLength and outletPipeLength. It is thus easy to modify the geometry in terms of these parameters.

ERCOFTAC Case2 2dView.jpg

Figure Case2-1. 2D view of the ERCOFTAC conical diffuser Case2. The radius is here according to the ERCOFTAC description.

Figure Case2-2 shows cross-sections A-H, that are used when making the mesh for Case2. The cross-sections refer to:

A: The beginning of the honeycomb, and the inlet of the computational domain.

B: The edge of a rotating part of the wall.

C: A measurement plane (the one used as inlet in Case0).

D: The inlet of the expansion.

E: The outlet of the expansion, and the beginning of the dump.

F: The center of the dump.

G: The end of the dump and the beginning of the outlet pipe.

H: The end of the outlet pipe, and the outlet of the computational domain.

ERCOFTACdiffuser planes Case2.jpg

Figure Case2-2. Planes used in the parametrization of Case2. The radius is here according to the ERCOFTAC description.

The mesh topology in the inlet part, the diffuser, and in the outletPipe is similar as for Caseo and Case1, with the exception that parameter rNumberOfCells is now named rNumberOfCells1st. The reason for this is that two more layers of O-grids are added in the dump. Figure Case2-3 shows the mesh topology at cross-section E for Case2. Parameters rNumberOfCells2nd and rNumberOfCells3rd are now added to control the meshing in the additional O-grids, and parameter rDump is added to control the radius of the dump. The grading in the radial direction has been divided in two (rGrading1 and rGrading2) in order to be able to separately control the grading in the inner and the outer O-grids respectively. There are also two new gradings in the z-direction zGrading1 and zGrading2) controlling the axial grading in the dump and in the outletPipe.

ERCOFTAC Case2 o-grid E.jpg

Figure Case2-3. Mesh topology at cross-section E of Case2. Note that the radial extents of the outer O-grids have been reduced in the picturer for visualization reasons.

1.7.2 Case2, how to run the case

See Case1.

Note that the flow in the dump will not be completely steady since the real flow undergoes a vortex breakdown, which is unsteady by nature. The current settings are not able to dampen out these fluctuations completely. The results at the measurement sections are however completely steady.

1.7.3 Case2, how to post-process the case

See Case1

1.7.4 Case2, how to visualize the residuals

See Case1

1.8 Case2.1: Dump case with the Gyllenram/Nilsson-IAHR/Yokohama inlet profile

The geometry and mesh of this case is the same as for Case2. The inlet boundary condition is that proposed by W. Gyllenram and H. Nilsson, "Very Large Eddy Simulation of Draft Tube Flow", In Proceedings of 23rd IAHR Symposium, Yokohama, 2006. It is applied using the profile1DfixedValue boundary condition, which is decribed for Case0 above. A CSV file is attached in the constant directory, together with the Matlab file that generated it.

See Case0 and Case2 for instructions on how to install, set up, run, post-process and visualize.

1.9 Case2.2: Case 2 with a radial mesh

This case is the same as Case2, but using a radial mesh similar to that in Case1.1. The mesh topology at cross-section E can be seen in Figure Case2.2-1.

ERCOFTAC Case2.2 grid E.jpg

Figure Case2.2-1. Mesh topology at cross-section E of Case2.2.

Run the case using the following procedure:

 
cd $FOAM_RUN/ercoftacConicalDiffuser/cases/Case2.2
cp -r 0_orig 0
cd constant/polyMesh/
m4 -P blockMeshDict.m4 > blockMeshDict
cd ../..

For OpenFOAM-1.4.1:

 
blockMesh . .
addSwirlAndRotation . .
simpleFoam . . >& log&

For OpenFOAM-1.5:

 
blockMesh
addSwirlAndRotation
simpleFoam >& log&

See Case2 for instructions on how to post-process the results and the residuals.

1.10 Contributed cases

Here you can add sections with case definitions that are of general interest, or that is needed for discussions in the sections below. Keep the Wiki nice and tidy! Co-organize your case definitions with those from other contributors!

Suggestions:

1.10.1 Suggestion: Case1.?: Case1 with sliding grid / GGI

Same as Case1, but with a rotating domain in the region of the swirl generator, and a sliding grid or General Grid Interface (GGI) between that and the rest of the stationary domain.

1.10.2 Suggestion: Case?: Body force honeycomb

Extend the inlet even further and add the honeycomb as a body force (porous media?).

1.11 References

[1] P.D. Clausen, S.G. Koh and D.H. Wood. Measurements of a swirling turbulent boundary layer developing in a conical diffuser. Experimental Thermal and Fluid Science, 6:39-48, 1993.

[2]: W.Rodi, J.-C. Bonnin and T.Buchal (organizers), ERCOFTAC Workshop on Data Bases and Testing of Calculation Methods for Turbulent Flows. Karlsruhe, Germany, April 3-7, 1995.

[3]: M.Page, A.-M.Giroux and B.Massé. Turbulent swirling flow computation in a conical diffuser with two commercial codes. CFD'96, Fourth Annual Conference of the CFD Society of Canada, Ottawa, Canada, June 2-6, 1996.

[4]: M.Page, B.Massé and A.-M.Giroux. Turbulent swirling flow computations in a conical diffuser. FIDAP User's Meeting, Burlington, USA, June 17-19, 1997.

[5]: M.Page and M.Beaudoin. Adapting OpenFOAM for Turbomachinery Applications. Second OpenFOAM Workshop, Zagreb, Croatia, June 7-9, 2007 (slides).

[6] W. Gyllenram and H. Nilsson. Very Large Eddy Simulation of Draft Tube Flow. In Proceedings of 23rd IAHR Symposium, Yokohama, 2006.

[7] P.D. Clausen and D.H. Wood. Some measurements of swirling flow through an axisymmetric diffuser. Proceedings of Sixth Symposium on Turbulent Shear Flows, Paul Sabatier University, Toulouse, France, Sept 7-9, 1987.

[8] S.W. Armfield, N.-H. Cho and C.A.J. Fletcher. Prediction of Turbulence Quantities for Swirling Flow in Conical Diffusers. AIAA J., Vol.28, No.3, pp..453-460, March 1990.

[9] F.A. Payette, V.De Henau, G.Dumas and M. Sabourin. Sensitivity of Draft Tube Flow Predictions to Boundary Conditions. 24th IAHR Symposium on Hydraulic Machinery and Systems, October 27-31, 2008, Foz Do Iguassu, Brazil.

[10] C. Duprat, O. Metais and T. Laverne. Large Eddy Simulation of a High Reynolds Number Swirling Flow in a Conical Diffuser. 4th IAHR Symposium on Hydraulic Machinery and Systems, October 27-31, 2008, Foz Do Iguassu, Brazil.

[11] H. Nilsson, M. Page, M. Beaudoin, B. Gschaider and H. Jasak. The openFOAM Turbomachinery Working Group, and Conclusions from the Turbomachinery Session of the Third OpenFOAM Workshop. 24th IAHR Symposium on Hydraulic Machinery and Systems, October 27-31, 2008, Foz Do Iguassu, Brazil. (paper slides)

[12] O. Bounous. Studies of the ERCOFTAC Conical Diffuser with OpenFOAM. Research Report 2008:05, Applied Mechanics, Chalmers University of Technology, Sweden, 2008. Presented at the Third OpenFOAM Workshop in Milano, July 9-11, 2008. (report slides - page 26-59 presented by Omar)

Please add more relevant references!

2 Specific studies

Some discussions related to the ERCOFTAC conical diffuser test-case can be found on OpenFOAM Message Board in the thread Sig Turbomachinery / Organize the next meeting.

2.1 Case0: Reference case

The parameters that are used to the reference Case0 are described in the following table:

Case Case0
Version 1.4.1

1.4.1-dev

1.5

Date March 2008
Inlet profile1DfixedValue, with OFturboWGcase0.csv

 Vaxial = V_{EXP axial} at CS Z=-25mm

 Vcirc = V_{EXP circ} at CS Z=-25mm

 Vradial = 0

 k = k_{EXP} at CS Z=-25mm

 epsilon = c_{\mu} k^2 / \nu (\mu_T/\mu) , with \mu_T/\mu = 14.5,  c_{\mu}=0.09  \nu=1.5e-05

Outlet fixedValue, p = 0
Solver simpleFoam
Discretization div(phi,U) Gauss linearUpwind Gauss;

div(phi,k) Gauss upwind;

div(phi,epsilon) Gauss upwind;

Mesh parameters rNumberOfCells=15

tNumberOfCells=20

zABnumberOfCells=6

zBCnumberOfCells=30

rGrading=5

rRelA=0.7

rRelAc, 0.8

Mesh characteristics  \delta \sim 1.5mm

Output from checkYPlus for 500: Patch 2 named wallDiffuser y+ : min: 19.4774 max: 35.2016 average: 26.6765

Final residuals

7.73074e-07 (Ux)

7.32412e-07 (Uy)

9.43714e-07 (Uz)

1.98768e-06 (p)

5.58873e-07 (k)

5.7994e-07 (epsilon)

--MP 15:00, 19 March 2008 (CET)

2.2 Case1: Reference case

The parameters that are used to the reference Case1 are described in the following table:

Case Case1
Version 1.4.1

1.4.1-dev

1.5

Date March 2008
Inlet addSwirlAndRotation, solid body swirl and plug flow (dictionary swirlAndRotationProperties)

 Vaxial = 11.6m/s at CS Z=-0.5m

 Vcirc = \Omega r = 52.646*r m/s at CS Z=-0.5m

 Vradial = 0

 k = 3/2 (Vaxial*I)^2 = 2.0184 m^2/s^2 at CS Z=-0.5m (I=0.1: 10 % turbulence intensity)

 epsilon = k^{1.5}/l_t = 896.10908 m^2/s^3 at CS Z=-0.5m (l_t = 0.0032m turbulence length scale)

Outlet fixedValue, p = 0
Walls Wall functions, solid body rotation at rotSwirlWall (dictionary swirlAndRotationProperties)
Solver simpleFoam
Discretization div(phi,U) Gauss linearUpwind Gauss;

div(phi,k) Gauss upwind;

div(phi,epsilon) Gauss upwind;

Mesh parameters rNumberOfCells=15

tNumberOfCells=20

zABnumberOfCells=10

zBCnumberOfCells=4

zCDnumberOfCells=6

zDEnumberOfCells=30

zEFnumberOfCells=10

rGrading=5

rRelA=0.7

rRelAc, 0.8

Mesh characteristics  \delta \sim 1.5mm

Output from checkYPlus for 1000: Patch 3 named wallDiffuser y+ : min: 19.3279 max: 31.7086 average: 25.7445

Final residuals

1.30233e-06 (Ux)

1.33281e-06 (Uy)

3.11419e-06 (Uz)

4.17731e-05 (p)

1.17483e-05 (k)

9.77574e-07 (epsilon)

--Hani 23:31, 30 March 2008 (CEST)

2.3 Geometry and grid generation

Recommended settings of the parametrization. Recommended geometry. Discussions about the artificial extension, and how to treat the outlet into open air.

2.4 Validation

Validations against measurements. Development of implementations for automatic extraction and plotting.

2.5 Visualization

Development of implementations for automatic visualization of the results.

2.6 Boundary conditions

Discussions on different boundary conditions and different implementations. Comparisons, verifications, validations.

2.6.1 Inlet

2.6.1.1 Case1

Gyllenram and Nilsson (Yokohama 2006) used the following inlet boundary conditions at the location of the honeycomb. These settings yield quite good velocity and turbulent kinetic energy profiles.

Variable Value Dimension Expression Description
\Omega 52.646 rad/s Honeycomb rotation
 U_z 11.6  m/s Axial velocity
 U_\theta nonuniform  m/s  \Omega * r Tangential velocity
 U_r 0  m/s Radial velocity
 k 13.456  m^2/s^2  0.1 * U_z^2 10 % turbulence intensity
 l_t 0.0032  m Turbulence length scale (honeycomb cell diameter)
 C_\mu 0.09  [-]
 \omega 12736.95169  s^{-1} k^{0.5}/(C_\mu l_t) Specific dissipation
 \varepsilon 15424.95797  m^2/s^3 k^{1.5}/l_t Dissipation
 \frac{\nu_t}{\nu} 70.43  [-] \frac{k}{\omega \nu} = C_\mu \frac{k^2}{\varepsilon \nu}

Usually a different definition of turbulence intensity is used (see cfd-online), which yields the following values differing from the above values. These settings yield basically equivalent results as those using the settings by Gyllenram and Nilsson. Since the turbulence intensity is specified in a more general way, these settings have been chosen for the default settings in Case1.

Variable Value Dimension Expression Description
 k 2.0184  m^2/s^2  \frac{3}{2} (U_z*I)^2 I=0.1: 10 % turbulence intensity
 \omega 4933.0  s^{-1} k^{0.5}/(C_\mu l_t) Specific dissipation
 \varepsilon 896.10908  m^2/s^3 k^{1.5}/l_t Dissipation
 \frac{\nu_t}{\nu} 27.28  [-] \frac{k}{\omega \nu} = C_\mu \frac{k^2}{\varepsilon \nu}

Fluent uses the following definitions. These settings yield basically equivalent results for the velocity profiles as those using the settings by Gyllenram and Nilsson, but the centerline turbulent kinetic energy is too high.

Variable Value Dimension Expression Description
 k 2.0184  m^2/s^2  \frac{3}{2} (U_z*I)^2 I=0.1: 10 % turbulence intensity
 \varepsilon 147.2457  m^2/s^3 C_\mu^{3/4}k^{3/2}/l_t Dissipation
 \frac{\nu_t}{\nu} 166.0  [-] \frac{k}{\omega \nu} = C_\mu \frac{k^2}{\varepsilon \nu}

The settings for Case0 prescribes the ratio between turbulence viscosity to viscosity as 14.5, yielding the following values for Case1. The results using this are quite similar to those by Gyllenram and Nilsson, and the default one for Case1, but the centerline turbulence kinetic energy is lower than the measurements.

Variable Value Dimension Expression Description
 k 2.0184  m^2/s^2  \frac{3}{2} (U_z*I)^2 I=0.1: 10 % turbulence intensity
 \varepsilon 1685.76768  m^2/s^3 C_\mu \frac{k^2}{14.5 \nu} Dissipation

2.6.2 Walls

2.6.2.1 Stationary
2.6.2.2 Rotating

2.6.3 Outlet

2.6.4 Implementations

The implementations are located at SourceForge. The descriptions below assume that you have checked-out the files in $WM_PROJECT_USER_DIR according to:

 
cd $WM_PROJECT_USER_DIR

For OpenFOAM-1.4.1:

 
svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder/OSIG/TurboMachinery/applications applications_SIGturbo
svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder/OSIG/TurboMachinery/src src_SIGturbo

For OpenFOAM-1.5:

 
svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_1.5/OSIG/TurboMachinery/applications applications_SIGturbo
svn checkout svn://svn.code.sf.net/p/openfoam-extend/svn/trunk/Breeder_1.5/OSIG/TurboMachinery/src src_SIGturbo
2.6.4.1 addSwirlAndRotation

Usage:

For OpenFOAM-1.4.1:

 
addSwirlAndRotation <root> <case> [-parallel]

For OpenFOAM-1.5:

 
addSwirlAndRotation [-parallel]

Compilation:

 
cd $WM_PROJECT_USER_DIR/applications_SIGturbo/utilities/preProcessing/addSwirlAndRotation/
wclean
wmake
rehash #if necessary

Description:

This utility adds solid body swirl/rotation at patches listed in the constant/swirlAndRotationProperties dictionary. This means that you first set the non-swirling/rotating component in the time directory U file, and that the tangential component is ADDED. If you run the utility twice the tangential component will be added twice etc. The utility can thus be used both on swirling inlets (only solid body swirl, but any axial component profile) and rotating walls. In the current implementation it is assumed that this solid body swirl should be added at the inlet (the inlet must still be in the list), so the swirl is added also to the internal nodes in order to have a reasonably good initial velocity field. Other variables than the velocity field are unaffected, and those values should be set in the time directory as usual. The utility reads and modifies the U file in the time directory specified by the startFrom/startTime entries in the controlDict.

In the swirlAndRotationProperties dictionary you also specify the swirl/rotation in terms of the omega[radians per second] vector and the center of rotation vector. The switches modifyBoundaries and modifyInterior can be modified to control if both the boundaries and the interior should be modified, or only one of them.

An example of the swirlAndRotationProperties dictionary can be found in Case1.

--Hani 07:00, 30 Jan 2008 (CET)

2.7 Turbulence models

2.8 Solver settings for fast computations

It is always of interest to increase the computational speed, and the stability of the simulations... But it is of also of interest that the different settings give accurate results.

2.9 Parallel efficiency

Comparisons using different hardware configurations.

Scripts for automatic scaling tests.

2.10 Discretization schemes

Studies of the influence of different discretization schemes

  • The first-order upwind scheme does not even preserve the solid body rotation between the honeycomb and the measurement section at -0.025m. --Hani 06:58, 30 Jan 2008 (CET)
  • The GammaV and Gamma schemes with factor 1.0 and 0.2 on U an k/epsilon respectively give good and equivalent results. --Hani 06:58, 30 Jan 2008 (CET)

2.11 Rotating frame of reference

Do you get the same results in a rotating frame of reference?

2.12 Multiple frames of reference

Even if it is not necessary for ths case, it is possible to verify the concept of Multiple Frames of Reference assuming that some parts of the domain is rotating while other aren't.

2.13 Sliding grid

See above

2.14 GGI interface

See above

2.15 Other

Please come with more ideas...

Back to Sig Turbomachinery