mirror of https://github.com/QMCPACK/qmcpack.git
62 lines
3.0 KiB
TeX
62 lines
3.0 KiB
TeX
\subsubsection{Short Range Cusp Form}
|
|
\label{sec:onebodyjastrowsrcusp}
|
|
|
|
The idea behind this functor is to encode nuclear cusps and other details at very
|
|
short range around a nucleus in the region that the Gaussian orbitals of quantum
|
|
chemistry are not capable of describing correctly.
|
|
The functor is kept short ranged, because outside this small region, quantum chemistry
|
|
orbital expansions are already capable of taking on the correct shapes.
|
|
Unlike a pre-computed cusp correction, this optimizable functor can respond to
|
|
changes in the wave function during VMC optimization.
|
|
The functor's form is
|
|
\begin{equation}
|
|
\label{srcuspform}
|
|
u(r) = -\exp{\left(-r/R_0\right)} \left( A R_0 + \sum_{k=0}^{N-1} B_k \frac{ (r/R_0)^{k+2} }{ 1 + (r/R_0)^{k+2} } \right)
|
|
\end{equation}
|
|
in which $R_0$ acts as a soft cutoff radius ($u(r)$ decays to zero quickly beyond roughly this distance)
|
|
and $A$ determines the cusp condition.
|
|
\begin{equation}
|
|
\label{srcusplimit}
|
|
\lim_{r \to 0} \frac{\partial u}{\partial r} = A
|
|
\end{equation}
|
|
The simple exponential decay is modified by the $N$ coefficients $B_k$ that define
|
|
an expansion in sigmoidal functions, thus adding detailed structure in a short-ranged
|
|
region around a nucleus while maintaining the correct cusp condition at the nucleus.
|
|
Note that sigmoidal functions are used instead of, say, a bare polynomial expansion, as they
|
|
trend to unity past the soft cutoff radius and so interfere less with the exponential decay
|
|
that keeps the functor short ranged.
|
|
Although $A$, $R_0$, and the $B_k$ coefficients can all be optimized as variational
|
|
parameters, $A$ will typically be fixed as the desired cusp condition is known.
|
|
|
|
To specify this one-body Jastrow factor, use an input section like the following.
|
|
|
|
\begin{lstlisting}[style=QMCPXML]
|
|
<jastrow name="J1Cusps" type="One-Body" function="shortrangecusp" source="ion0" print="yes">
|
|
<correlation rcut="6" cusp="3" elementType="Li">
|
|
<var id="LiCuspR0" name="R0" optimize="yes"> 0.06 </var>
|
|
<coefficients id="LiCuspB" type="Array" optimize="yes">
|
|
0 0 0 0 0 0 0 0 0 0
|
|
</coefficients>
|
|
</correlation>
|
|
<correlation rcut="6" cusp="1" elementType="H">
|
|
<var id="HCuspR0" name="R0" optimize="yes"> 0.2 </var>
|
|
<coefficients id="HCuspB" type="Array" optimize="yes">
|
|
0 0 0 0 0 0 0 0 0 0
|
|
</coefficients>
|
|
</correlation>
|
|
</jastrow>
|
|
\end{lstlisting}
|
|
|
|
Here ``rcut'' is specified as the range beyond which the functor is assumed to be zero.
|
|
The value of $A$ can either be specified via the ``cusp'' option as shown above, in
|
|
which case its optimization is disabled, or through its own ``var'' line as
|
|
for $R_0$, in which case it can be specified as either optimizable (``yes'')
|
|
or not (``no'').
|
|
The coefficients $B_k$ are specified via the ``coefficients'' section,
|
|
with the length $N$ of the expansion determined automatically based on the length
|
|
of the array.
|
|
|
|
Note that this one-body Jastrow form can (and probably should) be used in conjunction
|
|
with a longer ranged one-body Jastrow, such as a spline form.
|
|
Be sure to set the longer-ranged Jastrow to be cusp-free!
|