Stability Analysis Results

Is there a tutorial or documented description about how to understand and/ or interpret the results of a Stability Analysis run?

hi, Jim,
Currently we don’t have a tutorial on SCF stability analysis, but I will put this topic in the pipeline and find a time to prepare one. Will update this post when it is ready. Thanks for the suggestion!

The output from INTERNAL_STABILITY=TRUE is fairly easy to output, it either tells you that the solution is a true local minimum or else that it isn’t. In the latter case, the MOs that are stored on disk are perturbed along the imaginary mode, with the intention that you can use SCF_GUESS=READ in a subsequent job to attempt to find a true local minimum. This is discussed in the manual.

I did not use INTERNAL_STABILITY. I used STABILITY_ANALYSIS = TRUE

Here is the output. How do I interpret it?

 MAX_CIS_SUBSPACE fits in available memory
 Direct RCIS calculation will be performed
 Triplet excitation energies requested
 Singlet excitation energies requested
 CIS energy converged when residual is below 10e- 6
 ---------------------------------------------------
 Iter    Rts Conv    Rts Left    Ttl Dev     Max Dev
 ---------------------------------------------------
   1         0           1      0.000009    0.000009
   2         0           1      0.000003    0.000003
   3         0           1      0.000004    0.000004
   4         0           1      0.000004    0.000004
   5         0           1      0.000001    0.000001
   6         1           0      0.000001    0.000001    Roots Converged
 ---------------------------------------------------
 Triplets done: starting singlet calculation
 ---------------------------------------------------
 Iter    Rts Conv    Rts Left    Ttl Dev     Max Dev
 ---------------------------------------------------
   7         0           1      0.000014    0.000014
   8         0           1      0.000006    0.000006
   9         0           1      0.000005    0.000005
  10         0           1      0.000004    0.000004
  11         0           1      0.000003    0.000003
  12         0           1      0.000002    0.000002
  13         0           1      0.000002    0.000002
  14         0           1      0.000002    0.000002
  15         0           1      0.000002    0.000002
  16         0           1      0.000002    0.000002
  17         0           1      0.000001    0.000001
  18         1           0      0.000001    0.000001    Roots Converged
 ---------------------------------------------------
 
 ---------------------------------------------------
               CIS Excitation Energies              
 ---------------------------------------------------

 Excited state   1: excitation energy (eV) =   -1.7308
 Total energy for state  1:                -41754.29513755 au
    Multiplicity: Triplet
    Trans. Mom.:  0.0000 X   0.0000 Y   0.0000 Z
    Strength   :     0.0000000000
    D( 2401) --> V(    1) amplitude =  0.3641
    D( 2401) --> V(    5) amplitude =  0.6594
    D( 2401) --> V(    6) amplitude = -0.3343
    D( 2402) --> V(    1) amplitude =  0.3351
    D( 2402) --> V(    6) amplitude = -0.2440

 Excited state   2: excitation energy (eV) =    0.0217
 Total energy for state  2:                -41754.23073608 au
    Multiplicity: Singlet
    Trans. Mom.:  0.0375 X   1.0735 Y   0.5874 Z
    Strength   :     0.0007960414
    D( 2402) --> V(    2) amplitude =  0.9544
 
 ---------------------------------------------------

 Stability analysis will be performed
 ---------------------------------------------------
 Iter    Rts Conv    Rts Left    Ttl Dev     Max Dev
 ---------------------------------------------------
   1         0           2      0.000004    0.000002
   2         1           1      0.000002    0.000001
   3         2           0      0.000001    0.000001    Roots Converged
 RHF-> UHF unstable,  1 negative eigenvalue(s):  -0.1274817
 ---------------------------------------------------
 Triplets done: starting singlet calculation
 ---------------------------------------------------
 Iter    Rts Conv    Rts Left    Ttl Dev     Max Dev
 ---------------------------------------------------
   4         0           2      0.000003    0.000002
   5         0           2      0.000003    0.000001
   6         0           2      0.000004    0.000003
   7         0           2      0.000003    0.000001
   8         1           1      0.000002    0.000001
   9         1           1      0.000002    0.000001
  10         1           1      0.000002    0.000001
  11         1           1      0.000002    0.000001
  12         2           0      0.000001    0.000001    Roots Converged
 RHF-> RHF   stable,    smallest eigenvalue:      0.0003694
 RHF->CRHF unstable,  1 negative eigenvalue(s):  -0.0005665
 ---------------------------------------------------
  SETman timing summary (seconds)
  CPU time             17210.36s
  System time              0.01s
  Wall time              946.74s

