Regarding CASSCF Calculation

Dear Psi4 users and developers,

I am a new user of Psi4 and trying to understand the underlying methods in built-in Psi4.
First, I have done an SCF calculation of Cr2 molecule using cc-pvdz basis and I got the following orbital energy

==> Post-Iterations <==
Orbital Energies [Eh]
Doubly Occupied:
1B1u -220.454455 1Ag -220.454454 2Ag -26.278923
2B1u -26.278882 3Ag -22.220667 3B1u -22.220037
1B3u -22.204530 1B2u -22.204530 1B2g -22.204229
1B3g -22.204229 4Ag -3.454036 4B1u -3.253787
5Ag -2.352378 2B3u -2.141931 2B2u -2.141931
2B2g -2.030860 2B3g -2.030860 5B1u -1.895170
6Ag -0.330221 3B3u -0.325413 3B2u -0.325413
7Ag -0.254357 6B1u -0.205351 1B1g -0.124702
8Ag 0.025488 7B1u 0.029902 4B2u 0.058268
4B3u 0.058268 3B3g 0.090365 3B2g 0.090365
9Ag 0.115379 8B1u 0.122200 10Ag 0.208201
4B2g 0.230109 4B3g 0.230109 9B1u 0.240866
5B3u 0.252768 5B2u 0.252768 1Au 0.261340
11Ag 0.276351 2B1g 0.312271 6B2u 0.319117
6B3u 0.319117 12Ag 0.319832 10B1u 0.328198
11B1u 0.328430 2Au 0.411651 5B2g 0.450448
5B3g 0.450448 12B1u 0.534933 13Ag 0.723392
6B2g 0.798138 6B3g 0.798138 7B3u 0.837436
7B2u 0.837436 13B1u 1.044371 14Ag 1.109003
15Ag 1.380856 3B1g 1.466850 8B3u 1.561639
8B2u 1.561639 14B1u 1.622534 3Au 1.692612
16Ag 1.736412 15B1u 1.754060 7B2g 1.763691
7B3g 1.763691 17Ag 1.902139 18Ag 2.189559
4B1g 2.205076 9B2u 2.348854 9B3u 2.348854
8B2g 2.544786 8B3g 2.544787 16B1u 2.560427
10B3u 2.590341 10B2u 2.590341 9B2g 2.696706
9B3g 2.696706 17B1u 3.113501 18B1u 3.365357
4Au 3.385565 19Ag 3.647121 10B2g 4.228085
10B3g 4.228085 19B1u 11.400631
Final Occupation by Irrep:
Ag B1g B2g B3g Au B1u B2u B3u
DOCC [ 7, 1, 2, 2, 0, 6, 3, 3 ]
@DF-RHF Final Energy: -2085.89881984499470

Now, I would like to do CASSCF calculation. So I need to set up frozen_docc, active, frozen_uocc, restricted_docc and so on.
How to set the above-mentioned tags for the CASSCF calculation.
I would appreciate your help in advance.


Here are the options that I used to run Cr2. The simplest way to figure out the active space is to use cube_prop and plot the orbitals. You can also use group theory to figure out the irreps.

set globals{
    reference              rhf
    scf_type               out_of_core
    basis                  cc-pvdz
    d_convergence          8
    e_convergence          12
    maxiter                300
    docc                   [8,1,2,2,0,5,3,3]
    restricted_docc        [5,0,2,2,0,5,2,2]
    active                 [3,1,1,1,1,3,1,1]
    mcscf_r_convergence    8
    mcscf_e_convergence    10
    mcscf_maxiter          150
    mcscf_diis_start       35

I start DIIS for MCSCF at 35-th iteration because sometimes the code may stuck at local minima. Hope this helps.


1 Like

Dear york0822,

Thank you very much for your answer.
I have tried cube_prop and get the orbitals in *.cube format. I have plotted also *.cube data. I didn’t get so much out of it. Still, I have confusion about the choice of active space, docc, and restricted_docc by looking at the orbital energies. How did you get docc whereas SCF calculation says
DOCC [7,1,2,2,0,6,3,3 ]. Thanks in advance for the answer.

Dear york0822 and Psi4 users,

Can I take the following space for the Cr2 molecule as active[2,1,0,0,0,1,1,1] and docc[7,1,2,2,0,6,3,3]
with the following input structure to get the CASSCF energy

molecule Cr {
Cr 1 1.465173
set {
scf_type out_of_core
basis cc-pVDZ
reference rhf
d_convergence 8
e_convergence 12
docc [7,1,2,2,0,6,3,3]
active [2,1,0,0,0,1,1,1]
mcscf_r_convergence 8
mcscf_e_convergence 10
mcscf_maxiter 150
mcscf_diis_start 35
cas_e, cas_wfn = energy(“CASSCF”, return_wfn=True)

Thanks for your answer.

  1. About the SCF DOCC, you can use the low energy one. PSI4 will guess a DOCC for you but that does not mean it is always optimal.
  2. SCF orbitals are just starting guesses for CASSCF, and therefore the DOCC does not matter that much in this case. You can always run UHF or MP2 natural orbitals to find better guesses.
  3. In principal you can use whatever active space you want. However not all of them chemically make sense. Cr2 has 12 valence orbitals so that doing a CAS(12,12) would make sense. Valence orbitals do not necessarily come close in energy and in fact they usually do not. Plotting them out with symmetry labels would visually help figure them out. Please checkout Roo’s guidance on choosing active orbitals using chemical intuitions.
  4. For Cr2, CASSCF curve is known to only very loosely bound at large bond distance and dynamical correlation is a must. There are tons of papers about Cr2 and a classic paper would be Roos and Andersson on level-shift CASPT2.
1 Like