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?

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.