Skip to content
Draft. This manual is new and still being checked against the software as it is verified. Some pages will change. If something here does not match what you see, the software is right — tell us and we will fix the page.

Numerics

The Numerics panel open beside the setup tree, showing the Preset, Relaxation, Convergence, Schemes, Momentum solver and Pressure solver sections.

Setup tree: Numerics

  • 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.

  • 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.

  • Control: value (ValueField)
  • Bound to: CaseState.effectiveRelaxTurb

Transonic transient’s single wildcard factor covers this too.

  • 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.

  • Control: value (ValueField)
  • Default: 0.9
  • Bound to: CaseState.relaxScalar
  • Writes: fvSolution/relaxationFactors/…
  • Value modes: none (plain entry)
  • Shown when: CaseState.physicsFamily === "scalar"
  • 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.

  • Control: value (ValueField)
  • Default: 1e-5
  • Bound to: CaseState.resP
  • Writes: SIMPLE/residualControl/p
  • Shown when: CaseState.steady
  • Control: value (ValueField)
  • Default: 1e-6
  • Bound to: CaseState.resU
  • Writes: SIMPLE/residualControl/U
  • Shown when: CaseState.steady
  • Control: on/off (ToggleRow)
  • Default: false
  • 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
  • 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
  • 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
  • Control: choice (ComboRow)
  • Default: GAMG
  • Bound to: CaseState.pSolver
  • Options: GAMG, PCG, PPCG, PBiCGStab
  • Writes: fvSolution/solvers/p/solver
  • Shown when: root.advanced
  • Control: value (ValueField)
  • Default: 1e-07
  • Bound to: CaseState.uSolverTolerance
  • Writes: fvSolution/solvers/U/…
  • Value modes: none (plain entry)
  • Shown when: root.advanced
  • Control: value (ValueField)
  • Default: 0.1
  • Bound to: CaseState.uSolverRelTol
  • Writes: fvSolution/solvers/U/…
  • Value modes: none (plain entry)
  • Shown when: root.advanced
  • Control: value (ValueField)
  • Default: 1000
  • Bound to: CaseState.uSolverMaxIter
  • Writes: fvSolution/solvers/U/…
  • Value modes: none (plain entry)
  • Shown when: root.advanced
  • 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.

  • 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.

  • 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.

  • 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.

Read straight from the data behind the panel, not from a hand-written list.

From a fixed list in the application.

  • Robust
  • Balanced
  • Accurate

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.