About the SCF convergence and orbital gradient

Dear all,

I am currently running into a problem of the SCF convergence regarding to the orbital gradient. From the output:

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

@DF-UKS iter 1: -93947.62263282910862 -9.39476e+04 4.96184e-01 DIIS
@DF-UKS iter 2: -93083.06625863121008 8.64556e+02 3.15258e-01 DIIS/DAMP=30%
@DF-UKS iter 3: -93670.20860105322208 -5.87142e+02 1.65549e-01 DIIS/DAMP=30%
@DF-UKS iter 4: -94862.55785840435419 -1.19235e+03 1.28081e-01 DIIS/DAMP=30%
@DF-UKS iter 5: -94309.86640123746474 5.52691e+02 1.39700e-01 DIIS/DAMP=30%
@DF-UKS iter 6: -94644.76525786289130 -3.34899e+02 8.48098e-02 DIIS/DAMP=30%
@DF-UKS iter 7: -94858.76015601100517 -2.13995e+02 8.52922e-02 DIIS/DAMP=30%
@DF-UKS iter 8: -94798.61941630626097 6.01407e+01 7.48526e-02 DIIS/DAMP=30%
@DF-UKS iter 9: -94900.49050649242417 -1.01871e+02 7.96792e-02 DIIS/DAMP=30%
@DF-UKS iter 10: -94818.81550006117322 8.16750e+01 7.20902e-02 DIIS/DAMP=30%
@DF-UKS iter 11: -94778.41620374155173 4.03993e+01 8.31602e-02 DIIS/DAMP=30%
@DF-UKS iter 12: -94815.70220472227084 -3.72860e+01 8.78022e-02 DIIS/DAMP=30%
@DF-UKS iter 13: -94872.66261747252429 -5.69604e+01 7.40944e-02 DIIS/DAMP=30%
@DF-UKS iter 14: -94873.21119807503419 -5.48581e-01 8.10360e-02 DIIS/DAMP=30%
@DF-UKS iter 15: -94791.74027073250909 8.14709e+01 9.67722e-02 DIIS/DAMP=30%
@DF-UKS iter 16: -94946.80487266201817 -1.55065e+02 4.65549e-02 DIIS/DAMP=30%
@DF-UKS iter 17: -94725.75117995256733 2.21054e+02 8.42222e-02 DIIS/DAMP=30%
@DF-UKS iter 18: -94762.76879116657074 -3.70176e+01 8.41985e-02 DIIS/DAMP=30%
@DF-UKS iter 19: -94789.22667692959658 -2.64579e+01 8.49103e-02 DIIS/DAMP=30%
@DF-UKS iter 20: -94807.82568826185889 -1.85990e+01 7.74323e-02 DIIS/DAMP=30%
@DF-UKS iter 21: -94822.34396569037926 -1.45183e+01 7.77712e-02 DIIS/DAMP=30%
@DF-UKS iter 22: -94818.70148190246255 3.64248e+00 8.53658e-02 DIIS/DAMP=30%
@DF-UKS iter 23: -94802.57924583772547 1.61222e+01 8.75405e-02 DIIS/DAMP=30%
@DF-UKS iter 24: -94799.41612294694642 3.16312e+00 8.81203e-02 DIIS/DAMP=30%
@DF-UKS iter 25: -94798.67187531029049 7.44248e-01 8.82933e-02 DIIS/DAMP=30%
@DF-UKS iter 26: -94798.47921984079585 1.92655e-01 8.83463e-02 DIIS/DAMP=30%
@DF-UKS iter 27: -94798.42999715192127 4.92227e-02 8.83625e-02 DIIS/DAMP=30%
@DF-UKS iter 28: -94798.41773723006190 1.22599e-02 8.83674e-02 DIIS/DAMP=30%
@DF-UKS iter 29: -94798.41478065156844 2.95658e-03 8.83689e-02 DIIS/DAMP=30%
@DF-UKS iter 30: -94798.41410212684423 6.78525e-04 8.83694e-02 DIIS/DAMP=30%
@DF-UKS iter 31: -94798.41395896987524 1.43157e-04 8.83695e-02 DIIS/DAMP=30%
@DF-UKS iter 32: -94798.41393359792710 2.53719e-05 8.83695e-02 DIIS/DAMP=30%
@DF-UKS iter 33: -94798.41393112475635 2.47317e-06 8.83695e-02 DIIS/DAMP=30%
@DF-UKS iter 34: -94798.41393189138034 -7.66624e-07 8.83696e-02 DIIS/DAMP=30%
@DF-UKS iter 35: -94798.41393256612355 -6.74743e-07 8.83696e-02 DIIS/DAMP=30%
@DF-UKS iter 36: -94798.41393290000269 -3.33879e-07 8.83696e-02 DIIS/DAMP=30%
@DF-UKS iter 37: -94798.41393303919176 -1.39189e-07 8.83696e-02 DIIS/DAMP=30%
@DF-UKS iter 38: -94798.41393309258274 -5.33910e-08 8.83696e-02 DIIS/DAMP=30%
@DF-UKS iter 39: -94798.41393311202410 -1.94414e-08 8.83696e-02 DIIS/DAMP=30%

It is clear that the energy quickly converges but the orbital gradient becomes a constant as the iteration proceeds. Eventually, the “Failed to converge.” error message comes out.

I have tried some tricks as suggested in other posts, such as
#not work, just slow down the calculation
#set dft_spherical_points 590
#set dft_radial_points 99

set soscf true
set soscf_max_iter 35

set DIIS_MAX_VECS 10
set DAMPING_PERCENTAGE 30.0
set MAXITER 150
set guess core
(The trick of initial guess cannot be used since my molecule contains lanthanide elements. )

So how to help the orbital gradient converges? Any suggestion is deeply appreciated.

As a last resort, I probably will relax the convergence criteria by setting D_CONVERGENCE to 1e-2. I wonder how safe it is? It appears OK to me for numerical geometry optimization and frequency calculation. If so, how to switch on the numerical optimization and frequency calculation?

Many thanks for your help.

In the attached file, there is my input.
Best
test.txt (580 Bytes)

Instead of “does not work” tell us what the error is :slight_smile:
I recon that you need to specify the SAD RI basis as well:
set df_basis_sad x2c-jfit

A very coarse d_convergence is dangerous especially if you try to find a specific state.

For the optimize and frequency drivers you can specify dertype to request numerical or analytical (if available) calculations. Geometry Optimization — optimize() and gradient()
Double numerical frequencies will be very unstable.

How to converge this high-spin state for a super heavy element I dont know. Perhaps a HF state as guess can help? Maybe in a smaller basis. Can be done e.g. like this:

energy('scf')
guess read
energy('pw91')

Dear Hokru,

Many thanks for your kind help.

For “does not work”, I mean it doesn’t help to reduce the orbital gradient. It does generate a larger grid. Sorry for raising any concerns.

I will play with the initial guess then. Thank you very much for the hint of setting df_basis_sad!

Lastly, is there any way to print out the MO coefficients even the SCF does not converge? It seems to me that “set Print_MOs true” only works for converged SCF.

Yes, you can set fail_on_maxiter to false. Then all further commands will be executed.