Skip to content
SHD Sim
Menu
Documentation menu

Draft. This manual is new and still growing. If something here does not match what you see in the software, the software is right — tell us and we will fix the page.

Turbulence and viscosity models

Every turbulence model the application offers, the OpenFOAM name it writes, and the field set it derives. The viscosity models are at the bottom of the page.

Both are on Models. Neither is derived from the analysis type, so both survive a change of analysis type unless something in the case makes them impossible.


The sixteen

Sixteen entries, of which one — Laminar — is the absence of a model rather than a model. Fifteen models plus "off".

Shown as Writes simulationType Fields derived
Laminar laminar laminar
k-epsilon kEpsilon RAS k epsilon nut
realizable k-epsilon realizableKE RAS k epsilon nut
RNG k-epsilon RNGkEpsilon RAS k epsilon nut
k-omega kOmega RAS k omega nut
k-omega SST kOmegaSST RAS k omega nut
k-omega SST LM kOmegaSSTLM RAS k omega nut
GEKO GEKO RAS k omega nut
EBRSM EBRSM RAS R k epsilon f nut
Spalart-Allmaras SpalartAllmaras RAS nuTilda nut
LRR (RSM) LRR RAS R epsilon nut
SSG (RSM) SSG RAS R epsilon nut
LES WALE WALE LES nut
LES Smagorinsky Smagorinsky LES nut
SA-DDES SpalartAllmarasDDES LES nut
SST-IDDES kOmegaSSTIDDES LES nut

k-omega SST is the default on a new case, and is what an unrecognised model name falls back to.

The two DES models are written under simulationType LES, which is where OpenFOAM keeps the hybrid RANS-LES library. They are not RAS entries.

What each one is for

Laminar — no turbulence model at all. Valid only at low Reynolds number. Wrong wherever the flow is actually turbulent: it does not under-predict mixing, it omits it.

k-epsilon — the standard two-equation model. Robust and cheap. Wrong where the flow separates or runs into an adverse pressure gradient, which is most of external aerodynamics.

realizable k-epsilon — the same family with a constraint that keeps the normal stresses physical. Better on round jets and on separation than standard k-epsilon.

RNG k-epsilon — k-epsilon re-derived by renormalisation group; better for swirl and low-Reynolds strain.

k-omega — Wilcox's two-equation model. Resolves the near wall well and is sensitive to the free-stream omega you specify, which is the usual reason it behaves differently from run to run on an external case.

k-omega SST — k-omega near the wall blended to k-epsilon away from it, which removes the free-stream sensitivity. The sensible default for external aerodynamics, adverse pressure gradients and separation. Start here.

k-omega SST LM — the Langtry-Menter transition model. It predicts where the boundary layer trips rather than assuming it is turbulent everywhere. It needs a y+ of about 1 and a good inlet turbulence specification; given wall functions and a guessed inlet intensity it is an expensive way to get the fully-turbulent answer.

GEKO — a generalised k-omega whose coefficients are tunable to span the behaviour of several models. ESI v2606 only. The application writes the model name and no coefficient block, so it runs at the solver's own defaults.

Spalart-Allmaras — one transport equation for a modified viscosity. Cheap and robust for attached external aerodynamics. Wrong for free shear flows, jets and anything strongly separated, which is what the extra equation in a two-equation model is buying you.

LRR (RSM), SSG (RSM), EBRSM — Reynolds-stress models, which transport the stress tensor itself instead of assuming an eddy viscosity. The reason to want one is anisotropy: swirl, secondary flow in a duct corner, strong streamline curvature. See the note below on what they cost.

LES WALE, LES Smagorinsky — scale-resolving. They resolve the large eddies and model only the sub-grid ones, so they need a transient run and a fine mesh in the region of interest. Wrong as a substitute for a RANS model on a RANS mesh: a coarse LES is not a conservative answer, it is a different and worse one. WALE behaves correctly at a wall without a damping function; Smagorinsky does not.

SA-DDES, SST-IDDES — hybrid RANS-LES. RANS in the attached boundary layer, LES in the separated wake. The practical choice for a high-Reynolds unsteady external flow, and pointless on a steady case: they are transient models and there is nothing for them to resolve if time is not being integrated.

What a Reynolds-stress model costs

LRR, SSG and EBRSM are the only entries on the list that do not write a k-and-a-scale field set, because they are the only ones not built on an eddy viscosity. Instead of one scalar and an assumption that the stresses line up with the mean strain, they carry R — the stress tensor, six components, one transport equation each — and a dissipation equation beside it. EBRSM adds f, an elliptic blending factor that lets it integrate to the wall instead of bridging it with a wall function, and writes a k it derives from R rather than solving.

