Electromagnetic Template Library (EMTL)
|
Class for calculate scattering matrix of plane wave on multilayered particle using T-matrix method. More...
#include <lspherescat.h>
Public Member Functions | |
int | set (const valtype wl, const std::vector< std::complex< valtype > > &eps, const std::vector< std::complex< valtype > > &mu, const std::vector< valtype > &r, const int Nhrm=20) |
Set params before calculating. | |
void | calcTMatrix () |
Calculate expansion coefficients \(a_n\) and \(b_n\) T-matrix method through all shells. | |
void | calcScat (valtype costheta) |
Calculate Scaterring matrix coefficients S1 and S2. | |
Public Attributes | |
valtype | wavelength |
Wavelength. | |
std::vector< std::complex< valtype > > | epsilon |
array of \(\varepsilon_i\) and \(\mu_i\) for each region (first is space, last is inner). | |
std::vector< valtype > | radius |
particle sizes. | |
std::vector< std::complex< valtype > > | a |
expansion coefficients \(a_n\) and \(b_n\) arrays to be calculated. | |
std::complex< valtype > | S1 |
S1 and S2 scattaring matrix coefficients to be calculated. | |
Class for calculate scattering matrix of plane wave on multilayered particle using T-matrix method.
void LayeredSphereScat::calcScat | ( | valtype | costheta | ) |
Calculate Scaterring matrix coefficients S1 and S2.
[in] | costheta | \(cos(\theta)\) value. |
int LayeredSphereScat::set | ( | const valtype | wl, |
const std::vector< std::complex< valtype > > & | eps, | ||
const std::vector< std::complex< valtype > > & | mu, | ||
const std::vector< valtype > & | r, | ||
const int | Nhrm = 20 |
||
) |
Set params before calculating.
[in] | wl | wavelength |
[in] | eps | array of particles' \(\varepsilon\) (last is inner, first is space) |
[in] | mu | array of particles' \(\mu\) (last is inner, first is space) |
[in] | r | array of particles' radii (first is the largest) |
[in] | Nhrm | Number of harmonics, 20 if default (very large number results unstable) |
std::vector<std::complex<valtype> > LayeredSphereScat::a |
expansion coefficients \(a_n\) and \(b_n\) arrays to be calculated.
Vector size is LayeredSphereScat::Nharm-1
std::vector<std::complex<valtype> > LayeredSphereScat::epsilon |
array of \(\varepsilon_i\) and \(\mu_i\) for each region (first is space, last is inner).
Vector size is LayeredSphereScat::Nlayers
std::vector<valtype> LayeredSphereScat::radius |
particle sizes.
Vector size is LayeredSphereScat::Nlayers-1