- Python 100%
| Examples | ||
| .gitattributes | ||
| README.md | ||
| scattering.py | ||
Scattering
Function package for generating theoretical light scattering models. Composed during the 2021 CHARM REU Program for the Furst Group.
Usage
The functions mie_scattering and rayleigh_scattering calculate theoretical light scattering properties, including scattering intensities and photon mean-free path. Inputs are the system parameters (particle and medium refractive indeces, particle radii, incident light wavelength) along with the desired structure factor model (default S(q)=1). See the documentation within scattering.py for further detail. Examples are given below and example scripts can be found in the "Examples" folder.
Examples
In the simplest case, only the following system parameters meed to be input:
- particle refractive index, n_p
- medium refractive index, n_s
- particle radii, a_p
- wavelength of the incident light in a vacuum, lambda_vac
- particle volume fraction, phi
theta, i1, i2, l_star, stats = mie_scattering(n_p, n_s, a_p, lambda_vac, phi)
Plotting i1 and i2 versus theta generated the polar plots seen above.
To specify the structure factor, the argument "struct" can be used. Currently implimented is a Percus-Yevick hard sphere structure factor ('PY'), a hard sphere with an excluded annulus ('PYAnnulus'), and a sticky hard sphere model with a square potential well ('SHS'). For some models, additional parameters must be specified using the "optional_params" arguement. Examples of each are seen below along with an plot of example parameters. See the documentation of scattering.py for parameter details and citations.
_, _, _, _, [q, _, s_q, _, _, _, _, _] = mie_scattering(n_p, n_s, a_p, lambda_vac, phi, struct='PY')
... = mie_scattering(n_p, n_s, a_p, lambda_vac, phi, sruct='PYAnnulus', optional_params=[1.2*a_p])
... = mie_scattering(n_p, n_s, a_p, lambda_vac, phi, sruct='SHS', optional_params=[0.2, 0.05])
The code is sufficiently optimized so that 100+ calls to mie/rayleigh_scattering can occur in under a second. See mie_vs_rayleigh_l_star.py for an example of such, the results of which are shown below.
Other Resources
Other great resources for scattering calculations can be found here: