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