Implement a calc_cross_sections method in instances of scatterpy.Theory

Registered by Jerome Fung

Scattering cross sections (or efficiencies) are often useful in a variety of contexts. First, they allow for the sanity-checking of scattering codes both inherently and by comparison with published literature. Second, certain experimental measurements (such as transmittance) really do measure, directly or indirectly, these integrated scattering quantities. Currently scatterpy does not calculate scattering cross sections. Adding a calc_cross_sections method to be implemented by each instance of Theory seems like the most straightforward way to do this.

Blueprint information

Status:
Started
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
Jerome Fung
Definition:
New
Series goal:
None
Implementation:
Good progress
Milestone target:
milestone icon 3.0
Started by
Jerome Fung

Related branches

Sprints

Whiteboard

Report dimensional cross sections.

For multisphere code, analytical calculation of asymmetry parameter is only tractable due to VSH identities for unpolarized illumination (see SCMSFO.ps and subroutine scatexp in scsmfo_min.for). For polarized illumination numerical quadrature would be necessary.

In particular: scipy.integrate.dblquad. To integrate f(theta, phi) over 4 pi:
dblquad(f, 0, 2*pi, lambda theta:0., lambda theta:pi)

Two possibilities for Multisphere: use partial field expansion about each sphere, or use cluster-centered field expansion. Former approach may be more precise, and getting out the partial field coefficients for each sphere would also be useful for calculating holograms of spheres that are very far apart.

Implement idea from Vinny: use optical thm to get C_ext for fixed polarization.

Currently: have C_scat for arbitrary polarization from summation of cluster-centered VSH coefficients for Multisphere.

(?)

Work Items

Work items:
mie: DONE
multisphere: DONE
DDA: TODO

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.