1#ifndef VIENNASHE_MODELS_ALL_CARRIER_MASS_HPP
2#define VIENNASHE_MODELS_ALL_CARRIER_MASS_HPP
103 return this->for_electrons(TL);
105 return this->for_holes(TL);
112 double for_electrons(
double TL)
const
114 const double TL300 = TL / 300.0;
119 double for_holes(
double TL)
const
121 const double TL300 = TL / 300.0;
Exception thrown in the case that any code does not support the given carrier type.
The full carrier mass model, which uses a Taylor series over lattice temperature.
carrier_mass_full_model(const carrier_mass_full_model_parameters ¶ms)
const carrier_mass_full_model_parameters _params
double operator()(double TL, viennashe::carrier_type_id ctype) const
The functor interface.
The simple (constant) carrier mass model.
double operator()(double TL, viennashe::carrier_type_id ctype) const
The functor interface.
carrier_mass_simple_model(const carrier_mass_simple_model_parameters ¶ms)
const carrier_mass_simple_model_parameters _params
Provides the exceptions used in the main viennashe namespace.
Contains forward declarations and definition of small classes that must be defined at an early stage.
The main ViennaSHE namespace. All functionality resides inside this namespace.
carrier_type_id
Enumeration type for selecting the carrier type.
POD with parameters for the full model.
double mass_hole_quadradic
carrier_mass_full_model_parameters()
double mass_electron_linear
double mass_electron_offset
double mass_electron_quadradic
The carrier mass model interface.
virtual double operator()(double TL, viennashe::carrier_type_id ctype) const =0
The functor interface.
virtual ~carrier_mass_model()
POD with parameters for the simple carrier mass model (constant value model)
carrier_mass_simple_model_parameters()