OpenFOAM v2412 Tutorial Cases Analysis (1)
2026-04-28
Most Frequently Used Solvers
OpenFOAM v2414 has 448 tutorial cases. 393 cases are used in this study. Other cases don’t have both folder system or constant and are deemed as “incomplete”.
There are 81 solvers used for the tutorial cases. Below listed the solvers that are mostly used.
index counts
------------------------- --------
adjointOptimisationFoam 89
interFoam 40
pimpleFoam 30
simpleFoam 22
reactingTwoPhaseEulerFoam 16
reactingParcelFoam 14
interIsoFoam 13
rhoPimpleFoam 10
reactingFoam 9
chtMultiRegionFoam 8
rhoCentralFoam 7
buoyantSimpleFoam 7
rhoSimpleFoam 6
pisoFoam 6
fireFoam 6
It is surprised to see adjointOptimisationFoam is the most used in the tutorial cases; in daily use, the most used solver are simpleFoam, pimpleFoam, rhoPimpleFoam and rhoSimpleFoam.
For CFD modelling, we list the often used solvers in the following table. They are listed in the 3rd, 4th, 8th, 11th and 14th positions.
solver time-dependent compressibility Ma Flow Regime
-------------- ---------------- ----------------- ----------- ------------------
simpleFoam steady-state incompressible sub-sonic laminar/turbulence
pimpleFoam transient incompressible sub-sonic laminar/turbulence
rohSimpleFoam steady-state compressible sub-sonic laminar/turbulence
rohPimpleFoam transient compressible sub-sonic laminar/turbulence
rohCentralFoam transient compressible super-sonic laminar/turbulence
We see other solvers. Most of them have some add-on features. For example, buoyancy, reaction, multi-region, and multi-phase etc.
controlDict Analysis
Analysis is made to file controlDict.
For transient analysis deltaT needs to be specified. This is crictial for stable computation. It is also important for computation accuracy and computation time. The time step is often variable and is determined by maxCo with 0.3, 0.5 or 1.0.
With solver rhoCentralFoam, it often has a very small maxCo (e.g. 0.2) or equivalently, a small maxDeltaT. The flow with this solver is usualy very high i.e. sonic or super-sonic flow.
timePrecision and writePrecision are mostly set to 6.
For steady-state flow solver, deltaT are always set to 1 as for the simplicit purpose.
Turbulence Properties
Tutorial cases using solver rhoCentralFoam doesn’t have any with laminar and turbulence model. They are all laminar flow.
For other cases, the most used turbulence model is RAS.
simulationType LES RAS laminar
application
pimpleFoam 0.185185 0.444444 0.370370
rhoCentralFoam 0.000000 0.000000 1.000000
rhoPimpleFoam 0.000000 0.800000 0.200000
rhoSimpleFoam 0.000000 0.833333 0.166667
simpleFoam 0.000000 0.950000 0.050000
The RAS model usage is shown in the following table.
RAS Model RNGkEpsilon SpalartAllmaras kEpsilon kOmegaSST kOmegaSSTLM kkLOmega realizableKE
application
pimpleFoam 0.083333 0.000000 0.666667 0.166667 0.000000 0.083333 0.000000
rhoPimpleFoam 0.000000 0.000000 0.875000 0.125000 0.000000 0.000000 0.000000
rhoSimpleFoam 0.000000 0.000000 0.600000 0.400000 0.000000 0.000000 0.000000
simpleFoam 0.000000 0.157895 0.526316 0.210526 0.052632 0.000000 0.052632
Transport Properties
for incompressible solver, file transportProperties are needed.
For compressible solver, instead of using file transportProperties, the file thermophysicalProperties is needed.
Thermophysical Properties
for incompressible solver, file thermophysicalProperties are not required.
For compressible solver, for transient flow, hePsiThermo is used, and for steady state flow, heRhoThermo is more often used.
thermoType-type hePsiThermo heRhoThermo
application
rhoCentralFoam 1.000000 0.000000
rhoPimpleFoam 0.800000 0.200000
rhoSimpleFoam 0.166667 0.833333
71% of rhoCentralFoam and 66% rhoSimpleFoam cases use constant transport properties. But 75% of rhoPimpleFoam uses Sutherland’s law for temperature correction.
thermoType-transport const sutherland
application
rhoCentralFoam 0.714286 0.285714
rhoPimpleFoam 0.250000 0.750000
rhoSimpleFoam 0.666667 0.333333
Solver rhoSimpleFoam uses Boussinesq but other two solvers mainly use perfect gas equation of state.
thermoType-equationOfState Boussinesq perfectGas
application
rhoCentralFoam 0.000000 1.000000
rhoPimpleFoam 0.000000 1.000000
rhoSimpleFoam 0.333333 0.666667
For equation of state, mostly hConst is widely used.
thermoType-thermo eConst hConst janaf
thermoType-equationOfState
Boussinesq 0.000000 1.000000 0.000000
perfectGas 0.058824 0.882353 0.058824
Governing Equations
For incompressible flow solver,
\[\frac{\partial U}{\partial t} + \nabla\cdot (UU)=-\nabla p + \nabla \cdot (\nu_{eff}\nabla U)\]For compressible flow solver,
\[\frac{\partial \rho U}{\partial t} + \nabla\cdot (\rho UU)=-\nabla p + \nabla \cdot (\nu_{eff}\nabla U)\]Numerical Schemes
Time Difference
pimpleFoam, rhoPimpleFoam and rhoCentralFoam are transient solver. Thus, ddtSchemes are mostly Euler. There is a quasi-steady-state method localEuler for solver rhoCentralFoam.
For simpleFoam and rhoSimpleFoam, more than 80% of cases use steadyState. There is still about 13%-16% cases use Euler method.
application pimpleFoam rhoCentralFoam rhoPimpleFoam rhoSimpleFoam simpleFoam
ddtSchemes-default
Euler 0.6 0.857143 0.8 0.166667 0.136364
backward 0.4 0.000000 0.1 0.000000 0.000000
localEuler 0.0 0.142857 0.1 0.000000 0.000000
steadyState 0.0 0.000000 0.0 0.833333 0.863636
Divergent Schemes
The divergent is, $ \nabla \cdot $, an operator being applied to a tensor. The result is a vector.
Divergent schemes can affect the accuracy, stability, numerical diffusion of a computation.
As can be seen, for most cases, there is no divergent default scheme. Most cases prefer to set a divergent scheme.
application pimpleFoam rhoCentralFoam rhoPimpleFoam rhoSimpleFoam simpleFoam
default
Gauss linear 0.1 0.0 0.0 0.0 0.0
none 0.9 1.0 1.0 1.0 1.0
For viscous-stress, $\nabla \cdot (\nu_{eff} (\nabla U + \nabla U ^T))$, most cases use Gauss linear schemes. Here $T(grad(U))=(\nabla U + \nabla U ^T)$.
application rhoPimpleFoam rhoSimpleFoam
div(((rho*nuEff)*dev2(T(grad(U)))))
Gauss linear 1.0 1.0
------------------
application pimpleFoam
div((nu*dev2(T(grad(U)))))
Gauss linear 1.0
------------------
application pimpleFoam simpleFoam
div((nuEff*dev2(T(grad(U)))))
Gauss linear 1.0 0.954545
fusedGauss linear 0.0 0.045455
for velocity divergent, also Gauss linear scheme is used.
application pimpleFoam rhoPimpleFoam rhoSimpleFoam
div(U)
Gauss linear 1.0 1.0 1.0
For K, it is mainly Gauss linear. But some variations are seen.
application rhoPimpleFoam rhoSimpleFoam
div(phi,K)
bounded Gauss limitedLinear 1.0 0.0 0.33333
bounded Gauss linearUpwind limited 0.0 0.33333
Gauss limitedLinear 1 0.1 0.333333
Gauss linear 0.6 0.000000
Gauss linearUpwind limited 0.3 0.000000
For velocity, the selection is very broad. This is the area that needs carefully studied.
application pimpleFoam rhoPimpleFoam rhoSimpleFoam simpleFoam
div(phi,U)
Gauss DEShybrid \n linear \n linearUpwind grad(... 0.068966 0.0 0.000000 0.000000
Gauss DEShybrid \n linear \n linearUpwind grad(... 0.034483 0.0 0.000000 0.000000
Gauss DEShybrid \n linear \n linearUpwind grad(... 0.034483 0.0 0.000000 0.000000
Gauss LUST grad(U) 0.034483 0.0 0.000000 0.000000
Gauss limitedLinearV 1 0.137931 0.3 0.166667 0.045455
Gauss linear 0.172414 0.0 0.000000 0.000000
Gauss linearUpwind grad(U) 0.413793 0.2 0.000000 0.000000
Gauss linearUpwind limited 0.000000 0.3 0.000000 0.000000
Gauss linearUpwindV grad(U) 0.068966 0.0 0.000000 0.000000
Gauss skewCorrected linear 0.034483 0.0 0.000000 0.000000
Gauss upwind 0.000000 0.2 0.000000 0.045455
bounded Gauss LUST grad(U) 0.000000 0.0 0.000000 0.045455
bounded Gauss limitedLinearV 1 0.000000 0.0 0.000000 0.090909
bounded Gauss linearUpwind grad 0.000000 0.0 0.000000 0.045455
bounded Gauss linearUpwind grad(U) 0.000000 0.0 0.000000 0.272727
bounded Gauss linearUpwind limited 0.000000 0.0 0.666667 0.045455
bounded Gauss linearUpwind unlimited 0.000000 0.0 0.000000 0.045455
bounded Gauss linearUpwindV grad(U) 0.000000 0.0 0.000000 0.136364
bounded Gauss localBlended linearUpwindV grad(U... 0.000000 0.0 0.000000 0.045455
bounded Gauss upwind 0.000000 0.0 0.166667 0.136364
bounded fusedGauss linearUpwind grad(U) 0.000000 0.0 0.000000 0.045455
For enery equation, rhoPimpleFoam and rhoSimpleFoam are opposite. In general, simpleFoam has limited value.
application rhoPimpleFoam rhoSimpleFoam
energy
Gauss linearUpwind limited 1.0 0.0
bounded Gauss limitedLinear 1.0 0.0 0.5
bounded Gauss linearUpwind limited 0.0 0.5
For turbulence, we can found that, again, simpleFoam has in most case used limited scheme.
application pimpleFoam rhoPimpleFoam rhoSimpleFoam simpleFoam
turbulence
Gauss limitedLinear 1 0.666667 0.2 0.0 0.058824
Gauss linearUpwind limited 0.000000 0.4 0.0 0.000000
Gauss upwind 0.333333 0.4 0.0 0.000000
bounded Gauss limitedLinear 1 0.000000 0.0 0.0 0.352941
bounded Gauss linearUpwind grad 0.000000 0.0 0.0 0.058824
bounded Gauss linearUpwind limited 0.000000 0.0 0.4 0.058824
bounded Gauss upwind 0.000000 0.0 0.6 0.411765
bounded fusedGauss limitedLinear 1 0.000000 0.0 0.0 0.058824