pythtb.WFArray.berry_curvature#
- WFArray.berry_curvature(plane=None, state_idx=None, non_abelian=False, return_flux=False)[source]#
Berry curvature tensor using the Fukui-Hatsugai-Suzuki formalism.
The Berry curvature tensor \(\Omega_{\mu\nu}(\mathbf{k})\) is computed using a discretized formula based on the Fukui-Hatsugai-Suzuki (FHS) plaquette-based method [1]. The curvature is approximated from the Berry flux (computed in
berry_flux()) by dividing the flux by the (presumed uniform) area of the plaquette in parameter space,\[\Omega_{\mu\nu}(\mathbf{k}) \approx \frac{\mathcal{F}_{\mu\nu}(\mathbf{k})}{A_{\mu\nu}},\]where \(A_{\mu\nu}\) is the area (in Cartesian units) of the plaquette in parameter space.
The tensor is either defined is a matrix-valued quantity (non-Abelian case) or as a scalar quantity obtained by tracing over the band indices (Abelian case).
Added in version 2.0.0.
- Parameters:
- plane(2,) array_like, optional
Array or tuple of two indices defining the axes in the WFArray mesh which the Berry flux is computed over. By default, all directions are considered, and the full Berry flux tensor is returned.
- state_idxint or array_like of int, optional
Optional index or array of indices defining the states to be included in the subsequent calculations, typically the indices of bands considered occupied. If not specified, or None, all bands are included.
- non_abelianbool, optional
If True then the non-Abelian Berry flux tensor is computed defined as a matrix-valued quantity. If False (default) then the Berry flux is computed as a scalar quantity by tracing over the band indices.
- return_fluxbool, optional
If True, the function returns a tuple containing both the Berry curvature and the Berry flux tensors. If False (default), only the Berry curvature tensor is returned.
- Returns:
- berry_curvnp.ndarray
Berry curvature tensor with shape depending on input parameters.
- berry_fluxnp.ndarray, optional
Berry flux tensor with shape depending on input parameters.
See also
berry_flux()For details and formalism on the Berry flux tensor.
Notes
The method requires at least a two-dimensional mesh in the combined adiabatic space (momentum + adiabatic parameters). Thus,
WFArray.naxes >= 2.The last point along closed or non-periodic axes is trimmed from the curvature array to avoid overcounting, since it is equivalent to the first point.
References
[1]T. Fukui, Y. Hatsugai, and H. Suzuki, J. Phys. Soc. Jpn. 74, 1674 (2005).