git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4910 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2010-09-30 20:38:58 +00:00
parent e97c607097
commit 743cefce14
22 changed files with 990 additions and 134 deletions

View File

@ -130,7 +130,7 @@ listed above.
<BR>
4.4 <A HREF = "Section_howto.html#4_4">Running multiple simulations from one input script</A>
<BR>
4.5 <A HREF = "Section_howto.html#4_5">Parallel tempering</A>
4.5 <A HREF = "Section_howto.html#4_5">Multi-replica simulations</A>
<BR>
4.6 <A HREF = "Section_howto.html#4_6">Granular models</A>
<BR>

View File

@ -99,7 +99,7 @@ listed above.
4.2 "2d simulations"_4_2 :b
4.3 "CHARMM and AMBER force fields"_4_3 :b
4.4 "Running multiple simulations from one input script"_4_4 :b
4.5 "Parallel tempering"_4_5 :b
4.5 "Multi-replica simulations"_4_5 :b
4.6 "Granular models"_4_6 :b
4.7 "TIP3P water model"_4_7 :b
4.8 "TIP4P water model"_4_8 :b

View File

@ -277,7 +277,7 @@ in the command's documentation.
<P><A HREF = "delete_atoms.html">delete_atoms</A>, <A HREF = "delete_bonds.html">delete_bonds</A>,
<A HREF = "displace_atoms.html">displace_atoms</A>,
<A HREF = "displace_box.html">displace_box</A>, <A HREF = "minimize.html">minimize</A>,
<A HREF = "prd.html">prd</A>, <A HREF = "run.html">run</A>, <A HREF = "temper.html">temper</A>
<A HREF = "neb.html">neb</A> <A HREF = "prd.html">prd</A>, <A HREF = "run.html">run</A>, <A HREF = "temper.html">temper</A>
</P>
<P>Miscellaneous:
</P>
@ -307,12 +307,13 @@ in the command's documentation.
<TR ALIGN="center"><TD ><A HREF = "dump_modify.html">dump_modify</A></TD><TD ><A HREF = "echo.html">echo</A></TD><TD ><A HREF = "fix.html">fix</A></TD><TD ><A HREF = "fix_modify.html">fix_modify</A></TD><TD ><A HREF = "group.html">group</A></TD><TD ><A HREF = "if.html">if</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "improper_coeff.html">improper_coeff</A></TD><TD ><A HREF = "improper_style.html">improper_style</A></TD><TD ><A HREF = "include.html">include</A></TD><TD ><A HREF = "jump.html">jump</A></TD><TD ><A HREF = "kspace_modify.html">kspace_modify</A></TD><TD ><A HREF = "kspace_style.html">kspace_style</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "label.html">label</A></TD><TD ><A HREF = "lattice.html">lattice</A></TD><TD ><A HREF = "log.html">log</A></TD><TD ><A HREF = "mass.html">mass</A></TD><TD ><A HREF = "minimize.html">minimize</A></TD><TD ><A HREF = "min_modify.html">min_modify</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "min_style.html">min_style</A></TD><TD ><A HREF = "neigh_modify.html">neigh_modify</A></TD><TD ><A HREF = "neighbor.html">neighbor</A></TD><TD ><A HREF = "newton.html">newton</A></TD><TD ><A HREF = "next.html">next</A></TD><TD ><A HREF = "pair_coeff.html">pair_coeff</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_modify.html">pair_modify</A></TD><TD ><A HREF = "pair_style.html">pair_style</A></TD><TD ><A HREF = "pair_write.html">pair_write</A></TD><TD ><A HREF = "prd.html">prd</A></TD><TD ><A HREF = "print.html">print</A></TD><TD ><A HREF = "processors.html">processors</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "read_data.html">read_data</A></TD><TD ><A HREF = "read_restart.html">read_restart</A></TD><TD ><A HREF = "region.html">region</A></TD><TD ><A HREF = "replicate.html">replicate</A></TD><TD ><A HREF = "reset_timestep.html">reset_timestep</A></TD><TD ><A HREF = "restart.html">restart</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "run.html">run</A></TD><TD ><A HREF = "run_style.html">run_style</A></TD><TD ><A HREF = "set.html">set</A></TD><TD ><A HREF = "shape.html">shape</A></TD><TD ><A HREF = "shell.html">shell</A></TD><TD ><A HREF = "special_bonds.html">special_bonds</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "temper.html">temper</A></TD><TD ><A HREF = "thermo.html">thermo</A></TD><TD ><A HREF = "thermo_modify.html">thermo_modify</A></TD><TD ><A HREF = "thermo_style.html">thermo_style</A></TD><TD ><A HREF = "timestep.html">timestep</A></TD><TD ><A HREF = "uncompute.html">uncompute</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "undump.html">undump</A></TD><TD ><A HREF = "unfix.html">unfix</A></TD><TD ><A HREF = "units.html">units</A></TD><TD ><A HREF = "variable.html">variable</A></TD><TD ><A HREF = "velocity.html">velocity</A></TD><TD ><A HREF = "write_restart.html">write_restart</A>
<TR ALIGN="center"><TD ><A HREF = "min_style.html">min_style</A></TD><TD ><A HREF = "neb.html">neb</A></TD><TD ><A HREF = "neigh_modify.html">neigh_modify</A></TD><TD ><A HREF = "neighbor.html">neighbor</A></TD><TD ><A HREF = "newton.html">newton</A></TD><TD ><A HREF = "next.html">next</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "pair_coeff.html">pair_coeff</A></TD><TD ><A HREF = "pair_modify.html">pair_modify</A></TD><TD ><A HREF = "pair_style.html">pair_style</A></TD><TD ><A HREF = "pair_write.html">pair_write</A></TD><TD ><A HREF = "prd.html">prd</A></TD><TD ><A HREF = "print.html">print</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "processors.html">processors</A></TD><TD ><A HREF = "read_data.html">read_data</A></TD><TD ><A HREF = "read_restart.html">read_restart</A></TD><TD ><A HREF = "region.html">region</A></TD><TD ><A HREF = "replicate.html">replicate</A></TD><TD ><A HREF = "reset_timestep.html">reset_timestep</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "restart.html">restart</A></TD><TD ><A HREF = "run.html">run</A></TD><TD ><A HREF = "run_style.html">run_style</A></TD><TD ><A HREF = "set.html">set</A></TD><TD ><A HREF = "shape.html">shape</A></TD><TD ><A HREF = "shell.html">shell</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "special_bonds.html">special_bonds</A></TD><TD ><A HREF = "temper.html">temper</A></TD><TD ><A HREF = "thermo.html">thermo</A></TD><TD ><A HREF = "thermo_modify.html">thermo_modify</A></TD><TD ><A HREF = "thermo_style.html">thermo_style</A></TD><TD ><A HREF = "timestep.html">timestep</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "uncompute.html">uncompute</A></TD><TD ><A HREF = "undump.html">undump</A></TD><TD ><A HREF = "unfix.html">unfix</A></TD><TD ><A HREF = "units.html">units</A></TD><TD ><A HREF = "variable.html">variable</A></TD><TD ><A HREF = "velocity.html">velocity</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "write_restart.html">write_restart</A>
</TD></TR></TABLE></DIV>
<HR>
@ -326,13 +327,13 @@ of each style or click on the style itself for a full description:
<TR ALIGN="center"><TD ><A HREF = "fix_adapt.html">adapt</A></TD><TD ><A HREF = "fix_addforce.html">addforce</A></TD><TD ><A HREF = "fix_aveforce.html">aveforce</A></TD><TD ><A HREF = "fix_ave_atom.html">ave/atom</A></TD><TD ><A HREF = "fix_ave_correlate.html">ave/correlate</A></TD><TD ><A HREF = "fix_ave_histo.html">ave/histo</A></TD><TD ><A HREF = "fix_ave_spatial.html">ave/spatial</A></TD><TD ><A HREF = "fix_ave_time.html">ave/time</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_bond_break.html">bond/break</A></TD><TD ><A HREF = "fix_bond_create.html">bond/create</A></TD><TD ><A HREF = "fix_bond_swap.html">bond/swap</A></TD><TD ><A HREF = "fix_box_relax.html">box/relax</A></TD><TD ><A HREF = "fix_deform.html">deform</A></TD><TD ><A HREF = "fix_deposit.html">deposit</A></TD><TD ><A HREF = "fix_drag.html">drag</A></TD><TD ><A HREF = "fix_dt_reset.html">dt/reset</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_efield.html">efield</A></TD><TD ><A HREF = "fix_enforce2d.html">enforce2d</A></TD><TD ><A HREF = "fix_evaporate.html">evaporate</A></TD><TD ><A HREF = "fix_external.html">external</A></TD><TD ><A HREF = "fix_freeze.html">freeze</A></TD><TD ><A HREF = "fix_gravity.html">gravity</A></TD><TD ><A HREF = "fix_heat.html">heat</A></TD><TD ><A HREF = "fix_indent.html">indent</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_langevin.html">langevin</A></TD><TD ><A HREF = "fix_lineforce.html">lineforce</A></TD><TD ><A HREF = "fix_momentum.html">momentum</A></TD><TD ><A HREF = "fix_move.html">move</A></TD><TD ><A HREF = "fix_msst.html">msst</A></TD><TD ><A HREF = "fix_nh.html">nph</A></TD><TD ><A HREF = "fix_nph_asphere.html">nph/asphere</A></TD><TD ><A HREF = "fix_nph_sphere.html">nph/sphere</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nh.html">npt</A></TD><TD ><A HREF = "fix_npt_asphere.html">npt/asphere</A></TD><TD ><A HREF = "fix_npt_sphere.html">npt/sphere</A></TD><TD ><A HREF = "fix_nve.html">nve</A></TD><TD ><A HREF = "fix_nve_asphere.html">nve/asphere</A></TD><TD ><A HREF = "fix_nve_limit.html">nve/limit</A></TD><TD ><A HREF = "fix_nve_noforce.html">nve/noforce</A></TD><TD ><A HREF = "fix_nve_sphere.html">nve/sphere</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nh.html">nvt</A></TD><TD ><A HREF = "fix_nvt_asphere.html">nvt/asphere</A></TD><TD ><A HREF = "fix_nvt_sllod.html">nvt/sllod</A></TD><TD ><A HREF = "fix_nvt_sphere.html">nvt/sphere</A></TD><TD ><A HREF = "fix_orient_fcc.html">orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">planeforce</A></TD><TD ><A HREF = "fix_poems.html">poems</A></TD><TD ><A HREF = "fix_pour.html">pour</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_press_berendsen.html">press/berendsen</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_qeq_comb.html">qeq/comb</A></TD><TD ><A HREF = "fix_reax_bonds.html">reax/bonds</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD><TD ><A HREF = "fix_rigid.html">rigid</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nve</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nvt</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_store_force.html">store/force</A></TD><TD ><A HREF = "fix_store_state.html">store/state</A></TD><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A>
<TR ALIGN="center"><TD ><A HREF = "fix_langevin.html">langevin</A></TD><TD ><A HREF = "fix_lineforce.html">lineforce</A></TD><TD ><A HREF = "fix_momentum.html">momentum</A></TD><TD ><A HREF = "fix_move.html">move</A></TD><TD ><A HREF = "fix_msst.html">msst</A></TD><TD ><A HREF = "fix_neb.html">neb</A></TD><TD ><A HREF = "fix_nh.html">nph</A></TD><TD ><A HREF = "fix_nph_asphere.html">nph/asphere</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nph_sphere.html">nph/sphere</A></TD><TD ><A HREF = "fix_nh.html">npt</A></TD><TD ><A HREF = "fix_npt_asphere.html">npt/asphere</A></TD><TD ><A HREF = "fix_npt_sphere.html">npt/sphere</A></TD><TD ><A HREF = "fix_nve.html">nve</A></TD><TD ><A HREF = "fix_nve_asphere.html">nve/asphere</A></TD><TD ><A HREF = "fix_nve_limit.html">nve/limit</A></TD><TD ><A HREF = "fix_nve_noforce.html">nve/noforce</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_nve_sphere.html">nve/sphere</A></TD><TD ><A HREF = "fix_nh.html">nvt</A></TD><TD ><A HREF = "fix_nvt_asphere.html">nvt/asphere</A></TD><TD ><A HREF = "fix_nvt_sllod.html">nvt/sllod</A></TD><TD ><A HREF = "fix_nvt_sphere.html">nvt/sphere</A></TD><TD ><A HREF = "fix_orient_fcc.html">orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">planeforce</A></TD><TD ><A HREF = "fix_poems.html">poems</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_pour.html">pour</A></TD><TD ><A HREF = "fix_press_berendsen.html">press/berendsen</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_qeq_comb.html">qeq/comb</A></TD><TD ><A HREF = "fix_reax_bonds.html">reax/bonds</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD><TD ><A HREF = "fix_rigid.html">rigid</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nve</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_rigid.html">rigid/nvt</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_store_force.html">store/force</A></TD><TD ><A HREF = "fix_store_state.html">store/state</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A>
</TD></TR></TABLE></DIV>
<P>These are fix styles contributed by users, which can be used if

