Pair correlation energies with set pair_energies_print true


#1

Psi4 writes the pair correlation energies when ‘set pair_energies_print true’ is used.
Can you please let me know, how the pair correlation energies are actually defined and computed in Psi4 (for MP2 and CCSD)?

Next: pair correlation energies are written for singlet states. When I specify a triplet state, pair correlation energies are not written. Why? Can Psi4 give them, too?

Here is my example singlet input:
molecule mol {
0 1
He
}
set scf {
df_scf_guess false
scf_type out_of_core
guess core
}
set ccenergy {
cc_type conv
cachelevel=0
}
set pair_energies_print true
set basis_guess cc-pcvdz
set basis aug-cc-pcvqz
energy(‘ccsd’)

Here is my example triplet input:
molecule mol {
0 3
He
}

set reference rohf
set scf {
df_scf_guess false
scf_type out_of_core
guess core
}
set ccenergy {
cc_type conv
cachelevel=0
}
set pair_energies_print true
set basis_guess cc-pcvdz
set basis aug-cc-pcvqz
energy(‘ccsd’)


#2

Hello Ludger,

I’m not familiar with pair correlation energies, but I did see the following pair of formulas commented in the source code:

E(IJ) = T2(IJ,AB) * (<ij|ab> - <ij|ba>)
E(Ij) = T2(Ij,Ab) * <ij|ab>

Pair energies are only calculated for an RHF reference wavefunction, which explains why triplet Helium doesn’t produce any output. While poking around the code, I noticed that if you add set spinadapt_energies true’ to your singlet input you’ll get singlet and triplet pair energies.

Here is the source code if you’re interested in seeing for yourself:

Best,
Zach


#3

Hi Zach,
thanks a lot for your very helpful reply!
I still have to learn that the detailed documentation is in the source code.
Best regards,
Ludger