v2026.11.16174
Reference / Input deck / solver / reference conditions / profile / abl

abl

Atmospheric Boundary Layer profile parameters

roughness lengthrequired
float·required·> 0

Surface roughness length in meters. Must be positive. This is the aerodynamic roughness z₀ in the log-law profile (not to be confused with 'ground_level', which is a ground datum elevation, not a roughness).

Used incanopy
Guidance: Choosing initialisation and reference state →
friction velocity
float·not set by default·> 0·'friction velocity' is required when solver.solver settings.type is 'compressible' and surface layer height is unset

Friction velocity in m/s. Must be positive when set. The compressible solver needs friction_velocity, surface_layer_height or both.

Used incanopy
Guidance: Choosing initialisation and reference state →
surface layer height
float·not set by default·> 0·'surface layer height' only applies when solver.solver settings.type is one of unset, 'compressible'

Height of the surface layer (m) that the log-law profile applies within; above this height the profile is clamped. C++ sentinel default is -1.0 (unset): the compressible read sites then derive it from roughness_length and friction_velocity when both are set.

Guidance: Choosing initialisation and reference state →
monin obukhov length
float·not set by default·'monin obukhov length' only applies when solver.solver settings.type is one of unset, 'compressible'

Monin-Obukhov stability length L (m). Negative values are read as unstable and add a stability correction to the log-law velocity/TKE/epsilon (only when L < 0 — the current C++ never applies a correction for L > 0, i.e. stable stratification is not represented here). Zero is not a valid value. The solver's local default is +1.0 (a positive, 'no correction' value) when the key is absent — this is the effective neutral default. Leave unset for neutral stability.

Guidance: Choosing initialisation and reference state →
tke Reference TKE
float·not set by default·>= 0·'tke' only applies when solver.solver settings.type is one of unset, 'compressible'

Reference turbulent kinetic energy (m^2/s^2), scaled by friction_velocity**2 to give the profile's TKE. Only applied when friction_velocity is also set — if friction_velocity is absent, the solver discards this value with a warning and derives TKE from the wall distance instead.

Guidance: Choosing initialisation and reference state →
up
vector (3 floats)·not set by default·'up' only applies when solver.solver settings.type is one of unset, 'compressible'

Unit vector [x, y, z] defining the vertical ('up') direction used with ground_level to compute height above ground as dot(position, up) - ground_level. Default when unset is (0, 0, 1).

Guidance: Choosing initialisation and reference state →
ground level
float·default 0·>= 0·'ground level' only applies when solver.solver settings.type is one of unset, 'compressible'

Datum elevation of the ground (m) in the mesh's own coordinate system, measured along 'up'. Subtracted from dot(position, up) before the log-law height is computed, as height = min(dot(p, up) - ground_level, surface_layer_height) — it shifts where the profile's height origin sits, it is NOT a measurement or reference height. This is unrelated to the aerodynamic roughness length z₀ (that's 'roughness_length' above) and unrelated to ABLZone.reference_height. NOTE: the initial-condition profile reads this key but never applies it to the initial field — only the farfield BC profile honours it — so a mesh with a non-zero ground datum gets inconsistent IC/BC profiles.

Used incanopy
Guidance: Choosing initialisation and reference state →