ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::models Namespace Reference

Namespace containing everything models related. More...

Namespaces

namespace  dd
 This namespace contains models, which are only for the drift diffusion transport model.
 
namespace  detail
 
namespace  result_of
 Compiletime evaluation namespace.
 
namespace  srh
 

Classes

struct  bandgap_model
 Basic bandgap model interface. More...
 
class  bandgap_model_const
 A simple constant bandgap model. Gets the bandgap and always returns this value. More...
 
class  bandgap_model_extended
 An elaborate bandgap model, which accounts for the lattice temperature. More...
 
struct  bandgap_model_extended_parameters
 Plain old datatype (POD) of parameters for the bandgap_model_extended. More...
 
class  carrier_mass_full_model
 The full carrier mass model, which uses a Taylor series over lattice temperature. More...
 
struct  carrier_mass_full_model_parameters
 POD with parameters for the full model. More...
 
struct  carrier_mass_model
 The carrier mass model interface. More...
 
class  carrier_mass_simple_model
 The simple (constant) carrier mass model. More...
 
struct  carrier_mass_simple_model_parameters
 POD with parameters for the simple carrier mass model (constant value model) More...
 
class  chain
 Implementation of Markov-Chains. More...
 
struct  const_rate
 A simple constant rate. More...
 
class  index_out_of_bounds_exception
 Thrown whenever a model finds an index to be out of bounds. More...
 
class  invalid_parameter_exception
 Thrown whenever an invalid parameter to a model is given. More...
 
class  invalid_state_exception
 Thrown whenever a markov chain model finds an invalid or non-existing state. More...
 
class  lineshape_classic
 
struct  lsf_electron_trap_tag
 
struct  lsf_forward_tag
 
struct  lsf_hole_trap_tag
 
struct  lsf_reverse_tag
 
class  model_evaluation_exception
 Exception for the case that the evaluation of a model fails. More...
 
struct  rate_base
 The basic rate interface. More...
 
class  ssa_solver
 The SSA (Monte Carlo) solver for Markov-Chains The given chain is being referenced and the occupancies p_i of the states are being changed. The resp. occupancies can either be 1.0 (occupied) or 0 (unoccupied)! The solver additionally guarantees that sum_i p_i = 1.0, i.e. only one state is occupied at a time ! More...
 
class  state_base
 The basic concept of a state in Markov-Chains. More...
 
class  wkb_oxide_barrier_tunneling
 A functor interface to the WKB tunneling coefficient for oxide barriers. More...
 

Functions

void set_chain_to_equilibrium_expectation (chain &c)
 Solves the time averaged set of equilibrium (dt->infty) equations for the given Markov-Chain and sets the respective occupancies The occupancies f_i will be values between zero and one, where sum_i f_i = 1. More...
 
void solve_for_expectation_occupancies (chain &c, double dt)
 Solves the time averaged set of equations (including time derivatives) for the occupancies f_i in a given Markov-Chain and sets the resp. occupancies. The occupancies f_i will be values between zero and one, where sum_i f_i = 1. In order to solve the time dependent equations the backward-euler method is used. More...
 
template<typename DeviceType >
viennashe::models::dd::mobility< DeviceType > create_mobility_model (DeviceType const &device, viennashe::models::dd::mobility_paramters const &params)
 Creates a new mobility model using the given parameters. More...
 
template<typename DeviceType >
viennashe::models::dd::mobility< DeviceType > create_constant_mobility_model (DeviceType const &device, double mu)
 Returns a mobility model, which always yields the same mobility. More...
 

Detailed Description

Namespace containing everything models related.

Function Documentation

◆ create_constant_mobility_model()

template<typename DeviceType >
viennashe::models::dd::mobility< DeviceType > viennashe::models::create_constant_mobility_model ( DeviceType const &  device,
double  mu 
)

Returns a mobility model, which always yields the same mobility.

Parameters
device
muThe mobility you like the model to yield
Returns
A viennashe::models::dd::mobility model, where all submodels have been disabled

Definition at line 61 of file mobility.hpp.

◆ create_mobility_model()

template<typename DeviceType >
viennashe::models::dd::mobility< DeviceType > viennashe::models::create_mobility_model ( DeviceType const &  device,
viennashe::models::dd::mobility_paramters const &  params 
)

Creates a new mobility model using the given parameters.

Parameters
deviceThe device
paramsThe mobility model parameters
Returns
A viennashe::models::dd::mobility model

Definition at line 48 of file mobility.hpp.

◆ set_chain_to_equilibrium_expectation()

void viennashe::models::set_chain_to_equilibrium_expectation ( chain c)
inline

Solves the time averaged set of equilibrium (dt->infty) equations for the given Markov-Chain and sets the respective occupancies The occupancies f_i will be values between zero and one, where sum_i f_i = 1.

Parameters
cA valid reference to the chain. The internal state of the given object will be changed

Definition at line 303 of file chain.hpp.

◆ solve_for_expectation_occupancies()

void viennashe::models::solve_for_expectation_occupancies ( chain c,
double  dt 
)
inline

Solves the time averaged set of equations (including time derivatives) for the occupancies f_i in a given Markov-Chain and sets the resp. occupancies. The occupancies f_i will be values between zero and one, where sum_i f_i = 1. In order to solve the time dependent equations the backward-euler method is used.

Parameters
cA valid reference to the chain. The internal state of the given object will be changed
dtThe finite time step (in seconds)

Definition at line 381 of file chain.hpp.