That is seven turbulence equations, or eight for EBRSM, where the name "two-equation model" tells you what the alternative costs — and the stress equations are the stiffest in the case: their production term is quadratic in the thing being solved for. Expect an iteration to take roughly twice as long and to need more of them. The application relaxes R harder than it relaxes k and epsilon for that reason, and adds R to the convergence criteria — on one of these models the stresses are the answer, so a run that settled on pressure and velocity alone has not finished.

EBRSM is a low-Reynolds model. It expects a mesh resolved to about y+ 1; on the wall-function mesh the Boundary layers pane produces by default it will run, but the near-wall behaviour it exists to capture is not being resolved.


What gets written

constant/turbulenceProperties. One of three shapes.

Laminar

simulationType  laminar;

RAS

simulationType  RAS;

RAS
{
    model           <name>;
    turbulence      on;
    printCoeffs     on;
    kMin            1e-12;
    epsilonMin      1e-12;
    omegaMin        1e-12;
}

The three floors are not OpenFOAM's defaults. Every two-equation model forms the eddy viscosity as k/omega or k²/epsilon, and OpenFOAM's own floor is close enough to zero that the division can trap as a floating-point exception and kill the solver with no message at all.

LES

simulationType  LES;

LES
{
    model           <name>;
    turbulence      on;
    printCoeffs     on;
    delta           cubeRootVol;
    cubeRootVolCoeffs
    {
        deltaCoeff      1;
    }
}

The LES delta is fixed at cubeRootVol and is not exposed.

A multi-region (conjugate) case writes one constant/<region>/turbulenceProperties per fluid region; solid regions get none. A Euler-Euler case writes constant/turbulenceProperties.<phase> per phase, each laminar.


When the application overrides your choice

Four cases, all of them silent-until-logged rather than silent.

Trigger What happens
The pinned solver's catalogue entry has laminar: true The model is set to Laminar when the solver is chosen, and the Problems tab raises an error if it is changed back
Analysis type is Sediment / drift flux and the model name contains omega The model is changed to k-epsilon. driftFluxFoam carries a mixture turbulence library with a shorter list of models, and k-omega SST is not in it
Physics family is Lagrangian and coupling is one-way turbulenceProperties is written laminar whatever the pane says. An uncoupled parcel run does not solve the carrier flow, so there is no nut for a model to write into
The analysis type is changed The field set is re-derived. Conditions on fields that no longer exist are discarded

Wall treatment

One control, three settings, applied as a coherent set across nut, k, omega, epsilon and alphat rather than per field.

Setting
Wall functions The default
Resolved (low-Re) Raises a Problems entry if the target y+ is above 5
Automatic blending

The patch types each one produces are in Boundary condition types. What y+ is and why the choice matters is in y+ and wall treatment.


Viscosity models

Five, on the Models pane, in the Physics section. Offered only for the physics families that read constant/transportProperties: incompressible, VoF, marine, cavitation, miscible, atmospheric, scalar, Lagrangian and SRF.

The chosen name is written verbatim as transportModel, followed by a <name>Coeffs block.

Model Coefficients written Fields on the pane
Newtonian none
CrossPowerLaw nu0 nuInf m n Viscosity at zero shear, viscosity at infinite shear, time constant, exponent
BirdCarreau nu0 nuInf k n Viscosity at zero shear, viscosity at infinite shear, time constant, power-law index
powerLaw nuMax nuMin k n Viscosity at zero shear, viscosity at infinite shear, consistency index, power-law index
HerschelBulkley nu0 tau0 k n Viscosity at zero shear, viscosity at infinite shear, consistency index, power-law index, yield stress

nu is written after the coefficient block in every case, so a Newtonian viscosity is always present even when a shear-dependent model is selected.

Newtonian — constant viscosity. Right for air, water and most gases. Wrong for blood, slurries, polymer solutions and drilling muds, where a constant viscosity is not an approximation but a different fluid.

CrossPowerLaw — shear thinning between a zero-shear and an infinite-shear plateau. Polymer solutions.

BirdCarreau — the same shape with a smoother knee. The usual choice for blood.

powerLaw — a straight line on log-log axes, clipped at both ends by nuMin and nuMax. Wrong outside the shear-rate range it was fitted over, where the unclipped form goes to zero or to infinity.

HerschelBulkley — a yield stress below which nothing flows at all. Drilling mud, toothpaste.


Also on the Models pane

Not turbulence, but set here and re-deriving the same field set.

Control Options
Analysis type The ones in Analysis types and solvers
Time dependency Steady-state, Transient — Transient only, where the analysis type has no steady form
Algorithm SIMPLE, SIMPLEC when steady; PIMPLE, PISO when transient
Energy equation On/off
Gravity / buoyancy On/off