Energy is Converged, but RMS Convergence Seems 'Stuck'

Although the energy has converged, the RMS isn’t getting any smaller, and seems to be ‘stuck’ at a constant value.

How can I improve the RMS?

What parameter do I change to get it to just accept the current RMS and move onto the next geometry iteration?

While I cannot post the structure in it’s entirety, let me describe the system as completely as I can:
It’s a dimer system consisting of two non-bonded monomer units. Each monomer unit is a (garden variety) bi-aryl that has a protonated amine at one end, and a de-protonated acid at the other end (classic push/pull system); the overall system is neutral. Also note that a single monomer unit does converge (even with just DIIS under version 1.5)

The starting geometry for psi4 came from a semi-empirical calculation via XTB (GFN2-xTB). I have tried two different XTB starting geometries and saw the same RMS issue with both.

I am using Psi4 1.5 (and ma attempting to upgrade, but am having issue)

Here’s the input file parameters (I’ve tried several basis sets at this point and have also used b3lyp-d3bj) →

set scf_type df
set basis 6-31G(d_p)
set reference rks

mol.update_geometry()
mol.symmetrize(1e-3)

e, wfn = optimize('b3lyp', return_wfn=True)
oeprop(wfn, "MULLIKEN_CHARGES")
mol.print_out()
print_variables()

Here’s the last steps of the given iteration →

 ==> Iterations <==
                           Total Energy        Delta E     RMS |[F,P]|
   @DF-RKS iter  35: -1565.58429333171784   -3.05383e-05   1.18306e-03 DIIS
   @DF-RKS iter  36: -1565.58428661289395    6.71882e-06   1.18307e-03 DIIS
   @DF-RKS iter  37: -1565.58427872381435    7.88908e-06   1.18308e-03 DIIS
   @DF-RKS iter  38: -1565.58428963786287   -1.09140e-05   1.18307e-03 DIIS
   @DF-RKS iter  39: -1565.58428269595538    6.94191e-06   1.18308e-03 DIIS
   @DF-RKS iter  40: -1565.58428432227720   -1.62632e-06   1.18308e-03 DIIS
   @DF-RKS iter  41: -1565.58428601946093   -1.69718e-06   1.18307e-03 DIIS
   @DF-RKS iter  42: -1565.58428358918013    2.43028e-06   1.18308e-03 DIIS
   @DF-RKS iter  43: -1565.58428516316621   -1.57399e-06   1.18308e-03 DIIS
   @DF-RKS iter  44: -1565.58428477465213    3.88514e-07   1.18308e-03 DIIS
   @DF-RKS iter  45: -1565.58428440906641    3.65586e-07   1.18308e-03 DIIS
   @DF-RKS iter  46: -1565.58428495098451   -5.41918e-07   1.18308e-03 DIIS
   @DF-RKS iter  47: -1565.58428459385368    3.57131e-07   1.18308e-03 DIIS
   @DF-RKS iter  48: -1565.58428468662214   -9.27685e-08   1.18308e-03 DIIS
   @DF-RKS iter  49: -1565.58428476502786   -7.84057e-08   1.18308e-03 DIIS
   @DF-RKS iter  50: -1565.58428464436361    1.20664e-07   1.18308e-03 DIIS
   @DF-RKS iter  51: -1565.58428472528931   -8.09257e-08   1.18308e-03 DIIS
   @DF-RKS iter  52: -1565.58428470326794    2.20214e-08   1.18308e-03 DIIS
   @DF-RKS iter  53: -1565.58428468647639    1.67915e-08   1.18308e-03 DIIS
   @DF-RKS iter  54: -1565.58428471334310   -2.68667e-08   1.18308e-03 DIIS
   @DF-RKS iter  55: -1565.58428469500745    1.83356e-08   1.18308e-03 DIIS
   @DF-RKS iter  56: -1565.58428470022113   -5.21368e-09   1.18308e-03 DIIS
   @DF-RKS iter  57: -1565.58428470380500   -3.58386e-09   1.18308e-03 DIIS
   @DF-RKS iter  58: -1565.58428469783030    5.97470e-09   1.18308e-03 DIIS
   @DF-RKS iter  59: -1565.58428470197896   -4.14866e-09   1.18308e-03 DIIS
   @DF-RKS iter  60: -1565.58428470074773    1.23123e-09   1.18308e-03 DIIS
   @DF-RKS iter  61: -1565.58428469998626    7.61474e-10   1.18308e-03 DIIS
   @DF-RKS iter  62: -1565.58428470131480   -1.32854e-09   1.18308e-03 DIIS
   @DF-RKS iter  63: -1565.58428470037711    9.37689e-10   1.18308e-03 DIIS
   @DF-RKS iter  64: -1565.58428470066701   -2.89901e-10   1.18308e-03 DIIS
   @DF-RKS iter  65: -1565.58428470082890   -1.61890e-10   1.18308e-03 DIIS
   @DF-RKS iter  66: -1565.58428470053059    2.98314e-10   1.18308e-03 DIIS
   @DF-RKS iter  67: -1565.58428470074432   -2.13731e-10   1.18308e-03 DIIS
   @DF-RKS iter  68: -1565.58428470067770    6.66205e-11   1.18308e-03 DIIS
   @DF-RKS iter  69: -1565.58428470064223    3.54703e-11   1.18308e-03 DIIS
   @DF-RKS iter  70: -1565.58428470070658   -6.43468e-11   1.18308e-03 DIIS
   @DF-RKS iter  71: -1565.58428470065996    4.66116e-11   1.18308e-03 DIIS
   @DF-RKS iter  72: -1565.58428470067474   -1.47793e-11   1.18308e-03 DIIS
   @DF-RKS iter  73: -1565.58428470068384   -9.09495e-12   1.18308e-03 DIIS
   @DF-RKS iter  74: -1565.58428470067020    1.36424e-11   1.18308e-03 DIIS
   @DF-RKS iter  75: -1565.58428470067929   -9.09495e-12   1.18308e-03 DIIS
   @DF-RKS iter  76: -1565.58428470067497    4.32010e-12   1.18308e-03 DIIS
   @DF-RKS iter  77: -1565.58428470067543   -4.54747e-13   1.18308e-03 DIIS
   @DF-RKS iter  78: -1565.58428470067815   -2.72848e-12   1.18308e-03 DIIS
   @DF-RKS iter  79: -1565.58428470067679    1.36424e-12   1.18308e-03 DIIS
   @DF-RKS iter  80: -1565.58428470067565    1.13687e-12   1.18308e-03 DIIS
   @DF-RKS iter  81: -1565.58428470067543    2.27374e-13   1.18308e-03 DIIS
   @DF-RKS iter  82: -1565.58428470067543    0.00000e+00   1.18308e-03 DIIS
   @DF-RKS iter  83: -1565.58428470067588   -4.54747e-13   1.18308e-03 DIIS
   @DF-RKS iter  84: -1565.58428470067724   -1.36424e-12   1.18308e-03 DIIS
   @DF-RKS iter  85: -1565.58428470067588    1.36424e-12   1.18308e-03 DIIS
   @DF-RKS iter  86: -1565.58428470067497    9.09495e-13   1.18308e-03 DIIS
   @DF-RKS iter  87: -1565.58428470067747   -2.50111e-12   1.18308e-03 DIIS
   @DF-RKS iter  88: -1565.58428470067452    2.95586e-12   1.18308e-03 DIIS
   @DF-RKS iter  89: -1565.58428470067406    4.54747e-13   1.18308e-03 DIIS
   @DF-RKS iter  90: -1565.58428470067588   -1.81899e-12   1.18308e-03 DIIS
   @DF-RKS iter  91: -1565.58428470067543    4.54747e-13   1.18308e-03 DIIS
   @DF-RKS iter  92: -1565.58428470067429    1.13687e-12   1.18308e-03 DIIS
   @DF-RKS iter  93: -1565.58428470067679   -2.50111e-12   1.18308e-03 DIIS
   @DF-RKS iter  94: -1565.58428470067543    1.36424e-12   1.18308e-03 DIIS

