|
PLaSK library
|
#include <solvers/optical/modal/bessel/expansioncyl-fini.hpp>
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. | |
Definition at line 25 of file expansioncyl-fini.hpp.
| plask::optical::modal::ExpansionBesselFini::ExpansionBesselFini | ( | BesselSolverCyl * | solver | ) |
Create new expansion.
| solver | solver which performs calculations |
Definition at line 26 of file expansioncyl-fini.cpp.
| void plask::optical::modal::ExpansionBesselFini::computeBesselZeros | ( | ) |
Fill kpts with Bessel zeros.
Definition at line 28 of file expansioncyl-fini.cpp.
|
overrideprotectedvirtual |
Implements plask::optical::modal::ExpansionBessel.
Definition at line 170 of file expansioncyl-fini.cpp.
|
inlineoverrideprotectedvirtual |
Implements plask::optical::modal::ExpansionBessel.
Definition at line 49 of file expansioncyl-fini.hpp.
|
overridevirtual |
Get RE anf RH matrices.
| layer | layer number | |
| [out] | RE,RH | resulting matrix |
Implements plask::optical::modal::Expansion.
Definition at line 128 of file expansioncyl-fini.cpp.
|
overridevirtual |
Perform m-specific initialization.
Implements plask::optical::modal::ExpansionBessel.
Definition at line 53 of file expansioncyl-fini.cpp.
|
overrideprotectedvirtual |
Implements plask::optical::modal::ExpansionBessel.
Definition at line 219 of file expansioncyl-fini.cpp.
| cmatrix plask::optical::modal::ExpansionBesselFini::muTpp | ( | ) |
Definition at line 209 of file expansioncyl-fini.cpp.
| cmatrix plask::optical::modal::ExpansionBesselFini::muTps | ( | ) |
Definition at line 201 of file expansioncyl-fini.cpp.
| cmatrix plask::optical::modal::ExpansionBesselFini::muTsp | ( | ) |
Definition at line 193 of file expansioncyl-fini.cpp.
| cmatrix plask::optical::modal::ExpansionBesselFini::muTss | ( | ) |
Definition at line 185 of file expansioncyl-fini.cpp.
| cmatrix plask::optical::modal::ExpansionBesselFini::muV_k | ( | ) |
Definition at line 177 of file expansioncyl-fini.cpp.
|
overridevirtual |
Free allocated memory.
Reimplemented from plask::optical::modal::ExpansionBessel.
Definition at line 123 of file expansioncyl-fini.cpp.
|
protected |
Integrals for magnetic permeability.
Definition at line 45 of file expansioncyl-fini.hpp.