SCF energy going up in the initial iterations

Dear Q-Chem users,

I have been running calculations in Q-Chem 5.4 since about a month, so I can’t qualify myself as an expert user, but I am noticing an unexpected behavior with my calculations and I’m trying to backtrack the issue to understand its roots.

I noticed that frequently, in my SCF calculations, the variational energy goes up in the very initial steps, instead of going down as I would expect. Up to now, I’m doing only preliminary calculations with DFT (wB97M-V and PBE-D3), I cannot see any apparent issue with the other calculation parameters and this happens even with molecules as small as benzene. Below you can find the most relevant parts of my input, and a brief example of the output section in which the problem is showing up.

   DFT_D D3
   BASIS def2-SVP

test calculation to understand the energy is frequently going up in the 1st step of the SCF procedure

   0 1
   C       -7.01922        1.35094       -0.00000
   C       -5.96370        2.18760       -0.00000
   C       -4.71137        1.69182       -0.00000
   C       -4.51456        0.35937       -0.00000
   C       -5.57009       -0.47728       -0.00000
   C       -6.82242        0.01850       -0.00000
   H       -8.02920        1.75077       -0.00000
   H       -6.12242        3.26218       -0.00000
   H       -3.86011        2.36656       -0.00000
   H       -3.50459       -0.04046       -0.00000
   H       -5.41137       -1.55186        0.00000
   H       -7.67367       -0.65625       -0.00000

in the output:

Exchange:  PBE      Correlation:  PBE
Using SG-1 standard quadrature grid
Dispersion:   Grimme D3
using 4 threads for integral computing
OpenMP Integral computing Module
Release: version 1.0, May 2013, Q-Chem Inc. Pittsburgh
A restricted SCF calculation will be
performed using DIIS
SCF converges when DIIS error is below 1.0e-08
 Cycle       Energy         DIIS error
   1    -233.1291008905      7.83e-02
   2    -231.5491219665      1.02e-02    <--- here you can see how the energy is going up!
   3    -231.3921405812      1.42e-02
   4    -231.7568518085      8.07e-04

I want to kindly thank everybody reading for your time!

Hi Nicola,
The default SCF convergence algorithm is DIIS, which is an extrapolation rather than a minimization and thus it is not guaranteed that the energy decreases at each step. Often it does after the first step, this is a somewhat unusual case for reasons that aren’t clear to me. If you want to see the energy go down every step, use SCF_ALGORITHM = GDM (geometric direct minimization). I suggest this for demonstrative purposes only; DIIS is the default because it’s usually converges in fewer cycles than other algorithms. GDM is used for problematic cases when DIIS doesn’t converge.

When one sees really large upward changes in energy in the early cycles, it can be a sign of either
(a) poor SCF guess (but in this case SCF_GUESS = AUTOSAD behaves in the same way), or
(b) linear dependency problem, which you avoid by increasing THRESH but that’s not the issue here either.

In short, this is a slightly unusual case in my experience (but I don’t use GGA functionals much), but it’s a well-behaved one so I wouldn’t worry about it.

Hello John,

Thank you very much for the reply. You’re right, I made the comparison with GDM employing the exact same input, adding SCF_ALGORITHM GDM. For some reason, even with GDM I get a very low energy for the initial guess calculation, then the effective minimization starts with higher energy and slowly approaches convergence from above. I agree with your definition for this case, unusual but well-behaved, and I report the output of this other calculation below.

 OpenMP Integral computing Module
 Release: version 1.0, May 2013, Q-Chem Inc. Pittsburgh
 A restricted SCF calculation will be
 performed using Roothaan-Hall, GDM
 SCF converges when RMS gradient is below 1.0e-08
  Cycle       Energy         DIIS error
    1    -233.1291008905      7.83e-02  Roothaan Step
  Cycle       Energy        RMS Gradient
    1    -231.5491219661      1.89e-01   Descent step
    2    -231.7459324280      4.65e-02   Normal BFGS step
    3    -231.7566250865      1.09e-02   Normal BFGS step
    4    -231.7577796967      2.81e-03   Normal BFGS step
    5    -231.7578475951      5.33e-04   Normal BFGS step

Have a good day :slight_smile:

The energy on the very first step is often “weird” (non-variational) because the default SAD guess is not idempotent. SCF_GUESS = CORE with SCF_ALGORITHM = GDM gives you an energy that goes down on every single iteration but both of those choices generally lead to much slower convergence as compared to the defaults, SCF_GUESS = SAD and SCF_ALGORITHM = DIIS.

1 Like