|  | 
|  | FreeCarrierGainSolver2D (const std::string &name="") | 
|  | 
| std::string | getClassName () const override | 
|  | Get name of solver. 
 | 
|  | 
| std::string | getClassName () const | 
|  | Get name of solver. 
 | 
|  | 
| std::string | getClassName () const | 
|  | Get name of solver. 
 | 
|  | 
|  | FreeCarrierGainSolver (const std::string &name="") | 
|  | 
| virtual | ~FreeCarrierGainSolver () | 
|  | 
| void | loadConfiguration (plask::XMLReader &reader, plask::Manager &manager) override | 
|  | 
| double | getN (double F, double T, const ActiveRegionParams ¶ms) const | 
|  | Compute concentration for electron quasi-Fermi level. 
 | 
|  | 
| double | getP (double F, double T, const ActiveRegionParams ¶ms) const | 
|  | Compute concentration for hole quasi-Fermi level. 
 | 
|  | 
| double | detEl (double E, const ActiveRegionParams ¶ms, size_t well=0) | 
|  | 
| double | detHh (double E, const ActiveRegionParams ¶ms, size_t well=0) | 
|  | 
| double | detLh (double E, const ActiveRegionParams ¶ms, size_t well=0) | 
|  | 
| shared_ptr< Material > | getSubstrate () const | 
|  | Get substrate material. 
 | 
|  | 
| void | setSubstrate (shared_ptr< Material > material) | 
|  | Set substrate material. 
 | 
|  | 
| void | findFermiLevels (double &Fc, double &Fv, double n, double T, const ActiveRegionParams ¶ms) const | 
|  | Compute quasi-Fermi levels for given concentration and temperature. 
 | 
|  | 
| Tensor2< double > | getGain0 (double hw, double Fc, double Fv, double T, double nr, const ActiveRegionParams ¶ms) const | 
|  | Find gain before convolution. 
 | 
|  | 
| Tensor2< double > | getGain (double hw, double Fc, double Fv, double T, double nr, const ActiveRegionParams ¶ms) const | 
|  | Find gain after convolution. 
 | 
|  | 
| double | getT0 () const | 
|  | 
| void | setT0 (double T) | 
|  | 
| double | getLifeTime () const | 
|  | 
| void | setLifeTime (double iLifeTime) | 
|  | 
| double | getMatrixElem () const | 
|  | 
| void | setMatrixElem (double iMatrixElem) | 
|  | 
| bool | getStrained () const | 
|  | 
| void | setStrained (bool value) | 
|  | 
| shared_ptr< GainSpectrum< SolverWithMesh< GeometryT, MeshAxis > > > | getGainSpectrum (const Vec< DIM > &point) | 
|  | 
|  | 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. 
 | 
|  | 
| MeshAxis & | meshRef () const | 
|  | Get current module mesh. 
 | 
|  | 
| shared_ptr< MeshAxis > | getMesh () const | 
|  | Get current solver mesh. 
 | 
|  | 
| void | setMesh (const shared_ptr< MeshAxis > &mesh) | 
|  | Set new mesh for the solver. 
 | 
|  | 
| void | setMesh (shared_ptr< MeshGeneratorD< MeshT::DIM > > generator) | 
|  | Set new mesh got from generator. 
 | 
|  | 
|  | 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. 
 | 
|  | 
| 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. 
 | 
|  | 
|  | 
| void | detectActiveRegions () override | 
|  | Detect active regions. 
 | 
|  | 
| const LazyData< Tensor2< double > > | getGainData (Gain::EnumType what, const shared_ptr< const MeshD< 2 > > &dst_mesh, double wavelength, InterpolationMethod interp=INTERPOLATION_DEFAULT) override | 
|  | 
| const LazyData< std::vector< double > > | getEnergyLevels (EnergyLevels::EnumType which, const shared_ptr< const MeshD< 2 > > &dst_mesh, InterpolationMethod interp=INTERPOLATION_DEFAULT) override | 
|  | 
| double | level (WhichLevel which, double E, const ActiveRegionParams ¶ms, size_t start, size_t stop) const | 
|  | Compute determinant for energy levels. 
 | 
|  | 
| double | level (WhichLevel which, double E, const ActiveRegionParams ¶ms) const | 
|  | 
| double | level (WhichLevel which, double E, const ActiveRegionParams ¶ms, size_t well) const | 
|  | 
| void | estimateWellLevels (WhichLevel which, ActiveRegionParams ¶ms, size_t qw) const | 
|  | Find levels estimates. 
 | 
|  | 
| void | estimateAboveLevels (WhichLevel which, ActiveRegionParams ¶ms) const | 
|  | Find levels estimates. 
 | 
|  | 
| std::pair< double, double > | fermi_bracket_and_solve (F f, double guess, double step, boost::uintmax_t &max_iter) const | 
|  | Walk the energy to bracket the Fermi level. 
 | 
|  | 
| void | estimateLevels () | 
|  | Estimate energy levels. 
 | 
|  | 
| void | onInitialize () override | 
|  | Initialize the solver. 
 | 
|  | 
| void | onInvalidate () override | 
|  | Invalidate the gain. 
 | 
|  | 
| void | onInputChange (ReceiverBase &, ReceiverBase::ChangeReason) | 
|  | Notify that gain was changed. 
 | 
|  | 
| virtual const LazyData< Tensor2< double > > | getGainData (Gain::EnumType what, const shared_ptr< const MeshD< DIM > > &dst_mesh, double wavelength, InterpolationMethod interp=INTERPOLATION_DEFAULT)=0 | 
|  | Compute the gain on the mesh. 
 | 
|  | 
| virtual const LazyData< std::vector< double > > | getEnergyLevels (EnergyLevels::EnumType which, const shared_ptr< const MeshD< DIM > > &dst_mesh, InterpolationMethod interp=INTERPOLATION_DEFAULT)=0 | 
|  | Compute the energy levels. 
 | 
|  | 
| template<typename Boundary , typename ConditionT > | 
| void | readBoundaryConditions (Manager &manager, XMLReader &reader, BoundaryConditions< Boundary, ConditionT > &dest) | 
|  | Read boundary conditions using information about the geometry of this solver. 
 | 
|  | 
template<
typename GeometryT>
struct plask::gain::freecarrier::FreeCarrierGainSolver2D< GeometryT >
Gain solver using Fermi Golden Rule. 
Definition at line 25 of file freecarrier2d.hpp.