Basis of condensed matter quantum lattice problems, for usage in exact diagonalization (ED). The code is designed for any general bosonic or fermionic problem (or a mix of both), as long as the user can provide the matrix form of the elementary operators of the Hamiltonian.
To learn how to use this library to design ED code for your own models, please refer to the folder "examples":
- Chain
- Heisenberg spin-1/2
- Heisenberg spin-1
- Kondo Lattice model
- t-J model
- Honeycomb lattice
- Spinless fermion
- Kagome lattice
- Heisenberg spin-1/2
- t-J model
- Square lattice
- Bose-Hubbard model
- Fermi-Hubbard model
- Triangular lattice
- Heisenberg spin-1/2
- Boost (Boost lib and Qbasis lib have to be built with compatible compilers)
- MKL (some old versions may not work)
- arpack (dependency to be removed in future)
- arpack++ (dependency to be removed in future)
Note: using a modified version of arpack++ to be compatible with MKL.
When using translational symmetry, at least one of the dimensions (Lx, Ly, Lz, or number of sublattices) has to be an even number (current implementation of the generalized Lin Table).
MKL + OpenMP
Currently the known working compilers are g++, icpc, and clang++ (c++11 required). (openmp in clang++ not tested yet)
The code can be compiled in two modes:
- 32-bit integer
- 64-bit integer (if the unrestricted Hilbert space reaches 10^9, it is necessary to use 64-bit mode)
In the 64-bit mode:
- arpack has to be compiled with "-fdefault-integer-8"
- arpack++ has to use the branch "long"
- linking to MKL has to use the ILP64 mode