ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::physics::parabolic_dispersion< MaterialType > Class Template Reference

Parabolic dispersion relation (spherically symmetric) More...

#include <dispersion.hpp>

Inheritance diagram for viennashe::physics::parabolic_dispersion< MaterialType >:
viennashe::physics::dispersion_base

Public Member Functions

 parabolic_dispersion (viennashe::carrier_type_id ctype)
 
double norm_k (double energy, double theta=0, double phi=0) const
 Returns the norm of the k-vector as a function of energy (and angles, eventually). Not possible for all dispersion relations. More...
 
double density_of_states (double eps, double theta=0, double phi=0) const
 Total generalized density of states for one spin direction, considering six-fold symmetry. More...
 
double velocity (double eps, double theta=0, double phi=0) const
 Carrier group velocity. More...
 
dispersion_baseclone () const
 Clones the dispersion relation. User must ensure that the returned copy is deleted. More...
 
double symmetry_factor () const
 Returns the number of symmetric bands in k-space. More...
 
- Public Member Functions inherited from viennashe::physics::dispersion_base
virtual double density_of_states (double ekin, double theta=0, double phi=0) const =0
 Returns the density of states as a function of kinetic energy (and angles, eventually) More...
 
virtual double velocity (double ekin, double theta=0, double phi=0) const =0
 Returns the group velocity as a function of kinetic energy (and angles, eventually) More...
 
virtual double norm_k (double ekin, double theta=0, double phi=0) const =0
 Returns the norm of the k-vector as a function of energy (and angles, eventually). Not possible for all dispersion relations. More...
 
virtual bool is_isotropic () const
 Returns true if the dispersion relation is isotropic. More...
 
virtual dispersion_baseclone () const =0
 Clones the dispersion relation. User must ensure that the returned copy is deleted. More...
 
virtual double symmetry_factor () const =0
 
virtual ~dispersion_base ()
 

Detailed Description

template<typename MaterialType>
class viennashe::physics::parabolic_dispersion< MaterialType >

Parabolic dispersion relation (spherically symmetric)

eps = hbar^2 k^2 / (2 m)

Template Parameters
MaterialTypeA class for the material

Definition at line 116 of file dispersion.hpp.

Constructor & Destructor Documentation

◆ parabolic_dispersion()

template<typename MaterialType >
viennashe::physics::parabolic_dispersion< MaterialType >::parabolic_dispersion ( viennashe::carrier_type_id  ctype)
inline

Definition at line 121 of file dispersion.hpp.

Member Function Documentation

◆ clone()

template<typename MaterialType >
dispersion_base * viennashe::physics::parabolic_dispersion< MaterialType >::clone ( ) const
inlinevirtual

Clones the dispersion relation. User must ensure that the returned copy is deleted.

Implements viennashe::physics::dispersion_base.

Definition at line 185 of file dispersion.hpp.

◆ density_of_states()

template<typename MaterialType >
double viennashe::physics::parabolic_dispersion< MaterialType >::density_of_states ( double  eps,
double  theta = 0,
double  phi = 0 
) const
inlinevirtual

Total generalized density of states for one spin direction, considering six-fold symmetry.

Since other models may allow for an additional angular dependency, the expression differs by a factor of 4*PI from the conventional expression (4*PI is just the area of the unit sphere)

Parameters
epsThe energy (relative to the band edge) for which the generalized DOS should be evaluated
thetaInclination
phiAzimuth

Implements viennashe::physics::dispersion_base.

Definition at line 151 of file dispersion.hpp.

◆ norm_k()

template<typename MaterialType >
double viennashe::physics::parabolic_dispersion< MaterialType >::norm_k ( double  energy,
double  theta = 0,
double  phi = 0 
) const
inlinevirtual

Returns the norm of the k-vector as a function of energy (and angles, eventually). Not possible for all dispersion relations.

Implements viennashe::physics::dispersion_base.

Definition at line 132 of file dispersion.hpp.

◆ symmetry_factor()

template<typename MaterialType >
double viennashe::physics::parabolic_dispersion< MaterialType >::symmetry_factor ( ) const
inlinevirtual

Returns the number of symmetric bands in k-space.

Implements viennashe::physics::dispersion_base.

Definition at line 188 of file dispersion.hpp.

◆ velocity()

template<typename MaterialType >
double viennashe::physics::parabolic_dispersion< MaterialType >::velocity ( double  eps,
double  theta = 0,
double  phi = 0 
) const
inlinevirtual

Carrier group velocity.

Parameters
epsThe energy (relative to the band edge) for which the velocity should be evaluated
thetaInclination
phiAzimuth

Implements viennashe::physics::dispersion_base.

Definition at line 172 of file dispersion.hpp.


The documentation for this class was generated from the following file: