Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/twesterhout/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
https://github.com/twesterhout/lattice-symmetries

bit-manipulation c cpp17 exact-diagonalization lattice-symmetries many-body-physics neural-network permutation quantum-mechanics symmetries symmetry-groups

Last synced: 13 days ago
JSON representation

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

Awesome Lists containing this project

README

        

> ⚠️ **INFO**
>
> This is a Haskell rewrite of the original
> [lattice-symmetries](https://github.com/twesterhout/lattice-symmetries). At
> some point, this package will completely replace the first version of
> lattice-symmetries.

# lattice-symmetries [![Build](https://github.com/twesterhout/lattice-symmetries-haskell/actions/workflows/ci.yml/badge.svg)](https://github.com/twesterhout/lattice-symmetries-haskell/actions/workflows/ci.yml)
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

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

## Hamiltonians

#### Spins

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"`

$$
\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)
$$

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

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

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

#### Electrons

MathsCode

$$
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"`