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`

.