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.

Physics

Not a setup-tree node. Embedded in the application.

  • Control: value (ValueField)
  • Unit: N/m
  • Default: 0.07
  • Bound to: CaseState.surfaceTension
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.nPhaseCase

Applied to every pair of phases alike - the bundled tutorials use the same one number across all of theirs too.

  • Control: action (ToolButton2)
  • Control: action (ToolButton2)
  • Control: choice (ComboRow)
  • Default: isoAdvector
  • Bound to: CaseState.interfaceScheme
  • Options: isoAdvector, MULES
  • Writes: fvSolution/solvers/alpha
  • Shown when: CaseState.twoPhaseVof

The in-app guidance depends on the case:

  • Geometric reconstruction; the interface stays inside about one cell. Runs interIsoFoam.
  • Algebraic compression. More forgiving on a poor mesh, and the interface smears over several cells. Runs interFoam.
  • Control: value (ValueField)
  • Default: 1.0
  • Bound to: CaseState.cAlpha
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof && CaseState.interfaceScheme === "MULES"

cAlpha. 1 is the usual value; 0 turns compression off entirely.

  • Control: value (ValueField)
  • Default: 2
  • Bound to: CaseState.nAlphaCorr
  • Writes: fvSolution/solvers/alpha
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof

How many times alpha is corrected within a step.

  • Control: value (ValueField)
  • Default: 1
  • Bound to: CaseState.nAlphaSubCycles
  • Writes: fvSolution/alpha/nAlphaSubCycles
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof

How many smaller steps the phase fraction is advanced in per time step. More sub-cycles keep alpha inside [0, 1] when the interface is moving fast, at a little more cost.

  • Control: on/off (ToggleRow)
  • Default: true
  • Bound to: CaseState.mulesSemiImplicit
  • Shown when: CaseState.twoPhaseVof

On: solve alpha implicitly, then apply one limited explicit correction - faster, and it tolerates a bigger step. Off: fully explicit, which bounds alpha harder. Turn it off if Max(alpha) drifts above 1.

  • Control: value (ValueField)
  • Default: 0.0
  • Bound to: CaseState.icAlpha
  • Writes: fvSolution/alpha/icAlpha
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof

icAlpha. 0 compresses the interface only along its normal; 1 compresses in every direction. A little - 0.25 - stops the compression term carving the interface into steps on a hex mesh.

  • Control: value (ValueField)
  • Bound to: CaseState.nOuterCorrectors
  • Writes: fvSolution/PIMPLE/nOuterCorrectors
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof && !CaseState.steady

nOuterCorrectors. How many times pressure and velocity are coupled within a step. Two is usual; raise it when a violent free surface will not hold coupling in two.

  • Control: on/off (ToggleRow)
  • Default: true
  • Bound to: CaseState.velocityLimitEnabled
  • Shown when: CaseState.twoPhaseVof

Writes a limitVelocity fvOption capping |U|. It is a no-op wherever the solution is physical and a clamp on the one rogue cell a plunging free surface can produce - which otherwise takes the pressure field and the time step with it.

  • Control: value (ValueField)
  • Unit: m/s
  • Default: 500
  • Bound to: CaseState.velocityLimit
  • Writes: fvOptions/limitU/max
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof && CaseState.velocityLimitEnabled

The ceiling on |U|. Set it well above anything the case should physically reach - the point is to catch a cell that has gone wrong, not to shape the solution.

  • Control: value (ValueField)
  • Bound to: CaseState.nCorrectors
  • Writes: fvSolution/PIMPLE/nCorrectors
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof && !CaseState.steady

nCorrectors. How many times the pressure equation is re-solved within one outer iteration - the second knob after the outer correctors when a case will not hold continuity.

  • Control: on/off (ToggleRow)
  • Bound to: CaseState.momentumPredictor
  • Shown when: CaseState.twoPhaseVof

Solves the momentum equation before the first pressure correction. Turning it OFF is a standard remedy for a high-density-ratio case that will not hold that first correction - which is why the compressible VoF solvers ship with it off.

  • Control: on/off (ToggleRow)
  • Default: false
  • Bound to: CaseState.correctPhi
  • Shown when: CaseState.twoPhaseVof

correctPhi. On a moving mesh the face fluxes carried over from the previous position no longer satisfy continuity on the new one; this is the step that makes them. Defaults on exactly when the mesh moves.

  • Control: value (ValueField)
  • Default: 1e-10
  • Bound to: CaseState.isoFaceTol
  • Value modes: none (plain entry)
  • Shown when: CaseState.interfaceScheme === "isoAdvector"

isoAdvector’s own tolerance on where it places the interface inside a cell.

  • Control: value (ValueField)
  • Default: 1e-6
  • Bound to: CaseState.surfCellTol
  • Value modes: none (plain entry)
  • Shown when: CaseState.interfaceScheme === "isoAdvector"

isoAdvector’s own tolerance on where it places the interface inside a cell.

  • Control: value (ValueField)
  • Default: 3
  • Bound to: CaseState.nAlphaBounds
  • Value modes: none (plain entry)
  • Shown when: CaseState.interfaceScheme === "isoAdvector"

