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 case is computed using the GGI interface between the impeller and the diffuser.
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)
- libsampling.so (or comment out the ggiCheck function from ECPGgi2D_orig/system/controlDict)
cd $FOAM_RUN/ercoftacCentrifugalPump/cases/MRFSimpleFoam/ECPGgi2D ./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/ECPGgi2D ./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/ECPGgi2D/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/ECPGgi2D/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/ECPGgi2D case are described in the following table:
Case MRFSimpleFoam/ECPGgi2D Version 1.5-dev - svn revision 1221, 1238 ( --Olivierp 16:52, 13 May 2009 (UTC) ) Date April 2009 Inlet profile1DfixedValue, with rotor2d_abs.csv
Vaxial = 0
Vcirc = 0
Vradial = U0
(viscosity ratio )
(I=0.05: 5% turbulence intensity)
Outlet fixedMeanValue, p = 0 GGI_INT GGI interface GGI_EXT GGI interface Solver MRFSimpleFoam Fluid properties ν = 10 − 5m2.s − 1 Turbulence model k-epsilon
Cμ = 0.09 C1 = 1.44 C2 = 1.92 alphaEps = 0.76923
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 2: Static pressure of the MRFSimpleFoam/ECPGgi2D test case
Figure 3: Velocity magnitude of the MRFSimpleFoam/ECPGgi2D test case
Figure 4: Residuals of the MRFSimpleFoam/ECPGgi2D 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 passages that are of interest to do the comparison is given in $case/postProcessing/compareAll.gplt
6.2.2 Results at the impeller outlet
Figure 5: Comparison with the experimental data for the relative radial velocity (Experimental results taken from Ubaldi 1998 )
Figure 6: Comparison with the experimental data for the relative tangential velocity (Experimental results taken from Ubaldi 1998 )
- The calculated results show globally the same behavior as the experimental datas. However, those simulation have been done using a steady-state solver with a frozen rotor interface between the domains (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 positions could 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