qrunch.chemistry.ground_state_problem.calculators.mp2_ground_state_problem_calculators

Ground state energy calculator using second-order Møller-Plesset (MP2) perturbation theory.

Classes

MollerPlesset2GroundStateProblemCalculator

Class for performing second-order Møller-Plesset (MP2) calculations.

MollerPlesset2GroundStateProblemCalculatorOptions

Options to use for second-order Møller-Plesset (MP2) ground state calculations.

class MollerPlesset2GroundStateProblemCalculator

Bases: object

Class for performing second-order Møller-Plesset (MP2) calculations.

__init__(options: MollerPlesset2GroundStateProblemCalculatorOptions | None = None) None

Initialize an instance of MollerPlesset2GroundStateProblemCalculator.

Parameters:

options (MollerPlesset2GroundStateProblemCalculatorOptions | None) – Options to use for the calculation. None results in default options.

Return type:

None

calculate(ground_state_problem: RestrictedGroundStateProblem | UnrestrictedGroundStateProblem) GroundStateProblemCalculatorResult

Calculate the second-order Møller-Plesset (MP2) ground state energy.

The MP2 method computes a perturbative correction to the Hartree-Fock energy, accounting for electron correlation effects. The total energy is:

\(E_\mathrm{total} = E_\mathrm{HF} + E_\mathrm{MP2-correlation}\)

Note that the ground_state_problem may restrict the orbital space, in which case this is not a standard MP2 calculation but a calculation with a truncated orbital space. The inactive energy contribution associated with an active space (if any) is included in the ground_state_problem.

The Hamiltonian for the ground state problem is assumed to be real.

Parameters:

ground_state_problem (RestrictedGroundStateProblem | UnrestrictedGroundStateProblem) – The ground state problem to calculate energy for.

Return type:

GroundStateProblemCalculatorResult

class MollerPlesset2GroundStateProblemCalculatorOptions

Bases: DataclassPublicAPI

Options to use for second-order Møller-Plesset (MP2) ground state calculations.

All fields are immutable (frozen=True) so an instance can be safely reused.

Parameters:
  • degeneracy_threshold – Minimum allowed gap between any occupied and virtual orbital energy. If \(|\varepsilon_a - \varepsilon_i| <\) degeneracy_threshold for any occupied orbital i and virtual orbital a, the calculation raises a ValueError to avoid numerically unstable MP2 energy denominators. (default=0.1)

  • canonicality_tolerance – Maximum allowed absolute value of any off-diagonal element of the Fock matrix. Must be set according to SCF convergence thresholds. Default tolerance is set according to default SCF convergence. (default=1e-6)

  • verbose – Verbosity level for the underlying PySCF MP2 calculation. Higher values produce more output. (default=0)

__init__(*, degeneracy_threshold: float = 0.1, canonicality_tolerance: float = 1e-06, verbose: int = 0) None
Parameters:
  • degeneracy_threshold (float)

  • canonicality_tolerance (float)

  • verbose (int)

Return type:

None

canonicality_tolerance: float = 1e-06
degeneracy_threshold: float = 0.1
verbose: int = 0