isoAdvector’s own tolerance on where it places the interface inside a cell.

  • Control: value (ValueField)
  • Default: 0.5
  • Bound to: CaseState.maxAlphaCourant
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof && !CaseState.steady

maxAlphaCo. Tighter than the flow limit, because the interface is what the time step has to resolve.

  • Control: value (ValueField)
  • Default: 50
  • Bound to: CaseState.maxAcousticCourant
  • Writes: controlDict/maxAcousticCo
  • Value modes: none (plain entry)
  • Shown when: CaseState.solverIs("cavitatingFoam") && !CaseState.steady

maxAcousticCo. Both phases are compressible here, so sound is the fastest thing in the domain and the flow limit does not see it. The moving-mesh build needs about a tenth of the static one’s.

  • Control: value (ValueField)
  • Default: 0.1
  • Bound to: CaseState.bedFractionThreshold
  • Value modes: none (plain entry)
  • Shown when: CaseState.physicsFamily === "driftFlux"

The dispersed fraction above which a cell counts as settled bed rather than suspension. The bed-height monitor reports the highest cell that passes it.

  • Control: value (ValueField)
  • Unit: m
  • Default: 0.0
  • Bound to: CaseState.fillLevel
  • Writes: setFieldsDict
  • Value modes: none (plain entry)
  • Shown when: CaseState.twoPhaseVof && CaseState.fillEnabled

Height on the up axis, in case coordinates. Applying it makes a box from the domain floor to that height, and a subdomain that starts … inside it.

  • Control: action (ToolButton2)
  • Shown when: CaseState.twoPhaseVof && CaseState.fillEnabled
  • Enabled when: CaseState.fillLevel > 0
  • Control: value (ValueField)
  • Unit: m
  • Default: 0.076
  • Bound to: CaseState.cavityWidth
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "cavity"

The gap between the hot and cold faces - the length scale the Rayleigh number is defined on.

  • Control: value (ValueField)
  • Unit: m
  • Default: 2.18
  • Bound to: CaseState.cavityHeight
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "cavity"
  • Control: value (ValueField)
  • Unit: m
  • Default: 0.52
  • Bound to: CaseState.cavityDepth
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "cavity" && !CaseState.twoDimensional

Ignored on a two-dimensional case, where the thin direction is one cell by construction regardless of this number.

  • Control: value (ValueField)
  • Unit: K
  • Default: 307.75
  • Bound to: CaseState.cavityHotT
  • Value modes: none (plain entry)
  • Shown when: CaseState.sealedVessel

With this equal to the cold face nothing moves, and a natural-convection run reports a still box.

  • Control: value (ValueField)
  • Unit: K
  • Default: 288.15
  • Bound to: CaseState.cavityColdT
  • Value modes: none (plain entry)
  • Shown when: CaseState.sealedVessel
  • Control: value (ValueField)
  • Unit: V
  • Default: 1000
  • Bound to: CaseState.electrodeVolts
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "electrodes"

The potential difference between the two plates. At zero there is no field and the solver has nothing to compute.

  • Control: value (ValueField)
  • Unit: m/s
  • Default: 0.1
  • Bound to: CaseState.spargerVelocity
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "column"

Superficial gas velocity in through the floor. This is what makes the plume; at zero the column does nothing.

  • Control: value (ValueField)
  • Unit: rpm
  • Default: 1500
  • Bound to: CaseState.engineRpm
  • Value modes: none (plain entry)
  • Shown when: CaseState.isEngineSolver
  • Control: value (ValueField)
  • Default: 0.090295
  • Bound to: CaseState.dnsUOsigma
  • Value modes: none (plain entry)
  • Shown when: CaseState.periodicBox

The Uhlenbeck-Ornstein forcing that holds the turbulence up. Without it the box decays to rest.

  • Control: value (ValueField)
  • Default: 0.81532
  • Bound to: CaseState.dnsUOalpha
  • Value modes: none (plain entry)
  • Shown when: CaseState.periodicBox
  • Control: value (ValueField)
  • Default: 7
  • Bound to: CaseState.dnsUOKlower
  • Value modes: none (plain entry)
  • Shown when: CaseState.periodicBox

The band the forcing is applied over, in wavenumbers.

  • Control: value (ValueField)
  • Default: 10
  • Bound to: CaseState.dnsUOKupper
  • Value modes: none (plain entry)
  • Shown when: CaseState.periodicBox
  • Control: value (ValueField)
  • Default: 10
  • Bound to: CaseState.dnsEa
  • Value modes: none (plain entry)
  • Shown when: CaseState.periodicBox

