Skip to content
SHD Sim
Menu
Documentation menu

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

The Numerics panel open beside the setup tree, showing the Preset, Relaxation, Convergence, Schemes, Momentum solver and Pressure solver sections.
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.