Scattering Module Methods & Types

Defining the Mie Computation Model

vSmartMOM.Scattering.make_mie_modelFunction
make_mie_model(computation_type::NAI2, aerosol::AbstractAerosolType, λ::Real, polarization::AbstractPolarizationType, truncation_type::AbstractTruncationType)

Convenience function to create Mie Model with NAI2 computation type

source
make_mie_model(computation_type::PCW, aerosol::AbstractAerosolType, λ::Real, polarization::AbstractPolarizationType, truncation_type::AbstractTruncationType, wigner_filepath::String)

Convenience function to load Wigner matrices from file and create Mie Model with PCW computation type

source
make_mie_model(computation_type::PCW, aerosol::AbstractAerosolType, λ::Real, polarization::AbstractPolarizationType, truncation_type::AbstractTruncationType, wigner_A, wigner_B)

Convenience function to take in Wigner matrices and create Mie Model with PCW computation type

source

Creating/Saving Wigner Matrices (if using PCW method)

vSmartMOM.Scattering.compute_wigner_valuesFunction
compute_wigner_values(m_max::Integer, n_max::Integer, l_max::Integer)

Compute the Wigner 3j values for all (m, n, l) combinations up to m/n/l max, for (m1, m2, m3) = (-1, 1, 0) (wignerA) and (-1, -1, 2) (wignerB)

source
compute_wigner_values(N_max)

Shorthand for computewignervalues(2Nmax + 1, Nmax + 1, 2N_max + 1)

source

Computing Aerosol Optical Properties

vSmartMOM.Scattering.compute_aerosol_optical_propertiesFunction
compute_aerosol_optical_properties(model::MieModel{FDT}) where FDT<:NAI2

Reference: Suniti Sanghavi 2014, https://doi.org/10.1016/j.jqsrt.2013.12.015

Compute the aerosol optical properties using the Siewert-NAI2 method Input: MieModel, holding all computation and aerosol properties Output: AerosolOptics, holding all Greek coefficients and Cross-Sectional information

source
compute_aerosol_optical_properties(model::MieModel{FDT}) where FDT<:PCW

Reference: Suniti Sanghavi 2014, https://doi.org/10.1016/j.jqsrt.2013.12.015

Compute the aerosol optical properties using the Domke-PCW method Input: MieModel, holding all computation and aerosol properties Output: AerosolOptics, holding all Greek coefficients and Cross-Sectional information

source
compute_aerosol_optical_properties(model::MieModel{FDT})

Reference: Suniti Sanghavi 2014, https://doi.org/10.1016/j.jqsrt.2013.12.015

This function enables user to specify whether to perform auto-differentiation (using either computation type) Input: MieModel, holding all computation and aerosol properties & autodiff flag (whether to perform auto-differentiation) Output: AerosolOptics, holding all Greek coefficients and Cross-Sectional information

source

Reconstructing Phase Function

vSmartMOM.Scattering.reconstruct_phaseFunction
$(FUNCTIONNAME)(greek_coefs, μ; returnLeg = false)

Returns the reconstructed elements of the 4x4 scattering matrix at positions f₁₁, f₁₂, f₂₂, f₃₃, f₃₄, f₄₄ from the greek coefficients

f₁₁ represents the phase function p for the Intensity (first Stokes Vector element) and is normalized as follows:

\[\frac{1}{4\pi}\int_0^{2\pi}d\phi \int_{-1}^1 p(\mu) d\mu = 1\]

  • greek_coefs greek coefficients (Domke Type)
  • returnLeg if false (default), just return f₁₁, f₁₂, f₂₂, f₃₃, f₃₄, f₄₄, if true,
  • return f₁₁, f₁₂, f₂₂, f₃₃, f₃₄, f₄₄, P, P² (i.e. also the two legendre polynomials as matrices)
source

Types

Aerosol Types

Fourier Decomposition Computation Types

vSmartMOM.Scattering.NAI2Type
type NAI2

Perform Siewart's numerical integration method, NAI-2, to compute aerosol phase function decomposition. See: http://adsabs.harvard.edu/full/1982A%26A...109..195S

source
vSmartMOM.Scattering.PCWType
type PCW

Perform Domke's Precomputed Wigner Symbols method, PCW, to compute aerosol phase function decomposition. See: http://adsabs.harvard.edu/full/1984A%26A...131..237D

source

Polarization Types

vSmartMOM.Scattering.Stokes_IQUVType
struct Stokes_IQUV{FT<:AbstractFloat}

A struct which defines full Stokes Vector ([I,Q,U,V]) RT code

Fields

  • n: Number of Stokes components (int)

  • D: Vector of length n for ... (see eq in Sanghavi )

  • I₀: Incoming Stokes vector for scalar only

source
vSmartMOM.Scattering.Stokes_IQUType
struct Stokes_IQU{FT<:AbstractFloat}

A struct which defines Stokes Vector ([I,Q,U]) RT code

Fields

  • n: Number of Stokes components (int)

  • D: Vector of length n for ... (see eq in Sanghavi )

  • I₀: Incoming Stokes vector for scalar only

source
vSmartMOM.Scattering.Stokes_IType
struct Stokes_I{FT<:AbstractFloat}

A struct which define scalar I only RT code

Fields

  • n: Number of Stokes components (int)

  • D: Vector of length n for ... (see eq in Sanghavi )

  • I₀: Incoming Stokes vector for scalar only

source

Truncation Types

vSmartMOM.Scattering.δBGEType
type δBGE{FT} <: AbstractTruncationType

Fields

  • l_max: Trunction length for legendre terms

  • Δ_angle: Exclusion angle for forward peak (in fitting procedure) [degrees]

source

Mie Computation Model Type

vSmartMOM.Scattering.MieModelType
type MieModel

Model to hold all Mie computation details for NAI2 and PCW

Fields

  • computation_type

  • aerosol

  • λ

  • polarization_type

  • truncation_type

  • r_max: Maximum radius [μm]

  • nquad_radius: Number of quadrature points for integration over size distribution

  • wigner_A

  • wigner_B

source

Output Aerosol Optics Types

vSmartMOM.Scattering.GreekCoefsType
struct GreekCoefs{FT}

A struct which holds all Greek coefficient lists (over l) in one object. See eq 16 in Sanghavi 2014 for details.

Fields

  • α: Greek matrix coefficient α, is in B[2,2]

  • β: Greek matrix coefficient β, is in B[1,1] (only important one for scalar!)

  • γ: Greek matrix coefficient γ, is in B[2,1], B[1,2]

  • δ: Greek matrix coefficient δ, is in B[4,4]

  • ϵ: Greek matrix coefficient ϵ, is in B[3,4] and - in B[4,3]

  • ζ: Greek matrix coefficient ζ, is in B[3,3]

source
vSmartMOM.Scattering.AerosolOpticsType
struct AerosolOptics

A struct which holds all computed aerosol optics

Fields

  • greek_coefs: Greek matrix

  • ω̃: Single Scattering Albedo

  • k: Extinction cross-section

  • fᵗ: Truncation factor

  • derivs: Derivatives

source