Scattering Module Overview
This module enables scattering phase-function calculation of atmospheric aerosols with different size distributions, incident wavelengths, and refractive indices. It can perform the calculation using either the Siewert NAI-2 or Domke PCW methods (Suniti Sanghavi 2014).
The module also supports auto-differentiation (AD) of the phase function, with respect to the aerosol's size distribution parameters and its refractive index.
You can calculate a scattering phase-function in a few short steps:
- Use
Aerosol
to create an aerosol with selected distribution and properties - Use
make_mie_model
to set up all calculation parameters - Use
compute_aerosol_optical_properties
to perform the optical-properties calculations using the defined model settings - Use
reconstruct_phase
to produce the scattering matrix from the computed optical properties
For a full demo of how to use this module, please see the example page.
Architecture
The Scattering.jl architecture closely follows the user's workflow to calculate the scattering phase-function. There are functions for creating an aerosol, defining scattering parameters, calculating aerosol optical properties, and constructing the phase-function from said optical properties.
The aerosol optical properties contain computed "Greek Coefficients", which are to be multiplied by matrices composed of generalized spherical functions, in order to produce the phase-functions. Since calculating the greek coefficients is the most computationally intensive part – and the output phase-function can be produced at various resolutions – the reconstruct_phase
function is separate from compute_aerosol_optical_properties
.