pythtb.WFArray.wilson_loop#
- WFArray.wilson_loop(axis_idx, state_idx=None, wilson_evals=False)[source]#
Wilson loop along a chosen mesh axis.
The Wilson is defined as the ordered product of unitary link matrices along a closed loop string of points in parameter space. For a direction \(\mu\) in the mesh, this routine computes the Wilson loop unitary matrix along that direction,
\[W_{\mu} = \prod_{n=0}^{N_{\mu}-1} U_{\mu}\!\bigl(\boldsymbol{\kappa}_n \bigr)\]where \(\mu\) corresponds to
axis_idx, and \(U_{\mu}(\boldsymbol{\kappa}_n)\) is the unitary part of the overlap matrix between the states at consecutive mesh points (seelinks()).Added in version 2.0.0.
- Parameters:
- axis_idxint
Index of
Meshaxis along which Wilson loop is computed.- state_idxint, array-like, optional
Optional band index or array of band indices to be included in the subsequent calculations. If unspecified, all bands are included.
- wilson_evalsbool, optional
If True, then will compute eigenvalues of the Wilson loop and return them along with the Wilson loop. Default is False.
- Returns:
- U_wilsonnp.ndarray
Wilson loop unitary matrix of shape
(band, band).- eigvalsnp.ndarray, optional
Unit norm complex eigenvalues of the Wilson loop unitary matrix. Returned only if
wilson_evals=True, otherwise not returned.
See also
Notes
When
wilson_evals=True, the function computes and returns the eigenvalues of the Wilson loop unitary matrix. The eigenvalues are complex numbers of the form\[\lambda_n = e^{i \phi_n}\]where \(\phi_n\) are the multiband Berry phases associated with each band.
wilson_evalsare to be distinguished from multiband Berry phases (as returned inberry_phase()withberry_evals=True). Theberry_evalsare the phase arguments ofwilson_evals, not the eigenvalues themselves.For an array of size
Nalongaxis_idx, the Wilson loop is formed from theN-1nearest-neighbor inner products. This gives an open-path “Wilson line” unless the endpoints correspond to the same physical Hamiltonian; in which case the first state is appended to the end (if endpoints are not already identical) to close the loop (with appropriate PBC phase along k-axes).