v2026.11.16174
Reference / Input deck / solver / numerical scheme

numerical scheme

Default spatial numerical scheme for all meshes.

order Spatial Order
default second

Spatial order of accuracy

Options
ValueWhat it doesWhen to use it
first

First-order upwind: face values are the upwind cell values, with no reconstruction.

second default

Second order. The compressible solver reconstructs every variable to the face with the limited scheme set by reconstruction; the incompressible solver uses linear-upwind interpolation for momentum.

The default.

euler_second

The compressible solver reconstructs the mean-flow variables to second order and keeps the turbulence variables first order. The incompressible solver blends 75% linear and 25% linear-upwind interpolation for momentum.

central
incompressible only

Incompressible solver only. Momentum is interpolated by central differencing blended with linear-upwind, in the proportion set by central_blend.

Demonstration: what reference/solver/numerical-scheme#order does From the shocktube case
Density along a shock tube at first and second order, against the analytic solution

Both runs use the Roe scheme and explicit three-stage Runge–Kutta on the same mesh; only the spatial order changes.

setting reference/solver/numerical-scheme#ordervalues first, secondcase shocktube
Guidance: Choosing a spatial scheme →
limiter Slope Limiter
default van albada

Slope limiter for higher-order schemes

Options
ValueWhat it doesWhen to use it
van albada default

Default. One-dimensional: ψ=max⁡(0,2ab+ε2a2+b2+ε2)\psi = \max\left(0, \dfrac{2ab + \varepsilon^2}{a^2 + b^2 + \varepsilon^2}\right). Smooth, symmetric, bounded in [0,1][0, 1].

The recommended general purpose choice.

van leer

One-dimensional: ψ=max⁡(0,4ab+ε2(a+b)2+ε2)\psi = \max\left(0, \dfrac{4ab + \varepsilon^2}{(a + b)^2 + \varepsilon^2}\right). Slightly more compressive than van Albada.

symmetric ratio

One-dimensional: ψ=max⁡(0,min⁡(1,4min⁡(σa,σb)+ε∣a+b∣+ε))\psi = \max\left(0, \min\left(1, \dfrac{4\min\left(\sigma a, \sigma b\right) + \varepsilon}{\left|a + b\right| + \varepsilon}\right)\right) with σ=sign(a+b)\sigma = \mathrm{sign}(a + b). The least dissipative of the three.

none

ψ=1\psi = 1. Unlimited reconstruction: second order everywhere, but not monotonicity preserving.

Appropriate only for smooth flows with no shocks or strong gradients.

barth jespersen

Cell-based: P(y)=min⁡(1,y)P(y) = \min(1, y). Barth & Jespersen (1989) as published. Bound preserving, but only C0C^0: the kink at y=1y = 1 makes the limiter value flicker between cycles and can stall the residual. It has no smoothness deactivation, so it limits wherever the bound binds.

michalak gooch

Cell-based: P(y)=y−427y3P(y) = y - \tfrac{4}{27}y^3 for y<3/2y < 3/2, else 1. Michalak & Ollivier-Gooch. C1C^1, and P(y)≤min⁡(1,y)P(y) \leq \min(1,y), so never less monotonicity preserving than Barth-Jespersen. Deactivates in smooth flow via a grid-scaled threshold, so formal order survives refinement.

The recommended choice.

venkatakrishnan

Cell-based: P(y)=min⁡(1,(y2+2y)/(y2+y+2))P(y) = \min\left(1, (y^2+2y)/(y^2+y+2)\right). Smooth, but exceeds 1 for y>2y > 2, so it needs the clip, which reintroduces a C0C^0 kink at y=2y = 2.

Provided as a familiar cross-check.

Demonstration: what reference/solver/numerical-scheme#limiter does From the shocktube case
Density across the contact and the shock of a shock tube for five limiters, against the analytic solution

Every run is second-order Roe with implicit dual time stepping on the same mesh; only the limiter changes.

setting reference/solver/numerical-scheme#limitervalues van albada, van leer, symmetric ratio, barth jespersen, michalak goochcase shocktube
Guidance: Choosing a limiter →
limiter coefficientadvanced
float·default 5·>= 0.0

K in the grid-scaled smoothness threshold eps^2 = (K h / reference_length)^3 used by the 'michalak gooch' and 'venkatakrishnan' cell-based limiters to deactivate limiting in smooth flow. Larger values treat more of the flow as smooth, so limit less. Ignored by the other limiters.

first order cycles
int·default 0·>= 0

Number of first-order cycles before switching to higher order

freeze limiter cycleadvanced
int·default -1

Cycle at which to freeze the limiter (-1 = never freeze)

Guidance: Troubleshooting →
gradient Gradient Methodadvanced
default green-gauss

Gradient calculation method (green-gauss or least-squares)

Options
ValueWhat it doesWhen to use it
green-gauss default

Green-Gauss gradients from face values interpolated by inverse distance, or by a plain average when linear_gradients is set.

The default.

least-squares

A least-squares fit to the differences between each cell and its face neighbours, weighted by face area.

Used in3DBump
reconstruction Reconstruction Methodadvanced
default muscl

Reconstruction method for MUSCL-type schemes

