xopto.pf.miemlnormal module¶
- class MieMlNormal(center: float, sigma: float, nlayers: float, nmedium: float, diameters: float, wavelength: float, clip: float = 5, nd: int = 100, limit: Optional[int] = None)[source]¶
Bases:
xopto.pf.miemlpd.MieMlPd
Scattering phase function of Normally distributed (number density) layered spherical particles:
pd = A e^{frac{-(d - center)^2}{(2sigma^2}}
The value of parameter A is computed so as to normalize the integral of the density function on the clipped diameter interval
to 1:
- Parameters
center (float) – Distribution/diameter mean (m).
sigma (float) – Distribution/diameter standard deviation (m).
nlayers – Parameters passed to the MieMlPd base class constructor. See help of MieMlPd class for more details.
nmedium – Parameters passed to the MieMlPd base class constructor. See help of MieMlPd class for more details.
diameters – Parameters passed to the MieMlPd base class constructor. See help of MieMlPd class for more details.
nd – Parameters passed to the MieMlPd base class constructor. See help of MieMlPd class for more details.
clip (float) – Distribution/diameter range used to estimate the phase function defined as
.
Examples
Scattering phase functions of Normally distributed hollow spherical particles with mean diameter 1 um and standard deviation 100 nm, mean diameter 1 um and standard deviation 50 nm, and mean diameter 1 um and standard deviation 25 nm compared to a monodisperse 1 um microspherical particles. The wall thickness of spherical particles accounts for 5% of the outer particle diameter.
>>> from matplotlib import pyplot as pp >>> import numpy as np >>> >>> cos_theta = np.linspace(-1.0, 1.0, 1000) >>> nlayers=[1.0, 1.45] >>> diameters=[0.9e-6, 1e-6] >>> nmie1 = MieMlNormal(1e-6, 0.1e-6, nlayers=nlayers, nmedium=1.33, diameters=diameters, wavelength=550e-9, nd=1000) >>> nmie2 = MieMlNormal(1e-6, 0.05e-6, nlayers=nlayers, nmedium=1.33, diameters=diameters, wavelength=550e-9, nd=1000) >>> nmie3 = MieMlNormal(1e-6, 0.025e-6, nlayers=nlayers, nmedium=1.33, diameters=diameters, wavelength=550e-9, nd=1000) >>> mmie = MieMl(nlayers=nlayers, nmedium=1.33, diameters=diameters, wavelength=550e-9) >>> >>> pp.figure() >>> pp.semilogy(cos_theta, nmie1(cos_theta), label='Normal(1 um, 100 nm)') >>> pp.semilogy(cos_theta, nmie2(cos_theta), label='Normal(1 um, 50 nm)') >>> pp.semilogy(cos_theta, nmie3(cos_theta), label='Normal(1 um, 25 nm)') >>> pp.semilogy(cos_theta, mmie(cos_theta), label='Monodisperse(1 um)') >>> pp.legend() >>>