I’ve come across an issue with SOS-OMP2 (scaled opposite spin orbital optimized MP2) as implemented in PSI4.
In a single point calculation, I get identical energies (OMP2 total energy, scaled_SS energy, scaled_OS energy, SOS-OMP2 total energy, etc) using OMP2 as when I use SOS-OMP2. This is problematic, as the different scaling of the energy terms should be lead to PSI4 rotating the orbitals differently.
I couldn’t locate the source code for SOS-OMP2 to check whether it was a complete implementation (affecting density) or just a final scaling factor of the energy after performing OMP2 (certainly looks to be the case, even though do_sos is set to true).
I know it’s a rather niche method, but has anyone come across this, or any devs know how it’s implemented?
do_sos true merely sets the values of the current energy and current correlation energy variables to the spin-component scaled values. This has no impact on the orbital optimization whatsoever. Psi4 version is irrelevant. (Use grep -inr "do_sos" . in occ if you want to check for yourself.)
The prospects for getting orbital optimized SOS-MP2 with conventional integrals are grim. The method is fairly easy, but the developer who wrote the code has lost interest in developments with the conventional integral code, and the code is so exceedingly difficult to work with that no other developers are likely to touch it.