|
| 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.