qmcpack/manual/lab_advanced_molecules.tex

951 lines
54 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\chapter{Lab 3: Advanced Molecular Calculations}
\label{chap:lab_advanced_molecules}
\section{Topics covered in this Lab}
This lab covers molecular QMC calculations with wavefunctions of increasing sophistication. All of the trial wavefunctions are initially generated with the GAMESS code. Topics covered include:
\begin{itemize}
\item{Generating single determinant trial wavefunctions with GAMESS (HF and DFT)}
\item{Generating multi-determinant trial wavefunctions with GAMESS (CISD, CASCI, SOCI)}
\item{Optimizing wavefunctions (Jastrow factors and CSF coefficients) with QMC}
\item{DMC timestep and walker population convergence studies}
\item{Systematic progressions of Jastrow factors in VMC}
\item{Systematic convergence of DMC energies with multi-determinant wavefunctions}
\item{Influence of orbitals basis choice on DMC energy}
%\item{Influence of orbitals basis choice on rate of multi-determinant DMC convergence}
\end{itemize}
\section{Lab directories and files}
\footnotesize
\begin{verbatim}
labs/lab3_advanced_molecules/exercises
├── ex1_first-run-hartree-fock - basic work flow from Hatree-Fock to DMC
│ ├── gms - Hatree-Fock calculation using GAMESS
│ │ ├── h2o.hf.inp - GAMESS input
│ │ ├── h2o.hf.dat - GAMESS punch file containing orbitals
│ │ └── h2o.hf.out - GAMESS output with orbitals and other info
│ ├── convert - Convert GAMESS wavefunction to QMCPACK format
│ │ ├── h2o.hf.out - GAMESS output
│ │ ├── h2o.ptcl.xml - converted particle positions
│ │ └── h2o.wfs.xml - converted wave function
│ ├── opt - VMC optimization
│ │ └── optm.xml - QMCPACK VMC optimization input
│ ├── dmc_timestep - Check DMC timestep bias
│ │ └── dmc_ts.xml - QMCPACK DMC input
│ └── dmc_walkers - Check DMC population control bias
│ └── dmc_wk.xml - QMCPACK DMC input template
├── ex2_slater-jastrow-wf-options - explore jastrow and orbital options
│ ├── jastrow - Jastrow options
│ │ ├── 12j - no 3-body Jastrow
│ │ ├── 1j - only 1-body Jastrow
│ │ └── 2j - only 2-body Jastrow
│ └── orbitals - Orbital options
│ ├── pbe - PBE orbitals
│ │ └── gms - DFT calculation using GAMESS
│ │ └── h2o.pbe.inp - GAMESS DFT input
│ ├── pbe0 - PBE0 orbitals
│ ├── blyp - BLYP orbitals
│ └── b3lyp - B3LYP orbitals
├── ex3_multi-slater-jastrow
│ ├── cisd - CISD wave function
│ │ ├── gms - CISD calculation using GAMESS
│ │ │ ├── h2o.cisd.inp - GAMESS input
│ │ │ ├── h2o.cisd.dat - GAMESS punch file containing orbitals
│ │ │ └── h2o.cisd.out - GAMESS output with orbitals and other info
│ │ └── convert - Convert GAMESS wavefunction to QMCPACK format
│ │ └── h2o.hf.out - GAMESS output
│ ├── casci - CASCI wave function
│ │ └── gms - CASCI calculation using GAMESS
│ └── soci - SOCI wave function
│ ├── gms - SOCI calculation using GAMESS
│ ├── thres0.01 - VMC optimization with few determinants
│ └── thres0.0075 - VMC optimization with more determinants
└── pseudo
├── H.BFD.gamess - BFD pseudopotential for H in GAMESS format
├── O.BFD.CCT.gamess - BFD pseudopotential for O in GAMESS format
├── H.xml - BFD pseudopotential for H in QMCPACK format
└── O.xml - BFD pseudopotential for H in QMCPACK format
\end{verbatim}
\normalsize
\section{Exercise \#1: Basics}
The purpose of this exercise is to show how to generate wave-functions for QMCPACK
using GAMESS and to optimize the resulting wave-functions using VMC. This will be
followed by a study of the time-step and walker population dependence of DMC energies.
The exercise will be performed on a water molecule at the equilibrium geometry.
\subsection{Generation of a Hatree-Fock wave-function with GAMESS}
From the top directory, go to ``ex1\_first-run-hartree-fock/gms''. This directory contains an input
file for a HF calculation of a water molecule using BFD ECPs and the corresponding
cc-pVTZ basis set. The input file should be named: “h2o.hf.inp”. Study the input
file. If the student wishes, he can refer to section A for a more detailed description of the
GAMESS input syntax. There will be a better time to do this soon, so we recommend
that the student continues with the exercise at this point. After you are done, execute
GAMESS with this input and store the standard output in a file named ``h2o.hf.output''.
Finally, in the ``convert'' folder, use convert4qmc to generate the QMCPACK particleset and wavefunction files. It
is always useful to rename the files generated by convert4qmc to something meaningful,
since by default they are called sample.Gaussian-G2.xml and sample.Gaussian-G2.ptcl.xml.
In a standard computer (without cross-compilation), these tasks could be accomplished by
the following commands.
\begin{shade}
cd ${TRAINING TOP}/ex1_first-run-hartree-fock/gms
jobrun_vesta rungms h2o.hf
cd ../convert
cp ../gms/h2o.hf.output
jobrun_vesta convert4qmc -gamessAscii h2o.hf.output -add3BodyJ
mv sample.Gaussian-G2.xml h2o.wfs.xml
mv sample.Gaussian-G2.ptcl.xml h2o.ptcl.xml
\end{shade}
\noindent
%Due to the particular requirements of Vesta these executions can not be performed on
%the login nodes, they must be performed in the compute nodes. In order to accomplish
%this, we must make a submission script with the appropriate commands and submit it to
%the batch system. Two submission scripts have been provided, one for the GAMESS
%execution called submit gamess.csh and one for the submission of convert4qmc, with a similar
%descriptive name. Study these input files. (In this and all other exercises, you will need
%to make all submission scripts executables with the command chmod u+x script.csh.)
%When you are ready, start by submitting the GAMESS execution to the batch system
%using ``./script gamess.csh'' (This script calls the GAMESS run script, which itself calls
%qsub. Do not attempt to submit this specific script with qsub).
The HF energy of the
system is -16.9600590022 Ha. To search for the energy in the output file quickly, you can
use
\begin{shade}
grep "TOTAL ENERGY =" h2o.hf.output
\end{shade}
%When the calculation completes,
%submit the execution of the converter using ``qsub submit convert.csh'' (all QMCPACK execution
%scripts will be submitted with qsub). This is a good time to review section B, which
%contains a description on the use of the converter.
As the job runs on VESTA, it is a good time to review section B, which contains a description on the use of the converter.
\subsection{Optimize the wave-function}
When the execution of the previous steps is completed, there should be 2 new
files called h2o.wfs.xml and h2o.ptcl.xml. Now we will use VMC to optimize the
Jastrow parameters in the wave-function. From the top directory, go to
``ex1\_first-run-hartree-fock/opt''. Copy the xml files generated in the previous step
to the current directory. This directory should already contain a basic QMCPACK input
file for an optimization calculation (optm.xml) %and a submission script (submit.csh).
Open optm.xml with your favorite text editor and modify the name of the files that contain the
wavefunction and particleset XML blocks. These files are included with the commands:
\begin{shade}
<include href=ptcl.xml/>
<include href=wfs.xml/>
\end{shade}
(the particle set must be
defined before the wave-function). The name of the particle set and wave-function files should now be h2o.ptcl.xml
and h2o.wfs.xml, respectively. Study both files and submit when you are ready. Notice that the
location of the ECPs has been set for you, in your own calculations you have to make
sure you obtain the ECPs from the appropriate libraries and convert them to QMCPACK
format using ppconvert. This is a good time to study section C, which contains a review
of the main parameters in the optimization XML block, while this calculation finishes. The
previous steps can be accomplished by the following commands:
\begin{shade}
cd ${TRAINING TOP}/ex1_first-run-hartree-fock/opt
cp ../convert/h2o.wfs.xml ./
cp ../convert/h2o.ptcl.xml ./
# edit optm.xml to include the correct ptcl.xml and wfs.xml
jobrun_vesta qmcpack optm.xml
\end{shade}
Use the analysis tool qmca to analyze the results of the calculation. Obtain the VMC
energy and variance for each step in the optimization and plot it using your favorite program.
Remember that qmca has built-in functions to plot the analyzed data.
\begin{shade}
qmca -q e *scalar.dat -p
\end{shade}
\begin{figure}
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.75\columnwidth]{./figures/lab_advanced_molecules_opt_conv.png}
\end{center}
\caption{VMC energy as a function of optimization step.}
\label{fig:lam_opt_conv}
\end{figure}
The resulting energy as a function of optimization step should look qualitatively similar to figure \ref{fig:lam_opt_conv}.
The energy should decrease quickly as a function of the number of optimization steps. After 6-8 steps, the energy should be converged to $\sim$2-3mHa. To improve convergence,
we would need to increase the number of samples used during the optimization. You can
check this for yourself on your free time. With optimized wave-functions we are in a position
to perform VMC and DMC calculations. The modified wave-function files after each step
are written in a file named ID.sNNN.opt.xml, where ID is the identifier of the calculation
defined in the input file (this is defined in the project XML block with parameter “id”) and
NNN is a series number which increases with every executable xml block in the input file.
\subsection{Time-step Study}
Now we will study the dependence of the DMC energy with time-step. From the top directory,
go to “ex1\_first-run-hartree-fock/dmc\_timestep”. This folder contains a basic xml input
file (dmc\_ts.xml) that performs a short VMC calculation and three DMC calculations
with varying time-steps (0.1, 0.05, 0.01). Link the particle set and the last optimization
file from the previous folder (the file called jopt-h2o.sNNN.opt.xml with the largest value of
NNN). Rename the optimized wave-function to any suitable name if you wish, for example
h2o.opt.xml, and change the name of the particle set and wave-function files in the
input file. An optimized wave-function can be found in the reference files (same location)
in case it is needed. %Using the submission script of the previous exercise as a base, create a
%submission script for this step and submit the run. Set the number of nodes to 32 (2 places
%must be changed), the number of threads to 16 and leave the number of tasks at 1.
The main steps needed to perform this exercise are:
\begin{shade}
cd ${TRAINING TOP}/ex1_first-run-hartree-fock/dmc_timestep
cp ../opt/h2o.ptcl.xml ./
cp ../opt/jopt-h2o.s007.opt.xml h2o.opt.wfs.xml
# edit dmc_ts.xml to include the correct ptcl.xml and wfs.xml
jobrun_vesta qmcpack dmc_ts.xml
\end{shade}
While these runs complete, go to section D and review the basic VMC and DMC input
blocks. Notice that in the current DMC blocks, as the time-step is decreased the number of blocks is also increased. Why is this?
When the simulations are finished, use qmca to analyze the output files and to plot the
DMC energy as a function of time-step. Results should be qualitatively similar to those
presented in figure \ref{fig:lam_dmc_timestep}, in this case we present more time-steps with well converged results to
better illustrate the time-step dependence. In realistic calculations, the time-step must be
chosen small enough so that the resulting error is below the desire accuracy. Alternatively,
various calculations can be performed and the results extrapolated to the zero time-step
limit.
\begin{figure}
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.75\columnwidth]{./figures/lab_advanced_molecules_dmc_timestep.png}
\end{center}
\caption{DMC energy as a function of timestep.}
\label{fig:lam_dmc_timestep}
\end{figure}
\subsection{Walker Population Study}
Now we will study the dependence of the DMC energy with the number of walkers in the
simulation. Remember that, in principle, the DMC distribution is reached in the limit of
an infinite number of walkers. In practice, the energy and most properties converge to high
accuracy with $\sim$100-1000 walkers. The actual number of walkers needed in a calculation
will depend on the accuracy of the VMC wave-function and on the complexity and size of
the system. Also notice that using too many walkers is not a problem, at worse it will be
inefficient since it will cost more computer time than necessary. In fact, this is the strategy
used when running QMC calculations on large parallel computers since we can reduce the
statistical error bars efficiently by running with large walker populations distributed across
all processors.
From the top directory, go to ``ex1\_first-run-hartree-fock/dmc\_walkers''. Copy the
optimized wave-function and particle set files used in the previous calculations to the current
folder, these are the ones generated on step 2 of this exercise. An optimized wave-function can be found in the reference files (same location) in case it is needed. The directory
contains a sample DMC input file and submission script. Make 3 directories named NWx,
with x values 120,240,480 and copy the input file to each one. Go
to ``NW120'', and, in the input file, change the name of the wave-function and particle set
files (in this case they will be located one directory above, so use ``../dmc\_timestep/h2.opt.xml'' for
example), change the pseudopotential directory to point to one directory above, change ``targetWalkers'' to 120, change the number of steps to 100, the time-step
to 0.01 and the number of blocks to 400. Notice that ``targetWalkers'' is one way to set the desired (average) number of walkers in a DMC calculation. One can alternatively set ``samples'' in the \texttt{<qmc method=``vmc''} block to carry over de-correlated VMC configurations as DMC walkers. For your own simulations we generally recommend setting $\sim$2*(\#threads)
walkers per node (slightly smaller than this value).
The main steps needed to perform this exercise are:
\begin{shade}
cd ${TRAINING TOP}/ex1_first-run-hartree-fock/dmc_walkers
cp ../opt/h2o.ptcl.xml ./
cp ../opt/jopt-h2o.s007.opt.xml h2o.opt.wfs.xml
# edit dmc_wk.xml to include the correct ptcl.xml and wfs.xml and
# use the correct pseudopotential directory
mkdir NW120
cp dmc_wk.xml NW120
# edit dmc_wk.xml to use the desired number of walkers,
# and collect the desired amount of statistics
jobrun_vesta qmcpack dmc_wk.xml
# repeat for NW240, NW480
\end{shade}
\begin{figure}
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.75\columnwidth]{./figures/lab_advanced_molecules_dmc_popcont.png}
\end{center}
\caption{DMC energy as a function of the average number of walkers.}
\label{fig:lam_dmc_popcont}
\end{figure}
Repeat the same procedure in the other folders by setting (targetWalkers=240,
steps=100, timestep=0.01, blocks=200) in NW240 and (targetWalkers=480,
steps=100, timestep=0.01, blocks=100) in NW480. When
the simulations complete, use qmca to analyze and plot the energy as a function of the
number of walkers in the calculation. As always, figure \ref{fig:lam_dmc_popcont}
shows representative results of the
dependence of the energy on the number of walkers for a single water molecule. As shown,
less than 240 walkers are needed to obtain an accuracy of 0.1 mHa.
\section{Exercise \#2 Slater-Jastrow Wave-Function Options}
From this point on in the tutorial we assume familiarity with the basic parameters in the
optimization, VMC and DMC XML input blocks of QMCPACK. In addition, we assume
familiarity with the submission system. As a result, the folder structure will not contain
any prepared input or submission files, the student will generate them using
input files from exercise 1. In the case of QMCPACK sample
files, you will find optm.xml, vmc dmc.xml and submit.csh files. Some of
the options in these files can be left unaltered, but many of them will need to be tailored to
the particular calculation.
In this exercise we will study the dependence of the DMC energy on the choices made
in the wave-function ansatz. In particular, we will study the influence/dependence of the
VMC energy with the various terms in the Jastrow. We will also study the influence of
the VMC and DMC energies on the single particle orbitals used to form the Slater determinant
in single determinant wave-functions. For this we will use wave-functions generated
with various exchange-correlation functionals in DFT. Finally, we will optimize a simple
multi-determinant wave-function and study the dependence of the energy o the number of
configurations used in the expansion. All of these exercises will be performed on the water
molecule at equilibrium.
\subsection{Influence of Jastrow on VMC energy with HF wave-function}
In this section we will study the dependence of the VMC energy on the various Jastrow
terms, e.g. one-body, two-body and three-body. From the top directory, go to ``ex2\_slater-jastrow-wf-options/jastrow''.
We will compare the single determinant VMC energy using a two-body
Jastrow term, both one- and two-body terms and finally one-, two- and three-body
terms. Since we are interested in the influence of the Jastrow, we will use the HF orbitals
calculated in exercise \#1. Make three folders named 2j,12j,123j. For both 2j and
12j %(we have already optimized a wave-function for the 1-2-3J case, so the steps will be
%slightly different in this case)
, copy the input file optm.xml %and the sample submission file
from ``ex1\_first-run-hartree-fock/opt'' . This input file performs both wave-function optimization
and a VMC calculation. Remember to correct relative paths to the pseudopotential directory. Copy the un-optimized HF wave-function and particle set files
from ``ex1\_first-run-hartree-fock/convert'', if you followed the instructions in exercise \#1 these should be
named h2o.wfs.xml and h2o.ptcl.xml. Otherwise, you can obtained them from the
REFERENCE files. Modify the file h2o.wfs.xml to remove the appropriate jastrow
blocks. For example, for a two-body Jastrow (only), you need to eliminate the jastrow
blocks named \texttt{<jastrow name="J1"} and \texttt{<jastrow name="J3"}. In the case of 12j, remove
only \texttt{<jastrow name="J3"}. Recommended settings for the optimization run are: nodes=32,
threads=16, blocks=250, samples=128000, time-step=0.5, 8 optimization loops, and in the
VMC section we recommend walkers=16, blocks=1000, steps=1, substeps=100. Notice that
samples should always be set to blocks*threads per node*nodes = 32*16*250=128000. Repeat
the process in both 2j and 12j cases. For the 123j case, the wave-function has
already been optimized in the previous exercise. Copy the optimized HF wave-function and
the particle set from ``ex1\_first-run-hartree-fock/opt''. Copy the input file from any of the previous runs and remove the optimization block from the
input, just leave the VMC step. In all three cases, modify the submission script and submit the run.
\begin{figure}
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.75\columnwidth]{./figures/lab_advanced_molecules_vmc_jastrow.png}
\end{center}
\caption{VMC energy as a function of Jastrow type.}
\label{fig:lam_vmc_jastrow}
\end{figure}
These simulations will take several minutes to complete. This is an excellent opportunity
to go to section E and review the wavefunction XML block used by QMCPACK. When the
simulation are completed, use qmca to analyze the output files. Using your favorite plotting
program (e.g. gnu plot), plot the energy and variance as a function of the Jastrow form.
Figure \ref{fig:lam_vmc_jastrow} shows a typical result for this calculation. As can be seen, the VMC energy and
variance depends strongly on the form of the Jastrow. Since the DMC error bar is directly
related to the variance of the VMC energy, improving the Jastrow will always lead to a
reduction in the DMC effort. In addition, systematic approximations (time-step, number of
walkers, etc) are also reduced with improved wave-functions.
\subsection{Generation of wave-functions from DFT using GAMESS}
In this section we will use GAMESS to generate wave-functions for QMCPACK from
DFT calculations. From the top folder, go to ``ex2\_slater-jastrow-wf-options/orbitals''. In order to demonstrate
the variation in DMC energies with the choice of DFT orbitals, we will choose the following
set of exchange-correlation functionals (PBE, PBE0, BLYP, B3LYP). For each functional,
make a directory using your preferred naming convention (e.g. the name of the functional).
Go into each folder and copy a GAMESS input file from %for a ROHF calculation from
``ex1\_first-run-hartree-fock/gms'' .%, a file named rohf.inp should exist.
Rename the file with your preferred naming convention, we suggest using h2o.[dft].inp, where [dft] is the name of
the functional used in the calculation. At this point, this input file should be identical to the
one used to generate the HF wave-function in exercise \#1. In order to perform a DFT
calculation we only need to add ``DFTTYP'' to the \texttt{\$CONTRL ... \$END} section and set
it to the desired functional type, for example ``DFTTYP=PBE'' for a PBE functional. This
variable must be set to (PBE, PBE0, BLYP, B3LYP) to obtain the appropriate functional in
GAMESS. For a complete list of implemented functionals, see the GAMESS input manual.
\subsection{Optimization and DMC calculations with DFT wave-functions}
In this section we will optimize the wave-function generated in the previous step and
perform DMC calculations. From the top directory, go to “ex2\_slater-jastrow-wf-options/orbitals”.
The steps required to achieve this are identical to those used to optimize the wave-function
with HF orbitals. Make individual folders for each calculation and obtain the necessary files
to perform optimization, VMC and DMC calculations from ``ex1\_first-run-hartree-fock/opt'' and ``ex1\_first-run-hartree-fock/dmc\_ts'', for example.
%A file named optm vmc dmc.xml should exist that contains all three execution blocks.
For each functional, make the appropriate modifications to the input files and copy the particle
set and wave-function files from the appropriate directory in “ex2\_slater-jastrow-wf-options/orbitals/[dft]”. We
recommend the following settings: nodes=32, threads=16, (in optimization) blocks=250,
samples=128000, timestep=0.5, 8 optimization loops, (in VMC) walkers=16, blocks=100,
steps=1, substeps=100, (in DMC) blocks 400, targetWalkers=960, timestep=0.01. Submit
the runs and analyze the results using qmca .
How do the energies compare against each other? How do they compare against DMC
energies with HF orbitals?
%Orbital Sets and Configurations in
\section{Exercise \#3: Multi-Determinant Wave-Functions}
In this exercise we will study the dependence of the DMC energy on the set of orbitals
and the type of configurations included in a multi-determinant wave-function.
\subsection{Generation of a CISD wave-functions using GAMESS}
In this section we will use GAMESS to generate a multi-determinant wave-function with
Configuration Interaction with Single and Double excitations (CISD). In CISD, the Schrodinger equation is solved exactly in a basis of determinants
including the HF determinant and all its single and double excitations.
Go to ``ex3\_multi-slater-jastrow/cisd/gms'' and you'll see input and output files named h2o.cisd.inp and h2o.cisd.out. Due to technical problems with GAMESS in the BGQ architecture of VESTA, we are unable to use CISD properly in GAMESS. For this reason, the output of the calculation is already provided in the directory.
%You'll see several input and output files named h2o.XXX.inp
%and h2o.XXX.out, where XXX is one of the following multi-determinant methods: CISD,
%CASSCF, CASCI, SOCI.
There will be time in the next step to study the GAMESS input
files and the description in section A. %In the next exercise we will use the CISD output, in
%the next exercise we will use the remaining files.
Since the output is already provided, the
only thing needed is to use the converter to generate the appropriate QMCPACK files. %Copy a submission script from GAMESS/Generic Files and execute the converter for all the output
%files in the directory (with the exception of CASSCF, which is used to generate orbitals).
%but it doesnt contain appropriate CI coefficients).
\begin{shade}
jobrun_vesta convert4qmc h2o.cisd.out -ci h2o.cisd.out \
-readInitialGuess 57 -threshold 0.0075
\end{shade}
We used the PRTMO=.T. flag in the GUESS section to include orbitals in the output file. You should read these orbitals from the output (-readInitialGuess 40).
The highest occupied orbital in any determinant should be 34, so reading 40 orbitals is a safe choice. In this case, it is important to rename the xml files with meaningful names, for example h2o.cisd.wfs.xml. A threshold of 0.0075 is sufficient for the calculations in the training.
\subsection{Optimization of Multi-Determinant wave-function}
In this section we will optimize the wave-function generated in the previous step. There
is no difference in the optimization steps if a single determinant and a multi-determinant wave-function.
QMCPACK will recognize the presence of a multi-determinant wavefunction and will automatically
optimize the linear coefficients by default. Go to ``ex3\_multi-slater-jastrow/cisd'' and make a folder called
thres0.01. Copy the particle set and wavefunction files created in the previous step to the current
directory. With your favorite text editor, open the wave-function file h2o.wfs.xml. Look for
the multideterminant XML block and change the ``cutoff'' parameter in detlist to 0.01. Then follow
the same steps used in the subsection ``Optimization and DMC calculations with DFT wave-functions''
to optimize the wave-function. Similar to this case, design a QMCPACK input file that performs
wave-function optimization followed by VMC and DMC calculations. Submit the calculation.
This is a good time to review the GAMESS input file description in Appendix section A.
When the run is completed, go to the previous directory and make a new folder named
thres0.0075. Repeat the steps performed above to optimize the wave-function with a cutoff of 0.01, but use a cutoff of 0.0075 this time. This will increase the number of determinants used in the calculation. Notice the ``cutoff'' parameter in the XML should be less than the ``-threshold 0.0075'' flag passed to the converted, which is further bounded by the PRTTOL flag in the GAMESS input.
After the wave-function is generated, we are ready to optimize. Instead of starting from an un-optimized wave-function, we can start from optimized wave-function from thres0.01 to speed up convergence. You will need to modify the file and change the cutoff in detlist to 0.0075 with a text editor. Repeat the optimization steps and submit the calculation.
\begin{figure}
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.75\columnwidth]{./figures/lab_advanced_molecules_dmc_ci_cisd.png}
\end{center}
\caption{DMC energy as a function of the sum of the square of CI coefficients from CISD.}
\label{fig:lam_dmc_ci_cisd}
\end{figure}
When you are done, use qmca to analyze the results. Compare the energies at these two
coefficient cutoffs with the energies obtained with DFT orbitals. Due to the time limitations of this tutorial it is not practical to optimize the wave-functions with a smaller cutoff, since this would require more samples and longer runs due to the larger number of optimizable parameters. Figure \ref{fig:lam_dmc_ci_cisd} shows the results of such exercise, the DMC energy as a function of the cutoff in the wave-function. As can be seen, a large improvement in the energy is obtained as the number of configurations is increased.
%Since the un-optimized wave-functions were generated in subsection “Generation of a CISD wavefunctions
%using GAMESS” of exercise \#2, we can skip this section and go straight to the
%wave-function optimization.
\subsection{CISD, CASCI and SOCI}
Go to “ex3\_multi-slater-jastrow” and inspect folders for the remaining wave-function types: CASCI and SOCI. Follow steps in the previous exercise and obtain the optimized wave-functions for these determinant choices. Notice the SOCI GAMESS output is not included because it is large. Already converted XML inputs can be found in ``ex3\_multi-slater-jastrow/soci/thres*''. %The exercise has already been performed with a CISD wave-function in exercise \#2.
A CASCI wave-function is produced from a CI calculation that includes all the determinants
in a complete active space (CAS) calculation, in this case using the orbitals from a previous CASSCF
calculation. In this case we used a CAS(8,8) active space, that includes all determinants
generated by distributing 8 electrons in the lowest 8 orbitals. A second-order CI (SOCI) calculation is similar
to the CAS-CI calculation, but in addition to the determinants in the CAS it also includes
all single and double excitations from all of them, leading to a much larger determinant
set. Since we now have considerable experience optimizing wave-functions and calculating
DMC energies, we will leave it to the student to complete the remaining tasks on its own.
If you need help, refer to previous exercises in the tutorial. Perform optimizations for both
wave-functions using cutoffs in the CI expansion of 0.01 an 0.0075. If there is enough time
left, try to optimize the wave-functions with a cutoff of 0.005. Analyze the results and plot
the energy as a function of cutoff for all three cases, CISD, CAS-CI and SOCI.
Figure \ref{fig:lam_dmc_ci_cisd} shows the result of similar calculations using more samples and smaller cutoffs.
The results should be similar to those produced in the tutorial. For reference, the exact
energy of the water molecule with ECPs is approximately -17.276 Ha. From the results of the
tutorial, how does the selection of determinants is related to the expected DMC energy?
What about the choice in the set of orbitals?
\newpage
\section{Appendix A: GAMESS input}
In this section we provide a brief description of the GAMESS input needed to produce
trial wave-function for QMC calculations with QMCPACK. We assume basic familiarity
with GAMESS input structure, in particular regarding the input of atomic coordinates and
the definition of gaussian basis sets. This section will focus on the generation of the output
files needed by the converter tool, convert4qmc. For a description of the converter, see B.
Only a subset of the methods available in GAMESS can be used to generate wave-functions
for QMCPACK and we restrict our description here to these.
For a complete description of all the options and methods available
in GAMESS, please refer to the official documentation which could be found in
”http://www.msg.ameslab.gov/gamess/documentation.html”.
Currently, convert4qmc can process output for the following methods in GAMESS (in
SCFTYP) : RHF, ROHF, and MCSCF. Both HF as well as DFT calculations (any DFT
type) could be used in combination with RHF and ROHF calculations. For MCSCF and CI
calculations, ALDET, ORMAS and GUGA drivers can be used (see below for details).
\subsection{HF input}
The following input will perform a restricted HF calculation on a closed-shell singlet
(multiplicity=1). This will generate RHF orbitals for any molecular system defined in
\texttt{\$DATA ... \$END}.
\begin{lstlisting}
$CONTRL SCFTYP=RHF RUNTYP=ENERGY MULT=1
ISPHER=1 EXETYP=RUN COORD=UNIQUE MAXIT=200 $END
$SYSTEM MEMORY=150000000 $END
$GUESS GUESS=HUCKEL $END
$SCF DIRSCF=.TRUE. $END
$DATA
...
Atomic Coordinates and basis set
...
$END
\end{lstlisting}
Main options:
\begin{enumerate}
\item{SCFTYP: Type of SCF method, options: RHF, ROHF, MCSCF, UHF and NONE.}
\item{RUNTYP: Type of run. For QMCPACK wave-function generation this should always be ENERGY.}
\item{MULT: Multiplicity of the molecule.}
\item{ISPHER: Use spherical harmonics (1) or cartesian basis functions (-1).}
\item{COORD: Input structure for the atomic coordinates in \$DATA.}
\end{enumerate}
\subsection{DFT calculations}
The main difference between the input for a RHF/ROHF calculation and a DFT calculation
is the definition of the DFTTYP parameter. If this is set in the \$CONTROL
section, a DFT calculation will be performed with the appropriate functional. Notice that
while the default values are usually adequate, DFT calculations have many options involving
the integration grids and accuracy settings. Make sure you study the input manual to be
aware of these. Refer to the input manual for a list of the implemented exchange-correlation
functionals.
\subsection{Multi-Configuration Self-Consistent Field (MCSCF)}
MCSCF calculations are performed by setting SCFTYP=MCSCF in the $CONTROL
section. If this option is set, a $MCSCF section must be added to the input file with the
options for the calculation. An example section for the water molecule used in the tutorial
is shown below.
\begin{lstlisting}
$MCSCF CISTEP=GUGA MAXIT=1000 FULLNR=.TRUE. ACURCY=1.0D-5 $END
\end{lstlisting}
The most important parameter is CISTEP, which defines the CI package used. The only
options compatible with QMCPACK are: ALDET, GUGA, and ORMAS. Depending on the
package used, additional input sections are needed.
\subsection{Configuration Interaction (CI)}
Configuration interaction (full CI, truncated CI, CAS-CI, etc) calculations are performed
by setting SCFTYP=NONE and CITYP=GUGA,ALDET,ORMAS. Each one of this packages
requires further input sections, which are typically slightly different to the input sections
needed for MCSCF runs.
\subsection{GUGA: Unitary Group CI package}
The GUGA package is the only alternative if one wants CSFs with GAMESS. Below
we provide a very brief description of input sections needed to perform MCSCF, CASCI,
truncated CI and SOCI with this package. For a complete description of these methods and
all the options available, please refer to the GAMESS input manual.
\subsubsection{GUGA-MCSCF}
The following input section performs a CASCI calculation, with a CAS that includes 8
electrons in 8 orbitals (4 DOC and 4 VAL), e.g. CAS(8,8). NMCC is the number of frozen
orbitals (doubly occupied orbitals in all determinants), NDOC is the number of double
occupied orbitals in the reference determinant, NVAL is the number of singly occupied
orbitals in the reference (for spin polarized cases), and NVAL is the number of orbitals in
the active space. Since FORS is set to .TRUE., all configurations in the active space will
be included. ISTSYM defines the symmetry of the desired state.
\begin{lstlisting}
$MCSCF CISTEP=GUGA MAXIT=1000 FULLNR=.TRUE. ACURCY=1.0D-5 $END
$DRT GROUP=C2v NMCC=0 NDOC=4 NALP=0 NVAL=4 ISTSYM=1 MXNINT= 500000 FORS=.TRUE. $END
\end{lstlisting}
\subsubsection{GUGA-CASCI}
The following input section performs a CASCI calculation, with a CAS that includes 8
electrons in 8 orbitals (4 DOC and 4 VAL), e.g. CAS(8,8). NFZC is the number of frozen
orbitals (doubly occupied orbitals in all determinants). All other parameters are identical
to those in the MCSCF input section.
\begin{lstlisting}
$CIDRT GROUP=C2v NFZC=0 NDOC=4 NALP=0 NVAL=4 NPRT=2 ISTSYM=1 FORS=.TRUE. MXNINT= 500000 $END
$GUGDIA PRTTOL=0.001 CVGTOL=1.0E-5 ITERMX=1000 $END
\end{lstlisting}
\subsubsection{GUGA-Truncated CI}
The following input sections will lead to a truncated CI calculation, in this particular case
it will perform a CISD calculation since IEXCIT is set to 2. Other values in IEXCIT will lead
to different CI truncations, for example IEXCIT=4 will lead to CISDTQ. Notice that only
the lowest 30 orbitals will be included in the generation of the excited determinants in this
case. For a full CISD calculation, NVAL should be set to the total number of virtual orbitals.
\begin{lstlisting}
$CIDRT GROUP=C2v NFZC=0 NDOC=4 NALP=0 NVAL=30 NPRT=2 ISTSYM=1 IEXCIT=2 MXNINT= 500000 $END
$GUGDIA PRTTOL=0.001 CVGTOL=1.0E-5 ITERMX=1000 $END
\end{lstlisting}
\subsubsection{GUGA-SOCI}
The following input section performs a SOCI calculation, with a CAS that includes 8
electrons in 8 orbitals (4 DOC and 4 VAL), e.g. CAS(8,8). Since SOCI is set to .TRUE.,
all single and double determinants from all determinants in the CAS(8,8) will be included.
\begin{lstlisting}
$CIDRT GROUP=C2v NFZC=0 NDOC=4 NALP=0 NVAL=4 NPRT=2 ISTSYM=1 SOCI=.TRUE. NEXT=30 MXNINT= 500000 $END
$GUGDIA PRTTOL=0.001 CVGTOL=1.0E-5 ITERMX=1000 $END
\end{lstlisting}
\subsection{ECP}
To use Effective Core Potentials (ECP) in GAMESS, you must define a \{\texttt{\$ECP ... \$END}\}
block. There must be a definition of a potential for every atom in the system, including
symmetry equivalent ones. In addition, they must appear in the particular order expected
by GAMESS. Below is an example of an ECP input block for a single water molecule using
BFD ECPs. To turn on the use of ECPs, the option “ECP=READ” must be added to the
CONTROL input block.
\begin{lstlisting}
$ECP
O-QMC GEN 2 1
3
6.00000000 1 9.29793903
55.78763416 3 8.86492204
-38.81978498 2 8.62925665
1
38.41914135 2 8.71924452
H-QMC GEN 0 0
3
1.000000000000 1 25.000000000000
25.000000000000 3 10.821821902641
-8.228005709676 2 9.368618758833
H-QMC
$END
\end{lstlisting}
\newpage
\section{Appendix B: convert4qmc}
To generate the particleset and wavefunction XML blocks required by QMCPACK in
calculations with molecular systems, the converter convert4qmc must be used. The converter
will read the standard output from the appropriate Quantum Chemistry calculation and will
generate all the necessary input for QMCPACK. Below we describe the main options of the
converter for GAMESS output. In general, there are 3 ways to use the converter depending
on the type of calculation performed. The minimum syntax for each option is found below.
For a description of the xml files produced by the converter, see section E.
\begin{enumerate}
\item{For all single determinant calculations (HF and DFT with any DFTTYP):}
\begin{shade}
convert4qmc -gamessAscii single det.out
\end{shade}
\begin{itemize}
\item{single det.out is the standard output generated by GAMESS.}
\end{itemize}
\item{\textit{(This option is not recommended. Use option below to avoid mistakes.)} For
multi-determinant calculations where the orbitals and configurations are read from different
files (for example when using orbitals from a MCSCF run and configurations from a
subsequent CI run):}
\begin{shade}
convert4qmc -gamessAscii orbitals multidet.out -ci cicoeff multidet.out
\end{shade}
\begin{itemize}
\item{orbitals\_multidet.out is the standard output from the calculation that generates the
orbitals. cicoeff multidet.out is the standard output from the calculation that calculates
the CI expansion.}
\end{itemize}
\item{For multi-determinant calculations where the orbitals and configurations are read from
the same file, using PRTMO=.T. in the GUESS input block:}
\begin{shade}
convert4qmc -gamessAscii multi det.out -ci multi det.out -readInitialGuess Norb
\end{shade}
\begin{itemize}
\item{multi\_det.out is the standard output from the calculation that calculates the CI expansion.}
\end{itemize}
\end{enumerate}
Options:
\begin{itemize}
\item{\textbf{-gamessAscii file.out}: Standard output of GAMESS calculation. With the exception
of determinant configurations and coefficients in multi-determinant calculations,
everything else is read from this file including: atom coordinates, basis sets, single
particle orbitals, ECPs, number of electrons, multiplicity, etc.}
\item{\textbf{-ci file.out}: In multi-determinant calculations, determinant configurations and
coefficients are read from this file. Notice that single particle orbitals are NOT read
from this file. Recognized CI packages are: ALDET, GUGA and ORMAS. Output
produced with the GUGA package MUST have the option “NPRT=2” in the CIDRT
or DRT input blocks.}
\item{\textbf{-threshold cutoff}: Cutoff in multi-determinant expansion. Only configurations with
coefficients above this value are printed.}
\item{\textbf{-zeroCI}: Sets to zero the CI coefficients of all determinants, with the exception of the
first one.}
\item{\textbf{-readInitialGuess Norb}: Reads Norb initial orbitals (“INITIAL GUESS ORBITALS”)
from GAMESS output. These are orbitals generated by the GUESS input
block and printed with the option “PRTMO=.T.”. Notice that this is useful only in
combination with the option “GUESS=MOREAD” and in cases where the orbitals
are not modified in the GAMESS calculation, e.g. CI runs. This is the recommended
option in all CI calculations.}
\item{\textbf{-NaturalOrbitals Norb}: Read Norb “NATURAL ORBITALS” from GAMESS
output. The natural orbitals must exists in the output, otherwise the code aborts.}
\item{\textbf{-add3BodyJ}: Adds three-body Jastrow terms (e-e-I) between electron pairs (both
same spin and opposite spin terms) and all ion species in the system. The radial
function is initialized to zero and the default cutoff is 10.0 bohr. The converter will
add a one- and two-body Jastrow to the wavefunction block by default.}
\end{itemize}
Useful notes:
\begin{itemize}
\item{The type of single particle orbitals read by the converter depends on the type of
calculation and on the options used. By default, when neither -readInitialGuess or
-NaturalOrbitals are used, the following orbitals are read in each case (notice that
-readInitialGuess or -NaturalOrbitals are mutually exclusive):}
\begin{itemize}
\item{RHF and ROHF: “EIGENVECTORS”}
\item{MCSCF: “MCSCF OPTIMIZED ORBITALS”}
\item{GUGA, ALDET, ORMAS: Cannot read orbitals without -readInitialGuess or -NaturalOrbitals options.}
\end{itemize}
\item{The single particle orbitals and printed CI coefficients in MCSCF calculations are
not consistent in GAMESS. The printed CI coefficients correspond to the next-to-last
iteration, they are not recalculated with the final orbitals. So in order to get appropriate
CI coefficients from MCSCF calculations, a subsequent CI (no SCF) calculation
is needed to produce consistent orbitals. In principle, it is possible to read the orbitals
from the MCSCF output and the CI coefficients and configurations from the
output of the following CI calculations. This could lead to problems in principle, since
GAMESS will rotate initial orbitals by default in order to obtain an initial guess consistent
with the symmetry of the molecule. This last step is done by default and can
change the orbitals reported in the MCSCF calculation before the CI is performed.
In order to avoid this problem, it is highly recommended to use option \#3 above to
read all the information from the output of the CI calculation, this requires the use
of “PRTMO=.T.” in the GUESS input block. Since the orbitals are printed after any
symmetry rotation, the resulting output will always be consistent.}
\end{itemize}
\newpage
\section{Appendix C: Wave-function Optimization XML block}
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.70\columnwidth]{./figures/lab_advanced_molecules_xml_opt.png}
\end{center}
\caption{Sample XML optimization block.}
\label{fig:lam_xml_opt}
\end{figure}
%\FloatBarrier
Options:
\begin{itemize}
\item{bigchange: (default 50.0) largest parameter change allowed}
\item{usebuffer: (default no) Save useful information during VMC}
\item{nonlocalpp: (default no) Include non-local energy on 1-D min}
\item{MinMethod: (default quartic) Method to calculate magnitude of parameter change
quartic: fit quartic polynomial to 4 values of the cost function obtained using reweighting
along chosen direction linemin: direct line minimization using reweighting rescale:
no 1-D minimization. Uses Umrigars suggestions.}
\item{stepsize: (default 0.25) step size in either quartic or linemin methods.}
\item{alloweddifference: (default 1e-4) Allowed increased in energy}
\item{exp0: (default -16.0) Initial value for stabilizer (shift to diagonal of H) Actual value
of stabilizer is 10 exp0}
\item{nstabilizers: (default 3) Number of stabilizers to try}
\item{stabilizaterScale: (default 2.0) Increase in value of exp0 between iterations.}
\item{max its: (default 1) number of inner loops with same sample}
\item{minwalkers: (default 0.3) minimum value allowed for the ratio of effective samples
to actual number of walkers in a reweighting step. The optimization will stop if the
effective number of walkers in any reweighting calculation drops below this value. Last
set of acceptable parameters are kept.}
\item{maxWeight: (defaul 1e6) Maximum weight allowed in reweighting. Any weight above
this value will be reset to this value.}
\end{itemize}
Recommendations:
\begin{itemize}
\item{Set samples to equal to (\#threads)*blocks.}
\item{Set steps to 1. Use substeps to control correlation between samples.}
\item{For cases where equilibration is slow, increase both substeps and warmupsteps.}
\item{For hard cases (e.g. simultaneous optimization of long MSD and 3-Body J), set exp0
to 0 and do a single inner iteration (max its=1) per sample of configurations.}
\end{itemize}
\newpage
\section{Appendix D: VMC and DMC XML block}
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=0.75\columnwidth]{./figures/lab_advanced_molecules_xml_vmc_dmc.png}
\end{center}
\caption{Sample XML blocks for VMC and DMC calculations.}
\label{fig:lam_xml_vmc_dmc}
\end{figure}
%\FloatBarrier
General Options:
\begin{itemize}
\item{\textbf{move}: (default ”walker”) Type of electron move. Options: ”pbyp” and ”walker”.}
\item{\textbf{checkpoint}: (default ”-1”) (If > 0) Generate checkpoint files with given frequency.
The calculations can be restarted/continued with the produced checkpoint files.}
\item{\textbf{useDrift}: (default ”yes”) Defines the sampling mode. useDrift = ”yes” will
use Langevin acceleration to sample the VMC and DMC distributions, while
useDrift=”no” will use random displacements in a box.}
\item{\textbf{warmupSteps}: (default 0) Number of steps warmup steps at the beginning of the
calculation. No output is produced for these steps.}
\item{\textbf{blocks}: (default 1) Number of blocks (outer loop).}
\item{\textbf{steps}: (default 1) Number of steps per blocks (middle loop).}
\item{\textbf{sub steps}: (default 1) Number of substeps per step (inner loop). During sub steps,
the local energy is not evaluated in VMC calculations, which leads to faster execution.
In VMC calculations, set sub steps to the average autocorrelation time of the desired
quantity.}
\item{\textbf{time step}: (default 0.1) Electronic time step in bohr.}
\item{\textbf{samples}: (default 0) Number of walker configurations saved during the current
calculation.}
\item{\textbf{walkers}: (default \#threads) In VMC, sets the number of walkers per node. The total
number of walkers in the calculation will be equal to walkers*(\# nodes).}
\end{itemize}
Options unique to DMC:
\begin{itemize}
\item{\textbf{targetWalkers}: (default \#walkers from previous calculation, e.g. VMC.) Sets the
target number of walkers. The actual population of walkers will fluctuate around this
value. The walkers will be distributed across all the nodes in the calculation. On a
given node, the walkers are split across all the threads in the system.}
\item{\textbf{nonlocalmoves}: (default ”no”) Set to ”yes” to turns on the use of Casulas T-moves.}
\end{itemize}
\newpage
\section{Appendix E: Wave-function XML block}
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=1.0\columnwidth]{./figures/lab_advanced_molecules_xml_determinantset.png}
\end{center}
\caption{Basic framework for a single determinant determinantset XML block.}
\label{fig:lam_xml_determinantset}
\end{figure}
%\FloatBarrier
In this section we describe the basic format of a QMCPACK wavefunction XML block.
Everything listed in this section is generated by the appropriate converter tools. Little to
no modification is needed when performing standard QMC calculations. As a result, this
section is meant mainly for illustration purposes. Only experts should attempt to modify
these files (with very few exceptions like the cutoff of CI coefficients and the cutoff in Jastrow
functions) since changes can lead to unexpected results.
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=1.0\columnwidth]{./figures/lab_advanced_molecules_xml_basisset.png}
\end{center}
\caption{Sample XML block for an atomic orbital basis set.}
\label{fig:lam_xml_basisset}
\end{figure}
%\FloatBarrier
A QMCPACK wavefunction XML block is a combination of a determinantset, which
contains the anti-symmetric part of the wave-function, and one or more jastrow blocks.
The syntax of the anti-symmetric block depends on whether the wave-function is a single
determinant or a multi-determinant expansion. Figure \ref{fig:lam_xml_determinantset}
shows the general structure of the
single determinant case. The determinantset block is composed of a basisset block, which
defines the atomic orbital basis set, and a slaterdeterminant block, which defines the single
particle orbitals and occupation numbers of the Slater determinant. Figure \ref{fig:lam_xml_basisset}
shows a section
of a basisset block for an oxygen atom. The structure of this block is rigid and should not
be modified. Figure \ref{fig:lam_xml_slaterdeterminant} shows a (piece of a) sample of a
slaterdeterminant block. The
slaterdeterminant block consists of 2 determinant blocks, one for each electron spin. The
parameter “size” in the determinant block refers to the number of single particle orbitals
present while the “size” parameter in the coefficient block refers to the number of atomic
basis functions per single particle orbital.
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=1.0\columnwidth]{./figures/lab_advanced_molecules_xml_slaterdeterminant.png}
\end{center}
\caption{Sample XML block for the single slater determinant case.}
\label{fig:lam_xml_slaterdeterminant}
\end{figure}
%\FloatBarrier
Figure \ref{fig:lam_xml_multideterminant} shows the general structure of the multi-determinant case.
Similar to the
single determinant case, the determinantset must contain a basisset block. This definition is
identical to the one described above. In this case, the definition of the single particle orbitals
must be done independently from the definition of the determinant configurations, the latter
is done in the sposet block while the former is done on the multideterminant block. Notice
that 2 sposet sets must be defined, one for each electron spin. The name of reach sposet set
is required in the definition of the multideterminant block. The determinants are defined in
terms of occupation numbers based on these orbitals.
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=1.0\columnwidth]{./figures/lab_advanced_molecules_xml_multideterminant.png}
\end{center}
\caption{Basic framework for a multi-determinant determinantset XML block.}
\label{fig:lam_xml_multideterminant}
\end{figure}
%\FloatBarrier
There are various options in the multideterminant block that users should be aware of.
\begin{itemize}
\item{cutoff: (IMPORTANT! ) Only configurations with (absolute value) “qchem coeff”
larger than this value will be read by QMCPACK.}
\item{optimize: Turn on/off the optimization of linear CI coefficients.}
\item{coeff: (in csf ) Current coefficient of given configuration. Gets updated during
wavefunction optimization.}
\item{qchem coeff: (in csf ) Original coefficient of given configuration from GAMESS
calculation. This is used when applying a cutoff to the configurations read from the file.
The cutoff is applied on this parameter and not on the optimized coefficient.}
\item{nca and nab: number of core orbitals for up/down electrons. A core orbital is an
orbital that is doubly occupied in all determinant configurations, not to be confused
with core electrons. These are not explicitly listed on the definition of configurations.}
\item{nea and neb: number of up/down active electrons (those being explicitly correlated).}
\item{nstates: number of correlated orbitals}
\item{size (in detlist ): contains the number of configurations in the list.}
\end{itemize}
The remaining part of the determinantset block is the definition of jastrow factor. Any
number of these can be defined. Figure \ref{fig:lam_xml_jastrow} shows a sample jastrow
block including one-, two- and three-body terms. This is the standard block produced by
convert4qmc with the option -add3BodyJ (this particular example is for a water molecule).
Optimization of individual radial functions can be turned on/off using the “optimize”
parameter. It can be added to any coefficients block, even though it is currently not
present in the J1 and J2 blocks.
%\FloatBarrier
\begin{figure}[ht!]
\begin{center}
\includegraphics[trim = 0mm 0mm 0mm 0mm, clip,width=1.0\columnwidth]{./figures/lab_advanced_molecules_xml_jastrow.png}
\end{center}
\caption{Sample Jastrow XML block.}
\label{fig:lam_xml_jastrow}
\end{figure}
%\FloatBarrier
This training assumes basic familiarity with the UNIX operating system. In particular,
we use simple scripts written in “csh”. In addition, we assume that the student has obtained
all the necessary files and executables, and that the location of the training files are located
at \$\{TRAINING TOP\}.
The goal of the training not only to familiarize the student with the execution and
options in QMCPACK, but also to introduce him/her to important concepts in quantum
Monte Carlo calculations and many-body electronic structure calculations.