Skip to content

mp2

Perform second-order perturbation theory to compute the correlation energy using the formula $$ E_c^{MP2} = - \frac{1}{2} \sum_{ijab} \frac{\left\langle ij \left\vert r_{12}^{-1} \right\vert \overline{ab} \right\rangle \left\langle ab \left\vert r_{12}^{-1} \right\vert ij \right\rangle}{\epsilon_a + \epsilon_b - \epsilon_i - \epsilon_j} $$ where \(\vert \overline{ab} \rangle = \vert ab \rangle - \vert ba \rangle \). For (active) occupied spin orbitals i,j and virtual spin orbitals a,b.

MP2 is available with density fitting for both restricted and unrestricted reference states, or with four-index integrals for restricted systems only. In input, the reference calculation is controlled through either a hf or dft subcommand, or specifying a previous result name.

For example:

mp2(
  structure(molecule = water)
  hf(
    ao = 'cc-pVDZ'
    df = 'cc-pVDZ-JKFIT'
  )
  df = 'cc-pVDZ-RI-merged'
)

The method calculates the opposite and same spin energy contributions separately allowing the individual pair energies to be printed and spin component scaled energies to be calculated.

MP2 may also be used within a dft command to run a double hybrid density functional calculation, with the (scaled) MP2 energy calculated post-SCF.

For example a B2-PLYP calculation may be run using:

dft(
  structure(molecule = water)
  xc_mix = [[0.47, B88], [0.73, LYP]]
  exchange_factor = 0.53
  ao = 'Def2-QZVP'
  mp2(
    os_scale_factor = 0.27
    ss_scale_factor = 0.27
    df = 'Def2-QZVP-RI'
  )
)

In which context no structure, dft, hf, or load subcommands should be specified inside mp2.

This command can appear in the global context.

Subcommands

Options

df

Specify density fitting basis set for fitting |ia) orbital products.

Note: the input value must match exactly the name of the basis set file in the basis directory.

  • The type is string-lowered
  • There is no default value.
load

Name of previous results set to use as reference calculation. This option excludes the dft, hf and structure subcommands.

  • The type is string
  • There is no default value.
method

Method for computing the integrals to calculate the MP2 energy.

  • The type is string
  • The default is pre_transformed_df
  • The value must be one of:
    • pre_transformed_df -

      Use pre-transformed density-fitting integrals to compute the MP2 energy.

    • direct_4idx -

      Use integral-direct approach to compute the 4-index electron repulsion integrals (ERIs).

n_core

Number of electrons in the frozen core (i.e. electrons for which no correlation contribution is calculated). This option has no default, but if not specified, entos tries to determine a reasonable choice (such that, for example, 2 electrons would be frozen in H2O, or 10 in HCl).

  • The type is int
  • There is no default value.
  • The value must be nonnegative
name

Specify the name of a set of results.

This option is deprecated.

  • The type is string
  • There is no default value.
os_scale_factor

Opposite spin scale factor.

  • The type is real
  • There is no default value.
print_level

Print level.

  • The type is int
  • There is no default value.
  • The value must be one of:
    • -2 - No output
    • -1 - Minimum output
    • 0 - Output that doesn't scale with system size
    • 1 - Output that scales linearly with system size
    • 2 - (Debugging) output that scales quadratically with system size
    • 3 - (Debugging) output that scales cubically with system size
print_pair_energies

Print the individual pair energies from the calculation. Results are listed such that orbital 1 is the lowest energy correlated orbital.

  • The type is bool
  • The default is false
schwarz_threshold

Threshold applied to Cauchy-Schwarz integral screening.

  • The type is real
  • The default is 1e-10
  • The value must be nonnegative
ss_scale_factor

Same spin scale factor.

  • The type is real
  • There is no default value.