berry_curvature

sisl.physics.electron.berry_curvature(state, energy, dHk, dSk=None, degenerate=None, complex=False)[source]

Calculate the Berry curvature matrix for a set of states (using Kubo)

The Berry curvature is calculated using the following expression (\(\alpha\), \(\beta\) corresponding to Cartesian directions):

\[\boldsymbol\Omega_{n,\alpha\beta} = - \frac2\hbar^2\Im\sum_{m\neq n} \frac{v_{nm,\alpha} v_{mn,\beta}} {[\epsilon_m - \epsilon_n]^2}\]

Note that this method optionally returns the complex valued equivalent of the above. I.e. \(\Im\) is not applied if complex is true.

For details see Eq. (11) in 1 or Eq. (2.59) in 2.

Parameters
  • state (array_like) – vectors describing the electronic states, 2nd dimension contains the states. In case of degenerate states the vectors may be rotated upon return.

  • energy (array_like, optional) – energies of the states. In case of degenerate states the eigenvalues of the states will be averaged in the degenerate sub-space.

  • dHk (list of array_like) – Hamiltonian derivative with respect to \(\mathbf k\). This needs to be a tuple or list of the Hamiltonian derivative along the 3 Cartesian directions.

  • dSk (list of array_like, optional) – \(\delta \mathbf S_k\) matrix required for non-orthogonal basis. Same derivative as dHk. NOTE: Using non-orthogonal basis sets are not tested.

  • degenerate (list of array_like, optional) – a list containing the indices of degenerate states. In that case a prior diagonalization is required to decouple them. This is done 3 times along each of the Cartesian directions.

  • complex (logical, optional) – whether the returned quantity is complex valued (i.e. not only the imaginary part is returned)

See also

velocity

calculate state velocities

velocity_matrix

calculate state velocities between all states

References

1
  1. Wang, J. R. Yates, I. Souza, D. Vanderbilt, “Ab initio calculation of the anomalous Hall conductivity by Wannier interpolation”, PRB, 74, 195118 (2006)

2
    1. Asboth, L. Oroslany, A. Palyi, “A Short Course on Topological Insulators”, arXiv 1509.02295 (2015).

Returns

Berry flux with final dimension (state.shape[0], 3, 3) (complex if complex is True).

Return type

numpy.ndarray