Exact Diagonalization for Quantum Spin Systems
ED2 (QS³-ED2) is a Fortran-based Exact Diagonalization (ED) code for numerical studies of quantum spin lattice models. The project targets
- reproducible research,
- shared-memory performance via OpenMP,
- minimal external dependencies.
- General quantum spin Hamiltonians
- Heisenberg / XYZ-type interactions
- External magnetic fields
- Controlled Hilbert-space truncation
- Restriction by excitation number (e.g. number of spin-down states)
- Efficient access to dilute or constrained sectors
- Numerical solvers
- Full diagonalization for very small systems
- Lanczos-type iterative solvers for larger Hilbert spaces
- Parallelization
- Shared-memory parallelism via OpenMP
- No MPI dependency (single-node execution model)
- Linear algebra backends
- BLAS/LAPACK (OpenBLAS, Intel MKL, or vendor implementations)
Official documentation:
https://ed2.readthedocs.io/en/latest/
Includes:
- Installation instructions
- Quickstart examples
- Input / output specifications
- Reproducible reference examples
- Validation benchmarks
- Algorithmic background
- Linux (x86_64)
- Fortran compiler
- GNU Fortran (
gfortran, GCC ≥ 10 recommended) - Intel oneAPI Fortran (
ifort/ifx)
- GNU Fortran (
- BLAS/LAPACK (OpenBLAS or Intel MKL)
- OpenMP-capable compiler
ED2 uses GNU Autotools.
git clone https://github.com/QS-Cube/ED2.git
cd ED2
autoreconf -vfi
./configure FC=ifort # or FC=gfortran
make -jBLAS/LAPACK:
- OpenBLAS is detected automatically when available.
- Otherwise Intel MKL is used as fallback (via
-qmkl).
No PATH dependency is assumed for the ED2 executable.
Two test levels are provided.
make checkRuns a minimal smoke test (ex1 only). This is intended to be fast and suitable for CI.
make check-longRuns examples ex1–ex9 sequentially. This performs full physical workflows and may take longer.
check-long is intentionally implemented outside Automake’s test harness to improve robustness on HPC systems.
source/ Fortran source code
examples/ Reference physical examples
tests/ Regression tests (ex1–ex9)
tools/ Auxiliary scripts
docs/ Documentation sources
For published results, please record:
- QS³-ED2 version or Git commit hash
- Compiler name and version
- BLAS/LAPACK backend
- OpenMP environment (OMP_NUM_THREADS etc.)
- Input files
ED2 is designed so all examples can be reproduced from a clean git clone.
Before DOI assignment:
ED2 (QS³-ED2), QS-Cube/ED2, GitHub repository,
version <tag> or commit <hash>.
After DOI release, please use the Zenodo DOI.
A CITATION.cff file is provided.
MIT License. See LICENSE.
- Hiroshi Ueda
- Daisuke Yamamoto
Bug reports and pull requests are welcome.
For scientific usage, please ensure sufficient information is provided to guarantee reproducibility.