numerical scheme
Default spatial numerical scheme for all meshes.
Spatial order of accuracy
| Value | What it does | When 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 | 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 |
Both runs use the Roe scheme and explicit three-stage Runge–Kutta on the same mesh; only the spatial order changes.
Slope limiter for higher-order schemes
| Value | What it does | When to use it |
|---|---|---|
| van albada default | Default. One-dimensional: . Smooth, symmetric, bounded in . | The recommended general purpose choice. |
| van leer | One-dimensional: . Slightly more compressive than van Albada. | |
| symmetric ratio | One-dimensional: with . The least dissipative of the three. | |
| none | . Unlimited reconstruction: second order everywhere, but not monotonicity preserving. | Appropriate only for smooth flows with no shocks or strong gradients. |
| barth jespersen | Cell-based: . Barth & Jespersen (1989) as published. Bound preserving, but only : the kink at 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: for , else 1. Michalak & Ollivier-Gooch. , and , 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: . Smooth, but exceeds 1 for , so it needs the clip, which reintroduces a kink at . | Provided as a familiar cross-check. |
Every run is second-order Roe with implicit dual time stepping on the same mesh; only the limiter changes.
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.
Number of first-order cycles before switching to higher order
Cycle at which to freeze the limiter (-1 = never freeze)
Guidance: Troubleshooting →Gradient calculation method (green-gauss or least-squares)
| Value | What it does | When to use it |
|---|---|---|
| green-gauss default | Green-Gauss gradients from face values interpolated by inverse distance, or by a plain average when | The default. |
| least-squares | A least-squares fit to the differences between each cell and its face neighbours, weighted by face area. |
Reconstruction method for MUSCL-type schemes
| Value | What it does | When to use it |
|---|---|---|
| muscl default | The MUSCL -scheme with , blending the limited cell-gradient extrapolation with the central difference across the face. | The default. |
| umuscl | The unstructured MUSCL of Burg, with , scaled by the limiter. | |
| lpumuscl | Accepted, but the solver currently treats it as |
Allow backward difference stencils during MUSCL reconstruction
Inviscid flux calculation scheme
| Value | What it does | When to use it |
|---|---|---|
| roe default | Roe's approximate Riemann solver. | 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 | Scale-resolving simulations, where full upwind dissipation would damp the resolved turbulence. With the sensor |
| hllc low-diss | The HLLC flux with its dissipation scaled in the same way as | |
| rusanov | The Rusanov (local Lax-Friedrichs) flux, which scales the dissipation by the largest local wave speed. | The most dissipative of the schemes. |
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.
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 fix coefficient for Roe scheme (limits maximum dissipation)
Sensor type for Roe low-dissipation scheme
| Value | What it does | When to use it |
|---|---|---|
| FD | Scales the dissipation by , where 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. |
Roe entropy fix coefficient for low-dissipation scheme
Minimum value for Roe dissipation sensor (prevents excessive dissipation reduction)
Field used to compute the Roe low-dissipation sensor
| Value | What it does | When 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 . | |
| velocity divergence/vorticity | The same as |
Time step scaling for viscous terms
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)
| Value | What it does | When 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. |