Operators

An operator names the statistic of a pair's increment that is accumulated. Every pairwise operator is callable on one pair, sf(δu, r̂), and the transforms consume it through its polynomial contract (moment_contract). The shorthands L2SFType, T2SFType, S3SFType, … are re-exported from the top-level module; the instances L2SF, T2SF, … are the same operators already constructed.

StructureFunctions.StructureFunctionTypes.MixedStructureFunctionType — Type
MixedStructureFunctionType{NL, NT, P}(vector_field = 1, scalar_field = 1)

$⟨δu_L^{NL} ‖δu_T‖^{NT} (δθ)^P⟩$ — a velocity–scalar mixed moment.

{1, 0, 2} is Yaglom's law, $⟨δu_L (δθ)²⟩ = −(4/3) ε_θ r$; {1, 0, 1} is the flux of the tracer itself. The velocity part is read from a transported vector field and the scalar part from a differenced scalar field, so the two never mix frames.

source
StructureFunctions.StructureFunctionTypes.MomentTensorOperator — Type
MomentTensorOperator{P}()

The transform engine's request for the whole rank-P increment moment tensor M[i₁, …, i_P] = Σ_pairs Π_k δu[i_k] of a field's vector field, in place of one scalar contraction of it. It has no value on a single pair. In a fixed Cartesian frame an odd rank changes sign when a pair is read from its other end, exactly as an odd scalar increment does, so it takes the same canonical pair reading; in a pair's own geodesic frame the components are read the same from either end and no reading enters.

source
StructureFunctions.StructureFunctionTypes.ProjectedStructureFunctionType — Type
ProjectedStructureFunctionType{NL, NT}(basis = CanonicalTransverseBasis())

Operator δu_L^NL · δu_T^NT: NL powers of the longitudinal increment δu·r̂ and NT of the transverse one. NT = 2 is the invariant transverse energy ‖δu‖² − δu_L²; every other NT is the signed component along the first vector of transverse_basis(basis, r̂), so the sign of an odd NT is the convention's. SFH.CanonicalTransverseBasis is n̂, the turn about ẑ. The basis travels with the operator into every result.

The two readings differ only for D ≥ 3, where the transverse plane has more than one direction; in 2-D ‖δu_T‖² = (δu·n̂)². They cannot be unified: ‖δu_T‖^NT is a polynomial in δu only for even NT, since ‖δu_T‖² = ‖δu‖² − δu_L² and an odd power needs the square root, so odd NT admits the component reading alone. NT = 2 is the energy because that is the quantity the second-order relations are written in — the Helmholtz split and the D_LL/D_TT isotropy relations all take it. TransverseComponentSecondOrderStructureFunctionType is the per-component form, ‖δu_T‖²/(D−1).

source
StructureFunctions.StructureFunctionTypes.VectorDotStructureFunctionType — Type
VectorDotStructureFunctionType(a, b)

$⟨δu^{(a)} · δu^{(b)}⟩$ — a second-order cross-field vector moment.

(1, 1) is S2SF: the existing second-order operator is this one's diagonal, not a separate thing. (a, b) with a ≠ b is ⟨δu · δ𝓐_u⟩, the advective structure function, which holds without isotropy — the reason it is worth having beside the third-order laws.

source