View File

@ -274,7 +274,7 @@ Actions:
"delete_atoms"_delete_atoms.html, "delete_bonds"_delete_bonds.html,
"displace_atoms"_displace_atoms.html,
"displace_box"_displace_box.html, "minimize"_minimize.html,
"prd"_prd.html, "run"_run.html, "temper"_temper.html
"neb"_neb.html "prd"_prd.html, "run"_run.html, "temper"_temper.html
Miscellaneous:
@ -339,6 +339,7 @@ in the command's documentation.
"minimize"_minimize.html,
"min_modify"_min_modify.html,
"min_style"_min_style.html,
"neb"_neb.html,
"neigh_modify"_neigh_modify.html,
"neighbor"_neighbor.html,
"newton"_newton.html,
@ -411,6 +412,7 @@ of each style or click on the style itself for a full description:
"momentum"_fix_momentum.html,
"move"_fix_move.html,
"msst"_fix_msst.html,
"neb"_fix_neb.html,
"nph"_fix_nh.html,
"nph/asphere"_fix_nph_asphere.html,
"nph/sphere"_fix_nph_sphere.html,

View File

@ -18,7 +18,7 @@ certain kinds of LAMMPS simulations.
4.2 <A HREF = "#4_2">2d simulations</A><BR>
4.3 <A HREF = "#4_3">CHARMM and AMBER force fields</A><BR>
4.4 <A HREF = "#4_4">Running multiple simulations from one input script</A><BR>
4.5 <A HREF = "#4_5">Parallel tempering</A><BR>
4.5 <A HREF = "#4_5">Multi-replica simulations</A><BR>
4.6 <A HREF = "#4_6">Granular models</A><BR>
4.7 <A HREF = "#4_7">TIP3P water model</A><BR>
4.8 <A HREF = "#4_8">TIP4P water model</A><BR>
@ -292,33 +292,46 @@ the 4th simulation, and so forth, until all 8 were completed.
</P>
<HR>
<A NAME = "4_5"></A><H4>4.5 Parallel tempering
<A NAME = "4_5"></A><H4>4.5 Multi-replica simulations
</H4>
<P>The <A HREF = "temper.html">temper</A> command can be used to perform a parallel
tempering or replica-exchange simulation where multiple copies of a
simulation are run at different temperatures on different sets of
processors, and Monte Carlo temperature swaps are performed between
pairs of copies.
<P>Several commands in LAMMPS run mutli-replica simulations, meaning
that multiple instances (replicas) of your simulation are run
simultaneously, with small amounts of data exchanged between replicas
periodically.
</P>
<P>Use the -procs and -in <A HREF = "Section_start.html#2_6">command-line switches</A>
to launch LAMMPS on multiple partitions.
<P>These are the relevant commands:
</P>
<P>In your input script, define a set of temperatures, one for each
processor partition, using the <A HREF = "variable.html">variable</A> command:
<UL><LI><A HREF = "neb.html">neb</A> for nudged elastic band calculations
<LI><A HREF = "prd.html">prd</A> for parallel replica dynamics
<LI><A HREF = "temper.html">temper</A> for parallel tempering
</UL>
<P>NEB is a method for finding transition states and barrier energies.
PRD is a method for performing accelerated dynamics to find and
perform infrequent events. Parallel tempering or replica exchange
runs different replicas at a series of temperature to facilitate
rare-event sampling.
</P>
<PRE>variable t world 300.0 310.0 320.0 330.0
<P>In all these cases, you must run with one or more processors per
replica. The processors assigned to each replica are determined at
run-time by using the <A HREF = "Section_start.html#2_6">-partition command-line
switch</A> to launch LAMMPS on multiple
partitions, which in this context are the same as replicas. E.g.
these commands:
</P>
<PRE>mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb
</PRE>
<P>Define a fix of style <A HREF = "fix_nh.html">nvt</A> or <A HREF = "fix_langevin.html">langevin</A>
to control the temperature of each simulation:
<P>would each run 8 replicas, on either 16 or 8 processors. Note the use
of the <A HREF = "Section_start.html#2_6">-in command-line switch</A> to specify the
input script which is required when running in multi-replica mode.
</P>
<PRE>fix myfix all nvt $t $t 100.0
</PRE>
<P>Use the <A HREF = "temper.html">temper</A> command in place of a <A HREF = "run.html">run</A>
command to perform a simulation where tempering exchanges will take
place:
<P>Also note that with MPI installed on a machine (e.g. your desktop),
you can run on more (virtual) processors than you have physical
processors. Thus the above commands could be run on a
single-processor (or few-processor) desktop so that you can run
a multi-replica simulation on more replicas than you have
physical processors.
</P>
<PRE>temper 100000 100 $t myfix 3847 58382
</PRE>
<HR>
<A NAME = "4_6"></A><H4>4.6 Granular models