boxTurb seeds the starting field from an energy spectrum: this is its peak, and the wavenumber below is where it peaks.

  • Control: value (ValueField)
  • Default: 5
  • Bound to: CaseState.dnsK0
  • Value modes: none (plain entry)
  • Shown when: CaseState.periodicBox
  • Control: value (ValueField)
  • Unit: kg/m³
  • Default: 100.0
  • Bound to: CaseState.filmLiquidRho
  • Value modes: none (plain entry)
  • Shown when: CaseState.finiteArea
  • Control: value (ValueField)
  • Unit: m²/s
  • Default: 1e-3
  • Bound to: CaseState.filmLiquidNu
  • Value modes: none (plain entry)
  • Shown when: CaseState.finiteArea
  • Control: value (ValueField)
  • Unit: kg/m³
  • Default: 1.0
  • Bound to: CaseState.filmGasRho
  • Value modes: none (plain entry)
  • Shown when: CaseState.finiteArea
  • Control: value (ValueField)
  • Unit: m²/s
  • Default: 0.0
  • Bound to: CaseState.filmGasNu
  • Value modes: none (plain entry)
  • Shown when: CaseState.finiteArea
  • Control: value (ValueField)
  • Unit: N/m
  • Default: 0.1
  • Bound to: CaseState.filmSigma
  • Value modes: none (plain entry)
  • Shown when: CaseState.finiteArea

What holds a rivulet together rather than letting it spread.

  • Control: value (ValueField)
  • Unit: m
  • Default: 1e-10
  • Bound to: CaseState.filmMinThickness
  • Value modes: none (plain entry)
  • Shown when: CaseState.finiteArea

The floor the film is not allowed to thin below, which is what keeps a dry patch from dividing by zero.

  • Control: choice (ComboRow)
  • Default: StokesII
  • Bound to: CaseState.waveModel
  • Options: StokesI, StokesII, StokesV, cnoidal, Grimshaw, streamFunction, JONSWAP (from CaseState.waveModels)
  • Writes: waveProperties
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Unit: m
  • Default: 2.0
  • Bound to: CaseState.waveHs
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Unit: s
  • Default: 8.0
  • Bound to: CaseState.waveTp
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Default: 3.3
  • Bound to: CaseState.waveGamma
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Default: 40
  • Bound to: CaseState.waveComponentCount
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Unit: °
  • Default: 0.0
  • Bound to: CaseState.waveAngleDeg
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Unit: m
  • Default: 10.0
  • Bound to: CaseState.waterDepth
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Unit: m
  • Default: 1.0
  • Bound to: CaseState.waveHeight
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: value (ValueField)
  • Unit: s
  • Default: 6.0
  • Bound to: CaseState.wavePeriod
  • Writes: waveProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "marine"
  • Control: choice (ComboRow)
  • Default: air
  • Bound to: CaseState.dispersedPhase
  • Writes: phaseProperties
  • Shown when: root.fam === "euler" && !CaseState.nPhaseCase

The one that exists as bubbles, drops or particles inside the other.

  • Control: value (ValueField)
  • Unit: m
  • Default: 0.003
  • Bound to: CaseState.dispersedDiameter
  • Writes: phaseProperties/diameterModel
  • Value modes: none (plain entry)
  • Shown when: root.fam === "euler" && !CaseState.nPhaseCase
  • Control: choice (ComboRow)
  • Default: SchillerNaumann
  • Bound to: CaseState.dragModel
  • Options: SchillerNaumann, WenYu, GidaspowErgunWenYu, Ergun, Lain (from CaseState.dragModels)
  • Writes: phaseProperties/drag
  • Shown when: root.fam === "euler"

Not optional. Without drag the phases pass through each other.

  • Control: choice (ComboRow)
  • Default: none
  • Bound to: CaseState.liftModel
  • Options: none, constantCoefficient, Tomiyama, Moraga, LegendreMagnaudet (from CaseState.liftModels)
  • Writes: phaseProperties/lift
  • Shown when: root.fam === "euler"

Sideways force on a bubble in a shear layer. Decides whether bubbles migrate to the wall or the core.

  • Control: value (ValueField)
  • Default: 0.5
  • Bound to: CaseState.virtualMassCoeff
  • Value modes: none (plain entry)
  • Shown when: root.fam === "euler"

Cvm. 0.5 for a sphere.

  • Control: value (ValueField)
  • Default: 0.0
  • Bound to: CaseState.dispersedAlpha
  • Value modes: none (plain entry)
  • Shown when: root.fam === "euler"
  • Control: on/off (ToggleRow)
  • Default: false
  • Bound to: CaseState.twoWayCoupled
  • Writes: kinematicCloudProperties/solution/coupled
  • Shown when: root.fam === "lagrangian"

Off, the particles are carried by the flow and do not affect it - far cheaper, and right whenever the loading is light. On runs DPMFoam, which feeds the particle momentum back into the fluid.

  • Control: value (ValueField)
  • Default: air
  • Bound to: CaseState.continuousPhaseName
  • Writes: kinematicCloudProperties/solution/continuousPhaseName
  • Value modes: none (plain entry)
  • Shown when: root.fam === "lagrangian" && CaseState.twoWayCoupled

DPMFoam names the carrier fields after it, so the velocity is U.… rather than U.

  • Control: choice (ComboRow)
  • Default: patchInjection
  • Bound to: CaseState.injectionModel
  • Options: patchInjection, coneInjection, manualInjection (from CaseState.injectionModels)
  • Writes: kinematicCloudProperties/injectionModels
  • Shown when: root.fam === "lagrangian"
  • Control: choice (ComboRow)
  • Bound to: CaseState.effectiveInjectionPatch
  • Shown when: root.fam === "lagrangian" && CaseState.injectionModel === "patchInjection"
  • Control: choice (ComboRow)
  • Default: ReitzDiwakar
  • Bound to: CaseState.breakupModel
  • Options: none, ReitzDiwakar, ReitzKHRT (from CaseState.breakupModels)
  • Writes: sprayCloudProperties/subModels/breakupModel
  • Shown when: CaseState.buildsSprayCloud

