git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4910 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
109
doc/fix_neb.html
Normal 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
102
doc/fix_neb.txt
Normal 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
278
doc/neb.html
Normal 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
270
doc/neb.txt
Normal 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).
|
||||
49
doc/prd.html
49
doc/prd.html
@ -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>
|
||||
|
||||
49
doc/prd.txt
49
doc/prd.txt
@ -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.
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user