View File

@ -15,7 +15,7 @@ certain kinds of LAMMPS simulations.
4.2 "2d simulations"_#4_2
4.3 "CHARMM and AMBER force fields"_#4_3
4.4 "Running multiple simulations from one input script"_#4_4
4.5 "Parallel tempering"_#4_5
4.5 "Multi-replica simulations"_#4_5
4.6 "Granular models"_#4_6
4.7 "TIP3P water model"_#4_7
4.8 "TIP4P water model"_#4_8
@ -288,32 +288,45 @@ the 4th simulation, and so forth, until all 8 were completed.
:line
4.5 Parallel tempering :link(4_5),h4
4.5 Multi-replica simulations :link(4_5),h4
The "temper"_temper.html command can be used to perform a parallel
tempering or replica-exchange simulation where multiple copies of a
simulation are run at different temperatures on different sets of
processors, and Monte Carlo temperature swaps are performed between
pairs of copies.
Several commands in LAMMPS run mutli-replica simulations, meaning
that multiple instances (replicas) of your simulation are run
simultaneously, with small amounts of data exchanged between replicas
periodically.
Use the -procs and -in "command-line switches"_Section_start.html#2_6
to launch LAMMPS on multiple partitions.
These are the relevant commands:
In your input script, define a set of temperatures, one for each
processor partition, using the "variable"_variable.html command:
"neb"_neb.html for nudged elastic band calculations
"prd"_prd.html for parallel replica dynamics
"temper"_temper.html for parallel tempering :ul
variable t world 300.0 310.0 320.0 330.0 :pre
NEB is a method for finding transition states and barrier energies.
PRD is a method for performing accelerated dynamics to find and
perform infrequent events. Parallel tempering or replica exchange
runs different replicas at a series of temperature to facilitate
rare-event sampling.
Define a fix of style "nvt"_fix_nh.html or "langevin"_fix_langevin.html
to control the temperature of each simulation:
In all these cases, you must run with one or more processors per
replica. The processors assigned to each replica are determined at
run-time by using the "-partition command-line
switch"_Section_start.html#2_6 to launch LAMMPS on multiple
partitions, which in this context are the same as replicas. E.g.
these commands:
fix myfix all nvt $t $t 100.0 :pre
mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre
Use the "temper"_temper.html command in place of a "run"_run.html
command to perform a simulation where tempering exchanges will take
place:
would each run 8 replicas, on either 16 or 8 processors. Note the use
of the "-in command-line switch"_Section_start.html#2_6 to specify the
input script which is required when running in multi-replica mode.
temper 100000 100 $t myfix 3847 58382 :pre
Also note that with MPI installed on a machine (e.g. your desktop),
you can run on more (virtual) processors than you have physical
processors. Thus the above commands could be run on a
single-processor (or few-processor) desktop so that you can run
a multi-replica simulation on more replicas than you have
physical processors.
:line

View File

@ -213,6 +213,12 @@ commands)
<LI> time averaging of system-wide quantities
<LI> atom snapshots in native, XYZ, XTC, DCD, CFG formats
</UL>
<H4>Multi-replica models
</H4>
<P><A HREF = "neb.html">nudged elastic band</A>
<A HREF = "prd.html">parallel replica dynamics</A>
<A HREF = "temper.html">parallel tempering</A>
</P>
<H4>Pre- and post-processing
</H4>
<UL><LI>Various pre- and post-processing serial tools are packaged
@ -233,11 +239,10 @@ Pizza.py WWW site</A>.
<P>These are LAMMPS capabilities which you may not think of as typical
molecular dynamics options:
</P>
<UL><LI><A HREF = "fix_imd.html">real-time visualization and interactive MD</A>
<UL><LI><A HREF = "fix_srd.html">stochastic rotation dynamics (SRD)</A>
<LI><A HREF = "fix_imd.html">real-time visualization and interactive MD</A>
<LI><A HREF = "fix_atc.html">atom-to-continuum coupling</A> with finite elements
<LI>coupled rigid body integration via the <A HREF = "fix_poems.html">POEMS</A> library
<LI><A HREF = "temper.html">parallel tempering</A>
<LI><A HREF = "prd.html">parallel replica dynamics</A>
<LI><A HREF = "pair_dsmc.html">Direct Simulation Monte Carlo</A> for low-density fluids
<LI><A HREF = "pair_peri.html">Peridynamics mesoscale modeling</A>
<LI><A HREF = "fix_tmd.html">targeted</A> and <A HREF = "fix_smd.html">steered</A> molecular dynamics

View File

@ -210,6 +210,12 @@ Output :h4
time averaging of system-wide quantities
atom snapshots in native, XYZ, XTC, DCD, CFG formats :ul
Multi-replica models :h4
"nudged elastic band"_neb.html
"parallel replica dynamics"_prd.html
"parallel tempering"_temper.html
Pre- and post-processing :h4
Various pre- and post-processing serial tools are packaged
@ -229,11 +235,10 @@ Specialized features :h4
These are LAMMPS capabilities which you may not think of as typical
molecular dynamics options:
"stochastic rotation dynamics (SRD)"_fix_srd.html
"real-time visualization and interactive MD"_fix_imd.html
"atom-to-continuum coupling"_fix_atc.html with finite elements
coupled rigid body integration via the "POEMS"_fix_poems.html library
"parallel tempering"_temper.html
"parallel replica dynamics"_prd.html
"Direct Simulation Monte Carlo"_pair_dsmc.html for low-density fluids
"Peridynamics mesoscale modeling"_pair_peri.html
"targeted"_fix_tmd.html and "steered"_fix_smd.html molecular dynamics

View File

@ -366,8 +366,8 @@ package".
<TR><TD >opt </TD><TD > optimized versions of a few pair potentials</TD></TR>
<TR><TD >peri </TD><TD > Peridynamics model and potential</TD></TR>
<TR><TD >poems </TD><TD > coupled rigid body motion</TD></TR>
<TR><TD >prd </TD><TD > parallel replica dynamics</TD></TR>
<TR><TD >reax </TD><TD > ReaxFF potential</TD></TR>
<TR><TD >replica </TD><TD > multi-replica methods</TD></TR>
<TR><TD >shock </TD><TD > methods for MD simulations of shock loading</TD></TR>
<TR><TD >xtc </TD><TD > dump atom snapshots in XTC format
</TD></TR></TABLE></DIV>
@ -636,7 +636,7 @@ mpirun -np 4 lmp_linux < in.lj.nve
<P>On a Windows machine, you can skip making LAMMPS and simply download
an executable. But note that not all packages are available.
The following packages are available: asphere, class2, colloid, dipole,
dsmc, granular, kspace, manybody, molecule, peri, poems, prd, shock,
dsmc, granular, kspace, manybody, molecule, peri, poems, replica, shock,
user-ackland, user-cd-eam, user-cg-cmm, user-ewaldn, user-smd. But these
packages are not available: gpu, meam, opt, reax, xtc, user-atc, user-imd.
</P>
@ -749,6 +749,11 @@ processors in all partitions must equal P. Thus the command
"-partition 8x2 4 5" has 10 partitions and runs on a total of 25
processors.
</P>
<P>Note that with MPI installed on a machine (e.g. your desktop), you can
run on more (virtual) processors than you have physical processors.
This can be useful for running <A HREF = "Section_howto.html#4_5">multi-replica
simulations</A>, on one or a few processors.
</P>
<P>The input script specifies what simulation is run on which partition;
see the <A HREF = "variable.html">variable</A> and <A HREF = "next.html">next</A> commands. This
<A HREF = "Section_howto.html#4_4">howto section</A> gives examples of how to use

View File

