A Julia library to perform efficient Exact Diagonalizations of quantum many body systems.
- Basic algebra of operators in quantum many-body systems
- Iterative linear algebra for computing eigendecompositions and time-evolutions (e.g. Lanczos algorithm)
- Local spin, t-J, or fermionic models
- Full support of generic space group symmetries
- parallelization using OpenMP
- based on C++ library xdiag
Enter the package mode using ]
in the Julia REPL and add the following two packages
add https://github.com/awietek/XDiag_jll.jl.git
add https://github.com/awietek/XDiag.jl.git
using XDiag
let
n_sites = 16;
nup = n_sites ÷ 2;
block = Spinhalf(n_sites, nup);
# Define the nearest-neighbor Heisenberg model
bonds = BondList()
for i in 1:n_sites
bonds += Bond("HB", "J", [i-1, i % n_sites])
end
bonds["J"] = 1.0;
set_verbosity(2); # set verbosity for monitoring progress
e0 = eigval0(bonds, block); # compute ground state energy
println("Ground state energy: $e0");
end
The full documentation is available at awietek.github.io/xdiag.
author: Alexander Wietek license: Apache License 2.0