pythtb.WFArray.berry_connection#
- WFArray.berry_connection(axis_idx=None, state_idx=None, *, return_unitaries=False, cartesian=False)[source]#
Berry connection from parallel-transport links.
This routine evaluates the (non-Abelian) Berry connection on the reduced parameter mesh. For each mesh direction \(\mu\) in
axis_idx, the connection is obtained from the parallel-transport link unitaries \(U_{\mu}(\boldsymbol{\kappa})\) returned bylinks(), using the discrete finite-difference approximation:\[A_{\mu}(\boldsymbol{\kappa}) \;=\; -\frac{1}{i\,\Delta \kappa_{\mu}} \log\!\big[\,U_{\mu}(\boldsymbol{\kappa})\,\big],\]where \(\Delta \kappa_{\mu}\) is the step size (in reduced coordinates) between adjacent points along direction \(\mu\). The result is a matrix-valued, non-Abelian connection defined over the full reduced mesh \(\boldsymbol{\kappa} = (k_1,\dots,k_{d_k};\,\lambda_1,\dots,\lambda_{d_\lambda})\), with the final two array axes spanning the band subspace specified by
state_idx.Added in version 2.0.0.
- Parameters:
- axis_idxint or array_like of int or None, optional
Mesh directions \(\mu\) along which to compute the connection. If None, all mesh axes are used. Default is None.
- state_idxint or array_like of int or None, optional
Subspace (band indices) to use. If None, use all. Default is None.
- return_unitariesbool, optional
If True, also return the link unitaries \(U_{\mu}\). Default is False.
- cartesianbool, optional
If True, compute the step size \(\Delta k_\mu\) in Cartesian space (using the reciprocal lattice vectors) rather than in reduced coordinates. Default is False.
- Returns:
- Andarray
Non-Abelian connection with shape:
(n_mu, *mesh_shape, nstate, nstate), wheren_mu = len(axis_idx)(orWFArray.naxesifaxis_idx=None) andnstate = len(state_idx)(orWFArray.nstatesifstate_idx=None).- Undarray, optional
The link unitaries with same shape (returned if
return_unitaries=True).
See also
Notes
The connection is Hermitian, \(A_\mu^\dagger = A_\mu\).
The logarithm is computed using spectral decomposition of the unitaries \(U = V \, \text{diag}(e^{i\theta_n}) \, V^\dagger\), with principal phases \(\theta_n\) in \((-\pi, \pi]\).
Entries of the connection at invalid boundaries (where links are NaN; see
links()) remain NaN.