Secondary breakup of an injected droplet into smaller ones as it is dragged through the carrier. Every bundled spray tutorial uses a real model here, never “none”.

  • Control: choice (ComboRow)
  • Default: fixedValue
  • Bound to: CaseState.sizeDistribution
  • Options: fixedValue, uniform, RosinRammler (from CaseState.sizeDistributions)
  • Shown when: root.fam === "lagrangian"

The usual description of a spray or a milled powder.

  • Control: value (ValueField)
  • Unit: kg/m³
  • Default: 1000
  • Bound to: CaseState.particleRho
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: m
  • Default: 1.0e-4
  • Bound to: CaseState.particleDiameter
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: K
  • Default: 320
  • Bound to: CaseState.parcelTemperature
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: m
  • Default: 1.0e-5
  • Bound to: CaseState.particleDMin
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: m
  • Default: 5.0e-4
  • Bound to: CaseState.particleDMax
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Default: 2.0
  • Bound to: CaseState.rosinRammlerN
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: kg/s
  • Default: 0.01
  • Bound to: CaseState.injectionMassFlow
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: s
  • Default: 1.0
  • Bound to: CaseState.injectionDuration
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Unit: m/s
  • Default: 10.0
  • Bound to: CaseState.injectionSpeed
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: value (ValueField)
  • Default: 1000
  • Bound to: CaseState.parcelsPerSecond
  • Writes: kinematicCloudProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" || root.fam === "spray" || root.fam === "reacting")
  • Control: choice (ComboRow)
  • Default: sphereDrag
  • Bound to: CaseState.parcelDrag
  • Options: sphereDrag, nonSphereDrag, distortedSphereDrag
  • Shown when: root.fam === "lagrangian"
  • Control: value (ValueField)
  • Default: 0.62
  • Bound to: CaseState.dpmAlphaMax
  • Writes: kinematicCloudProperties/constantProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" && CaseState.cloudIsCoupled)
  • Control: value (ValueField)
  • Unit: Pa
  • Default: 1e8
  • Bound to: CaseState.dpmYoungsModulus
  • Writes: kinematicCloudProperties/constantProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" && CaseState.cloudIsCoupled)
  • Control: value (ValueField)
  • Default: 0.35
  • Bound to: CaseState.dpmPoissonsRatio
  • Writes: kinematicCloudProperties/constantProperties
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "lagrangian" && CaseState.cloudIsCoupled)
  • Control: choice (ComboRow)
  • Default: PaSR
  • Bound to: CaseState.combustionModel
  • Options: laminar, PaSR, EDC, infinitelyFastChemistry, diffusion (from CaseState.combustionModels)
  • Writes: combustionProperties
  • Shown when: root.fam === "reacting"
  • Control: on/off (ToggleRow)
  • Default: true
  • Bound to: CaseState.chemistryActive
  • Writes: chemistryProperties/chemistry
  • Shown when: root.fam === "reacting"
  • Control: choice (ComboRow)
  • Default: EulerImplicit
  • Bound to: CaseState.chemistrySolver
  • Options: EulerImplicit, ode, none (from CaseState.chemistrySolvers)
  • Shown when: root.fam === "reacting" && CaseState.chemistryActive

The in-app guidance depends on the case:

  • Stiff ODE integration. Slower and far more robust on a real mechanism.
  • Cheap and adequate for a few reactions.
  • Control: value (ValueField)
  • Default: CH4 O2 CO2 H2O N2
  • Bound to: CaseState.speciesList
  • Writes: constant/reactions
  • Value modes: none (plain entry)
  • Shown when: root.fam === "reacting"

Space separated. Each becomes a mass fraction field in 0/.

  • Control: choice (ComboRow)
  • Default: CH4
  • Bound to: CaseState.fuelSpecies
  • Shown when: root.fam === "reacting"
  • Control: choice (ComboRow)
  • Default: O2
  • Bound to: CaseState.oxidiserSpecies
  • Shown when: root.fam === "reacting"
  • Control: choice (ComboRow)
  • Default: N2
  • Bound to: CaseState.inertSpecies
  • Shown when: root.fam === "reacting"
  • Control: value (ValueField)
  • Unit: K
  • Default: 1000
  • Bound to: CaseState.ignitionTemperature
  • Writes: 0/T
  • Value modes: none (plain entry)
  • Shown when: root.fam === "reacting"

The whole domain starts here. Below the ignition temperature the chemistry integrates to no reaction and the run is an expensive way to mix two cold gases.

  • Control: on/off (ToggleRow)
  • Default: false
  • Bound to: CaseState.radiationEnabled
  • Writes: constant/radiationProperties
  • Shown when: root.fam === "reacting" || root.fam === "buoyant" || root.fam === "cht"

