PLaSK library

Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
plask::optical::modal::ExpansionBesselFini Struct Reference

`#include <solvers/optical/modal/bessel/expansioncyl-fini.hpp>`

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

## Public Member Functions
| ExpansionBesselFini (BesselSolverCyl *solver)
| Create new expansion.
void | computeBesselZeros ()
| Fill kpts with Bessel zeros.
void | init2 () override
| Perform m-specific initialization.
void | reset () override
| Free allocated memory.
void | getMatrices (size_t layer, cmatrix &RE, cmatrix &RH) override
| Get RE anf RH matrices.
cmatrix | muV_k ()
cmatrix | muTss ()
cmatrix | muTsp ()
cmatrix | muTps ()
cmatrix | muTpp ()
Public Member Functions inherited from plask::optical::modal::ExpansionBessel
| ExpansionBessel (BesselSolverCyl *solver)
| Create new expansion.
virtual | ~ExpansionBessel ()
void | init1 ()
| Init expansion.
void | init3 ()
| Estimate required integration order.
bool | diagonalQE (size_t l) const override
size_t | matrixSize () const override
| Return size of the expansion matrix (equal to the number of expansion coefficients)
void | prepareField () override
| Prepare for computatiations of the fields.
void | cleanupField () override
| Cleanup after computatiations of the fields.
LazyData< Vec< 3, dcomplex > > | getField (size_t layer, const shared_ptr< const typename LevelsAdapter::Level > &level, const cvector &E, const cvector &H) override
| Compute electric or magnetic field on `dst_mesh` at certain level.
LazyData< Tensor3< dcomplex > > | getMaterialEps (size_t layer, const shared_ptr< const typename LevelsAdapter::Level > &level, InterpolationMethod interp=INTERPOLATION_DEFAULT) override
| Get epsilons index back from expansion.
double | integratePoyntingVert (const cvector &E, const cvector &H) override
| Compute vertical component of the Poynting vector for specified fields.
double | integrateField (WhichField field, size_t layer, const cmatrix &TE, const cmatrix &TH, const std::function< std::pair< dcomplex, dcomplex >(size_t, size_t)> &vertical) override
| Compute ½ En·conj(Em) or ½ Hn·conj(Hm)
void | beforeGetEpsilon () override
| Prepare retrieval of refractive index.
void | afterGetEpsilon () override
| Finish retrieval of refractive index.
unsigned | getM () const
void | setM (unsigned n)
size_t | idxs (size_t i)
| Get index.
size_t | idxp (size_t i)
| Get index.
cmatrix | epsV_k (size_t layer)
cmatrix | epsTss (size_t layer)
cmatrix | epsTsp (size_t layer)
cmatrix | epsTps (size_t layer)
cmatrix | epsTpp (size_t layer)
virtual std::vector< double > | getKpts ()
| Return expansion wavevectors.
Public Member Functions inherited from plask::optical::modal::Expansion
| Expansion (ModalBase *solver)
virtual | ~Expansion ()
TempMatrix | getTempMatrix ()
double | getLam0 () const
| Get lam0.
void | setLam0 (double lam)
| Set lam0.
void | clearLam0 ()
| Clear lam0.
dcomplex | getK0 () const
| Get current k0.
void | setK0 (dcomplex k)
| Set current k0.
void | computeIntegrals ()
| Compute all expansion coefficients.
virtual bool | diagonalQE (size_t PLASK_UNUSED(l)) const
| Tell if matrix for i-th layer is diagonal.
virtual void | getDiagonalEigenvectors (cmatrix &Te, cmatrix &Te1, const cmatrix &RE, const cdiagonal &gamma)
| Get eigenvectors with some physical meaning when the layer is diagonal.
void | initField (WhichField which, InterpolationMethod method)
| Prepare for computations of the fields.
double | getModeFlux (size_t n, const cmatrix &TE, const cmatrix &TH)
| Compute vertical component of the Poynting vector for fields specified as matrix column.

## Protected Member Functions
double | fieldFactor (size_t i) override
cmatrix | getHzMatrix (const cmatrix &Bz, cmatrix &Hz) override
virtual void | integrateParams (Integrals &integrals, const dcomplex *datap, const dcomplex *datar, const dcomplex *dataz, dcomplex datap0, dcomplex datar0, dcomplex dataz0) override
Protected Member Functions inherited from plask::optical::modal::ExpansionBessel
void | beforeLayersIntegrals (dcomplex lam, dcomplex glam) override
Tensor3< dcomplex > | getEps (size_t layer, size_t ri, double r, double matz, double lam, double glam)
void | layerIntegrals (size_t layer, double lam, double glam) override
| Compute integrals for RE and RH matrices.
Protected Member Functions inherited from plask::optical::modal::Expansion
virtual void | beforeLayersIntegrals (dcomplex PLASK_UNUSED(lam), dcomplex PLASK_UNUSED(glam))
| Method called before layer integrals are computed.
virtual void | afterLayersIntegrals ()
| Method called after layer integrals are computed.

## Protected Attributes
Integrals | mu_integrals
| Integrals for magnetic permeability.
Protected Attributes inherited from plask::optical::modal::ExpansionBessel
std::vector< Segment > | segments
| Integration segments.
std::vector< bool > | diagonals
| Information if the layer is diagonal.
std::vector< Integrals > | layers_integrals
| Computed integrals.
Protected Attributes inherited from plask::optical::modal::Expansion
TempMatrixPool | temporary

