PLaSK library
|
Simple diagonalizer This class is a simple diagonalizer. More...
#include <solvers/optical/modal/diagonalizer.hpp>
Public Member Functions | |
SimpleDiagonalizer (Expansion *g) | |
~SimpleDiagonalizer () | |
std::size_t | matrixSize () const override |
Return the overall matrix size. | |
void | initDiagonalization () override |
Initiate the diagonalization. | |
bool | diagonalizeLayer (size_t layer) override |
Calculate the diagonalization of given layer. | |
const cdiagonal & | Gamma (size_t layer) const override |
Return diagonal matrix of eigenevalues. | |
const cmatrix & | TE (size_t layer) const override |
Return matrix of eigenvectors of QE. | |
const cmatrix & | TH (size_t layer) const override |
Return matrix of eigenvectors of QH. | |
const cmatrix & | invTE (size_t layer) const override |
Return inverse matrix of eigenvectors of QE. | |
const cmatrix & | invTH (size_t layer) const override |
Return inverse matrix of eigenvectors of QH. | |
Public Member Functions inherited from plask::optical::modal::Diagonalizer | |
Diagonalizer (Expansion *src) | |
virtual | ~Diagonalizer () |
const Expansion * | source () const |
Return the reference to the source object. | |
Expansion * | source () |
Return the reference to the source object. | |
bool | isDiagonalized (size_t layer) |
Return true is layer is diagonalized. | |
Protected Member Functions | |
void | sqrtGamma (cdiagonal &gam) |
Make Gamma of Gamma^2. | |
Protected Attributes | |
std::vector< cdiagonal > | gamma |
Diagonal matrices Gamma. | |
std::vector< cmatrix > | Te |
std::vector< cmatrix > | Th |
Matrices TE and TH. | |
std::vector< cmatrix > | Te1 |
std::vector< cmatrix > | Th1 |
Matrices TE^-1 and TH^-1. | |
Protected Attributes inherited from plask::optical::modal::Diagonalizer | |
Expansion * | src |
Information about the matrices to diagonalize. | |
std::vector< bool > | diagonalized |
True if the given layer was diagonalized. | |
Additional Inherited Members | |
Public Attributes inherited from plask::optical::modal::Diagonalizer | |
const std::size_t | lcount |
Number of distinct layers. | |
Simple diagonalizer This class is a simple diagonalizer.
It calculates all its results immediately and stores them in the memory.
Definition at line 101 of file diagonalizer.hpp.
plask::optical::modal::SimpleDiagonalizer::SimpleDiagonalizer | ( | Expansion * | g | ) |
Definition at line 34 of file diagonalizer.cpp.
|
inline |
Definition at line 123 of file diagonalizer.hpp.
|
overridevirtual |
Calculate the diagonalization of given layer.
true
if any work has been done and false
if it was not necessary Implements plask::optical::modal::Diagonalizer.
Definition at line 61 of file diagonalizer.cpp.
|
inlineoverridevirtual |
Return diagonal matrix of eigenevalues.
Implements plask::optical::modal::Diagonalizer.
Definition at line 132 of file diagonalizer.hpp.
|
overridevirtual |
Initiate the diagonalization.
Implements plask::optical::modal::Diagonalizer.
Definition at line 54 of file diagonalizer.cpp.
|
inlineoverridevirtual |
Return inverse matrix of eigenvectors of QE.
Implements plask::optical::modal::Diagonalizer.
Definition at line 135 of file diagonalizer.hpp.
|
inlineoverridevirtual |
Return inverse matrix of eigenvectors of QH.
Implements plask::optical::modal::Diagonalizer.
Definition at line 136 of file diagonalizer.hpp.
|
overridevirtual |
Return the overall matrix size.
Implements plask::optical::modal::Diagonalizer.
Definition at line 49 of file diagonalizer.cpp.
Make Gamma of Gamma^2.
gam | gamma^2 matrix to root |
Definition at line 110 of file diagonalizer.hpp.
|
inlineoverridevirtual |
Return matrix of eigenvectors of QE.
Implements plask::optical::modal::Diagonalizer.
Definition at line 133 of file diagonalizer.hpp.
|
inlineoverridevirtual |
Return matrix of eigenvectors of QH.
Implements plask::optical::modal::Diagonalizer.
Definition at line 134 of file diagonalizer.hpp.
|
protected |
Diagonal matrices Gamma.
Definition at line 104 of file diagonalizer.hpp.
|
protected |
Definition at line 105 of file diagonalizer.hpp.
|
protected |
Definition at line 106 of file diagonalizer.hpp.
|
protected |
Matrices TE and TH.
Definition at line 105 of file diagonalizer.hpp.
|
protected |
Matrices TE^-1 and TH^-1.
Definition at line 106 of file diagonalizer.hpp.