The in-app guidance depends on the case:

  • P1 with a grey absorption coefficient. In a flame radiation carries a serious fraction of the heat away; outside one it is cost for nothing.
  • P1 with a grey absorption coefficient. Worth it once a surface is hot enough that radiation is a real fraction of its heat loss - a few hundred degrees and up - and cost for nothing well below that.
  • Control: choice (ComboRow)
  • Default: P1
  • Bound to: CaseState.radiationModel
  • Options: P1, View factor (from CaseState.radiationModels)
  • Writes: radiationProperties/radiationModel
  • Shown when: CaseState.radiationEnabled && (root.fam === "reacting" || root.fam === "buoyant")

The in-app guidance depends on the case:

  • Surface-to-surface exchange through a transparent medium: hot and cold walls seeing each other across clear air. The gas itself neither absorbs nor emits. Two extra steps run before the solve to build the exchange matrix.
  • A diffusion approximation for a medium that absorbs and emits - a flame’s products, a sooty gas. Wrong for clear air between surfaces; choose View factor there.
  • Control: value (ValueField)
  • Unit: 1/m
  • Default: 0.5
  • Bound to: CaseState.radiationAbsorptivity
  • Value modes: none (plain entry)
  • Shown when: CaseState.radiationEnabled && (root.fam === "reacting" || root.fam === "buoyant" || root.fam === "cht")
  • Control: value (ValueField)
  • Unit: 1/m
  • Default: 0.5
  • Bound to: CaseState.radiationEmissivity
  • Value modes: none (plain entry)
  • Shown when: CaseState.radiationEnabled && (root.fam === "reacting" || root.fam === "buoyant" || root.fam === "cht")
  • Control: value (ValueField)
  • Default: 1.0
  • Bound to: CaseState.wallEmissivity
  • Value modes: none (plain entry)
  • Shown when: CaseState.radiationEnabled && (root.fam === "reacting" || root.fam === "buoyant" || root.fam === "cht")
  • Control: value (ValueField)
  • Unit: steps
  • Default: 10
  • Bound to: CaseState.radiationSolverFreq
  • Value modes: none (plain entry)
  • Shown when: CaseState.radiationEnabled && (root.fam === "reacting" || root.fam === "buoyant" || root.fam === "cht")
  • Control: value (ValueField)
  • Default: 30
  • Bound to: CaseState.viewFactorCoarsening
  • Value modes: none (plain entry)
  • Shown when: CaseState.radiationEnabled && (root.fam === "reacting" || root.fam === "buoyant" || root.fam === "cht")
  • Control: choice (ComboRow)
  • Bound to: CaseState.terrainCategories
  • Options: Sea or coastal, Open flat country, Farmland with hedges, Suburban or industrial, Urban (from CaseState.terrainCategories)
  • Writes: 0/U/inlet/z0
  • Shown when: root.fam === "atmospheric"
  • Control: value (ValueField)
  • Unit: m
  • Default: 0.03
  • Bound to: CaseState.aerodynamicRoughness
  • Writes: 0/U
  • Value modes: none (plain entry)
  • Shown when: root.fam === "atmospheric"
  • Control: value (ValueField)
  • Unit: m/s
  • Default: 10.0
  • Bound to: CaseState.ablReferenceSpeed
  • Writes: 0/U
  • Value modes: none (plain entry)
  • Shown when: root.fam === "atmospheric"
  • Control: value (ValueField)
  • Unit: m
  • Default: 10.0
  • Bound to: CaseState.ablReferenceHeight
  • Writes: 0/U
  • Value modes: none (plain entry)
  • Shown when: root.fam === "atmospheric"
  • Control: value (ValueField)
  • Unit: m
  • Default: 0.0
  • Bound to: CaseState.groundHeight
  • Writes: 0/U
  • Value modes: none (plain entry)
  • Shown when: root.fam === "atmospheric"
  • Control: on/off (ToggleRow)
  • Default: false
  • Bound to: CaseState.coriolisEnabled
  • Writes: constant/fvOptions
  • Shown when: root.fam === "atmospheric" || root.fam === "shallowWater"

The Earth turning under the flow. Negligible over a building, not over a wind farm.

  • Control: value (ValueField)
  • Unit: °
  • Default: 52.0
  • Bound to: CaseState.siteLatitude
  • Writes: constant/fvOptions
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "atmospheric" || root.fam === "shallowWater") && CaseState.coriolisEnabled

Positive north. The Coriolis parameter goes to zero at the equator.

  • Control: on/off (ToggleRow)
  • Default: false
  • Bound to: CaseState.plantCanopyEnabled
  • Writes: constant/fvOptions
  • Shown when: root.fam === "atmospheric"

