EOM-CCSD giving strange energies

I am trying to run EOM-CCSD using c2h symmetry and the cc-pVDZ basis-set for stilbene.

At iteration 52, the output is:

Iter=52 L=7 Root EOM Energy Delta E Res. Norm Conv?
1 0.2782933241 -2.26e-09 6.42e-07 Y
2 0.2819644673 1.15e-08 2.99e-06 N

Then at iteration 53 there is a pretty drastic change in energy:

Iter=53 L=8 Root EOM Energy Delta E Res. Norm Conv?
1 0.2419908972 -3.63e-02 3.75e-01 N
2 0.2782933364 -3.67e-03 1.55e-06 N

And then by iteration 75, the excitation energies are much different and seemingly unreasonable.

Iter=75 L=24 Root EOM Energy Delta E Res. Norm Conv?
1 0.0516089663 -4.11e-03 7.18e-02 N
2 0.0668237414 -2.10e-03 4.02e-02 N

This is for Bg IRREPs. For Bu the situation is even worse and the excitation energies get as low as ~0.0001 h (although if I let the Bg calculation run longer, the energies may have gone as low as for Bu).

I am assuming the energies at iteration 52 are close to what they should based on the experiment and CASPT2 numbers I have seen. So, I am not sure what is happening with the solver.

Any ideas?

Thank you,
Alex

2 Likes

Are you able to provide the input file?

Below is a copy of my input file:

memory 12000 mb

molecule h2 {
C -0.641641916648 0.178394244349 0.000000000000
C 0.641641916648 -0.178394244349 0.000000000000
C -1.812573032366 -0.717197972799 0.000000000000
C 1.812573032366 0.717197972799 0.000000000000
C -1.718917348820 -2.112392369476 0.000000000000
C 1.718917348820 2.112392369476 0.000000000000
C -2.856327311586 -2.900627371143 0.000000000000
C 2.856327311586 2.900627371143 0.000000000000
C -4.117640436966 -2.317508472781 0.000000000000
C 4.117640436966 2.317508472781 0.000000000000
C -3.086742245497 -0.148047388587 0.000000000000
C 3.086742245497 0.148047388587 0.000000000000
C -4.227769502277 -0.936332232404 0.000000000000
C 4.227769502277 0.936332232404 0.000000000000
H -0.894409114778 1.223051421913 0.000000000000
H 0.894409114778 -1.223051421913 0.000000000000
H -3.184509564177 0.921502898449 0.000000000000
H 3.184509564177 -0.921502898449 0.000000000000
H -5.195375466555 -0.472353517953 0.000000000000
H 5.195375466555 0.472353517953 0.000000000000
H -4.997031210989 -2.932011250710 0.000000000000
H 4.997031210989 2.932011250710 0.000000000000
H -2.760693096857 -3.969577101084 0.000000000000
H 2.760693096857 3.969577101084 0.000000000000
H -0.758762916583 -2.588907781725 0.000000000000
H 0.758762916583 2.588907781725 0.000000000000
symmetry c2h
}

set{ basis cc-pVDZ
roots_per_irrep [0,2,0,0]
}

energy(‘eom-ccsd’)

When the convergence criteria are tight and you have a couple of states close together, then the Davidson procedure can collapse due to numerical instabilities. I have a couple of suggestions:

  1. If you’re interested just in excitation energies and/or transition strengths, then the default convergence criteria are far too stringent. Set the following in your input file:
    r_convergence 0.0001
    e_convergence 0.00001
    That should be more that sufficient for most purposes. (And yes, we should really make these the default.)
  2. If you freeze the carbon 1s core orbitals, you can save yourself some time on this one:
    freeze_core true
  3. 12 GB of memory is not necessary for this relatively small job. 2 GB is plenty.

-TDC

2 Likes

Thank you for the explanation on the Davidson algorithm and your suggestions. I have actually already lowered the convergence criteria as you recommend, but was mostly curious about the break-down of the Davidson diagonalization. I’ll take advantage of freezing the core orbitals in the future as well.

Thank you,
Alex

Here’s another possibility:

Try reducing the number of vectors per root that are used in the Davidson subspace diagonalization. The default is 12. So you could try adding

vecs_per_root = 6

or even try values all the way down to 2 or 3.

Although there are no guarantees, I think failures are more likely when the subspace is larger.

2 Likes