Safe Haskell | None |
---|---|

Language | Haskell98 |

- neighborTerm :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix)
- onsiteTerm :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix)
- parityStaggeredTerm :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix)
- localMoments :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix)
- kagomeSOC :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix)
- rashbaZ :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix)

# Documentation

neighborTerm :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix) Source

Add nearest-neighbor hopping to a lattice model.

onsiteTerm :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix) Source

Add an onsite energy term to a lattice model.

parityStaggeredTerm :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix) Source

Add an staggered onsite term to a lattice model. Works based on the integer parity of graph nodes, making it model-detail-dependent.

localMoments :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix) Source

Produces a representation of local magnetic moments given by
site-wise `VectorSite`

data. Fails clumsily if
applied to Scalar sites.

kagomeSOC :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix) Source

Produces a spin-orbit interaction in the style of that given by
Hua et al in PRL *112*, 017205 (2014). It should probably only
be used with a Kagomé lattice `CellGraph`

. It works by
looking at nearest neighbor pairs (*i*,*j*) and then looking up the
`VectorSite`

moment of site *k*; *k* is computed as

k = let i' = succ $ (i - 1) `mod` 3 j' = succ $ (j - 1) `mod` 3 in head $ [1,2,3] \\ [i',j']

(Recall that *i* and *j* are indexed from 1 as nodes.) Clearly,
this function is not safe unless it's applied to the correct lattice.

Once `mom`

is computed for `VectorSite`

*k*, it
is coupled to the Pauli matrix tensor as expected. The parity ν
is chosen by asking whether succ *i* == *j* mod 3.

rashbaZ :: String -> CellGraph -> Parameterized (Wavevector -> AdjMatrix) Source

Produces a Rashba spin-orbit coupling term for an E-field applied along
the *z* direction.