Nonspherical particles¶
Tmatrix formulation allows to perform computational efficient calculations for single axiallysymmtric objects. Currently supported only spheroid shape (rotational ellipsoid) using external library ScatterPy <https://github.com/TCvanLeth/ScatterPy>. The details can be found in [Mishchenko1998].
Example¶
Calculation of extinction for oblate spheroid with aspect ratio of \(\alpha=a/c=1.5\) . The size is specified by diamter \(a_{eff}\) of equivalentvolume sphere.
The spheroid size can be derived as
\[\begin{split}a = a_{eff} \alpha^{1/3} \\
c = a / \alpha\end{split}\]
from mstm_studio.alloy_AuAg import AlloyAuAg
from mstm_studio.contrib_spheroid import SpheroidSP
import numpy as np
wls = np.linspace(300, 800, 51) # range for calculation, in nm
SIZE = 20 # nm, particle diameter
ASPECT = 1.5 # a / c = horiz. axis / rot. axis
sph = SpheroidSP(wavelengths=wls) # create object
sph.set_material(AlloyAuAg(x_Au=1), 1.5) # particle and matrix refr. ind.
fig, axs = sph.plot_shape([1, SIZE, ASPECT])
fig.savefig('spheroid_shape.png', bbox_inches='tight')
ext_sph = sph.calculate([1, SIZE, ASPECT])
fig, axs = sph.plot([1, SIZE, ASPECT]) # scale, diameter, aspect
fig.savefig('spheroid_ext.png', bbox_inches='tight')
Classes¶
Contributions to optical extinction spectra from axialsymmetric particles. Currently, spheroids.

class
mstm_studio.contrib_spheroid.
SpheroidSP
(wavelengths=[], name='ExtraContrib')[source]¶ Extinction from spheroid calculated in Tmatrix approach using external library ScatterPy <https://github.com/TCvanLeth/ScatterPy>
Parameters:
 wavelengths: list or numpy array
 wavelengths in nm
 name: string
 optional label

calculate
(values)[source]¶ Parameters:
 values: list of parameters scale, size and aspect
 Scale is an arbitrary multiplier. Size parameter is the radius of equivelentvolume sphere. The aspect ratio is “the ratio of horizontal to rotational axes” according to scatterpy/shapes.py
Return:
extinction efficiency array for spheroid particle
[Mishchenko1998] 
