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 and provide an ordered preconditioner fallback for energy. Relaxation applies to momentum, pressure, tke, and sdr; the energy solve is controlled through its linear-solver tolerance and preconditioner. The presets differ mainly in their linear-solver thresholds, preconditioners, and equation relaxation factors.
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, tightens the energy linear-solver tolerance, and reduces the turbulence update factor. stable tightens the relative linear-solver tolerances for every equation, reduces momentum and turbulence updates further, and increases the pressure-field update factor as part of the complete SIMPLE configuration.
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.