working on manual

git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6798 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
Miguel Morales 2016-02-29 23:33:45 +00:00
parent dbb5151c8e
commit fcf50b1de3
3 changed files with 205 additions and 0 deletions

Binary file not shown.

View File

@ -98,6 +98,7 @@
\input{particleset}
\chapter{Trial wavefunction specification}
\input{intro_wavefunction}
\input{spo}
\input{jastrow}
\input{multideterminants}

View File

@ -1,2 +1,206 @@
\subsection{Gaussian basis sets}
\label{sec:gaussianbasis}
In this section we describe the use of localized basis sets to expand the \texttt{sposet}. The general form of a single particle orbital in this case is given by:
\begin{equation}
\phi_i(\vec{r}) = \sum_k C_{i,k} \ \eta_k(\vec{r}),
\end{equation}
where $\{\eta_k(\vec{r})\}$ is a set of M atom-centered basis functions and $C_{i,k}$ is a coefficient matrix. This SPOSet should be used in calculations of finite systems employing an atom-centered
basis set. (While it is possible to use this \texttt{sposet} on calculations of periodic systems, this feature is not currently implemented in QMCPACK.) Examples include calculations of molecules using gaussian basis sets or slater-type basis functions. Even though this section is called "Gaussian basis set" (by far the most common atom-centered basis set), QMCPACK works with any atom-centered basis set built based on either spherical harmonic angular functions or cartesian angular expansions. The radial functions in the basis set can be expanded in either gaussian functions, slater-type functions or numerical radial functions.
In this section we describe the input sections for the atom-centered basis set and the \texttt{sposet} for a single slater determinant trial wavefunction. The input sections for multideterminant trial wavefunctions are described in section \ref{sec:multideterminants}. The basic structure for the input block of a single slater determinant is given below.
\begin{minipage}{\linewidth}
\begin{lstlisting}[caption=Basic input block for a single determinant trial wavefunction using a sposet expanded on an atom-centered basis set.]
<wavefunction id="psi0" target="e">
<determinantset>
<basisset>
...
</basisset>
<slaterdeterminant>
...
</slaterdeterminant>
</determinantset>
</wavefunction>
\end{lstlisting}
\end{minipage}
A list of options for determinantset associated with this sposet is given below.
\begin{table}[h]
\begin{center}
\begin{tabularx}{\textwidth}{l l l l l l }
\hline
\multicolumn{6}{l}{\texttt{determinantset} element} \\
\hline
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{wavefunction}}\\
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{basisset,slaterdeterminant,sposet,multideterminant}}\\
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{name}/\texttt{id} & text & \textit{any} & "" & Name of determinant set. \\
& \texttt{type} & text & see below & "" & Type of \texttt{sposet}. \\
& \texttt{keyword} & text & NMO,GTO,STO & NMO & Type of orbital set generated. \\
& \texttt{transform} & text & yes/no & yes & Transform to numerical radial functions? \\
& \texttt{source} & text & \textit{any} & ion0 & Particle set with the position of atom centers. \\
& \texttt{cuspCorrection} & text & yes/no & no & Apply cusp correction scheme to \texttt{sposet}? \\
% & \texttt{cuspInfo} & text & \textit{any} & "" & File with saved cusp data. \\
\hline
\end{tabularx}
\end{center}
\end{table}
The definition of the set of atom-centered basis functions is given by the \texttt{basisset} block, while the sposet is defined within \texttt{slaterdeterminant}. The basisset input block is composed from a collection of \texttt{atomicBasisSet} input blocks, one for each atomic species in the simulation where basis functions are centered. The general structure for \texttt{basisset} and \texttt{atomicBasisSet} are given below.
\begin{minipage}{\linewidth}
\begin{lstlisting}[caption=Basic input block for \texttt{basisset}.]
<basisset name="LCAOBSet">
<atomicBasisSet name="Gaussian-G2" angular="cartesian" type="Gaussian" elementType="C" normalized="no">
<grid type="log" ri="1.e-6" rf="1.e2" npts="1001"/>
<basisGroup rid="C00" n="0" l="0" type="Gaussian">
<radfunc exponent="5.134400000000e-02" contraction="1.399098787100e-02"/>
...
</basisGroup>
...
</atomicBasisSet>
<atomicBasisSet name="Gaussian-G2" angular="cartesian" type="Gaussian" elementType="C" normalized="no">
...
</atomicBasisSet>
...
</basisset>
\end{lstlisting}
\end{minipage}
\begin{table}[h]
\begin{center}
\begin{tabularx}{\textwidth}{l l l l l l }
\hline
\multicolumn{6}{l}{\texttt{basisset} element} \\
\hline
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{determinantset}}\\
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{atomicBasisSet}}\\
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{name}/\texttt{id} & text & \textit{any} & "" & Name of atom-centered basis set. \\
\hline
\end{tabularx}
\end{center}
\end{table}
\begin{table}[h]
\begin{center}
\begin{tabularx}{\textwidth}{l l l l l l }
\hline
\multicolumn{6}{l}{\texttt{atomicBasisSet} element} \\
\hline
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{basisset}}\\
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{grid,basisGroup}}\\
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{name}/\texttt{id} & text & \textit{any} & "" & Name of atomic basis set. \\
& \texttt{angular} & text & see below & default & Type of angular functions. \\
% & \texttt{type} & text & see below & "" & Type of radial function. \\
& \texttt{expandYlm} & text & see below & yes & Expand Ylm shells? \\
& \texttt{expM} & text & see below & yes & Add sign for $(-1)^{m}$? \\
& \texttt{elementType/species} & text & \textit{any} & e & Atomic species where functions are centered. \\
& \texttt{normalized} & text & yes/no & yes & Are single particle functions normalized? \\
\hline
\end{tabularx}
\end{center}
\end{table}
\begin{table}[h]
\begin{center}
\begin{tabularx}{\textwidth}{l l l l l l }
\hline
\multicolumn{6}{l}{\texttt{basisGroup} element} \\
\hline
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{}}\\
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{}}\\
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{name}/\texttt{id} & text & \textit{any} & "" & Name of determinant set \\
& \texttt{type} & text & \textit{any} & "" & \\
\hline
\end{tabularx}
\end{center}
\end{table}
\begin{minipage}{\linewidth}
\begin{lstlisting}[caption=Basic input block for \texttt{slaterdeterminant} with an atom-centered \texttt{sposet}.]
<slaterdeterminant>
</slaterdeterminant>
\end{lstlisting}
\end{minipage}
\begin{table}[h]
\begin{center}
\begin{tabularx}{\textwidth}{l l l l l l }
\hline
\multicolumn{6}{l}{\texttt{} element} \\
\hline
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{}}\\
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{}}\\
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{name}/\texttt{id} & text & \textit{any} & "" & Name of determinant set \\
& \texttt{} & text & \textit{any} & "" & \\
\hline
\end{tabularx}
\end{center}
\end{table}
\subsubsection{Detailed description of attributes:}
Only non-trivial attributes are described below. Those with simple yes/no options and whose description above is enough to explain the intended behavior are not included.
\texttt{determinantset} attributes:
\begin{itemize}
\item \texttt{type} \\
Type of sposet. For atom-centered based sposets, use type="MolecularOrbital" or type="MO". Other options describe elsewhere in this manual are "spline", "composite", "pw", "heg", "linearopt", etc.
\item \texttt{keyword}/\texttt{key} \\
Type of basis set generated, which doesn't necessarily match the type of the basis set on the input block. The three possible options are: NMO (numerical molecular orbitals), GTO (gaussian-type orbitals), STO (slater-type orbitals). The default option is NMO. By default, QMCPACK will generate numerical orbitals from both GTO and STO types and use cubic or quintic spline interpolation to evaluate the radial functions. This is typically more efficient than evaluating the radial functions in the native basis (gaussians or exponents) and allows for arbitrarily large contractions without any additional cost. To force the use of the native expansion (not recommended), use GTO or STO for each type of input basis set.
\item \texttt{transform}\\
Request (or avoid) a transformation of the radial functions to NMO type. The default and recommended behavior is to transform to numerical radial functions.
\item \texttt{cuspCorrection}\\
Enable (disable) the use of the cusp correction algorithm (CASINO REFERENCE) for a \texttt{basisset} built with GTO functions. The algorithm is implemented as described in (CASINO REFERENCE) and only works with transform="yes" and an input GTO basis set. No further input is needed.
\end{itemize}
\texttt{atomicBasisSet} attributes:
\begin{itemize}
\item \texttt{name/id}\\
Name of the basis set. Names should be unique.
\item \texttt{angular}\\
Type of angular functions used in the expansion. In general, two angular basis functions are allowed: "spherical" (for spherical Ylm functions) and "cartesian" (for functions of the type $x^{n}y^{m}z^{l}$).
%\item \texttt{type}\\ Type of input radial functions. Options are: "Numerical" (for radial functions on a numerical radial grid), "Gaussian" (for an expansion in gaussian functions) and ""
\item \texttt{expandYlm}\\
Determines whether each basis group is expanded across the corresponding shell of m values (for spherical type) or consistent powers (for cartesian functions). Options:
\begin{itemize}
\item "No": Do not expand angular functions across corresponding angular shell.
\item "Gaussian": Expand according to Gaussian03 format. This function is only compatible with angular="spherical". For a given input (l,m), the resulting order of the angular functions becomes: (1,-1,0) for l=1 and (0,1,-1,2,-2,...,l,-l) for general l.
\item "Natural": Expand angular functions according to (-l,-l+1,...,l-1,l).
\item "Gamess": Expand according to Gamess' format for cartesian functions. Notice that this option is only compatible with angular="cartesian". If angular="cartesian" is used, this option is not necessary.
\end{itemize}
\item \texttt{expM}\\
Determines whether the sign of the spherical Ylm function associated with $(-1)^{m}$ is included in the coefficient matrix or not.
\item \texttt{elementType/species}\\
Name of the species where basis functions are centered. Only one atomicBasisSet block is allowed per species. Additional blocks are ignored. The corresponding species must have been previously defined in a \texttt{particleset}.
Basis functions for all the atoms of the corresponding species are included in the basis set, based on the order of atoms in the \texttt{particleset} where the atom is defined.
\end{itemize}
\texttt{basisGroup} attributes:
\begin{itemize}
\item \texttt{}\\
\end{itemize}
\texttt{slaterdeterminant} attributes:
\begin{itemize}
\item \texttt{}\\
\end{itemize}