/lattice-symmetries

A package to simplify working with symmetry-adapted quantum many-body bases. Provides a good foundation for writing custom exact diagonalization and variational Monte Carlo software

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

⚠️ INFO

This is a Haskell rewrite of the original lattice-symmetries. At some point, this package will completely replace the first version of lattice-symmetries.

lattice-symmetries Build

License

A package to simplify working with symmetry-adapted quantum many-body bases.

Hamiltonians

Spins

$$ \mathbf{S}_i \cdot \mathbf{S}_j = \frac{1}{4} \left( \sigma^x_i \sigma^x_j + \sigma^y_i \sigma^y_j + \sigma^z_i \sigma^z_j \right) $$

$$ \sigma^{+}_i \sigma^{-}_j $$

MathsCode

$$ \mathbf{S}_i \cdot \mathbf{S}_j = S^x_i S^x_j + S^y_i S^y_j + S^z_i S^z_j $$

"Sˣ₀ Sˣ₁ + Sʸ₀ Sʸ₁ + Sᶻ₀ Sᶻ₁" or "Sx0 Sx0 + Sy1 Sy1 + Sz0 Sz1"

"0.25 (σˣ₀ σˣ₁ + σʸ₀ σʸ₁ + σᶻ₀ σᶻ₁)"

"σ⁺₀ σ⁻₁" or "\sigma^+_0 \sigma^-_1" or "\sigma+0 \sigma-1"

Electrons

Maths Code

$$ c^\dagger_{i\uparrow}c_{j\uparrow} + c^\dagger_{i\downarrow}c_{j\downarrow} $$

"c†₀↑ c₁↑ + c†₀↓ c₁↓"

$$ n_{i\uparrow} n_{i\downarrow} $$

"n₀↑ n₀↓" or "n0up n0down"