PLaSK library
Loading...
Searching...
No Matches
plask::optical::modal::SimpleDiagonalizer Class Reference

Simple diagonalizer This class is a simple diagonalizer. More...

#include <solvers/optical/modal/diagonalizer.hpp>

Inheritance diagram for plask::optical::modal::SimpleDiagonalizer:
[legend]
Collaboration diagram for plask::optical::modal::SimpleDiagonalizer:
[legend]

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 cdiagonalGamma (size_t layer) const override
 Return diagonal matrix of eigenevalues.
 
const cmatrixTE (size_t layer) const override
 Return matrix of eigenvectors of QE.
 
const cmatrixTH (size_t layer) const override
 Return matrix of eigenvectors of QH.
 
const cmatrixinvTE (size_t layer) const override
 Return inverse matrix of eigenvectors of QE.
 
const cmatrixinvTH (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 Expansionsource () const
 Return the reference to the source object.
 
Expansionsource ()
 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< cdiagonalgamma
 Diagonal matrices Gamma.
 
std::vector< cmatrixTe
 
std::vector< cmatrixTh
 Matrices TE and TH.
 
std::vector< cmatrixTe1
 
std::vector< cmatrixTh1
 Matrices TE^-1 and TH^-1.
 
- Protected Attributes inherited from plask::optical::modal::Diagonalizer
Expansionsrc
 Information about the matrices to diagonalize.
 
std::vector< booldiagonalized
 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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ SimpleDiagonalizer()

plask::optical::modal::SimpleDiagonalizer::SimpleDiagonalizer ( Expansion g)

Definition at line 34 of file diagonalizer.cpp.

◆ ~SimpleDiagonalizer()

plask::optical::modal::SimpleDiagonalizer::~SimpleDiagonalizer ( )
inline

Definition at line 123 of file diagonalizer.hpp.

Member Function Documentation

◆ diagonalizeLayer()

bool plask::optical::modal::SimpleDiagonalizer::diagonalizeLayer ( size_t  layer)
overridevirtual

Calculate the diagonalization of given layer.

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

◆ Gamma()

const cdiagonal & plask::optical::modal::SimpleDiagonalizer::Gamma ( size_t  layer) const
inlineoverridevirtual

Return diagonal matrix of eigenevalues.

Implements plask::optical::modal::Diagonalizer.

Definition at line 132 of file diagonalizer.hpp.

◆ initDiagonalization()

void plask::optical::modal::SimpleDiagonalizer::initDiagonalization ( )
overridevirtual

Initiate the diagonalization.

Implements plask::optical::modal::Diagonalizer.

Definition at line 54 of file diagonalizer.cpp.

◆ invTE()

const cmatrix & plask::optical::modal::SimpleDiagonalizer::invTE ( size_t  layer) const
inlineoverridevirtual

Return inverse matrix of eigenvectors of QE.

Implements plask::optical::modal::Diagonalizer.

Definition at line 135 of file diagonalizer.hpp.

◆ invTH()

const cmatrix & plask::optical::modal::SimpleDiagonalizer::invTH ( size_t  layer) const
inlineoverridevirtual

Return inverse matrix of eigenvectors of QH.

Implements plask::optical::modal::Diagonalizer.

Definition at line 136 of file diagonalizer.hpp.

◆ matrixSize()

std::size_t plask::optical::modal::SimpleDiagonalizer::matrixSize ( ) const
overridevirtual

Return the overall matrix size.

Implements plask::optical::modal::Diagonalizer.

Definition at line 49 of file diagonalizer.cpp.

◆ sqrtGamma()

void plask::optical::modal::SimpleDiagonalizer::sqrtGamma ( cdiagonal gam)
inlineprotected

Make Gamma of Gamma^2.

Parameters
gamgamma^2 matrix to root

Definition at line 110 of file diagonalizer.hpp.

◆ TE()

const cmatrix & plask::optical::modal::SimpleDiagonalizer::TE ( size_t  layer) const
inlineoverridevirtual

Return matrix of eigenvectors of QE.

Implements plask::optical::modal::Diagonalizer.

Definition at line 133 of file diagonalizer.hpp.

◆ TH()

const cmatrix & plask::optical::modal::SimpleDiagonalizer::TH ( size_t  layer) const
inlineoverridevirtual

Return matrix of eigenvectors of QH.

Implements plask::optical::modal::Diagonalizer.

Definition at line 134 of file diagonalizer.hpp.

Member Data Documentation

◆ gamma

std::vector<cdiagonal> plask::optical::modal::SimpleDiagonalizer::gamma
protected

Diagonal matrices Gamma.

Definition at line 104 of file diagonalizer.hpp.

◆ Te

std::vector<cmatrix> plask::optical::modal::SimpleDiagonalizer::Te
protected

Definition at line 105 of file diagonalizer.hpp.

◆ Te1

std::vector<cmatrix> plask::optical::modal::SimpleDiagonalizer::Te1
protected

Definition at line 106 of file diagonalizer.hpp.

◆ Th

std::vector<cmatrix> plask::optical::modal::SimpleDiagonalizer::Th
protected

Matrices TE and TH.

Definition at line 105 of file diagonalizer.hpp.

◆ Th1

std::vector<cmatrix> plask::optical::modal::SimpleDiagonalizer::Th1
protected

Matrices TE^-1 and TH^-1.

Definition at line 106 of file diagonalizer.hpp.


The documentation for this class was generated from the following files: