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