ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::physics::dispersion_base Class Referenceabstract

Common interface for band structures. More...

#include <dispersion.hpp>

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

Public Member Functions

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

Common interface for band structures.

Static polymorphism is not used here because this option should be modified from the outside via config files.

Definition at line 40 of file dispersion.hpp.

Constructor & Destructor Documentation

◆ ~dispersion_base()

virtual viennashe::physics::dispersion_base::~dispersion_base ( )
inlinevirtual

Definition at line 63 of file dispersion.hpp.

Member Function Documentation

◆ clone()

virtual dispersion_base * viennashe::physics::dispersion_base::clone ( ) const
pure virtual

◆ density_of_states()

virtual double viennashe::physics::dispersion_base::density_of_states ( double  ekin,
double  theta = 0,
double  phi = 0 
) const
pure virtual

Returns the density of states as a function of kinetic energy (and angles, eventually)

Implemented in viennashe::physics::parabolic_dispersion< MaterialType >, viennashe::physics::modena_dispersion< MaterialType >, and viennashe::physics::ext_vecchi_dispersion< MaterialType >.

◆ is_isotropic()

virtual bool viennashe::physics::dispersion_base::is_isotropic ( ) const
inlinevirtual

Returns true if the dispersion relation is isotropic.

Definition at line 56 of file dispersion.hpp.

◆ norm_k()

virtual double viennashe::physics::dispersion_base::norm_k ( double  ekin,
double  theta = 0,
double  phi = 0 
) const
pure virtual

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

Implemented in viennashe::physics::parabolic_dispersion< MaterialType >, viennashe::physics::modena_dispersion< MaterialType >, and viennashe::physics::ext_vecchi_dispersion< MaterialType >.

◆ symmetry_factor()

virtual double viennashe::physics::dispersion_base::symmetry_factor ( ) const
pure virtual

◆ velocity()

virtual double viennashe::physics::dispersion_base::velocity ( double  ekin,
double  theta = 0,
double  phi = 0 
) const
pure virtual

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