PLaSK library
Loading...
Searching...
No Matches
freecarrier2d.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__GAIN_FREECARRIER_FREECARRIER2D_HPP
15
#define PLASK__SOLVER__GAIN_FREECARRIER_FREECARRIER2D_HPP
16
17
#include "
freecarrier.hpp
"
18
19
namespace
plask
{
namespace
gain {
namespace
freecarrier {
20
24
template
<
typename
GeometryT>
25
struct
PLASK_SOLVER_API
FreeCarrierGainSolver2D
:
public
FreeCarrierGainSolver
<SolverWithMesh<GeometryT, MeshAxis>> {
26
using
typename
FreeCarrierGainSolver<SolverWithMesh<GeometryT, MeshAxis>
>::ActiveRegionInfo;
27
using
typename
FreeCarrierGainSolver<SolverWithMesh<GeometryT, MeshAxis>
>::ActiveRegionParams;
28
using
typename
FreeCarrierGainSolver<SolverWithMesh<GeometryT, MeshAxis>
>::GeometryType;
29
using
typename
FreeCarrierGainSolver<SolverWithMesh<GeometryT, MeshAxis>
>::GainSpectrumType;
30
31
FreeCarrierGainSolver2D
(
const
std::string& name =
""
);
32
33
std::string
getClassName
()
const override
;
34
35
protected
:
36
void
detectActiveRegions()
override
;
37
38
template
<
typename
DT>
struct
DataBase
;
39
struct
ComputedData
;
40
struct
GainData
;
41
struct
DgdnData
;
42
struct
EnergyLevelsData
;
43
44
typedef
DataBase<Tensor2<double>
>
DataBaseTensor2
;
45
typedef
DataBase<std::vector<double>
>
DataBaseVector
;
46
47
const
LazyData<Tensor2<double>
> getGainData(
Gain::EnumType
what,
48
const
shared_ptr<
const
MeshD<2>
>& dst_mesh,
49
double
wavelength,
50
InterpolationMethod
interp = INTERPOLATION_DEFAULT)
override
;
51
52
const
LazyData<std::vector<double>
> getEnergyLevels(
EnergyLevels::EnumType
which,
53
const
shared_ptr<
const
MeshD<2>
>& dst_mesh,
54
InterpolationMethod
interp = INTERPOLATION_DEFAULT)
override
;
55
};
56
57
}}}
// namespace plask::gain::freecarrier
58
59
#endif
// PLASK__SOLVER__GAIN_FREECARRIER_FREECARRIER2D_HPP
solvers
gain
freecarrier
freecarrier2d.hpp
Generated by
1.9.8