Calculate Classical Reference Energies (CI, CC)

Note

This is a how-to guide on computing classical reference energies with configuration interaction (FCI / CASCI) and coupled cluster (CCSD / CCSD(T)) methods. These are useful baselines for comparing to FAST-VQE, BEAST-VQE, and related algorithms.

Goal

Run an FCI (full space), CASCI (complete active space), TrimCI (Trimmed configuration interaction), CCSD, or CCSD(T) 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).

  • CCSD and CCSD(T) are widely used size-consistent methods that scale more favourably than FCI and provide high-accuracy reference energies for larger systems.

Prerequisites

Steps

  1. 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 a GroundStateProblemCalculator.

    import qrunch as qc
    
    ci_calculator = (
        qc.calculator_creator()
        .configuration_interaction()
        .standard()      # FCI (full space) or CASCI (if problem has an active space)
        .create()
    )
    
  2. Quick start: Build a coupled cluster calculator (CCSD or CCSD(T))

    import qrunch as qc
    
    ccsd_calculator = (
        qc.calculator_creator()
        .coupled_cluster()      # Narrow to coupled cluster methods
        .ccsd()      # Narrow to CCSD or  .ccsd_t() for CCSD(T)
        .create()
    )
    
  3. Quick start: Build a Møller Plesset perturbation theory to second order

    import qrunch as qc
    
    mp2_calculator = (
        qc.calculator_creator()
        .moller_plesset_2()        # Narrow to MP2
        .create()
    )
    
  4. Run the calculation

    result = 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).

  • .trim()

    TrimCI. This is an iterative selected-CI algorithm that builds a compact variational determinant subspace by alternating between Hamiltonian-guided expansion and coefficient-based trimming.

  • .paired_trim()

    Paired TrimCI. This is a TrimCI variant where only paired alpha/beta excitations are used during expansion. This restricts the CI space to determinants reachable via simultaneous identical excitations in both spin channels.

  • .paired_electron_approximation()

    Paired CI (electron-pair model). This is the classical reference for BEAST-VQE.

  • .paired_with_orbital_optimization()

    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()
    .paired_with_orbital_optimization()
    .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.

Available Coupled Cluster Variants

Pick one variant after .coupled_cluster():

  • .ccsd()

    CCSD — coupled cluster with singles and doubles. A size-consistent method that captures dynamic correlation and scales as \(\mathcal{O}(N^6)\).

  • .ccsd_t()

    CCSD(T) — CCSD augmented with a perturbative triples correction. Often called the “gold standard” of quantum chemistry for single-reference systems scales as \(\mathcal{O}(N^7)\).

Both methods operate within the orbital space defined by the ground_state_problem (i.e., an active-space restriction is respected, with the inactive energy included automatically).

Verify the Result

  • Use these numbers to benchmark your VQE runs (FAST-VQE, BEAST-VQE, OO-BEAST-VQE, …).

See Also