How expensive/accurate is OMP2?

Hi there, I just found this issue, luckily for me.
Could anyone tell me for radical non-covalent interactions (~10 atoms max), how much the oo-mp2 might cost using aug-cc-pvtz. My system mostly have C, Cl and Br atoms.
I think RI approximation might help for cost-effectiveness but do I need SOS/SCS techniques?
Forgive me if my question is vague. I have only one i7-7700 with 32 GB RAM.

I’ve moved your post to a new topic, because it’s asking a different question from the original one. For orbital optimized methods, density fitting (DF) is extremely helpful, and the errors are negligible compared to those from OMP2, so I assume you will be using DF.

You can see accuracy benchmarks and timing data for DF-OMP2 interaction energies in this paper. You may also be interested in the gradient benchmark paper here. Unfortunately, geometry errors for noncovalent interactions aren’t discussed, and the papers only discuss the computational time and not the memory requirements. The only benchmark of spin-scaled OMP2 that I’m aware of is this paper. The spin-scalings considered in that paper do not seem to improve the accuracy of OMP2 for noncovalent interaction energies.

I don’t think the DF-OMP2 code has seen much use, so please let us know if you find anything unexpected.

Pinging @bozkaya in case he has anything to add.

Of course I will. I just need some time, my pre-phd is coming up…

1 Like

I have tried using this method but failed due to scf convergence error. Could you take a look at this input that if some keywords are missing or needs an upgrade. I am opting for a tight geometry optimization at OO-DF-MP2 with aug-cc-pvtz basis.
The input is as follows,

memory 24 gb
molecule {
0 2
   F       -0.20621       -1.89055        0.00000
  Cl        0.00000       -0.25407        0.00000
   O        0.30354        2.32383        0.00000
   H       -0.57244        2.74358        0.00000

basis {
assign aug-cc-pvtz

df_basis_mp2 {
assign aug-cc-pvtz-ri

set {
scf_type df
reference uhf
freeze_core true
guess sad
mp2_type df

set {
geom_maxiter 250
G_convergence GAU_TIGHT
opt_coordinates both
print_trajectory_xyz_file true
final_geom_write true


I am using Psi4 1.3.2 release Git: Rev {HEAD} ecbda83

last portions of the output

  Failed to converge.

Traceback (most recent call last):
  File "/home/prasanta/psi4conda/bin/psi4", line 287, in <module>
  File "<string>", line 50, in <module>
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/", line 1052, in optimize
    G, wfn = gradient(lowername, return_wfn=True, molecule=moleculeclone, **kwargs)
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/", line 691, in gradient
    wfn = procedures['gradient'][lowername](lowername, molecule=molecule, **kwargs)
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/procrouting/", line 253, in select_omp2_gradient
    return func(name, **kwargs)
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/procrouting/", line 1662, in run_dfocc_gradient
    ref_wfn = scf_helper(name, use_c1=True, **kwargs)  # C1 certified
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/procrouting/", line 1363, in scf_helper
    e_scf = scf_wfn.compute_energy()
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/procrouting/scf_proc/", line 94, in scf_compute_energy
    raise e
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/procrouting/scf_proc/", line 87, in scf_compute_energy
  File "/home/prasanta/psi4conda/lib//python3.6/site-packages/psi4/driver/procrouting/scf_proc/", line 447, in scf_iterate
    raise SCFConvergenceError("""SCF iterations""", self.iteration_, self, Ediff, Dnorm)

psi4.driver.p4util.exceptions.SCFConvergenceError: Could not converge SCF iterations in 100 iterations.

Printing out the relevant lines from the Psithon --> Python processed input file:
    core.set_global_option("GEOM_MAXITER", 250)
    core.set_global_option("G_CONVERGENCE", "GAU_TIGHT")
    core.set_global_option("OPT_COORDINATES", "both")
    core.set_global_option("PRINT_TRAJECTORY_XYZ_FILE", "true")
    core.set_global_option("FINAL_GEOM_WRITE", "true")
--> optimize('OMP2')

    Psi4 stopped on: Saturday, 15 February 2020 10:43PM
    Psi4 wall time for execution: 0:00:06.65

*** Psi4 encountered an error. Buy a developer more coffee!
*** Resources and help at```
Thank you in advance @jmisiewicz

I can get around the SCF convergence problem with set soscf true, but the bigger problem is that the orbital optimization iterations don’t converge afterwards. This is most definitely a @bozkaya problem.

1 Like

Hi! I have the same issue with triplet systems. Try to calculate WF with DFT like this

optimize('OMP2', dft_functional='pbe')

This will multiplies you calculation time. I’ve also found on my systems that freezing the core orbitals always leads to convergence problems. Try the aug-cc-pvCDZ basis out.

Hope, this helps.

MadChem, please do send me some examples of your convergence woes. The frozen core approximation within orbital optimized methods is a problem I am very interested in.

For Prasanta’s benefit, the command from MadChem is changing the guess orbitals you use from the UHF orbitals to the orbitals from the PBE functional. My quick tests indicate that using dft_functional='pbe' alone helps quite a lot for this particular system.

I should also warn you there is a known bug with DF-OMP2.5 that causes it to give wrong energies in certain circumstances. I fixed this bug last month, but the bug will still be in the version of Psi4 you have. Gradients will be perfectly fine.

Thank you @jmisiewicz, but I am stuck with proper basis for a few days. I can not find aug-cc-pvtz-pp/RI and JKFIT for Iodine atom. This atom constitute some of my system. I look forward to you for this help to obtain basis set.
Thanks in advance…