|
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.