Skip to content

JuliaRemoteSensing/TransitionMatrices.jl

Repository files navigation

TransitionMatrices.jl

Dev Build Status Coverage

The transition matrix method, or T-Matrix method, is one of the most powerful and widely used tools for rigorously computing electromagnetic scattering by single and compounded particles. As a package focusing on this method, TransitionMatrices.jl provides the following features:

  • Calculate the T-Matrix of various types of scatterers
    • Homogeneous spheres (via bhmie)
    • Coated spheres (via bhcoat)
    • Homogeneous axisymmetric shapes (via EBCM and IITM)
      • Spheroids
      • Cylinders
      • Chebyshev particles
    • Arbitrary shapes (via IITM)
      • Prisms
  • Calculate far-field scattering properties using the T-Matrix
    • Cross sections and single scattering albedo (SSA)
    • Amplitude scattering matrix
    • Phase matrix
    • Scattering matrix
  • Compute Jacobians through the linearization framework
    • Numerical automatic differentiation for user-defined scalar workflows via ForwardDiff.jl
    • Analytical Mie linearization for size, refractive-index, and wavelength variables
    • Analytical EBCM slices for spheroids, cylinders, and Chebyshev particles
    • Analytical fixed-geometry IITM material/wavelength slices for axisymmetric, n-fold, and arbitrary-shape solvers

Compared to existing packages, TransitionMatrices.jl is special in that it is generic and supports various floating-point types, e.g.:

By using higher-precision floating-point types, the maximum size parameter that can be handled is greatly improved.

The precision types Double64, Float128, ComplexF128, Arb, and Acb are re-exported by TransitionMatrices.jl and can be directly used after using TransitionMatrices.

The 0.5 compatibility line uses Quadmath.jl 1.x and Wigxjpf.jl 0.3.x.