Delta-M scaling

For strongly forward-peaked phase functions (large asymmetry parameter \(g\)), a modest number of quadrature streams cannot resolve the narrow forward lobe. The delta-M method (Wiscombe 1977) truncates the Legendre expansion at \(2M\) terms and absorbs the unresolved forward peak into the direct beam and the optical properties. It is enabled by the use_delta_m flag.

Truncation fraction

The fraction of scattered energy in the truncated forward peak is

\[f = \chi_{2M},\]

the \(2M\)-th reduced Legendre moment. Scaling is applied only when \(f\) is non-negligible (\(f > 10^{-12}\)). This is why, with delta-M enabled, allocate() provisions \(2M+1\) moments per layer rather than \(2M\).

Scaled optical properties

The layer optical depth and single-scattering albedo are replaced by

(11)\[\tau^* = (1 - \omega f)\,\tau, \qquad \omega^* = \frac{\omega(1-f)}{1-\omega f}.\]

The absorption optical depth is invariant: \((1-\omega^*)\tau^* = (1-\omega)\tau\).

Truncated phase function

The truncated (rescaled) reduced coefficients are

(12)\[\chi^*_\ell = \frac{\chi_\ell - f}{1 - f}, \qquad \ell = 0, 1, \dots, 2M-1.\]

Normalisation is preserved (\(\chi^*_0 = 1\)). The phase matrices and solar phase vectors are built from these truncated coefficients using the formulae of Phase-function treatment.

Effect on the solar beam

The forward-scattered light is now treated as part of the direct beam, so the direct-beam attenuation and all cumulative optical depths use the scaled \(\tau^*\) throughout the doubling and adding steps.

Applicability

For Rayleigh scattering \(\chi_\ell = 0\) for \(\ell > 2\), so \(f = 0\) for any \(M \geq 2\) and no scaling is applied. Delta-M is most beneficial for Henyey–Greenstein phase functions with \(g \gtrsim 0.7\), where it dramatically reduces the number of streams required for convergence.

Important

The heating-rate and flux-divergence quantities use the unscaled single-scattering albedo \(\omega\) in (6), even when delta-M scaling is active, because the absorption is invariant under the scaling.