functions.band_structure.wilson_loop
- wilson_loop(_eigenvectors, _band, _idx_y, _group_size=1)[source]
Compute the Wilson loop.
The Wilson loop term is defined as the product of Berry phases around a cycle of the Brillouin zone, such that
\[W = -\Im \log \prod_{\alpha} \tilde{\mathcal{U}}_2(\mathbf{k}_\alpha),\]where \(\tilde{\mathcal{U}}_2\) is the normalized link variable, \(\mathbf{k}_\alpha\) is the discretized momentum vector, and the product is taken on a Brillouin zone cycle in the \(\gamma=2\) direction. [Gresch18]
- Parameters:
_eigenvectors (ndarray) – The array of eigenvectors with dimension (num_bands, num_bands, num_samples, num_samples).
_band (int) – The band number. If part of a band group, this must refer to the lowest band of the group.
_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:
Wilson_loop – The Wilson loop term.
- Return type: