triqs.lattice.lattice_tools.TightBinding

class triqs.lattice.lattice_tools.TightBinding

Bases: object

Tight-binding Hamiltonian on a Bravais lattice with fully localised orbitals.

The Hamiltonian is parametrised by a set of lattice displacements \(\{ \mathbf{R}_j \}\) (given in units of the lattice basis vectors) and the associated overlap (hopping) matrices \(\{ t_{\mathbf{R}_j} \}\) between orbitals in the unit cell. The Bloch Hamiltonian in reciprocal space is obtained by the discrete Fourier transform

\[h_{\mathbf{k}} = \sum_j t_{\mathbf{R}_j} \, e^{2 \pi i \, \mathbf{k} \cdot \mathbf{R}_j} \; ,\]

where the momentum \(\mathbf{k}\) is expressed in units of the reciprocal lattice basis vectors.

The orbital overlap within a unit cell (the on-site block at \(\mathbf{R} = 0\)) is the identity matrix unless explicitly overridden by the user-provided hoppings.


Dispatched C++ constructor(s).

[1] (bl: BravaisLattice, displ_vec: [ndarray[int, 1]], overlap_mat_vec: [ndarray[complex, 2]])

[2] (bl: BravaisLattice, hoppings: dict[tuple[int,...], ndarray])

[1] Construct a tight-binding Hamiltonian on a given Bravais lattice from explicit displacement and overlap lists.

The matrix structure of each overlap matrix is with respect to the orbitals in the unit cell. The displacement and overlap lists must have the same length, and every overlap matrix must be square with size equal to the number of orbitals in the unit cell.


[2] Construct a tight-binding Hamiltonian on a given Bravais lattice from a hopping dictionary.


Parameters:
blBravaisLattice

Underlying Bravais lattice.

displ_vec[ndarray[int, 1]]

List of displacement vectors, in units of the lattice basis vectors.

overlap_mat_vec[ndarray[complex, 2]]

List of overlap (hopping) matrices, one per displacement.

hoppingsdict[tuple[int,…], ndarray]

Hopping dictionary mapping displacement vectors to their overlap matrices.

Attributes

displ_vec

Get the list of displacement vectors, in units of the lattice basis vectors.

lattice

Get the underlying Bravais lattice.

n_orbitals

Number of orbitals (also the size of the Bloch Hamiltonian matrix \(h_{\mathbf{k}}\)).

overlap_mat_vec

Get the list of overlap (hopping) matrices, aligned with the displacement vectors.

Methods

dispersion

Compute the dispersion, i.e. the eigenvalue spectrum of \(h_{\mathbf{k}}\), for a given momentum vector.

fourier

Compute the Fourier transform for a given momentum vector (or array of momentum vectors).

h5_read_construct

Construct a tight-binding Hamiltonian by reading it from HDF5.

lattice_to_real_coordinates

Transform a vector from the lattice basis to the standard basis.