|
| | FreeCarrierGainSolver3D (const std::string &name="") |
| |
| std::string | getClassName () const override |
| | 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< SolverOver< Geometry3D > > > | getGainSpectrum (const Vec< DIM > &point) |
| |
| | SolverOver (const std::string &name="") |
| |
| | ~SolverOver () |
| |
| 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 | onGeometryChange (const Geometry::Event &) |
| | This method is called when the geometry is changed.
|
| |
| shared_ptr< Geometry3D > | getGeometry () const |
| | Get current solver geometry space.
|
| |
| void | setGeometry (const shared_ptr< Geometry3D > &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< 3 > > &dst_mesh, double wavelength, InterpolationMethod interp=INTERPOLATION_DEFAULT) override |
| |
| const LazyData< std::vector< double > > | getEnergyLevels (EnergyLevels::EnumType which, const shared_ptr< const MeshD< 3 > > &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.
|
| |
| void | readBoundaryConditions (Manager &manager, XMLReader &reader, BoundaryConditions< Boundary, ConditionT > &dest) |
| | Read boundary conditions using information about the geometry of this solver.
|
| |
Gain solver using Fermi Golden Rule.
Definition at line 24 of file freecarrier3d.hpp.