Lab_MREOM

advertisement
Calculating excitation spectra using the MR-EOMCC approach.
Introduction.
The MR-EOMCC approach is a very recent new development in the Nooijen research
group. The aim is to calculate a large number of excitation energies for systems that
demand a multiconfigurational approach. In a nutshell, in MR-EOMCC we start from a
state-averaged CASSCF solution for typically a small number of low-lying electronic
states. Using knowledge of the state-averaged reduced one- and two-particle density
matrices we solve for two sets of cluster amplitudes,
1 ij ab
T̂ = t ai Êia + t ab
Eij
2
and
Ŝ = sai Eia + Saxij Eijam (excludei, j bothactive)
Here indices i, j refer to (partially) occupied orbitals, a, b are virtual labels, and m
indicates active orbitals. Upon solving for the cluster amplitudes (in two steps) a doubly
similarity transformed Hamiltonian is formed
{ }
G = eŜ
-1
ˆ
{ }
e- T ĤeT̂ eŜ
The details involve suitable truncations of the transformations to quadric terms and a
restriction of intermediates to two-body form using the Kutzelnigg-Mukherjee definition
of normal ordering for multireference states. In a final diagonalization step this
transformed Hamiltonian is diagonalized over a small set of configurations, the CAS, 1h,
1p, and 2h configurations is the smallest space that gives reasonable results. Inclusion of
1p-1h excitations can further improve accuracy but is significantly more expensive for
larger active spaces. The strength of the MR-EOMCC approach (it is denoted as MREOMCC-T|S-XD in full glory) is that one only has to solve for the state-averaged CASSCF
and cluster amplitudes once, while literally hundreds of excited states can be obtained
through a diagonalization over a compact subspace.
To wet your appetite let me include results for a calculation on the excited states of the Fe
atom. The system is small, but it exhibits the full complexity of multireference situations.
Table I: Excitation energies for the Fe atom (in eV). 1. NIST experimental J-averaged results.
2. MREOM: original MR-EOM approach using only single transformation T plus
diagonalization over up to 2h1p configuations. 3. DDCI: Same diagonalization as in
MREOM,but no T-transformation (use bare H). 4. MREOM-T|S-XD: Diagonalize doubly
transformed Hamiltonian over up to 1h-1p configurations. [adapted from O. Demel and M.
Nooijen, to be submitted to JCP]
5D
3 P2
3H
3 F2
3G
1I
3D
1 G2
1D
4s2
4s2
4s2
4s2
4s2
4s2
4s2
4s2
4s2
NIST - E0
0
2.3
2.3771
2.5306
2.9305
3.5843
3.5897
3.6446
4.2444
5F
3F
5P
3G
3P
3P
1G
3H
3D
1D
1H
4s1
4s1
4s1
4s1
4s1
4s1
4s1
4s1
4s1
4s1
4s1
0.8749
1.4883
2.1426
2.6713
2.789
2.9957
2.9969
3.2145
3.2224
3.4965
3.5232
MREOM
-0.1954
2.1743
2.3614
2.4444
2.9504
3.6490
3.5595
3.6079
4.1710
DDCI
-0.8609
1.8940
1.8093
2.4367
3.7229
3.1572
4.4552
4.0760
4.8377
T|S-XD
-0.0027
2.3422
2.4516
2.5928
2.9965
3.6862
3.6853
3.7288
4.3045
1.0427
1.6526
2.4026
2.8098
3.0222
3.1181
3.1972
3.4841
3.3896
3.6417
3.7928
1.6619
2.0375
3.1759
2.4081
3.9053
4.0716
3.3400
4.2596
3.2243
3.9055
4.6338
0.8719
1.4633
2.1588
2.6532
2.7791
2.9341
2.9574
3.1954
3.1851
3.4101
3.4955
If you look through the numbers you can see that the cheaper (MREOM-) T|S-XD method
gives excellent results. Excitations of 4s23d6 character are slightly higher than NIST (by
less than 0.1 eV), while excitations of 4s13d7 character are typically a tiny bit lower than
the NIST reference values. You may note for comparison the large errors of the DDCI
method (using the same limited diagonalization manifold as in MREOM), which can be
larger than 1 eV. This clearly demonstrates the effectiveness of the transformations in the
MR-EOMCC approach to include correlation effects.
The input file to run this calculation in ACES2 is as follows:
Fe atom mreom T|S-XD
Fe
*ACES2(BASIS=Def2-TZVPPD,CHARGE=2,REF=UHF,CALC=CCSD
MULT=7,DROPMO=1>5,DKH_ORDER=-1
SUBGROUP=D2
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,CC_MAXCYC=300
BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=3-1-1-1)
*mrcc_gen
closed_shell_calc=cas_ic_mrcc
mcscf_calc=none
*true_mrcc
read_mos=on
*datta_mrcc
precontract_Taa=off
datta_project=off
mreom_degen=on
….. (there is long list of additional keywords that can be thought of as defaults).
*gtci_final
include_hh=on
include_1h=on
include_1p=on
include_ph=on
include_phh=off
nele=8
nsymtype=6
multiplicity=6
553311
state_irrep=6
121212
states_per_symtype=6
3 4 16 19 18 15
*gtci
nele=8
nstates=15
multiplicity=15
555555555555555
state_irrep=15
111222233334444
state_weight=15
0.2 0.2 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.1 0.1 0.2 0.1 0.1 0.1
*end
I put the keywords that need to be carefully considered by the user in bold. The purpose
of these labs is to teach you how to figure out how to set these keywords. It will be a
challenge. Let’s see how far we get.
General overview of steps involved in MREOM calculations and outline of the labs.
Running MREOM calculations is a bit of a process. I like to think it is getting better as we
gain more experience with it. I will start this lab by discussing the general procedure. This
may be somewhat abstract at first reading, and you may want to return to it later (or
repeatedly), as you gain experience. I also indicate here additional options you may want
to try if things get complicated.
Let me indicate the systems we will consider in the lab.
1. Valence excitation spectrum of the Nitrogen atom. This involves a single state CASSCF
calculation. This is easy and no iteration of the steps below are needed.
2. Valence excitation spectrum of the Oxygen atom. To use a proper set of degenerate porbitals we start from O+ UHF orbitals, and proceed with a state-averaged CASSCF
calculation and state-averaged MR-EOMCC calculations. This requires only a slight
extension of the procedure followed for the N-atom calculation.
3.
4.
5.
6.
Excersises for you to do by analogy of the calculations on the N and O atoms:
Valence spectrum of C atom starting from the C2+ system using the QRHF-add option.
Ground state of the F atom starting from F- and using the QRHF-delete option to
create a suitable active space. These excersises illustrate the use of QRHF, and give
you practice in setting up the rest of the calculation once you have obtained suitable
CASSCF orbitals.
Low lying electronic states of the O2 molecule. Start from the triplet state. Use both a
minimal 2e in 2orb CAS space or the larger 6e in 4orb CAS.
Exercise: Consider the low-lying electronic states for the C2 molecule, starting from
the excited triplet state in the CAS. Include both the s and p orbitals in the active
space.
To be considered in a follow up lab: Iterative optimization of the active space.
7. Low lying electronic states of FeO: MREOM in full glory.
8. Excitation spectrum of the Fe atom. Using weights to define the state averaged CAS.
9. An examination of a spin-coupled system: Mn2O2. Still experimental, a work in
progress.
10. In a subsequent lab I will post notes on calculation excitation spectra for transitional
metal atoms (100’s of excited states) using an average of 4s13dn and 4s23dn-1
configurations in the CAS. The state-averaged CASSCF setup can be complicated, in
particular in relation to maintain spherical symmetry and degeneracy of the orbitals.
The calculation of MREOM excitation spectra consists of essentially the following steps:
A. Set up the active space and choose the appropriate set of reference states to do a
(typically) state-averaged CASSCF calculation to optimize the orbitals.
1. In all of the examples considered below we can more or less guess how many
orbitals we want to have in the active space. For a transition metal atom we want to
2.
3.
4.
5.
include 4s and 3d orbitals (6 orbitals total) and for other atoms we would like to
include the p orbitals (3 orbitals). For larger systems this is clearly not possible, and
we have to try to set things up in a different way. Often the best thing is to run some
calculations (of high spin, single determinantal type) to get insight in how to
proceed. Let me denote the number of active orbitals as norb.
We can count the number of electrons in the active space: the number of electrons
for the transition metal, and the number of p electrons from the other atoms (This
may/will depend on the number of active orbitals you include). Let me call this
number of active electrons nele. I then run a UHF calculation to get a very crude
estimate of the orbitals that, however, will obey the proper symmetry. This UHF
calculation can be somewhat artificial, regarding charge and spin multiplicity. I put
exactly one alpha electron in each active orbital, no beta electrons. Therefore the
multiplicity will be norb+1. The charge for this system will be (nele – norb)
(positive if nele > norb, I then need more electrons than norb to create the neutral
system). This calculation of a high spin system can use the single determinant
picture. We hope that spin contamination will be small. [Note: Sometimes it is more
suitable to run a high spin UHF calculation and add alpha orbitals (or remove
electrons from beta orbitals) to change the active space using the QRHF keywords. I
will try to put in an example of this.]. We will use the UNO_REF keyword to then
generate a set of “closed shell” orbitals.
Next run a so-called probe_CI calculation to look at the states of interest using the
UHF orbitals. This will be used to select the states in the CAS. Input files for example:
uhf_probe_5.in, uhf_probe_3.in. The number indicates the spin-multiplicity. In
these probe_CI (with read_mos=off) calculations we diagonalize the Hamiltonian
matrix over the active space and it gives an idea of the states that will be present,
and their symmetries. Here we will calculate states of the neutral (or the actual
system we are interested in). Both the UHF and probe_CI calculations are very fast,
and we should make sure things are proper (symmetry is obeyed). By examining the
output from the probe_CI calculations we can select low lying states of the proper
spin- and spatial symmetry. We take an ensemble of states, and try to have a bit of
an energy gap between the states that are included and those that are not. At this
stage the orbitals are very poor, and we may have to revisit this “state-selection”
step later on.
Perform the state-averaged CAS calculation for a well-chosen set of reference states
and optimize the orbitals for the system of interest (i.e. correct number nele). We
need to monitor the convergence of the CASSCF calculation, and inspect the output
(at final stage) to see that degeneracy patterns are observed. We will also want to
check the populations of the active orbitals (to be explained below).
Since the orbitals after the CASSCF orbital optimization can be very different (due to
the artificial charge in the initial UHF) we need to rerun the probe calculations for
all multiplicities of interest. Examine the output, and check and possibly adjust the
number of states we wish to include in the state-averaged CASSCF calculation. This
can lead to an iterative process. I often have mcscf_a, mcscf_b, mcscf_c
calculations in which I gradually improve the choice of states included in the
average. For each calculation I obtain a set of MCSCF MOS, that is called
mcscf_a.mcscf_mos for example. The program automatically copies the latest MO’s
to the file mcscf_mos, and it uses this as an initial guess for the next calculation (if
read_mos=on, see later). If you ran a calculation that you do not like, you should
copy a set of of older mos that were better (e.g. from mcscf_a.mcscf_mos) to the
mcscf_mos file. Then continue finding a proper set of states/orbitals.
6. Using the converged CASSCF orbitals we can do a trial MREOM calculation
(mreom_try.in). In this calculation we only ask for a few states. The set of reference
states (in the *gtci namelist) is the same as in the prior CASSCF calculation. The
main purpose is to see if the so-called T- and S-amplitudes in the MREOM
calculation converge well, and are not too big (smaller than 0.1 ideally). It will give
us an indication if the results will be OK. Also we will check the final converged
states from the final CI step in the MREOM calculation. We want to make sure that
the %active is large enough (> 90%, preferably > 95%). We should make sure that
we are happy with the setup of the calculation up to this point. Everything up to this
point runs pretty fast (i.e. less than an hour). It can easily happen that things are not
so good after our first MREOM calculation. Sometimes we should go back to the
MCSCF stage, and try to choose a different set of states to include in the ensemble
(plus reoptimize orbitals). There are also some options to reduce the magnitude of
the T-amplitudes (datta_project=on uses a perturbative estimate for the
troublesome amplitudes, and precontract_Taa=on, use a so-call precontracted set
of ppmm excitations. These options are to be discussed below).
B. Setting up the final set of MREOM calculations.
7. We first run (very cheap) probe_CI calcuations for the various spin-multiplicities of
interest: probe_7.in, probe_5.in, probe_3.in, probe_1.in for an even number of
electrons in the active space. If we have an odd number of electrons the
multiplicities would be 2, 4, 6 and so forth. In these calculations we diagonalize the
Hamiltonian matrix over the active space. The results are not accurate, but it gives
an idea of the states that will be present, and their symmetries.
8. From inspecting the probe_* outputs we identify how many states to include in the
final diagonalization, by comparing energies. It is very important to select complete
multiplets, as this is used to assign states. Also if symmetry blocks are identical, you
only have to select one of them in the final CI calculation (note: this is not true in
CASSCF. You have to select all states to be included, otherwise the orbitals will break
symmetry). Once we have decided which states to include we run the cheapest
version of the MREOM method to calculate all the states. This calculation is done
using the T|S version of MREOM, and we select include_ph=off in the input file
(*gtci_final namelist). I call this the mreom_final_noph.in calculation. From this
calculation you get an idea of the dimensions of the final CI involved and the
excitation spectrum (it is often quite good already). We can next run a subsequent
MREOM calculation in which we include the ph excitations (include_ph=on). It may
be appropriate to further cut down on states of interest, in particular for low-spin
states as the CI dimenssion can become rather large, and either the calculations
would take very long, or they bomb as insufficient memory is available. You can
increase the memory by setting MEM=3GB (e.g.) in the *ACES2 namelist. But the CI
dimension is nasty. It can really explode beyond all reason.
C. Final variations of MREOM calculations (not done in these labs, but it can be of interest
in the research projects).
9. There are many variations of MREOM and since this is research in progress it can be
of interest to investigate various possibilities, with the aim to compare and
benchmark results. From the best MREOM calculation we extract a file
mreom_sample.in. This is a protoptype file, and we can run a python script to create
all other input files from this file. The various inputs produced by the python script
only differ in the *datta_mrcc keyword section. Use “python create_inputs_all.py
mreom-sample.in”. All calculations then calculate the same number of states.
10. Once we have created the input files, we can submit a string of calculations that will
run simultaneously on the nlogn computer. These scripts require job_*, submit_*,
and jobsubmit_all from the parent directory.
11. Once the calculations finish we are ready to collect results, and make comparison
between methods and to experimental values. Again scripts are available in the
Nooijen group to extract the relevant data from the output and to assemble things in
a nice table.
12. Another possibility is that we are interested in potential energy surfaces. We only
need to do the hard work of setting up the calculations once (hopefully!) and then
repeat the calculations for a number of geometries. Much of the work (submitting
calculations, extracting data) can be done using python scripts. We have a number of
them, and taking them as a template they can be adjusted for the particular task of
interest. Let the computer take over as many routine jobs as possible. They are
much better at it than we are, and, apparently, don’t get bored by it!
List of MREOM standard input files:
In the ~nooijen/Chem440/MREOM_inputs directory on both chem440-2 and on
nlogn I am posting a number of standard input files related to MREOM calculations.
They will contain the basic keywords, with sensible default values. In comments in
the file I indicate the keywords that will require adjustments at times. Since the
MREOM approach is still in very active development the automatic defaults are not
so good (for technical reasons involving ongoing benchmarks), and many keywords
have to be specified. This is annoying, and I would suggest to copy an appropriate
input file, and then adjusts molecular parameters accordingly. Here is the set of
standard input files with a brief description of their contents.
-
-
uhf.in : Standard uhf calculation. For TM atoms I often use the keyword
DKH_ORDER=-1, which specifies a scalar relativistic kinetic energy of the type
p2
T̂ = p 2 c2 + m 2 c 4 - mc2 =
m + p 2 / c2 + m 2
uhf_probe_4.in : A probe_ci calculation, starting from “poor” UHF orbitals to
get an idea of the symmetries of low-lying states.
-
mcscf_single.in : A CASSCF calculation using a single state
mcscf_avg.in : A CASSCF calculation using a state averaged CAS
mcscf_weighted.in : A CASSCF calculation with different weights for different
states. The *gtci namelist can be used like this in other calculations.
mcscf_qrhf_add.in: Providing an active space by adding extra (alpha)
orbitals to a UHF (or RHF) calculation. Expanding the active space by virtual
orbitals.
mcscf_qrhf_delete.in: Providing an active space by deleting (beta) orbitals
from a UHF (or RHF) calculation. Expanding the active space by doubly
occupied orbitals.
-
probe_4.in : A probe_CI calculation, starting from converged MCSCF orbitals
to get an idea of the zeroth-order CASCI ground and excited states.
-
mreom_try.in : A trial mreom calculation with the purpose to check the
maximum absolute values of the ai, aaii, and amii cluster amplitudes. Ideally
they should be small (less than 0.15). Calculate a small number of excited
states only. Set include_ph=off in *gtci_final namelist to make calculations
fast. Use high-spin states preferably as calculations run faster. A second thing
to check is the %active in the final summary of the calculation. The %active
values ideally should be larger than 95% (certainly greater than 90%). If the
mreom_try calculation is not satisfactory you can:
o Adjust the active space, or in particular include more/less states in the
state-averaged CASSCF calculation.
o Include precontract_Taa=on and/or datta_project=on. The options
may yield smaller t-amplitudes and/or improved convergence. They
introduce approximations for the so-call 2p or aamm amplitudes,
which are often the source of convergence issues, or they are the large
amplitudes. These options need more benchmarking.
-
mreom_bruk.in : If t1 (i.e. ai amplitudes in the first “solve ai aaii sector”)
amplitudes are large, or one has a large %1h character in the final MREOM
states (see analyse wavefunction in the output), one may attempt to optimize
the orbitals in presence of dynamical correlation, using a so-called Brueckner
calculation. I had only marginal success with this approach thus far. Often it
seems better to adjust the number of states in state-averaged CAS.
-
mreom_final.in: The final mreom calculation, asking potentially for many
excited states. At this stage the calculations can become expensive. Often here
one may set the keyword include_ph=on to get results of optimal accuracy. At
this stage one may also attempt variations of MREOM, to monitor variations of
results (in particular in benchmark studies).
Laboratory excersises and detailed examples.
By far the hardest part of the calculation is step A: Choosing a proper set of
reference states, and optimizing the orbitals for the reference state. I will go through
some examples to see how we go about this. Let us get started!
1. A simple example: Calculating excitation spectrum of the N atom.
First run a UHF calculation, specifying the quartet (mult=4) state (2p3 high spin
configuration):
N atom
N
*ACES2(CALC=SCF,REF=UHF,BASIS=Def2-TZVPPD,MULT=4
SUBGROUP=D2)
We use the Def2-TZVPPD basis set for all of our atomic calculations (for now). Also
it is convenient to set the subgroup to D2. This will give us an easy classification of
the computational irreps: energies in blocks 2, 3 and 4 will always be the same (if
spherical symmetry is obeyed). We will do this in all our atomic calculations.
The orbital energies you get are as follows (see listing below. To see it in the
uhf.out0 file, search for ++++).
ORBITAL EIGENVALUES (ALPHA) (1H = 27.2113957 eV)
MO #
E(hartree)
E(eV)
FULLSYM COMPSYM
---- -------------------- -------------------- ------- --------1 1
-15.6708161759
-426.4247799037 XXXX
XXXX (1)
2 2
-1.1625109435
-31.6335452889 XXXX
XXXX (1)
3 22
-0.5707246044
-15.5302130471 T1u
B1 (3)
4 14
-0.5707246044
-15.5302130471 T1u
B2 (2)
5 30
-0.5707246044
-15.5302130471 T1u
B3 (4)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6 3
0.1182425012
3.2175434887 XXXX
XXXX (1)
7 31
0.3945376595
10.7359203724 ------- (4)
8 15
0.3945376595
10.7359203724 ------- (2)
9 23
0.3945376595
10.7359203724 ------- (3)
10 4
0.3945376595
10.7359203724 ------- (1)
11 5
0.3945376595
10.7359203724 ------- (1)
12 32
0.4466929847
12.1551395640 T1u
B3 (4)
13 16
0.4466929847
12.1551395640 T1u
B2 (2)
14 24
0.4466929847
12.1551395640 T1u
B1 (3)
15 6
0.6222027386
16.9310049270 XXXX
XXXX (1)
You see that ACES has troubles giving proper names to the irreps! You can easily
deduce the character of the orbitals, however, from the degeneracy pattern of the
orbital energies. We then see that s-orbitals have symmetry label 1, while p-orbitals
get symmetry labels 2, 3, 4. The d-orbitals have symmetries 1, 1, 2, 3 ,4. This will
always be the case if set subgroup=D2. From the symmetry labels alone we cannot
tell what type of orbital it is. We have to use the degeneracy pattern.
It is also of interest to note the final occupancy of the orbitals (per symmetry). In the
SCF section look for the latest occurrence of the population by irrep output
(sometimes it occurs twice, if it changed from the initial guess by the program)
Alpha population by irrep: 2
Beta population by irrep: 2
1
0
1
0
1
0
Also inspect the spin contamination in the UHF calculation.
The average multiplicity is 4.0039551
The expectation value of S**2 is 3.7579140
We want the spin contamination (deviation from the true multiplicity of mult=4) to
be small. If it is not, and in particular if the degeneracy pattern of the orbitals is not
right, the program (or you) did something wrong. Here all is good.
Now let us try to find the corresponding MCSCF state. We will have to determine the
symmetry block of the reference states. To this end we can run a probe_ci
calculation. I am not further optimizing the orbitals, but take the UHF based orbitals
and run a full CI calculation in the active space, first calculating all quartet spin
states. Here is the input (uhf_probe_4.in) to do this:
PROBE_CI INPUT FILE.
N atom cas
N
*ACES2(BASIS=Def2-TZVPPD,REF=UHF
MULT=4,SUBGROUP=D2,CHARGE=0,
CALC=CCSD,DROPMO=1
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
*mrcc_gen
closed_shell_calc=ccsd
mcscf_calc=gtci
*mcscf_info
read_mos=off
probeci=on
*gtci
nele=3
probe_states=5
probe_multi=4
probe_irrep=0
*end
Let us go through the input, first *ACES2 namelist. I put in the keywords that you
should use in general for such a Probe_CI calculation. Many of these keywords are
the same for any molecule or atom. I highlighted the keywords that require special
consideration for each system. The first two lines of input specify the original UHF
calculation. The third line tells the program to drop the 1s orbital, and setting
CALC=CCSD sets up a number of default parameter correctly in ACES2 (there is
nothing “CCSD” about the calculation of course, but you need the keyword anyway
for the convenience of the programmer). The UNO_REF, UNO_MULT,
UNO_CHARGE, MAKERHF and BRUECKNER keyword tells the program to use
the UHF orbitals but to create equal alpha and beta orbitals from these (using some
averaging procedure). These keywords always occur if the initial calculation is UHF.
The value for UNO_CHARGE indicates the total charge on the atom. Here we want
to calculate the neutral (UNO_CHARGE=0). All the other keywords in the *ACES2
namelist will always be the same, the only thing that can vary is the values for the
IP_SYM keyword, here 0-1-1-1. This indicates the symmetries and numbers of the
active orbitals. This keyword follows the UHF population keyword: it is precisely the
difference between the alpha and beta populations. This is special if we choose the
UHF calculation such that all active orbitals are exactly occupied with exactly one
alpha electron in the UHF. This is not always true, but it is often a convenient way to
run the calculations. We will start with this setup, and at the end of these notes (in
the examples) I will list some other possibilities. The keyword IP_SYM is a funny
name for what really are the active orbitals. This was hooked up in the code from
prior things that went through this keyword, so history (convenience for the
programmer rather than user) is again responsible.
The *mrcc_gen etc. keywords are again always to be included in probe_ci and
CASSCF calculations (see later). Here read_mos=off indicates the program uses the
UHF (UNO_REF) orbitals, while probe_ci=on indicates we do the probe_ci
calculation. For future usage: we will use read_mos=on if we want to read in
previously calculated MO’s (e.g. from a prior CASSCF calculation).
In the *gtci namelist important information is provided:
- nele=3: The number of electrons in the active space (2px+2py+2pz= 3 ele)
- probe_multi=4: This indicates we will calculate states with spin
multiplicity 4.
- probe_irrep=0: This indicates we calculate states of any spatial symmetry.
That is what 0 means. probe_irrep=1, 2, 3 or 4 would mean calculate only
states of this particular symmetry.
- probe_states=5: This tells the program to calculate 5 states in every
symmetry block. This is overkill. There is only one quartet state. Often the
user would not know how many states there would be (there could be
hundreds). The user selects how many states are to be calculated and how
many energies are to be printed. The goal of this calculation is to tell us
what the symmetry of the quartet S state is, i.e., what is the symmetry
block? Can you guess? No need, we can just calculate it.
Let us look at the relevant part of the output (search for Summary near the end):
************************************************************************************
*
Summary of MCSCF probe-CI: energy of states by irrep
*
************************************************************************************
state
irrep
irrep
irrep
irrep
1
2
3
4
************************************************************************************
1
-2.4399218 unavailable unavailable unavailable
2
unavailable unavailable unavailable unavailable
3
unavailable unavailable unavailable unavailable
4
unavailable unavailable unavailable unavailable
5
unavailable unavailable unavailable unavailable
************************************************************************************
You can see, the program lists only one energy, in symmetry block 1. No other
states are possible, and the program says unavailable.
From the information obtained from the uhf_probe_* calculations we have gained
the information needed to set up the CASSCF calculation based on the ground state
4S of the N atom.
MCSCF input file for a single state (i. e. not a state-averaged calculation).
N atom mcscf
N
*ACES2(BASIS=Def2-TZVPPD,REF=UHF,CALC=CCSD
MULT=4,SUBGROUP=D2,CHARGE=0
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
*mrcc_gen
closed_shell_calc=cas_ic_mrcc
mcscf_calc=gtci
*mcscf_info
read_mos=off
bruk_conv=7
*gtci
nele=3
nstates=1
multiplicity=4
state_irrep=1
*end
The *ACES2 input is the same as before. The rest of the input is new. The keyword
mcscf_calc=gtci indicates we will run the “general tiled CI (gtci) program to do an
mcscf (i.e. CASSCF) calculation. In mcscf_info, we say bruk_conv=7. This will
converge the orbitals to 10^-7. I also put read_mos=off (the default value), for future
use, when we may want to read in a prior set of orbitals. In *gtci I now list the states
I want to optimize. There are several ways to set this up. If one uses only one state
(nstates=1), the keywords multiplicity and state_irrep specify the spin (quartet) and
symmetry of the state, while nele=3 is the number of active electrons. In a later
example I will indicate other possibilities that allow the specification of multiple
states in a state-averaged CASSCF calculation. In the joball script we use “jobaces
mcscf mrcc” . This tells the script to copy the converged MCSCF molecular orbital in
the file mcscf_mos to the input directory. The option ‘mrcc’ at the end tells the
script to do this. In all subsequent calculations, when we want to read in mcscf_mos
or write mcscf_mos we always put in the mrcc addition to the jobaces script.
Let me explain a general way that is most compact if we are considering many
states. First nele=6 indicates there are 6 active electrons. The keyword nsymtype=5
indicates there are 5 different kind of states of separate spin and abelian
(computational) symmetry. Then we list the spin-multiplicity of each symmetry
type, and the symmetry block for each symmetry type. Finally we list the number of
states to include in each symmetry type. You can see that in this way we precisely
define the 7S (mult=7,irrep=1), 5S (mult=5,irrep=1), and 5D states (mult=5,
irrep=1,1,2,3,4). If we submit the calculation the program tries to optimize the
orbitals, such that the average energy over all these states is minimal.
Let us analyse the output of the CASSCF calculation. To check the convergence of the
calculation it is useful to do a grep:
grep -a "MCSCF total" mcscf.out0
First Brueckner residual : 0.722E-02 iteration
First Brueckner residual : 0.432E-03 iteration
Max Brueckner residual : 0.848E-04 iteration
Max Brueckner residual : 0.170E-04 iteration
Max Brueckner residual : 0.667E-05 iteration
Max Brueckner residual : 0.535E-05 iteration
Max Brueckner residual : 0.154E-05 iteration
Max Brueckner residual : 0.388E-06 iteration
Max Brueckner residual : 0.100E-06 iteration
Max Brueckner residual : 0.306E-07 iteration
1
1
2
3
4
5
6
7
8
9
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
MCSCF total energy :
-54.3989510958
-54.3991800303
-54.3991809971
-54.3991810196
-54.3991810208
-54.3991810209
-54.3991810210
-54.3991810210
-54.3991810210
-54.3991810210
The residual shows the calculation is converging, and you can also monitor how the
(average) energy is going down in each cycle. Here we have pretty good initial
orbitals. That is not always the case!
Other things which are useful to look at are the energy levels of the individual states.
You can look at this at the beginning of the iteration (search forward for summary):
******************************************************************************************************
*
Summary of CASSCF/CASCI calculation
*
******************************************************************************************************
Serial 2S+1 2*Sz irrep iroot E_Excite/eV E_Excite/cm-1 Residual Overlap Select
E-total
******************************************************************************************************
1
2
3
4
5
6
7
7
5
5
5
5
5
5
6
4
4
4
4
4
4
[1]
[1]
[1]
[4]
[2]
[3]
[1]
1
1
2
1
1
1
3
0.0000
1.3262
3.3306
3.3306
3.3306
3.3306
3.3306
0.00
10696.52
26863.14
26863.14
26863.14
26863.14
26863.14
0.00E+00
0.42E-14
0.53E-14
0.33E-14
0.60E-14
0.36E-14
0.33E-14
1.000
1.000
1.000
1.000
1.000
1.000
1.000
T
T
T
T
T
T
T
-1043.3344214841
-1043.2856845320
-1043.2120240148
-1043.2120240147
-1043.2120240147
-1043.2120240145
-1043.2120240145
******************************************************************************************************
You should also inspect the result at the end of the procedure (search backwards for
summary from the end):
******************************************************************************************************
*
Summary of CASSCF/CASCI calculation
*
******************************************************************************************************
Serial 2S+1 2*Sz irrep iroot E_Excite/eV E_Excite/cm-1 Residual Overlap Select
E-total
******************************************************************************************************
1
2
3
4
5
6
7
7
5
5
5
5
5
5
6
4
4
4
4
4
4
[1]
[1]
[1]
[3]
[4]
[2]
[1]
1
1
2
1
1
1
3
0.0000
0.3199
0.3199
0.3199
0.3199
0.3199
1.1934
0.00 0.00E+00 1.000 T -1043.2920588167
2580.15 0.18E-14 1.000 T -1043.2803027887
2580.15 0.14E-14 1.000 T -1043.2803027887
2580.15 0.27E-14 1.000 T -1043.2803027887
2580.15 0.36E-14 1.000 T -1043.2803027887
2580.15 0.18E-14 1.000 T -1043.2803027887
9625.66 0.49E-14 1.000 T -1043.2482010616
******************************************************************************************************
You can see how the energy levels are shifted around. Also the total energy is lower than in the
beginning (of course). You may note that at this stage the energy ordering is no longer consistent
with experiment (NIST)! It is very important that in the CASSCF calculation you obtain the proper
degeneracy pattern. This indicates the spherical symmetry of the atom is preserved. This can
lead to non-trivial issues, and you may have to tweak the CASSCF input.
The other thing you will always want to inspect are the natural occupation numbers at the end of
the calculation. Here they are:
Analysis of one-particle density matrix
------------------------------------------natural occupation in irrep
column 1
1
row 1
1.71352820715
row 2
0.85729435857
row 3
0.85729435857
Natural orbitals in H0 basis
column 1
column 2
column 3
row 1
1.00000000000 0.00000000589 -0.00000000699
row 2
0.00000000900 -0.50439821204 0.86347115973
row 3 -0.00000000156 0.86347115973 0.50439821204
natural occupation in irrep
2
column 1
row 1
0.85729435857
Natural orbitals in H0 basis
column 1
row 1
1.00000000000
natural occupation in irrep
3
column 1
row 1
0.85729435857
Natural orbitals in H0 basis
column 1
row 1
1.00000000000
natural occupation in irrep
4
column 1
row 1
0.85729435857
Natural orbitals in H0 basis
row 1
column 1
1.00000000000
Here we see that the 4s orbital (in block 1) has an average occupation of
1.71352820715, while the 3d orbitals in blocks (1,1,2,3,4) all have the same
occupation of 0.85729435857. This degeneracy is important, and reflects the
spherical symmetry of the atom. Let me note that this pattern can easily be broken,
and this would then indicate that the calculation is no good for our purpose.
Now we are ready to finish part A of the calculation, setting up the proper active
space and (state-averaged) CAS calculation. The final step is an MREOM calculation,
but of only the lowest states, typically precisely the same as used in the (stateaveraged) CASSCF. Here is the input for the mreom_try.in calculation (it is scary!):
N atom
N
*ACES2(BASIS=Def2-TZVPPD,REF=UHF,CALC=CCSD
MULT=4,SUBGROUP=D2,DROPMO=1,
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
CC_MAXCYC=500
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
*mrcc_gen
closed_shell_calc=cas_ic_mrcc
mcscf_calc=none
aaii_shift=0.2
ai_shift=0.2
amii_shift=0.2
*true_mrcc
read_mos=on
*datta_mrcc
datta_project=off
precontract_Taa=off
mreom_degen=on
project_amii_d=off
project_amii_x=off
project_amii_a=off
datta_include_U=off
datta_separate_TS=on
datta_T_only=off
demel_ic_MRCC=on
full_ic_MRCC=on
datta_exclude_S_one_active=off
datta_exclude_S_all_active=on
datta_exclude_S_d_active=off
final_ic_mrcis=on
*gtci_final
include_hh=on
include_1h=on
include_1p=on
include_phh=off
include_ph=on
nele=3
nstates=1
multiplicity=4
state_irrep=1
*gtci
nele=3
nstates=1
multiplicity=4
state_irrep=1
*end
This is a very long input file. Fortunately most of the keywords are standard
and you will not have to change them. However, they are different from the default
settings in the program, so we have to specify values for the keywords (just copy the
input file). In due time, I will change these defaults, but the right settings are still in
flux. Let us break this input down into pieces. The *ACES2 namelist is the same as
before, except that it includes CC_MAXCYC=500. This increases the number of
iterations in the CC step, which is not necessary for the N atom, but I suggest putting
the keyword in, as sometimes it is necessary, and it simply annoying if the program
aborts prematurely. Otherwise the *ACES2 namelist is the same as in CASSCF or
PROBE-CI calculations.
Then there are a whole bunch of keywords, which are just used to set up a
MREOM-T|S-XD calculation, as it is officially called. This appears to be the current
best version of the MREOM method. These keywords do not need to concern us. You
should just copy them from a prior calculation or standard mreom_try.in calculation
(in the MREOM_standard_inputs directory). At the end of the input there is the *gtci
block of information. This is exactly the same as in the state-averaged CASSCF. This
is the definition of the reference manifold. I put the keywords in bold as you will
have to provide the information for each molecule. The really new info that one has
to pay attention to is the *gtci_final keyword. Here we list the states we want to
include in the final calculation. In the mreom_try.in phase of the calculation we are
only interested in the reference states (more or less), and we want to see how the
calculation will behave. From “nele=3” onwards I simply repeat the input from the
*gtci namelist. In the mreom_try phase these can be (often are) the same.
There is an important difference between the states in *gtci that define the
reference manifold, and the states in gtci_final. In *gtci we calculate averaged
density matrices, and I need all degenerate states to ensure the density has spherical
symmetry. Moreover, as you may have noticed all these calculations are very cheap
(seconds). This is not true when we get to the *final_gtci stage. It is very expensive
to calculate all states, and moreover we don’t gain anything by calculating them. We
can do the energy analysis, by just assuming blocks 3 and 4 are the same as block 2.
For each state in block 2, we really have 3 states. That allows us to assign
degeneracies, and hence symmetry labels.
If we run the calculation mreom_try.in that finalizes the first stage of the calculation
(setup of CASSCF orbital and reference states), we need to check a number of things.
The most important duty is that we check that the CC amplitudes (or transformation
amplitudes) are small. If you search in the output file for T-amplitudes (or T-am),
you will see:
Maximum t-amplitudes:
0.00760
0.05486
@demel_full_ic_mrcc : ai&aaii iteration
Maximum residuals 0.736E-07 0.747E-07
0.00000
0.00000
14
0.000E+00
IC_MRCC(demel) T1+T2 convergence reached in cycle
T-amplitudes from ai&aaii sector
0.00000
0.000E+00
14 Max Residual
0.000E+00
0.7363E-07
Single excitation coefficients
a [irrep] i [irrep]
1
4
7
[1],
[1],
[1],
……
-1
-1
-1
[1] ;
[1] ;
[1] ;
0.002950
-0.001272
-0.002176
Just above this line containing T-amplitudes, the program says if it has reached
convergence. Moreover, and most importantly, it prints out the Maximum tamplitudes it encounters. In this part of the output this involves the single
excitations (ai or 1p1h sector), with a value of 0.00760, and the double excitations,
(the aaii, or 2p2h sector) with a maximum amplitude of 0.05486. If the amplitudes
are large (> 0.1 or 0.15 perhaps, or if the calculation takes more than 50 cycles to
converge (here 13), there may be something wrong in your selection of the active
space, and you may have to return to the CASSCF part of the calculation. There is
also the distinct possibility that your choice of active space is fine. If you think it is
fine (more later on how to decide on this), then you might try rerunning the
calculation switching on
datta_project=on/off
precontract_Taa=on/off
I usually first try switching precontract_Taa=on, if that also doesn’t work (large
amplitudes, convergence trouble), one can use datta_project=on. Both of these
schemes make some further approximations that often help convergence. No
guarantees however.
After solving the ai and aaii amplitude equations, the program continues to solve for
a second set of amplitudes involving the so-called ai and amii sectors. If you search
for T-amplitudes again, you will see:
Maximum t-amplitudes:
0.00447
0.05486
@demel_full_ic_mrcc : ai&amii iteration
Maximum residuals 0.860E-07 0.000E+00
0.00000
12
0.000E+00
IC_MRCC(demel) T+S convergence reached in cycle
T-amplitudes after ai&amii sector
0.06978
0.00000
0.172E-07
12 Max Residual
0.000E+00
0.8597E-07
Single excitation coefficients
a [irrep] i [irrep]
1
4
7
[1],
[1],
[1],
….
-1
-1
-1
[1] ;
[1] ;
[1] ;
0.002912
-0.000573
-0.000578
Thus far I have never experienced any convergence / large amplitude issues with
this part of the calculation. It tends to converge well. You can check the maximum of
all amplitudes now, ai -> 0.0047, aaii -> 0.05486, while amii -> 0.06978. That all
looks good.
There is one more thing to look at. Near the end of the output you can find
******************************************************************************************************
*
Summary of pIC-MRCC/MR-EOMCC calculation
*
******************************************************************************************************
Serial 2S+1 2*Sz irrep iroot E_Excite/eV E_Excite/cm-1 Residual Overlap %Active E-total
******************************************************************************************************
1
4
3
[1]
1
0.0000
0.00
0.54E-06 1.000
100.0% -54.5146969839
******************************************************************************************************
This is the final result of our initial set of calculations. It lists the character of the
state (multiplicity (2S+1), 2*Sz value, the symmetry of the state, between brackets,
[1] here, and the root # in the symmetry block (1 here). In the mreom_try
calculation you want to check up on the %active (100 % here). This is not always
the case. Ideally we want it to be over 95% (certainly over 90%) for all states
include in the gtci_final section. If this is not the case you will have to enlarge the
active space, and go back to the beginning where you set up the CAS. But here, for
this simple case everything is fine. We can now go on to calculate the final excitation
spectrum.
Part B: Selecting the states for the final MREOM calculations.
First we do probe CI calculations. The purpose of these calculations is to find the
multiplets of interest. From the NIST data table (or by inspection) we see we can get
states of even multiplicity: 4 or 2 for the N atom. Let us investigate the symmetries
of the low-lying states that can be obtained from the CAS diagonalization. I am
running calculation probe_2.in ‘to’ probe_4.in. Here is the input file for probe_2.in:
N atom cas
N
*ACES2(BASIS=Def2-TZVPPD,REF=UHF,CALC=CCSD
MULT=4,SUBGROUP=D2,DROPMO=1
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
*mrcc_gen
closed_shell_calc=ccsd
mcscf_calc=gtci
*mcscf_info
read_mos=on
probeci=on
*gtci
nele=3
probe_states=10
probe_multi=2
probe_irrep=0
*end
It is similar to the previous uhf_probe_4.in with minor changes. First, I now read in
the converged CASSCF orbitals (keyword read_mos=on, very important). And in *gtci
I ask for 10 states with multiplicity 2. 10 is just a guess. Probably this is more states
than I really want. You can ask for plenty, because the calculations are very cheap
(seconds). In the joball script we use “jobaces probe_2 mrcc” . This tells the script
to copy the (latest) mcscf_mos from the input directory, which has the orbitals of
interest. The ‘mrcc’ at the end tells the script to do this. If you forgot to include it, the
calculation will die, saying it couldn’t find MCSCF_MOS or MRCC_MOS to read in.
Let us look at the output section in probe_2.out0:
*********************************************************************************************************
*
Summary of MCSCF probe-CI: energy of states by irrep
*
**********************************************************************************************************
state
irrep
irrep
irrep
irrep
1
2
3
4
**********************************************************************************************************
1
-2.3085545
-2.3085545
-2.3085545
-2.3085545
2
-2.3085545
-2.2376191
-2.2376191
-2.2376191
3
unavailable unavailable unavailable unavailable
4
unavailable unavailable unavailable unavailable
……..
This gives me an overview of “all” the low-lying singlet states of valence type (i.e.
within the active space). As you see there is the 5-fold degenerate 2D state with
symmetries 1, 1, 2, 3, 4, and a 3-fold degenerate 2P state with symmetry blocks 2, 3,
4.
The outputs from probe_2 to probe_4 allows us to set up a reasonable input file for
the mreom_final.in calculation. Here we simply include all valence excited states.
The input file is exactly the same as in the mreom_try.in calculation, except for the
gtci_final section:
*gtci_final
include_hh=on
include_1h=on
include_1p=on
include_ph=on
include_phh=off
nele=3
nsymtype=5
multiplicity=5
42222
state_irrep=5
11234
states_per_symtype=5
12222
Here nsymtype=5 indicates we will calculate states of 5 different symmetry types.
We first read in the spin multiplicities of the symmetry types: 4, 2, 2, 2, 2 . Then we
read in the spatial symmetry block for each symmetry-type, 1, 1, 2, 3, 4. Finally we
state how many states we will calculate in every symmetry block. Here I use the
output from the probe_CI calculation to determine the number of states and select 1
2 2 2 2. This input using nsymtype can be used both in the *gtci and *gtci_final
namelists. It is often a compact way to describe a large number of states. It can also
be used in state-averaged CASSCF calculations, provided the weights of all included
states are equal. We will see examples later on.
The relevant output of the mreom_final calculation is contained in the summary:
******************************************************************************************************
*
Summary of pIC-MRCC/MR-EOMCC calculation
*
******************************************************************************************************
Serial 2S+1 2*Sz irrep iroot E_Excite/eV E_Excite/cm-1
Residual Overlap %Active
E-total
******************************************************************************************************
1
2
3
4
5
6
7
8
9
4
2
2
2
2
2
2
2
2
3
1
1
1
1
1
1
1
1
[1]
[1]
[1]
[2]
[3]
[4]
[2]
[3]
[4]
1
1
2
1
1
1
2
2
2
0.0000
2.3841
2.3841
2.3841
2.3841
2.3841
3.5858
3.5858
3.5858
0.00
19229.34
19229.34
19229.34
19229.34
19229.34
28921.41
28921.41
28921.41
0.13E-06
0.92E-05
0.92E-05
0.92E-05
0.92E-05
0.92E-05
0.79E-05
0.79E-05
0.79E-05
1.000 100.0%
0.997 99.5%
0.997 99.5%
0.997 99.5%
0.997 99.5%
0.997 99.5%
0.995 98.9%
0.995 98.9%
0.995 98.9%
-54.5146970076
-54.4270816680
-54.4270816680
-54.4270816680
-54.4270816680
-54.4270816680
-54.3829213759
-54.3829213759
-54.3829213759
******************************************************************************************************
Here we find the 4S state (1 energy), the 2D multiplet (5 degenerate energies) and
the 2P multiplet (3 degenerate energies). Let us compare to atomic excitation levels
from the NIST atomic spectra database website (go to Levels). If you locate the N I
levels (the I here indicates the neutral) you see for the lowest levels:
Configuration
Term
J
2s22p3
4S°
3/2
0.000000
2s22p3
2D°
5/2
2.3835296
3/2
2.3846099
1/2
3.5755702
3/2
3.5756180
2s22p3
2P°
Level
(eV)
Reference
L7288
This compares very well with our calculated results (wish that was true always!). In
the experimental data you see the splitting due to spin-orbit coupling which is not
included in our calculations. The quantum number J takes the values from
J =| L - S |, | L - S | +1, ..., L + S
To compare to our results we should evaluate the average over the various J-values
in one L, S multiplet. This splitting can be more significant for heavier atoms.
State averaged CASSCF calculation on the valence excited states of the Oxygen
atom.
The ground state of the oxygen atom is 3P, this means it is has a three-fold
degenerate spatial symmetry (in addition to the 3-fold degeneracy in the spin
variable). In our current MREOM calculations we always calculate only the highest
Ms value of a spin multiplet. However the spatial symmetry has to be treated
carefully in order to preserve the proper symmetry of the orbitals and states. We
will always want to include complete spatial multiplets in the CASSCF and CC part of
the MREOM method. The first requirement is to define nicely degenerate orbitals in
the uhf_probe_CI calculation. This we accomplish by performing the UHF calculation
on the O+ system, which is isoelectronic with the N atom. We are interested in triplet
states. Here is the probe_CI input file:
O atom cas
O
*ACES2(BASIS=Def2-TZVPPD,REF=UHF,CALC=CCSD
MULT=4,CHARGE=1
SUBGROUP=D2
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
*mrcc_gen
closed_shell_calc=ccsd
mcscf_calc=gtci
*mcscf_info
read_mos=off
probeci=on
*gtci
nele=4
probe_states=5
probe_multi=3
probe_irrep=0
*end
The summary section of the output file reads
*********************************************************************************************************
*
Summary of MCSCF probe-CI: energy of states by irrep
*******************************************************************************************************
state
irrep
irrep
irrep
irrep
1
2
3
4
****************************************************************************************************
1
unavailable
-1.7003508
-1.7003508
-1.7003508
2
unavailable unavailable unavailable unavailable
This shows the 3 components of the P state can be found in irreps 2, 3, 4. Now we
can set up the state averaged CASSCF calculation. There are two possibilities. I am
only listing the relevant *gtci section of the input. The first kind of input makes use
of the nsymtype keyword that we encountered before in mreom_final calculation on
the N atom:
*gtci
nele=4
nsymtype=3
multiplicity=3
333
state_irrep=3
234
states_per_symtype=3
111
*end
The meaning of the keywords is the same as before: we simply state the number of
different kind of symmetry types (spin, irrep) and then enumerate multiplicities,
irreps, and the # of states to be found in each symmetry type the program will find
the lowest states in each symmetry block and include these states sequentially in
the averaging. With this kind of setup of the keywords can be very compact if a large
number of states are to be included. However, it assumes that all states in the average
carries equal weight.
An alternative way to create the equivalent input uses the nstates keyword, here it
is:
*gtci
nele=4
nstates=3
multiplicity=3
333
state_irrep=3
234
states_weight=3
0.3 0.3 0.3
*end
Here we state how many states are included in the state averaged CASSCF (they
could have the same spatial symmetry). Then we specify for each state the
symmetry and multiplicity. Finally we list for each state the weight of the state in the
ensemble. If this keyword is omitted the program assigns equal weights to all
states. In that case the nsymtype and nstates versions of the input are equivalent.
Here we would give equal weight to each state in a degenerate multiplet, but
different multiplets (or even states) could be weighted differently (see the input for
the Fe atom in my first example input file in the introduction). The weighting
procedure is only available in the nstate version of the input. It is not necessary that
the weights add up to one. The program normalizes the overall ensemble for you.
Now you can do the rest of the calculation as before. In all subsequent steps
(mreom_try.in, mreom_final.in) you should use the same input for the *gtci section
which defines the reference ensemble in the calculations. Let me provide the final
output (summary) of my mreom_final calculation:
******************************************************************************************************
*
Summary of pIC-MRCC/MR-EOMCC calculation
*
******************************************************************************************************
Serial 2S+1 2*Sz irrep iroot E_Excite/eV E_Excite/cm-1
Residual Overlap %Active
E-total
******************************************************************************************************
1
2
3
4
5
6
7
8
9
3
3
3
1
1
1
1
1
1
2
2
2
0
0
0
0
0
0
[2]
[3]
[4]
[1]
[1]
[2]
[3]
[4]
[1]
1
1
1
1
2
1
1
1
3
0.0000
0.0000
0.0000
1.9696
1.9696
1.9696
1.9696
1.9696
4.0400
0.00
0.00
0.00
15886.17
15886.17
15886.17
15886.17
15886.17
32585.09
0.84E-05
0.84E-05
0.84E-05
0.17E-05
0.17E-05
0.17E-05
0.17E-05
0.17E-05
0.90E-05
0.997
0.997
0.997
0.999
0.999
0.999
0.999
0.999
0.972
99.4%
99.4%
99.4%
99.7%
99.7%
99.7%
99.7%
99.7%
94.4%
-74.9771625162
-74.9771625162
-74.9771625162
-74.9047797871
-74.9047797871
-74.9047797871
-74.9047797871
-74.9047797871
-74.8286939047
******************************************************************************************************
And here are the NIST values
Configuration
2s22p4
Term
J
Level
(eV)
3P
2
0.000000
1
0.0196224
0
0.0281416
Referenc
e
2s22p4
1D
2
1.9673640
2s22p4
1S
0
4.1897461
L7288
Here we see some thing interesting. The ground state and the excited 1D state is
very well reproduced, while the energy of the 1S state is less accurate. There is a
clear correlation with the %active. It is almost 100% for the lowest states, but it
drops to 94.4% for the 1S state. This is why it is stated that we wish the %active to
be large, preferably larger than 95%. We lose accuracy when it start deteriorating.
You can gain some further insight if you search in the output file for “Analysis of
wave function”. For each multiplet it prints out an analysis. you can track which
state/multiplet it is by examining the total energy, and looking at the info provided
in the MREOM-Degen line.
Analysis of wave function partition percentages
state energy
%act %1h %1p
-----------------------------------------------------1
-0.662610
94.42
0.00
0.43
%ph
0.16
%2h
%phh
4.99
0.00
-----------------------------------------------------@mn_do_fullci_slice: skip write_to_archive
MREOM-Degen Energy: S = 1, 2*M_S = 0, State
74.82869390
@sseom_mrcis: total number of states considered
3 [1]
-0.66260962 Total Energy
-
9
The program prints the % of the wave function within each of the excitation sectors
1h, 1p, ph, 2h=hh and phh sectors. Here you see there are important contributions
from the 2h sector. This likely means excitations from the 2s orbitals (doubly
occupied in each determinant) into the 2p orbitals. If you wish you can try to
enlarge the active space to include also the 2s orbital. I have not tried it. I am kind of
curious if this would increase the accuracy of the calculation.
The program prints out some more information that can be of interest: the character
of each state in the active space. It uses the CASCI wave functions for this purpose.
Here I am inspecting the 3 singlet states we calculated in symmetry block 1, S=0.
From the energies we see to degenerate energies (corresponding to 1D), and one
non-degenerate (1S). We can inspect the determinant coefficients occupation-pattern
of each state. It lists the symmetry of the alpha and beta spinorbitals [234234] and
then indictes the occupation of ach spin orbital A=alpha, B=beta, -=empty. The Dstates are hard to interpret here because they are degenerate, and can mix
arbitrarily. The highest energy state, the 1S-state is clear. It is the determinant
1
( px px py py + px px pz pz + py py pz pz )
3
*************************************************
Canonically Orthogonalized Active Target States
*************************************************
spin quantum number S
..... = 0.000
spin eigenvalue S*(S+1) ..... = 0.000
spin multiplicity 2S+1 ..... = 1
spin Z-component 2*Sz ..... = 0
spatial symmetry irrep
..... = 1
number of states targeted ..... = 3
Dimension of active space ..... =
3
*************************************************
State
Energy ! S(S+1)!Trace-DM1!Trace-DM2
*************************************************
1
-0.919008736 0.000
okay
okay
2
-0.919008736 0.000
okay
okay
3
-0.798048456 0.000
okay
okay
*************************************************
****************************************************************************************************
determinant coefficients occupation-pattern
****************************************************************************************************
State # 1
[2|3|4|2|3|4]
1
0.746 [A|A|-|B|B|-]
2
-0.660 [A|-|A|B|-|B]
****************************************************************************************************
State # 2
[2|3|4|2|3|4]
1
-0.331 [A|A|-|B|B|-]
2
-0.481 [A|-|A|B|-|B]
3
0.812 [-|A|A|-|B|B]
****************************************************************************************************
State # 3
[2|3|4|2|3|4]
1
0.577 [A|A|-|B|B|-]
2
0.577 [A|-|A|B|-|B]
3
0.577 [-|A|A|-|B|B]
****************************************************************************************************
If we look up the 1D states in other symmetry blocks (2, 3, or 4) we also see clarity:
*************************************************
Canonically Orthogonalized Active Target States
*************************************************
spin quantum number S
..... = 0.000
spin eigenvalue S*(S+1) ..... = 0.000
spin multiplicity 2S+1 ..... = 1
spin Z-component 2*Sz ..... = 0
spatial symmetry irrep
..... = 2
number of states targeted ..... = 1
Dimension of active space ..... =
2
*************************************************
State
Energy ! S(S+1)!Trace-DM1!Trace-DM2
*************************************************
1
-0.919008736 0.000
okay
okay
*************************************************
****************************************************************************************************
determinant coefficients occupation-pattern
****************************************************************************************************
State # 1
[2|3|4|2|3|4]
1
0.707 [A|-|A|B|B|-]
2
0.707 [A|A|-|B|-|B]
****************************************************************************************************
The determinantal pattern is:
1
( px px pz py - px px py pz )
2
You might be surprised to learn what the character of the 3P state is in symmetry block 2:
*************************************************
Canonically Orthogonalized Active Target States
*************************************************
spin quantum number S
..... = 1.000
spin eigenvalue S*(S+1) ..... = 2.000
spin multiplicity 2S+1 ..... = 3
spin Z-component 2*Sz ..... = 2
spatial symmetry irrep
..... = 2
number of states targeted ..... = 1
Dimension of active space ..... =
1
*************************************************
State
Energy ! S(S+1)!Trace-DM1!Trace-DM2
*************************************************
1
-0.999648923 2.000
okay
okay
*************************************************
****************************************************************************************************
determinant coefficients occupation-pattern
****************************************************************************************************
State # 1
[2|3|4|2|3|4]
1
1.000 [A|A|A|B|-|-]
****************************************************************************************************
Here we calculate the Ms=1 component of the 3P state in block 2. It translates to
1
( px px pz py )
2
The Ms=0 component of the 3P state would have components like
1
( px px pz py + px px py pz )
2
The qualitative aspects of the atomic states are all governed by spin- and angular
momentum theory. This material is covered in my angular momentum notes of
another chem440 class. Here you get the results while the computer does the work.
I think we have covered enough ground in these labs for now. I think it is time for
you to practice.
Excersises for the MREOM lab, part A.
1. Calculate the valence excited states of the C atom and compare to the NIST
values. Here we can get to degenerate p orbitals by starting from C(isoelectronic with the N atom again). Often it is not a good idea to start from
negatively charged states, however. Let me provide an alternative way to
start the uhf_probe_CI step of the calculation (see also file
mcscf_qrhf_add.in):
C atom cas
C
*ACES2(BASIS=Def2-TZVPPD,REF=UHF
SUBGROUP=D2,CHARGE=2,
CALC=CCSD,DROPMO=1
QRHF_G=2/3/4,QRHF_O=1/1/1,QRHF_S=1/1/1
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
We start by doing a calculation of the closed shell C2+ (1s22s2 configuration). To use
the UNO_REF keyword we still have to use the REF=UHF keyword. You might do a
prior UHF calculation of C2+ to see the orbital energies / symmetries.
The meaning of the QRHF keywords:
- QRHF_G =2/3/4 : add electrons to orbitals to orbitals of symmetry 2, 3, 4
- QRHF_O = 1/1/1 : add the electron to the first unoccupied orbital in each
symmetry.
- QRHF_S = 1/1/1 : add the electrons to the alpha spin orbitals.
2. Calculate the ground state multiplet of the F atom. Again here the challenge
is to get the program to get a set of degenerate p-orbitals in the active space
using the UNO_REF strategy. The problem can be solved in different ways.
An instructrive strategy that is useful at times is to start from the closed shell
anion (F-), and remove electrons from the beta type p-orbitals. Below is the
input file for the crucial uhf_probe_CI calculation (see also
MREOM_standard_inputs/mcscf_qrhf_delete.in). You can set up the rest of
the calculation.
F atom cas
F
*ACES2(BASIS=Def2-TZVPPD,REF=UHF
SUBGROUP=D2,CHARGE=-1
CALC=CCSD,DROPMO=1
QRHF_G=-2/-3/-4,QRHF_O=1/1/1,QRHF_S=2/2/2
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=0-1-1-1)
The meaning of the QRHF keywords is now:
- QRHF_G =-2/-3/-4 : remove electrons from orbitals of symmetry 2, 3, 4
- QRHF_O = 1/1/1 : remove the electron from the highest orbital in each
symmetry (2 would be second highest etcetera).
- QRHF_S = 2/2/2 : remove the electrons from the beta spin orbitals.
3. Consider the O2 molecule using the Def2-TZVPPD basis set with an
equilibrium OO distance of R = 1.2230206598. Consider the triplet ground
state and set up the 2e in 2 orb CASSCF calculation. Now in addition consider
the low lying singlet excited states (use probe_CI calculations to determine
their symmetries), and continue to calculate the excited states using the MREOMCC approach.
4. Let us once again consider the same O2 molecule, but let us now also include
the doubly occupied p orbitals in the active space (Use QRHF-delete option),
yielding a 6e in 4orb CASCI, CASSCF, mreom_try and mreom_final
calculations. Compare the excitation energies with the 2e in 2orb approach of
question 3. Also examine the total energies.
A further case study: Low lying states of B2.
Up to this point we went mainly through the mechanics of running MREOM
calculations. In practice the most difficult aspect of the calculations is the choice of
active orbitals, and to a somewhat lesser extent, the choice of reference states (and
their weights) to include in the state-averaged ensemble. There is a lot of experience
to be gained here. I want to go through the example of the low lying states of the B2
to illustrate the issues and to give some guidelines on what to look for and check in
the outputs. If things are not quite right we can consider remedies.
Let me first give some information on the irreps you see in ACES2 for
homonuclear diatomics involving s and p AO’s. The s g orbital corresponds to irrep
[1], the bonding p u orbitals reside in irreps 2 and 3, the (antibonding) s u orbitals
has irrep 5, while irreps 6 and 7 correspond to the antibonding p g . Irreps 4 and 8
+/correspond to d g orbitals. The same labels (now with capitals ( Pg ,Pu , D g , S +/g , Su )
are used for the many electron states (term symbols). The states of S symmetry
carry another symmetry label (+/- for completeness).
To start the calculation for B2 I imagine the simpler B22+ system, which should
have the nice closed shell configuration with two occupied s g ,s u orbitals. I do an
RHF calculation on B2 first (with a chosen bond distance of 1.6 Å, I calculated this
optimizing a triplet state for B2), and by inspecting the orbital energies I find:
MO #
E(hartree)
E(eV)
FULLSYM COMPSYM
---- -------------------- -------------------- ------- --------1 1
-8.4401037062
-229.6670016985 SGg+
Ag (1)
2 38
-8.4395213248
-229.6511542865 SGuB1u (5)
3 2
-1.3927460579
-37.8985640909 SGg+
Ag (1)
4 39
-0.9626660681
-26.1954873063 SGuB1u (5)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 3
-0.6294726688
-17.1288298742 SGg+
Ag (1)
6 18
-0.6147524379
-16.7282718464 PIu
B3u (2)
7 26
-0.6147524379
-16.7282718464 PIu
B2u (3)
8 55
-0.4104543484
-11.1690356918 PIg
B2g (6)
9 63
-0.4104543484
-11.1690356918 PIg
B3g (7)
10 4
-0.2750794090
-7.4852946465 SGg+
Ag (1)
11 40
-0.2242664507
-6.1026031312 SGuB1u (5)
You can observe that the low lying virtuals (in which I want to put two more
electrons) are almost degenerate, and this suggests to take an orbital in symmetries
1, 2 and 3 to create the CAS orbital space. So I set up the following calculation to do
the probe_CI, and CASSCF calculations.
*ACES2(CALC=CCSD,REF=UHF,BASIS=Def2-TZVPPD,
MULT=1,CHARGE=2,DAMP_TYPE=DAVIDSON
OCCUPATION=2-0-0-0-2-0-0-0/2-0-0-0-2-0-0-0
QRHF_G=1/2/3,QRHF_O=1/1/1,QRHF_S=1/1/1
UNO_REF=ON,UNO_MULT=1,UNO_CHARGE=0
MAKERHF=ON,BRUECKNER=ON
IP_CALC=IP_EOMCC,IP_SYM=1-1-1-0-0-0-0-0)
It is good practice to include the occupation keyword to guide the electronic
structure program. In order to use UNO_REF with QRHF we have to run a UHF
calculation, even for a closed shell SCF. If left to it’s own devices the UHF module
may converge to the wrong state (not here). It is good to check. DO NOT FORGET
TO PUT CALC =CCSD in THESE CALCULATIONS. It sets up the proper environment
to do probe_CI and CASSCF, MREOM calculations.
By inspecting the probe_1 and probe_3 (singlet and triplet) outputs I decided to use
the following set of states in the mcscf.in and subsequent mreom_try.in
calculations:
*gtci
nele=2
nsymtype=6
multiplicity=6
111333
state_irrep=6
123234
states_per_symtype=6
111111
You can check for yourself if these choices look reasonable.
5. Let’s now take the plunge! Let us attempt to calculate ground and excited
states of the FeO dimer. Take a bond distance of
Download