Exact laws (KHM)
The Kármán–Howarth–Monin exact laws relate a third-order structure function in the inertial range to a dissipation or flux. StructureFunctions.KHM inverts them on already-binned results and reports the residual of each law. Every law is stated for one specific moment, and the laws are not interchangeable: applying the four-fifths law to S3SF returns a number that is wrong by exactly 5/3 and looks entirely reasonable.
| law | moment | operator | relation | inversion |
|---|---|---|---|---|
| four-fifths (Kolmogorov 1941) | $⟨δu_L³⟩$ | L3SFType | $⟨δu_L³⟩ = -\tfrac{4}{5} ε r$ | KHM.epsilon_from_four_fifths |
| four-thirds | $⟨δu_L ‖δu‖²⟩$ | S3SFType | $⟨δu_L ‖δu‖²⟩ = -\tfrac{4}{3} ε r$ | KHM.epsilon_from_four_thirds |
| Yaglom | $⟨δu_L (δθ)²⟩$ | MixedSFType{1,0,2} | $⟨δu_L (δθ)²⟩ = -\tfrac{4}{3} ε_θ r$ | KHM.epsilon_theta_from_yaglom |
using StructureFunctions: StructureFunctions as SF, Calculations as SFC, StructureFunctionTypes as SFT
res = SFC.calculate_structure_function(SFT.L3SFType(), x, u, bins)
r = SF.midpoints(res.distance)
ε = SF.KHM.epsilon_from_four_fifths(r, res.values) # one estimate per bin; flat in the inertial range
SF.KHM.four_fifths_residual(r, res.values, ε[5]) # how far each bin is from the law at that εThe residual of the planar isotropy relation between the longitudinal and transverse second-order functions, $D_{TT} = D_{LL} + r\,\mathrm{d}D_{LL}/\mathrm{d}r$ in two dimensions (Lindborg 1999, eq. 53), is KHM.transverse_incompressibility_residual; on a sphere it holds only to $O((r/R)^2)$.
These are inertial-range relations for homogeneous isotropic turbulence with a single cascade. A synthetic Gaussian field has no cascade and its third-order moments are consistent with zero, so the laws have nothing to recover there; the spectral flux relations of the transforms (spectral_flux, enstrophy_flux) and the regularised fits (fit_flux) are the scale-resolved counterparts.
Functions
StructureFunctions.KHM — Module
Basic homogeneous/isotropic KHM exact-law diagnostics.
This module intentionally works on already-binned scalar outputs. Full KHMH or AGKE budgets need additional fields such as viscosity, forcing, pressure, inhomogeneous transport terms, and temporal tendencies.
StructureFunctions.KHM.epsilon_from_four_fifths — Method
epsilon_from_four_fifths(r, L3)Dissipation from Kolmogorov's four-fifths law, $⟨δu_L³⟩ = -(4/5) ε r$.
L3 is L3SF, the third-order longitudinal structure function $⟨δu_L³⟩$ — not S3SF, which is $⟨δu_L‖δu‖²⟩$ and obeys the four-thirds law instead (see epsilon_from_four_thirds). The two differ by a factor of 5/3, so passing the wrong one returns a wrong ε that looks entirely reasonable.
StructureFunctions.KHM.epsilon_from_four_thirds — Method
epsilon_from_four_thirds(r, S3)Dissipation from the four-thirds law, $⟨δu_L‖δu‖²⟩ = -(4/3) ε r$.
S3 is S3SF, the package's third-order mixed structure function. This is the law that quantity obeys; L3SF obeys the four-fifths law (see epsilon_from_four_fifths).
StructureFunctions.KHM.epsilon_theta_from_yaglom — Method
epsilon_theta_from_yaglom(r, LS2)Scalar dissipation from Yaglom's law, $⟨δu_L (δθ)²⟩ = -(4/3) ε_θ r$.
LS2 is the mixed velocity–scalar moment MixedSFType{1,0,2} computes. The quantity returned is ε_θ, the dissipation of scalar variance — a different quantity from the ε of the velocity laws, and not interchangeable with it.
StructureFunctions.KHM.finite_difference — Method
finite_difference(r, y)Second-order centered finite difference on nonuniform coordinates, using one-sided differences at the endpoints.
StructureFunctions.KHM.four_fifths_residual — Method
four_fifths_residual(r, L3, epsilon)Residual of $⟨δu_L³⟩ = -(4/5) ε r$. L3 is L3SF, as in epsilon_from_four_fifths.
StructureFunctions.KHM.four_thirds_residual — Method
four_thirds_residual(r, S3, epsilon)Residual of $⟨δu_L‖δu‖²⟩ = -(4/3) ε r$.
StructureFunctions.KHM.transverse_incompressibility_residual — Method
transverse_incompressibility_residual(r, D_LL, D_TT; dimension=3)Residual of the isotropic incompressibility relation $D_TT = D_LL + r/(D-1) dD_LL/dr$.
StructureFunctions.KHM.yaglom_residual — Method
yaglom_residual(r, LS2, epsilon_theta)Residual of $⟨δu_L (δθ)²⟩ = -(4/3) ε_θ r$.