A vegetation drag sink (atmPlantCanopyUSource), uniform over the whole domain rather than limited to a canopy layer near the ground - there is no zone editor for it yet, so a tall domain gets drag at every height, not only where the trees are.

  • Control: value (ValueField)
  • Default: 0.2
  • Bound to: CaseState.canopyDragCoeff
  • Writes: 0/Cd, 0/LAD
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "atmospheric" && CaseState.plantCanopyEnabled)
  • Control: value (ValueField)
  • Unit: 1/m
  • Default: 1.0
  • Bound to: CaseState.canopyLeafAreaDensity
  • Writes: 0/Cd, 0/LAD
  • Value modes: none (plain entry)
  • Shown when: (root.fam === "atmospheric" && CaseState.plantCanopyEnabled)
  • Control: value (ValueField)
  • Default: s
  • Bound to: CaseState.scalarName
  • Writes: 0/…
  • Value modes: none (plain entry)
  • Shown when: root.fam === "scalar"
  • Control: value (ValueField)
  • Unit: m²/s
  • Default: 1.0e-5
  • Bound to: CaseState.scalarDiffusivity
  • Writes: controlDict/functions
  • Value modes: none (plain entry)
  • Shown when: root.fam === "scalar"
  • Control: value (ValueField)
  • Default: 0.0
  • Bound to: CaseState.scalarInitial
  • Writes: controlDict/functions
  • Value modes: none (plain entry)
  • Shown when: root.fam === "scalar"
  • Control: value (ValueField)
  • Default: 1.0
  • Bound to: CaseState.scalarInlet
  • Writes: controlDict/functions
  • Value modes: none (plain entry)
  • Shown when: root.fam === "scalar"
  • Control: on/off (ToggleRow)
  • Default: true
  • Bound to: CaseState.scalarTurbulentSchmidt
  • Shown when: root.fam === "scalar"

Adds nu_t/Sc_t to the molecular diffusivity. In a turbulent flow this is the term that actually spreads the scalar.

  • Control: value (ValueField)
  • Default: 0.7
  • Bound to: CaseState.turbulentSchmidt
  • Value modes: none (plain entry)
  • Shown when: root.fam === "scalar" && CaseState.scalarTurbulentSchmidt
  • Control: choice (ComboRow)
  • Default: Newtonian
  • Bound to: CaseState.viscosityModel
  • Options: Newtonian, CrossPowerLaw, BirdCarreau, powerLaw, HerschelBulkley (from CaseState.viscosityModels)
  • Writes: transportProperties/transportModel
  • Shown when: ["incompressible", "vof", "marine", "cavitation", "miscible", "atmospheric", "scalar", "lagrangian", "srf"] .indexOf(root.fam) >= 0
  • Control: value (ValueField)
  • Unit: m²/s
  • Default: 1.0e-03
  • Bound to: CaseState.nuMax
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.viscosityModel === "Newtonian"
  • Control: value (ValueField)
  • Unit: m²/s
  • Default: 1.0e-06
  • Bound to: CaseState.nuMin
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.viscosityModel === "Newtonian"
  • Control: on/off (ToggleRow)
  • Default: true
  • Bound to: CaseState.ignitionEnabled
  • Shown when: CaseState.solvesPremixedFields

Off, the mixture never lights: b stays at 1 everywhere, and the flame front this family is run for does not exist. The case still runs, and reports an unburnt charge sitting still.

  • Control: value (ValueField)
  • Unit: m
  • Default: 0
  • Bound to: CaseState.ignitionDiameter
  • Value modes: none (plain entry)
  • Shown when: CaseState.solvesPremixedFields && CaseState.ignitionEnabled

The spark, at the middle of the domain.

  • Control: value (ValueField)
  • Unit: s
  • Default: 0
  • Bound to: CaseState.ignitionStart
  • Value modes: none (plain entry)
  • Shown when: CaseState.solvesPremixedFields && CaseState.ignitionEnabled
  • Control: value (ValueField)
  • Unit: s
  • Default: 0.001
  • Bound to: CaseState.ignitionDuration
  • Value modes: none (plain entry)
  • Shown when: CaseState.solvesPremixedFields && CaseState.ignitionEnabled

Long enough for the kernel to grow past the spark, and no longer.

  • Control: value (ValueField)
  • Default: 2
  • Bound to: CaseState.ignitionStrength
  • Writes: combustionProperties/ignitionSites
  • Value modes: none (plain entry)
  • Shown when: CaseState.solvesPremixedFields && CaseState.ignitionEnabled

How hard the kernel is driven. Too weak and the charge does not light; too strong and the thermo cannot invert the temperature it produces. Each solver is set to its own tutorial’s value when it is chosen, and this overrides that.

  • Control: value (ValueField)
  • Unit: m/s
  • Default: 1.0
  • Bound to: CaseState.burnerFuelVelocity
  • Writes: 0/U
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "burner"

The centre slot. Its ratio to the air speed is what anchors the flame or blows it off.

  • Control: value (ValueField)
  • Unit: m/s
  • Default: 0.5
  • Bound to: CaseState.burnerAirVelocity
  • Writes: 0/U
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "burner"

The two outer slots, co-flowing with the fuel.

  • Control: value (ValueField)
  • Unit: Pa
  • Default: 2e5
  • Bound to: CaseState.throttleDeltaP
  • Value modes: none (plain entry)
  • Shown when: CaseState.vesselKind === "throttle"

What drives the flow, and what decides whether it cavitates: the dynamic head this buys has to take the throat below the vapour pressure. At zero nothing moves.

  • Control: value (ValueField)
  • Unit: K
  • Default: 373.15
  • Bound to: CaseState.saturationTemperature
  • Value modes: none (plain entry)
  • Shown when: root.fam === "cavitation"

