Understanding MP2/CCSD amplitudes for H4

Hi,

I would like to check the MP2 and CCSD energy for H4 in the minimal basis by looking at the MP2/CCSD amplitudes from the PSI4 output.
When I specify UHF as a reference, I can recover the proper correlation energy, but it fails when I start with RHF as 2 amplitudes seem to be missing, as explained below.
Note: I actually ran into problems when I tried to recover CCSD energies using the OpenFermion-Psi4 interface.

For instance, with the following input:

import psi4
import numpy as np
import os

theta = 60
radius = 1.5 #Angstrom
phi = theta*0.5*np.pi/180. #phi = 1/2*theta. Convert to radians
x = radius*np.cos(phi)
y = radius*np.sin(phi)
basis = "sto-3g"

psi4.geometry('''
H  {0}  {1}  0.
H  {0} -{1}  0.
H -{0}  {1}  0.
H -{0} -{1}  0.
symmetry c1'''.format(x,y))

psi4.core.set_output_file("ccsd_H4.txt", False)
psi4.set_options({"basis": basis,
                  "reference":"rhf",
                  "mp2_amps_print":True,
                  "num_amps_print":26})
cc_energy, cc_wfn = psi4.energy('ccsd',return_wfn = True)

I get (for MP2):

    Largest TIjAb Amplitudes:
      1   1   1   1        -0.1093106231
      0   1   0   1        -0.1053409534
      1   0   1   0        -0.1053409534
      0   0   0   0        -0.1017845464
      1   1   0   0        -0.1015731466
      0   1   1   0        -0.0928741883
      1   0   0   1        -0.0928741883
      0   0   1   1        -0.0854023048

and using UHF instead of RHF:

    Largest TIJAB Amplitudes:
      1   0   1   0        -0.0124667651

    Largest Tijab Amplitudes:
      1   0   1   0        -0.0124667651

    Largest TIjAb Amplitudes:
      1   1   1   1        -0.1093106231
      0   1   0   1        -0.1053409534
      1   0   1   0        -0.1053409534
      0   0   0   0        -0.1017845464
      1   1   0   0        -0.1015731466
      0   1   1   0        -0.0928741883
      1   0   0   1        -0.0928741883
      0   0   1   1        -0.0854023048

My question is: why in RHF I don’t have amplitudes like T_IJAB and T_ijab while there is a non-zero same-spin MP2 correlation energy ?

Same-spin MP2 correlation energy          =   -0.000360289909197

Note that if I consider the aforementioned additional amplitudes, I recover this missing same-spin correlation energy. Same for CCSD, I also have to add manually the amplitudes from the UHF reference state to get the correct CCSD energy. But maybe I’m just missing one basic step which applies in the RHF case.

T_IJAB and T_ijab are excluded from Psi’s RHF MP2/CCSD codes (as well as most other production-level codes for doubles theories) because they’re not necessary. While I couldn’t give you the derivation of the rule, the result is that T_IJAB = T_IjAb - T_IjBa = T_ijab. Psi’s RHF implementation of these methods invokes these equations throughout, so that only the ABAB spin case is required.

Alright thanks ! Then I will report this for the OpenFermion-Psi4 interface, because I think it would be nice to add those explicitly there.