PLaSK library
|
#include <solvers/electrical/olddiffusion/diffusion1d.hpp>
Classes | |
struct | ConcentrationDataImpl |
Public Types | |
enum | FemMethod { FEM_LINEAR , FEM_PARABOLIC } |
enum | ComputationType { COMPUTATION_INITIAL , COMPUTATION_THRESHOLD , COMPUTATION_OVERTHRESHOLD } |
Public Types inherited from plask::SolverWithMesh< Geometry2DType, RegularMesh1D > | |
typedef RegularMesh1D | MeshType |
Type of the mesh for this solver. | |
Public Types inherited from plask::SolverOver< SpaceT > | |
typedef SpaceT | SpaceType |
of the space for this solver | |
Public Member Functions | |
DiffusionFem2DSolver (const std::string &name="") | |
virtual | ~DiffusionFem2DSolver () |
std::string | getClassName () const override |
Get name of solver. | |
void | loadConfiguration (XMLReader &, Manager &) override |
Load configuration from given source . | |
void | compute (ComputationType type) |
void | compute_initial () |
void | compute_threshold () |
void | compute_overthreshold () |
shared_ptr< MeshAxis > | current_mesh_ptr () |
RegularAxis & | current_mesh () |
double | burning_integral (void) |
std::string | getClassName () const |
Get name of solver. | |
std::string | getClassName () const |
Get name of solver. | |
Public Member Functions inherited from plask::SolverWithMesh< Geometry2DType, RegularMesh1D > | |
SolverWithMesh (const std::string &name="") | |
~SolverWithMesh () | |
void | loadConfiguration (XMLReader &source, Manager &manager) override |
Load configuration from given source . | |
void | parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element") |
virtual void | onMeshChange (const typename MeshT::Event &PLASK_UNUSED(evt)) |
This method is called just after the mesh has been changed. | |
void | onGeometryChange (const Geometry::Event &PLASK_UNUSED(evt)) override |
This method is called when the geometry is changed. | |
RegularMesh1D & | meshRef () const |
Get current module mesh. | |
shared_ptr< RegularMesh1D > | getMesh () const |
Get current solver mesh. | |
void | setMesh (const shared_ptr< RegularMesh1D > &mesh) |
Set new mesh for the solver. | |
void | setMesh (shared_ptr< MeshGeneratorD< MeshT::DIM > > generator) |
Set new mesh got from generator. | |
Public Member Functions inherited from plask::SolverOver< SpaceT > | |
SolverOver (const std::string &name="") | |
~SolverOver () | |
void | parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element") |
virtual void | onGeometryChange (const Geometry::Event &) |
This method is called when the geometry is changed. | |
shared_ptr< SpaceT > | getGeometry () const |
Get current solver geometry space. | |
void | setGeometry (const shared_ptr< SpaceT > &geometry) |
Set new geometry for the solver. | |
Public Member Functions inherited from plask::Solver | |
bool | initCalculation () |
This should be called on beginning of each calculation method to ensure that solver will be initialized. | |
Solver (const std::string &name="") | |
Construct uninitialized solver. | |
virtual | ~Solver () |
Virtual destructor (for subclassing). Do nothing. | |
void | parseStandardConfiguration (XMLReader &source, Manager &manager, const std::string &expected_msg="solver configuration element") |
Load standard configuration (geometry, mesh) tags from source . | |
bool | isInitialized () |
Check if solver is already initialized. | |
void | invalidate () |
This method should be and is called if something important was changed: calculation space, mesh, etc. | |
std::string | getId () const |
Get solver id. | |
std::string | getName () const |
virtual std::string | getClassDescription () const |
Get a description of this solver. | |
template<typename ArgT = double, typename ValT = double> | |
DataLog< ArgT, ValT > | dataLog (const std::string &chart_name, const std::string &axis_arg_name, const std::string &axis_val_name) |
template<typename ArgT = double, typename ValT = double> | |
DataLog< ArgT, ValT > | dataLog (const std::string &axis_arg_name, const std::string &axis_val_name) |
template<typename ... Args> | |
void | writelog (LogLevel level, std::string msg, Args &&... params) const |
Log a message for this solver. | |
Public Attributes | |
ReceiverFor< CurrentDensity, Geometry2DType > | inCurrentDensity |
ReceiverFor< Temperature, Geometry2DType > | inTemperature |
ReceiverFor< Gain, Geometry2DType > | inGain |
ReceiverFor< ModeWavelength > | inWavelength |
ReceiverFor< ModeLightE, Geometry2DType > | inLightE |
ProviderFor< CarriersConcentration, Geometry2DType >::Delegate | outCarriersConcentration |
InterpolationMethod | interpolation_method |
Selected interpolation method. | |
double | relative_accuracy |
Relative accuracy. | |
int | max_mesh_changes |
Maximum number of mesh refinemenst. | |
int | max_iterations |
Maximum number of diffusion iterations for sigle mesh size. | |
FemMethod | fem_method |
Finite element method (linear or parabolic) | |
double | minor_concentration |
bool | do_initial |
Should we start from initial computations. | |
std::vector< double > | modesP |
Static Protected Attributes | |
static constexpr double | hk = phys::h_J/plask::PI |
Definition at line 19 of file diffusion1d.hpp.
enum plask::electrical::diffusion1d::DiffusionFem2DSolver::ComputationType |
Enumerator | |
---|---|
COMPUTATION_INITIAL | |
COMPUTATION_THRESHOLD | |
COMPUTATION_OVERTHRESHOLD |
Definition at line 27 of file diffusion1d.hpp.
enum plask::electrical::diffusion1d::DiffusionFem2DSolver::FemMethod |
Enumerator | |
---|---|
FEM_LINEAR | |
FEM_PARABOLIC |
Definition at line 22 of file diffusion1d.hpp.
|
inline |
Definition at line 47 of file diffusion1d.hpp.
|
inlinevirtual |
Definition at line 47 of file diffusion1d.hpp.
|
protected |
Definition at line 861 of file diffusion1d.cpp.
double plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::burning_integral | ( | void | ) |
Definition at line 742 of file diffusion1d.cpp.
void plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::compute | ( | ComputationType | type | ) |
Definition at line 114 of file diffusion1d.cpp.
void plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::compute_initial | ( | ) |
Definition at line 67 of file diffusion1d.cpp.
void plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::compute_overthreshold | ( | ) |
Definition at line 73 of file diffusion1d.cpp.
void plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::compute_threshold | ( | ) |
Definition at line 69 of file diffusion1d.cpp.
|
protected |
Definition at line 401 of file diffusion1d.cpp.
|
protected |
Definition at line 496 of file diffusion1d.cpp.
|
protected |
|
inline |
Definition at line 82 of file diffusion1d.hpp.
|
inline |
Definition at line 77 of file diffusion1d.hpp.
|
protected |
Definition at line 754 of file diffusion1d.cpp.
|
protected |
Definition at line 852 of file diffusion1d.cpp.
|
protected |
Definition at line 641 of file diffusion1d.cpp.
|
protected |
Definition at line 655 of file diffusion1d.cpp.
|
virtual |
Get name of solver.
Implements plask::Solver.
Definition at line 878 of file diffusion1d.cpp.
|
virtual |
Get name of solver.
Implements plask::Solver.
Definition at line 879 of file diffusion1d.cpp.
|
overridevirtual |
|
protected |
Provide concentration from inside to the provider (outConcentration).
Definition at line 623 of file diffusion1d.cpp.
|
protected |
Definition at line 825 of file diffusion1d.cpp.
|
protected |
Definition at line 841 of file diffusion1d.cpp.
|
protected |
|
inlineprotected |
Definition at line 173 of file diffusion1d.hpp.
|
inlineprotected |
Definition at line 168 of file diffusion1d.hpp.
|
protected |
Definition at line 633 of file diffusion1d.cpp.
|
protected |
Definition at line 724 of file diffusion1d.cpp.
|
overridevirtual |
Load configuration from given source
.
XML reader (source
) point to opening of this
solver tag and after return from this method should point to this solver closing tag.
source | source of configuration |
manager | manager from which information about geometry, meshes, materials, and so on can be get if needed |
Reimplemented from plask::Solver.
Definition at line 36 of file diffusion1d.cpp.
|
protected |
< Computational Light intensity mesh
Definition at line 178 of file diffusion1d.cpp.
|
protected |
Definition at line 672 of file diffusion1d.cpp.
|
overrideprotectedvirtual |
Initialize the solver.
Default implementation just does nothing, however it is a good idea to overwrite it in subclasses and put initialization code in it.
Reimplemented from plask::Solver.
Definition at line 77 of file diffusion1d.cpp.
|
overrideprotectedvirtual |
This method is called by invalidate() to reset stored values.
Default implementation does nothing.
Reimplemented from plask::Solver.
Definition at line 102 of file diffusion1d.cpp.
|
protected |
Definition at line 750 of file diffusion1d.cpp.
|
protected |
Definition at line 110 of file diffusion1d.hpp.
bool plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::do_initial |
Should we start from initial computations.
Definition at line 47 of file diffusion1d.hpp.
FemMethod plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::fem_method |
Finite element method (linear or parabolic)
Definition at line 45 of file diffusion1d.hpp.
|
protected |
Definition at line 105 of file diffusion1d.hpp.
|
staticconstexprprotected |
Definition at line 95 of file diffusion1d.hpp.
ReceiverFor<CurrentDensity, Geometry2DType> plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::inCurrentDensity |
Definition at line 33 of file diffusion1d.hpp.
ReceiverFor<Gain, Geometry2DType> plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::inGain |
Definition at line 35 of file diffusion1d.hpp.
|
protected |
Definition at line 101 of file diffusion1d.hpp.
ReceiverFor<ModeLightE, Geometry2DType> plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::inLightE |
Definition at line 37 of file diffusion1d.hpp.
ReceiverFor<Temperature, Geometry2DType> plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::inTemperature |
Definition at line 34 of file diffusion1d.hpp.
InterpolationMethod plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::interpolation_method |
Selected interpolation method.
Definition at line 41 of file diffusion1d.hpp.
ReceiverFor<ModeWavelength> plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::inWavelength |
Definition at line 36 of file diffusion1d.hpp.
|
protected |
Definition at line 106 of file diffusion1d.hpp.
|
protected |
Definition at line 112 of file diffusion1d.hpp.
int plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::max_iterations |
Maximum number of diffusion iterations for sigle mesh size.
Definition at line 44 of file diffusion1d.hpp.
int plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::max_mesh_changes |
Maximum number of mesh refinemenst.
Definition at line 43 of file diffusion1d.hpp.
|
protected |
Computational mesh.
Definition at line 93 of file diffusion1d.hpp.
double plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::minor_concentration |
Definition at line 46 of file diffusion1d.hpp.
std::vector<double> plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::modesP |
Definition at line 89 of file diffusion1d.hpp.
|
protected |
Definition at line 119 of file diffusion1d.hpp.
|
protected |
Definition at line 118 of file diffusion1d.hpp.
ProviderFor<CarriersConcentration,Geometry2DType>::Delegate plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::outCarriersConcentration |
Definition at line 39 of file diffusion1d.hpp.
|
protected |
Definition at line 103 of file diffusion1d.hpp.
|
protected |
Definition at line 116 of file diffusion1d.hpp.
|
protected |
Definition at line 115 of file diffusion1d.hpp.
|
protected |
Definition at line 97 of file diffusion1d.hpp.
double plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::relative_accuracy |
Relative accuracy.
Definition at line 42 of file diffusion1d.hpp.
|
protected |
Definition at line 113 of file diffusion1d.hpp.
|
protected |
Definition at line 102 of file diffusion1d.hpp.
|
protected |
Definition at line 99 of file diffusion1d.hpp.