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 >.