The T-matrix method#

The transition matrix (or T-matrix) method is the standard tool for computing electromagnetic scattering by nonspherical particles whose shape is a rotationally-symmetric surface of revolution — the regime that covers essentially every meteorological hydrometeor except the fully tumbling snowflake. It was introduced by Waterman [Waterman, 1971] under the name extended boundary condition method, and reached its modern, numerically-robust formulation in Mishchenko’s FORTRAN implementation [Mishchenko and Travis, 1998] — the reference code whose orientation-averaging kernel rustmatrix re-implements in Rust.

What the T-matrix is#

For a single scatterer illuminated by an incident field expanded in vector spherical harmonics with coefficients \(\{a_{mn}, b_{mn}\}\), the scattered field has expansion coefficients \(\{p_{mn}, q_{mn}\}\) given by the linear map

\[\begin{split} \begin{pmatrix} p \\ q \end{pmatrix} = \mathbf{T}\begin{pmatrix} a \\ b \end{pmatrix}. \end{split}\]

The matrix \(\mathbf{T}\) is a property of the particle alone — its shape, size, refractive index, and wavelength — and is independent of the incident direction. Once \(\mathbf{T}\) is known, any scattering quantity (amplitude matrix, phase matrix, cross sections, polarimetric observables) at any incident / scattered geometry follows from a cheap rotation and contraction. The expensive step is computing \(\mathbf{T}\) itself.

For an axisymmetric particle, \(\mathbf{T}\) is block-diagonal in the azimuthal index \(m\), and each block is found by inverting a matrix built from surface integrals of spherical Bessel / Hankel functions over the generating curve of the particle (a spheroid in the rustmatrix case). This is the kernel that rustmatrix ports to Rust.

The spheroidal approximation#

Every hydrometeor model in rustmatrix — raindrops, oriented ice columns, aggregates, graupel, hail — is a spheroid (oblate or prolate) parameterised by

  • an equivalent-volume radius \(r_\mathrm{eq}\),

  • an axis ratio \(h/v\) (horizontal over vertical), and

  • a complex refractive index \(m\) at the radar wavelength.

For rain, the axis ratio is a function of equivolume diameter (see polarimetry and drop-shape relations in the tutorials); the canonical choice in rustmatrix is [Thurai et al., 2007], with [Pruppacher and Beard, 1970] and [Beard and Chuang, 1987] also tabulated in rustmatrix.tmatrix_aux.

The spheroidal approximation is exact in the Mie limit (sphere) and accurate for pristine columnar / plate ice; it becomes progressively less faithful for aggregates. [Honeyager, 2013] argues that a single well-parameterised spheroid still captures the bulk dual- frequency signatures of aggregates, graupel, and dense ice, and the hydrometeor-class tutorial reproduces that result with rustmatrix.

Orientation averaging#

Real populations of hydrometeors are not a single fixed orientation. Raindrops flutter; ice columns cant around a mean orientation with a Gaussian distribution of canting angles; tumbling aggregates approach random orientation. rustmatrix supports

  • fixed orientation (direct T-matrix at a specified canting angle),

  • Gaussian canting around a mean (numerical quadrature over the canting PDF), and

  • full random orientation (closed-form averaging of \(\mathbf{T}\)).

The Rust kernel parallelises the Gaussian-canting quadrature across cores via rayon, which is where the ~6–430× speedups over pytmatrix come from — orientation averaging is the hot loop in nearly every PSD tabulation.

PSD integration#

A radar echo is not a single particle. It is an integral over the particle size distribution (PSD):

\[ Z_{hh} = \frac{\lambda^4}{\pi^5 |K_w|^2} \int |S_{hh}(D)|^2 \, N(D)\, dD. \]

rustmatrix.psd.PSDIntegrator precomputes the amplitude matrix \(\mathbf{S}(D)\) and phase matrix \(\mathbf{Z}(D)\) on a grid of diameters (done once per scatterer, in parallel Rust), then evaluates arbitrary PSD shapes against the cached table — so changing a gamma shape parameter is free after the first integration. See [Bringi and Chandrasekar, 2001] for the observable definitions and the PSD background page for the analytical forms.

What rustmatrix inherits from pytmatrix#

The numerical T-matrix core is a faithful port of the Mishchenko/Leinonen FORTRAN implementation [Mishchenko and Travis, 1998] that pytmatrix also wraps — same quadrature scheme, same orientation-averaging formulation, same drop- shape tables. What changes is how the core is executed: Rust + rayon in place of Fortran + GIL-bound Python glue. The parity tutorial shows the T-matrix-at-sphere agreement with closed-form Mie to ~1e-4.

Further reading#

[BC87]

K. V. Beard and C. Chuang. A new model for the equilibrium shape of raindrops. Journal of the Atmospheric Sciences, 44(11):1509–1524, 1987. doi:10.1175/1520-0469(1987)044<1509:ANMFTE>2.0.CO;2.

[BC01] (1,2)

V. N. Bringi and V. Chandrasekar. Polarimetric Doppler Weather Radar: Principles and Applications. Cambridge University Press, 2001.

[Hon13]

R. Honeyager. Investigating the use of the T-matrix method as a reasonable approximation to the scattering behavior of aggregate snowflakes. PhD thesis, Colorado State University, 2013.

[MT98] (1,2)

M. I. Mishchenko and L. D. Travis. Capabilities and limitations of a current FORTRAN implementation of the T-matrix method for randomly oriented, rotationally symmetric scatterers. Journal of Quantitative Spectroscopy and Radiative Transfer, 60(3):309–324, 1998. doi:10.1016/S0022-4073(98)00008-9.

[MTL02]

M. I. Mishchenko, L. D. Travis, and A. A. Lacis. Scattering, Absorption, and Emission of Light by Small Particles. Cambridge University Press, 2002.

[PB70]

H. R. Pruppacher and K. V. Beard. A wind tunnel investigation of the internal circulation and shape of water drops falling at terminal velocity in air. Quarterly Journal of the Royal Meteorological Society, 96(408):247–256, 1970. doi:10.1002/qj.49709640807.

[RN18]

R. M. Rauber and S. W. Nesbitt. Radar Meteorology: A First Course. Wiley, 2018. doi:10.1002/9781118432662.

[THB+07]

M. Thurai, G. J. Huang, V. N. Bringi, W. L. Randeu, and M. Schönhuber. Drop shapes, model comparisons, and calculations of polarimetric radar parameters in rain. Journal of Atmospheric and Oceanic Technology, 24(6):1019–1032, 2007. doi:10.1175/JTECH2051.1.

[Wat71]

P. C. Waterman. Symmetry, unitarity, and geometry in electromagnetic scattering. Physical Review D, 3(4):825–839, 1971. doi:10.1103/PhysRevD.3.825.