1 Mesh setup
The mesh was generated with ICEM-HEXA and exported in the Fluent mesh format. The mesh is generated in two parts: impeller and diffuser, which can be seen in Figure 1.
Figure 1: rotor mesh (in blue) and stator mesh (in red)
This 2D mesh has 93886 hexahedra cells.
To learn more about doing a 2D simulation, see HowTo: 2D simulations
2 Running the case
This impeller and the diffuser meshes are stitched in this simulation using stitchMesh.
Follow these steps to run the case from scratch:
First make sure that you have the following installed:
- A recent revision of OpenFOAM-1.5-dev
- libOpenFOAMTurbo.so (needed for the inlet boundary condition)
- libsimpleFunctionObjects.so (or comment out the trackDictionaryContent function from ECPGgi2D_orig/system/controlDict)
cd $FOAM_RUN/ercoftacCentrifugalPump/cases/MRFSimpleFoam/ECPStitchMesh2D ./Allrun >& log_Allrun&
3 Cleaning up the case
The Allclean script cleans up the case to its original state. To do so, follow these steps:
cd $FOAM_RUN/ercoftacCentrifugalPump/cases/MRFSimpleFoam/ECPStitchMesh2D ./Allclean
This deletes all the simulations and keep only the original files, so be sure that you do not want to save anything from the previous computation before cleaning up the case.
4 Post-processing the case
The post-processing is automatized, and can be executed by doing:
cd $FOAM_RUN/ercoftacCentrifugalPump/cases/MRFSimpleFoam/ECPStitchMesh2D/postProcessing ./Allrun >& log_Allrun&
A description of the Allrun file can be found in HowTo: Allrun postProcessing
Likewise, if needed, the post-processing can be cleaned up by doing
cd $FOAM_RUN/ercoftacCentrifugalPump/cases/MRFSimpleFoam/ECPStitchMesh2D/postProcessing ./Allclean
As before, keep in mind that using the Allclean script will delete all the data that have been calculated from the post-processing
5 Operating conditions and simulations parameters
The parameters that are used to define the MRFSimpleFoam/ECPStitchMesh2D case are described in the following table:
Case MRFSimpleFoam/ECPStitchMesh2D Version 1.5-dev - svn revision 1221, 1238 ( --Olivierp 16:52, 13 May 2009 (UTC) ) Date April 2009 Inlet profile1DfixedValue, with rotor2d_abs.csv
(viscosity ratio )
(I=0.05: 5% turbulence intensity)
Outlet fixedMeanValue, p = 0 Solver MRFSimpleFoam Fluid properties Turbulence model k-epsilon Discretization div(phi,U) Gauss linearUpwind Gauss;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
Mesh characteristics Output from checkYPlus for 5000:
Patch 1 named BLADE_ROT y+ : min: 23.706815 max: 105.5084 average: 37.068809
Patch 6 named BLADE_STAT y+ : min: 3.1117116 max: 141.6809 average: 35.340038
Final residuals 6.0686577e-07 (Ux)
In the following sections some typical results are presented. Note that the case is of type 'frozen rotor', which means that the equations are solved in multiple frames of reference, that the impeller blades and diffuser blades are fixed with respect or each other, and that the results are steady.
6.1 General results
Figure 3: Static pressure of the MRFSimpleFoam/ECPStitchMesh2D test case
Figure 4: Velocity magnitude of the MRFSimpleFoam/ECPStitchMesh2D test case
Figure 5: Residuals of the MRFSimpleFoam/ECPStitchMesh2D test case
- The convergence varies substantially depending on the solver used for the pressure in system/fvSolution. By default for this tutorial, GAMG solver for the pressure matrix is used, but some other solvers can be used, such as PCG or SmoothSolver. However, even if the level of convergence is solver dependent, the results are similar when using different solvers.
- Some disturbances can be seen at the interface between rotating and non-rotating zones, especially for the pressure (figure 4). The reason for that is yet not known, but similar effects have been seen in results from a commercial CFD code.
6.2 Comparison with the experimental data
6.2.1 Setup of the comparison
The papers presented by Ubaldi et al.    emphasize the distribution of the radial and circumferential relative velocity in two blade passages, as well as the static pressure coefficient, at a radius equal to R/R2=1.02, R2 being the outlet diameter of the impeller.
The OpenFOAM utility sample is used to extract the data from the computational results. At the moment it is not possible to use cylindrical coordinates in sample, so the cartesian coordinates were calculated in Octave using the following lines:
R=1.02 * R2 teta=0:1:360 // teta varies from 0 to 360 with a step equal to 1. That will give 360 different points. x=r*cos(teta*pi/180) // transforming into cartesian coordinates y=r*sin(teta*pi/180) z=0
Once the list of points calculated thanks to Octave, it was integrated into system/sampleDict. The two blade passage that is of interest to do the comparison is given in $case/postProcessing/compareAll.gplt
Figure 6: comparison with the experimental data for the relative radial velocity
Figure 7: comparison with the experimental data for the relative tangential velocity
- The simulated results show the same behavior as the experimental datas. However, those simulation have been done using a frozen rotor solver (MRFSimpleFoam). It is not the best option to catch all the details of the flow. Using MRFSimpleFoam at different positions of the rotor, and averaging over all those position would give a better view of the flow behavior.
- There is a phase shift between the experimental results and the simulated results. This can perhaps be explained by the fact that the frozen rotor formulation actually re-directs the wake and causes the effect of the interaction between the wake and the diffuser blades to appear at a slightly different angle.
Back to Sig Turbomachinery