|
TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
|
Tools for working with Bravais lattices, Brillouin zones and tight-binding Hamiltonians.
The lattice tools provide classes to describe crystal lattices in real and reciprocal space, and to build tight-binding Hamiltonians on top of them. The main classes are:
Classes | |
| class | triqs::lattice::bravais_lattice |
| A Bravais lattice class. More... | |
| class | triqs::lattice::brillouin_zone |
| A Brillouin zone class. More... | |
| class | triqs::lattice::grid_generator |
| Forward iterator generating uniformly-spaced points in the d-dimensional unit cube \( [0,1)^d \). More... | |
| struct | triqs::lattice::hopping_dict |
| Ordered dictionary mapping lattice displacements to hopping (overlap) matrices. More... | |
| class | triqs::lattice::tight_binding |
| Tight-binding Hamiltonian on a Bravais lattice with fully localised orbitals. More... | |
Typedefs | |
| using | triqs::lattice::k_t = nda::vector<double> |
| Reciprocal space vector type. | |
| using | triqs::lattice::matrix_t = nda::matrix<double> |
| Matrix type for transformations involving real and reciprocal space vectors. | |
| using | triqs::lattice::r_t = nda::vector<double> |
| Real space vector type. | |
| using | triqs::lattice::v_t = nda::vector<double> |
| Point type used by grid_generator: a real-valued vector (nda::vector<double>). | |
Functions | |
| std::pair< array< double, 1 >, array< double, 2 > > | triqs::lattice::dos (tight_binding const &TB, int nkpts, int neps) |
| Compute the density of states of a tight-binding Hamiltonian on a regular k-grid. | |
| std::pair< nda::array< double, 1 >, nda::array< double, 1 > > | triqs::lattice::dos_patch (tight_binding const &TB, const nda::array< double, 2 > &triangles, int neps, int ndiv) |
| Compute the density of states of a tight-binding Hamiltonian on a triangular Brillouin zone patch. | |
| std::pair< nda::array< double, 1 >, nda::array< double, 2 > > triqs::lattice::dos | ( | tight_binding const & | TB, |
| int | nkpts, | ||
| int | neps ) |
#include <triqs/lattice/tight_binding.cpp>
Compute the density of states of a tight-binding Hamiltonian on a regular k-grid.
The Brillouin zone is sampled by a regular grid of \( n_\text{kpts}^d \) momentum points (where \( d \) is the dimension of the lattice), the dispersion is diagonalised on each grid point, and the resulting band energies are histogrammed into neps bins per orbital.
| TB | Tight-binding Hamiltonian. |
| nkpts | Number of k-points along each dimension. |
| neps | Number of energy bins. |
Definition at line 81 of file tight_binding.cpp.
| std::pair< nda::array< double, 1 >, nda::array< double, 1 > > triqs::lattice::dos_patch | ( | tight_binding const & | TB, |
| const nda::array< double, 2 > & | triangles, | ||
| int | neps, | ||
| int | ndiv ) |
#include <triqs/lattice/tight_binding.hpp>
Compute the density of states of a tight-binding Hamiltonian on a triangular Brillouin zone patch.
| TB | Tight-binding Hamiltonian. |
| triangles | 2-D array of shape (n_triangles * 3, 2) containing the vertices of the triangular patches in the Brillouin zone, three rows per triangle. |
| neps | Number of energy bins. |
| ndiv | Number of sub-divisions of each triangle used for the sampling. |