|
TBTK
|
#include <ReciprocalLattice.h>
Public Member Functions | |
| ReciprocalLattice (UnitCell *unitCell, std::initializer_list< int > size) | |
| ~ReciprocalLattice () | |
| Model * | generateModel (std::initializer_list< double > momentum) const |
| const std::vector< std::vector< double > > & | getReciprocalLatticeVectors () const |
The ReciprocalLattice provides methods for constructing momentum space Models from a UnitCell. Let the real space Hamiltonian be written on the form
where R and R' are UnitCell-indices and i and i' are intra UnitCell-indices. Expanding the operators in the momentum basis we have
Now assuming translational invaraince, such that the coefficients only depend on the relative UnitCell positions, we can write
where
. Carrying out the sum over R' we arrive at
It therefore follows that the momentum space HoppingAmplitudes are given by
The purpose of this class is to provide method for constructing Models for given k and k' using these coefficients. This is done by specifying a real space environment around a reference UnitCell, large enough to ensure that the sum can run over all relevant
, and then using this to calcualte the coefficeints when Models with given k and k' is demanded.
| TBTK::ReciprocalLattice::ReciprocalLattice | ( | UnitCell * | unitCell, |
| std::initializer_list< int > | size | ||
| ) |
Constructor.
| TBTK::ReciprocalLattice::~ReciprocalLattice | ( | ) |
Destructor.
| Model * TBTK::ReciprocalLattice::generateModel | ( | std::initializer_list< double > | momentum | ) | const |
Genearates a Model for give momentum.
|
inline |
Get reciprocal lattice vectors.
1.8.11