PLaSK library

Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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 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.

## 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 | ) |
| override virtual

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
| inline override virtual

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 | ( |  | ) |
| override virtual

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
| inline override virtual

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
| inline override virtual

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
| override virtual

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 | ) |
| inline protected

Make Gamma of Gamma^2.

Parameters

  gam | gamma^2 matrix to root

Definition at line 110 of file diagonalizer.hpp.

## ◆ TE()

const cmatrix & plask::optical::modal::SimpleDiagonalizer::TE | ( | size_t | layer | ) | const
| inline override virtual

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
| inline override virtual

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:

- solvers/optical/modal/diagonalizer.hpp
- solvers/optical/modal/diagonalizer.cpp