mirror of https://github.com/QMCPACK/qmcpack.git
111 lines
4.9 KiB
TeX
111 lines
4.9 KiB
TeX
\section{Specifying the simulation cell}
|
|
\label{chap:simulationcell}
|
|
|
|
The \texttt{simulationcell} block specifies the geometry of the cell, how the boundary conditions should be handled, and how ewald summation should be broken up.
|
|
|
|
\begin{table}[h]
|
|
\begin{center}
|
|
\begin{tabularx}{\textwidth}{l l l l l l }
|
|
\hline
|
|
\multicolumn{6}{l}{\texttt{simulationcell} element} \\
|
|
\hline
|
|
\multicolumn{2}{l}{parent elements:} & \multicolumn{4}{l}{\texttt{qmcsystem}}\\
|
|
\multicolumn{2}{l}{child elements:} & \multicolumn{4}{l}{None}\\
|
|
\multicolumn{2}{l}{attribute :} & \multicolumn{4}{l}{}\\
|
|
& \bfseries parameter name & \bfseries datatype & \bfseries values & \bfseries default & \bfseries description \\
|
|
\hline
|
|
& \texttt{lattice} & 9 floats & any float & Must be specified & Specification of \\
|
|
& & & & & lattice vectors. \\
|
|
& \texttt{bconds} & string & ``p'' or ``n'' & ``n n n'' & Boundary conditions \\
|
|
& & & & & for each axis. \\
|
|
& \texttt{vacuum} & float & $\ge 1.0$ & 1.0 & Vacuum scale. \\
|
|
& \texttt{LR\_dim\_cutoff} & float & float & 15 & Ewald breakup distance. \\
|
|
\hline
|
|
\end{tabularx}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
An example of a \texttt{simulationcell} block is given below:
|
|
\begin{shade}
|
|
<simulationcell>
|
|
<parameter name="lattice">
|
|
3.8 0.0 0.0
|
|
0.0 3.8 0.0
|
|
0.0 0.0 3.8
|
|
</parameter>
|
|
<parameter name="bconds">
|
|
p p p
|
|
</parameter>
|
|
<parameter name="LR_dim_cutoff"> 20 </parameter>
|
|
</simulationcell>
|
|
\end{shade}
|
|
|
|
Here, a cubic cell 3.8 bohr on a side will be used.
|
|
This simulation will use periodic boundary conditions, and the maximum
|
|
$k$ vector will be $20/r_{wigner-seitz}$ of the cell.
|
|
|
|
|
|
\subsection{Lattice}
|
|
The cell is specified using 3 lattice vectors.
|
|
|
|
|
|
\subsection{Boundary conditions}
|
|
QMCPACK offers the capability to use a mixture of open and periodic boundary conditions.
|
|
The \texttt{bconds} parameter expects a single string of three characters separated by
|
|
spaces, \textit{e.g.} ``p p p'' for purely periodic boundary conditions. These characters control
|
|
the behavior of the $x$, $y$, and $z$, axes, respectively.
|
|
Examples of valid \texttt{bconds} include:
|
|
|
|
\begin{description}
|
|
\item[``p p p''] Periodic boundary conditions. Corresponds to a 3D crystal.
|
|
\item[``n n n''] Open boundary conditions. Corresponds to an isolated molecule in a vacuum.
|
|
\item[``p p n''] Slab geometry. Corresponds to a 2D crystal.
|
|
\item[``p n n''] Wire geometry. Corresponds to a 1D crystal.
|
|
\end{description}
|
|
|
|
\subsection{Vacuum}
|
|
The vacuum option allows adding a vacuum region in slab or wire boundary conditions
|
|
(\texttt{bconds= p p n} or \texttt{bconds= p n n}, respectively). The main use is
|
|
to save memory with spline or plane-wave basis trial wavefunctions, because no basis
|
|
functions are required inside the vacuum region. For example, a large vacuum region
|
|
can be added above and below a graphene sheet without having to generate the trial
|
|
wavefunction in such a large box or to have as many splines as would otherwise
|
|
be required. Note that the trial wavefunction must still be generated in a
|
|
large enough box to sufficiently reduce periodic interactions in the underlying
|
|
electronic structure calculation.
|
|
|
|
With the vacuum option, the box used for Ewald summation increases along the axis labeled \texttt{n} by a factor of \texttt{vacuum}.
|
|
Note that all the particles remain in the original box without altering their positions. i.e. Bond lengths are not changed by this option.
|
|
The default value is 1, no change to the specified axes.
|
|
|
|
An example of a \texttt{simulationcell} block using \texttt{vacuum} is given below.
|
|
The size of the box along the z-axis increases from 12 to 18 by the vacuum scale of 1.5.
|
|
\begin{shade}
|
|
<simulationcell>
|
|
<parameter name="lattice">
|
|
3.8 0.0 0.0
|
|
0.0 3.8 0.0
|
|
0.0 0.0 12.0
|
|
</parameter>
|
|
<parameter name="bconds">
|
|
p p n
|
|
</parameter>
|
|
<parameter name="vacuum"> 1.5 </parameter>
|
|
<parameter name="LR_dim_cutoff"> 20 </parameter>
|
|
</simulationcell>
|
|
\end{shade}
|
|
|
|
\subsection{\texttt{LR\_dim\_cutoff}}
|
|
When using periodic boundary conditions direct calculation of the Coulomb energy is
|
|
not well behaved. As a result, QMCPACK uses an optimized Ewald summation technique
|
|
to compute the Coulomb interaction.\cite{Natoli1995}
|
|
|
|
In the Ewald summation, the energy is broken into short- and long-ranged terms.
|
|
The short-ranged term is computed directly in real space, while the long-ranged term is computed in reciprocal space.
|
|
\texttt{LR\_dim\_cutoff} controls where the short-ranged term ends and the long-ranged term begins.
|
|
The real-space cutoff, reciprocal-space cutoff, and \texttt{LR\_dim\_cutoff} are related via:
|
|
\[
|
|
\texttt{LR\_dim\_cutoff} = r_{c} \times k_{c}
|
|
\]
|
|
where $r_{c}$ is the Wigner-Seitz radius, and $k_{c}$ is the length of the maximum $k$-vector used in the long-ranged term.
|