Dear all,
My goal is to compute ground- and first excited state PESs for the molecule HNCH2 with CASSCF, but the energy is diverging in the MCSCF-part. Here is an easier example with H2O that shows the same problem. Input:
molecule {
O
H 1 r
H 1 r 2 a
symmetry c1
r = 1.00
a = 103.1
}
set {
basis cc-pvtz
reference rhf
}
scf_energy, scf_wfn = energy('scf', return_wfn=True)
set {
frozen_docc [1]
active [8]
frozen_uocc [49]
num_roots 2
}
casscf_energy = energy('casscf', ref_wfn=scf_wfn)
The output file shows:
==> Starting MCSCF iterations <==
Iter Total Energy Delta E Orb RMS CI RMS NCI NORB
(sem_iter): H0block_->H0b_diag[1][1] - H0block_->H0b_diag[2][1] = -0.682382 - 0.682382 = -1.364765 > 1.0E-8
@MCSCF 1: -76.071437230668 -7.6071e+01 0.00e+00 8.68e+14 10 1 Initial CI
@MCSCF 2: -76.071437230668 -7.1054e-14 0.00e+00 0.00e+00 12 1 TS
@MCSCF 3: -125.832012021621 -4.9761e+01 0.00e+00 0.00e+00 12 1 TS
@MCSCF 4: -605.479352815163 -4.7965e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 5: -1107.860559582898 -5.0238e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 6: -1611.073889345756 -5.0321e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 7: -2114.549984142473 -5.0348e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 8: -2618.141915370499 -5.0359e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 9: -3121.794980573496 -5.0365e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 10: -3625.484207427384 -5.0369e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 11: -4129.196585636493 -5.0371e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 12: -4632.924673963868 -5.0373e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 13: -5136.663909976928 -5.0374e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 14: -5640.411341381504 -5.0375e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 15: -6144.164973408251 -5.0375e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 16: -6647.923409845063 -5.0376e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 17: -7151.685644326304 -5.0376e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 18: -7655.450933051488 -5.0377e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 19: -8159.218714632595 -5.0377e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 20: -8662.988557205634 -5.0377e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 21: -9166.760123210061 -5.0377e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 22: -9670.533144968016 -5.0377e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 23: -10174.307407533070 -5.0377e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 24: -10678.082736280503 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 25: -11181.858987860582 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 26: -11685.636043507753 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 27: -12189.413804019117 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 28: -12693.192185854408 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 29: -13196.971118175323 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF 30: -13700.750540512265 -5.0378e+02 0.00e+00 0.00e+00 12 1 TS, DIIS
@MCSCF Final Energy: -13700.750540512264706
Traceback (most recent call last):
File "/usr/bin/psi4", line 248, in <module>
exec(content)
File "<string>", line 36, in <module>
File "/usr/lib/psi4/driver/driver.py", line 460, in energy
wfn = procedures['energy'][lowername](lowername, molecule=molecule, **kwargs)
File "/usr/lib/psi4/driver/procrouting/proc.py", line 4066, in run_detcas
ciwfn = mcscf.mcscf_solver(ref_wfn)
File "/usr/lib/psi4/driver/procrouting/mcscf/mcscf_solver.py", line 347, in mcscf_solver
raise p4util.PsiException("MCSCF: Iterations did not converge!")
PsiException: MCSCF: Iterations did not converge!
The problem occured with Psi4 1.1 and 1.2. Since I am not an expert in this field I am not sure how to interpret the MCSCF-output.
If I take away the keyword ‘num_roots’ the calculation runs fine and returns the expected energy (also calculated with MOLPRO, I want to use Psi4 because the Interface OpenFermion supports it).
So if it is possible to do CASSCF excited state calculations with Psi4, I would be glad to know how to do it.
All the best,
Jakob