mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-27 13:45:27 -04:00
automatically be expanded to include useful information about the checkin (including the file's revision number). With the switch over to SVN this was lost because SVN only does this expansion if you explicitly ask for it (for every single file). I have added a script to the contrib directory that sets the appropriate property to get SVN to do this expansion. This script will make it easy to do this every time new source files are added. It is called svn_expand_Id, the script contains some comments that explain the issue and how it addresses this. This checkin sets this property for a subset of the relevant files (trying to commit all files at once failed with svn crashing). In future the script will only affect those files for which the property was not set before.
436 lines
17 KiB
TeX
436 lines
17 KiB
TeX
%\chapter{Dynamical Nucleation Theory Monte Carlo}
|
|
|
|
% $Id$
|
|
%
|
|
% Updated 6/24/08 for new version (lcrosby)
|
|
|
|
\label{sec:dntmc} 1.) Schenter, G. K.; Kathmann, S. M.; Garrett, B.
|
|
C. {\it J. Chem. Phys.} ({\bf 1999}), {\it 110}, 7951. 2.)Crosby, L.
|
|
D.; Kathmann, S. M.; Windus, T. L. {\it J. Comput. Chem.} ({\bf
|
|
2008}), submitted.
|
|
|
|
The Dynamical Nucleation Theory Monte Carlo
|
|
(DNTMC) module utilizes Dynamical Nucleation Theory (DNT) to compute
|
|
monomer evaporation rate constants at a given temperature. The
|
|
reactant is a molecular cluster of $i$ rigid monomers while the
|
|
product is a molecular cluster with $i-1$ monomers plus a free
|
|
monomer. A Metropolis Monte Carlo (MC) methodology is utilized to
|
|
sample the configurational space of these $i$ rigid monomers. Both
|
|
homogenous and heterogenous clusters are supported.
|
|
|
|
\section{SubGroups}
|
|
|
|
The DNTMC module supports the use of subgroups in the MC
|
|
simulations. The number of subgroups is defined in the input
|
|
through a set directive:
|
|
\begin{verbatim}
|
|
set subgroup_number <integer number>
|
|
\end{verbatim}
|
|
,where the number of subgroups requested is the argument. The
|
|
number of processors that each subgroup has access to is determined
|
|
by Total/subgroup\_number. A separate MC simulation is performed
|
|
within each subgroup. To use this functionality, NWChem must be
|
|
compiled with the USE\_SUBGROUPS environmental variable set.
|
|
|
|
Each MC simulation starts at a different starting configuration,
|
|
which is equally spaced along the reaction coordinate. The
|
|
statistical distributions which these MC simulations produce are
|
|
averaged to form the final statistical distribution. Output from
|
|
these subgroups consists of various files whose names are of the
|
|
form (*.\#num). These files include restart files and other data
|
|
files. The NWChem runtime database (RTDB) is used as input for
|
|
these subgroups and must be globally accessible (set through the
|
|
Permanent\_Dir directive) to all processes.
|
|
|
|
\newpage
|
|
\section{Input Syntax}
|
|
|
|
The input block has the following form:
|
|
|
|
\begin{verbatim}
|
|
DNTMC
|
|
[nspecies <integer number>]
|
|
[species <list of strings name[nspecies]]
|
|
[nmol <list of integers number[nspecies]>]
|
|
|
|
[temp <real temperature>]
|
|
[rmin <real rmin>]
|
|
[rmax <real rmax>]
|
|
[nob <integer nob>]
|
|
[mcsteps <integer number>]
|
|
[tdisp <real disp>]
|
|
[rdisp <real rot>]
|
|
[rsim || rconfig]
|
|
[mprnt <integer number>]
|
|
[convergence <real limit>]
|
|
[norestart]
|
|
[dntmc_dir <string directory>]
|
|
|
|
[print &&|| noprint]
|
|
|
|
[procrestart <integer number>]
|
|
END
|
|
\end{verbatim}
|
|
|
|
\section{Definition of Monomers}
|
|
|
|
Geometry information is required for each unique monomer (species).
|
|
See the geometry input section \ref{sec:geom} for more information.
|
|
A unique label must be given for each monomer geometry.
|
|
Additionally, the noautosym and nocenter options are suggested for
|
|
use with the DNTMC module to prevent NWChem from changing the input
|
|
geometries. Symmetry should also not be used since cluster
|
|
configurations will seldom exhibit any symmetry; although monomers
|
|
themselves may exhibit symmetry.
|
|
|
|
\begin{verbatim}
|
|
GEOMETRY [<string name species_1>] noautosym nocenter ...
|
|
...
|
|
symmetry c1
|
|
END
|
|
|
|
GEOMETRY [<string name species_2>] noautosym nocenter ...
|
|
...
|
|
symmetry c1
|
|
END
|
|
|
|
...
|
|
\end{verbatim}
|
|
|
|
The molecular cluster is defined by the number of unique monomers
|
|
(nspecies). The geometry labels for each unique monomer is given in
|
|
a space delimited list (species). Also required are the number of
|
|
each unique monomer in the molecular cluster given as a space
|
|
delimited list (nmol). These keywords are required and thus have no
|
|
default values.
|
|
|
|
\begin{verbatim}
|
|
[nspecies <integer number>]
|
|
[species <list of strings name[nspecies]]
|
|
[nmol <list of integers number[nspecies]>]
|
|
\end{verbatim}
|
|
|
|
An example is shown in section \ref{sec:dntmc_example} for a 10
|
|
monomer cluster consisting of a 50/50 mixture of water and ammonia.
|
|
|
|
\section{DNTMC runtime options}
|
|
|
|
Several options control the behavior of the DNTMC module. Some
|
|
required options such as simulation temperature (temp), cluster
|
|
radius (rmin and rmax), and maximum number of MC steps (mcsteps) are
|
|
used to control the MC simulation.
|
|
|
|
\begin{verbatim}
|
|
[temp <real temperature>]
|
|
\end{verbatim}
|
|
This required option gives the simulation temperature in which the
|
|
MC simulation is run. Temperature is given in kelvin.
|
|
|
|
\begin{verbatim}
|
|
[rmin <real rmin>]
|
|
[rmax <real rmax>]
|
|
[nob <integer nob>]
|
|
\end{verbatim}
|
|
These required options define the minimum and maximum extent of the
|
|
projected reaction coordinate (The radius of a sphere centered at
|
|
the center of mass). Rmin should be large enough to contain the
|
|
entire molecular cluster of monomers and Rmax should be large enough
|
|
to include any relevant configurational space (such as the position
|
|
of the reaction bottleneck). These values are given in Angstroms.
|
|
|
|
The probability distributions obtain along this projected reaction
|
|
coordinate has a minimum value of Rmin and a maximum value of Rmax.
|
|
The distributions are created by chopping this range into a number
|
|
of smaller sized bins. The number of bins (nob) is controlled by
|
|
the option of the same name.
|
|
|
|
\begin{verbatim}
|
|
[mcsteps <integer number>]
|
|
[tdisp <real disp default 0.04>]
|
|
[rdisp <real rot default 0.06>]
|
|
[convergence <real limit default 0.00>]
|
|
\end{verbatim}
|
|
These options define some characteristics of the MC simulations. The
|
|
maximum number of MC steps (mcsteps) to take in the course of the
|
|
calculation run is a required option. Once the MC simulation has
|
|
performed this number of steps the calculation will end. This is a
|
|
per Markov chain quantity. The maximum translational step size
|
|
(tdisp) and rotational step size (rdisp) are optional inputs with
|
|
defaults set at 0.04 Angstroms and 0.06 radians, respectively. The
|
|
convergence keyword allows the convergence threshold to be set. The
|
|
default is 0.00 which effectively turns off this checking. Once the
|
|
measure of convergence goes below this threshold the calculation
|
|
will end.
|
|
|
|
\begin{verbatim}
|
|
[rsim || rconfig]
|
|
\end{verbatim}
|
|
These optional keywords allow the selection of two different MC
|
|
sampling methods. rsim selects a Metropolis MC methodology which
|
|
samples configurations according to a Canonical ensemble. The
|
|
rconfig keyword selects a MC methodology which samples
|
|
configurations according to a derivative of the Canonical ensemble
|
|
with respect to the projected reaction coordinate. These keywords
|
|
are optional with the default method being rconfig.
|
|
|
|
\begin{verbatim}
|
|
[mprnt <integer number default 10>]
|
|
[dntmc_dir <string directory default ./>]
|
|
[norestart]
|
|
\end{verbatim}
|
|
These three options define some of the output and data analysis
|
|
behavior. mprnt is an option which controls how often data analysis
|
|
occurs during the simulation. Currently, every mprnt*nob MC steps
|
|
data analysis is performed and results are output to files and/or to
|
|
the log file. Restart files are also written every mprnt number of
|
|
MC steps during the simulation. The default value is 10. The
|
|
keyword dntmc\_dir allows the definition of an alternate directory
|
|
to place DNTMC specific ouputfiles. These files can be very large
|
|
so be sure enough space is available. This directory should be
|
|
accessible by every process (although not necessarily globally
|
|
accessible). The default is to place these files in the directory
|
|
which NWChem is run (./). The keyword norestart turns off the
|
|
production of restart files. By default restart files are produced
|
|
every mprnt number of MC steps.
|
|
|
|
\section{Print Control}
|
|
The DNTMC module supports the use of PRINT and NOPRINT Keywords. The
|
|
specific labels which DNTMC recognizes are included below.
|
|
|
|
\begin{table}[htbp!]
|
|
\begin{center}
|
|
\begin{tabular}{lcc}
|
|
{\bf Name} & {\bf Print Level} & {\bf Description} \\
|
|
``debug'' & debug & \begin{minipage}{0.6\textwidth}Some debug
|
|
information written in Output
|
|
file.\end{minipage} \\
|
|
\\
|
|
``information'' & none & \begin{minipage}{0.6\textwidth}Some
|
|
information such as energies and
|
|
geometries.\end{minipage}\\
|
|
\\
|
|
``mcdata'' & low & \begin{minipage}{0.6\textwidth} Production of a
|
|
set of files (Prefix.MCdata.\#num). These files are a concatenated
|
|
list of structures, Energies, and Dipole Moments for each accepted
|
|
configuration sampled in the MC run.\end{minipage}\\
|
|
\\
|
|
``alldata'' & low & \begin{minipage}{0.6\textwidth}Production of a
|
|
set of files (Prefix.Alldata.\#num). These files include the same
|
|
information as MCdata files. However, they include ALL
|
|
configurations (accepted or
|
|
rejected).\end{minipage}\\
|
|
\\
|
|
``mcout'' & debug -- low &
|
|
\begin{minipage}{0.6\textwidth}Production of a set of files
|
|
(Prefix.MCout.\#num). These files contain a set of informative and
|
|
debug information. Also included is the set of information which
|
|
mirrors the Alldata files.\end{minipage}\\
|
|
\\
|
|
``fdist'' & low & \begin{minipage}{0.6\textwidth}Production of a
|
|
file (Prefix.fdist) which contains
|
|
a concatenated list of distributions every mprnt*100 MC steps.\end{minipage}\\
|
|
\\
|
|
``timers'' & debug &
|
|
\begin{minipage}{0.6\textwidth}Enables some timers in the code.
|
|
These timers return performance statistics in the output file every
|
|
time data analysis is performed. Two timers are used. One for the
|
|
mcloop itself and one for the communication step.\end{minipage}
|
|
\end{tabular}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\section{Selected File Formats}
|
|
Several output files are available in the DNTMC module. This
|
|
section defines the format for some of these files.
|
|
|
|
\begin{enumerate}
|
|
\item *.fdist
|
|
|
|
This file is a concatenated list of radial distribution functions
|
|
printed out every mprnt MC steps. Each distribution is normalized
|
|
(sum equal to one) with respect to the entire (all species)
|
|
distribution. The error is the RMS deviation of the average at each
|
|
point. Each entry is as follows: \subitem [1] \# Total
|
|
Configurations \subitem [2] Species number \# \subitem [3](R
|
|
coordinate in Angstroms) (Probability) (Error) \subitem [Repeats nob
|
|
times] \subitem [2 and 3 Repeats for each species] \subitem [4]
|
|
*** separator.
|
|
|
|
\item *.MCdata.\#
|
|
|
|
This file is a concatenated list of accepted configurations. Each
|
|
file corresponds to a single Markov chain. The dipole is set to
|
|
zero for methods which do not produce a dipole moment with energy
|
|
calculations. Rsim is either the radial extent of the cluster
|
|
(r-config) or the simulation radius (r-simulation).
|
|
Each entry is as follows: \subitem [1] (Atomic label) (X Coord.) (Y
|
|
Coord.) (Z Coord.) \subitem [1 Repeats for each atom in the cluster
|
|
configuration, units are in angstroms] \subitem [2] Ucalc = \#
|
|
hartree \subitem [3] Dipole = (X) (Y) (Z) au \subitem [4] Rsim = \#
|
|
Angstrom \subitem [1 through 4 repeats for each accepted
|
|
configuration]
|
|
|
|
\item *.MCout.\#
|
|
|
|
This file has the same format and information content as the MCdata
|
|
file except that additional output is included. This additional
|
|
output includes summary statistics such as acceptance ratios,
|
|
average potential energy, and average radius. The information
|
|
included for accepted configurations does not include dipole moment
|
|
or radius.
|
|
|
|
\item *.MCall.\#
|
|
|
|
This file has the same format as the MCdata file expect that it
|
|
includes information for all configurations for which an energy is
|
|
determined. All accepted and rejected configurations are included
|
|
in this file.
|
|
|
|
\item *.restart.\#
|
|
|
|
This file contains the restart information for each subgroup. Its
|
|
format is not very human readable but the basic fields are described
|
|
in short here. \subitem Random number seed \subitem Potential energy
|
|
in hartrees \subitem Sum of potential energy \subitem Average
|
|
potential energy \subitem Sum of the squared potential energy
|
|
\subitem Squared potential energy \subitem Dipole moment in au (x)
|
|
(Y) (Z) \subitem Rmin and Rmax \subitem Rsim (Radius corresponds to
|
|
r-config or r-sim methods) \subitem Array of nspecies length, value
|
|
indicates the number of each type of monomer which lies at radius
|
|
Rsim from the center of mass [r-simulation sets these to zero]
|
|
\subitem Sum of Rsim \subitem Average of Rsim \subitem Number of
|
|
accepted translantional moves \subitem Number of accepted rotational
|
|
moves \subitem Number of accepted volume moves \subitem Number of
|
|
attempted moves (volume) (translational) (rotational) \subitem
|
|
Number of accepted moves (Zero) \subitem Number of accepted moves
|
|
(Zero) \subitem Number of MC steps completed \subitem [1] (Atom
|
|
label) (X Coord.) (Y Coord.) (Z Coord.) \subitem [1 repeats for each
|
|
atom in cluster configurations, units are in angstroms] \subitem [2]
|
|
Array of nspecies length, number of configurations in bin \subitem
|
|
[3] Array of nspecies length, normalized number of configurations in
|
|
each bin \subitem [4] (Value of bin in Angstroms) (Array of nspecies
|
|
length, normalized probability of bin) \subitem [2 through 4 repeats
|
|
nob times]
|
|
|
|
\end{enumerate}
|
|
|
|
\section{DNTMC Restart}
|
|
|
|
\begin{verbatim}
|
|
[procrestart <integer number>]
|
|
\end{verbatim}
|
|
Flag to indicate restart postprocessing. It is suggested that this
|
|
postprocessing run is done utilizing only one processor.
|
|
|
|
In order to restart a DNTMC run, postprocessing is required to put
|
|
required information into the runtime database (RTDB). During a run
|
|
restart information is written to files (Prefix.restart.\#num) every
|
|
mprnt MC steps. This information must be read and deposited into the
|
|
RTDB before a restart run can be done. The number taken as an
|
|
argument is the number of files to read and must also equal the
|
|
number of subgroups the calculation utilizes. The start directive
|
|
must also be set to restart for this to work properly. All input is
|
|
read as usual. However, values from the restart files take
|
|
precedence over input values. Some keywords such as mcsteps are not
|
|
defined in the restart files. Task directives are ignored. You must
|
|
have a RTDB present in your permanent directory.
|
|
|
|
Once postprocessing is done a standard restart can be done from the
|
|
RTDB by removing the procrestart keyword and including the restart
|
|
directive.
|
|
|
|
\section{Task Directives}
|
|
The DNTMC module can be used with any level of theory which can
|
|
produce energies. Gradients and Hessians are not required within
|
|
this methodology. If dipole moments are available, they are also
|
|
utilized. The task directive for the DNTMC module is shown below:
|
|
\begin{verbatim}
|
|
task <string theory> dntmc
|
|
\end{verbatim}
|
|
|
|
\section{Example}
|
|
\label{sec:dntmc_example} This example is for a molecular cluster of
|
|
10 monomers. A 50/50 mixture of water and ammonia. The energies
|
|
are done at the SCF/6-31++G** level of theory.
|
|
|
|
\begin{verbatim}
|
|
start
|
|
# start or restart directive if a restart run
|
|
MEMORY 1000 mb
|
|
|
|
PERMANENT_DIR /home/bill
|
|
# Globally accessible directory which the
|
|
# rtdb (*.db) file will/does reside.
|
|
|
|
basis "ao basis" spherical noprint
|
|
* library 6-31++G**
|
|
end
|
|
# basis set directive for scf energies
|
|
|
|
scf
|
|
singlet
|
|
rhf
|
|
tol2e 1.0e-12
|
|
vectors input atomic
|
|
thresh 1.0e-06
|
|
maxiter 200
|
|
print none
|
|
end
|
|
# scf directive for scf energies
|
|
|
|
geometry geom1 units angstroms noautosym nocenter noprint
|
|
O 0.393676503613369 -1.743794626956820 -0.762291912129271
|
|
H -0.427227157125777 -1.279138812526320 -0.924898279781319
|
|
H 1.075463952717060 -1.095883929075060 -0.940073459864222
|
|
symmetry c1
|
|
end
|
|
# geometry of a monomer with title "geom1"
|
|
|
|
geometry geom2 units angstroms noautosym nocenter noprint
|
|
N 6.36299e-08 0.00000 -0.670378
|
|
H 0.916275 0.00000 -0.159874
|
|
H -0.458137 0.793517 -0.159874
|
|
H -0.458137 -0.793517 -0.159874
|
|
symmetry c1
|
|
end
|
|
# geometry of another monomer with title "geom2"
|
|
# other monomers may be included with different titles
|
|
|
|
set subgroups_number 8
|
|
# set directive which gives the number of subgroups
|
|
# each group runs a separate MC simulation
|
|
|
|
dntmc
|
|
# DNTMC input block
|
|
nspecies 2
|
|
# The number of unique species (number of titled geometries
|
|
# above)
|
|
species geom1 geom2
|
|
# An array of geometry titles (one for each
|
|
# nspecies/geometry)
|
|
nmol 5 5
|
|
# An array stating the number of each
|
|
# monomer/nspecies/geometry in simulation.
|
|
temp 243.0
|
|
mcsteps 1000000
|
|
rmin 3.25
|
|
rmax 12.25
|
|
mprnt 10
|
|
tdisp 0.04
|
|
rdisp 0.06
|
|
print none fdist mcdata
|
|
# this print line first sets the print-level to none
|
|
# then it states that the *.fdist and *.mcdata.(#num)
|
|
# files are to be written
|
|
rconfig
|
|
dntmc_dir /home/bill/largefile
|
|
# An accessible directory which to place the *.fdist,
|
|
# *.mcdata.(#num), and *.restart.(#num) files.
|
|
convergence 1.0D+00
|
|
end
|
|
|
|
task scf dntmc
|
|
# task directive stating that energies are to be done at the scf
|
|
#level of theory.
|
|
\end{verbatim}
|
|
|