Selected Basis Diagonalization (SBD)¶
sbd-eigensolver provides Python bindings for the SBD (Selected Basis
Diagonalization) library, which finds eigenvalues and eigenvectors of a
second-quantized Hamiltonian projected onto a subspace spanned by a selected set of
determinants. The bindings are MPI-parallel and can run on CPUs or, where a suitable
toolchain is available, on NVIDIA or AMD GPUs.
The package also exposes a solver compatible with the qiskit-addon-sqd interface,
so SBD can be used as the diagonalization step of a sample-based quantum
diagonalization (SQD) workflow. See sbd.sbd_solver.
Getting started¶
The README
in the root of this project’s repository introduces the package and its
qiskit-addon-sqd integration. INSTALL.md covers
installation in full, including the environment variables that control which backends
are compiled. Example scripts and a notebook live in examples, organized by
basis type, with a README in each folder.
A minimal diagonalization looks like this:
import sbd
config = sbd.TPB_SBD()
results = sbd.tpb_diag_from_files("FCIDUMP", "adets.dat", config)
The backend is initialized automatically on first use; sbd.init() only needs to
be called to select a device explicitly.
Contributing¶
The source code is available on GitHub.
We use GitHub issues for tracking requests and bugs.