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