It appears that post-HF methods are not properly updating the Wavefunction object that is being passed to the fchk() interface. Users of fchk() may be unwittingly passing the wrong information to external programs for analysis. The following input writes several .fchk files whose content may be compared to see the problems:
memory 2 gb
molecule {
0 1
f
f 1 1.4
symmetry c1
}
set {
basis aug-cc-pvtz
guess sad
scf_type df
mp2_type df
cc_type df
}
nrg, wfn = energy(‘scf’, return_wfn=True)
fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write(‘f2-scf.fchk’)
clean()
nrg, wfn = gradient(‘mp2’, return_wfn=True)
fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write(‘f2-mp2-grad.fchk’)
clean()
nrg, wfn = energy(‘mp2’, return_wfn=True)
fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write(‘f2-mp2.fchk’)
clean()
nrg, wfn = gradient(‘ccsd’, return_wfn=True)
fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write(‘f2-ccsd-grad.fchk’)
clean()
nrg, wfn = energy(‘ccsd’, return_wfn=True)
fchk_writer = psi4.FCHKWriter(wfn)
fchk_writer.write(‘f2-ccsd.fchk’)
clean()
Whether one uses energy(‘ccsd’) or gradient(‘ccsd’) the information in the .fchk file appears to be that for the SCF, not CCSD, including the method written at the top of the file.
It is already documented that one must use gradient(‘mp2’) to get the MP2 density written to the .fchk file, but in this case the orbital energies and wave function are wrong. It looks like they may be for the perturbed part of the wave function rather than the total wave function.
The “Total Energy” written to the .fchk file is always the SCF energy, not that from the requested method.
If fchk() is just a formatter and the real problem is in the Wavefunction object, then this may affect the Molden interface and anything else that uses the Wavefunction object. It is probably related to the segfault issue with conventional MP2 that I reported on 21 April. I hope this can be fixed in the near term as the work I’m currently doing depends upon a valid .fchk file, at least for the use of DF-MP2 and conventional MP2.
I am currently using the binary resulting from a ‘conda update psi4’ on 28 May.
Dale