Common interface for band structures. More...
#include <dispersion.hpp>
  
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_base * | clone () 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 () | 
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.
      
  | 
  inlinevirtual | 
Definition at line 63 of file dispersion.hpp.
      
  | 
  pure virtual | 
Clones the dispersion relation. User must ensure that the returned copy is deleted.
Implemented in viennashe::physics::parabolic_dispersion< MaterialType >, viennashe::physics::modena_dispersion< MaterialType >, and viennashe::physics::ext_vecchi_dispersion< MaterialType >.
      
  | 
  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 >.
      
  | 
  inlinevirtual | 
Returns true if the dispersion relation is isotropic.
Definition at line 56 of file dispersion.hpp.
      
  | 
  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 >.
      
  | 
  pure virtual | 
      
  | 
  pure virtual | 
Returns the group velocity 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 >.