Commit d7b54210 authored by sjplimp's avatar sjplimp Committed by GitHub
Browse files

Merge pull request #283 from akohlmey/grem-feature

gREM generalized replica exchange feature for USER-MISC
parents 0ffa50f8 78932159
Loading
Loading
Loading
Loading
+6.08 KiB
Loading image diff...
+9 −0
Original line number Diff line number Diff line
\documentclass[12pt]{article}

\begin{document}

$$
  T_{eff} = \lambda + \eta (H - H_0)
$$

\end{document}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -687,6 +687,7 @@ package"_Section_start.html#start_3.
"eos/table/rx"_fix_eos_table_rx.html,
"flow/gauss"_fix_flow_gauss.html,
"gle"_fix_gle.html,
"grem"_fix_grem.html,
"imd"_fix_imd.html,
"ipi"_fix_ipi.html,
"langevin/drude"_fix_langevin_drude.html,

doc/src/fix_grem.txt

0 → 100644
+111 −0
Original line number Diff line number Diff line
"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

fix grem command :h3

[Syntax:]

fix ID group-ID grem lambda eta H0 thermostat-ID :pre

ID, group-ID are documented in "fix"_fix.html command :ulb,l
grem = style name of this fix command :l
lambda = intercept parameter of linear effective temperature function :l
eta = slope parameter of linear effective temperature function :l
H0 = shift parameter of linear effective temperature function :l
thermostat-ID = ID of Nose-Hoover thermostat or barostat used in simulation :l,ule

[Examples:]

fix             fxgREM all grem 400 -0.01 -30000 fxnpt
thermo_modify   press fxgREM_press :pre

fix             fxgREM all grem 502 -0.15 -80000 fxnvt :pre

[Description:]

This fix implements the molecular dynamics version of the generalized
replica exchange method (gREM) originally developed by "(Kim)"_#Kim,
which uses non-Boltzmann ensembles to sample over first order phase
transitions. The is done by defining replicas with an enthalpy dependent
effective temperature

:c,image(Eqs/fix_grem.jpg)

with {eta} negative and steep enough to only intersect the characteristic
microcanonical temperature (Ts) of the system once, ensuring a unimodal
enthalpy distribution in that replica. {Lambda} is the intercept and
effects the generalized ensemble similar to how temperature effects a
Boltzmann ensemble. {H0} is a reference enthalpy, and is typically set
as the lowest desired sampled enthalpy.  Further explanation can be
found in our recent papers "(Malolepsza)"_#Malolepsza.

This fix requires a Nose-Hoover thermostat fix reference passed to the
grem as {thermostat-ID}. Two distinct temperatures exist in this generalized
ensemble, the effective temperature defined above, and a kinetic
temperature that controls the velocity distribution of particles as
usual. Either constant volume or constant pressure algorithms can be
used.

The fix enforces a generalized ensemble in a single replica
only. Typically, this ideaology is combined with replica 
exchange with replicas differing by {lambda} only
for simplicity, but this is not required. A multi-replica 
simulation can be run within the LAMMPS environment using the
"grem"_temper_grem.html command. This utilizes LAMMPS partition
mode and requires the number of available processors be 
on the order of the number of desired replicas. A 100-replica
simulation would require at least 100 processors (1 per world
at minimum). If a many replicas are needed on a small number of
processors, multi-replica runs can be run outside of LAMMPS.
An example of this can be found in examples/USER/misc/grem and 
has no limit on the number of replicas per processor. However, 
this is very inefficient and error prone and should be avoided
if possible. 

In general, defining the generalized ensembles is unique for every
system. When starting a many-replica simulation without any knowledge of
the underlying microcanonical temperature, there are several tricks we
have utilized to optimize the process.  Choosing a less-steep {eta}
yields broader distributions, requiring fewer replicas to map the
microcanonical temperature.  While this likely struggles from the same
sampling problems gREM was built to avoid, it provides quick insight to
Ts.  Initially using an evenly-spaced {lambda} distribution identifies
regions where small changes in enthalpy lead to large temperature
changes. Replicas are easily added where needed.

:line

[Restart, fix_modify, output, run start/stop, minimize info:]

No information about this fix is written to "binary restart
files"_restart.html.

The "thermo_modify"_thermo_modify.html {press} option is supported
by this fix to add the rescaled kinetic pressure as part of 
"thermodynamic output"_thermo_style.html.

[Restrictions:]

This fix is part of the USER-MISC package. It is only enabled if 
LAMMPS was built with that package. See the "Making 
LAMMPS"_Section_start.html#start_3 section for more info.

[Related commands:]

"grem"_temper_grem.html, "fix nvt"_fix_nh.html, "fix npt"_fix_nh.html, "thermo_modify"_thermo_modify.html

[Default:] none

:line

:link(Kim)
[(Kim)] Kim, Keyes, Straub, J. Chem. Phys., 132, 224107 (2010).

:link(Malolepsza)
[(Malolepsza)] Malolepsza, Secor, Keyes, J. Phys. Chem. B. 119 (42), 
13379-13384 (2015).
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ Fixes :h1
   fix_gld
   fix_gle
   fix_gravity
   fix_grem
   fix_halt
   fix_heat
   fix_imd
Loading