Variational Quantum Eigensolver (VQE) for single-impurity Anderson models (SIAM) in Qiskit, validated against EDRIXS / exact-diagonalization reference energies, with a hardware path on IBM Quantum.
The package is organized around a ladder of active-space levels:
- L0: Hubbard-dimer toy ground state (statevector), the algorithmic smoke test.
- L1: minimal NiO SIAM on real IBM Quantum hardware (the
02notebook). - L2 / L3: noise study and larger active spaces (in progress).
Every level checks the VQE energy against an independent ED/EDRIXS reference, so the quantum energy is never reported on its own.
The pipeline is a small set of composable stages, one module each:
hamiltonian: builds the SIAM second-quantized Hamiltonian (impurity d-levels, correlated U, and a hybridized bath) for a chosen active space.mappings: fermion-to-qubit encoding (e.g. Jordan–Wigner) producing a qubitSparsePauliOp.ansatz: parameterized trial states (hardware-efficient or chemistry- inspired), sized to the active space.vqe_runner: the variational loop. A classical optimizer drives a QiskitEstimator(statevector, noisy simulator, or real backend) to minimize ⟨H⟩.noise/hardware: Aer noise models and theqiskit-ibm-runtimeglue (transpilation, error mitigation, job submission) for the hardware path.reference_ed/reference_edrixs: independent exact-diagonalization ground-state energies that every VQE result is checked against.
The L0→L3 ladder grows the active space one step at a time, so the algorithm is checked at each level before qubits are added: L0 is a two-site Hubbard dimer (statevector sanity check), L1 a minimal NiO SIAM run on IBM hardware, and L2/L3 add a noise study and larger d-shell active spaces.
pip install -e ".[dev]"Python 3.11+ required.
pytest # unit tests
ruff check siam_vqe # lint
mypy siam_vqe # types
jupyter lab notebooks/ # driver notebookssiam_vqe/: the package (Hamiltonian build, fermion→qubit mappings, ansätze, VQE runner, noise model, hardware glue, ED/EDRIXS references)tests/: pytest suitenotebooks/: driver notebooks per active-space level (L0 toy model, L1 NiO minimal hardware run) plus their result JSONsfigures/: versioned result figures
Haverkort, Zwierzycki, Andersen, Phys. Rev. B 85, 165113 (2012); EDRIXS pedagogical examples 3 and 6.
MIT. See LICENSE.