@ -360,8 +360,8 @@ molecule : force fields for molecular systems
opt : optimized versions of a few pair potentials
peri : Peridynamics model and potential
poems : coupled rigid body motion
prd : parallel replica dynamics
reax : ReaxFF potential
replica : multi-replica methods
shock : methods for MD simulations of shock loading
xtc : dump atom snapshots in XTC format :tb(s=:)
@ -629,7 +629,7 @@ mpirun -np 4 lmp_linux < in.lj.nve :pre
On a Windows machine, you can skip making LAMMPS and simply download
an executable. But note that not all packages are available.
The following packages are available: asphere, class2, colloid, dipole,
dsmc, granular, kspace, manybody, molecule, peri, poems, prd, shock,
dsmc, granular, kspace, manybody, molecule, peri, poems, replica, shock,
user-ackland, user-cd-eam, user-cg-cmm, user-ewaldn, user-smd. But these
packages are not available: gpu, meam, opt, reax, xtc, user-atc, user-imd.
@ -739,6 +739,11 @@ processors in all partitions must equal P. Thus the command
"-partition 8x2 4 5" has 10 partitions and runs on a total of 25
processors.
Note that with MPI installed on a machine (e.g. your desktop), you can
run on more (virtual) processors than you have physical processors.
This can be useful for running "multi-replica
simulations"_Section_howto.html#4_5, on one or a few processors.
The input script specifies what simulation is run on which partition;
see the "variable"_variable.html and "next"_next.html commands. This
"howto section"_Section_howto.html#4_4 gives examples of how to use

View File

@ -48,7 +48,7 @@ scalar value will be a 0 or 1 as explained above.
</P>
<P><B>Restrictions:</B>
</P>
<P>This command can only be used if LAMMPS was built with the "prd"
<P>This command can only be used if LAMMPS was built with the "replica"
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>

View File

@ -45,7 +45,7 @@ scalar value will be a 0 or 1 as explained above.
[Restrictions:]
This command can only be used if LAMMPS was built with the "prd"
This command can only be used if LAMMPS was built with the "replica"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.

View File

@ -188,6 +188,7 @@ list of fix styles available in LAMMPS:
<LI><A HREF = "fix_momentum.html">momentum</A> - zero the linear and/or angular momentum of a group of atoms
<LI><A HREF = "fix_move.html">move</A> - move atoms in a prescribed fashion
<LI><A HREF = "fix_msst.html">msst</A> - multi-scale shock technique (MSST) integration
<LI><A HREF = "fix_neb.html">neb</A> - nudged elastic band (NEB) spring forces
<LI><A HREF = "fix_nh.html">nph</A> - constant NPH time integration via Nose/Hoover
<LI><A HREF = "fix_nph_asphere.html">nph/asphere</A> - NPH for aspherical particles
<LI><A HREF = "fix_nph_sphere.html">nph/sphere</A> - NPH for spherical particles

View File

@ -183,6 +183,7 @@ list of fix styles available in LAMMPS:
"momentum"_fix_momentum.html - zero the linear and/or angular momentum of a group of atoms
"move"_fix_move.html - move atoms in a prescribed fashion
"msst"_fix_msst.html - multi-scale shock technique (MSST) integration
"neb"_fix_neb.html - nudged elastic band (NEB) spring forces
"nph"_fix_nh.html - constant NPH time integration via Nose/Hoover
"nph/asphere"_fix_nph_asphere.html - NPH for aspherical particles
"nph/sphere"_fix_nph_sphere.html - NPH for spherical particles

109
doc/fix_neb.html Normal file
View File

@ -0,0 +1,109 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>fix neb command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>fix ID group-ID neb kspring
</PRE>
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<LI>neb = style name of this fix command
<LI>kspring = inter-replica spring constant
</UL>
<P><B>Examples:</B>
</P>
<PRE>fix 1 active neb 10.0
</PRE>
<P><B>Description:</B>
</P>
<P>Add inter-replica forces to atoms in the group for a multi-partition
simulation run via the <A HREF = "neb.html">neb</A> command to perform a nudged
elastic band (NEB) calculation for transition state finding. Hi-level
explanations of NEB are given with the <A HREF = "neb.html">neb</A> command and in
<A HREF = "Section_howto.html#neb">this section</A> of the doc pages. The fix neb
command is used to define how inter-replica forces are computed.
</P>
<P>Atoms in the two end-point replicas do not experience inter-replica
forces, but those in intermediate replicas do. The 3N-length vector
of interatomic forces Fi = -Grad(V) acting on the atoms of each
intermediate replica I is altered to become:
</P>
<PRE>Fi = -Grad(V) + (Grad(V) dot That) That + Kspring (|Ri+i - Ri| - |Ri - Ri-1|) That
</PRE>
<P>Ri are the atomic coordinates of replica I; Ri-1 and Ri+1 are the
coordinates of its neighbor replicas. That (t with a hat over it) is
the unit "tangent" vector for replica I which is a function of Ri,
Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
roughly in the direction of (Ri+i - Ri-1). The first two terms in the
above equation are the component of the interatomic forces
perpendicular to the tangent vector. The last term is a spring force
between replica I and its neighbors, parallel to the tangent vector
direction with the specified spring constant.
</P>
<P>NOTE: That is defined in what papers?
</P>
<P>The effect of the first two terms is to push the atoms of each replica
toward the minimum energy path (MEP) of conformational states that
transition over the energy barrier. The MEP for an energy barrier is
defined as a sequence of 3N-dimensional states which cross the barrier
at its saddle point, each of which has a potential energy gradient
parallel to the MEP itself.
</P>
<P>The effect of the last term is to push each replica away from its two
neighbors in a direction along the MEP, so that the final set of
states are equidistant from each other.
</P>
<P>A NEB calculation is performed in two stages, as described by the neb
command. In the second stage, the forces on atoms in the replica
nearest the top of the energy barrier are altered so that it climbs to
the top of the barrier and finds the saddle point. The forces on
atoms in this replica become:
</P>
<PRE>Fi = -Grad(V) + 2 (Grad(V) dot that) that
</PRE>
<P>The inter-replica forces for the other replicas are unchanged from the
first equation.
</P>
<P>NOTE: discuss how to do NEB on a subset of atoms - group ID of fix neb
command.
</P>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P>
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
files</A>. None of the <A HREF = "fix_modify.html">fix_modify</A> options
are relevant to this fix. No global or per-atom quantities are stored
by this fix for access by various <A HREF = "Section_howto.html#4_15">output
commands</A>. No parameter of this fix can be
used with the <I>start/stop</I> keywords of the <A HREF = "run.html">run</A> command.
This fix is not invoked during <A HREF = "minimize.html">energy minimization</A>.
</P>
<P><B>Restrictions:</B>
</P>
<P>This command can only be used if LAMMPS was built with the "replica"
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "neb.html">neb</A>
</P>
<P><B>Default:</B> none
</P>
<A NAME = "HJ1"></A>
<P><B>(Henkelman1)</B> Henkelman and Jonsson, J Phys Chem, 113, 9978-9985 (2000).
</P>
<A NAME = "HJ2"></A>
<P><B>(Henkelman2)</B> Henkelman and Jonsson, J Phys Chem, 113, 99019904 (2000).
</P>
</HTML>

102
doc/fix_neb.txt Normal file
View File

