Calculate FCI / CASCI Reference Energies
Note
This is a how-to guide on computing classical reference energies with Configuration Interaction (FCI / CASCI). These are useful baselines for comparing to FAST-VQE, BEAST-VQE, and related algorithms.
Goal
Run an FCI (full space) or CASCI (complete active space) calculation on a prepared ground-state problem and obtain the reference ground-state energy.
Why This Matters
FCI is the non-relativistic exact solution (for a given one-electron basis) within the Born–Oppenheimer approximation. It serves as target reference for FAST-VQE when the full orbital space is tractable.
With an active space, the same method is termed CASCI and is the natural classical reference to compare against VQE runs in that active space.
Paired CI variants provide classical references for BEAST families (bosonic/paired-electron models).
Prerequisites
A ground-state problem (see Construct a Ground State Energy Problem)
Steps
Quick start: Build a standard CI calculator (FCI/CASCI)
The
calculator_creator()is a fluent builder (see Understanding and Using Kvantify Qrunch’s Fluent Builder Pattern) that configures and returns aGroundStateProblemCalculator.import qrunch as qc ci_calculator = ( qc.calculator_creator() .configuration_interaction() .standard() # FCI (full space) or CASCI (if problem has an active space) .create() )
Run the CI calculation
result = ci_calculator.calculate(ground_state_problem)
The result is a
GroundStateProblemCalculatorResult, containing (among others):Electronic energy of the active electrons
Electronic energy of all electrons
Total molecular energy
Available CI Variants
Pick one variant after .configuration_interaction():
.standard()Standard FCI/CASCI. This is the classical reference for FAST-VQE (full space → FCI; active space → CASCI)..paired()Paired CI (electron-pair model). This is the classical reference for BEAST-VQE..orbital_optimized_paired()Orbital-optimized paired CI. This is the classical reference for OO-BEAST-VQE.
The Orbital-optimized variants have additional options:
import qrunch as qc ci_calculator = ( qc.calculator_creator() .configuration_interaction() .orbital_optimized_paired() # OO-pFCI .with_options(options=qc.options.OrbitalOptimizerOptions(...)) .with_basin_hopping_options(options=qc.options.BasinHoppingOptions(...)) .create() )
See OrbitalOptimizerOptions for details on the available options.
See BasinHoppingOptions for details on the available options.
Verify the Result
Use these numbers to benchmark your VQE runs (FAST-VQE, BEAST-VQE, OO-BEAST-VQE, …).