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
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):
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#
[Mishchenko et al., 2002] — the canonical monograph; chapters 5–6 cover the T-matrix in depth.
[Bringi and Chandrasekar, 2001] — the polarimetric-radar textbook that connects T-matrix outputs to every observable in
rustmatrix.radar.[Rauber and Nesbitt, 2018] — undergraduate-level radar meteorology treatment, the textbook
rustmatrixwas built to support.
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.
V. N. Bringi and V. Chandrasekar. Polarimetric Doppler Weather Radar: Principles and Applications. Cambridge University Press, 2001.
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.
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.
M. I. Mishchenko, L. D. Travis, and A. A. Lacis. Scattering, Absorption, and Emission of Light by Small Particles. Cambridge University Press, 2002.
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.
R. M. Rauber and S. W. Nesbitt. Radar Meteorology: A First Course. Wiley, 2018. doi:10.1002/9781118432662.
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.
P. C. Waterman. Symmetry, unitarity, and geometry in electromagnetic scattering. Physical Review D, 3(4):825–839, 1971. doi:10.1103/PhysRevD.3.825.