Safe Haskell | None |
---|---|
Language | Haskell98 |
- chern :: BandIndex -> Hamiltonian -> Parameterized Chern
- chernRaw :: BandIndex -> Hamiltonian -> Parameterized Chern
- chernBand :: BandIndex -> Hamiltonian -> Parameterized Chern
Documentation
chern :: BandIndex -> Hamiltonian -> Parameterized Chern Source
Calculate the Chern number of the first n occupied bands
by using a grid of closed loops and calculating many Berry phases
using the discretized formula. This function is guaranteed to
return an integer result by rounding the actual calculation. It tries
to determine if the Chern number is undefined due to a degeneracy, and
if it is then it throws an error via the ExceptT
monad transformer.
chernRaw :: BandIndex -> Hamiltonian -> Parameterized Chern Source
chernBand :: BandIndex -> Hamiltonian -> Parameterized Chern Source
Calculate the Chern number of the nth band (indexed from 0) by
integrating the Berry curvature over the Brillouin zone. The BandIndex
parameter is passed directly to bandCurvature
,
and should use the same conventions for specifying the band.
The output is appropriately normalized by 1/2π. The integration is carried
out using the TanhSinh quadrature method via
integrate
.