PLaSK library
Loading...
Searching...
No Matches
expansioncyl-infini.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_INFINI_H
15
#define PLASK__SOLVER__SLAB_EXPANSIONCYL_INFINI_H
16
17
#include <
plask/plask.hpp
>
18
19
#include "
expansioncyl.hpp
"
20
#include "../patterson.hpp"
21
#include "../meshadapter.hpp"
22
23
24
namespace
plask
{
namespace
optical {
namespace
modal {
25
26
struct
PLASK_SOLVER_API
ExpansionBesselInfini
:
public
ExpansionBessel
{
27
28
DataVector<double>
kdelts
;
29
34
ExpansionBesselInfini
(
BesselSolverCyl
* solver);
35
37
void
init2()
override
;
38
39
void
getMatrices(
size_t
layer,
cmatrix
& RE,
cmatrix
& RH)
override
;
40
41
protected
:
42
43
virtual
void
integrateParams(
Integrals
& integrals,
44
const
dcomplex* datap,
const
dcomplex* datar,
const
dcomplex* dataz,
45
dcomplex datap0, dcomplex datar0, dcomplex dataz0)
override
;
46
47
double
fieldFactor
(
size_t
i)
override
{
48
return
rbounds[rbounds.size() - 1] / (kpts[i] * kdelts[i]);
49
}
50
51
cmatrix
getHzMatrix
(
const
cmatrix
& Bz,
cmatrix
& Hz)
override
{
return
Bz; }
52
};
53
54
}}}
// # namespace plask::optical::modal
55
56
#endif
// PLASK__SOLVER__SLAB_EXPANSIONCYL_INFINI_H
solvers
optical
modal
bessel
expansioncyl-infini.hpp
Generated by
1.9.8