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.
Physics
Where it is
Not a setup-tree node. Embedded in the application.
Controls
Phases (…)
Surface tension
- 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.
+ Add phase
- Control: action (
ToolButton2)
Reset to water / oil / air
- Control: action (
ToolButton2)
Interface
Capture scheme
- 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.
Compression
- 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.
Interface correctors
- 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.
Alpha sub-cycles
- 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.
Semi-implicit MULES
- 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.
Isotropic compression
- 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.
Outer correctors
- 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.
Limit velocity
- 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.
Velocity limit
- 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.
Inner correctors
- 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.
Momentum predictor
- 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.
Correct fluxes
- 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.
Iso face tolerance
- 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.
Surface cell tolerance
- 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.
Alpha bound passes
- 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.
Interface Courant limit
- 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.
Acoustic Courant limit
- 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.
Bed packing threshold
- 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.
Fill to
- 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.
Make it a box and a subdomain
- Control: action (
ToolButton2) - Shown when:
CaseState.twoPhaseVof && CaseState.fillEnabled - Enabled when:
CaseState.fillLevel > 0
Width
- 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.
Height
- Control: value (
ValueField) - Unit: m
- Default:
2.18 - Bound to:
CaseState.cavityHeight - Value modes: none (plain entry)
- Shown when:
CaseState.vesselKind === "cavity"
Depth
- 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.
Hot face
- 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.
Cold face
- Control: value (
ValueField) - Unit: K
- Default:
288.15 - Bound to:
CaseState.cavityColdT - Value modes: none (plain entry)
- Shown when:
CaseState.sealedVessel
Across the pair
- 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.
Sparger velocity
- 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.
Engine
Speed
- Control: value (
ValueField) - Unit: rpm
- Default:
1500 - Bound to:
CaseState.engineRpm - Value modes: none (plain entry)
- Shown when:
CaseState.isEngineSolver
Turbulence box
Forcing amplitude
- 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.
Forcing time constant
- Control: value (
ValueField) - Default:
0.81532 - Bound to:
CaseState.dnsUOalpha - Value modes: none (plain entry)
- Shown when:
CaseState.periodicBox
Forced wavenumbers, from
- 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.
to
- Control: value (
ValueField) - Default:
10 - Bound to:
CaseState.dnsUOKupper - Value modes: none (plain entry)
- Shown when:
CaseState.periodicBox
Initial spectrum peak
- 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.
at wavenumber
- Control: value (
ValueField) - Default:
5 - Bound to:
CaseState.dnsK0 - Value modes: none (plain entry)
- Shown when:
CaseState.periodicBox
Wall film
Film density
- Control: value (
ValueField) - Unit: kg/m³
- Default:
100.0 - Bound to:
CaseState.filmLiquidRho - Value modes: none (plain entry)
- Shown when:
CaseState.finiteArea
Film viscosity
- Control: value (
ValueField) - Unit: m²/s
- Default:
1e-3 - Bound to:
CaseState.filmLiquidNu - Value modes: none (plain entry)
- Shown when:
CaseState.finiteArea
Gas density
- Control: value (
ValueField) - Unit: kg/m³
- Default:
1.0 - Bound to:
CaseState.filmGasRho - Value modes: none (plain entry)
- Shown when:
CaseState.finiteArea
Gas viscosity
- Control: value (
ValueField) - Unit: m²/s
- Default:
0.0 - Bound to:
CaseState.filmGasNu - Value modes: none (plain entry)
- Shown when:
CaseState.finiteArea
Surface tension
- 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.
Minimum thickness
- 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.
Waves
Wave model
- Control: choice (
ComboRow) - Default:
StokesII - Bound to:
CaseState.waveModel - Options:
StokesI,StokesII,StokesV,cnoidal,Grimshaw,streamFunction,JONSWAP(fromCaseState.waveModels) - Writes:
waveProperties - Shown when:
root.fam === "marine"
Significant height Hs
- Control: value (
ValueField) - Unit: m
- Default:
2.0 - Bound to:
CaseState.waveHs - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Peak period Tp
- Control: value (
ValueField) - Unit: s
- Default:
8.0 - Bound to:
CaseState.waveTp - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Peak enhancement γ
- Control: value (
ValueField) - Default:
3.3 - Bound to:
CaseState.waveGamma - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Components
- Control: value (
ValueField) - Default:
40 - Bound to:
CaseState.waveComponentCount - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Heading
- Control: value (
ValueField) - Unit: °
- Default:
0.0 - Bound to:
CaseState.waveAngleDeg - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Water depth
- Control: value (
ValueField) - Unit: m
- Default:
10.0 - Bound to:
CaseState.waterDepth - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Wave height
- Control: value (
ValueField) - Unit: m
- Default:
1.0 - Bound to:
CaseState.waveHeight - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Period
- Control: value (
ValueField) - Unit: s
- Default:
6.0 - Bound to:
CaseState.wavePeriod - Writes:
waveProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "marine"
Interphase forces
Dispersed phase
- 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.
Dispersed diameter
- 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
Drag
- Control: choice (
ComboRow) - Default:
SchillerNaumann - Bound to:
CaseState.dragModel - Options:
SchillerNaumann,WenYu,GidaspowErgunWenYu,Ergun,Lain(fromCaseState.dragModels) - Writes:
phaseProperties/drag - Shown when:
root.fam === "euler"
Not optional. Without drag the phases pass through each other.
Lift
- Control: choice (
ComboRow) - Default:
none - Bound to:
CaseState.liftModel - Options:
none,constantCoefficient,Tomiyama,Moraga,LegendreMagnaudet(fromCaseState.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.
Virtual mass
- 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.
Initial dispersed fraction
- Control: value (
ValueField) - Default:
0.0 - Bound to:
CaseState.dispersedAlpha - Value modes: none (plain entry)
- Shown when:
root.fam === "euler"
Particles
Two-way coupled
- 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.
Carrier phase name
- 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.
Injection
- Control: choice (
ComboRow) - Default:
patchInjection - Bound to:
CaseState.injectionModel - Options:
patchInjection,coneInjection,manualInjection(fromCaseState.injectionModels) - Writes:
kinematicCloudProperties/injectionModels - Shown when:
root.fam === "lagrangian"
Injection patch
- Control: choice (
ComboRow) - Bound to:
CaseState.effectiveInjectionPatch - Shown when:
root.fam === "lagrangian" && CaseState.injectionModel === "patchInjection"
Breakup model
- Control: choice (
ComboRow) - Default:
ReitzDiwakar - Bound to:
CaseState.breakupModel - Options:
none,ReitzDiwakar,ReitzKHRT(fromCaseState.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".
Size distribution
- Control: choice (
ComboRow) - Default:
fixedValue - Bound to:
CaseState.sizeDistribution - Options:
fixedValue,uniform,RosinRammler(fromCaseState.sizeDistributions) - Shown when:
root.fam === "lagrangian"
The usual description of a spray or a milled powder.
Particle density
- 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")
Diameter
- 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")
Injection temperature
- 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")
Minimum diameter
- 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")
Maximum diameter
- 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")
Distribution exponent
- 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")
Mass flow
- 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")
Injection time
- 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")
Injection speed
- 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")
Parcels per second
- 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")
Drag law
- Control: choice (
ComboRow) - Default:
sphereDrag - Bound to:
CaseState.parcelDrag - Options:
sphereDrag,nonSphereDrag,distortedSphereDrag - Shown when:
root.fam === "lagrangian"
Max packing (alphaMax)
- 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)
Young's modulus
- 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)
Poisson's ratio
- 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)
Combustion
Combustion model
- Control: choice (
ComboRow) - Default:
PaSR - Bound to:
CaseState.combustionModel - Options:
laminar,PaSR,EDC,infinitelyFastChemistry,diffusion(fromCaseState.combustionModels) - Writes:
combustionProperties - Shown when:
root.fam === "reacting"
Solve chemistry
- Control: on/off (
ToggleRow) - Default:
true - Bound to:
CaseState.chemistryActive - Writes:
chemistryProperties/chemistry - Shown when:
root.fam === "reacting"
Chemistry solver
- Control: choice (
ComboRow) - Default:
EulerImplicit - Bound to:
CaseState.chemistrySolver - Options:
EulerImplicit,ode,none(fromCaseState.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.
Species
- 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/.
Fuel
- Control: choice (
ComboRow) - Default:
CH4 - Bound to:
CaseState.fuelSpecies - Shown when:
root.fam === "reacting"
Oxidiser
- Control: choice (
ComboRow) - Default:
O2 - Bound to:
CaseState.oxidiserSpecies - Shown when:
root.fam === "reacting"
Inert
- Control: choice (
ComboRow) - Default:
N2 - Bound to:
CaseState.inertSpecies - Shown when:
root.fam === "reacting"
Initial temperature
- 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.
Radiation
- 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.
Radiation model
- Control: choice (
ComboRow) - Default:
P1 - Bound to:
CaseState.radiationModel - Options:
P1,View factor(fromCaseState.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.
Absorptivity
- 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")
Emissivity
- 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")
Wall emissivity
- 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")
Solve every
- 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")
Radiating faces per wall
- 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")
Atmospheric boundary layer
Terrain
- Control: choice (
ComboRow) - Bound to:
CaseState.terrainCategories - Options:
Sea or coastal,Open flat country,Farmland with hedges,Suburban or industrial,Urban(fromCaseState.terrainCategories) - Writes:
0/U/inlet/z0 - Shown when:
root.fam === "atmospheric"
Roughness length z₀
- 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"
Reference speed
- 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"
Reference height
- 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"
Ground level
- 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"
Coriolis force
- 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.
Latitude
- 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.
Plant canopy
- 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.
Drag coefficient (Cd)
- 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)
Leaf area density
- 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)
Transported scalar
Field name
- Control: value (
ValueField) - Default:
s - Bound to:
CaseState.scalarName - Writes:
0/… - Value modes: none (plain entry)
- Shown when:
root.fam === "scalar"
Molecular diffusivity
- 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"
Initial value
- Control: value (
ValueField) - Default:
0.0 - Bound to:
CaseState.scalarInitial - Writes:
controlDict/functions - Value modes: none (plain entry)
- Shown when:
root.fam === "scalar"
Inlet value
- Control: value (
ValueField) - Default:
1.0 - Bound to:
CaseState.scalarInlet - Writes:
controlDict/functions - Value modes: none (plain entry)
- Shown when:
root.fam === "scalar"
Turbulent diffusion
- 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.
Turbulent Schmidt number
- Control: value (
ValueField) - Default:
0.7 - Bound to:
CaseState.turbulentSchmidt - Value modes: none (plain entry)
- Shown when:
root.fam === "scalar" && CaseState.scalarTurbulentSchmidt
Viscosity
Model
- Control: choice (
ComboRow) - Default:
Newtonian - Bound to:
CaseState.viscosityModel - Options:
Newtonian,CrossPowerLaw,BirdCarreau,powerLaw,HerschelBulkley(fromCaseState.viscosityModels) - Writes:
transportProperties/transportModel - Shown when:
["incompressible", "vof", "marine", "cavitation", "miscible", "atmospheric", "scalar", "lagrangian", "srf"] .indexOf(root.fam) >= 0
Viscosity at zero shear
- 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"
Viscosity at infinite shear
- 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"
Ignition
Light the charge
- 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.
Kernel diameter
- 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.
Starts at
- Control: value (
ValueField) - Unit: s
- Default:
0 - Bound to:
CaseState.ignitionStart - Value modes: none (plain entry)
- Shown when:
CaseState.solvesPremixedFields && CaseState.ignitionEnabled
Held for
- 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.
Spark strength
- 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.
Fuel inlet speed
- 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.
Air inlet speed
- 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.
Pressure across the orifice
- 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.
Saturation temperature
- 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.
Latent heat
- 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.
Liquid Cp
- 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.
Liquid Cv
- 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.
Liquid conductivity
- 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.
Vapour Cp
- 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.
Vapour Cv
- 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.
Vapour conductivity
- 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.
Mass-transfer model
- Control: choice (
ComboRow) - Default:
SchnerrSauer - Bound to:
CaseState.cavitationModel - Options:
SchnerrSauer,Kunz,Merkle(fromCaseState.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.
Saturation pressure
- Control: value (
ValueField) - Unit: Pa
- Default:
2300 - Bound to:
CaseState.saturationPressure - Writes:
transportProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "cavitation"
Condensation coefficient
- Control: value (
ValueField) - Default:
1.0 - Bound to:
CaseState.cavitationCoeffC - Writes:
transportProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "cavitation"
Vaporisation coefficient
- Control: value (
ValueField) - Default:
1.0 - Bound to:
CaseState.cavitationCoeffV - Writes:
transportProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "cavitation"
Nucleus diameter
- 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"
Nuclei per m³
- Control: value (
ValueField) - Default:
1.6e13 - Bound to:
CaseState.nucleiPerCubicMetre - Writes:
transportProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "cavitation"
Flux scheme
- Control: choice (
ComboRow) - Default:
Kurganov - Bound to:
CaseState.fluxScheme - Options:
Kurganov,Tadmor(fromCaseState.fluxSchemes) - Writes:
fvSchemes/fluxScheme - Shown when:
root.fam === "supersonic"
Kurganov is the more diffusive and the more forgiving of the two.
Thermal diffusivity
- 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.
Settling velocity
- 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.
Laminar flame speed
- 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.
Flame wrinkling
- Control: choice (
ComboRow) - Default:
transport - Bound to:
CaseState.flameWrinklingModel - Options:
transport,algebraic,fixed(fromCaseState.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.
Sprayed liquid
- Control: choice (
ComboRow) - Default:
C7H16 - Bound to:
CaseState.sprayLiquid - Options:
C7H16,H2O(fromCaseState.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.
Rotation rate
- 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 ….
Axis x
- Control: value (
ValueField) - Bound to:
CaseState.srfAxis - Writes:
SRFProperties - Value modes: none (plain entry)
- Shown when:
root.fam !== "srf"
Axis y
- Control: value (
ValueField) - Bound to:
CaseState.srfAxis - Writes:
SRFProperties - Value modes: none (plain entry)
- Shown when:
root.fam !== "srf"
Axis z
- Control: value (
ValueField) - Bound to:
CaseState.srfAxis - Writes:
SRFProperties - Value modes: none (plain entry)
- Shown when:
root.fam !== "srf"
Origin x
- Control: value (
ValueField) - Bound to:
CaseState.srfOrigin - Writes:
SRFProperties - Value modes: none (plain entry)
- Shown when:
root.fam !== "srf"
Origin y
- Control: value (
ValueField) - Bound to:
CaseState.srfOrigin - Writes:
SRFProperties - Value modes: none (plain entry)
- Shown when:
root.fam !== "srf"
Origin z
- Control: value (
ValueField) - Bound to:
CaseState.srfOrigin - Writes:
SRFProperties - Value modes: none (plain entry)
- Shown when:
root.fam !== "srf"
Solver
Displacement tolerance
- 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.
Acceleration factor
- 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.
Material
Young's modulus
- Control: value (
ValueField) - Unit: Pa
- Default:
2.0e11 - Bound to:
CaseState.youngsModulus - Writes:
mechanicalProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "solidStress"
Poisson's ratio
- Control: value (
ValueField) - Default:
0.3 - Bound to:
CaseState.poissonRatio - Writes:
mechanicalProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "solidStress"
Density
- Control: value (
ValueField) - Unit: kg/m³
- Default:
7854 - Bound to:
CaseState.solidDensity - Writes:
mechanicalProperties - Value modes: none (plain entry)
- Shown when:
root.fam === "solidStress"
Charge mobility
- 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"
Magnetic permeability
- 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"
Electrical conductivity
- 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"
Remanence
- 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.
Relative permeability
- 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.
Magnetised along
- 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.
Edge traction
- 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.
Applied field
- 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.
TOPOLOGY OPTIMISATION
Penalisation λ
- 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.
Maximum porosity αmax
- 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.
Problems reported against this step
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.