@ -0,0 +1,102 @@
"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 neb command :h3
[Syntax:]
fix ID group-ID neb kspring :pre
ID, group-ID are documented in "fix"_fix.html command
neb = style name of this fix command
kspring = inter-replica spring constant :ul
[Examples:]
fix 1 active neb 10.0 :pre
[Description:]
Add inter-replica forces to atoms in the group for a multi-partition
simulation run via the "neb"_neb.html command to perform a nudged
elastic band (NEB) calculation for transition state finding. Hi-level
explanations of NEB are given with the "neb"_neb.html command and in
"this section"_Section_howto.html#neb of the doc pages. The fix neb
command is used to define how inter-replica forces are computed.
Atoms in the two end-point replicas do not experience inter-replica
forces, but those in intermediate replicas do. The 3N-length vector
of interatomic forces Fi = -Grad(V) acting on the atoms of each
intermediate replica I is altered to become:
Fi = -Grad(V) + (Grad(V) dot That) That + Kspring (|Ri+i - Ri| - |Ri - Ri-1|) That :pre
Ri are the atomic coordinates of replica I; Ri-1 and Ri+1 are the
coordinates of its neighbor replicas. That (t with a hat over it) is
the unit "tangent" vector for replica I which is a function of Ri,
Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
roughly in the direction of (Ri+i - Ri-1). The first two terms in the
above equation are the component of the interatomic forces
perpendicular to the tangent vector. The last term is a spring force
between replica I and its neighbors, parallel to the tangent vector
direction with the specified spring constant.
NOTE: That is defined in what papers?
The effect of the first two terms is to push the atoms of each replica
toward the minimum energy path (MEP) of conformational states that
transition over the energy barrier. The MEP for an energy barrier is
defined as a sequence of 3N-dimensional states which cross the barrier
at its saddle point, each of which has a potential energy gradient
parallel to the MEP itself.
The effect of the last term is to push each replica away from its two
neighbors in a direction along the MEP, so that the final set of
states are equidistant from each other.
A NEB calculation is performed in two stages, as described by the neb
command. In the second stage, the forces on atoms in the replica
nearest the top of the energy barrier are altered so that it climbs to
the top of the barrier and finds the saddle point. The forces on
atoms in this replica become:
Fi = -Grad(V) + 2 (Grad(V) dot that) that :pre
The inter-replica forces for the other replicas are unchanged from the
first equation.
NOTE: discuss how to do NEB on a subset of atoms - group ID of fix neb
command.
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html. None of the "fix_modify"_fix_modify.html options
are relevant to this fix. No global or per-atom quantities are stored
by this fix for access by various "output
commands"_Section_howto.html#4_15. No parameter of this fix can be
used with the {start/stop} keywords of the "run"_run.html command.
This fix is not invoked during "energy minimization"_minimize.html.
[Restrictions:]
This command can only be used if LAMMPS was built with the "replica"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.
[Related commands:]
"neb"_neb.html
[Default:] none
:link(HJ1)
[(Henkelman1)] Henkelman and Jonsson, J Phys Chem, 113, 9978-9985 (2000).
:link(HJ2)
[(Henkelman2)] Henkelman and Jonsson, J Phys Chem, 113, 99019904 (2000).

278
doc/neb.html Normal file
View File

@ -0,0 +1,278 @@
<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>neb command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>neb etol ftol N1 N2 Nevery filename
</PRE>
<UL><LI>etol = stopping tolerance for energy (unitless)
<LI>ftol = stopping tolerance for force (force units)
<LI>N1 = max # of iterations (timesteps) to run initial NEB
<LI>N2 = max # of iterations (timesteps) to run barrier-climbing NEB
<LI>Nevery = print replica energies and reaction coordinates every this many timesteps
<LI>filename = file specifying final atom coordinates on other side of barrier
</UL>
<P><B>Examples:</B>
</P>
<PRE>neb 0.0 0.0 1000 500 50 coords.final
neb 1.0e-6 0.001 1000 500 50 coords.final
</PRE>
<P><B>Description:</B>
</P>
<P>Perform a nudged elastic band (NEB) calculation using multiple
replicas of a system. Three or more replicas must be used, two of
which are the end points of the transition path.
</P>
<P>NEB is a method for finding both the atomic configurations and height
of the energy barrier associated with a transition state, e.g. for an
atom to perform a diffusive hop from one energy basin to another in a
coordinated fashion with its neighbors. The implementation in LAMMPS
follows the discussion in these 3 papers: <A HREF = "#Henkelman1">(Henkelman1)</A>,
<A HREF = "#Henkelman2">(Henkelman2)</A>, and <A HREF = "#Nakano">(Nakano)</A>.
</P>
<P>Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
switch; see <A HREF = "Section_start.html#2_6">this section</A> of the manual. Note
that if you have MPI installed, you can run a multi-replica simulation
with more replicas (partitions) than you have physical processors, e.g
you can run a 10-replica simulation on one or two processors. You
will simply not get the performance speed-up you would see with one or
more physical processors per replica. See <A HREF = "Section_howto.html#4_5">this
section</A> of the manual for further discussion.
</P>
<P>NOTE: The current NEB implementation in LAMMPS restricts you to having
exactly one processor per replica.
</P>
<P>When a NEB calculation is performed, it is assumed that each replica
is running the same model, though LAMMPS does not check for this.
I.e. the simulation domain, the number of atoms, the interaction
potentials, and the starting configuration when the neb command is
issued should be the same for every replica.
</P>
<P>In a NEB calculation each atom in a replica is connected to the same
atom in adjacent replicas by springs, which induce inter-replica
forces. These forces are imposed by the <A HREF = "fix_neb.html">fix neb</A>
command, which must be used in conjunction with the neb command. The
group used to define the fix neb command specifies which atoms the
inter-replica springs are applied to. These are the NEB atoms.
Additional atoms can be present in your system, e.g. to provide a
background force field or simply to hold fixed during the NEB
procedure, but they will not be part of the barrier finding procedure.
</P>
<P>The "starting configuration" for NEB should be a state with the NEB
atoms (and all other atoms) having coordinates on one side of the
energy barrier. These coordinates will be assigned to the first
replica #1. The coordinates should be close to a local energy minimum
and the velocities should be zeroed. A perfect energy minimum is not
required (nor are zero velocities), since NEB runs via damped dynamics
which will tend to drive the configuration of replica #1 to a true
energy minimum, but you will typically get better convergence if the
initial state is already at a minimum. For example, for a system with
a free surface, the surface should be fully relaxed before attempting
a NEB calculation.
</P>
<P>The final configuration is specified in the input <I>filename</I>, which is
formatted as described below. Only coordinates for NEB atoms or a
subset of them should be listed in the file; they represent the state
of the system on the other side of the barrier, at or near an energy
minimum. These coordinates will be assigned to the last replica #M.
The final coordinates of atoms not listed in <I>filename</I> are set equal
to their initial coordinates. Again, a perfect energy minimum is not
required for the final configuration, since the atoms in replica #M
will tend to move during the NEB procedure to the nearest energy
minimum. Also note that a final coordinate does not need to be
specified for a NEB atom if you expect it to only displace slightly
during the NEB procedure. For example, only the final coordinate of
the single atom diffusing into a vacancy need be specified if the
surrounding atoms will only relax slightly in the final configuration.
</P>
<P>The initial coordinates of all atoms (not just NEB atoms) in the
intermediate replicas #2,#3,...,#M-1 are set to values linearly
interpolated between the corresponding atoms in replicas #1 and #M.
</P>
<P>A NEB calculation has two stages, each of which is a minimization
procedure, performed via damped dynamics. To enable this, you must
first define an appropriate <A HREF = "min_style.html">min_style</A>, such as
<I>quickmin</I> or <I>fire</I>. The <I>cg</I>, <I>sd</I>, and <I>hftn</I> styles cannot be
used, since they perform iterative line searches in their inner loop,
which cannot be easily synchronized across multiple replicas.
</P>
<P>The minimizer tolerances for energy and force are set by <I>etol</I> and
<I>ftol</I>, the same as for the <A HREF = "minimize.html">minimize</A> command. The
maximum number of iterations in each stage is set by <I>N1</I> and <I>N2</I>.
These are effectively timestep counts since each iteration of damped
dynamics is like a single timestep in a dynamics <A HREF = "run.html">run</A>.
During both stages, the potential energy of each replica and its
normalized distance along the reaction path (reaction coordinate RD)
will be printed to the screen and log file every <I>Nevery</I> timesteps.
The RD is 0 and 1 for the first and last replica. For intermediate
replicas, it is the cummulative distance (normalized by the total
cummulative distance) between adjacent replicas, where "distance" is
defined as the length of the 3N-vector of differences in atomic
coordinates, where N is the number of NEB atoms involved in the
transition. These outputs allow you to monitor NEB's progress in
finding a good energy barrier. <I>N1</I> and <I>N2</I> must both be multiples
of <I>Nevery</I>.
</P>
<P>In the first stage of NEB, the set of replicas should converge toward
the minimum energy path (MEP) of conformational states that transition
over the barrier. The MEP for a barrier is defined as a sequence of
3N-dimensional states that cross the barrier at its saddle point, each
of which has a potential energy gradient parallel to the MEP itself.
The replica states will also be roughly equally spaced along the MEP
due to the inter-replica spring force added by the <A HREF = "fix_neb.html">fix
neb</A> command.
</P>
<P>In the second stage of NEB, the replica nearest the top of the barrier
is selected and the inter-replica forces on it are converted to a
force that drives its atom coordinates to the top or saddle point of
the barrier, via the hill-climbing calculation described in
<A HREF = "#Hinkelman2">(Henkelman2)</A>. As before, the other replicas rearrange
themselves along the MEP so as to be roughly equally spaced.
</P>
<P>When both stages are complete, if the NEB calculation was successful,
one of the replicas should be an atomic configuration at the top or
saddle point of the barrier, the potential energies for the set of
replicas should represent the energy profile of the barrier along the
MEP, and the configurations of the replicas should be a seqeunce of
configurations along the MEP.
</P>
<HR>
<P>A few other settings in your input script are required or advised to
perform a NEB calculation.
</P>
<P>The "atom_modify sort 0 0.0" command should be used to turn off atom
sorting.
</P>
<P>NOTE: This sorting restriction will be removed in a future version of
NEB in LAMMPS.
</P>
<P>The minimizers in LAMMPS operate on all atoms in your system, even
non-NEB atoms, as defined above. To prevent non-NEB atoms from moving
during the minimization, you should use the <A HREF = "fix_setforce.html">fix
setforce</A> command to set the force on each of those
atoms to 0.0. This is not required, and may not even be desired in
some cases, but if those atoms move too far (e.g. because the initial
state of your system was not well-minimized), it can cause problems
for the NEB procedure.
</P>
<P>Similarly, you should initialize the velocity of all NEB atoms (and
non-NEB atoms if they are free to move) in your system to 0.0 before
invoking the neb command. This gives the minimizer a consistent zero
velocity to start its damped dynamics with.
</P>
<P>The damped dynamics <A HREF = "min_style.html">minimizers</A>, such as <I>quickmin</I>
and <I>fire</I>), adjust the position and velocity of the atoms via an
Euler integration step. Thus you must define an appropriate
<A HREF = "timestep.html">timestep</A> to use with NEB. Using the same timestep
that would be used for a dynamics <A HREF = "run.html">run</A> of your system is
advised.
</P>
<HR>
<P>The specified <I>filename</I> contains atom coordinates for the final
configuration. Only atoms with coordinates different than the initial
configuration need to be specified, i.e. those geometrically near the
barrier.
</P>
<P>The file can be ASCII text or a gzipped text file (detected by a .gz
suffix). The file should contain one line per atom, formatted
with the atom ID, followed by the final x,y,z coordinates:
</P>
<PRE>125 24.97311 1.69005 23.46956
126 1.94691 2.79640 1.92799
127 0.15906 3.46099 0.79121
...
</PRE>
<P>The lines can be listed in any order.
</P>
<HR>
<P>Four kinds of output can be generated during a NEB calculation: energy
barrier statistics, thermodynamic output by each replica, dump files,
and restart files.
</P>
<P>When running with multiple partitions (each of which is a replica in
this case), the print-out to the screen and master log.lammps file is
limited to the potential energy of each replica, printed once every
<I>Nevery</I> timesteps.
</P>
<P>When running on multiple partitions, LAMMPS produces additional log
files for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a
NEB calculation, these contain the thermodynamic output for each
replica.
</P>
<P>If <A HREF = "dump.html">dump</A> commands in the input script define a filename
that includes a <I>universe</I> or <I>uloop</I> style <A HREF = "variable.html">variable</A>,
then one dump file (per dump command) will be created for each
replica. At the end of the NEB calculation, the final snapshot in
each file will contain the sequence of snapshots that transition the
system over the energy barrier. Earlier snapshots will show the
convergence of the replicas to the MEP.
</P>
<P>Likewise, <A HREF = "restart.html">restart</A> filenames can be specified with a
<I>universe</I> or <I>uloop</I> style <A HREF = "variable.html">variable</A>, to generate
restart files for each replica. These may be useful if the NEB
calculation fails to converge properly to the MEP, and you wish to
restart the calculation from an intermediate point with altered
parameters.
</P>
<P>There are 2 Python scripts provided in the tools/python directory,
neb1.py and neb2.py, which are useful in analyzing output from a NEB
calculation. Assume a NEB simulation with M replicas, and the NEB
atoms labelled with a specific atom type.
</P>
<P>The neb1.py script extracts atom coords for the NEB atoms from all M
dump files and creates a single dump file where each snapshot contains
the NEB atoms from all the replicas and one copy of non-NEB atoms from
the first replica (presumed to be identical in other replicas). This
can be visualized to see how the NEB atoms relax as the NEB
calculation proceeds.
</P>
<P>The neb2.py script extracts the final snapshot from each of the M dump
files to create a single dump file with M snapshots. This can be
visualized to watch the system make its transition over the energy
barrier.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>This command can only be used if LAMMPS was built with the "replica"
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "prd.html">prd</A>, <A HREF = "temper.html">temper</A>, <A HREF = "fix_langevin.html">fix
langevin</A>, <A HREF = "fix_viscous.html">fix viscous</A>
</P>
<P><B>Default:</B> none
</P>
<HR>
<A NAME = "Henkelman1"></A>
<P><B>(Henkelman1)</B> Henkelman and Jonsson, J Phys Chem, 113, 9978-9985 (2000).
</P>
<A NAME = "Henkelman2"></A>
<P><B>(Henkelman2)</B> Henkelman, Uberuaga, Jonsson, J Phys Chem, 113,
9901-9904 (2000).
</P>
<A NAME = "Nakano"></A>
<P><B>(Nakano)</B> Nakano, Comp Phys Comm, 178, 280-289 (2008).
</P>
</HTML>

