File: detcas.tex

package info (click to toggle)
psicode 3.4.0-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, stretch
  • size: 46,416 kB
  • ctags: 18,563
  • sloc: cpp: 291,425; ansic: 12,788; fortran: 10,489; perl: 3,206; sh: 2,702; makefile: 2,205; ruby: 2,178; yacc: 110; lex: 53
file content (148 lines) | stat: -rw-r--r-- 7,238 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
\subsection{Complete-Active-Space Self-Consistent-Field (CASSCF)} \label{casscf}
                                                                                
Multi-configurational self-consistent-field (MCSCF) 
is a general method for obtaining qualitatively correct
wavefunctions for highly strained molecules, diradicals, or bond
breaking reactions.  The most commonly used MCSCF procedure
is the complete-active-space self-consistent-field (CASSCF)
approach \cite{Roos:1980}, which includes all possible determinants
(with the proper symmetry) that can be formed by distributing 
a set of active electrons among a set of active orbitals.
The \PSIdetcasman\ module performs
CASSCF optimization of molecular orbitals via a two-step
procedure in which the CI wavefunction is computed using
\PSIdetci\, and the orbital rotation step is computed using
\PSIdetcas.  The \PSIdetcas\ program is fairly simple
and uses an approximate orbital Hessian \cite{Chaban:1997:88} 
and a Newton-Raphson update,
accelerated by Pulay's DIIS procedure \cite{Pulay:1980}.  
We have also implemented a prototype version of the RASSCF method
\cite{Malmqvist:1990:RASSCF}, which is another kind of MCSCF which 
is typically less complete (and less expensive) than CASSCF.
However, orbital convergence for RASSCF can be difficult in our
current implementation.

Inactive orbitals in the MCSCF may be specified by the 
{\tt RESTRICTED\_DOCC} and {\tt RESTRICTED\_UOCC} keywords.  These
orbitals will remain doubly-occupied or doubly-unoccupied, respectively,
in the MCSCF wavefunction.  However, the form of these orbitals will
be optimized in the MCSCF procedure.  It is also possible to 
literally freeze inactive orbitals in their original (SCF) form
using the {\tt FROZEN\_DOCC} and {\tt FROZEN\_UOCC} keywords.
This is not normally what one wishes to do in an MCSCF computation
(e.g., it complicates the computation of gradients),
but it can make the computations faster and is helpful in some
circumstances where unphysical mixing of inactive and active
occupied orbitals might occur.  Presently, it is not possible
to mix the use of restricted and frozen orbitals in \PSIthree.

The division of the molecular orbitals into various subspaces such as RAS
spaces, or frozen vs active orbitals, etc, needs to be clear not only to
the {\tt detci} program, but also at least to the transformation program
(and in the case of MCSCF, to other programs as well).  Thus,
orbital subspace keywords such as {\tt RAS1}, {\tt RAS2}, {\tt RAS3}, {\tt
frozen\_docc}, {\tt frozen\_uocc}, {\tt active}, etc., need to be
in the {\tt psi:()} or {\tt default:()} sections of input so they may
also be read by other modules.

The ability to perform state-averaged 
\cite{Docken:1972:4928,Ruedenberg:1979:1069}
CASSCF or RASSCF computations has been added.  This is accomplished using the 
{\tt average\_states} keyword.

See the {\tt casscf-sp} and {\tt casscf-sa-sp} examples in the 
\file{tests} directory and the example below.

