PLaSK library
Loading...
Searching...
No Matches
expansioncyl-fini.hpp
Go to the documentation of this file.
1
/*
2
* This file is part of PLaSK (https://plask.app) by Photonics Group at TUL
3
* Copyright (c) 2022 Lodz University of Technology
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, version 3.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*/
14
#ifndef PLASK__SOLVER__SLAB_EXPANSIONCYL_FINI_H
15
#define PLASK__SOLVER__SLAB_EXPANSIONCYL_FINI_H
16
17
#include <
plask/plask.hpp
>
18
19
#include "../meshadapter.hpp"
20
#include "../patterson.hpp"
21
#include "
expansioncyl.hpp
"
22
23
namespace
plask
{
namespace
optical {
namespace
modal {
24
25
struct
PLASK_SOLVER_API
ExpansionBesselFini
:
public
ExpansionBessel
{
30
ExpansionBesselFini
(
BesselSolverCyl
* solver);
31
33
void
computeBesselZeros();
34
36
void
init2()
override
;
37
39
void
reset()
override
;
40
41
void
getMatrices(
size_t
layer,
cmatrix
& RE,
cmatrix
& RH)
override
;
42
43
protected
:
45
Integrals
mu_integrals
;
46
47
double
fieldFactor(
size_t
i)
override
;
48
49
cmatrix
getHzMatrix
(
const
cmatrix
& Bz,
cmatrix
& Hz)
override
{
50
mult_matrix_by_matrix
(mu_integrals.
V_k
, Bz, Hz);
51
return
Hz;
52
}
53
54
virtual
void
integrateParams(Integrals& integrals,
55
const
dcomplex* datap,
const
dcomplex* datar,
const
dcomplex* dataz,
56
dcomplex datap0, dcomplex datar0, dcomplex dataz0)
override
;
57
58
#ifndef NDEBUG
59
public
:
60
cmatrix
muV_k();
61
cmatrix
muTss();
62
cmatrix
muTsp();
63
cmatrix
muTps();
64
cmatrix
muTpp();
65
#endif
66
};
67
68
}}}
// namespace plask::optical::modal
69
70
#endif
// PLASK__SOLVER__SLAB_EXPANSIONCYL_FINI_H
solvers
optical
modal
bessel
expansioncyl-fini.hpp
Generated by
1.9.8