% rassi.tex $ this file belongs to the Molcas repository $

\section{\program{rassi}}
\label{UG:sec:rassi}
\index{Program!Rassi@\program{Rassi}}\index{Rassi@\program{Rassi}}
%%%<MODULE NAME="RASSI">
%%Description:
%%%<HELP>
%%+The RASSI program calculates overlaps, and matrix
%%+elements of one-electron operators, and of the electronic Hamiltonian,
%%+over a basis of RASSCF wave functions, which may each have its own
%%+independent set of orbitals. Energies and matrix elements are
%%+computed also for the non-interacting linear combinations of states,
%%+i.e., doing a limited CI using the RASSCF states as a non-orthogonal basis.
%%+RASSI is extensively used for computing dipole oscillator strengths.
%%+Finally, it can also compute Spin-Orbit interaction matrix elements
%%+and e.g. transition dipole moments for spin-orbit eigenstates.
%%%</HELP>

The
\program{RASSI} (RAS State Interaction) program forms overlaps and
other matrix
\index{State Interaction}\index{Matrix elements!RASSCF}
elements of the Hamiltonian and other operators
over a wave function basis, which consists of RASSCF wave functions,
each with an individual set of orbitals. It is extensively used
for computing dipole oscillator strengths, but any
\index{Oscillator strength}
one-electron operator, for which the \program{Seward} has computed
integrals to the \file{ORDINT} file, can be used, not just dipole
moment components.

