Convergence Problems for System of Several Small Fragments

I have a model system composed of 6 small fragments (MW: 160-268). I am not able to converge the geometry.

The initial structure was minimized with a FF and when running in PSI4, I fix the all the heavy atoms. I’ve continued to lower the level of theory but it does not seem to be helping.

To be sure, when I say it’s not converging, I am not getting an error from PSI4, but rather I continue to see the energy drift slightly lower after every iteration – perhaps I am not waiting long enough, but it seems suspect from my past experience.

I’m wondering if there are other settings I should use?

On the forum, I did see mention of →

  1. Changing the ‘guess’ …

set basis_guess true
set guess huckel
set guess read

  1. Changing the number of grid points …

dft_spherical_points 434
dft_radial_points 85
dft_pruning_scheme robust

  1. And possible using uks vs rks …

But I’m unclear on the options – and welcome the help.

Thanks!

Also, I do have fixed coords for all the heavy atoms.

Further, I use:

no_reorient
no_com 

The system does have -1 charge.

I tried converging it in:

set basis 6-31+G(d)

but like I said, it seems to keep drifting to slightly lower and lower energies while never leveling off.

Other options:

set scf_type df
set basis 6-31+G(d)
set reference rks
set s_tolerance 1e-9

Any tips or tricks for converging a system of fragments with much non-bonded interactions would help!

Optimization problems are usually for @Rollin_King.

You didn’t tell us much about your system, but if your problems are electronic occupations/state, etc., that is not an optimizer problem.

Indeed convergence of loosely bound fragments with newton-raphson style optimizers can be frustrating. One thing to check in your output is whether the step size is reasonable or getting scaled back (the defaults for this are not designed for very flat surfaces.) I’m guessing the optimization is running in supermolecule mode. If so, then I would consider something like:

INTRAFRAG_STEP_LIMIT = 1.0
INTRAFRAG_STEP_LIMIT_MIN = 1.0
INTRAFRAG_STEP_LIMIT_MAX = 1.0

which will simply force the dynamic trust radius to remain large. You can also try a steepest-descent algorithm, though this has not been heavily tested.

step_type = SD

Back to the electronic structure question, if you optimize with a level of theory with stronger dispersion (I don’t know if your fragments are polar also), then you will probably get better convergence.

Hi Rolin,

thanks for this information!

Ah yes, the system does have several hydrogen bond interactions that occur between the fragments. Ultimately, I want to optimize at b3lyp-d3bj/aug-cc-pVTZ but have been ‘pre-opting’ starting at 6-31+G* and trying to work my way up. Perhaps you have a different recommendation?

I’ll try the settings you mentioned – the surfaces may indeed relatively flat and this could be part of the issue. In the past, I have used the set dynamic_level – does this make sense here?

can you clarify ‘step size’ – in the output file I see:

Determining step-restricting scale parameter for RS-RFO.
Maximum step size allowed (some number less than 1, which does change throughout the run)

Thanks again for your help!

Scott