Difficulties converging UKS energies

I am trying to compute the single-point energy of a cation, using the basis_guess method to accelerate convergence. I am using Psi4 version 1.4a2.dev504. This is my input file:

set_num_threads(8)

molecule mol {
    1 2
    C        0.81874699     0.86417234     0.18828612
    H        1.46611361     1.71666767     0.34472141
    C        1.36899712    -0.39052394    -0.06669818
    H        2.44303637    -0.51186194    -0.11057444
    C        0.53437860    -1.48849320    -0.27188804
    H        0.96084825    -2.46156422    -0.47550749
    C       -0.84911561    -1.33050735    -0.21989643
    H       -1.49706942    -2.18186028    -0.37955321
    C       -1.39948546    -0.07603020     0.04043417
    H       -2.47268667     0.04490778     0.09338206
    C       -0.56529230     1.02140336     0.24227921
    H       -0.99255667     1.99366131     0.44625817
    unit angstrom
}

set basis cc-pVDZ
set d_convergence 1e-9
set e_convergence 1e-9
set reference uks

energy('PBE0')

As can be seen in the following output, the energy is converged up to almost machine precision, so I guess the reason it’s failing is due to the density not being converged? If so, how can I fix this?

 ==> Iterations <==

                           Total Energy        Delta E     RMS |[F,P]|

   @DF-UKS iter SAD:  -231.54790329560467   -2.31548e+02   0.00000e+00 
   @DF-UKS iter   1:  -231.48322706594240    6.46762e-02   4.52923e-03 DIIS
   @DF-UKS iter   2:  -231.51327587342053   -3.00488e-02   4.24806e-03 DIIS
   @DF-UKS iter   3:  -231.64213142714573   -1.28856e-01   3.97672e-04 DIIS
   @DF-UKS iter   4:  -231.64313290622169   -1.00148e-03   1.36258e-04 DIIS
   @DF-UKS iter   5:  -231.64326834324083   -1.35437e-04   6.91658e-05 DIIS
   @DF-UKS iter   6:  -231.64331592285362   -4.75796e-05   2.11098e-05 DIIS
   @DF-UKS iter   7:  -231.64332199710509   -6.07425e-06   1.54682e-05 DIIS
   @DF-UKS iter   8:  -231.64332503962999   -3.04252e-06   5.33423e-06 DIIS
   @DF-UKS iter   9:  -231.64332555220835   -5.12578e-07   4.93893e-06 DIIS
   @DF-UKS iter  10:  -231.64332602619629   -4.73988e-07   3.84298e-06 DIIS
   @DF-UKS iter  11:  -231.64332653938345   -5.13187e-07   3.82689e-06 DIIS
   @DF-UKS iter  12:  -231.64332668600059   -1.46617e-07   3.82605e-06 DIIS
   @DF-UKS iter  13:  -231.64332803690604   -1.35091e-06   3.82671e-06 DIIS
   @DF-UKS iter  14:  -231.64333175140587   -3.71450e-06   3.85394e-06 DIIS
   @DF-UKS iter  15:  -231.64334215468011   -1.04033e-05   4.37464e-06 DIIS
   @DF-UKS iter  16:  -231.64330923084742    3.29238e-05   7.31443e-06 DIIS
   @DF-UKS iter  17:  -231.64301300155012    2.96229e-04   1.97105e-04 DIIS
   @DF-UKS iter  18:  -231.64336120470080   -3.48203e-04   3.03900e-05 DIIS
   @DF-UKS iter  19:  -231.64335837426177    2.83044e-06   4.23651e-05 DIIS
   @DF-UKS iter  20:  -231.64336029633478   -1.92207e-06   3.62943e-05 DIIS
   @DF-UKS iter  21:  -231.64335960663902    6.89696e-07   3.87895e-05 DIIS
   @DF-UKS iter  22:  -231.64335991681651   -3.10177e-07   3.77101e-05 DIIS
   @DF-UKS iter  23:  -231.64335978338477    1.33432e-07   3.81777e-05 DIIS
   @DF-UKS iter  24:  -231.64335984020181   -5.68170e-08   3.79781e-05 DIIS
   @DF-UKS iter  25:  -231.64335981548618    2.47156e-08   3.80645e-05 DIIS
   @DF-UKS iter  26:  -231.64335982602199   -1.05358e-08   3.80275e-05 DIIS
   @DF-UKS iter  27:  -231.64335982146349    4.55850e-09   3.80434e-05 DIIS
   @DF-UKS iter  28:  -231.64335982341493   -1.95143e-09   3.80366e-05 DIIS
   @DF-UKS iter  29:  -231.64335982257364    8.41283e-10   3.80395e-05 DIIS
   @DF-UKS iter  30:  -231.64335982293483   -3.61183e-10   3.80383e-05 DIIS
   @DF-UKS iter  31:  -231.64335982277930    1.55524e-10   3.80388e-05 DIIS
   @DF-UKS iter  32:  -231.64335982284604   -6.67342e-11   3.80386e-05 DIIS
   @DF-UKS iter  33:  -231.64335982281727    2.87628e-11   3.80387e-05 DIIS
   @DF-UKS iter  34:  -231.64335982282978   -1.25056e-11   3.80386e-05 DIIS
   @DF-UKS iter  35:  -231.64335982282466    5.11591e-12   3.80387e-05 DIIS
   @DF-UKS iter  36:  -231.64335982282682   -2.16005e-12   3.80387e-05 DIIS
   @DF-UKS iter  37:  -231.64335982282614    6.82121e-13   3.80387e-05 DIIS
   @DF-UKS iter  38:  -231.64335982282637   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  39:  -231.64335982282603    3.41061e-13   3.80387e-05 DIIS
   @DF-UKS iter  40:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  41:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  42:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  43:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  44:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  45:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  46:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  47:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  48:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  49:  -231.64335982282591    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  50:  -231.64335982282626   -3.41061e-13   3.80387e-05 DIIS
   @DF-UKS iter  51:  -231.64335982282603    2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  52:  -231.64335982282591    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  53:  -231.64335982282614   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  54:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  55:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  56:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  57:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  58:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  59:  -231.64335982282626   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  60:  -231.64335982282603    2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  61:  -231.64335982282626   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  62:  -231.64335982282603    2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  63:  -231.64335982282591    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  64:  -231.64335982282626   -3.41061e-13   3.80387e-05 DIIS
   @DF-UKS iter  65:  -231.64335982282614    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  66:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  67:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  68:  -231.64335982282626   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  69:  -231.64335982282614    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  70:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  71:  -231.64335982282626   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  72:  -231.64335982282614    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  73:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  74:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  75:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  76:  -231.64335982282591    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  77:  -231.64335982282614   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  78:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  79:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  80:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  81:  -231.64335982282626   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  82:  -231.64335982282591    3.41061e-13   3.80387e-05 DIIS
   @DF-UKS iter  83:  -231.64335982282614   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  84:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  85:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  86:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  87:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  88:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  89:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  90:  -231.64335982282591    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  91:  -231.64335982282614   -2.27374e-13   3.80387e-05 DIIS
   @DF-UKS iter  92:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  93:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  94:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  95:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  96:  -231.64335982282603    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  97:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter  98:  -231.64335982282614    0.00000e+00   3.80387e-05 DIIS
   @DF-UKS iter  99:  -231.64335982282603    1.13687e-13   3.80387e-05 DIIS
   @DF-UKS iter 100:  -231.64335982282614   -1.13687e-13   3.80387e-05 DIIS

PsiException: Could not converge SCF iterations in 100 iterations.

Thank you!

1 Like

DFT convergence is not my area of expertise, but I’ll say what I can:

  • Sometimes, you can see poor density convergence if you’re not using a fine enough grid. I still see essentially the same convergence issue even after increasing the grid to dft_spherical_points 590 and dft_radial_points 99. I think grid sensitivity problems can be safely ruled out.
  • Sometimes, a different guess can help. This is the case here. The following additional keywords worked for me:
    set basis_guess true
    set guess huckel

The first keyword tells Psi to start trying to solve the orbitals with a smaller basis set and use that as a guess for the larger. The second keyword tells Psi to use a different starting guess in the smaller basis set. I have no explanation for why this is the magic set of keywords that works, but I can converge the SCF with these. I’ll add this to our list of difficult SCF cases. If you have any more, please let us know!

Thank you for your response, @jmisiewicz.
In my case, your suggestion works for the mentioned example. It’s very good since I can combine the guess huckel directive with basis_guess cc-pVDZ, so I can use this to converge in a larger basis set.

I’ll test with other examples and see if I can use this method as my default one.