OpenFOAM Turbulence Model

Category: Open-Source CAE | Revised 2026-10-02
CAE visualization for openfoam turbulence theory - technical simulation diagram
OpenFOAM Turbulent Flow Models

Theory: what a turbulence setup needs

Overview

🙋

Turbulence models in OpenFOAM add many files. What do I actually need to decide?

🎓

Three things: the model, inlet turbulence, and wall treatment. Choose the model in constant/momentumTransport — for RANS, usually kOmegaSST or a kEpsilon variant. The model fixes which quantities are solved (k and ω, or k and ε), and the 0 folder needs initial and boundary files for each. Inlet turbulence, without measurements, is computed from intensity and length scale; set carelessly, eddy viscosity near the inlet can be off by an order of magnitude, shifting jet spreading and separation. At walls, choose wall functions (such as nutkWallFunction) or wall resolution to suit first-cell y+. nut is computed by the model, so its internal value can be zero, but its wall boundary conditions must be specified.

Inlet turbulence quantities

$$ k = \tfrac32 (U I)^2,\qquad \varepsilon = C_\mu^{3/4}\,\frac{k^{3/2}}{l},\qquad \omega = \frac{k^{1/2}}{C_\mu^{1/4}\, l},\qquad \nu_t = C_\mu \frac{k^2}{\varepsilon},\qquad l \approx 0.07\,D_h $$

U is velocity, I turbulence intensity, l turbulence length scale, D_h hydraulic diameter, C_μ = 0.09 and ν_t eddy viscosity.

Coffee Break Trivia

SST: two models stitched together

The k-ω SST model, now the most widely used, was published in 1994 by Florian Menter at NASA. It blends Wilcox's k-ω model, strong near walls, with the k-ε model, insensitive to freestream inlet values, switching smoothly with wall distance, and adds a limiter on shear stress under adverse pressure gradients (Shear Stress Transport). A model built to improve separation prediction on aircraft wings has become industry's standard choice.

Worked examples

The table uses k-epsilon inlet scales with Cμ = 0.09. SST eddy viscosity includes a stress limiter, so these values are not SST solution results. l = 0.07D_h is a provisional assumption without measurements; using D_h is not universally wrong. Dictionary names vary by distribution and release.

Example: air inlet at 10 m/s with 0.1 m hydraulic diameter

Conditionk [m²/s²]ε [m²/s³]ω [1/s]Viscosity ratio ν_t/ν
I = 5%, l = 0.07D_h0.3755.39160157
I = 5%, l = D_h (comparison assumption)0.3750.37711.22,236
I = 1% (low turbulence)0.0150.04331.931
I = 10% (high turbulence)1.5043.1319313

Using the hydraulic diameter itself as the length scale keeps k but cuts ε and ω about fourteenfold, inflating eddy viscosity 14 times. Typical intensities: under 1% for well-conditioned flow such as a wind tunnel, about 5% for developed duct flow, and 10% or more downstream of fans or valves.

🙋

Changing inlet turbulence barely affects downstream results. Can I ignore it?

🎓

It depends. Where turbulence is generated by the walls, as deep inside a duct, inlet values fade within a few tens of diameters. Near the inlet, in jets and mixing layers, in reattaching separated flow and in external flow around bodies, inlet turbulence strongly affects results. In external flow especially, freestream turbulence decays between inlet and body, so I = 5% at the inlet may be much smaller at the body; check the k distribution there. k-ω models are known to be sensitive to freestream ω, which SST was designed to mitigate, but inlet values should still be set on a sound basis.

Practical workflow

  1. Choose the model by flow type (wall-bounded, separating, jet); kOmegaSST when unsure.
  2. Set inlet intensity and length scale; compute k and ω (ε) or use auto-computing boundary conditions.
  3. Estimate wall y+, build the mesh and choose wall functions or wall resolution.
  4. After solving, check y+ and viscosity-ratio distributions for unrealistic values.
  5. Compare with experiments or another model to gauge model dependence.
Coffee Break Trivia

“Make a habit of checking the viscosity ratio”

Displaying nut divided by molecular viscosity — the eddy viscosity ratio — often exposes setup errors. A ratio in the thousands just downstream of the inlet points to inlet conditions; abnormally high values around a body to freestream values; high values near walls to wall treatment. Errors hard to spot in velocity or pressure plots often jump out in a viscosity-ratio plot.

Common mistakes

Mistakes and fixes

MistakeEffectFix
Unjustified inlet length scaleChanges epsilon, omega and eddy viscosityCheck measurements, flow conditions and sensitivity
Arbitrary k and ωUnrealistic flow near inletCompute from intensity
y+ and wall function mismatchFriction and heat transfer errorsCheck y+
Missing wall nut conditionWall treatment inactiveSpecify nutkWallFunction etc.
Ignoring freestream decayToo little turbulence at the bodyCheck the k distribution
🙋

I'd like to learn related topics.

Frequently asked questions

Where are turbulence models set in OpenFOAM?

In constant/momentumTransport (turbulenceProperties in older versions): set simulationType to RAS, LES etc. and model to kOmegaSST, kEpsilon, realizableKE and so on. Depending on the model, the 0 folder needs k, epsilon or omega, and nut files with initial and boundary conditions, and walls get wall functions such as kqRWallFunction and nutkWallFunction.

How do I set inlet k and ω?

Compute them from intensity I and length scale l: k = 1.5(UI)², ε = Cμ^0.75 k^1.5/l, ω = k^0.5/(Cμ^0.25 l), with l about 0.07 times the hydraulic diameter for ducts. At 10 m/s, I = 5% and 0.1 m hydraulic diameter: k = 0.375 m²/s², ε = 5.39 m²/s³, ω = 160 1/s. OpenFOAM also offers boundary conditions that compute these automatically, such as turbulentIntensityKineticEnergyInlet and turbulentMixingLengthFrequencyInlet.

Which turbulence model should I choose?

kOmegaSST is the usual starting point: it behaves like k-ω near walls and k-ε away from them and copes relatively well with separation. kEpsilon or realizableKE are used for quick estimates of simple duct or external flows. Once chosen, matching wall y+ to the model's wall treatment is just as important.

References and scope of verification

Numbers are educational reference calculations under the stated assumptions. Sources document theory and setup, not proof that these numerical values were reproduced in each package. Engineering decisions require validation for the actual conditions.

Related Simulators

Experience the theory firsthand with the interactive simulator for this field

All Simulators

Related fields

Structural AnalysisFluid Analysis (CFD)Thermal Analysis
Rate this article
Thank you for your feedback!
Helpful
More details
Report error
Helpful
0
More details
0
Report error
0