functions.band_structure.geom_tensor

geom_tensor(_eigenvectors, _eigenvectors_dkx, _eigenvectors_dky, _bvec, _band, _idx_x, _idx_y, _group_size=1)[source]

Compute the quantum geometric tensor.

The quantum geometric tensor is computed using

\[\mathcal{R}_{\mu\nu}(\mathbf{k}) = \mathrm{tr} ( \mathcal{P}_\mathbf{k} \partial_{k_\mu} \mathcal{P}_\mathbf{k} \partial_{k_\nu} \mathcal{P}_\mathbf{k}),\]

where \(\mathcal{P}_\mathbf{k} = \sum_n^{N_\mathrm{g}} \ket{u_n(\mathbf{k})}\bra{u_n(\mathbf{k})}\) is the band projector and the sum is performed over all bands in the band group \(N_\mathrm{g}\). [Hirschmann24, Parameswaran13]

Parameters:
  • _eigenvectors (ndarray) – The array of eigenvectors with dimension (num_bands, num_bands, num_samples, num_samples).

  • _eigenvectors_dkx (ndarray) – The array of eigenvectors at a dkx offset with dimension (num_bands, num_bands, num_samples, num_samples).

  • _eigenvectors_dky (ndarray) – The array of eigenvectors at a dky offset with dimension (num_bands, num_bands, num_samples, num_samples).

  • _bvec (ndarray) – The array of reciprocal lattice vectors.

  • _band (int) – The band number. If part of a band group, this must refer to the lowest band of the group.

  • _idx_x (int) – The x-momentum index, with respect to the discretized grid.

  • _idx_y (int) – The y-momentum index, with respect to the discretized grid.

  • _group_size (int) – The number of touching bands a.k.a. number of bands in the band group (default=1).

Returns:

tensor – The quantum geometric tensor with dimension (2,2).

Return type:

ndarray