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

Non-parabolic dispersion relation proposed by the Modena group (spherically symmetric). More...

#include <dispersion.hpp>

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

Public Member Functions

 modena_dispersion (viennashe::carrier_type_id ctype, double a=0.5/viennashe::physics::constants::q)
 
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
 Generalized density of states. 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::modena_dispersion< MaterialType >

Non-parabolic dispersion relation proposed by the Modena group (spherically symmetric).

eps * (1 + alpha * eps) = hbar^2 * k^2 / (2 * m)

Template Parameters
MaterialTypeA class for the material

Definition at line 207 of file dispersion.hpp.

Constructor & Destructor Documentation

◆ modena_dispersion()

template<typename MaterialType >
viennashe::physics::modena_dispersion< MaterialType >::modena_dispersion ( viennashe::carrier_type_id  ctype,
double  a = 0.5 / viennashe::physics::constants::q 
)
inline

Definition at line 210 of file dispersion.hpp.

Member Function Documentation

◆ clone()

template<typename MaterialType >
dispersion_base * viennashe::physics::modena_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 273 of file dispersion.hpp.

◆ density_of_states()

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

Generalized density of states.

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 233 of file dispersion.hpp.

◆ norm_k()

template<typename MaterialType >
double viennashe::physics::modena_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 214 of file dispersion.hpp.

◆ symmetry_factor()

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

Returns the number of symmetric bands in k-space.

Implements viennashe::physics::dispersion_base.

Definition at line 276 of file dispersion.hpp.

◆ velocity()

template<typename MaterialType >
double viennashe::physics::modena_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 257 of file dispersion.hpp.


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