qdk_chemistry.algorithms.dynamical_correlation_calculator module

Public entry point for the Reference Derived calculator algorithms.

This module re-exports the core DynamicalCorrelationCalculator and its concrete implementations so that consumers can import them directly from qdk_chemistry.algorithms without depending on internal package paths.

class qdk_chemistry.algorithms.dynamical_correlation_calculator.DynamicalCorrelationCalculator

Bases: pybind11_object

Abstract base class for reference-derived quantum chemistry methods.

This class provides a unified interface for quantum chemistry methods that derive corrections from a reference wavefunction, such as Møller-Plesset perturbation theory (MP2) and Coupled Cluster (CC) methods.

The calculator takes an Ansatz (containing both Hamiltonian and reference wavefunction) as input and returns the total energy, a ket wavefunction, and optionally a bra wavefunction for non-Hermitian methods.

Examples

>>> import qdk
>>> # Create ansatz from hamiltonian and wavefunction
>>> ansatz = qdk_chemistry.data.Ansatz(hamiltonian, wavefunction)
>>>
>>> # Create calculator (e.g., MP2) using the registry
>>> calculator = qdk_chemistry.algorithms.create("dynamical_correlation_calculator", "qdk_mp2_calculator")
>>>
>>> # Run calculation
>>> total_energy, ket_wavefunction, bra_wavefunction = calculator.run(ansatz)
__init__(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator) None

Create a DynamicalCorrelationCalculator instance.

Initializes a new reference-derived calculator with default settings. Configuration options can be modified through the settings() method.

Examples

>>> calc = alg.DynamicalCorrelationCalculator()
>>> calc.settings().set("max_iterations", 100)
>>> calc.settings().set("convergence_threshold", 1e-8)
hash(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator, ansatz: qdk_chemistry.data.Ansatz) str
name(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator) str

Get the algorithm name

run(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator, ansatz: qdk_chemistry.data.Ansatz) tuple[float, qdk_chemistry.data.Wavefunction, qdk_chemistry.data.Wavefunction | None]

Perform reference-derived calculation.

Parameters:

ansatz (Ansatz) – The Ansatz (Wavefunction and Hamiltonian) describing the quantum system

Returns:

A tuple containing the total energy,

the ket wavefunction, and optionally a bra wavefunction for non-Hermitian methods

Return type:

tuple[float, Wavefunction, Optional[Wavefunction]]

settings(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator) qdk_chemistry.data.Settings

Access the calculator’s configuration settings.

Returns:

Reference to the settings object for configuring the calculator

Return type:

qdk_chemistry.data.Settings

type_name(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator) str

The algorithm’s type name.

Returns:

The type name of the algorithm

Return type:

str

class qdk_chemistry.algorithms.dynamical_correlation_calculator.QdkMP2Calculator

Bases: DynamicalCorrelationCalculator

QDK implementation of the MP2 dynamical correlation calculator.

Computes the second-order Møller-Plesset (MP2) correlation energy and the T1/T2 amplitudes from a reference Ansatz, automatically selecting the restricted (RMP2) or unrestricted (UMP2) formulation from the reference wavefunction. The MP2 ket wavefunction is returned in an AmplitudeContainer.

Typical usage:

import qdk_chemistry.algorithms as alg

calculator = alg.create("dynamical_correlation_calculator", "qdk_mp2_calculator")
total_energy, ket_wavefunction, _ = calculator.run(ansatz)
__init__(self: qdk_chemistry.algorithms.QdkMP2Calculator) None

Default constructor.

Initializes an MP2 calculator with default settings.

run(self: qdk_chemistry.algorithms.DynamicalCorrelationCalculator, ansatz: qdk_chemistry.data.Ansatz) tuple[float, qdk_chemistry.data.Wavefunction, qdk_chemistry.data.Wavefunction | None]

Perform reference-derived calculation.

Parameters:

ansatz (Ansatz) – The Ansatz (Wavefunction and Hamiltonian) describing the quantum system

Returns:

A tuple containing the total energy,

the ket wavefunction, and optionally a bra wavefunction for non-Hermitian methods

Return type:

tuple[float, Wavefunction, Optional[Wavefunction]]