triqs.lattice.super_lattice.TBSuperLattice.fourier

TBSuperLattice.fourier(arg)

Dispatched C++ function(s).

[1] (k: ndarray[float, 1])
  -> ndarray[complex, 2]

[2] (k: ndarray[float, 2])
  -> ndarray[complex, 3]

[3] (k_mesh: MeshBrZone)
  -> Gf[MeshBrZone, 2]

[4] (n_l: int)
  -> Gf[MeshBrZone, 2]

[1, 2] Compute the Fourier transform for a given momentum vector (or array of momentum vectors).

The Bloch Hamiltonian is given by

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

with lattice displacements \(\{ \mathbf{R}_j \}\) and associated overlap (hopping) matrices \(\{ t_{\mathbf{R}_j} \}\). The momentum \(\mathbf{k}\) is expressed in units of the reciprocal lattice basis vectors.


[3] Compute the Fourier transform on a given Brillouin zone mesh.


[4] Compute the Fourier transform on a regular Brillouin zone mesh with n_l points per dimension.


Parameters:
kndarray[float, 1], ndarray[float, 2]

Momentum vector (or an array of momentum vectors) in units of the reciprocal lattice basis vectors.

k_meshMeshBrZone

Brillouin zone mesh on which to evaluate the Bloch Hamiltonian.

n_lint

Number of grid-points along each reciprocal direction.

Returns:
[1]ndarray[complex, 2]

Complex matrix \(h_{\mathbf{k}}\) (or an array of such matrices, one per input momentum).

[2]ndarray[complex, 3]

Complex matrix \(h_{\mathbf{k}}\) (or an array of such matrices, one per input momentum).

[3]Gf[MeshBrZone, 2]

Matrix-valued Green’s function defined on k_mesh, with its data initialised with the Fourier transform \(h_{\mathbf{k}}\) at every mesh point.

[4]Gf[MeshBrZone, 2]

Matrix-valued Green’s function defined on the regular Brillouin zone mesh, with its data initialised with the Fourier transform \(h_{\mathbf{k}}\) at every mesh point.