STABILITY_ANALYSIS=TRUE is the old code. New code (INTERNAL_STABILITY=TRUE) is preferred, for reasons discussed here: 4.5.9 Internal Stability Analysis and Automated Correction for Energy Minima‣ 4.5 Converging SCF Calculations ‣ Chapter 4 Self-Consistent Field Ground-State Methods ‣ Q-Chem 5.2 User’s Manual

That said, the interpretation is that your negative excitation energy (-1.7eV) indicates an instability. (Since single excitations are equivalent to orbital rotations, a CIS/TDDFT with a negative excitation indicates there’s some orbital rotation that would lower the energy of the reference state, or in other words, an instability.) Text at the bottom indicates it is a real → complex instability, i.e., to lower the energy you need complex orbitals (which Q-Chem does support.)

Thanks John. Q-Chem might want to update the manual. I did not see any indication that the STABILITY_ANALYSIS had been deprecated or replaced by INTERNAL_STABILITY.

John.

As you suggested, I did the INTERNAL_STABILITY=TRUE with these results, which appear to indicate I have a stable local minimum.:

===================================================
Beginning Test for Internal Stability
===================================================
generating davidson guess vectors based on koopmans excitations
    1      4.81e-01     00000 Davidson Iteration
    2      2.19e-01     00000 Davidson Iteration
    3      1.17e-01     00000 Davidson Iteration
    4      4.39e-02     00000 Davidson Iteration
    5      6.40e-02     00000 Davidson Iteration
    6      1.45e-02     00000 Davidson Iteration
    7      3.10e-02     00000 Davidson Iteration
    8      1.18e-02     00000 Davidson Iteration
    9      1.02e-02     00000 Davidson Iteration
   10      5.12e-03     00000 Davidson Iteration
   11      6.01e-03     00000 Davidson Iteration
   12      3.94e-03     00000 Davidson Iteration
   13      2.58e-03     00000 Davidson Iteration
   14      1.42e-03     00000 Davidson Iteration
   15      5.93e-04     00000 Davidson Iteration
   16      2.66e-04     00000 Davidson Iteration
   17      2.25e-04     00000 Davidson Iteration
   18      1.55e-04     00000 Davidson Iteration
   19      1.05e-04     00000 Davidson Iteration
   20      5.17e-05     00000 Davidson Iteration
   21      1.03e-03     00000 Davidson Iteration
   22      7.74e-04     00000 Davidson Iteration
   23      3.93e-04     00000 Davidson Iteration
   24      2.19e-04     00000 Davidson Iteration
   25      1.02e-04     00000 Davidson Iteration
   26      6.02e-05     00000 Davidson Converged
converged_eigenvalues
   0.0019
   0.0076
Threshold for negative eigenvalues: -1.0e-05
solution was a local minimum (stable)
===================================================
End Test for Internal Stability
===================================================

Timing for Internal Stability: 1568.00s (wall), 95101.77s (cpu)
**Our SCF solution is stable!**

So, is this SCF calculation OK to use as the converged ground state or do I need to seek out a lower state?

Thanks for your help.

Looks okay (= stable) to me.

OK. So, the local minimum is not an issue?

Can never prove it’s a global minimum, if that’s what you mean. It’s a local minimum (rather than a saddle point) in the space of SCF orbital rotations, which is the definition of a stable SCF solution.

OK. Thanks for the help.

These two keywords invoke slightly different things.
INTERNAL_STABILITY=TRUE invokes internal stability analysis to find if there exists an orbital rotation, which lowers SCF energy within the given spin symmetry restriction.
STABILITY_ANALYSIS=TRUE invokes internal as well as external stability analysis, which reports whether the SCF energy could be further lowered by breaking some symmetry, e.g. going from restricted SCF to unrestricted SCF or from real to complex orbitals.

Neither did I. However, it appears that the manual is indicating that INTERNAL_STABILITY is preferred over STABILITY_ANALYSIS in the discussion on page 118 -119. It states, in part:

Q-CHEM’s previous stability analysis package (STABILITY_ANALYSIS) suffered from the following limitations:
• It is only available for restricted (close-shell) and unrestricted SCF calculations.
• It requires the analytical orbital Hessian of the wave function energy.
• The calculation terminates after the corrected MOs are generated, and a second job is needed to read in these orbitals and run another SCF calculation.

The implementation of internal stability analysis in GEN_SCFMAN overcomes almost all these shortcomings. Its availability has been extended to all the implemented orbital types.

Thanks for your comment.