Where the liquid boils at the case’s pressure. The condensation and evaporation solvers drive their phase change off it.

  • Control: value (ValueField)
  • Unit: J/kg
  • Default: 2.257e+06
  • Bound to: CaseState.latentHeat
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: value (ValueField)
  • Unit: J/kg·K
  • Default: 4187
  • Bound to: CaseState.liquidCp
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: value (ValueField)
  • Unit: J/kg·K
  • Default: 4187
  • Bound to: CaseState.liquidCv
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: value (ValueField)
  • Unit: W/m·K
  • Default: 0.6
  • Bound to: CaseState.liquidKappa
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: value (ValueField)
  • Unit: J/kg·K
  • Default: 2030
  • Bound to: CaseState.vapourCp
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: value (ValueField)
  • Unit: J/kg·K
  • Default: 1540
  • Bound to: CaseState.vapourCv
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: value (ValueField)
  • Unit: W/m·K
  • Default: 0.025
  • Bound to: CaseState.vapourKappa
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "interCondensatingEvaporatingFoam"

The heat released condensing and absorbed evaporating. This is what drives the phase change; the default is water at atmospheric pressure.

  • Control: choice (ComboRow)
  • Default: SchnerrSauer
  • Bound to: CaseState.cavitationModel
  • Options: SchnerrSauer, Kunz, Merkle (from CaseState.cavitationModels)
  • Writes: transportProperties/phaseChangeTwoPhaseMixture
  • Shown when: root.fam === "cavitation"

The in-app guidance depends on the case:

  • Rate set by a population of nuclei. The usual first choice.
  • Rate scaled on a free-stream speed and a flow time.
  • Control: value (ValueField)
  • Unit: Pa
  • Default: 2300
  • Bound to: CaseState.saturationPressure
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "cavitation"
  • Control: value (ValueField)
  • Default: 1.0
  • Bound to: CaseState.cavitationCoeffC
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "cavitation"
  • Control: value (ValueField)
  • Default: 1.0
  • Bound to: CaseState.cavitationCoeffV
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "cavitation"
  • Control: value (ValueField)
  • Unit: m
  • Default: 2.0e-06
  • Bound to: CaseState.nucleationDiameter
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "cavitation"
  • Control: value (ValueField)
  • Default: 1.6e13
  • Bound to: CaseState.nucleiPerCubicMetre
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "cavitation"
  • Control: choice (ComboRow)
  • Default: Kurganov
  • Bound to: CaseState.fluxScheme
  • Options: Kurganov, Tadmor (from CaseState.fluxSchemes)
  • Writes: fvSchemes/fluxScheme
  • Shown when: root.fam === "supersonic"

Kurganov is the more diffusive and the more forgiving of the two.

  • Control: value (ValueField)
  • Unit: m²/s
  • Default: 4.0e-05
  • Bound to: CaseState.thermalDiffusivity
  • Writes: transportProperties/DT
  • Value modes: none (plain entry)
  • Shown when: root.fam === "conduction"

DT. About 4e-5 for mild steel, 1.4e-7 for water.

  • Control: value (ValueField)
  • Unit: m/s
  • Default: 0.002
  • Bound to: CaseState.settlingVelocity
  • Writes: transportProperties/relativeVelocityModel
  • Value modes: none (plain entry)
  • Shown when: root.fam === "driftFlux"

How fast the solids fall through still liquid.

  • Control: value (ValueField)
  • Unit: m/s
  • Default: 0.434
  • Bound to: CaseState.laminarFlameSpeed
  • Writes: combustionProperties/Su
  • Value modes: none (plain entry)
  • Shown when: root.fam === "premixed"

How fast the front eats into unburnt gas. 0.43 for stoichiometric methane in air.

  • Control: choice (ComboRow)
  • Default: transport
  • Bound to: CaseState.flameWrinklingModel
  • Options: transport, algebraic, fixed (from CaseState.flameWrinklingModels)
  • Writes: combustionProperties/XiModel
  • Shown when: root.fam === "premixed"

How much the turbulence folds the front, and so how much faster it burns than the laminar speed above.

  • Control: choice (ComboRow)
  • Default: C7H16
  • Bound to: CaseState.sprayLiquid
  • Options: C7H16, H2O (from CaseState.sprayLiquids)
  • Writes: sprayCloudProperties
  • Shown when: root.fam === "spray"

Has to be a liquid the solver has property tables for, and it becomes a carrier species so the vapour has somewhere to go.

  • Control: value (ValueField)
  • Unit: rpm
  • Default: 1000
  • Bound to: CaseState.frameRpm
  • Writes: SRFProperties/rpmCoeffs/rpm
  • Value modes: none (plain entry)
  • Shown when: root.fam === "srf"

