mirror of https://github.com/QMCPACK/qmcpack.git
241 lines
9.7 KiB
TeX
241 lines
9.7 KiB
TeX
\section{Specifying the particle set}
|
|
\label{sec:particleset}
|
|
|
|
|
|
The \texttt{particleset} blocks specify the particles in the QMC simulations: their types, attributes (mass, charge, valence), and positions.
|
|
|
|
\subsection{Input specification}
|
|
\begin{table}[h]
|
|
\begin{center}
|
|
\begin{tabularx}{\textwidth}{l l l l l l }
|
|
\hline
|
|
\multicolumn{6}{l}{\texttt{particleset} element} \\
|
|
\hline
|
|
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{simulation}}\\
|
|
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{group, attrib}}\\
|
|
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
|
|
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
|
|
& \texttt{name}/\texttt{id} & text & \textit{any} & e & Name of particle set \\
|
|
& \texttt{size}$^o$ & integer & \textit{any} & 0 & Number of particles in set \\
|
|
& \texttt{random}$^o$ & text & yes/no & no & Randomize starting positions \\
|
|
& \texttt{randomsrc}/ & text & \texttt{particleset.name} & \textit{none} & Particle set to randomize \\
|
|
& \texttt{random\_source}$^o$ & & & & \\
|
|
% & \texttt{role} & text & MC/none & none & (obsolete) \\
|
|
\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{group} element} \\
|
|
\hline
|
|
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{particleset}}\\
|
|
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{\texttt{parameter, attrib}}\\
|
|
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
|
|
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
|
|
& \texttt{name} & text & \textit{any} & e & Name of particle set \\
|
|
& \texttt{size}$^o$ & integer & \textit{any} & 0 & Number of particles in set \\
|
|
& \texttt{mass}$^o$ & real & \textit{any} & 1 & Mass of particles in set \\
|
|
& \texttt{unit}$^o$ & text & au/amu & au & Units for mass of particles \\
|
|
\multicolumn{2}{l}{parameters} & \multicolumn{4}{l}{}\\
|
|
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
|
|
& \texttt{charge} & real & \textit{any} & 0 & Charge of particles in set \\
|
|
& \texttt{valence} & real & \textit{any} & 0 & Valence charge of particles in set \\
|
|
& \texttt{atomicnumber} & integer & \textit{any} & 0 & Atomic number of particles in set \\
|
|
\hline
|
|
\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{attrib} element} \\
|
|
\hline
|
|
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{particleset,group}}\\
|
|
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
|
|
& \bfseries name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
|
|
& \texttt{name} & string & \textit{any} & \textit{none} & Name of attrib \\
|
|
& \texttt{datatype} & string & intArray, realArray, & \textit{none} & Type of data in attrib \\
|
|
& & & posArray, stringArray & & \\
|
|
& \texttt{size}$^o$ & string & \textit{any} & \textit{none} & Size of data in attrib \\
|
|
\hline
|
|
\hline
|
|
\end{tabularx}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\subsection{Detailed attribute description}
|
|
|
|
\subsubsection{particleset required attributes}
|
|
|
|
\begin{itemize}
|
|
\item \texttt{name}/\texttt{id} \\
|
|
Unique name for the particle set. Default is ``e" for electrons. ``i" or ``ion0" is typically used for ions.
|
|
\end{itemize}
|
|
% Line 192 in ParticleIO/XMLParticleIO.cpp
|
|
% Lines 144-145 in QMCApp/ParticleSetPool.cpp
|
|
|
|
\subsubsection{particleset optional attributes}
|
|
|
|
\begin{itemize}
|
|
\item \texttt{size} \\
|
|
Number of particles in set
|
|
\end{itemize}
|
|
% Line 191 in ParticleIO/XMLParticleIO.cpp
|
|
|
|
%\begin{itemize}
|
|
%\item \texttt{role} \\
|
|
%What the particles do in the simulation
|
|
%\end{itemize}
|
|
% Line 146 in QMCApp/ParticleSetPool.cpp
|
|
|
|
\begin{itemize}
|
|
\item \texttt{random} \\
|
|
Randomize starting positions of particles. Each component of each particle's position is randomized independently in the range of the simulation cell in that component's direction.
|
|
\end{itemize}
|
|
% Line 190 in ParticleIO/XMLParticleIO.cpp
|
|
% Line 147 in QMCApp/ParticleSetPool.cpp
|
|
|
|
\begin{itemize}
|
|
\item \texttt{randomsrc}/\texttt{random\_source} \\
|
|
Specify source particle set around which to randomize the initial positions of this particle set.
|
|
\end{itemize}
|
|
% Lines 148-149 in QMCApp/ParticleSetPool.cpp
|
|
|
|
\subsubsection{name required attributes}
|
|
|
|
\begin{itemize}
|
|
\item \texttt{name}/\texttt{id} \\
|
|
Unique name for the particle set group. Typically, element symbols are used for ions and ``u" or ``d" for spin-up and spin-down electron groups, respectively.
|
|
\end{itemize}
|
|
% Line 192 in ParticleIO/XMLParticleIO.cpp
|
|
% Lines 144-145 in QMCApp/ParticleSetPool.cpp
|
|
|
|
\subsubsection{group optional attributes}
|
|
|
|
\begin{itemize}
|
|
\item \texttt{mass} \\
|
|
Mass of particles in set.
|
|
\end{itemize}
|
|
% Line 190 in Particle/ParticleSet.cpp
|
|
|
|
\begin{itemize}
|
|
\item \texttt{unit} \\
|
|
Units for mass of particles in set (au[$m_e$ = 1] or amu[$\frac{1}{12}m_{\rm ^{12}C}$ = 1]).
|
|
\end{itemize}
|
|
% Line 66 in ParticleIO/XMLParticleIO.cpp
|
|
|
|
|
|
%condition appears to be future functionality for different unit types on the position array
|
|
%condition must be an integer
|
|
% Line 407 in ParticleIO/XMLParticleIO.cpp (reads condition in)
|
|
% Line 402 in ParticleIO/XMLParticleIO.cpp (declares utype integer)
|
|
|
|
\subsection{Example use cases}
|
|
\begin{minipage}{\linewidth}
|
|
\begin{lstlisting}[caption=particleset elements for ions and electrons randomizing electron start positions.]
|
|
<particleset name="i" size="2">
|
|
<group name="Li">
|
|
<parameter name="charge">3.000000</parameter>
|
|
<parameter name="valence">3.000000</parameter>
|
|
<parameter name="atomicnumber">3.000000</parameter>
|
|
</group>
|
|
<group name="H">
|
|
<parameter name="charge">1.000000</parameter>
|
|
<parameter name="valence">1.000000</parameter>
|
|
<parameter name="atomicnumber">1.000000</parameter>
|
|
</group>
|
|
<attrib name="position" datatype="posArray" condition="1">
|
|
0.0 0.0 0.0
|
|
0.5 0.5 0.5
|
|
</attrib>
|
|
<attrib name="ionid" datatype="stringArray">
|
|
Li H
|
|
</attrib>
|
|
</particleset>
|
|
<particleset name="e" random="yes" randomsrc="i">
|
|
<group name="u" size="2">
|
|
<parameter name="charge">-1</parameter>
|
|
</group>
|
|
<group name="d" size="2">
|
|
<parameter name="charge">-1</parameter>
|
|
</group>
|
|
</particleset>
|
|
\end{lstlisting}
|
|
\end{minipage}
|
|
|
|
\begin{minipage}{\linewidth}
|
|
\begin{lstlisting}[caption=particleset elements for ions and electrons specifying electron start positions]
|
|
<particleset name="e">
|
|
<group name="u" size="4">
|
|
<parameter name="charge">-1</parameter>
|
|
<attrib name="position" datatype="posArray">
|
|
2.9151687332e-01 -6.5123272502e-01 -1.2188463918e-01
|
|
5.8423636048e-01 4.2730406357e-01 -4.5964306231e-03
|
|
3.5228575807e-01 -3.5027014639e-01 5.2644808295e-01
|
|
-5.1686250912e-01 -1.6648002292e+00 6.5837023441e-01
|
|
</attrib>
|
|
</group>
|
|
<group name="d" size="4">
|
|
<parameter name="charge">-1</parameter>
|
|
<attrib name="position" datatype="posArray">
|
|
3.1443445436e-01 6.5068682609e-01 -4.0983449009e-02
|
|
-3.8686061749e-01 -9.3744432997e-02 -6.0456005388e-01
|
|
2.4978241724e-02 -3.2862514649e-02 -7.2266047173e-01
|
|
-4.0352404772e-01 1.1927734805e+00 5.5610824921e-01
|
|
</attrib>
|
|
</group>
|
|
</particleset>
|
|
<particleset name="ion0" size="3">
|
|
<group name="O">
|
|
<parameter name="charge">6</parameter>
|
|
<parameter name="valence">4</parameter>
|
|
<parameter name="atomicnumber">8</parameter>
|
|
</group>
|
|
<group name="H">
|
|
<parameter name="charge">1</parameter>
|
|
<parameter name="valence">1</parameter>
|
|
<parameter name="atomicnumber">1</parameter>
|
|
</group>
|
|
<attrib name="position" datatype="posArray">
|
|
0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
|
|
0.0000000000e+00 -1.4308249289e+00 1.1078707576e+00
|
|
0.0000000000e+00 1.4308249289e+00 1.1078707576e+00
|
|
</attrib>
|
|
<attrib name="ionid" datatype="stringArray">
|
|
O H H
|
|
</attrib>
|
|
</particleset>
|
|
\end{lstlisting}
|
|
\end{minipage}
|
|
|
|
\begin{minipage}{\linewidth}
|
|
\begin{lstlisting}[caption=particleset elements for ions specifying positions by ion type]
|
|
<particleset name="ion0">
|
|
<group name="O" size="1">
|
|
<parameter name="charge">6</parameter>
|
|
<parameter name="valence">4</parameter>
|
|
<parameter name="atomicnumber">8</parameter>
|
|
<attrib name="position" datatype="posArray">
|
|
0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
|
|
</attrib>
|
|
</group>
|
|
<group name="H" size="2">
|
|
<parameter name="charge">1</parameter>
|
|
<parameter name="valence">1</parameter>
|
|
<parameter name="atomicnumber">1</parameter>
|
|
<attrib name="position" datatype="posArray">
|
|
0.0000000000e+00 -1.4308249289e+00 1.1078707576e+00
|
|
0.0000000000e+00 1.4308249289e+00 1.1078707576e+00
|
|
</attrib>
|
|
</group>
|
|
</particleset>
|
|
\end{lstlisting}
|
|
\end{minipage}
|