This is a header-only library for diagonalizing quantum systems in a selected basis, with a focus on handling wavefunction vectors that are too large to fit in the memory of a single node.
The library leverages MPI-based parallelization to distribute the wavefunction across multiple nodes.
Sample usage examples are provided in the /samples directory.
- Tomonori Shirakawa, RIKEN Center for Computational Science
- v1.0.0: Initial public release corresponding to the arXiv submission.
- v1.1.0: Feature additions, refactoring, and bug fixes
- v1.2.0: Feature additions (sbd for general determinant), and bug fixes
- Message Passing Interface (MPI)
- OpenMP
- BLAS and LAPACK
- This code is provided as a header-only llibrary, so no installation is required.
- The sample code for parallelized selected basis diagonalization for tensor-product basis is located in
samples/chemistry_tpb_selected_basis_diagonalization. - Edit the configuration file to suit your environment and build it with the make command.
- For more information and options for the executable, see README.md in the same directory.
- From v1.1.0, the sample code for parallelized selected basis diagonalization for general Hamiltonian written by creation/annihilation operator is added in
samples/caop_selected_basis_diagonalization. - From v1.2.0, the sample code for parallelized selected basis diagonalization for quantum chemistry Hamiltonian in the general determinant basis is added in
samples/chemistry_gdb_selected_basis_diagonalization.
For more details on the input file formats and internal structure, see the User Manual. You can generate the documentation by running:
doxygen ./doc/Doxyfile
This repository contains research code related to the following paper:
- Title: Closed-loop calculations of electronic structure on a quantum processor and a classical supercomputer at full scale
- arXiv: https://arxiv.org/abs/2511.00224
Version v1.0.0 corresponds to the code used for the above arXiv submission and represents the initial public release associated with that paper.
Subsequent versions (v1.1.0 and later) include additional features, refactoring, and bug fixes, and may go beyond the exact implementation described in the paper.
The code is shared publicly to support transparency and academic collaboration.
If you use this repository in your research, please cite the corresponding arXiv paper.