manual: cleanup hamiltonian section

git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6537 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
Jaron Krogel 2015-08-03 21:00:33 +00:00
parent 1b5e6cad07
commit 0fb465a718
2 changed files with 126 additions and 21 deletions

View File

@ -2,6 +2,7 @@
\label{chap:hamiltobs}
\dev{
\begin{table}[h]
\begin{center}
@ -62,7 +63,7 @@
\end{center}
\end{table}
}
\section{The Hamiltonian}
@ -95,18 +96,23 @@
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{pairpot extpot estimator constant}(deprecated)}\\
\multicolumn{2}{l}{attributes} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{name/id}$^o$ & text & \textit{anything}& h0 & Unique id for this Hamiltonian instance \\
& \texttt{type}$^o$ & text & & generic & \textit{No current function} \\
& \texttt{role}$^o$ & text & primary/extra & extra & Designate as primary Hamiltonian or not \\
& \texttt{source}$^o$ & text & \texttt{particleset.name} & i & Identify classical particleset \\
& \texttt{target}$^r$ & text & \texttt{particleset.name} & e & Identify quantum particlset \\
& \texttt{default}$^o$ & boolean & yes/no & yes & Include kinetic energy term implicitly \\
& \texttt{name/id}$^o$ & text & \textit{anything}& h0 & Unique id for this Hamiltonian instance \\
& \texttt{type}$^o$ & text & & generic & \textit{No current function} \\
& \texttt{role}$^o$ & text & primary/extra & extra & Designate as primary Hamiltonian or not \\
& \texttt{source}$^o$ & text & \texttt{particleset.name} & i & Identify classical particleset \\
& \texttt{target}$^r$ & text & \texttt{particleset.name} & e & Identify quantum particlset \\
& \texttt{default}$^o$ & boolean & yes/no & yes & Include kinetic energy term implicitly \\
\hline
\end{tabularx}
\end{center}
\end{table}
\FloatBarrier
Additional information:
\begin{itemize}
\item{\textbf{target:} Must be set to the name of the quantum particeset. In normal usage, no other attributes should be provided.}
\end{itemize}
% All-electron hamiltonian element
\begin{lstlisting}[caption=All electron Hamiltonian XML element.]
<hamiltonian target="e">
@ -174,13 +180,17 @@
\end{table}
\FloatBarrier
Remarks
Additional information:
\begin{itemize}
\item{If an interaction is between classical (e.g. ions) and quantum (e.g. electrons), \texttt{source}/\texttt{target} should be the name of the classical/quantum particleset.}
\item{\textbf{type:} Used to select the desired pair potential. Must be selected from the list of type options above.}
\item{\textbf{name:} A unique name used to identify this pair potential. Block averaged output data will appear under this name in \texttt{scalar.dat} and/or \texttt{stat.h5} files.}
\item{\textbf{source/target:} These specify the particles involved in a pair interaction. If an interaction is between classical (e.g. ions) and quantum (e.g. electrons), \texttt{source}/\texttt{target} should be the name of the classical/quantum particleset.}
\item{Only \texttt{coulomb, pseudo, mpc} are described in detail below. The older or less used types (\texttt{cpp, numerical, jellium, hardsphere, gaussian, huse, modpostel, oscillatory, skpot, vhxc, modInsKE, LJP\_smoothed, HeSAPT\_smoothed, HFDHE2\_Moroni1995, eHe, HFDHE2}) are not covered.}
\dev{
\item{Available only if \texttt{QMC\_BUILD\_LEVEL>2} and \texttt{QMC\_CUDA} is not defined: \texttt{hardsphere, gaussian, huse, modpostel, oscillatory, skpot}.}
\item{Available only if \texttt{OHMMS\_DIM==3}: \texttt{mpc, vhxc, pseudo}.}
\item{Available only if \texttt{OHMMS\_DIM==3} and \texttt{QMC\_BUILD\_LEVEL>2} and \texttt{QMC\_CUDA} is not defined: \texttt{cpp, LJP\_smoothed, HeSAPT\_smoothed, HFDHE2\_Moroni1995, eHe, jellium, HFDHE2, modInsKE}.}
}
\end{itemize}
@ -210,22 +220,37 @@ Remarks
& \texttt{name/id}$^r$ & text & \textit{anything}& ElecElec & Unique name for interaction\\
& \texttt{source}$^r$ & text & \texttt{particleset.name} &\texttt{hamiltonian.target}& Identify interacting particles\\
& \texttt{target}$^r$ & text & \texttt{particleset.name} &\texttt{hamiltonian.target}& Identify interacting particles\\
& \texttt{pbc}$^o$ & boolean & yes/no & yes$^*$ & Use Ewald summation \\
& \texttt{pbc}$^o$ & boolean & yes/no & yes & Use Ewald summation \\
& \texttt{physical}$^o$& boolean & yes/no & yes & Hamiltonian(yes)/observable(no) \\
& \texttt{forces} & boolean & yes/no & no & \textit{Deprecated} \\
\dev{& \texttt{forces} & boolean & yes/no & no & \textit{Deprecated} \\ }
\hline
\end{tabularx}
\end{center}
\end{table}
\FloatBarrier
Remarks
Additional information
\begin{itemize}
\item{Ewald summation will not be performed if \texttt{simulationcell.bconds== n n n}, regardless of the value of \texttt{pbc}. Similarly, the \texttt{pbc} attribute can only be used to turn off Ewald summation if \texttt{simulationcell.bconds!= n n n}.}
\item{Note: traditional names for electron-electron, electron-ion, and ion-ion terms are \texttt{ElecElec}, \texttt{ElecIon}, and \texttt{IonIon}, respectively. While any choice can be used, the data analysis tools expect to find columns in \texttt{*.scalar.dat} with these names.}
\item{\textbf{type/source/target} See description for the generic \texttt{pairpot} factory element above.}
\item{\textbf{name:} Traditional user-specified names for electron-electron, electron-ion, and ion-ion terms are \texttt{ElecElec}, \texttt{ElecIon}, and \texttt{IonIon}, respectively. While any choice can be used, the data analysis tools expect to find columns in \texttt{*.scalar.dat} with these names.}
\item{\textbf{pbc}: Ewald summation will not be performed if \texttt{simulationcell.bconds== n n n}, regardless of the value of \texttt{pbc}. Similarly, the \texttt{pbc} attribute can only be used to turn off Ewald summation if \texttt{simulationcell.bconds!= n n n}. The default value is recommended.}
\item{\textbf{physical}: If \texttt{physical==yes}, this pair potential is included in the Hamiltonian and will factor into the \texttt{LocalEnergy} reported by QMCPACK and also in the DMC branching weight. If \texttt{physical==no}, then the pair potential is treated as a passive observable but not as part of the Hamiltonian itself. As such it does not contribute to the outputted \texttt{LocalEnergy}. Regardless of the value of \texttt{physical} output data will appear in \texttt{scalar.dat} in a column headed by \texttt{name}.}
\end{itemize}
\begin{lstlisting}[caption=XML element for Coulomb interaction between electrons.]
<pairpot name="ElecElec" type="coulomb" source="e" target="e"/>
\end{lstlisting}
\begin{lstlisting}[caption=XML element for Coulomb interaction between electrons and ions (all-electron only).]
<pairpot name="ElecIon" type="coulomb" source="i" target="e"/>
\end{lstlisting}
\begin{lstlisting}[caption=XML element for Coulomb interaction between ions.]
<pairpot name="IonIon" type="coulomb" source="i" target="i"/>
\end{lstlisting}
\subsection{Pseudopotentials}
% pseudopotential element
@ -265,15 +290,34 @@ Remarks
\end{table}
\FloatBarrier
Remarks
Additional information:
\begin{itemize}
\item{Ewald summation will not be performed if \texttt{simulationcell.bconds== n n n}, regardless of the value of \texttt{pbc}. Similarly, the \texttt{pbc} attribute can only be used to turn off Ewald summation if \texttt{simulationcell.bconds!= n n n}.}
\item{Additional fields will be present in \texttt{*scalar.dat} output files when pseudopotentials are used. The field \texttt{LocalECP} refers to the local part of the pseudopotential. If non-local channels are present, a \texttt{NonLocalECP} field will be added that contains the non-local energy summed over all angular momentum channels.}
\item{If \texttt{format}==table}, QMCPACK looks for \texttt{*.psf} files containing pseudopotential data in a tabular format. The files must be named after the ionic species provided in \texttt{particleset} (\emph{e.g.} \texttt{Li.psf} and \texttt{H.psf}).
\item{If \texttt{format}==xml, additional \texttt{pseudo} child XML elements must be provided (see below). These elements specify individual file names and formats (both the FSAtom XML and CASINO tabular data formats are supported).}
\item{\textbf{type/source/target} See description for the generic \texttt{pairpot} factory element above.}
\item{\textbf{name:} Ignored. Instead default names will be present in \texttt{*scalar.dat} output files when pseudopotentials are used. The field \texttt{LocalECP} refers to the local part of the pseudopotential. If non-local channels are present, a \texttt{NonLocalECP} field will be added that contains the non-local energy summed over all angular momentum channels.}
\item{\textbf{pbc:} Ewald summation will not be performed if \texttt{simulationcell.bconds== n n n}, regardless of the value of \texttt{pbc}. Similarly, the \texttt{pbc} attribute can only be used to turn off Ewald summation if \texttt{simulationcell.bconds!= n n n}.}
\item{\textbf{format:} If \texttt{format}==table, QMCPACK looks for \texttt{*.psf} files containing pseudopotential data in a tabular format. The files must be named after the ionic species provided in \texttt{particleset} (\emph{e.g.} \texttt{Li.psf} and \texttt{H.psf}). If \texttt{format}==xml, additional \texttt{pseudo} child XML elements must be provided (see below). These elements specify individual file names and formats (both the FSAtom XML and CASINO tabular data formats are supported). }
\end{itemize}
\begin{lstlisting}[caption=XML element for pseudopotential electron-ion interaction (psf files).]
<pairpot name="PseudoPot" type="pseudo" source="i" wavefunction="psi0" format="psf"/>
\end{lstlisting}
\begin{lstlisting}[caption=XML element for pseudopotential electron-ion interaction (xml files).]
<pairpot name="PseudoPot" type="pseudo" source="i" wavefunction="psi0" format="xml">
<pseudo elementType="Li" href="Li.xml"/>
<pseudo elementType="H" href="H.xml"/>
</pairpot>
\end{lstlisting}
%\begin{lstlisting}[caption=XML element for pseudopotential electron-ion interaction (CASINO files).]
% <pairpot name="PseudoPot" type="pseudo" source="i" wavefunction="psi0" format="xml">
% <pseudo elementType="Li" href="Li.data"/>
% <pseudo elementType="H" href="H.data"/>
% </pairpot>
%\end{lstlisting}
% pseudo element
% dev notes
@ -320,6 +364,11 @@ Remarks
\FloatBarrier
\begin{lstlisting}[caption=XML element for pseudopotential of single ionic species.]
<pseudo elementType="Li" href="Li.xml"/>
\end{lstlisting}
\subsection{Modified periodic coulomb interaction/correction}
@ -603,7 +652,7 @@ Here $N_s$ is the number of particles of species $s$ and $V$ is the supercell vo
In QMCPACK, an estimate of $g_{ss'}(r)$ is obtained as a radial histogram with a set of $N_b$ uniform bins of width $\delta r$. This can be expressed analytically as
\begin{align}
\tilde{g}_{ss'}(r) = \frac{V}{4\pi r^2N_sN_{s'}}\sum_{i_s=1}^{N_s}\sum_{j_{s'}=1}^{N_{s'}}\frac{1}{\delta r}\int_{r-\delta r/2}^{r+\delta r/2}dr'\delta(r'-|r_{i_s}-r_{j_{s'}}|),
\tilde{g}_{ss'}(r) = \frac{V}{4\pi r^2N_sN_{s'}}\sum_{i=1}^{N_s}\sum_{j=1}^{N_{s'}}\frac{1}{\delta r}\int_{r-\delta r/2}^{r+\delta r/2}dr'\delta(r'-|r_{si}-r_{s'j}|),
\end{align}
where the radial coordinate $r$ is restricted to reside at the bin centers, $\delta r/2, 3 \delta r/2, 5 \delta r/2, \ldots$.
@ -651,7 +700,54 @@ Additional information:
\subsection{Static structure factor, $S(k)$}
% <estimator type="sk" hdf5="yes"/>
The functional form of the species resolved radial pair correlation function operator is
\begin{align}
g_{ss'}(r) = \frac{V}{4\pi r^2N_sN_{s'}}\sum_{i_s=1}^{N_s}\sum_{j_{s'}=1}^{N_{s'}}\delta(r-|r_{i_s}-r_{j_{s'}}|).
\end{align}
Here $N_s$ is the number of particles of species $s$ and $V$ is the supercell volume. If $s=s'$, then the sum is restricted so that $i_s\ne j_s$.
In QMCPACK, an estimate of $g_{ss'}(r)$ is obtained as a radial histogram with a set of $N_b$ uniform bins of width $\delta r$. This can be expressed analytically as
\begin{align}
\tilde{g}_{ss'}(r) = \frac{V}{4\pi r^2N_sN_{s'}}\sum_{i=1}^{N_s}\sum_{j=1}^{N_{s'}}\frac{1}{\delta r}\int_{r-\delta r/2}^{r+\delta r/2}dr'\delta(r'-|r_{si}-r_{s'j}|),
\end{align}
where the radial coordinate $r$ is restricted to reside at the bin centers, $\delta r/2, 3 \delta r/2, 5 \delta r/2, \ldots$.
% has a CUDA counterpart, may be useful to understand difference between cpu and gpu estimators
% see HamiltonianFactory.cpp
% SkEstimator_CUDA* apot=new SkEstimator_CUDA(*targetPtcl);
\FloatBarrier
\begin{table}[h]
\begin{center}
\begin{tabularx}{\textwidth}{l l l l l l }
\hline
\multicolumn{6}{l}{\texttt{estimator type=sk} element} \\
\hline
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{hamiltonian, qmc}}\\
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\textit{None}}\\
\multicolumn{2}{l}{attributes} & \multicolumn{4}{l}{}\\
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
& \texttt{type}$^r$ & text & \textbf{sk} & & Must be sk \\
& \texttt{name}$^r$ & text & \textit{anything} & any & Unique name for estimator \\
& \texttt{hdf5}$^o$ & boolean & yes/no & no & Output to \texttt{stat.h5} (yes) or \texttt{scalar.dat} (no) \\
\hline
\end{tabularx}
\end{center}
\end{table}
\FloatBarrier
Additional information:
\begin{itemize}
\item{\textbf{name:} Unique name for estimator instance. A data structure of the same name will appear in \texttt{stat.h5} output files.}
\item{\textbf{hdf5:} If \texttt{hdf5==yes} output data for $S(k)$ is directed to the \texttt{stat.h5} file (recommended usage). If \texttt{hdf5==no}, the data is instead routed to the \texttt{scalar.dat} file resulting in many columns of data with headings prefixed by \texttt{name} and postfixed by the k-point index (\textit{e.g.} \texttt{sk\_0 sk\_1 \ldots sk\_1037 \ldots}).}
\item{This estimator only works in periodic boundary conditions. Its presence in the input file is ignored otherwise.}
\end{itemize}
\begin{lstlisting}[caption=Static structure factor estimator element.]
<estimator type="sk" name="sk" hdf5="yes"/>
\end{lstlisting}
\subsection{Energy density estimator}

View File

@ -8,10 +8,19 @@
\usepackage{listings}
\usepackage{tabularx}
\usepackage{placeins}
\usepackage{xcolor}
\lstloadlanguages{C++,XML}
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
% for markup, as needed
\newcommand{\red}[1]{{\color{red} #1}}
\newcommand{\blue}[1]{{\color{blue} #1}}
% hide or show developer notes
\newcommand{\dev}[1]{#1}
%\newcommand{\dev}[1]{}
\oddsidemargin 0cm
\evensidemargin 0cm
\textwidth 6.5in