## Additional Inherited Members
Public Types inherited from plask::optical::modal::Expansion
enum | Component { E_UNSPECIFIED = 0 , E_TRAN = 1 , E_LONG = 2 }
| Specified component in polarization or symmetry. More...
Public Attributes inherited from plask::optical::modal::ExpansionBessel
int | m
| Angular dependency index.
bool | initialized
| Expansion is initialized.
bool | m_changed
| m has changed and init2 must be called
OrderedAxis | rbounds
| Horizontal axis with separate integration intervals.
std::vector< double > | kpts
| Argument coefficients for Bessel expansion base (zeros of Bessel function for finite domain)
shared_ptr< RectangularMesh< 2 > > | mesh
| Mesh for getting material data.
Public Attributes inherited from plask::optical::modal::Expansion
WhichField | which_field
InterpolationMethod | field_interpolation
ModalBase * | solver
| Solver which performs calculations (and is the interface to the outside world)
dcomplex | k0
| Frequency for which the actual computations are performed.
double | lam0
| Material parameters wavelength.
LazyData< double > | temperature
| Obtained temperature.
bool | gain_connected
| Flag indicating if the gain is connected.
bool | epsilon_connected
| Flag indicating if inEpsilon is connected.
LazyData< Tensor2< double > > | gain
| Obtained gain.
LazyData< Tensor3< dcomplex > > | epsilons
| Obtained epsilons.
LazyData< double > | carriers
| Carriers concentration.

## Detailed Description

Definition at line 25 of file expansioncyl-fini.hpp.

## Constructor & Destructor Documentation

## ◆ ExpansionBesselFini()

plask::optical::modal::ExpansionBesselFini::ExpansionBesselFini | ( | BesselSolverCyl * | solver | ) |

Create new expansion.

Parameters

  solver | solver which performs calculations

Definition at line 26 of file expansioncyl-fini.cpp.

## Member Function Documentation

## ◆ computeBesselZeros()

void plask::optical::modal::ExpansionBesselFini::computeBesselZeros | ( |  | ) |

Fill kpts with Bessel zeros.

Definition at line 28 of file expansioncyl-fini.cpp.

## ◆ fieldFactor()

double plask::optical::modal::ExpansionBesselFini::fieldFactor | ( | size_t | i | ) |
| override protected virtual

Implements plask::optical::modal::ExpansionBessel.

Definition at line 170 of file expansioncyl-fini.cpp.

## ◆ getHzMatrix()

cmatrix plask::optical::modal::ExpansionBesselFini::getHzMatrix | ( | const cmatrix & | Bz,
|  | cmatrix & | Hz
| ) |  |
| inline override protected virtual

Implements plask::optical::modal::ExpansionBessel.

Definition at line 49 of file expansioncyl-fini.hpp.

## ◆ getMatrices()

void plask::optical::modal::ExpansionBesselFini::getMatrices | ( | size_t | layer,
|  | cmatrix & | RE,
|  | cmatrix & | RH
| ) |  |
| override virtual

Get RE anf RH matrices.

Parameters

  | layer | layer number
  [out] | RE,RH | resulting matrix

Implements plask::optical::modal::Expansion.

Definition at line 128 of file expansioncyl-fini.cpp.

## ◆ init2()

void plask::optical::modal::ExpansionBesselFini::init2 | ( |  | ) |
| override virtual

Perform m-specific initialization.

Implements plask::optical::modal::ExpansionBessel.

Definition at line 53 of file expansioncyl-fini.cpp.

## ◆ integrateParams()

void plask::optical::modal::ExpansionBesselFini::integrateParams | ( | Integrals & | integrals,
|  | const dcomplex * | datap,
|  | const dcomplex * | datar,
|  | const dcomplex * | dataz,
|  | dcomplex | datap0,
|  | dcomplex | datar0,
|  | dcomplex | dataz0
| ) |  |
| override protected virtual

Implements plask::optical::modal::ExpansionBessel.

Definition at line 219 of file expansioncyl-fini.cpp.

## ◆ muTpp()

cmatrix plask::optical::modal::ExpansionBesselFini::muTpp | ( |  | ) |

Definition at line 209 of file expansioncyl-fini.cpp.

## ◆ muTps()

cmatrix plask::optical::modal::ExpansionBesselFini::muTps | ( |  | ) |

Definition at line 201 of file expansioncyl-fini.cpp.

## ◆ muTsp()

cmatrix plask::optical::modal::ExpansionBesselFini::muTsp | ( |  | ) |

Definition at line 193 of file expansioncyl-fini.cpp.

## ◆ muTss()

cmatrix plask::optical::modal::ExpansionBesselFini::muTss | ( |  | ) |

Definition at line 185 of file expansioncyl-fini.cpp.

## ◆ muV_k()

cmatrix plask::optical::modal::ExpansionBesselFini::muV_k | ( |  | ) |

Definition at line 177 of file expansioncyl-fini.cpp.

## ◆ reset()

void plask::optical::modal::ExpansionBesselFini::reset | ( |  | ) |
| override virtual

Free allocated memory.

Reimplemented from plask::optical::modal::ExpansionBessel.

Definition at line 123 of file expansioncyl-fini.cpp.

## Member Data Documentation

## ◆ mu_integrals

Integrals plask::optical::modal::ExpansionBesselFini::mu_integrals
| protected

Integrals for magnetic permeability.

Definition at line 45 of file expansioncyl-fini.hpp.

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

- solvers/optical/modal/bessel/expansioncyl-fini.hpp
- solvers/optical/modal/bessel/expansioncyl-fini.cpp