MaterialTech Labs
Blog · CFD & Simulation

Choosing the right turbulence model in OpenFOAM

Every CFD simulation starts with a question: which turbulence model do I use? Here is a data-driven comparison against experimental results.

Jul 2026 · 9 min read · CFD Applied

The turbulence closure problem

Navier-Stokes for engineering means RANS. The Reynolds-averaging process introduces the turbulent stress tensor, which adds six unknowns to the system. Turbulence models exist precisely to close this system. The family tree branches into three main approaches: RANS (Reynolds-Averaged Navier-Stokes), LES (Large Eddy Simulation), and DNS (Direct Numerical Simulation). For most industrial applications, RANS remains the practical choice — but which RANS model?

RANS models are classified by the number of additional transport equations they solve. Zero-equation models (mixing length) are fast but lack generality. One-equation models add a transport equation for a turbulent quantity. Two-equation models solve for two quantities (typically k and epsilon or k and omega), providing a more complete description of turbulence at the cost of extra PDEs.

Spalart-Allmaras: the aerospace workhorse

The Spalart-Allmaras model is a one-equation model that solves a transport equation for the modified turbulent viscosity, nuTilde. It was designed specifically for wall-bounded aerodynamic flows — airfoils, wings, fuselages — and has become the standard in aerospace CFD since its publication in 1992.

The single transport equation makes SA computationally cheap: only one extra PDE beyond the Navier-Stokes equations. The model performs excellently on attached boundary layers with mild or no adverse pressure gradients. It handles mild separation acceptably, is numerically robust, and converges well even on coarse meshes.

However, SA has real weaknesses. It struggles with massively separated flows, wakes behind bluff bodies, and jet flows. The model was never designed for these regimes, and its single-equation formulation lacks the physics to capture the energy transfer across turbulent scales in complex separation regions. If your flow separates significantly, SA will under-predict the recirculation zone length and miss the separation point entirely.

k-omega SST: the generalist

The k-omega SST (Shear Stress Transport) model, developed by Menter in 1994, is a two-equation hybrid. It blends the k-omega formulation (accurate near walls, no wall-damping functions needed) with the k-epsilon formulation (insensitive to freestream turbulence levels) using a blending function F1. Near the wall, the model behaves like k-omega; in the freestream, it transitions to k-epsilon behavior.

A key innovation of SST is the eddy-viscosity limiter that prevents over-production of turbulence in regions of adverse pressure gradient — a known flaw of standard two-equation models. This single modification dramatically improves separation prediction.

The strengths of k-omega SST are clear: it handles separation, transition, and shear layers far better than SA. It requires no wall-damping functions (unlike k-epsilon) and is relatively insensitive to freestream turbulence levels. The trade-off is cost: two PDEs means roughly 40% more CPU time per iteration. Additionally, the model is sensitive to inlet boundary conditions for omega — poorly chosen values can contaminate the entire solution.

Head-to-head: NACA 0012 validation

We benchmarked both models in OpenFOAM using a 2D structured mesh with 80,000 cells and y+ ≈ 1 at the wall, running steady-state simulations with simpleFoam. The test case was a NACA 0012 airfoil at Re = 3 × 106, sweeping angles of attack from 0 to 15 degrees. Results were compared against NASA wind tunnel data from Abbott & von Doenhoff.

Spalart-Allmaras captures the linear range of the Cl-alpha curve very well for AoA below 8 degrees. The lift coefficient tracks the experimental data within 3%. However, as the angle increases and trailing-edge separation grows, SA diverges: it underestimates stall, predicting separation onset 2-3 degrees later than the experiment, and overpredicts Cl at maximum AoA by roughly 15%.

K-omega SST captures stall onset accurately, predicting the maximum Cl within 5% of experimental values. At post-stall angles, SST slightly overpredicts Cl but remains far closer to the data than SA. The drag coefficient tells a similar story: SA under-predicts Cd by roughly 15% across the entire angle range, while SST stays within 8% up to stall.

The physical reason for SA's underperformance at high AoA is its inability to capture the growth of turbulent kinetic energy in the separation bubble that forms near the trailing edge. SST's second equation for omega gives it the necessary physics to track this energy transfer.

Benchmark 2: backward-facing step

The backward-facing step is a classic separated-flow benchmark. We used the configuration from Driver & Seegmiller: step height Reh = 36,000 with an expansion ratio of 1.5. The flow separates at the step corner and reattaches downstream, forming a large recirculation zone whose length is the primary validation metric.

Spalart-Allmaras under-predicts the reattachment length by approximately 30%, substantially missing the size of the recirculation zone. The model fails to capture the correct mixing rate in the shear layer, resulting in a shorter separation bubble and higher near-wall velocities in the recovery region.

K-omega SST captures the reattachment point within 12% of the experimental value. The turbulence kinetic energy profiles in the shear layer match the experimental data well, and the recovery of the velocity profile downstream of reattachment is correctly predicted. This case is widely considered the killer application for SST: any flow with significant separation demands a model with the physics to resolve it.

Decision framework

Based on validation data and industrial experience, the decision framework is clear:

Use Spalart-Allmaras when:

  • The flow is predominantly attached (aerodynamic cruise conditions, clean airfoils at design AoA)
  • You are doing rapid design iteration and need fast turnaround
  • You are learning CFD and want a numerically forgiving model
  • Your geometry is a streamlined body without sharp corners or bluff features

Use k-omega SST when:

  • Any separation is expected or suspected
  • You need accurate heat transfer predictions (Nu distribution on turbine blades)
  • The flow involves freestream turbulence interacting with a boundary layer
  • You are dealing with external aerodynamics on complex geometry

Recommendations and common mistakes

Even with the right model, poor setup can produce wrong results. Here are the critical checks:

  • Always check y+. For Spalart-Allmaras, y+ must be approximately 1 for integration to the wall, or between 30 and 300 if using wall functions. For k-omega SST, y+ must be below 1 for accurate separation prediction — this is non-negotiable if separation is the quantity of interest.
  • SA inlet condition: set nuTilde = 3·nu to 5·nu (turbulent viscosity ratio of 3 to 5). This corresponds to a low freestream turbulence level typical of wind tunnel conditions.
  • SST inlet condition: specify k and omega explicitly, or use turbulence intensity and turbulent length scale. A common starting point: I = 1%, length scale = 0.1 × characteristic length.
  • Never use SA on a diffuser with separation. It simply lacks the physics. The results will look plausible but be quantitatively wrong.
  • Never use SST on a clean airfoil at 2 degrees AoA and wonder why it is slower than SA. SST is more expensive by design. For fully attached flows, SA gives the same answer faster.
  • Mesh convergence matters more than the model. A grid-converged SA solution is more trustworthy than an under-resolved SST solution. Refine the mesh before blaming the model.

The best approach is often to run both models on a coarse mesh first, compare the results, and then commit computational resources to the model that captures the relevant physics on a refined mesh. The extra hour spent benchmarking pays back in confidence in the final results.