usask-arg / sasktran2

The next generation SASKTRAN radiative transfer model
MIT License
1 stars 6 forks source link

Mie scattering code #11

Closed dannyzed closed 10 months ago

dannyzed commented 1 year ago

Description of the feature

A Mie scattering code should be included within the framework

Main challenges in adding the feature (if any)

What Mie code to include?

SASKTRAN legacy included the Fortran Mie code by Wiscombe. We could add this in, but right now we don't have any Fortran sources so this may be an issue.

We could also include our own Mie code, this would have to be validated against the Wiscombe code.

Particle size distribution integration

Most of the time we want to integrate the Mie code over particle size. The C++ SASKTRAN legacy code only really exposed a lognormal particle size distribution. Ideally we would allow the user to be able to specify any particle size distribution to integrate over.

The Python SASKTRAN legacy code implements part of this in the Python code, but we would probably need this in the C++ for speed reasons.

Linearizations

Ideally the Mie could would be able to provide derivatives of size and refractive index, or in the case of integrated parameters, derivatives of the particle size distribution parameters