270
doc/neb.txt Normal file
View File

@ -0,0 +1,270 @@
"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
neb command :h3
[Syntax:]
neb etol ftol N1 N2 Nevery filename :pre
etol = stopping tolerance for energy (unitless)
ftol = stopping tolerance for force (force units)
N1 = max # of iterations (timesteps) to run initial NEB
N2 = max # of iterations (timesteps) to run barrier-climbing NEB
Nevery = print replica energies and reaction coordinates every this many timesteps
filename = file specifying final atom coordinates on other side of barrier :ul
[Examples:]
neb 0.0 0.0 1000 500 50 coords.final
neb 1.0e-6 0.001 1000 500 50 coords.final :pre
[Description:]
Perform a nudged elastic band (NEB) calculation using multiple
replicas of a system. Three or more replicas must be used, two of
which are the end points of the transition path.
NEB is a method for finding both the atomic configurations and height
of the energy barrier associated with a transition state, e.g. for an
atom to perform a diffusive hop from one energy basin to another in a
coordinated fashion with its neighbors. The implementation in LAMMPS
follows the discussion in these 3 papers: "(Henkelman1)"_#Henkelman1,
"(Henkelman2)"_#Henkelman2, and "(Nakano)"_#Nakano.
Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
switch; see "this section"_Section_start.html#2_6 of the manual. Note
that if you have MPI installed, you can run a multi-replica simulation
with more replicas (partitions) than you have physical processors, e.g
you can run a 10-replica simulation on one or two processors. You
will simply not get the performance speed-up you would see with one or
more physical processors per replica. See "this
section"_Section_howto.html#4_5 of the manual for further discussion.
NOTE: The current NEB implementation in LAMMPS restricts you to having
exactly one processor per replica.
When a NEB calculation is performed, it is assumed that each replica
is running the same model, though LAMMPS does not check for this.
I.e. the simulation domain, the number of atoms, the interaction
potentials, and the starting configuration when the neb command is
issued should be the same for every replica.
In a NEB calculation each atom in a replica is connected to the same
atom in adjacent replicas by springs, which induce inter-replica
forces. These forces are imposed by the "fix neb"_fix_neb.html
command, which must be used in conjunction with the neb command. The
group used to define the fix neb command specifies which atoms the
inter-replica springs are applied to. These are the NEB atoms.
Additional atoms can be present in your system, e.g. to provide a
background force field or simply to hold fixed during the NEB
procedure, but they will not be part of the barrier finding procedure.
The "starting configuration" for NEB should be a state with the NEB
atoms (and all other atoms) having coordinates on one side of the
energy barrier. These coordinates will be assigned to the first
replica #1. The coordinates should be close to a local energy minimum
and the velocities should be zeroed. A perfect energy minimum is not
required (nor are zero velocities), since NEB runs via damped dynamics
which will tend to drive the configuration of replica #1 to a true
energy minimum, but you will typically get better convergence if the
initial state is already at a minimum. For example, for a system with
a free surface, the surface should be fully relaxed before attempting
a NEB calculation.
The final configuration is specified in the input {filename}, which is
formatted as described below. Only coordinates for NEB atoms or a
subset of them should be listed in the file; they represent the state
of the system on the other side of the barrier, at or near an energy
minimum. These coordinates will be assigned to the last replica #M.
The final coordinates of atoms not listed in {filename} are set equal
to their initial coordinates. Again, a perfect energy minimum is not
required for the final configuration, since the atoms in replica #M
will tend to move during the NEB procedure to the nearest energy
minimum. Also note that a final coordinate does not need to be
specified for a NEB atom if you expect it to only displace slightly
during the NEB procedure. For example, only the final coordinate of
the single atom diffusing into a vacancy need be specified if the
surrounding atoms will only relax slightly in the final configuration.
The initial coordinates of all atoms (not just NEB atoms) in the
intermediate replicas #2,#3,...,#M-1 are set to values linearly
interpolated between the corresponding atoms in replicas #1 and #M.
A NEB calculation has two stages, each of which is a minimization
procedure, performed via damped dynamics. To enable this, you must
first define an appropriate "min_style"_min_style.html, such as
{quickmin} or {fire}. The {cg}, {sd}, and {hftn} styles cannot be
used, since they perform iterative line searches in their inner loop,
which cannot be easily synchronized across multiple replicas.
The minimizer tolerances for energy and force are set by {etol} and
{ftol}, the same as for the "minimize"_minimize.html command. The
maximum number of iterations in each stage is set by {N1} and {N2}.
These are effectively timestep counts since each iteration of damped
dynamics is like a single timestep in a dynamics "run"_run.html.
During both stages, the potential energy of each replica and its
normalized distance along the reaction path (reaction coordinate RD)
will be printed to the screen and log file every {Nevery} timesteps.
The RD is 0 and 1 for the first and last replica. For intermediate
replicas, it is the cummulative distance (normalized by the total
cummulative distance) between adjacent replicas, where "distance" is
defined as the length of the 3N-vector of differences in atomic
coordinates, where N is the number of NEB atoms involved in the
transition. These outputs allow you to monitor NEB's progress in
finding a good energy barrier. {N1} and {N2} must both be multiples
of {Nevery}.
In the first stage of NEB, the set of replicas should converge toward
the minimum energy path (MEP) of conformational states that transition
over the barrier. The MEP for a barrier is defined as a sequence of
3N-dimensional states that cross the barrier at its saddle point, each
of which has a potential energy gradient parallel to the MEP itself.
The replica states will also be roughly equally spaced along the MEP
due to the inter-replica spring force added by the "fix
neb"_fix_neb.html command.
In the second stage of NEB, the replica nearest the top of the barrier
is selected and the inter-replica forces on it are converted to a
force that drives its atom coordinates to the top or saddle point of
the barrier, via the hill-climbing calculation described in
"(Henkelman2)"_#Hinkelman2. As before, the other replicas rearrange
themselves along the MEP so as to be roughly equally spaced.
When both stages are complete, if the NEB calculation was successful,
one of the replicas should be an atomic configuration at the top or
saddle point of the barrier, the potential energies for the set of
replicas should represent the energy profile of the barrier along the
MEP, and the configurations of the replicas should be a seqeunce of
configurations along the MEP.
:line
A few other settings in your input script are required or advised to
perform a NEB calculation.
The "atom_modify sort 0 0.0" command should be used to turn off atom
sorting.
NOTE: This sorting restriction will be removed in a future version of
NEB in LAMMPS.
The minimizers in LAMMPS operate on all atoms in your system, even
non-NEB atoms, as defined above. To prevent non-NEB atoms from moving
during the minimization, you should use the "fix
setforce"_fix_setforce.html command to set the force on each of those
atoms to 0.0. This is not required, and may not even be desired in
some cases, but if those atoms move too far (e.g. because the initial
state of your system was not well-minimized), it can cause problems
for the NEB procedure.
Similarly, you should initialize the velocity of all NEB atoms (and
non-NEB atoms if they are free to move) in your system to 0.0 before
invoking the neb command. This gives the minimizer a consistent zero
velocity to start its damped dynamics with.
The damped dynamics "minimizers"_min_style.html, such as {quickmin}
and {fire}), adjust the position and velocity of the atoms via an
Euler integration step. Thus you must define an appropriate
"timestep"_timestep.html to use with NEB. Using the same timestep
that would be used for a dynamics "run"_run.html of your system is
advised.
:line
The specified {filename} contains atom coordinates for the final
configuration. Only atoms with coordinates different than the initial
configuration need to be specified, i.e. those geometrically near the
barrier.
The file can be ASCII text or a gzipped text file (detected by a .gz
suffix). The file should contain one line per atom, formatted
with the atom ID, followed by the final x,y,z coordinates:
125 24.97311 1.69005 23.46956
126 1.94691 2.79640 1.92799
127 0.15906 3.46099 0.79121
... :pre
The lines can be listed in any order.
:line
Four kinds of output can be generated during a NEB calculation: energy
barrier statistics, thermodynamic output by each replica, dump files,
and restart files.
When running with multiple partitions (each of which is a replica in
this case), the print-out to the screen and master log.lammps file is
limited to the potential energy of each replica, printed once every
{Nevery} timesteps.
When running on multiple partitions, LAMMPS produces additional log
files for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a
NEB calculation, these contain the thermodynamic output for each
replica.
If "dump"_dump.html commands in the input script define a filename
that includes a {universe} or {uloop} style "variable"_variable.html,
then one dump file (per dump command) will be created for each
replica. At the end of the NEB calculation, the final snapshot in
each file will contain the sequence of snapshots that transition the
system over the energy barrier. Earlier snapshots will show the
convergence of the replicas to the MEP.
Likewise, "restart"_restart.html filenames can be specified with a
{universe} or {uloop} style "variable"_variable.html, to generate
restart files for each replica. These may be useful if the NEB
calculation fails to converge properly to the MEP, and you wish to
restart the calculation from an intermediate point with altered
parameters.
There are 2 Python scripts provided in the tools/python directory,
neb1.py and neb2.py, which are useful in analyzing output from a NEB
calculation. Assume a NEB simulation with M replicas, and the NEB
atoms labelled with a specific atom type.
The neb1.py script extracts atom coords for the NEB atoms from all M
dump files and creates a single dump file where each snapshot contains
the NEB atoms from all the replicas and one copy of non-NEB atoms from
the first replica (presumed to be identical in other replicas). This
can be visualized to see how the NEB atoms relax as the NEB
calculation proceeds.
The neb2.py script extracts the final snapshot from each of the M dump
files to create a single dump file with M snapshots. This can be
visualized to watch the system make its transition over the energy
barrier.
:line
[Restrictions:]
This command can only be used if LAMMPS was built with the "replica"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.
[Related commands:]
"prd"_prd.html, "temper"_temper.html, "fix
langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
[Default:] none
:line
:link(Henkelman1)
[(Henkelman1)] Henkelman and Jonsson, J Phys Chem, 113, 9978-9985 (2000).
:link(Henkelman2)
[(Henkelman2)] Henkelman, Uberuaga, Jonsson, J Phys Chem, 113,
9901-9904 (2000).
:link(Nakano)
[(Nakano)] Nakano, Comp Phys Comm, 178, 280-289 (2008).

