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}
|