How to perform excited state calculation with CASSCF

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

Got it now. Using restricted_docc and restricted_uocc instead of frozen_… leads to the expected CASSCF calculation, converging after 42 MCSCF steps.