View File

@ -53,32 +53,35 @@ prd 5000 100 10 10 100 1 54982 min 0.1 0.1 100 200
</PRE>
<P><B>Description:</B>
</P>
<P>Run Parallel Replica Dynamics (PRD) as described in <A HREF = "#Voter">this
paper</A> by Art Voter. PRD is a method for performing
accelerated dynamics that is suitable for infrequent-event systems
that obey first-order kinetics. A good overview of accelerated
dynamics methods for such systems in given in <A HREF = "#Voter2">this review
paper</A> from the same group. To quote from the 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.
<P>Run a parallel replica dynamics (PRD) simulation using multiple
replicas of a system. One or more replicas can be used.
</P>
<P>A PRD run is performed by running independent simulations on multiple
replicas of the same system, which gives an effective enhancement in
the timescale spanned by the multiple simulations, waiting for an
event to occur. To run with M replicas, you must launch LAMMPS on M
partitions, where a partition is one or more processors. This is done
by using the "-partition" command-line argument when LAMMPS is
launched. See <A HREF = "Section_start.html#2_6">this section</A> of the manual for
details. A PRD run can be performed on a single partition, though
this offers no effective parallel speed-up in searching for infrequent
events.
<P>PRD is described in <A HREF = "#Voter">this paper</A> by Art Voter. It is a method
for performing accelerated dynamics that is suitable for
infrequent-event systems that obey first-order kinetics. A good
overview of accelerated dynamics methods for such systems in given in
<A HREF = "#Voter2">this review paper</A> from the same group. To quote from the
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.
</P>
<P>When a PRD run is performed, it is assumed that each replica is
<P>Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
switch; see <A HREF = "Section_start.html#2_6">this section</A> of the manual. Note
that if you have MPI installed, you can run a multi-replica simulation
with more replicas (partitions) than you have physical processors, e.g
you can run a 10-replica simulation on one or two processors. For
PRD, this makes little sense, since this offers no effective parallel
speed-up in searching for infrequent events.
</P>
<P>When a PRD simulation is performed, it is assumed that each replica is
running the same model, though LAMMPS does not check for this.
I.e. the simulation domain, the number of atoms, the interaction
potentials, etc are the same for every replica.
potentials, etc should be the same for every replica.
</P>
<P>A PRD run has several stages, which are repeated each time an "event"
occurs in one of the replicas, as defined below. The logic for a PRD
@ -265,7 +268,7 @@ value for the first event in the new run will be slightly off.
<P><B>Restrictions:</B>
</P>
<P>This command can only be used if LAMMPS was built with the "prd"
<P>This command can only be used if LAMMPS was built with the "replica"
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>

