|
cvector | getTransmissionVector (const cvector &incident, IncidentDirection side) override |
| Get vector of transmission coefficients.
|
|
| XanceTransfer (ModalBase *solver, Expansion &expansion) |
|
void | initDiagonalization () |
| Init diagonalization.
|
|
| Transfer (ModalBase *solver, Expansion &expansion) |
| Create transfer object and initialize memory.
|
|
virtual | ~Transfer () |
|
dcomplex | determinant () |
| Compute discontinuity matrix determinant for the current parameters.
|
|
virtual cvector | getReflectionVector (const cvector &incident, IncidentDirection side)=0 |
| Get vector of reflection coefficients.
|
|
LazyData< Vec< 3, dcomplex > > | getFieldE (double power, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, PropagationDirection part=PROPAGATION_TOTAL) |
| Get electric field at the given mesh for resonant mode.
|
|
LazyData< Vec< 3, dcomplex > > | getFieldH (double power, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, PropagationDirection part=PROPAGATION_TOTAL) |
| Get magnetic field at the given mesh for resonant mode.
|
|
LazyData< double > | getFieldMagnitude (double power, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method) |
| Get light magnitude for resonant mode.
|
|
LazyData< Vec< 3, dcomplex > > | getScatteredFieldE (const cvector &incident, IncidentDirection side, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, PropagationDirection part=PROPAGATION_TOTAL) |
| Get electric field at the given mesh for reflected light.
|
|
LazyData< Vec< 3, dcomplex > > | getScatteredFieldH (const cvector &incident, IncidentDirection side, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, PropagationDirection part=PROPAGATION_TOTAL) |
| Get magnetic field at the given mesh for reflected light.
|
|
LazyData< double > | getScatteredFieldMagnitude (const cvector &incident, IncidentDirection side, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method) |
| Get light magnitude for reflected light.
|
|
cvector | getFieldVectorE (double z, PropagationDirection part=PROPAGATION_TOTAL) |
| Compute electric field coefficients for given z.
|
|
cvector | getFieldVectorH (double z, PropagationDirection part=PROPAGATION_TOTAL) |
| Compute magnetic field coefficients for given z.
|
|
cvector | getScatteredFieldVectorE (const cvector &incident, IncidentDirection side, double z, PropagationDirection part=PROPAGATION_TOTAL) |
| Compute electric field coefficients for given z.
|
|
cvector | getScatteredFieldVectorH (const cvector &incident, IncidentDirection side, double z, PropagationDirection part=PROPAGATION_TOTAL) |
| Compute magnetic field coefficients for given z.
|
|
double | getFieldIntegral (WhichField field, double z1, double z2, double power) |
| Get ½ E·conj(E) or ½ H·conj(H) integral between z1 and z2.
|
|
double | getScatteredFieldIntegral (WhichField field, const cvector &incident, IncidentDirection side, double z1, double z2) |
| Get ½ E·conj(E) or ½ H·conj(H) integral between z1 and z2 for reflected light.
|
|
|
double | get_d (size_t n, double &z, PropagationDirection &part) |
| Get layer thickness and adjust z.
|
|
double | get_d (size_t n, double &z1, double &z2) |
| Get layer thickness and adjust z1 and z2.
|
|
cvector | getFieldVectorE (double z, std::size_t n, PropagationDirection part=PROPAGATION_TOTAL) override |
| Compute electric field coefficients for given z.
|
|
cvector | getFieldVectorH (double z, std::size_t n, PropagationDirection part=PROPAGATION_TOTAL) override |
| Compute magnetic field coefficients for given z.
|
|
void | storeY (size_t n) |
| Store the Y matrix for the layer prepared before.
|
|
const cmatrix & | getY (std::size_t n) |
| Get the Y matrix for n-th layer.
|
|
void | get_y1 (const cdiagonal &gamma, double d, cdiagonal &y1) const |
| Determine the y1 efficiently.
|
|
void | get_y2 (const cdiagonal &gamma, double d, cdiagonal &y2) const |
| Determine the y2 efficiently.
|
|
double | integrateField (WhichField field, size_t n, double z1, double z2) override |
| Compute ½ E·conj(E) or ½ H·conj(H) integral between z1 and z2.
|
|
virtual void | getFinalMatrix ()=0 |
| Get the discontinuity matrix for the whole structure.
|
|
virtual void | determineFields ()=0 |
| Determine coefficients in each layer necessary for fields calculations.
|
|
virtual void | determineReflectedFields (const cvector &incident, IncidentDirection side)=0 |
| Determine coefficients in each layer necessary for fields calculations.
|
|
const_cvector | getInterfaceVector () |
| Get current expansion coefficients at the matching interface.
|
|
LazyData< Vec< 3, dcomplex > > | computeFieldE (double power, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, bool reflected, PropagationDirection part=PROPAGATION_TOTAL) |
| Compute electric field at the given mesh.
|
|
LazyData< Vec< 3, dcomplex > > | computeFieldH (double power, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, bool reflected, PropagationDirection part=PROPAGATION_TOTAL) |
| Compute magnetic field at the given mesh.
|
|
LazyData< double > | computeFieldMagnitude (double power, const shared_ptr< const Mesh > &dst_mesh, InterpolationMethod method, bool reflected) |
| Compute light magnitude.
|
|
Base class for all solvers using reflection matrix method.
Definition at line 27 of file xance.hpp.