Skip to content

Algorithms

Four solvers, one driver underneath

Ground state, excited states, stochastic search, periodic systems — every algorithm here inherits from the same VariationalDriver and reaches the user through the same QuantumCalculator. The basis and the integrals that feed them are on the Basis Sets page.

Algorithms

Ground state — VQE and ADAPT-VQE

VQE optimizes a fixed UCCSD ansatz; ADAPT-VQE grows the ansatz operator by operator, screening the gradient of a pool — fermionic, qubit, qubit-excitation-based (QEB) or compact-excitation (CEO) — and adding only the one that lowers the energy most.

Excited states — deflation and subspace search

DeflationMixin runs variational deflation (VQD): each new state is optimized orthogonal to the ones already found. SubspaceMixin runs SSVQE instead, optimizing a weighted set of orthogonal states together. Both plug into any driver without duplicating its setup.

Stochastic search — VASQE

The Variational Adaptive Stochastic Quantum Eigensolver samples its next operator from a softmax over the pool's gradients rather than always taking the steepest one, with a temperature schedule that anneals from exploration to the greedy ADAPT-VQE limit.

Periodic systems — BlochCalculator

The same drivers run on a periodic basis through BlochCalculator, producing Bloch band structure and Born–von Kármán total energies for a crystal, not just an isolated molecule.

Around the four solvers

Cutting the qubit count, tracking how much of Hilbert space an ansatz actually reaches, and getting a result that survives a restart.

Frozen-core approximation

Drop the chemically inert core orbitals from the qubit count before mapping, without touching the basis or the integral engine.

RHF & UHF references

Restricted and unrestricted Hartree–Fock references, including spin-polarized systems like triplet O₂.

Automatic sparse pools

Above twelve qubits, ADAPT-VQE switches to an automatically sparsified operator pool rather than the full one, keeping gradient screening tractable.

Expressibility analysis

KL-divergence against the Haar-random distribution measures how much of Hilbert space an ansatz can actually reach, tracked as ADAPT-VQE grows it.

Quenching

Parameters are periodically re-optimized from scratch mid-run, escaping local minima that gradient descent alone gets stuck in.

Reusable Hamiltonians

A built qubit Hamiltonian serializes to Parquet or JSON with automatic format detection — replay a solver against it without recomputing integrals or geometry.

The same solvers, every SDK and basis

One QuantumCalculator surface — the choice of backend, basis and mapping composes freely with the choice of algorithm above.

IBM
  • Qiskit
  • Qiskit Nature
  • Qiskit IBM Runtime
Amazon Braket
  • Local simulator
  • SV1
  • DM1
  • TN1
  • IonQ
  • IQM
  • Rigetti
Google
  • Cirq
Localized bases
  • FAO
  • NAO
  • GTO / STO-nG
  • Pople 6-31G(d)
Fermion → qubit mappings
  • Jordan–Wigner
  • Parity
  • Bravyi–Kitaev
ADAPT-VQE operator pools
  • Fermionic
  • Qubit
  • QEB
  • CEO

How it is put together

algorithms/
VariationalDriver, the single base class every solver — VQE, ADAPT-VQE, VASQE, subspace search — inherits from, plus the composable DeflationMixin and SubspaceMixin.
core/
Second-quantized Fermion operators, the PauliSum output type, and the Jordan–Wigner, Parity and Bravyi–Kitaev fermion-to-qubit mappings.
basis/
FAO, NAO, GTO/STO-nG and Pople basis functions, plus the from-scratch atomic LDA pseudopotential solver.
integrals/
The real-space grid, the FFT Poisson solver, and the C/OpenMP backend behind libcarcara_integrals, with an automatic NumPy fallback.
circuits/
The Ansatz protocol, UCCSD and AdaptAnsatz, gate primitives, operator pools, and circuit profiling.
backends/
Qiskit, Braket and Cirq execution, the Amazon Braket device registry, QWC-grouped shot-based measurement, and the (currently empty) error-mitigation stub.

Every solver reaches the user through one entry point — QuantumCalculator(method=...) — an ASE calculator, so a run looks the same whether it optimizes a UCCSD ansatz on a state vector or screens ADAPT-VQE gradients against a real QPU.

Keep reading

Localized orbitals and pseudopotentials generated from scratch, and the C-accelerated integral engine underneath both.

Cross-backend validation to 1.3×10⁻⁷ Ha, real QPU execution through Amazon Braket, and what still doesn't work.

Try it on your own structure

Install it, or read the manual first.