Also, it solves the Schr{\"o}dinger
equation projected on the space spanned by  these wave functions,
i.e., it forms non-interacting linear combinations of the input
state functions, and computes matrix elements over the resulting
eigenbasis as well.

Finally, using these spin-free eigenstates as a basis, it can
compute spin-orbit interaction matrix elements, diagonalize
the resulting matrix, and compute various matrix elements over
the resulting set of spin-orbit eigenstates.

If only matrix
elements of some one-{}electron operator(s), such as the dipole
transition moments, are required, the calculation of Hamiltonian
matrix elements and the transformation to the eigenbasis of this
matrix can be skipped. However, if any states have the same symmetry
and different orbitals, it is desirable to use the transitions strengths
as computed between properly non-interacting and orthonormal states.
The reason is that the individually optimized RASSCF states are
interacting and non-{}orthogonal, and the main error in the computed
transition matrix elements is the difference in electronic dipole
moment times the overlap of any two states involved. For excited
states, the overlap is often in the order of 10\%.

Please note: Due to the increasing number of calculations done with
a hundred input states, or more, there has been a demand to change
the output. Until \molcas 6.2, the default assumption has been to print
all expectation values and matrix elements that can be computed from
the selection of one-electron integrals. From 6.4, this is requested by
keywords, see the keyword list below for XVIN, XVES, XVSO, MEIN,
MEES, and MESO.

Apart from computing oscillator strengths, overlaps and Hamiltonian
matrix elements can be used to compute electron transfer rates, or
\index{Electron transfer rate}
\index{diabatic@(Quasi-)diabatic states}
to form quasi-diabatic states and reexpress matrix elements over a
basis of such states.

The CSF space of a RASSCF wave function is closed under deexcitation.
For any given pair of RASSCF wave functions, this is used in the
way described in reference \cite{Malmqvist:86} to allow the pair of orbital
sets to be transformed to a biorthonormal pair, while simultaneously
transforming the CI expansion coefficients so that the wave functions
remain unchanged. The basic principles are the same as in the earlier
program \cite{Malmqvist:89}, but is adapted to allow RASSCF as well as
CASSCF wave functions. It uses internally a Slater determinant
expansion. It can now use spin-dependent operators,
including the AMFI spin-orbit operator, and can compute matrix elements
over spin-orbit states, i.e. the eigenstates of the sum of the
spin-free hamiltonian and the spin-orbit operator.

One use of the RASSI eigenstates is to resolve ambiguities due
to the imperfect description of highly excited states.
Association between individually optimized states and the exact
electronic eigenstates is often not clear, when the calculation
involves several or many excited states. The reason is that the
different states each use a different set of orbitals. The State
Interaction calculation gives an unambiguous set of non-{}interacting and
orthonormal eigenstates to the projected Schr{\"o}dinger equation, and
also the overlaps between the original RASSCF wave functions and the
eigenstates. The latter is a very efficient diagnostic, since it
describes the RASSCF states in terms of one single wave-{}function basis
set.

\index{RASSCF!Multiple solutions}
To make the last point clear, assume the following situation:
We have
performed three RASSCF calculations, one where we optimize for the
lowest state, one for the first excited state, and one for the 2nd
excited state in the same symmetry. The active orbitals are fairly
much mixed around, so a simple inspection of the CI coefficient is
insufficient for comparing the states. Assume that for each state, we
have calculated the three lowest CI roots. It can now happen, that the
2nd root of each calculation is a fair approximation to the exact 2nd
eigenstate, and the same with the 3rd, or possibly that the order gets
interchanged in one or two of the calculation. In that case, a RASSI
calculation with these 9 states will give three improved solutions
close to the original ones, and of course 6 more that are considered
to be the removed garbage. The overlaps will confirm that each of the
input states consists mainly of one particular out of the three lowest
eigenstates. This situation is the one we usually assume, if no
further information is available.

However, it happens that the active orbitals of the three calculations
do not span approximately the same space. The orbital optimization
procedure has made a qualitatively different selection of correlating
orbitals for the three different calculation. Then the \program{RASSI}
calculation may well come out with 4 lowest roots that overlap
strongly with the original RASSCF states. This may change the
assignments and may also give valuable information about the
importance of some state. The natural orbitals of the eigenstates will
show that the active space used in the RASSCF was in some way
inappropriate.

Another bothersome situation is also solved by the RASSI method. The
analysis of the original states in terms of RASSI eigenstates may
reveal that the three optimized RASSCF states consists mainly of TWO
low RASSI eigenstates! This is because the RASSCF optimization
equations are non-linear and may sometimes offer spurious extra
solutions. Two of the calculations are in this case to be regarded
qualitatively, as two different (local) solutions that
approximate (imperfectly) the same excited state. Also in this case, the
natural orbitals will probably offer a clue to how to get rid of the
problem. Extra solutions rarely occur for low states in CASSCF
calculations, provided a generous active space can be afforded.
Problems occur when the active space is too small, and in
particular with general RASSCF calculations.

A further application is the preparation of a suitable orbital basis
for a subsequent CI calculation. Note that such an application also
allows the use of badly converged RASSCF wave functions, or of RASSCF
wave functions containing multiple minima solutions close to a common
exact eigenstate. In effect, the \program{RASSI} program cleans up the situation
by removing the errors due to bad convergence (pushing the errors into
a garbage part of the spectrum). This requires that the set of input
states (9 in this example) provides flexibility enough to remove at
least a major part of the error. As one would expect, this is usually
true: The erratic non-{}convergent, or the too slowly convergent, error
mode is to a large extent spanned by the few lowest RASSCF wave
functions.

Finally, there are situations where there is no problem to obtain
adiabatic RASSCF solutions, but where it is still imperative to use
RASSI natural orbitals in a subsequent CI. Consider the case of
transition metal chemistry, where there is in general two or more
electronic states involved. These states are supposed to interact
strongly, at least within some range of interatomic distances. Here,
an MCSCF solution, such as RASSCF, will have at least two very
different solutions, one associated with each configuration of the
transition metal atom. Using one set of orbitals, one electronic state
has a reasonably described potential energy curve, while other states
get pushed far up in energy. Using another set of orbitals, another
state gets correctly described. In no calculation with a single
orbital set do we obtain the avoided crossings, where one switches
from one diabatic state to another. The only way to accomplish this is
via a RASSI calculation. In this case, it is probably necessary also to
shift the energies of the RASSCF states to ensure that the crossing
occur at the correct places. The shifts can be determined by
correcting the atomic spectrum in the separated-{}atoms limit.

Note, however, that most of the problems described above can be
solved by performing state-averaged RASSCF calculations.

% In the latest version of \molcas\, derivatives of transition dipole moments
% have been added to RASSI\cite{Bernhardsson:99b}. The derivatives are
% calculated as the matrix element of the product of the (CI/orbital)
% rotation operator and the dipole moment operator.

\subsection{Dependencies}
\label{UG:sec:rassi_dependencies}
\index{RASSI!Dependencies}\index{Dependencies!RASSI}
The \program{RASSI} program needs one or more \file{JOBIPH} files produced
by the \program{RASSCF} program. Also, it needs a \file{ONEINT} file from
\program{SEWARD}, with overlap integrals and any one-electron
property integrals for the requested matrix elements. If Hamiltonian
matrix elements are used, also the \file{ORDINT} file is needed.

% For derivatives the   \program{RASSI} needs the \file{MCKINT} file
% produced by   \program{MCKINLEY} and \program{MCLR} containing
% the derivatives of the dipole operator and the orbital rotations and the
% state transfer operators.

% The existence of a file with the name \file{MCKINT1} will automatically
% change \program{RASSI} to from ordinary calculation of state interaction
% properties, to calculation of derivatives of state interaction properties,
% like transition dipole derivatives and non adiabatic coupling constants.


% It is important that if derivatives of state interaction properties should
% be calculated, the expansion center for that property must be (0,0,0).
% For derivatives of transition dipole moments, the following keyword has to be
% added to the \program{SEWARD} input.
% \begin{inputlisting}
% Center= 1; 1 0.0 0.0 0.0
% \end{inputlisting}


\subsection{Files}
\label{UG:sec:rassi_files}
\index{RASSI!Files}\index{Files!RASSI}

\subsubsection{Input files}
\begin{filelist}
%------
\item[ORDINT*]
Ordered two-{}electron integral file produced by the \program{SEWARD}
program. In reality, this is up to 10 files in a multi-file system,
named ORDINT, ORDINT1,\dots,ORDINT9. This is necessary on some platforms
in order to store large amounts of data.
%------
\item[ONEINT]
The one-{}electron integral file from \program{SEWARD}
%------
\item[JOBnnn]
A number of \file{JOBIPH} files from different \program{RASSCF} jobs.
An older naming convention assumes file names JOB001, JOB002, etc. for these files.
They are automatically linked to default files named \file{\$Project.JobIph},
\file{\$Project.JobIph01}, \file{\$Project.JobIph02}, etc.  in directory \file{\$WorkDir},
unless they already exist as files or links before the program starts.
You can set up such links yourself, or else you can specify file names
to use by the keyword \keyword{IPHNames}.
%------
\item[JOBIPHnn]
A number of \file{JOBIPH} files from different \program{RASSCF} jobs.
The present naming convention assumes file names JOBIPH, JOBIPH01, etc. for
such files, when created by subsequent \program{RASSCF} runs, unless
other names were specified by input.
They are automatically linked to default files named \file{\$Project.JobIph},
\file{\$Project.JobIph01}, \file{\$Project.JobIph02}, etc.  in directory \file{\$WorkDir},
unless they already exist as files or links before the program starts.
You can set up such links yourself, or else you can specify file names
to use by the keyword \keyword{IPHNames}.
% \item[MCKINTn]
% A number of \file{MCKINT} files from different Single state calculations.
% The numbering of the MCKINTn files should be the same as the
% numbering of JOBnnn files, files with the same number should correspond to
% the same state.

%------
\end{filelist}

\subsubsection{Output files}

\begin{filelist}
%------
\item[SIORBnn]
A number of files containing natural orbitals, (numbered sequentially as
\file{SIORB01}, \file{SIORB02}, etc.)
\item[BRAORBnnmm, KETORBnnmm]
A number of files containing binatural orbitals for the transition between
states nn and mm.
\item[TOFILE]
This output is only created if \keyword{TOFIle} is given in the input.
It will contain the transition density matrix computed by \program{Rassi}.
Currently, this file is only used as input to \program{QmStat}.
\item[EIGV]
Like \file{TOFILE} this file is only created if \keyword{TOFIle} is given
in the input. It contains auxiliary information that is picked up
by \program{QmStat}.
% \item{UNSYM}
% The derivative of the transition dipole moment desymmetrized.
\end{filelist}

\subsection{Input}
\label{UG:sec:rassi_input}
\index{RASSI!Input}\index{Input!RASSI}
This section describes the input to the
\program{RASSI} program in the \molcas\ program system,
with the program name:
\begin{inputlisting}
 &RASSI
\end{inputlisting}

When a keyword is followed by additional mandatory lines of input,
this sequence cannot be interrupted by a comment line. The first 4
characters of keywords are decoded. An unidentified keyword makes the
program stop.

\subsubsection{Keywords}
\index{RASSI!Keywords}\index{Keywords!RASSI}

\begin{keywordlist}
%---
% \item[CHOLesky]
% %%Keyword: Cholesky <basic>
% %%+Use of Cholesky (or RI/DF) representation for the two-electron integrals
% %%+with default RASSI settings.
% \program{RASSI} will use Cholesky (or RI/DF) representation of the two-electron integrals to compute
% the corresponding contributions to the Fock matrices and to perform the MO integral transformations.
% The default (LK) algorithm is used. The configuration may be tailored using the ChoInput section.
% Default is to not use Cholesky unless the Cholesky (or RI/DF) representation of the two-electron
% integrals has been produced by \program{SEWARD}.
%---
\item[CHOInput]
%%%<GROUP MODULE="RASSI" NAME="CHOINPUT" APPEAR="Cholesky input section"
%%% KIND="BLOCK" LEVEL="ADVANCED">
%%Keyword: Choinput <advanced>
%%%<HELP>
%%+Manually modify the settings of the Cholesky RASSI.
%%%</HELP>
This marks the start of an input section for modifying
the default settings of the Cholesky RASSI.
Below follows a description of the associated options.
The options may be given in any order,
and they are all optional except for
\keyword{ENDChoinput} which marks the end of the \keyword{CHOInput} section.

%%%<KEYWORD MODULE="RASSI" NAME="NOLK" APPEAR="Turn Off LK screening" LEVEL="ADVANCED"
%%% KIND="SINGLE" REQUIRE="CHOI">
%%Keyword: NoLK <advanced>
%%%<HELP>
%%+Deactivates LK screening.
%%%</HELP>
%%%</KEYWORD>
\begin{itemize}
\item[NoLK]
Available only within ChoInput. Deactivates the ``Local Exchange'' (LK) screening algorithm~\cite{Aquilante:07a} in computing
the Fock matrix. The loss of speed compared to the default algorithm can be substantial, especially for electron-rich systems.
Default is to use LK.
%%%<KEYWORD MODULE="RASSI" NAME="DMPK" APPEAR="Damping for LK" LEVEL="ADVANCED"
%%% KIND="REAL" EXCLUSIVE="NOLK" REQUIRE="CHOI">
%%Keyword: DMPK <advanced>
%%%<HELP>
%%+Modifies the thresholds used in the LK screening.
%%+The default value is 1.0d-1. A smaller value results in a slower but more accurate calculation.
%%%</HELP>
%%%</KEYWORD>
\item[DMPK]
Available only within ChoInput. Modifies the thresholds used in the LK screening.
The keyword takes as argument a (double precision) floating point (non-negative) number used
as correction factor for the LK screening thresholds.
The default value is 1.0d-1. A smaller value results in a slower but more accurate calculation.\\
{\bf Note:} the default choice of the LK screening thresholds is tailored to achieve as much as possible an
accuracy of the RASSI energies consistent with the choice of the Cholesky decomposition
threshold.
%%%<KEYWORD MODULE="RASSI" NAME="NODE" APPEAR="Turn Off density decomposition" LEVEL="ADVANCED"
%%% KIND="SINGLE" REQUIRE="CHOI">
%%Keyword: NODE <advanced>
%%%<HELP>
%%+The inactive Exchange contribution to the Fock matrix is computed using inactive canonical orbitals
%%+instead of (localized) "Cholesky MOs".
%%%</HELP>
%%%</KEYWORD>
\item[NODEcomposition]
Available only within ChoInput. The inactive Exchange contribution to the Fock matrix is computed using inactive canonical orbitals
instead of (localized) ``Cholesky MOs''.
This choice is effective only in combination with the LK screening.
Default is to use Cholesky MOs. {\bf Note:} the Cholesky MOs in RASSI are computed by decomposing the
density type supermatrix ${\bf D}=({\bf C}_A , {\bf C}_B)({\bf C}_A , {\bf C}_B)^T$ where ${\bf C}$ is the corresponding canonical
MOs matrix for the state $A$ and $B$.
%%%<KEYWORD MODULE="RASSI" NAME="PSEU" APPEAR="Use PseudoCholesky orbitals" LEVEL="ADVANCED"
%%% KIND="SINGLE" REQUIRE="CHOI">
%%Keyword: PSEU <advanced>
%%%<HELP>
%%+The inactive Exchange contribution to the Fock matrix is computed using pseudo Cholesky orbitals.
%%%</HELP>
%%%</KEYWORD>
%%%</GROUP>
When computing the coupling between 2 different
states A and B, only for the first state we use pure Cholesky MOs. The invariance of the Fock matrix
is then ensured by rotating the orbitals of B according to the orthogonal matrix defined in A
through the Cholesky localization. These orbitals used for B are therefore called ``pseudo Cholesky MOs''.
\item[TIME]
Activates printing of the timings of each task of the Fock matrix build.
Default is to not show these timings.
\item[MEMFraction]
Set the fraction of memory to use as global Cholesky vector buffer.
Default: for serial runs 0.0d0; for parallel runs 0.3d0.
\end{itemize}
%---
\item[MEIN]
%%%<KEYWORD MODULE="RASSI" NAME="MEIN" APPEAR="RASSCF matrix elements" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: MEIN basic
%%%<HELP>
%%+Demand for printing matrix elements of all selected one-electron
%%+properties, over the input RASSCF wave functions.
%%%</HELP></KEYWORD>
Demand for printing matrix elements of all selected one-electron
properties, over the input RASSCF wave functions.
%---
\item[MEES]
%%%<KEYWORD MODULE="RASSI" NAME="MEES" APPEAR="spin-free matrix elements" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: MEES basic
%%%<HELP>
%%+Demand for printing matrix elements of all selected one-electron
%%+properties, over the spin-free eigenstates.
%%%</HELP></KEYWORD>
Demand for printing matrix elements of all selected one-electron
properties, over the spin-free eigenstates.
%---
\item[MESO]
%%%<KEYWORD MODULE="RASSI" NAME="MESO" APPEAR="SO matrix elements" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: MESO basic
%%%<HELP>
%%+Demand for printing matrix elements of all selected one-electron
%%+properties, over the spin-orbit states.
%%%</HELP></KEYWORD>
Demand for printing matrix elements of all selected one-electron
properties, over the spin-orbit states.
%---
% \item[PRINT]
% %%Keyword: Print advanced
% %%+Set individual print levels for various subroutines of the code.
% Set individual print levels for various subroutines of the code, mainly
% for debugging purposes.
% This keyword requires an entry with number of name,value
% pairs, with the same format as that used for the PROP input. The names
% are subroutine names, and each value is the print level setting for that
% subroutine.
%---
\item[PROPerty]
%%Keyword: Property basic
%%+Enter a user-supplied selection of one-electron operators, for which
%%+matrix elements and expectation values are to be calculated. Without
%%+this keyword and list, the default choice is to use every operator,
%%+for which the one-electron integral file supplies integrals.
Replace the default selection of one-{}electron operators, for which
matrix elements and expectation values are to be calculated, with a
user-{}supplied list of operators.

From the lines following the keyword the selection list is
read by the following {\sl FORTRAN} code:\\
READ({*},{*}) NPROP,(PNAME(I),ICOMP(I),I=1,NPROP)\\
NPROP is the number of selected properties, PNAME(I) is a
character string with the label of this operator on \program{SEWARD}'s
one-{}electron integral file, and ICOMP(I) is the component number.

The default selection is to use dipole and/or velocity integrals, if
these are available in the \file{ONEINT} file. This choice is replaced by the
user-specified choice if the \keyword{PROP} keyword is used.
Note that the character strings are read using list directed input and
thus must be within single quotes, see sample input below.
For a listing of presently available operators, their labels, and
component conventions, see
\program{SEWARD} program description.
%---
\item[SOCOupling]
%%Keyword: SOCoupling basic
%%+Enter a positive threshold value. Spin-orbit interaction matrix
%%+elements over the spin components of the spin-free eigenstates
%%+will be printed, unless smaller than this threshold.
%%+The value is given in cm-1 units. The keyword is ignored unless
%%+an SO hamiltonian is actually computed.
Enter a positive threshold value. Spin-orbit interaction matrix
elements over the spin components of the spin-free eigenstates
will be printed, unless smaller than this threshold.
The value is given in cm\textsuperscript{-1} units. The keyword is
ignored unless an SO hamiltonian is actually computed.
%---
\item[SOPRoperty]
%%Keyword: SOProperty basic
%%+Enter a selection of one-electron operators, for which
%%+matrix elements and expectation values are to be calculated over the
%%+of spin-orbital eigenstates. This keyword has no effect unless the
%%+SPIN keyword has been used. Format: see PROP keyword.
Enter a user-supplied selection of one-electron operators, for which
matrix elements and expectation values are to be calculated over the
of spin-orbital eigenstates. This keyword has no effect unless the
\keyword{SPIN} keyword has been used. Format: see \keyword{PROP} keyword.
%---
\item[SPINorbit]
%%%<KEYWORD MODULE="RASSI" NAME="SPIN" APPEAR="spin-orbit calc."
%%% KIND="SINGLE" LEVEL="BASIC">
%%Keyword: Spinorbit basic
%%%<HELP>
%%+Spin-orbit interaction matrix elements will be computed and the resulting
%%+Hamiltonian including will be diagonalized.
%%+NB: For this keyword to have any effect, the SO integrals
%%+must have been computed by SEWARD (AMFI integrals)!
%%%</HELP>
Spin-orbit interaction matrix elements will be computed. Provided that
the \keyword{ONEL} keyword was not used, the resulting Hamiltonian including the
spin-orbit coupling, over a basis consisting of all the spin components
of wave functions constructed using the spin-free eigenstates, will be
diagonalized.  NB: For this keyword to have any effect, the SO integrals
must have been computed by \program{SEWARD}! See \keyword{AMFI} keyword in \program{SEWARD} documentation.
%%%</KEYWORD>
%---
\item[ONEL]
%%%<KEYWORD MODULE="RASSI" NAME="ONEL" APPEAR="One-electron properties only"
%%% KIND="SINGLE" LEVEL="BASIC">
%%Keyword: Onel basic
%%%<HELP>
%%+The two-electron integral file will not be accessed. No hamiltonian
%%+matrix elements will be calculated. Non-interacting states will not
%%+be formed. Onee is a valid synonym for this keyword.
%%%</HELP>
The two-{}electron integral file will not be accessed. No Hamiltonian
matrix elements will be calculated, and only matrix elements for the
original RASSCF wave functions will be calculated.
\keyword{ONEE} is a valid synonym for this keyword.
%%%</KEYWORD>
%---
\item[J-VAlue]
%%%<KEYWORD MODULE="RASSI" NAME="J-VALUE" APPEAR="J-Value"
%%% KIND="SINGLE" LEVEL="BASIC">
%%Keyword: J-Value basic
%%%<HELP>
%%+For spin-orbit calculations with single atoms, only: The output lines
%%+with energy for each spin-orbit state will be annotated with the
%%+approximate J quantum number.
%%%</HELP>
For spin-orbit calculations with single atoms, only: The output lines
with energy for each spin-orbit state will be annotated with the
approximate J and Omega quantum numbers.
%%%</KEYWORD>
%---
\item[OMEGa]
%%%<KEYWORD MODULE="RASSI" NAME="OMEGA" APPEAR="Omega-Value"
%%% KIND="SINGLE" LEVEL="BASIC">
%%Keyword: Omega basic
%%%<HELP>
%%+For spin-orbit calculations on linear molecules, only: The output lines
%%+with energy for each spin-orbit state will be annotated with the
%%+approximate Omega quantum number.
%%%</HELP>
For spin-orbit calculations with linear molecules, only: The output lines
with energy for each spin-orbit state will be annotated with the
approximate Omega quantum number.
%%%</KEYWORD>
%---
\item[NROF jobiphs]
%%%<KEYWORD MODULE="RASSI" NAME="JOBIPH" APPEAR="Input states from JOBIPHs"
%%% KIND="STRINGS" LEVEL="BASIC">
%%Keyword: NrOf basic
%%%<HELP>
%%+Number of JOBIPH files used as input, followed by a list of
%%+the number of states to read from each JOBIPH, and finally,
%%+for each JOBIPH a list of which states to select.
%%%</HELP>
Number of
\file{JOBIPH} files used as input. This keyword should be
followed by the number of
states to be read from each \file{JOBIPH}. Further, one line per
\file{JOBIPH} is required with a list of the states to be
read from the particular file. See sample input below.
Alternatively, the first line can contain the number of \file{JOBIPH} used
as input followed by the word \verb+ALL+, indicating that all states
will be taken from each file. In this case no further lines are required.
For \file{JOBIPH} file names, see the Files section.
Note: If this keyword is missing, then by default all files named 'JOB001',
'JOB002', etc. will be used, and all states found on these files will be
used.
%%%</KEYWORD>
%---
\item[IPHNames]
%%Keyword: IPHNames basic
%%+Followed by one entry for each JOBIPH file to be used, with the
%%+name of each file. Note: This keyword presumes that the number of
%%+JOBIPH files have already been entered using keyword NROF.
%%+The names will be truncated to 8 characters and converted to uppercase.
Followed by one entry for each \file{JOBIPH} file to be used, with the
name of each file. Note: This keyword presumes that the number of
\file{JOBIPH} files have already been entered using keyword \keyword{NROF}.
For default \file{JOBIPH} file names, see the Files section.
The names will be truncated to 8 characters and converted to uppercase.
%---
% \item[NACMe]
% %%Keyword: NACM advanced
% %%+For computing non-adiabatic coupling matrix elements. This requires
% %%+that a MCKINT1 file exist. After this keyword should follow a list
% %%+of energy shifts, one for each wave function. Such shifts are
% %%+usually needed in order to ensure that energy crossings occur where
% %%+they should. Note: this keyword must not precede the NROF input.
% Switch from calculations of transition dipole moment to calculation of
% non adiabatic coupling constants. Only valid if \file{MCKINT1} file exist.
%---
\item[SHIFt]
%%Keyword: Shift basic
%%+The next entry or entries gives an energy shift for each wave function,
%%+to be added to diagonal elements of the Hamiltonian matrix.
The next entry or entries gives an energy shift for each wave function,
to be added to diagonal elements of the Hamiltonian matrix.
This may be necessary e.g. to ensure that an energy crossing occurs
where it should. NOTE: The number of states must be known
(See keyword \keyword{NROF}) before this input is read.
In case the states are not orthonormal, the actual quantity added to
the Hamiltonian is 0.5D0*(ESHFT(I)+ESHFT(J))*OVLP(I,J). This is necessary
to ensure that the shift does not introduce artificial interactions.
\keyword{SHIFT} and \keyword{HDIAG} can be used together.
%---
\item[HDIAg]
%%%<KEYWORD MODULE="RASSI" NAME="HDIAG" APPEAR="Diagonal elements"
%%% KIND="REALS_COMPUTED" SIZE="1" LEVEL="BASIC">
%%Keyword: HDiag basic
%%%<HELP>
%%+Enter an energy for each spin-free wave function,
%%+to replace the diagonal elements of the Hamiltonian matrix.
%%+For example to use CASPT2 shifted energies in the diagonal.
%%%</HELP>
The next entry or entries gives an energy for each wave function,
to replace the diagonal elements of the Hamiltonian matrix.
Non-orthogonality is handled similarly as for the \keyword{SHIFT} keyword.
\keyword{SHIFT} and \keyword{HDIAG} can be used together.
%%%</KEYWORD>
%---
\item[NATOrb]
%%%<KEYWORD MODULE="RASSI" NAME="NATORB" APPEAR="Natural Orbitals"
%%% KIND="INT" LEVEL="BASIC">
%%Keyword: NatOrb basic
%%%<HELP>
%%+Enter the number of eigenstates for which natural orbitals should
%%+be computed and written to file. These will be written together with
%%+natural occupation numbers in the usual format used by MOLCAS.
%%%</HELP>
The next entry gives the number of eigenstates for which natural
orbitals will be computed. They will be written, formatted, commented,
and followed by natural occupancy numbers, on one file each state.
For file names, see the Files section.
The format allows their use as standard orbital input files to
other \molcas\ programs.
%%%</KEYWORD>
%---
\item[BINAtorb]
%%%<KEYWORD MODULE="RASSI" NAME="BINATORB" APPEAR="Binatural Orbitals"
%%% KIND="INTS_COMPUTED" SIZE="2" LEVEL="BASIC">
%%Keyword: BiNatOrb basic
%%%<HELP>
%%%+Enter the number of eigenstates, for which binatural orbitals should
%%%+be computed and written to file. These will be written together with
%%%+the singular values in the usual format used by MOLCAS.
%%%</HELP>
%%%</KEYWORD>
The next entry gives the number of transitions for which binatural
orbitals will be computed. Then a line should follow for each transition,
with the two states involved. The binatural orbitals will be written, formatted, commented,
and followed by singular values, on two files for each transition.
For file names, see the Files section.
The format allows their use as standard orbital input files to
other \molcas\ programs.
%---
\item[ORBItals]
%%Keyword: Orbitals advanced
%%+Print out the molecular orbitals read from each JOBIPH file.
Print out the Molecular Orbitals read from each
\file{JOBIPH} file.
%---
\item[OVERlaps]
%%Keyword: Overlaps advanced
%%+Print out the overlap integrals between the various orbital sets.
Print out the overlap integrals between the various orbital sets.
%---
\item[CIPRint]
%%Keyword: CIPrint advanced
%%+Print out the CI coefficients read from JOBIPH.
Print out the CI coefficients read from
\file{JOBIPH}.
%---
\item[THRS]
%%%<KEYWORD MODULE="RASSI" NAME="THRS" APPEAR="Threshold for CI coeff."
%%% KIND="REAL" LEVEL="ADVANCED">
%%Keyword: Thrs advanced
%%%<HELP>
%%+Enter the threshold for printing CI coefficients. Default 0.05.
%%%</HELP>
The next line gives the threshold for printing CI coefficients. The
default value is 0.05.
%%%</KEYWORD>
%---
\item[DIPR]
%%%<KEYWORD MODULE="RASSI" NAME="DIPR" APPEAR="Threshold dipole intensities"
%%% KIND="REAL" MIN_VALUE="0.0" DEFAULT_VALUE="1.0D-5" LEVEL="ADVANCED">
%%Keyword: DIPR <advanced>
%%%<HELP>
%%+Enter the threshold for printing dipole intensities.
%%+Default is 1.0D-5.
%%%</HELP>
The next entry gives the threshold for printing dipole intensities.
Default is 1.0D-5.
%%%</KEYWORD>
%---
\item[QIPR]
%%%<KEYWORD MODULE="RASSI" NAME="QIPR" APPEAR="Threshold quadrupole intensities"
%%% KIND="REAL" MIN_VALUE="0.0" DEFAULT_VALUE="1.0D-5" LEVEL="ADVANCED">
%%Keyword: QIPR <advanced>
%%%<HELP>
%%+Enter the threshold for printing quadrupole intensities.
%%+Default is 1.0D-5.
%%+Will overwrite any value choosen for dipole intensities.
%%%</HELP>
The next entry gives the threshold for printing quadrupole intensities.
Default is 1.0D-5.
Will overwrite any value chosen for dipole intensities.
%%%</KEYWORD>
%---
\item[QIALL]
%%%<KEYWORD MODULE="RASSI" NAME="QIALL" APPEAR="Print all quadrupole intensities"
%%% KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: QIALL <advanced>
%%%<HELP>
%%+Print all quadrupole intensities.
%%%</HELP>
Print all quadrupole intensities.
%%%</KEYWORD>
%---
\item[TMOS]
%%%<KEYWORD MODULE="RASSI" NAME="TMOS" APPEAR="Transition moments - oscillator strength"
%%% KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: TMOS <advanced>
%%%<HELP>
%%+Activate the computation of oscillators strengths (and transition moments) using the
%%+non-relativistic Hamiltonian with the explicit Coulomb-field vector operator (A) in
%%+the weak field approximation.
%%%</HELP>
Activate the computation of oscillators strengths (and transition moments) using the
non-relativistic Hamiltonian with the explicit Coulomb-field vector operator (A) in
the weak field approximation.
%%%</KEYWORD>
%---
\item[L-EF]
%%%<KEYWORD MODULE="RASSI" NAME="L-EFF" APPEAR="Order of Lebedev integration"
%%% KIND="INT" MIN_VALUE="0" DEFAULT_VALUE="5" LEVEL="ADVANCED">
%%Keyword: L-Eff <advanced>
%%%<HELP>
%%+Set the order of the Lebedev grids used in the interpolation of the solid angles
%%+in association with the TMOS option. Default value is 5.
%%+Other allowed values are: 7, 11, 17, 23, 29, 35, 41, 47, 53, and 59.
%%%</HELP>
Set the order of the Lebedev grids used in the interpolation of the solid angles
in association with the \keyword{TMOS} option. Default value is 5.
Other allowed values are: 7, 11, 17, 23, 29, 35, 41, 47, 53, and 59.
%%%</KEYWORD>
%---
\item[K-VE]
%%%<KEYWORD MODULE="RASSI" NAME="K-VECTOR" APPEAR="The wave k-vector"
%%% KIND="REALS" SIZE="3" LEVEL="ADVANCED">
%%Keyword: k-vector <advanced>
%%%<HELP>
%%+Define the direction of the incident light for which we will
%%+compute transition moments and oscillator strengths. The keyword
%%+is followed by three reals specifying the direction. The values
%%+do not need to be normalized.
%%%</HELP>
Define the direction of the incident light for which we will
compute transition moments and oscillator strengths. The keyword
is followed by three reals specifying the direction. The values
do not need to be normalized.
%%%</KEYWORD>
%---
\item[RFPE]
%%%<KEYWORD MODULE="RASSI" NAME="RFPE" APPEAR="Response field"
%%% KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: Rfpe basic
%%%<HELP>
%%+RASSI will read from RUNOLD (if not present defaults to RUNFILE) a response field contribution
%%+and add it to the Fock matrix.
%%%</HELP>
\program{RASSI} will read from \file{RUNOLD} (if not present defaults to \file{RUNFILE})  a response field contribution
and add it to the Fock matrix.
%%%</KEYWORD>
%---
\item[HCOM]
%%%<KEYWORD MODULE="RASSI" NAME="HCOMPUTE" APPEAR="Computed Hamiltonian"
%%% KIND="SINGLE" LEVEL="BASIC">
%%Keyword: HCom basic
%%%<HELP>
%%+The spin-free Hamiltonian is computed.
%%%</HELP>
The spin-free Hamiltonian is computed.
%%%</KEYWORD>
%---
\item[HEXT]
%%%<KEYWORD MODULE="RASSI" NAME="HEXT" APPEAR="External Hamiltonian"
%%% KIND="STRINGS" LEVEL="ADVANCED">
%%Keyword: HExt advanced
%%%<HELP>
%%+The spin-free Hamiltonian is read from a file instead of being computed.
%%%</HELP>
%%+It is read from the following entries, as a triangular matrix: One element
%%+of the first row, two from the next, etc, as list-directed input of reals.
It is read from the following few lines, as a triangular matrix: One element
of the first row, two from the next, etc, as list-directed input of reals.
%%%</KEYWORD>
%---
\item[HEFF]
%%%<KEYWORD MODULE="RASSI" NAME="HEFF" APPEAR="Effective Hamiltonian"
%%% KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: HEff advanced
%%%<HELP>
%%+A spin-free effective Hamiltonian is read from JOBIPH instead of being computed.
%%+It must have been computed by an earlier program. Presently, this is done by
%%+a multi-state calculation using CASPT2.
%%%</HELP>
A spin-free effective Hamiltonian is read from \file{JOBIPH} instead of being computed.
It must have been computed by an earlier program. Presently, this is done by
a multi-state calculation using \program{CASPT2}. In the future, other programs may add
dynamic correlation estimates in a similar way.
%%%</KEYWORD>
%---
%%%<KEYWORD MODULE="RASSI" NAME="EJOB" APPEAR="MS-CASPT2 Hamiltonian"
%%% KIND="SINGLE" LEVEL="ADVANCED">
\item[EJOB]
%%Keyword: EJob advanced
%%%<HELP>
%%+The spin-free effective Hamiltonian is assumed to be diagonal, with energies
%%+being read from a JOBMIX file from a multi-state CASPT2 calculation.
%%%</HELP>
The spin-free effective Hamiltonian is assumed to be diagonal, with energies
being read from a \file{JOBMIX} file from a multi-state \program{CASPT2} calculation.
In the future, other programs may add dynamic correlation estimates in a similar way.
%%%</KEYWORD>
%-----------------------------
\item[TOFIle]
%%Keyword: TOfile basic
%%+Signals that a set of files with data from Rassi should be
%%+created. This keyword is necessary if QmStat is to be run
%%+afterwards.
Signals that a set of files with data from \program{Rassi} should be
created. This keyword is necessary if \program{QmStat} is to be run
afterwards.
%---------------------
%%%<KEYWORD MODULE="RASSI" NAME="XVIN" APPEAR="input expectation values"
%%% KIND="SINGLE" LEVEL="ADVANCED">
\item[XVIN]
%%Keyword: XVIN basic
%%%<HELP>
%%+Demand printing expectation values of all selected one-electron
%%+properties, for the input RASSCF wave functions.
%%%</HELP>
Demand for printing expectation values of all selected one-electron
properties, for the input RASSCF wave functions.
%%%</KEYWORD>
%---
\item[XVES]
%%%<KEYWORD MODULE="RASSI" NAME="XVES" APPEAR="spin-free expectation values"
%%% KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: XVES basic
%%%<HELP>
%%+Demand printing expectation values of all selected one-electron
%%+properties, for the spin-free eigenstates.
%%%</HELP>
Demand for printing expectation values of all selected one-electron
properties, for the spin-free eigenstates.
%%%</KEYWORD>
%---
\item[XVSO]
%%%<KEYWORD MODULE="RASSI" NAME="XVSO" APPEAR="spin-orbit expectation values"
%%% KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: XVSO basic
%%%<HELP>
%%+Demand printing expectation values of all selected one-electron
%%+properties, for the spin-orbit states.
%%%</HELP>
Demand for printing expectation values of all selected one-electron
properties, for the spin-orbit states.
%%%</KEYWORD>
%---
\item[EPRG]
%%%<KEYWORD MODULE="RASSI" NAME="EPRG" APPEAR="EPR g Matrix"
%%% KIND="REAL" LEVEL="ADVANCED" REQUIRE="SPIN,PROP">
%%Keyword: EPRg advanced
%%%<HELP>
%%+This computes the g matrix and principal g values for the
%%+states lying within the energy range supplied on the next line.
%%+A value of 0.0D0 or negative will select only the ground state,
%%+a value E will select all states within energy E of the ground state.
%%+The states should be ordered by increasing energy in the input.
%%+The angular momentum and spin-orbit coupling matrix elements
%%+need to be available (use keywords SPIN and PROP).
%%%</HELP>
This computes the g matrix and principal g values for the
states lying within the energy range supplied on the next line.
A value of 0.0D0 or negative will select only the ground state,
a value E will select all states within energy E of the ground state.
The states should be ordered by increasing energy in the input.
The angular momentum and spin-orbit coupling matrix elements
need to be available (use keywords \keyword{SPIN} and \keyword{PROP}).
For a more detailed description see ref~\cite{EPRG:2008}.
%%%</KEYWORD>
%---
\item[MAGN]
%%%<KEYWORD MODULE="RASSI" NAME="MAGN" APPEAR="Magnetism"
%%% KIND="REAL" LEVEL="DEV" REQUIRE="SPIN,PROP">
%%Keyword: Magnetic properties <advanced>
%%%<HELP>
%%+This computes the magnetic moment and magnetic susceptibility.
%%+On the next two lines you have to provide the magnetic field and
%%+temperature data. On the first line put the number of magnetic
%%+field steps, the starting field (in Tesla), size of the steps (in Tesla),
%%+and an angular resolution for sampling points in case of powder magnetization
%%+(for a value of 0.0d0 the powder magnetization is deactivated).
%%+The second line reads the number of temperature steps, the starting
%%+temperature (K), and the size of the temperature steps (K).
%%+The angular momentum and spin-orbit coupling matrix elements
%%+need to be available (use keywords SPIN and PROP).
%%+For a more detailed description see J. Phys. Chem. A 113 6149.
%%%</HELP>
This computes the magnetic moment and magnetic susceptibility.
On the next two lines you have to provide the magnetic field and
temperature data. On the first line put the number of magnetic
field steps, the starting field (in Tesla), size of the steps (in Tesla),
and an angular resolution for sampling points in case of powder magnetization
(for a value of 0.0d0 the powder magnetization is deactivated).
The second line reads the number of temperature steps, the starting
temperature (K), and the size of the temperature steps (K).
The angular momentum and spin-orbit coupling matrix elements
need to be available (use keywords \keyword{SPIN} and \keyword{PROP}).
For a more detailed description see ref~\cite{MAGN:2009}.
%%%</KEYWORD>
%---
\item[HOP]
%%%<KEYWORD MODULE="RASSI" NAME="HOP" APPEAR="Trajectory surface hopping algorithm"
%%% KIND="SINGLE" LEVEL="DEV">
%%Keyword: Hop advanced
%%%<HELP>
%%+Allows transitions between electronic states during molecular
%%+dynamics simulations.
%%%</HELP>
Enables a trajectory surface hopping (TSH) algorithm which allow
non-adiabatic transitions between electronic states during molecular
dynamics simulation with \program{DYNAMIX} program. The algorithm
computes the scalar product of the amplitudes of different
states in two consecutive steps. If the scalar product
deviates from the given threshold a transition between the states
is invoked by changing the root for the gradient computation.
The current implementation is working only with SA-CASSCF.
%%%</KEYWORD>
%---
\item[STOVerlaps]
%%%<KEYWORD MODULE="RASSI" NAME="STOV" APPEAR="State overlaps" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: StOverlaps advanced
%%%<HELP>
%%+Computes only the overlaps between the input states.
%%%</HELP>
Computes only the overlaps between the input states.
%%%</KEYWORD>
%---
\item[TRACk]
%%%<KEYWORD MODULE="RASSI" NAME="TRACK" APPEAR="Track root" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: Track advanced
%%%<HELP>
%%+Tries to follow a particular root during an optimization.
%%%</HELP>
Tries to follow a particular root during an optimization.
Needs two \file{JOBIPH} files (see \keyword{NrOfJobIphs}) with the same
number of roots. The first file corresponds to the current iteration,
the second file is the one from the previous iteration (taken as a reference).
With this keyword \program{RASSI} selects the root from the first \file{JOBIPH}
with highest overlap with the root that was selected in the previous
iteration. It also needs \keyword{MDRlxRoot}, rather than \keyword{RlxRoot},
to be specified in \program{RASSCF}.
No other calculations are done by \program{RASSI} when \keyword{Track}
is specified.
%%%</KEYWORD>
%---
\item[DQVD]
%%%<KEYWORD MODULE="RASSI" NAME="DQVD" APPEAR="DQV diabatization" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: DQVD <advanced>
%%%<HELP>
%%+Diabatizes by using dipole, quadrupole, and/or electrostatic potential.
%%%</HELP>
Perfoms DQ$\Phi$ diabatization\cite{Hoyer:2014fk} by using properties that are computed with \program{RASSI}.
Seven properties must be computed with RASSI in order for this keyword to work
($x$,$y$,$z$,$xx$,$yy$,$zz$,$1/r$), they will be automatically selected with the default input
if the corresponding integrals are available (see keywords \keyword{MULT} and \keyword{EPOT} in \program{GATEWAY}).
At present, this keyword also requires \keyword{ALPHa} and \keyword{BETA}, where
\keyword{ALPHa} is the parameter in front of $rr$ and \keyword{BETA} is the parameter
in front of $1/r$.  When \keyword{ALPHa} and \keyword{BETA} are equal to zero, this
method reduces to Boys localized diabatization\cite{Subotnik:2008fk}.
%See Test/input/test393.input for an example.
At present, this method only works for one choice of origin for each quantity.
%%%</KEYWORD>
%---
\item[ALPHa]
%%%<KEYWORD MODULE="RASSI" NAME="ALPHA" APPEAR="Alpha parameter" KIND="REAL" LEVEL="ADVANCED" REQUIRE="DQVD">
%%Keyword: Alpha <advanced>
%%%<HELP>
%%+Alpha parameter in front of the quadrupole term for DQ$\Phi$ diabatization.
%%%</HELP>
\keyword{ALPHa} is the prefactor for the quadrupole term in DQ$\Phi$ diabatization.  This
keyword must be used in conjunction with \keyword{DQVD} and \keyword{BETA}.  You must
specify a real number (e.g. $\alpha = 1.0$ not $\alpha = 1$).
%%%</KEYWORD>
%---
\item[BETA]
%%%<KEYWORD MODULE="RASSI" NAME="BETA" APPEAR="Beta parameter" KIND="REAL" LEVEL="ADVANCED" REQUIRE="DQVD">
%%Keyword: Beta <advanced>
%%%<HELP>
%%+Beta parameter in front of the electrostatic potential term for DQ$Phi$ diabatization.
%%%</HELP>
\keyword{BETA} is the prefactor for the electrostatic potential term in DQ$\Phi$ diabatization.  This
keyword must be used in conjunction with \keyword{DQVD} and \keyword{ALPHa}.  You must
specify a real number (e.g. $\beta = 1.0$ not $\beta = 1$).
%%%</KEYWORD>
%---
\item[TRDI]
%%%<KEYWORD MODULE="RASSI" NAME="TRDI" APPEAR="Transition dipole" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: TRDI <advanced>
%%%<HELP>
%%+Prints out the components and the size of the transition dipole
%%+vector. Only vectors with sizes large than 1.0D-4 a.u. are printed.
%%+See also the TDMN keyword.
%%%</HELP>
Prints out the components and the module of the transition dipole
vector.  Only vectors with sizes large than 1.0D-4 a.u. are printed.
See also the \keyword{TDMN} keyword.
%%%</KEYWORD>
%---
\item[TDMN]
%%%<KEYWORD MODULE="RASSI" NAME="TDMN" APPEAR="Transition dipole threshold" KIND="REAL" LEVEL="ADVANCED" REQUIRE="TRDI">
%%Keyword: TDMN <advanced>
%%%<HELP>
%%+Prints out the components and the module of the transition dipole
%%+vector. On the next line, the minimum size, in a.u., for the dipole
%%+vector to be printed must be given.
%%%</HELP>
Prints out the components and the module of the transition dipole
vector. On the next line, the minimum size, in a.u., for the dipole
vector to be printed must be given.
%%%</KEYWORD>
%---
\item[TRD1]
%%%<KEYWORD MODULE="RASSI" NAME="TRD1" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: TRD1 <advanced>
%%%<HELP>
%%+Prints the 1-electron (transition) densities to ASCII files and to
%%+the HDF5 file rassi.h5.
%%%</HELP>
Prints the 1-electron (transition) densities to ASCII files and to
the HDF5 file \file{rassi.h5}.
%%%</KEYWORD>
%---
\item[TRD2]
%%%<KEYWORD MODULE="RASSI" NAME="TRD2" KIND="SINGLE" LEVEL="ADVANCED">
%%Keyword: TRD2 <advanced>
%%%<HELP>
%%+Prints the 1/2-electron (transition) densities to ASCII files.
%%%</HELP>
Prints the 1/2-electron (transition) densities to ASCII files.
%%%</KEYWORD>

\end{keywordlist}


\subsubsection{Input example}
>>COPY  "Jobiph file 1" JOB001
>>COPY  "Jobiph file 2" JOB002
>>COPY  "Jobiph file 3" JOB003
\begin{inputlisting}
 &RASSI
NR OF JOBIPHS= 3 4 2 2    -- 3 JOBIPHs. Nr of states from each.
1 2 3 4; 3 4; 3 4         -- Which roots from each JOBIPH.
CIPR; THRS= 0.02
Properties= 4; 'MltPl  1'  1   'MltPl  1'  3    'Velocity'  1 'Velocity'  3
* This input will compute eigenstates in the space
* spanned by the 8 input functions. Assume only the first
* 4 are of interest, and we want natural orbitals out
NATO= 4
\end{inputlisting}
%%%</MODULE>
