DF-CASSCF energy not equal to those of other programs

Hi,
I’ve calculated a stretched water molecule at CASSCF(4,4)/def2-TZVP level, using PSI4, PySCF, ORCA, etc. CASSCF energies (-75.9350695 a.u.) from various programs match excellently.

However, if the density fitting (RI-JK using def2-universal-jkfit as auxbasis) is turned on, the result of PSI4 is slightly different from others:
PySCF, ORCA: -75.9350735 a.u.
PSI4: -75.9350878 a.u.

The CASSCF convergence is smooth. Is there any threshold that controls the DF accuracy? PSI4 Files are attached.
00-h2o_cc-pVDZ_1.5_uhf_uno_asrot2gvb4_s.A.txt (56.0 KB) a_inp.txt (2.4 KB) a_out.txt (16.5 KB)

Thanks! By the way, I’m using Psi4 1.4a2.dev549.

While there are some numerical thresholds, none of them should give fifth decimal place errors.

Are you sure that these programs are using the same auxiliary basis? I can easily see a disagreement there on the fifth decimal place.

Because CASSCF is variational in all parameters, it’s possible to do a correctness test on the Psi4 energy: check that the dipole that Psi4 reports matches the dipole moment from finite difference of energies. I can run these checks later, but I can’t do that right now.

If anybody else would be willing to take this (see here for an example of finite difference dipoles), I’d appreciate it.

I’ve run the test I described earlier and can confirm that the Psi code is correct, given our starting integrals. I strongly suspect that this disagreement is about the basis sets not being the same.

Many thanks! I believe that PSI4 CASSCF code is correct. For the auxiliary basis set, we can find the following strings in the PSI4 output

atoms 1   entry O          line   318 file /home/jxzou/software/psi4/share/psi4/basis/def2-universal-jkfit.gbs
atoms 2-3 entry H          line    18 file /home/jxzou/software/psi4/share/psi4/basis/def2-universal-jkfit.gbs

And I check the auxbasis data in def2-universal-jkfit.gbs, they are identical. Instead, I just found that if density fitting is also turned on, in the SCF section

scf_type df
df_basis_scf def2-universal-jkfit

for comparison, my previous input here was

scf_type pk

then the DF-CASSCF energy is as expected (-75.9350735 a.u.).

This means that, the scf_type pk will affect the mcscf_type df, making the CASSCF energy is neither equal to conventional CASSCF energy, nor equal to DF-CASSCF energy. But ideally, I think we might expect that mcscf_type df would be independent on scf_type pk.

Thanks for the investigation. I’ve put up an issue. I have some other priorities right now and can’t put in the time to do the debugging myself.

Thank you! Currently I can use this workaround: explicitly specify

scf_type df
df_basis_scf cc-pvdz-jkfit # using cc-pvdz-jkfit just as an example

between the SCF section and the DF-CASSCF section. And in DF-CASSCF section I would specify mcscf_type and df_basis_mcscf. Then the result is as expected.