View File

@ -40,32 +40,35 @@ prd 5000 100 10 10 100 1 54982 min 0.1 0.1 100 200 :pre
[Description:]
Run Parallel Replica Dynamics (PRD) as described in "this
paper"_#Voter by Art Voter. PRD is a method for performing
accelerated dynamics that is suitable for infrequent-event systems
that obey first-order kinetics. A good overview of accelerated
dynamics methods for such systems in given in "this review
paper"_#Voter2 from the same group. To quote from the 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.
Run a parallel replica dynamics (PRD) simulation using multiple
replicas of a system. One or more replicas can be used.
A PRD run is performed by running independent simulations on multiple
replicas of the same system, which gives an effective enhancement in
the timescale spanned by the multiple simulations, waiting for an
event to occur. To run with M replicas, you must launch LAMMPS on M
partitions, where a partition is one or more processors. This is done
by using the "-partition" command-line argument when LAMMPS is
launched. See "this section"_Section_start.html#2_6 of the manual for
details. A PRD run can be performed on a single partition, though
this offers no effective parallel speed-up in searching for infrequent
events.
PRD is described in "this paper"_#Voter by Art Voter. It is a method
for performing accelerated dynamics that is suitable for
infrequent-event systems that obey first-order kinetics. A good
overview of accelerated dynamics methods for such systems in given in
"this review paper"_#Voter2 from the same group. To quote from the
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.
When a PRD run is performed, it is assumed that each replica is
Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
switch; see "this section"_Section_start.html#2_6 of the manual. Note
that if you have MPI installed, you can run a multi-replica simulation
with more replicas (partitions) than you have physical processors, e.g
you can run a 10-replica simulation on one or two processors. For
PRD, this makes little sense, since this offers no effective parallel
speed-up in searching for infrequent events.
When a PRD simulation is performed, it is assumed that each replica is
running the same model, though LAMMPS does not check for this.
I.e. the simulation domain, the number of atoms, the interaction
potentials, etc are the same for every replica.
potentials, etc should be the same for every replica.
A PRD run has several stages, which are repeated each time an "event"
occurs in one of the replicas, as defined below. The logic for a PRD
@ -252,7 +255,7 @@ value for the first event in the new run will be slightly off.
[Restrictions:]
This command can only be used if LAMMPS was built with the "prd"
This command can only be used if LAMMPS was built with the "replica"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.

View File

@ -31,20 +31,34 @@ temper 40000 100 $t tempfix 0 32285 $w
<P><B>Description:</B>
</P>
<P>Run a parallel tempering (replica exchange) simulation of multiple
ensembles of a system on multiple partitions of processors. The
processor partitions are defined using the -partition command-line
switch (see <A HREF = "Section_start.html#2_6">this section</A>). Each ensemble's
temperature is typically controlled at a different value by a fix with
ID <I>fix-ID</I> that controls temperature. Possible fix styles are
<A HREF = "fix_nh.html">nvt</A>, <A HREF = "fix_nh.html">temp/berendsen</A>,
ensembles (replicas) of a system on multiple partitions of processors.
</P>
<P>The processor partitions are defined using the -partition command-line
switch (see <A HREF = "Section_start.html#2_6">this section</A>). Each partition
(replica) can be assigned one or more processors. Note that if you
have MPI installed, you can run a multi-partition simulation on more
partitions than you have physical processors, e.g you can run a
10-replica simulation on one or two processors. You will simply
not get the performance speed-up you would typically see with one or
more physical processors per replica. See <A HREF = "Section_howto.html#4_5">this
section</A> of the manual for further discussion.
</P>
<P>Each ensemble's temperature is controlled at a different value by a
fix with ID <I>fix-ID</I> that controls temperature. Possible fix styles
are <A HREF = "fix_nh.html">nvt</A>, <A HREF = "fix_nh.html">temp/berendsen</A>,
<A HREF = "fix_langevin.html">langevin</A> and <A HREF = "fix_temp_rescale.html">temp/rescale</A>.
The desired temperature is specified by <I>temp</I>, which is typically a
variable previously set in the input script, so that each partition is
assigned a different temperature. See the <A HREF = "variable.html">variable</A>
command for more details. For example,
command for more details. For example:
</P>
<PRE>variable t world 300.0 310.0 320.0 330.0
<PRE>variable t world 300.0 310.0 320.0 330.0
fix myfix all nvt $t $t 100.0
temper 100000 100 $t myfix 3847 58382
</PRE>
<P>would define 4 temperatures, and assign one of them to the thermostat
used by each replica, and to the temper command.
</P>
<P>As the tempering simulation runs for <I>N</I> timesteps, a swap between
adjacent ensembles will be attempted every <I>M</I> timesteps. If <I>seed1</I>
is 0, then the swap attempts will alternate between odd and even
@ -105,11 +119,17 @@ log file listed the following for a simulation with 5 replicas:
<P>would be used to restart the run with a tempering command like the
example above with $w as the last argument.
</P>
<P><B>Restrictions:</B> none
<HR>
<P><B>Restrictions:</B>
</P>
<P>This command can only be used if LAMMPS was built with the "replica"
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "variable.html">variable</A>
<P><A HREF = "variable.html">variable</A>, <A HREF = "prd.html">prd</A>, <A HREF = "neb.html">neb</A>
</P>
<P><B>Default:</B> none
</P>

View File

@ -28,19 +28,33 @@ temper 40000 100 $t tempfix 0 32285 $w :pre
[Description:]
Run a parallel tempering (replica exchange) simulation of multiple
ensembles of a system on multiple partitions of processors. The
processor partitions are defined using the -partition command-line
switch (see "this section"_Section_start.html#2_6). Each ensemble's
temperature is typically controlled at a different value by a fix with
ID {fix-ID} that controls temperature. Possible fix styles are
"nvt"_fix_nh.html, "temp/berendsen"_fix_nh.html,
ensembles (replicas) of a system on multiple partitions of processors.
The processor partitions are defined using the -partition command-line
switch (see "this section"_Section_start.html#2_6). Each partition
(replica) can be assigned one or more processors. Note that if you
have MPI installed, you can run a multi-partition simulation on more
partitions than you have physical processors, e.g you can run a
10-replica simulation on one or two processors. You will simply
not get the performance speed-up you would typically see with one or
more physical processors per replica. See "this
section"_Section_howto.html#4_5 of the manual for further discussion.
Each ensemble's temperature is controlled at a different value by a
fix with ID {fix-ID} that controls temperature. Possible fix styles
are "nvt"_fix_nh.html, "temp/berendsen"_fix_nh.html,
"langevin"_fix_langevin.html and "temp/rescale"_fix_temp_rescale.html.
The desired temperature is specified by {temp}, which is typically a
variable previously set in the input script, so that each partition is
assigned a different temperature. See the "variable"_variable.html
command for more details. For example,
command for more details. For example:
variable t world 300.0 310.0 320.0 330.0 :pre
variable t world 300.0 310.0 320.0 330.0
fix myfix all nvt $t $t 100.0
temper 100000 100 $t myfix 3847 58382 :pre
would define 4 temperatures, and assign one of them to the thermostat
used by each replica, and to the temper command.
As the tempering simulation runs for {N} timesteps, a swap between
adjacent ensembles will be attempted every {M} timesteps. If {seed1}
@ -102,10 +116,16 @@ variable w proc 2 4 0 1 3 :pre
would be used to restart the run with a tempering command like the
example above with $w as the last argument.
[Restrictions:] none
:line
[Restrictions:]
This command can only be used if LAMMPS was built with the "replica"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.
[Related commands:]
"variable"_variable.html
"variable"_variable.html, "prd"_prd.html, "neb"_neb.html
[Default:] none