\subsubsection{Basic Keywords}
\begin{description}
\item[WFN = string]\mbox{}\\
This may be {\tt casscf} or {\tt rasscf}.
\item[REFERENCE = string]\mbox{}\\
Any of the references allowed by \PSIdetci\ should work (i.e., not 
{\tt uhf}), but there should be no reason not to use {\tt rhf}.
\item[DERTYPE = string]\mbox{}\\
At present, only energies ({\tt none}) are supported; future
releases will implement gradients ({\tt first}).
\item[CONVERGENCE = integer]\mbox{}\\
Convergence desired on the orbital gradient.  Convergence is achieved when
the RMS of the error in the orbital gradient is less than 10**(-n).  The 
default is 4 for energy calculations and 7 for gradients.  Note that
this is a different convergence criterion than for the \PSIdetci\
program itself.  These can be differentiated, if changed by the user,
by placing the {\tt CONVERGENCE} keywords within separate sections of
input, such as {\tt detcas: ( convergence = x )}.
\item[ENERGY\_CONVERGENCE = integer]\mbox{}\\
Convergence desired on the total MCSCF energy.  The default is 7.
\item[RESTRICTED\_DOCC = (integer array)]\mbox{}\\
Should be in {\tt psi:()} or {\tt default:()} sections of input.
The number of lowest energy doubly occupied orbitals in each irreducible
representation from which there will be no excitations.  
These orbitals are optimized in the MCSCF.
The Cotton ordering of the irredicible representations is used.
The default is the zero vector.
\item[RESTRICTED\_UOCC = (integer array)]\mbox{}\\
Should be in {\tt psi:()} or {\tt default:()} sections of input.
The number of highest energy unoccupied orbitals in each irreducible
representation into which there will be no excitations.
These orbitals are optimized in the MCSCF.
The default is the zero vector.
\item[FROZEN\_DOCC = (integer array)]\mbox{}\\
Should be in {\tt psi:()} or {\tt default:()} sections of input.
The number of lowest energy doubly occupied orbitals in each irreducible
representation from which there will be no excitations.  
These orbitals are literally frozen and are not optimized in the MCSCF;
usually one wishes to use {\tt RESTRICTED\_DOCC} instead.
The current version of the program does not allow both
{\tt RESTRICTED\_DOCC} and {\tt FROZEN\_DOCC}.
Should be in {\tt psi:()} or {\tt default:()} sections of input.
The Cotton ordering of the irredicible representations is used.
The default is the zero vector.
\item[FROZEN\_UOCC = (integer array)]\mbox{}\\
Should be in {\tt psi:()} or {\tt default:()} sections of input.
The number of highest energy unoccupied orbitals in each irreducible
representation into which there will be no excitations.
These orbitals are literally frozen and are not optimized in the MCSCF;
usually one wishes to use {\tt RESTRICTED\_UOCC} instead.
The current version of the program does not allow both
{\tt RESTRICTED\_UOCC} and {\tt FROZEN\_UOCC}.
Should be in {\tt psi:()} or {\tt default:()} sections of input.
The default is the zero vector.
\item[NCASITER = integer]\mbox{}\\
Maximum number of iterations to optimize the orbitals.  This option
should be specified in the DEFAULT section of input, because
it needs to be visible to the control program PSI.  Defaults to 20.
\item[AVERAGE\_STATES = (integer array)]\mbox{}\\
This gives a list of what states to average for the orbital 
optimization.  States are numbered starting from 1.
\item[PRINT = integer]\mbox{}\\
This option determines the verbosity of the output.  A value of 1 or
2 specifies minimal printing, a value of 3 specifies verbose printing.
Values of 4 or 5 are used for debugging.  Do not use level 5 unless
the test case is very small (e.g. STO H$_2$O CISD).
\end{description}

\subsubsection{Examples}
\begin{figure}[h!]
\begin{verbatim}
% 6-31G** H2O Test CASSCF Energy Point
                                                                                
psi: (
  label = "6-31G** CASSCF H2O"
  jobtype = sp
  wfn = casscf
  reference = rhf
  restricted_docc = (1 0 0 0)
  active          = (3 0 1 2)
  basis = "6-31G**"
  zmat = (
    o
    h 1 1.00
    h 1 1.00 2 103.1
  )
)
\end{verbatim}
\caption{Example of a CASSCF single-point calculation for H$_2$O using
  a valence active space 3a$_1$ 1b$_1$ 2b$_2$.}
\label{ex:casscf-sp-1}
\end{figure}