Draft. This manual is new and still growing. If something here does not match what you see in the software, the software is right — tell us and we will fix the page.
Numerics

Where it is
Setup tree: Numerics
Controls
Relaxation
Pressure
- Control: value (
ValueField) - Bound to:
CaseState.effectiveRelaxP - Writes:
fvSolution/relaxationFactors/fields/p
Transonic transient writes no field relaxation at all - PIMPLE solves p unrelaxed, whatever this reads.
Momentum
- Control: value (
ValueField) - Bound to:
CaseState.effectiveRelaxU - Writes:
fvSolution/relaxationFactors/equations/U
Transonic transient relaxes every equation at the one wildcard factor below, whatever this reads.
Turbulence
- Control: value (
ValueField) - Bound to:
CaseState.effectiveRelaxTurb
Transonic transient's single wildcard factor covers this too.
Adjoint
- Control: value (
ValueField) - Default:
0.1 - Bound to:
CaseState.relaxAdjoint - Writes:
fvSolution/relaxationFactors/alpha - Value modes: none (plain entry)
- Shown when:
CaseState.solver === "adjointShapeOptimizationFoam"
How fast the optimisation is allowed to move material between solid and fluid.
Scalar
- Control: value (
ValueField) - Default:
0.9 - Bound to:
CaseState.relaxScalar - Writes:
fvSolution/relaxationFactors/… - Value modes: none (plain entry)
- Shown when:
CaseState.physicsFamily === "scalar"
Pressure floor
- Control: value (
ValueField) - Unit: Pa
- Default:
10000 - Bound to:
CaseState.minPressure - Writes:
pMin - Value modes: none (plain entry)
- Shown when:
CaseState.compressible
pMin. The floor a compressible solve clamps pressure to, so a transient undershoot cannot take it negative and end the run. Raise it for a high-pressure case; lower it for a vacuum one.
Convergence
p residual
- Control: value (
ValueField) - Default:
1e-5 - Bound to:
CaseState.resP - Writes:
SIMPLE/residualControl/p - Shown when:
CaseState.steady
U residual
- Control: value (
ValueField) - Default:
1e-6 - Bound to:
CaseState.resU - Writes:
SIMPLE/residualControl/U - Shown when:
CaseState.steady
Show advanced schemes
- Control: on/off (
ToggleRow) - Default:
false
Schemes
div(phi,U)
- Control: choice (
ComboRow) - Default:
linearUpwind grad(U) - Bound to:
CaseState.divScheme - Options:
linearUpwind grad(U),linear,upwind,LUST grad(U),limitedLinear 1,vanLeer,QUICK - Writes:
fvSchemes/divSchemes/div(phi,U) - Shown when:
root.advanced
grad(U)
- Control: choice (
ComboRow) - Default:
cellLimited Gauss linear 1 - Bound to:
CaseState.gradScheme - Options:
Gauss linear,cellLimited Gauss linear 1,leastSquares - Writes:
fvSchemes/gradSchemes/grad(U) - Shown when:
root.advanced
snGrad
- Control: choice (
ComboRow) - Default:
limited 0.5 - Bound to:
CaseState.snGradScheme - Options:
corrected,limited 0.5,limited 0.33,uncorrected,orthogonal - Writes:
fvSchemes/snGradSchemes/default - Shown when:
root.advanced
p solver
- Control: choice (
ComboRow) - Default:
GAMG - Bound to:
CaseState.pSolver - Options:
GAMG,PCG,PPCG,PBiCGStab - Writes:
fvSolution/solvers/p/solver - Shown when:
root.advanced
Momentum solver
Tolerance
- Control: value (
ValueField) - Default:
1e-07 - Bound to:
CaseState.uSolverTolerance - Writes:
fvSolution/solvers/U/… - Value modes: none (plain entry)
- Shown when:
root.advanced
Relative tolerance
- Control: value (
ValueField) - Default:
0.1 - Bound to:
CaseState.uSolverRelTol - Writes:
fvSolution/solvers/U/… - Value modes: none (plain entry)
- Shown when:
root.advanced
Max iterations
- Control: value (
ValueField) - Default:
1000 - Bound to:
CaseState.uSolverMaxIter - Writes:
fvSolution/solvers/U/… - Value modes: none (plain entry)
- Shown when:
root.advanced
Pressure solver
Tolerance
- Control: value (
ValueField) - Default:
1e-06 - Bound to:
CaseState.pSolverTolerance - Writes:
fvSolution/solvers/p_rgh/tolerance - Value modes: none (plain entry)
- Shown when:
root.advanced
Absolute residual the pressure solve has to reach. Tightening it costs iterations; loosening it lets error accumulate between correctors.
Relative tolerance
- Control: value (
ValueField) - Default:
0.01 - Bound to:
CaseState.pSolverRelTol - Writes:
fvSolution/solvers/p_rgh/relTol - Value modes: none (plain entry)
- Shown when:
root.advanced
How far the residual has to fall within one solve, as a fraction of where it started. The final corrector always uses 0 - it has to converge properly.
Max iterations
- Control: value (
ValueField) - Default:
1000 - Bound to:
CaseState.pSolverMaxIter - Writes:
fvSolution/solvers/p_rgh/maxIter - Value modes: none (plain entry)
- Shown when:
root.advanced
The ceiling a failing pressure solve runs into. It was never written, so OpenFOAM's own 1000 applied and the run hit it without anything saying so.
Cells in coarsest level
- Control: value (
ValueField) - Default:
10 - Bound to:
CaseState.pSolverCoarsestCells - Writes:
fvSolution/solvers/p_rgh/nCellsInCoarsestLevel - Value modes: none (plain entry)
- Shown when:
root.advanced && CaseState.pSolver === "GAMG"
How far GAMG coarsens before it solves directly. Smaller means more levels and a cheaper coarse solve; 10 is what SimScale uses, and this app hard-coded 100.
Lists this panel shows
Read straight from the data behind the panel, not from a hand-written list.
Preset
From a fixed list in the application.
- Robust
- Balanced
- Accurate
Problems reported against this step
The application checks these before a run and reports them in the Problems tab against this step.
| Severity | Message |
|---|---|
| error | The solution diverged: the residuals grew instead of falling. Lower the relaxation factors, improve the worst cells on the Quality pane, or start from potential flow. |
… marks a value the application computes at run time, so the source carries no fixed text for it.