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.