PLaSK library
|
Namespaces | |
namespace | FFT |
namespace | python |
Classes | |
struct | AdmittanceTransfer |
Base class for all solvers using reflection matrix method. More... | |
struct | BesselSolverCyl |
Reflection transformation solver in Cartesian 2D geometry. More... | |
class | Diagonalizer |
Base for the class determining and holding the necessary matrices This is the abstract base class for all diagonalizers (multi-threaded, disk-storage, MPI-using etc. More... | |
struct | Expansion |
struct | ExpansionBessel |
struct | ExpansionBesselFini |
struct | ExpansionBesselInfini |
struct | ExpansionPW2D |
struct | ExpansionPW3D |
struct | FourierSolver2D |
Reflection transformation solver in Cartesian 2D geometry. More... | |
struct | FourierSolver3D |
Reflection transformation solver in Cartesian 3D geometry. More... | |
struct | GradientFunctions |
struct | ImpedanceTransfer |
Base class for all solvers using reflection matrix method. More... | |
struct | LateralMeshAdapter |
struct | LateralMeshAdapter< SolverOver< Geometry3D > > |
struct | LevelsAdapter |
Simple adapter that allows to process single level in the mesh. More... | |
struct | LevelsAdapterGeneric |
Generic implementation of the level adapter. More... | |
struct | LevelsAdapterRectangular |
More efficient Rectangular implementation of the level adapter. More... | |
class | Matrix |
General simple matrix template. More... | |
class | MatrixDiagonal |
General simple diagonal matrix template. More... | |
struct | ModalBase |
Common base with layer details independent on the geomety. More... | |
class | ModalSolver |
Base class for all modal solvers. More... | |
struct | PML |
Information about lateral PMLs. More... | |
struct | ReflectionTransfer |
Base class for all solvers using reflection matrix method. More... | |
class | RootBrent |
class | RootBroyden |
struct | RootDigger |
struct | RootMuller |
class | SimpleDiagonalizer |
Simple diagonalizer This class is a simple diagonalizer. More... | |
struct | TempMatrix |
struct | TempMatrixPool |
struct | Transfer |
Base class for Admittance and Reflection transfers. More... | |
struct | XanceTransfer |
Base class for all solvers using reflection matrix method. More... | |
Typedefs | |
typedef Matrix< double > | dmatrix |
typedef Matrix< dcomplex > | cmatrix |
typedef DataVector< dcomplex > | cvector |
typedef DataVector< double > | dvector |
typedef DataVector< const dcomplex > | const_cvector |
typedef MatrixDiagonal< dcomplex > | cdiagonal |
Enumerations | |
enum | WhichField { FIELD_E , FIELD_H } |
Field identification. More... | |
enum | PropagationDirection { PROPAGATION_TOTAL = 0 , PROPAGATION_UPWARDS = 1 , PROPAGATION_DOWNWARDS = 2 } |
Light propagation direction. More... | |
Functions | |
void | add_vertex (int l, int t, ExpansionPW3D::Gradient &val, long double &W, const ExpansionPW3D::Gradient::Vertex &vertex) |
double | cf (const ExpansionPW3D::Coeff &c) |
template<typename D > | |
void | ToeplitzLevinson (const DataVector< D > &TM, Matrix< D > &X) |
Solve T X = Y equation. | |
void | gaussLaguerre (size_t n, std::vector< double > &abscissae, DataVector< double > &weights, double scale=1.) |
Compute ascissae and weights for Gauss-Laguerre quadatures. | |
void | gaussLegendre (size_t n, std::vector< double > &abscissae, DataVector< double > &weights) |
Compute ascissae and weights for Gauss-Legendre quadatures. | |
cmatrix | invmult (cmatrix &A, cmatrix &B) |
cvector | invmult (cmatrix &A, cvector &B) |
cmatrix | inv (cmatrix &A) |
dcomplex | det (cmatrix &A) |
int | eigenv (cmatrix &A, cdiagonal &vals, cmatrix *rightv, cmatrix *leftv) |
template<typename T > | |
Matrix< T > | operator+ (const Matrix< T > &A, const Matrix< T > &B) |
Summation operator of the matrices. | |
template<typename T > | |
Matrix< T > | operator- (const Matrix< T > &A, const Matrix< T > &B) |
Difference operator of the matrices. | |
template<typename T > | |
Matrix< T > | operator- (const Matrix< T > &A) |
Negation operator of the matrix. | |
cmatrix | operator* (const cmatrix &A, const cmatrix &B) |
Multiplication operator of the matrices (using BLAS level3) | |
cvector | operator* (const cmatrix &A, const cvector &v) |
Multiplication operator of the matrix-vector product (using BLAS level3) | |
template<typename T > | |
cmatrix | operator* (const Matrix< T > &A, const MatrixDiagonal< T > &B) |
Multiplication by the diagonal matrix (right) | |
template<typename T > | |
cmatrix | operator* (const MatrixDiagonal< T > &A, const Matrix< T > &B) |
Multiplication by the diagonal matrix (left) | |
template<typename T > | |
void | mult_matrix_by_diagonal (Matrix< T > &A, const MatrixDiagonal< T > &B) |
Multiplication of matrix by diagonal in-place (replacing A) | |
template<typename T > | |
void | mult_diagonal_by_matrix (const MatrixDiagonal< T > &A, Matrix< T > &B) |
Multiplication of diagonal by matrix in-place (replacing B) | |
void | mult_matrix_by_vector (const cmatrix &A, const const_cvector &v, cvector &dst) |
void | mult_matrix_by_matrix (const cmatrix &A, const cmatrix &B, cmatrix &dst) |
void | add_mult_matrix_by_vector (const cmatrix &A, const cvector &v, cvector &dst) |
void | add_mult_matrix_by_matrix (const cmatrix &A, const cmatrix &B, cmatrix &dst) |
cmatrix | invmult (cmatrix &&A, cmatrix &B) |
cvector | invmult (cmatrix &&A, cvector &B) |
cmatrix | inv (cmatrix &&A) |
dcomplex | det (cmatrix &&A) |
int | eigenv (cmatrix &&A, cdiagonal &vals, cmatrix *rightv=NULL, cmatrix *leftv=NULL) |
template<typename T > | |
void | zero_matrix (Matrix< T > &A, size_t m, size_t n) |
Zero matrix. | |
template<typename T > | |
void | zero_matrix (Matrix< T > &A) |
Zero matrix. | |
template<typename T > | |
void | make_unit_matrix (Matrix< T > &A, size_t n) |
Create unit matrix. | |
template<typename T > | |
void | make_unit_matrix (Matrix< T > &A) |
Create unit matrix. | |
std::unique_ptr< LevelsAdapter > | makeLevelsAdapter (const shared_ptr< const Mesh > &src) |
Adapter factory. | |
template<typename S , typename T > | |
S | patterson (const std::function< S(T)> &fun, T a, T b, double &err, unsigned *order=nullptr) |
Compute Patterson quadrature along line a-b in complex plane with specified precision. | |
template double | patterson< double, double > (const std::function< double(double)> &fun, double a, double b, double &err, unsigned *order) |
Definition at line 342 of file matrices.hpp.
typedef Matrix<dcomplex> plask::optical::modal::cmatrix |
Definition at line 336 of file matrices.hpp.
Definition at line 341 of file matrices.hpp.
typedef DataVector<dcomplex> plask::optical::modal::cvector |
Definition at line 339 of file matrices.hpp.
Definition at line 335 of file matrices.hpp.
Definition at line 340 of file matrices.hpp.
Light propagation direction.
Enumerator | |
---|---|
PROPAGATION_TOTAL | Both directions in total. |
PROPAGATION_UPWARDS | Upwards or towards the interface. |
PROPAGATION_DOWNWARDS | Downwards or outside of the interface. |
Definition at line 30 of file transfer.hpp.
Field identification.
Enumerator | |
---|---|
FIELD_E | Electric field. |
FIELD_H | Magnetic field. |
Definition at line 24 of file transfer.hpp.
|
inline |
Definition at line 489 of file matrices.hpp.
|
inline |
Definition at line 479 of file matrices.hpp.
|
inline |
Definition at line 283 of file expansion3d.cpp.
|
inline |
Definition at line 292 of file expansion3d.cpp.
|
inline |
Definition at line 514 of file matrices.hpp.
dcomplex plask::optical::modal::det | ( | cmatrix & | A | ) |
Definition at line 76 of file matrices.cpp.
|
inline |
Definition at line 515 of file matrices.hpp.
int plask::optical::modal::eigenv | ( | cmatrix & | A, |
cdiagonal & | vals, | ||
cmatrix * | rightv, | ||
cmatrix * | leftv | ||
) |
Definition at line 99 of file matrices.cpp.
void plask::optical::modal::gaussLaguerre | ( | size_t | n, |
std::vector< double > & | abscissae, | ||
DataVector< double > & | weights, | ||
double | scale = 1. |
||
) |
Compute ascissae and weights for Gauss-Laguerre quadatures.
n | quadrature order | |
[out] | abscissae | computed abscissae |
[out] | weights | corresponding weights |
[in] | scale | scale parameter in the $\exp(sx)$ weight |
Definition at line 183 of file gauss_laguerre.cpp.
void plask::optical::modal::gaussLegendre | ( | size_t | n, |
std::vector< double > & | abscissae, | ||
DataVector< double > & | weights | ||
) |
Compute ascissae and weights for Gauss-Legendre quadatures.
n | quadrature order | |
[out] | abscissae | computed abscissae |
[out] | weights | corresponding weights |
Definition at line 23 of file gauss_legendre.cpp.
Definition at line 513 of file matrices.hpp.
Definition at line 59 of file matrices.cpp.
Definition at line 511 of file matrices.hpp.
Definition at line 512 of file matrices.hpp.
Definition at line 18 of file matrices.cpp.
Definition at line 39 of file matrices.cpp.
Create unit matrix.
Definition at line 543 of file matrices.hpp.
Create unit matrix.
Definition at line 535 of file matrices.hpp.
std::unique_ptr< LevelsAdapter > PLASK_SOLVER_API plask::optical::modal::makeLevelsAdapter | ( | const shared_ptr< const Mesh > & | src | ) |
Adapter factory.
Choose the best class based on the mesh type
src | source mesh |
Definition at line 76 of file meshadapter.cpp.
|
inline |
Multiplication of diagonal by matrix in-place (replacing B)
Definition at line 444 of file matrices.hpp.
|
inline |
Multiplication of matrix by diagonal in-place (replacing A)
Definition at line 430 of file matrices.hpp.
|
inline |
Definition at line 466 of file matrices.hpp.
|
inline |
Definition at line 456 of file matrices.hpp.
Multiplication operator of the matrices (using BLAS level3)
Definition at line 379 of file matrices.hpp.
Multiplication operator of the matrix-vector product (using BLAS level3)
Definition at line 388 of file matrices.hpp.
|
inline |
Multiplication by the diagonal matrix (right)
Definition at line 399 of file matrices.hpp.
|
inline |
Multiplication by the diagonal matrix (left)
Definition at line 416 of file matrices.hpp.
|
inline |
Summation operator of the matrices.
Definition at line 347 of file matrices.hpp.
Negation operator of the matrix.
Definition at line 371 of file matrices.hpp.
|
inline |
Difference operator of the matrices.
Definition at line 359 of file matrices.hpp.
S plask::optical::modal::patterson | ( | const std::function< S(T)> & | fun, |
T | a, | ||
T | b, | ||
double & | err, | ||
unsigned * | order = nullptr |
||
) |
Compute Patterson quadrature along line a-b in complex plane with specified precision.
fun | function to integrate | |
a | starting point | |
b | final point | |
[in,out] | err | on input maximum error, on output estimated error |
[out] | order | required quadrature order |
Definition at line 20 of file patterson.cpp.
template double plask::optical::modal::patterson< double, double > | ( | const std::function< double(double)> & | fun, |
double | a, | ||
double | b, | ||
double & | err, | ||
unsigned * | order | ||
) |
void plask::optical::modal::ToeplitzLevinson | ( | const DataVector< D > & | TM, |
Matrix< D > & | X | ||
) |
Solve T X = Y equation.
TM | Toeplitz matrix data stored as: first column + first row reversed (T00 T10 T20 T02 T01) | |
[in,out] | X | on input right-hand size (Y), on output solution (X) |
Definition at line 29 of file toeplitz.hpp.
Zero matrix.
Definition at line 529 of file matrices.hpp.
void plask::optical::modal::zero_matrix | ( | Matrix< T > & | A, |
size_t | m, | ||
size_t | n | ||
) |
Zero matrix.
Definition at line 522 of file matrices.hpp.
Definition at line 18 of file zeros-data.cpp.
Definition at line 754 of file solver.cpp.
template class PLASK_SOLVER_API plask::optical::modal::ModalSolver< SolverWithMesh< Geometry2DCartesian, MeshAxis > > |
Definition at line 752 of file solver.cpp.
template class PLASK_SOLVER_API plask::optical::modal::ModalSolver< SolverWithMesh< Geometry2DCylindrical, MeshAxis > > |
Definition at line 753 of file solver.cpp.
Definition at line 18 of file patterson-data.cpp.
Definition at line 276 of file patterson-data.cpp.