Other things I’ve tried →

  1. damping_percentage → 20-40%
  2. diis_max_vecs → 50-100 (info I found here)
  3. changing initial guess → huckel
  4. making the grid finer →
set dft_spherical_points 434
set dft_radial_points 85
set dft_pruning_scheme robust

So the density-fitted SCF procedure is not converging. Perhaps (I’m not sure this is the parameter that is the problem) try changing from the default:

CHOLESKY_TOLERANCE = 1e-4

Psi4 1.5 doesn’t have ADIIS which is the solution to most of this type of problems. Updating to a newer release should fix the issue. Plain DIIS simply isn’t good enough an algorithm to land on the minimum.

Hi @Rollin_King

I did try changing the value:

CHOLESKY_TOLERANCE = 1e-3

but it did not help. Thanks.

Thanks for the info @susilehtola

I have run the same calculation under 1.6, which does have the ADIIS, but it is still failing to converge:

   @DF-RKS iter  82: -1566.28338767164814   -2.87132e+00   3.60315e-04 DIIS/ADIIS
   @DF-RKS iter  83: -1566.28188741430313    1.50026e-03   3.60649e-04 DIIS/ADIIS
   @DF-RKS iter  84: -1566.29166893139882   -9.78152e-03   3.56495e-04 DIIS/ADIIS
   @DF-RKS iter  85: -1567.22658715057037   -9.34918e-01   5.34598e-05 DIIS
   @DF-RKS iter  86: -1567.22951375307025   -2.92660e-03   3.98180e-05 DIIS
   @DF-RKS iter  87: -1567.22971632027429   -2.02567e-04   4.10351e-05 DIIS
   @DF-RKS iter  88: -1566.31295608924188    9.16760e-01   3.47884e-04 DIIS/ADIIS
   @DF-RKS iter  89: -1567.23100097849124   -9.18045e-01   3.45396e-05 DIIS
   @DF-RKS iter  90: -1566.28146330815116    9.49538e-01   3.60723e-04 DIIS/ADIIS
   @DF-RKS iter  91: -1566.27857066020761    2.89265e-03   3.61701e-04 DIIS/ADIIS
   @DF-RKS iter  92: -1566.27152156198849    7.04910e-03   3.64526e-04 DIIS/ADIIS
   @DF-RKS iter  93: -1566.27398687179038   -2.46531e-03   3.63504e-04 DIIS/ADIIS
   @DF-RKS iter  94: -1566.27030109443081    3.68578e-03   3.64873e-04 DIIS/ADIIS
   @DF-RKS iter  95: -1566.27428672143651   -3.98563e-03   3.63757e-04 DIIS/ADIIS
   @DF-RKS iter  96: -1566.31729719175746   -4.30105e-02   3.47321e-04 DIIS/ADIIS
   @DF-RKS iter  97: -1567.23142540517097   -9.14128e-01   3.21628e-05 DIIS
   @DF-RKS iter  98: -1566.31314783377638    9.18278e-01   3.48605e-04 DIIS/ADIIS
   @DF-RKS iter  99: -1566.32974119762684   -1.65934e-02   3.48657e-04 DIIS/ADIIS
   @DF-RKS iter 100: -1566.34244197116936   -1.27008e-02   3.50019e-04 DIIS/ADIIS

PsiException: Could not converge SCF iterations in 100 iterations.

  Failed to converge.

I could run it for longer than a 100 iterations but it does not seem like this is going to help.