Skip to content
Snippets Groups Projects
Commit 4f1561e8 authored by Elisa Rebolini's avatar Elisa Rebolini
Browse files

Merge branch 'init-doc' into 'master'

User manual for relaxse.x and prop.x

See merge request !2
parents c53eac46 96da7ec1
No related branches found
No related tags found
1 merge request!2User manual for relaxse.x and prop.x
Pipeline #10320 canceled
The {\sass} code%~\cite{p:relaxse}
does a fully-decontracted Multirefrence Configuration
Interaction (MRCI) calculation using one of the following methods
\begin{itemize}
\item {\bf SAS+S~:} single excitations on all determinants of a reference
space built as in the SAS+S method~\cite{p:SASS}, that is
\begin{itemize}
\item a selected set of determinants (included into a formal Complete
Active Space), denoted as {\sc ref0},
\item all CAS$\,\rightarrow\,$CAS single excitations from all {\sc ref0} determinants,
\item all LIGO$\,\rightarrow\,$CAS single excitations from all {\sc ref0} determinants,
\item all CAS$\,\rightarrow\,$LIGV single excitations from all {\sc ref0}
determinants,
\item all LIGO$\,\rightarrow\,$LIGV single excitations from all {\sc ref0} determinants,
\end{itemize}
\item {\bf MRSCI~:} single excitations on all determinants of a selected reference space
(included into a formal Complete Active Space);
\item {\bf MRSDCI~:} single and double excitations on aall determinants of selected reference space
(included into a formal Complete Active Space);
\item {\bf CAS+S~:} single excitations on all determinants of a Complete
Active Space;
\item {\bf CAS+SD~:} single and double excitations on all determinants of a
Complete Active Space;
\item {\bf CAS+DDCI~:} single and double excitations from the Difference
Dedicated Configuration Interaction space~\cite{DDCI1992,DDCI1995,DDCI1997}, on all determinants of a
Complete Active Space.
\end{itemize}
%%% Local Variables:
%%% coding: utf-8-unix
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
File added
%===============================================================================
% LaTeX style file for EPCISO documents, September 1996
%===============================================================================
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{epciso}[2004/11/20]
\RequirePackage[french,english]{babel}
\RequirePackage{times}
\RequirePackage{longtable}
\RequirePackage[pdftex,
colorlinks=true,
urlcolor=rltblue, % \href{...}{...}
anchorcolor=rltbrightblue,
filecolor=rltgreen, % \href*{...}
linkcolor=rltred, % \ref{...} and \pageref{...}
menucolor=darkblue,
citecolor=rltbrightblue,
pagebackref,
pdfstartview=FitH,
pdfpagemode=UseOutlines, % None, UseThumbs or UseOutlines
bookmarks,
bookmarksopen]{hyperref}
\RequirePackage[pdftex]{graphicx}
\RequirePackage[pdftex]{color}
\definecolor{rltbrightred}{rgb}{1,0,0}
\definecolor{rltred}{rgb}{0.75,0,0}
\definecolor{rltdarkred}{rgb}{0.5,0,0}
%-------------------------
% Bibliography as footnote
%-------------------------
%\RequirePackage{footbib}
%\let\cite\footcite
%\let\bibliography\footbibliography
%\let\bibliographystyle\footbibliographystyle
%-------------------------------------------------------------------------------
% horisontal
\setlength\oddsidemargin {5mm}
\setlength\evensidemargin {0mm}
\setlength\textwidth {\paperwidth}
\addtolength\textwidth {-2in}
\addtolength\textwidth {-\oddsidemargin}
% vertical
\setlength\topmargin {0mm}
%\setlength\headheight {0mm}
%\setlength\headsep {0mm}
%\setlength\topskip {0mm}
%\setlength\footskip {0mm}
%\setlength\footheight {0mm}
\setlength\textheight {\paperheight}
\addtolength\textheight {-2in}
\addtolength\textheight {-\topmargin}
\addtolength\textheight {-\headheight}
\addtolength\textheight {-\headsep}
%\addtolength\textheight {-\footskip}
%-------------------------------------------------------------------------------
\hyphenation{cas-scf}
\hyphenation{ras-scf}
%-------------------------------------------------------------------------------
\parindent 0pt
\parskip .7em plus 2pt minus 2pt
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\def\@chapapp{Manuel du programme}
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{1}
\raggedbottom
%-------------------------------------------------------------------------------
\ifcase\@ptsize
\font\inputfont=cmtt9
\font\sourcefont=cmtex9
\font\keyfont=cmcsc10
\font\cmndfont=cmss10
\font\prgmfont=cmtt10
\font\filefont=cmsltt10
\font\varfont=cmr10
\font\ftnfont=cmss10
\or
\font\inputfont=cmtt9
\font\sourcefont=cmtex9
\font\keyfont=cmcsc10 scaled \magstephalf
\font\cmndfont=cmss10 scaled \magstephalf
\font\prgmfont=cmtt10 scaled \magstephalf
\font\filefont=cmsltt10 scaled \magstephalf
\font\varfont=cmr10 scaled \magstephalf
\font\ftnfont=cmss10 scaled \magstephalf
\or
\font\inputfont=cmtt9 scaled \magstephalf
\font\sourcefont=cmtex9 scaled \magstephalf
\font\keyfont=cmcsc10 scaled \magstep1
\font\cmndfont=cmss10 scaled \magstep1
\font\prgmfont=cmtt10 scaled \magstep1
\font\filefont=cmsltt10 scaled \magstep1
\font\varfont=cmr10 scaled \magstep1
\font\ftnfont=cmss10 scaled \magstep1
\fi
%-------------------------------------------------------------------------------
%\def\logo[#1]{{\includegraphics[width=#1]{logo}}}
\def\namelist#1{\fbox{\inputfont\obeyspaces\catcode`\_=11\catcode`\&=11 #1}}
%\def\epciso{$\cal EPCISO$}
\def\epcisothis{\epciso\hbox{.\version}}
\def\epcisoi{\epciso\hbox{-1}}
\def\epcisoii{\epciso\hbox{-2}}
\def\epcisoiii{\epciso\hbox{-3}}
\def\epcisoiv{\epciso\hbox{-4}}
\def\epcisov{\epciso\hbox{-5}}
\def\epcisovi{\epciso\hbox{-6}}
\def\epcisovii{\epciso\hbox{-7}}
\def\epcisoviii{\epciso\hbox{-8}}
\def\epcisoxi{\epciso\hbox{-9}}
\def\keyword#1{{\keyfont #1}}
\def\program#1{{\tt\uppercase{#1}}}
\def\command#1{{\cmndfont #1}}
\def\file#1{{\filefont #1}}
\def\ftncode#1{{\tt #1}}
\def\flowchart#1{\includegraphics{tutorials/flow-#1}}
\def\etal{\textit{et al.}}
%-------------------------------------------------------------------------------
% List of input decks
\newenvironment{inputlisting}%
{\noindent\vskip 6pt\begingroup%
\inputfont\baselineskip10pt\parskip=0pt\parindent=6pt%
\catcode`\&=11\catcode`\$=11\catcode`\_=11\catcode`\#=11%
\obeylines\catcode`\ =11%
\def\cc!{{\char18}}%
}%
{\endgroup\vskip 6pt}
%-------------------------------------------------------------------------------
% List of source code
\newenvironment{sourcelisting}%
{\noindent\vskip 6pt\begingroup%
\sourcefont\baselineskip10pt\parskip=0pt\parindent=6pt%
\catcode`\&=11\catcode`\$=11\catcode`\_=11\catcode`\#=11%
\obeylines\catcode`\ =11%
\def\cc!{{\inputfont\char18}}%
}%
{\endgroup\vskip 6pt}
%-------------------------------------------------------------------------------
% List of programs
\def\prgmmklab#1{\prgmfont#1\hfil}
\newenvironment{programlist}%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{\it programme}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\prgmmklab%
\item[\it Programmes]{\it But}\nopagebreak\medskip\nopagebreak%
\hrule\nopagebreak}%
{\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}}
%-------------------------------------------------------------------------------
% List of files
\def\filemklab#1{\filefont #1\hfil}
\newenvironment{filelist}%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{\it fichier}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\filemklab%
\item[\it Fichiers]{\it Contient}\nopagebreak\medskip\nopagebreak%
\hrule\nopagebreak}%
{\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}}
%-------------------------------------------------------------------------------
% List of commands
\def\cmndmklab#1{\cmndfont #1\hfil}
\newenvironment{commandlist}%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{\it commande}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\cmndmklab%
\item[\it Commandes]{\it But}\nopagebreak\medskip\nopagebreak%
\hrule\nopagebreak}%
{\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}}
%-------------------------------------------------------------------------------
% List of variables
\def\cmndvarlab#1{\varfont #1\hfil}
\newenvironment{variablelist}%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{\it variable}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\cmndvarlab%
\item[\it Variables]{\it Signification}\nopagebreak\medskip\nopagebreak%
\hrule\nopagebreak}%
{\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}}
%-------------------------------------------------------------------------------
% List of keywords
\def\keymklab#1{\keyfont #1\hfil}
\newenvironment{keywordlist}%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{\it met clef}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\keymklab%
\item[\it Mot clef]{\it Signification}\nopagebreak\medskip\nopagebreak%
\hrule\nopagebreak}%
{\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}}
%-------------------------------------------------------------------------------
% List of subroutine syntax
\newif\ifarguments\argumentsfalse
\def\synmklab#1{\tt #1\hfil\global\argumentstrue}
\newenvironment{syntaxlist}[1]%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{---}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\synmklab%
\item[\bf Syntaxe:]{#1}\nopagebreak\medskip\nopagebreak%
\global\argumentsfalse%
\hrule\nopagebreak}%
{\ifarguments\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}%
\else\medskip\end{list}\fi}
%-------------------------------------------------------------------------------
% List of general items
\def\whatmklab#1{\currfont #1\hfil}
\newenvironment{whatnotlist}[3]%
{\noindent\medskip%
\hrule\nopagebreak\smallskip\nopagebreak%
\hrule\nopagebreak%
\begin{list}%
{~}%
{\topsep0mm\labelsep5mm\labelwidth30mm\leftmargin35mm\rightmargin5mm}\nopagebreak%
\let\makelabel=\whatmklab%
\let\currfont=#1
\item[\it #2]{\it #3}\nopagebreak\medskip\nopagebreak%
\hrule\nopagebreak}%
{\nopagebreak\medskip\nopagebreak\hrule\medskip\end{list}}
%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
% Define command \visiblespace
\makeatletter
\newsavebox{\@visiblespacebox}
\begin{lrbox}{\@visiblespacebox}
\verb*| |
\end{lrbox}
\def\visiblespace{\usebox{\@visiblespacebox}}
\makeatother
\subsection{Input files}
The files required by the \sass code are the following.
\begin{filelist}
\item[INPUT]~: the input file
\item[prefix.ref0]: the {\sc ref0} short list of determinants. From each
determinant in \file{prefix.ref0} all other determinants to get the desired
spin configurations will be generated.
\item[prefix.TraOne]: the \file{TraOne} frile issued from \program{motra}.
\item[prefix.TraInt]: the \file{TraInt} frile issued from \program{motra}.
\item[prefix.restart]: (optional) the wave-function file for restarts.
\devonly{ \item[prefix.mat]: (optional) the Hamiltonian matrix for lreadHmat = .true..}
\end{filelist}
\subsection{Output files}
The files generated by the code are
\begin{filelist}
\item[prefix.out]: the output file.
\item[prefix.det]: (optional) the list of determinants in human readible
format.
\item[prefix.bdet]: the list of determinants in binary format.
\item[prefix.sass]: sass information file.
\item[prefix.restart]: the wave-function file for restarts.
\devonly{ \item[prefix.mat]: (optional, if --nogen and --build-type=Debug) the Hamiltonian matrix.
\item[prefix.mat2]: (optional, if --nogen and --build-type=Debug)) the Hamiltonian matrix (i, j
elm(i,j) format
\item[prefix.bmat]: (optional, if --nogen and --build-type=Debug)) the Hamiltonian matrix in
binary format
\item[prefix.fock]: (optional, if iprint $>$ 1) the Fock matrix }
\end{filelist}
\subsection{The \file{INPUT} File }
This file is divided in several Fortran namelists. Let us remember that
fortran is insensitive to case, except for file names. The character case in
the following namelist are only for better understanding of the variable
purpose. A Fortran namelist should be given as follow
\begin{verbatim}
&namelist_name
param1= x, param2=y, ...
&end
\end{verbatim}
The required namelists are the following ones \vspace*{-2.5ex}
\begin{itemize} \itemsep -0.5ex
\item SassInp
\item InfomMolcasInp
\item OrbInp
\item VecInp
\item DavidInp
\item PropInp
\end{itemize}
\begin{description} \itemsep 3ex
\item[SassInp]~: dedicated to general informations.
\begin{keywordlist}
\item[prefix]: prefix for all code files except \file{INPUT}.
\item[print\_det]: (optional, default \ftncode{.false.}) to print the
determinants list in \file{prefix.det}.
\item[iprint]: (optional, default \ftncode{0}) printinng options.
\begin{itemize}
\item \ftncode{0}: no debug print
\item \ftncode{1}: print individual block timings
\item \ftncode{2}: print the Fock matrix
\end{itemize}
\item[method]: (optional, default \ftncode{SAS+S}) method for determinant generation.
\begin{itemize}
\item \keyword{SAS+S} : SASS method.
\item \keyword{CAS+S} : complete active space + single excitations on all
determinants of the CAS.
\item \keyword{CAS+SD} : complete active space + single and double excitations on all
determinants of the CAS.
\item \keyword{CAS+DDCI} : complete active space + single and double
excitations belonging to the difference dedicated configuration
interaction method.
\end{itemize}
\item[sizebatch] : (optional, default \ftncode{40}) size of blocks for MPI
calculations. Recommended size for large calculations~= \ftncode{number of OpenMP threads}.
\item[restart] : (optional, default \ftncode{.false.}) to restart a calculation from a
previous job, file \file{prefix.restart} needs to be present .
\devonly{
\item[idiag] : (optional, default \ftncode{1}) diagonalisation function to
use
\begin{itemize}
\item \ftncode{1-2} : Lapack dsyevd routine
\item \ftncode{3} : Jacobi SCF
\end{itemize}}
\devonly{
\item[lexplicitHmat] : (optional, default \ftncode{.false.})
Compute the Hamiltonian matrix explicitly and write it
on disk in files \file{fort.60} (details of the calculation of each element) and
\file{fort.61}. }
\devonly{
\item[lreadHmat] : ( optional, default \ftncode{.false.}) Read
the Hamiltonian matrice on disk -- to be used with
\ftncode{lexplicitHmat} to compare both matrices.}
\devonly{
\item[mpi\_load\_balance] : (optional, default \ftncode{.true.})
Enable/disable the load balancing in MPI}
\devonly{
\item[nodet\_block] : (optional : default \ftncode{.false.}) Artificially put the
number of determinants in a given block to 0}
\devonly{
\item[iprintHmat] : (optional : default \ftncode{0}) Save and print the
Hamiltonian matrix to file. Only possible if the code is compiled with
the option \ftncode{--nogen --build-type=Debug}
\begin{itemize}
\item \ftncode{1} : print the binary matrix in \file{prefix.bmat}
\item \ftncode{2} : print the binary matrix in \file{prefix.bmat}
and the formatted matrix \file{prefix.mat}
\item \ftncode{3} : print the binary matrix in \file{prefix.bmat},
the formatted matrix \file{prefix.mat} and the indexed one in
\file{prefix.mat2}
\end{itemize}
}
\end{keywordlist}
Typical exemple.
\begin{shell}
&sassinp
prefix="cuo",
sizebatch=20,
method="SAS+S"
&end
\end{shell}
\item[InfoMolcasInp]~: dedicated to provide informations on group symmetry,
usually contained in the \program{molcas} \file{RunFile}.
\begin{keywordlist}
\item[NIrrep]: number of irreducible representations in the symmetry
group.
\item[Ntot]: total number of orbitals.
\item[iIrTb]: group multiplication table.
\item[iChTb]: group character table.
\end{keywordlist}
Typical exemple.
\begin{shell}
&infomolcasinp
nirrep=1,
ntot=118,
iIrTb(1,1) = 1,
iChTb(1,1) = 1
&end
\end{shell}
\item[OrbInp]~: dedicated to orbitals information.
\begin{keywordlist}
\item[NOrb\_gel]: vector, number of frozen orbitals.
\item[NOrb\_occ]: vector, number of occupied orbitals.
\item[NOrb\_ligo]: vector, number of occupied bridging orbitals.
\item[NOrb\_act]: vector, number of active/magnetic orbitals.
\item[NOrb\_ligv]: vector, number of virtual bridging orbitals.
\item[Norb\_virt]: vector, number of virtual orbitals.
\item[NOrb\_del]: vector, number of deleted orbitals.
\end{keywordlist}
Typical exemple.
\begin{shell}
&orbinp
norb_gel = 2,
norb_occ = 38,
norb_ligo = 2,
norb_act = 2,
norb_ligv = 0,
norb_virt = 70,
norb_del = 4,
&end
\end{shell}
\item[VecInp]~: dedicated to information on the seaked vectors.
\begin{keywordlist}
\item[NRef0]: number of {\sc ref0} determinants to be read in \file{prefix.ref0}.
\item[NElact]: number of active/magnetic electrons.
\item[NVec]: number of desired eigenstates.
\item[Stot]: $2S+1$, $S$ spin of the seaked states (default
\keyword{stot}=1). Used only to generate the complete {\sc ref0} determinants list.
\item[Sz]: $2S_z$, the spin sector in wich the diagonalisation takes place.
\item[vec\_irrep]: (default 1) the irreducible representation of the
seaked vectors.
\end{keywordlist}
Typical exemple.
\begin{shell}
&vecinp
stot=1,
sz=0,
vec_irrep=1,
nvec=2,
nref0=1,
nelact = 2
&end
\end{shell}
\item[DavidInp]~: (experts) dedicated to the Davidson procedure fine tuning.
\begin{keywordlist}
\item[SizeHeffDavidson]: (optional, default \ftncode{10}) \keyword{SizeHeffDavidson} $\times$
\keyword{NVec} is the size of the Davidson matrix. The code memory allocation
should be at least
2 $\times$ \keyword{SizeHeffDavidson} $\times$ \keyword{NVec} $\times$ 8 bytes.
\item[NIterDavidson]: (optional, default \ftncode{100}) maximum number of Davidson iterations.
\item[tol\_orth]: (optional, default \ftncode{$10^{-15}$}) Schmidt's orthogonalisation
maximum error.
\item[tol\_norm]: (optional, default \ftncode{$10^{-15}$}) normalisation maximum error.
\item[tol\_conv]: (optional, default \ftncode{$10^{-8}$}) convergence criterium (energy
equivalent).
\item[iter0]: (optional, default \ftncode{0}) last iteration number of the previous
run in case of a restart.
\item[conv\_ener]: (optional, default \ftncode{.false.}) activate the convergence on
energy in addition to vectors.
\devonly{
\item[debug\_dav]: (optional, default \ftncode{.false.}) Activates debug
tests and printing in the Davidson procedure (in \file{prefix.output}
and in \file{fort.666})
}
\end{keywordlist}
Typical exemple.
\begin{shell}
&davidinp
&end
\end{shell}
\end{description}
%%% Local Variables:
%%% coding: utf-8-unix
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
The \program{\prop} computes properties from the wave functions issued from the
\program{\sass} code.
It always prints out the projection of the \program{\sass} wave functions on
the CAS.
This is presently the only property implemented.
\subsection{Input files}
The files required by the \program{\prop} code are the following.
\begin{filelist}
\item[INPUT]~: the input file (same as the \sass code + \&propinp namelist
\item[prefix.bdet]: the list of determinants in binary format.
\item[prefix.sass]: sass information file.
\item[prefix.restart]: (optional) the wave-function file for restarts.
\end{filelist}
\subsection{Output files}
The files generated by the code are
\begin{filelist}
\item[prefix.outprop]: the output file.
\end{filelist}
\subsection{The \file{INPUT} File }
This file is divided in several Fortran namelists. The same namelists as for
the \program{\sass} calculation and an additinal namelist specific for properties
calculations.
\begin{description} \itemsep 3ex
\item[SassInp]~: identical to the \program{\sass} calculation one.
\item[InfoMolcasInp]~: identical to the \program{\sass} calculation one.
\item[OrbInp]~: identical to the \program{\sass} calculation one.
\item[VecInp]~: identical to the \program{\sass} calculation one.
\item[DavidInp]~: identical to the \program{\sass} calculation one.
\item[PropInp]~:
\begin{keywordlist}
\item[nprop]: number of properties to be computed in addition to the
printing of the \program{\sass} wave functions projection on
the CAS. \\
\item[whichprop]: list of the \keyword{nprop} \keyword{keywords} of the
properties to be computed \\
\devonly{Properties to be implemented in near future \\
\keyword{pref1}: printing of the \program{\sass} wave functions projection
on the Ref1 space \\
\keyword{lcoef}: printing of the \program{\sass} wave functions
coefficients larger than 0.05. \\
\keyword{dens}: one-particule density matrix calculation \\
\keyword{dens2}: two-particules density matrix calculation.
}
\end{keywordlist}
Typical exemple.
\begin{shell}
&propinp
nprop=2
whichprop = 'lcoef', 'dens'
&end
\end{shell}
\end{description}
%%% Local Variables:
%%% coding: utf-8-unix
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
File added
File added
The \program{\sass} code uses a direct algorithm in order to treat large
numbers of determinants (typically up to $10^8$, $10^9$), i.e. each matrix
element is recomputed on-the-fly.
The determinants are divided in 9 blocks, denoted
$D_{\text{Nel}}^{\text{Nexc}}$, where \verb|Nel| is the number of additional
electrons in the active part with respect to the {\sc Ref0} configurations,
and \verb|Nexc| is the number of additional excitations outside of the active
space. The \program{\sass} code has both MPI and OpenMP parallelization
driven both by integral and determinant blocks. The MPI parallelisation is
done on the pair integral-kind~/~determinant-block. When the determinant
blocks are very large, it is possible to divide the calculation into smaller
MPI parts by batching the determinants. However, the gain is not systematic as
the integrals are read from disk for each MPI process and the overhead can be
large.
Within each MPI process an OpenMP parallelisation is done on the outer particle or
hole loop.
For an optimal use of the code the user should adjust the number of MPI
precesses, OpenMP threads and the size of the batches according to her/his
problem and computer system. In order to guide the user for such choices we provide below
performance testing for the most typical cases. These data are taken from ref.~\cite{p:relaxse}.
\begin{table}[h]
\caption{Orbital partitioning for the test
calculations. \label{table:orbitals}}
\center \vspace*{-3ex}
\begin{tabular}{l|ccccc| >{\raggedleft
\arraybackslash}p{2cm}}
\hline
Test set & \verb.nocc. & \verb.nligo. & \verb.nact. & \verb.nligv. & \verb.nvirt. &
\verb.ndet. \hfill \\
\hline \hline
\multirow{4}{*}{\textsc{\color{red} ligo}}& 49& 2& 8& 0& 140& 30 267 828 \\
&47& 4& 8& 0& 140& 53 017 324 \\
&45& 6& 8& 0& 140& 74 811 684 \\
&43& 8& 8& 0& 140& 95 650 908 \\
\hline
\multirow{4}{*}{\textsc{\color{blue} ligv}} &51& 0& 8& 2& 138& 30 721 372 \\
&51& 0& 8& 4& 136& 54 531 036 \\
&51& 0& 8& 6& 134& 77 992 188 \\
&51& 0& 8& 8& 132& 101 104 828 \\
\hline
\end{tabular}
\end{table}
\begin{figure}[h!]
\begin{minipage}[c]{6cm}
\includegraphics[width=5.5cm]{cpu.pdf}
\end{minipage} \hfill
\begin{minipage}[c]{9cm}
\caption[tWall/ndet]{Total CPU-time as a function of the number of
determinants for either occupied (ligo) or virtual (ligv) ligand
orbitals. Calculations
were performed with 4 or 6 MPI processes, 10 to 40 OpenMP threads and with
(circles) and without (stars) batching of the determinants.}
\end{minipage}
\label{fig:cpu}
\end{figure}
\begin{figure}[h!]
\begin{minipage}[c]{6cm}
\includegraphics[width=5.5cm]{openmp.pdf}
\end{minipage} \hfill
\begin{minipage}[c]{9cm}
\caption[MPI speedup]{OpenMP speedup compared to calculations with 10 OpenMP
treads. The number of MPI processes is 6, the batching
of the virtual orbitals was turned off.}
\end{minipage}
\label{fig:omp}
\end{figure}
\begin{figure}[h!]
\begin{minipage}[c]{6cm}
\includegraphics[width=5.5cm]{mpi.pdf}
\end{minipage} \hfill
\begin{minipage}[c]{9cm}
\caption[MPI speedup]{MPI speedup compared to a calculation with 4 MPI
processes. The number of OpenMP threads is 40, as well as the size of the
batches.}
\end{minipage}
\label{fig:omp}
\end{figure}
%%% Local Variables:
%%% coding: utf-8-unix
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
@article{p:SASS,
author = {Gell{\'e}, A. and Varignon, J. and Lepetit, M.-B.},
journal = {EPL (Europhysics Letters)},
number = {3},
pages = {37003},
title = {Accurate evaluation of magnetic coupling between atoms with numerous open shells: An ab initio method},
volume = {88},
year = {2009}
}
@article{DDCI1992,
author = {Miralles, J. and Daudey, J. P. and Caballol, R.},
journal = {Chem. Phys. Lett.},
pages = {555},
volume = {198},
year = {1992}
}
@article{DDCI1995,
author = {{\it et al.}, V. M. Garc{\'\i}a},
journal = {Chem. Phys. Lett.},
pages = {222},
volume = {238},
year = {1995}
}
@article{DDCI1997,
author = {Garc{\'\i}a, V. M. and Reguero, M. and Caballol, R.},
journal = {Theor. Chem. Acc.},
pages = {50},
volume = {98},
year = {1997}
}
@article{lcas+s2003,
author = {Gell{\'e}, A. and Munzarov{\'a}, M. L. and Lepetit, M.B. and Illas, F.},
journal = {Phys. Rev. },
pages = {125103},
volume = {B 68},
year = {2003}
}
@article{lcas+s2002,
author = {Calzado, C J. and Sanz, J. F. and Malrieu, J. P.},
journal = {J. Chem. Phys. },
pages = {5158},
volume = {112},
year = {2002}
}
@article{CASSCF,
abstract = {A density matrix formulation of the super-CI MCSCF method is presented. The MC expansion is assumed to be complete in an active subset of the orbital space, and the corresponding CI secular problem is solved by a direct scheme using the unitary group approach. With a density matrix formulation the orbital optimization step becomes independent of the size of the CI expansion. It is possible to formulate the super-CI in terms of density matrices defined only in the small active subspace; the doubly occupied orbitals (the inactive subspace) do not enter. Further, in the unitary group formalism it is straightforward and simple to obtain the necessary density matrices from the symbolic formula list. It then becomes possible to treat very long MC expansions, the largest so far comprising 726 configurations. The method is demonstrated in a calculation of the potential curves for the three lowest states (1\ensuremath{\Sigma}+g, 3\ensuremath{\Sigma}+u and 3\ensuremath{\Pi}g) of the N2 molecule, using a medium-sized gaussian basis set. Seven active orbitals were used yielding the following results: De: 8.76 (9.90), 2.43 (3.68) and 3.39 (4.90) eV; re: 1.108 (1.098), 1.309 (1.287) and 1.230 (1.213) {\AA}; \ensuremath{\omega}e: 2333 (2359), 1385 (1461) and 1680 (1733) cm−1, for the three states (experimental values within parentheses). The results of these calculations indicate that it is important to consider not only the dissociation limit but also the united atom limit in partitioning the occupied orbital space into an active and an inactive part.},
author = {Roos, Bj{\"o}rn O. and Taylor, Peter R. and Sigbahn, Per E.M.},
doi = {10.1016/0301-0104(80)80045-0},
issn = {0301-0104},
journal = {Chemical Physics},
number = {2},
pages = {157--173},
title = {A complete active space SCF method (CASSCF) using a density matrix formulated super-CI approach},
url = {http://www.sciencedirect.com/science/article/pii/0301010480800450},
volume = {48},
year = {1980}
}
@article{Davidson,
author = {Davidson, E. R.},
journal = {J. Comput. Phys.},
pages = {87},
title = {The Iterative Calculation of a Few of the Lowest Eigenvalues and Corresponding Eigenvectors of Large Real-Symmetric Matrices},
volume = {17},
year = {1975}
}
@article{DavisonBdav,
author = {Liu, B},
journal = {Numerical Algorithms in Chemistry: Algebraic Methods},
pages = {49--53},
publisher = {Lawrence Berkeley Laboratory, Berkeley, CA},
title = {The simultaneous expansion method for the iterative solution of several of the lowest-lying eigenvalues and corresponding eigenvectors of large real-symmetric matrices},
year = {1978}
}
@article{p:relaxse,
author = {Rebolini, Elisa and Lepetit, Marie-Bernadette},
journal = {The Journal of Chemical Physics},
number = {16},
pages = {164116},
title = {For an ab initio calculation of the magnetic excitations: RelaxSE!},
volume = {154},
year = {2021},
doi = {10.1063/5.0045672},
url = {https://doi.org/10.1063/5.0045672}
}
%%% Local Variables:
%%% coding: utf-8-unix
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
%%%
%%%
\ No newline at end of file
File added
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[square,numbers,sort&compress]{natbib}
%\usepackage[english]{babel}
\usepackage{bm}
\usepackage{epciso}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{verbatim}
\usepackage{fullpage}
\usepackage{graphicx}
%\usepackage{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{placeins}
%\usepackage{tikz}
\usepackage{wasysym}
\usepackage{caption}
\usepackage{url}
\usepackage{colortbl}
\usepackage{fancyvrb}
%\usepackage{kbordermatrix}
\usepackage{multirow} % plusieurs lignes ds tabular
\usepackage{longtable} % tables sur plusieurs pages
\usepackage{braket}
\usepackage{amstext} % for \text macro
\usepackage{array} % for \newcolumntype macro
\newcolumntype{C}{>{$}c<{$}} % math-mode version of "l" column type
\newcolumntype{H}{>{\setbox0=\hbox\bgroup$}c<{$\egroup}@{}}
%\usepackage{fdsymbol}
\usepackage{rotating}
%\geometry{
% top=15mm,
% bottom=15mm}
\DefineVerbatimEnvironment{shell}{Verbatim}{
commandchars=\#\{\},
%label=\shelltitle,
frame=single,
samepage=true,
fontsize=\footnotesize
%formatcom=\setcounter{prompt}{0}\start
}
\DefineVerbatimEnvironment{algov}{Verbatim}{
commandchars=\#\{\},
numbers=left,
xleftmargin=10mm,
%label=\shelltitle,
frame=none,
samepage=true,
fontsize=\footnotesize
%formatcom=\setcounter{prompt}{0}\start
}
\newcommand{\CMone}{\text{CM1}}
\newcommand{\CMtwo}{\text{CM2}}
\newcommand{\Id}{\text{Id}}
\newcommand{\sbc}{$\smallblackcircle$}
\newcommand{\swc}{$\smallcircle$}
\newcommand{\sbs}{$\smallblacksquare$}
\newcommand{\sws}{$\smallsquare$}
\newcommand{\Ntot}{N_\text{tot}}
\newcommand{\UP}{$\uparrow$~}
\newcommand{\DN}{$\downarrow$~}
\newcommand{\sass}{RelaxSE}
\newcommand{\prop}{PROP}
%\newcommand\devonly[1]{\textcolor{blue}{#1}}
\newcommand\devonly[1]{}
\definecolor{rltbrightblue}{rgb}{0,0,1}
\title{{\Huge RelaxSE} \\ User's Manual}
\author{Elisa Rebolini$^{1}$ and Marie-Bernadette Lepetit$^{1,2}$ \\
\footnotesize $^1$ Institut Laue Langevin, Grenoble, France \\
\footnotesize $^2$ Institut N\'eel, CNRS, Grenoble, France}
\date{\today}
\begin{document}
\maketitle
\section{Code description}
\input{code}
\section{Code citation}
Please cite the \program{\sass} code as \\
Elisa Rebolini and Marie-Bernadette Lepetit, The Journal of Chemical Physics
{\bf 154}, 164116 (2021).
\section{Input description}
\input{input}
\section{PROP input description}
\input{inputprop}
\section{Code performances}
\input{perf}
\pagebreak
\newpage
\bibliographystyle{apsrev}
\bibliography{relaxe}
\end{document}
%%% Local Variables:
%%% coding: utf-8-unix
%%% mode: latex
%%% TeX-master: "user_manual"
%%% End:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment