Møller–Plesset Perturbation Theory

Møller–Plesset Perturbation Theory is a quantum mechanical method used to improve the accuracy of electronic structure calculations within the framework of Hartree–Fock theory. It involves treating electron-electron correlation effects as a perturbation to the reference Hartree–Fock wave function. The method is named after its developers, physicists C. Møller and M. S. Plesset. By systematically including higher-order corrections, Møller–Plesset Perturbation Theory provides more accurate predictions of molecular properties compared to the initial Hartree–Fock approximation.

Theory of the Perturbative Approach

As for the Hartree–Fock method, we start with the Schrödinger equation in the form

\begin{equation} \hat{\mathbf{H}}\ket{\Psi}=E\ket{\Psi} \end{equation}

where $\hat{\mathbf{H}}$ is the molecular Hamiltonian operator, $\ket{\Psi}$ is the molecular wave function, and $E$ is the total energy of the system. In the Møller–Plesset perturbation theory we write the Hamiltonian operator as

\begin{equation} \hat{\mathbf{H}}=\hat{\mathbf{H}}^{(0)}+\lambda\hat{\mathbf{H}}^{‘} \end{equation}

where $\hat{\mathbf{H}}^{(0)}$ is the Hamiltonian used in the Hartree–Fock method (representing electrons moving in the mean field), $\lambda$ is a parameter between 0 and 1, and $\hat{\mathbf{H}}^{‘}$ is the perturbation operator representing the missing electron-electron interactions not included in the Hartree–Fock approximation. We then expand the wavefunction $\ket{\Psi}$ and total energy $E$ as a power series in $\lambda$ as

\begin{align} \ket{\Psi}&=\ket{\Psi^{(0)}}+\lambda\ket{\Psi^{(1)}}+\lambda^2\ket{\Psi^{(2)}}+\dots \\
E&=E^{(0)}+\lambda E^{(1)}+\lambda^2 E^{(2)}+\dots \end{align}

and ask, how how does the total energy change with the included terms. After some algebra, we can show that the first order correction to the total energy is zero, the second order correction is given by

\begin{equation} E_{\mathrm{corr}}^{\mathrm{MP2}}=\sum_{s>0}\frac{H_{0s}^{‘}H_{s0}^{‘}}{E_0-E_s} \end{equation}

where $s$ runs over all doubly excited determinants, $H_{0s}^{‘}$ is the matrix element of the perturbation operator between the Hartree–Fock determinant and the doubly excited determinant, and $E_0$ and $E_s$ are the energies of the reference and doubly excited determinants, respectively. We could express all higher-order corrections in a similar way, using only the matrix elements of the perturbation operator and the energies of the determinants. For practical calculations, we apply Slater-Condon rules to evaluate the matrix elements and use the orbital energies obtained from the Hartree-Fock calculation. The expressions for calculation are summarised below.

Implementation of 2nd and 3rd Order Corrections

Having the antisymmetrized two-electron integrals in the Molecular Spinorbital basis and physicists’ notation defined here, we can now proceed with the calculation of the correlation energy. The 2nd order correlation energy can be expressed as

\begin{equation} E_{\mathrm{corr}}^{\mathrm{MP2}}=\frac{1}{4}\sum_{ijab}\frac{\braket{ab||ij}\braket{ij||ab}}{\varepsilon_{ij}^{ab}} \end{equation}

and the 3rd order correlation energy as

\begin{align} E_{\mathrm{corr}}^{\mathrm{MP3}}=&\frac{1}{8}\sum_{ijab}\frac{\braket{ab||ij}\braket{cd||ab}\braket{ij||cd}}{\varepsilon_{ij}^{ab}\varepsilon_{ij}^{cd}}+\nonumber \\
&+\frac{1}{8}\sum_{ijab}\frac{\braket{ab||ij}\braket{ij||kl}\braket{kl||ab}}{\varepsilon_{ij}^{ab}\varepsilon_{kl}^{ab}}+\nonumber \\
&+\sum_{ijab}\frac{\braket{ab||ij}\braket{cj||kb}\braket{ik||ac}}{\varepsilon_{ij}^{ab}\varepsilon_{ik}^{ac}} \end{align}

To calculate the 4th order correction, we would need to write 39 terms, which is not practical. Higher-order corrections are usually not programmed this way, instead, the diagrammatic approach is used.

2nd and 3rd Order Corrections Code Exercise

Similar to the Hartree–Fock method, Møller–Plesset perturbation theory can also be implemented in Python. The code exercise below provides a self-contained guide to calculating the Møller–Plesset Perturbation Theory of 2nd Order and Møller–Plesset Perturbation Theory of 3rd Order correlation energies. This exercise is designed to be appended to your existing Hartree–Fock implementation, as the Møller–Plesset Perturbation Theory of 2nd Order and Møller–Plesset Perturbation Theory of 3rd Order methods build on the results of the Hartree–Fock procedure. You can access the foundational Hartree–Fock method and integral transformation coding exercise here. The exercise is provided in the Listing below

"""
Since we have everything we need for the MP calculations, we can now calculate the MP2 correlation energy. The result should be stored in the "E_MP2" variable.
"""
E_MP2 = 0

"""
Let's not stop here. We can calculate MP3 correlation energy as well. Please calculate it and store it in the "E_MP3" variable.
"""
E_MP3 = 0

# print the results
print("MP2 ENERGY: {:.8f}".format(E_HF + E_MP2 +       + VNN))
print("MP3 ENERGY: {:.8f}".format(E_HF + E_MP2 + E_MP3 + VNN))

Solution to this exercise can be found here.

Cremer, Dieter. 2011. “Møller–Plesset Perturbation Theory: From Small Molecule Methods to Methods for Thousands of Atoms.” WIREs Computational Molecular Science 1: 509–30. https://doi.org/10.1002/wcms.58.

Paldus, Josef, and Heymans H. C. Wong. 1973. “Computer Generation of Feynman Diagrams for Perturbation Theory i. General Algorithm.” Computer Physics Communications 6: 1–7. https://doi.org/10.1016/0010-4655(73)90016-7.

Wong, Heymans H. C., and Josef Paldus. 1973. “Computer Generation of Feynman Diagrams for Perturbation Theory II. Program Description.” Computer Physics Communications 6: 9–16. https://doi.org/10.1016/0010-4655(73)90017-9.

Szabo, Attila, and Neil S. Ostlund. 1996. Modern Quantum Chemistry: Introduction to Advanced Electronic Structure Theory. Courier Corporation. https://www.worldcat.org/title/1014569052.