EDKit.jl
Julia package for general many-body exact diagonalization calculation for spin systems.
All information we need to specify a local operator in the many-body Hilbert space are:
- Matrix form of the local operators;
- Indices the local operator act on;
- Basis for the many-body operator.
For example, the AKLT model (with size $L=8$)
\[H = \sum_{i=1}^{8}\left[\vec S_i \cdot \vec S_{i+1} + \frac{1}{3}\left(\vec S_i \cdot \vec S_{i+1}\right)^2\right],\]
can be easyly constructed using the command:
L = 8
SS = spin((1, "xx"), (1, "yy"), (1, "zz"), D=3)
mat = SS + 1/3 * SS^2
H = trans_inv_operator(mat, 1:2, L)
The EDKit.jl
provide a general function operator(mats, inds, basis)
which helps to create local operator. Especially when we are doing exact diagonalization calculation on a specific symmetry sector (e.g., sector with total $S^z=0$ and total momentum $k=0$). The functionalities can be extended with user-defined bases.
Installation
Run the following script in the Pkg REPL
environment:
pkg> add EDKit