lammps/doc/txt/hyper.txt

193 lines
8.1 KiB
Plaintext

"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
hyper command :h3
[Syntax:]
hyper N Nevent fix-ID compute-ID keyword values ... :pre
N = # of timesteps to run :ulb,l
Nevent = check for events every this many steps :l
fix-ID = ID of a fix that applies a global or local bias potential, can be NULL :l
compute-ID = ID of a compute that identifies when an event has occurred :l
zero or more keyword/value pairs may be appended :l
keyword = {min} or {dump} or {rebond} :l
{min} values = etol ftol maxiter maxeval
etol = stopping tolerance for energy, used in quenching
ftol = stopping tolerance for force, used in quenching
maxiter = max iterations of minimize, used in quenching
maxeval = max number of force/energy evaluations, used in quenching
{dump} value = dump-ID
dump-ID = ID of dump to trigger whenever an event takes place
{rebond} value = Nrebond
Nrebond = frequency at which to reset bonds, even if no event has occurred
:pre
:ule
[Examples:]
compute event all event/displace 1.0
fix HG mobile hyper/global 3.0 0.3 0.4 800.0
hyper 5000 100 HG event min 1.0e-6 1.0e-6 100 100 dump 1 dump 5 :pre
[Description:]
Run a bond-boost hyperdynamics (HD) simulation where time is
accelerated by application of a bias potential to one or more pairs of
nearby atoms in the system. This command can be used to run both
global and local hyperdynamics. In global HD a single bond within the
system is biased on each timestep. In local HD multiple bonds
(separated by a sufficient distance) can be biased simultaneously at
each timestep. In the bond-boost hyperdynamics context, a "bond" is
not a covalent bond between a pair of atoms in a molecule. Rather it
is simply a pair of nearby atoms as discussed below.
Both global and local HD are described in "(Voter2013)"_#Voter2013 by
Art Voter and collaborators. Similar to parallel replica dynamics
(PRD), global and local HD are methods for performing accelerated
dynamics that are suitable for infrequent-event systems that obey
first-order kinetics. A good overview of accelerated dynamics methods
for such systems in given in "(Voter2002)"_#Voter2002hd from the same
group. To quote from the review paper: "The dynamical evolution is
characterized by vibrational excursions within a potential basin,
punctuated by occasional transitions between basins." The transition
probability is characterized by p(t) = k*exp(-kt) where k is the rate
constant. Running multiple replicas gives an effective enhancement in
the timescale spanned by the multiple simulations, while waiting for
an event to occur.
Both HD and PRD produce a time-accurate trajectory that effectively
extends the timescale over which a system can be simulated, but they
do it differently. HD uses a single replica of the system and
accelerates time by biasing the interaction potential in a manner such
that each timestep is effectively longer. PRD creates Nr replicas of
the system and runs dynamics on each independently with a normal
unbiased potential until an event occurs in one of the replicas. The
time between events is reduced by a factor of Nr replicas. For both
methods, per CPU second, more physical time elapses and more events
occur. See the "prd"_prd.html doc page for more info about PRD.
An HD run has several stages, which are repeated each time an event
occurs, as explained below. The logic for an HD run is as follows:
quench
create initial list of bonds :pre
while (time remains):
run dynamics for Nevent steps
quench
check for an event
if event occurred: reset list of bonds
restore pre-quench state :pre
The list of bonds is the list of atom pairs of atoms that are within a
short cutoff distance of each other after the system energy is
minimized (quenched). This list is created and reset by a "fix
hyper/global"_fix_hyper_global.html or "fix
hyper/local"_fix_hyper_local.html command specified as {fix-ID}. At
every dynamics timestep, the same fix selects one of more bonds to
apply a bias potential to.
NOTE: The style of fix associated with the specified {fix-ID}
determines whether you are running the global versus local
hyperdynamics algorithm.
Dynamics (with the bias potential) is run continuously, stopping every
{Nevent} steps to check if a transition event has occurred. The
specified {N} for total steps must be a multiple of {Nevent}. check
is performed by quenching the system and comparing the resulting atom
coordinates to the coordinates from the previous basin.
A quench is an energy minimization and is performed by whichever
algorithm has been defined by the "min_style"_min_style.html command.
Minimization parameters may be set via the
"min_modify"_min_modify.html command and by the {min} keyword of the
hyper command. The latter are the settings that would be used with
the "minimize"_minimize.html command. Note that typically, you do not
need to perform a highly-converged minimization to detect a transition
event, though you may need to in order to prevent a set of atoms in
the system from relaxing to a saddle point.
The event check is performed by a compute with the specified
{compute-ID}. Currently there is only one compute that works with the
hyper command, which is the "compute
event/displace"_compute_event_displace.html command. Other
event-checking computes may be added. "Compute
event/displace"_compute_event_displace.html checks whether any atom in
the compute group has moved further than a specified threshold
distance. If so, an event has occurred.
If this happens, the list of bonds is reset, since some bond pairs
are likely now too far apart, and new pairs are likely close enough
to be considered a bond. The pre-quenched state of the
system (coordinates and velocities) is restored, and dynamics continue.
At the end of the hyper run, a variety of statistics are output to the
screen and logfile. These include info relevant to both global and
local hyperdynamics, such as the number of events and the elapsed
hyper time (accelerated time), And it includes info specific to one or
the other, depending on which style of fix was specified by {fix-ID}.
:line
The optional keywords operate as follows.
As explained above, the {min} keyword can be used to specify
parameters for the quench. Their meaning is the same
as for the "minimize"_minimize.html command
The {dump} keyword can be used to trigger a specific dump command with
the specified {dump-ID} to output a snapshot each time an event is
detected. It can be specified multiple times with different {dump-ID}
values, as in the example above. These snapshots will be for the
quenched state of the system on a timestep that is a multiple of
{Nevent}, i.e. a timestep after the event has occurred. Note that any
dump command in the input script will also output snapshots at
whatever timestep interval it defines via its {N} argument; see the
"dump"_dump.html command for details. This means if you only want a
particular dump to output snapshots when events are detected, you
should specify its {N} as a value larger than the length of the
hyperdynamics run.
As in the code logic above, the bond list is normally only reset when
an event occurs. The {rebond} keyword will force a reset of the bond
list every {Nrebond} steps, even if an event has not occurred.
{Nrebond} must be a multiple of {Nevent}. This can be useful to check
if more frequent resets alter event statistics, perhaps because the
parameters chosen for defining what is a bond and what is an event are
producing bad dynamics in the presence of the bias potential.
:line
[Restrictions:]
This command can only be used if LAMMPS was built with the REPLICA
package. See the "Build package"_Build_package.html doc
page for more info.
[Related commands:]
"fix hyper/global"_fix_hyper_global.html, "fix
hyper/local"_fix_hyper_local.html, "compute
event/displace"_compute_event_displace.html, "prd"_prd.html
[Default:]
The option defaults are min = 0.1 0.1 40 50 and time = steps.
:line
:link(Voter2013)
[(Voter2013)] S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,
144110 (2013).
:link(Voter2002hd)
[(Voter2002)] Voter, Montalenti, Germann, Annual Review of Materials
Research 32, 321 (2002).