Options
ValueWhat it doesWhen to use it
muscl default

The MUSCL κ\kappa-scheme with κ=1/3\kappa = 1/3, blending the limited cell-gradient extrapolation with the central difference across the face.

The default.

umuscl

The unstructured MUSCL of Burg, uf=uL+(1−κ) r⋅∇uL+κ2(uR−uL)u_f = u_L + (1-\kappa)\,\mathbf{r}\cdot\nabla u_L + \tfrac{\kappa}{2}(u_R - u_L) with κ=1/3\kappa = 1/3, scaled by the limiter.

lpumuscl

Accepted, but the solver currently treats it as muscl.

Used inshocktube
permit backward difference during reconstruction Permit Backward Differenceadvanced
bool·default False

Allow backward difference stencils during MUSCL reconstruction

inviscid flux scheme
default roe

Inviscid flux calculation scheme

Options
ValueWhat it doesWhen to use it
roe default

Roe's approximate Riemann solver. entropy_fix floors each wave speed at that fraction of the largest. Read by the compressible solver only.

The default.

hllc

The HLLC approximate Riemann solver, which restores the contact wave missing from HLL.

roe low-diss

The Roe flux with its upwind dissipation scaled by a factor between roe_dissipation_sensor_minimum and 1, set per face by roe_low_dissipation_sensor.

Scale-resolving simulations, where full upwind dissipation would damp the resolved turbulence. With the sensor NONE it is the same as roe.

hllc low-diss

The HLLC flux with its dissipation scaled in the same way as roe low-diss.

rusanov

The Rusanov (local Lax-Friedrichs) flux, which scales the dissipation by the largest local wave speed.

The most dissipative of the schemes.

Demonstration: what reference/solver/numerical-scheme#inviscid-flux-scheme does From the shocktube case
Density along a shock tube for the Roe and Rusanov flux schemes, against the analytic solution

Both runs are second order with the van Albada limiter and explicit three-stage Runge–Kutta on the same mesh; only the flux scheme changes.

setting reference/solver/numerical-scheme#inviscid-flux-schemevalues roe, rusanovcase shocktube
Used in3DBump
Guidance: Choosing a spatial scheme →
linear gradientsadvancedcompressible only
bool·default False

Use an unweighted (linear) Green-Gauss gradient instead of the default inverse-distance-weighted one. Ignored when 'gradient' is 'least-squares' — the least-squares branch never reads the flag.

entropy fixadvancedcompressible only
float·default 0·0 to 0.2

Entropy fix coefficient for Roe scheme (limits maximum dissipation)

Used inshocktube
roe low dissipation sensoradvancedcompressible only
default NONE

Sensor type for Roe low-dissipation scheme

Options
ValueWhat it doesWhen to use it
FD

Scales the dissipation by 1−fd1 - f_d, where fdf_d is the DDES shielding function of the turbulence model: full dissipation in RANS regions, the minimum in LES regions. Faces the shock sensor flags keep full dissipation.

With a DES-family hybrid. Without a RANS turbulence model every cell is treated as LES.

NTS

The blending function of Xiao et al. (2012), built from vorticity, strain rate, the turbulent length scale and the cell size, and combined with the shock sensor.

DES

Scales the dissipation by the turbulence model's length-scale ratio, capped at 1, which is near 0 in LES regions and 1 in RANS regions. Faces the shock sensor flags keep full dissipation.

With a DES-family hybrid. Without a RANS turbulence model every cell is treated as LES.

NONE default

No scaling: the low-dissipation fluxes apply full upwind dissipation.

The default.

Used intriangle_cylinder
roe entropy fix coefficientadvancedcompressible only
float·default 0.001·>= 0

Roe entropy fix coefficient for low-dissipation scheme

roe dissipation sensor minimum Roe Dissipation Sensor Minadvancedcompressible only
float·not set by default·0.05 to 1.0

Minimum value for Roe dissipation sensor (prevents excessive dissipation reduction)

Used intriangle_cylinder
roe low dissipation sensor parameteradvancedcompressible only
not set by default

Field used to compute the Roe low-dissipation sensor

Options
ValueWhat it doesWhen to use it
density

The shock sensor is the normalised density jump between each cell and its face neighbours.

The default when unset.

velocity

The shock sensor is the Ducros ratio ∣∇⋅u∣/(∣∇⋅u∣+∣ω∣)|\nabla\cdot\mathbf{u}| / (|\nabla\cdot\mathbf{u}| + |\boldsymbol{\omega}|).

velocity divergence/vorticity

The same as velocity.

Used intriangle_cylinder
viscous time step factoradvancedviscous / rans / les only
float·default 1·> 0

Time step scaling for viscous terms

turbulence limiteradvancedrans only
not set by default

Treatment of invalid turbulence variables after the solution update: 'zero' clamps them to their floor, 'no update' reverts the cell's turbulence state (default when unset)

Options
ValueWhat it doesWhen to use it
zero

When an update leaves a cell's turbulence variables invalid, they are clipped to their lower limits.

no update

When an update leaves a cell's turbulence variables invalid, the cell keeps its turbulence values from before the update.

The default when unset.