The whole mesh turns at this rate; the velocity solved for is relative to the frame. At the edge of the domain, … m out, that is … m/s - Mach ….

  • Control: value (ValueField)
  • Bound to: CaseState.srfAxis
  • Writes: SRFProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam !== "srf"
  • Control: value (ValueField)
  • Bound to: CaseState.srfAxis
  • Writes: SRFProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam !== "srf"
  • Control: value (ValueField)
  • Bound to: CaseState.srfAxis
  • Writes: SRFProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam !== "srf"
  • Control: value (ValueField)
  • Bound to: CaseState.srfOrigin
  • Writes: SRFProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam !== "srf"
  • Control: value (ValueField)
  • Bound to: CaseState.srfOrigin
  • Writes: SRFProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam !== "srf"
  • Control: value (ValueField)
  • Bound to: CaseState.srfOrigin
  • Writes: SRFProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam !== "srf"
  • Control: value (ValueField)
  • Unit: m
  • Default: 1e-06
  • Bound to: CaseState.stressTolerance
  • Writes: stressAnalysis/D
  • Value modes: none (plain entry)
  • Shown when: root.fam === "solidStress"

An ABSOLUTE displacement, not a relative one, so it has to suit the size of the part: at 1e-6 a micro-scale model is converged before it starts and a large one may never converge at all.

  • Control: value (ValueField)
  • Default: 6
  • Bound to: CaseState.stressAcceleration
  • Writes: stressAnalysis/accelerationFactor
  • Value modes: none (plain entry)
  • Shown when: root.fam === "solidStress"

How hard the equilibrium form marches towards the static solution.

  • Control: value (ValueField)
  • Unit: Pa
  • Default: 2.0e11
  • Bound to: CaseState.youngsModulus
  • Writes: mechanicalProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "solidStress"
  • Control: value (ValueField)
  • Default: 0.3
  • Bound to: CaseState.poissonRatio
  • Writes: mechanicalProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "solidStress"
  • Control: value (ValueField)
  • Unit: kg/m³
  • Default: 7854
  • Bound to: CaseState.solidDensity
  • Writes: mechanicalProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "solidStress"
  • Control: value (ValueField)
  • Unit: m²/V·s
  • Default: 1.0e-07
  • Bound to: CaseState.chargeMobility
  • Writes: physicalProperties/k
  • Value modes: none (plain entry)
  • Shown when: root.fam === "electrostatic"
  • Control: value (ValueField)
  • Unit: H/m
  • Default: 1.0
  • Bound to: CaseState.magneticPermeability
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "mhd"
  • Control: value (ValueField)
  • Unit: S/m
  • Default: 1.0
  • Bound to: CaseState.electricalConductivity
  • Writes: transportProperties
  • Value modes: none (plain entry)
  • Shown when: root.fam === "mhd"
  • Control: value (ValueField)
  • Unit: T
  • Default: 1.2
  • Bound to: CaseState.magnetRemanence
  • Writes: magnetProperties/magnets
  • Value modes: none (plain entry)
  • Shown when: root.fam === "magnetic"

Br, the field the magnet retains with nothing applied. This is the magnet’s strength and the whole source of the solution.

  • Control: value (ValueField)
  • Default: 1.05
  • Bound to: CaseState.magnetPermeability
  • Writes: magnetProperties/magnets
  • Value modes: none (plain entry)
  • Shown when: root.fam === "magnetic"

mu_r of the magnet body. Near 1 for a modern rare-earth magnet, which is why it barely distorts the field it sits in.

  • Control: choice (ComboRow)
  • Default: (0 1 0)
  • Bound to: CaseState.magnetOrientation
  • Options: X, Y, Z
  • Writes: magnetProperties/magnets
  • Shown when: root.fam === "magnetic"

Which way the poles face. Turning it turns the whole field.

  • Control: value (ValueField)
  • Unit: Pa
  • Default: 10000
  • Bound to: CaseState.plateTraction
  • Writes: 0/D
  • Value modes: none (plain entry)
  • Shown when: root.fam === "solidStress"

Pulled along x on the far edge of the quarter plate; the other free edges carry none. At zero nothing is loaded and every stress in the result is zero.

  • Control: value (ValueField)
  • Unit: T
  • Default: 0
  • Bound to: CaseState.appliedFieldStrength
  • Writes: 0/B
  • Value modes: none (plain entry)
  • Shown when: root.fam === "mhd"

Uniform, across the flow. Zero is a legitimate answer - it means no applied field, and the flow makes whatever field it makes - but then nothing in the case is magnetohydrodynamic. Alfvén speed … m/s against a … m/s flow.

  • Control: value (ValueField)
  • Default: 1e-4
  • Bound to: CaseState.shapeLambda
  • Writes: constant/transportProperties/lambda
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "adjointShapeOptimizationFoam"

How hard a cell is pushed toward being solid. The bundled tutorial’s value, 1e-4, is a reasonable starting point — too large and the topology thrashes between iterations rather than converging.

  • Control: value (ValueField)
  • Default: 200
  • Bound to: CaseState.shapeAlphaMax
  • Writes: constant/transportProperties/alphaMax
  • Value modes: none (plain entry)
  • Shown when: CaseState.solver === "adjointShapeOptimizationFoam"

How far the penalisation can push: the Darcy resistance a fully ‘solid’ cell reaches. Larger makes a converged solid region behave more like a true wall; too large slows convergence for little topological change.

The application reports no problems against this step.


… marks a value the application computes at run time, so the source carries no fixed text for it.