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

Namespace for physics models used within ViennaSHE. More...

Namespaces

namespace  convert
 Auxiliary namespace for converting quantities of different units.
 
namespace  detail
 Implementations. Not intended to be used by a library user.
 

Classes

class  data_not_available_exception
 Exception which is thrown if there is no data for a given energy. More...
 
class  dispersion_base
 Common interface for band structures. More...
 
class  dispersion_not_invertible_exception
 Exception which is thrown if there is no data for a given energy. More...
 
class  dispersion_proxy
 A proxy object for a dispersion relation. Does NOT take ownership of the provided pointer! More...
 
class  ext_vecchi_dispersion
 Non-parabolic isotropic dispersion relation proposed by Jin et al. TED 2011 (uses real DOS) More...
 
class  modena_dispersion
 Non-parabolic dispersion relation proposed by the Modena group (spherically symmetric). More...
 
class  no_lattice_temperature_available_exception
 Exception which is thrown if there is no lattice temperature for a vertex. More...
 
class  parabolic_dispersion
 Parabolic dispersion relation (spherically symmetric) More...
 

Typedefs

typedef detail::constants constants
 

Functions

double get_thermal_potential (double T)
 Returns the thermal potential for the provided temperature. More...
 
double get_optical_phonon_number (double eps_optical, double temperature=300.0)
 Returns the optical phonon number for use with optical phonon scattering. More...
 
double get_band_weight (double temperature, viennashe::carrier_type_id ctype)
 Returns the band weight (N_c or N_v) More...
 
double get_band_edge (viennashe::carrier_type_id const &ctype)
 Returns the band edge relative to the reference energy (mid-gap) More...
 
double get_thermal_velocity (double temperature, viennashe::carrier_type_id ctype)
 Returns the thermal velocity at the given lattice temperature for a given carrier type. More...
 
double get_auxilary_concentration (double temperature, viennashe::carrier_type_id ctype)
 Returns the auxilary carrier concentration. More...
 
double built_in_potential (double temperature, double doping_n, double doping_p)
 Computes the built-in potential for a given temperature and given doping. More...
 
double contact_carrier_ohm (double temperature, double doping_n, double doping_p, viennashe::carrier_type_id ctype)
 Consistently calculates the contact carrier concentrations for thermal bath contacts. More...
 

Detailed Description

Namespace for physics models used within ViennaSHE.

Typedef Documentation

◆ constants

Definition at line 79 of file constants.hpp.

Function Documentation

◆ built_in_potential()

double viennashe::physics::built_in_potential ( double  temperature,
double  doping_n,
double  doping_p 
)
inline

Computes the built-in potential for a given temperature and given doping.

Parameters
temperatureThe lattice temperature
doping_nThe donor doping (SI units only!)
doping_pThe acceptor doping (SI units only!)
Returns
The built-in potential in Volt

Definition at line 141 of file physics.hpp.

◆ contact_carrier_ohm()

double viennashe::physics::contact_carrier_ohm ( double  temperature,
double  doping_n,
double  doping_p,
viennashe::carrier_type_id  ctype 
)
inline

Consistently calculates the contact carrier concentrations for thermal bath contacts.

Parameters
temperatureThe lattice temperature
doping_nThe donor doping
doping_pThe acceptor doping
ctypeThe carrier type (electrons or holes)
Returns
The carrier concentration for thermal bath contacts

Definition at line 173 of file physics.hpp.

◆ get_auxilary_concentration()

double viennashe::physics::get_auxilary_concentration ( double  temperature,
viennashe::carrier_type_id  ctype 
)
inline

Returns the auxilary carrier concentration.

Parameters
temperatureThe lattice temperature
ctypeThe carrier type (electrons or holes)
Returns
A carrier concentration

Definition at line 124 of file physics.hpp.

◆ get_band_edge()

double viennashe::physics::get_band_edge ( viennashe::carrier_type_id const &  ctype)
inline

Returns the band edge relative to the reference energy (mid-gap)

Parameters
ctypeGive electrons for E_c and holes for E_v
Returns
The band edge in Joule

Definition at line 98 of file physics.hpp.

◆ get_band_weight()

double viennashe::physics::get_band_weight ( double  temperature,
viennashe::carrier_type_id  ctype 
)
inline

Returns the band weight (N_c or N_v)

Parameters
temperatureThe lattice temperature
ctypeDetermines whether to return N_c (electrons) or N_v (holes)
Returns
The band weight

Definition at line 84 of file physics.hpp.

◆ get_optical_phonon_number()

double viennashe::physics::get_optical_phonon_number ( double  eps_optical,
double  temperature = 300.0 
)
inline

Returns the optical phonon number for use with optical phonon scattering.

Parameters
eps_opticalThe phonon energy
temperatureThe lattice temperature

Definition at line 71 of file physics.hpp.

◆ get_thermal_potential()

double viennashe::physics::get_thermal_potential ( double  T)
inline

Returns the thermal potential for the provided temperature.

Definition at line 61 of file physics.hpp.

◆ get_thermal_velocity()

double viennashe::physics::get_thermal_velocity ( double  temperature,
viennashe::carrier_type_id  ctype 
)
inline

Returns the thermal velocity at the given lattice temperature for a given carrier type.

Parameters
temperatureThe lattice temperature
ctypeThe charge carrier type
Returns
The thermal velocity in meters per second

Definition at line 110 of file physics.hpp.