Numerics presets
For convenience, Vanellus provides three tested numerics presets: fast, balanced, and stable. They select coordinated linear-solver, advection, and relaxation settings without requiring users to configure every equation separately.
The fourth option, custom, applies no preset. It requires a complete numerics configuration and is intended for cases where every solver choice must be controlled explicitly.
Presets at a glance
| Preset | Overall behavior | When to use it |
|---|---|---|
fast | Light preconditioning, earlier inner-solve stopping, and larger equation updates | Simple cases that settle cleanly without stronger numerical controls |
balanced | Stronger preconditioning and more damping where it commonly helps | Cases with coupling, recirculation, or geometry that make fast less predictable |
stable | Inner solves that reduce residuals further, and stronger momentum and turbulence damping | Cases that oscillate, diverge, or fail to settle with the lighter presets |
custom | No inherited configuration | Advanced cases where every numerical setting must be specified and maintained explicitly |
The preset names do not guarantee a runtime order: fast is not necessarily faster than balanced or stable. Stronger preconditioning and less aggressive equation updates can reduce linear-solver work and outer oscillation enough for stable to finish sooner. Actual performance depends on the case.
What the presets control
Each preset supplies three groups of settings:
- Linear solvers: convergence tolerances and equation-specific preconditioners.
- Advection schemes: the face interpolation used by momentum, energy, and turbulence transport.
- Relaxation: the size of each equation or pressure-field update during the SIMPLE iteration.
The presets use the same BiCGSTAB algorithm and robust first-order advection. They all precondition the pressure solve, provide an ordered preconditioner fallback for energy, and leave the energy equation unrelaxed. Their main differences are the strength of momentum and turbulence preconditioning, the strictness of the inner linear solves, and the damping applied to momentum, pressure, tke, and sdr.
How the presets differ
| Control | fast | balanced | stable |
|---|---|---|---|
Absolute stopping threshold atol (all equations) | 1e-6 | 1e-8 | 1e-8 |
Relative stopping threshold rtol (momentum, pressure, tke, and sdr) | 0.01 | 0.01 | 0.001 |
Relative stopping threshold rtol (energy) | 0.01 | 0.001 | 0.001 |
| Momentum and turbulence preconditioner | none | ilu13 | ilu13 |
| Momentum relaxation factor | 0.7 | 0.7 | 0.3 |
| Pressure-field relaxation factor | 0.3 | 0.3 | 0.7 |
Turbulence relaxation factor (tke and sdr) | 0.7 | 0.5 | 0.3 |
balanced adds preconditioning, lowers the stopping threshold for the energy solve, and reduces the turbulence update factor. stable applies lower relative stopping thresholds to every equation, reduces momentum and turbulence updates further, and increases the pressure-field update factor as part of the complete SIMPLE configuration.
All three presets keep the energy update factor at 1, so none under-relaxes the energy equation. Energy relaxation explains why reducing that factor is strongly discouraged.
Preset overrides and custom
A preset string selects the complete tested configuration:
"numerics": "balanced"
If you want to keep most of the settings of a preset the same and adjust some, you can do so like this:
"numerics": {
"balanced": {
"relaxation_factors": {
"tke": 0.3
}
}
}
The object form starts from the named preset and replaces only the supplied fields. All omitted settings retain their preset values.
custom does not inherit any omitted values: every required linear-solver, advection, and relaxation setting must be supplied. Prefer a preset unless the complete numerical configuration needs to be owned explicitly.
See also
- Switch numerics presets gives the first numerical change to try when a case does not settle.
- Advection schemes explains the discretization shared by the presets.
- Relaxation explains equation and pressure-field damping.
- Residuals and linear-solver convergence explains the linear tolerances.
- Preconditioners and fallbacks explains the available preconditioners.
- API reference gives the current preset values and defines the override and
customschemas.