Non-spherical particles¶
T-matrix formulation allows to perform computational efficient calculations for single axially-symmtric 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 equivalent-volume 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 axial-symmetric particles. Currently, spheroids.
-
class
mstm_studio.contrib_spheroid.
SpheroidSP
(wavelengths=[], name='ExtraContrib')[source]¶ Extinction from spheroid calculated in T-matrix 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 equivelent-volume 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] |
|