Return to top-level of LAMMPS documentation.
This page contains a complete list of valid LAMMPS commands which are read-in from an input script. It will be easiest to understand if you read it while looking at sample input scripts in the examples directory.
The script of input commands is read by LAMMPS, one line at a time. Each command causes LAMMPS to take some action. Usually it simply causes some internal variable(s) to be set. Or it may cause a data file to be read in or a simulation to be run. Note that most commands have default settings, which means you only need use a particular command if you do not want the default setting.
Each LAMMPS input script contains exactly one "read data" (or "read restart") command which defines the problem to be simulated. All other commands can be split into three categories: (a) commands that (if used) must appear before the "read data" command because they define settings needed to correctly read-in the problem and allocate memory for it, (b) commands that must appear after the "read data" command because they act on the specified problem, and (c) commands that can appear either before or after the "read data" command. Commands in category (c) are used before the "read data" command if a default setting needs to be changed before the problem description is read-in. They can be used after the "read data" command if the user wishes to change a setting before the next "run" or "minimize" command is used. Other than these restrictions, commands can generally appear in any order in the input script, although some commands require others to have been previously specified.
Each LAMMPS input script also contains one or more "run" or "minimize" commands. These trigger an actual dynamics or minimization computation to be done. Following a run, new commands from categories (b) and (c) can be used to change various settings, and additional "run" commands can then be used to continue the previous simulation. LAMMPS continues to read successive lines from the input script until the end-of-file is reached, which causes LAMMPS to terminate.
This page gives examples of each command, some of which can be specified in multiple styles. Typically the commands take one or more parameters. The keyword for each command should begin in the leftmost column and all characters in the command and its parameters should be in lower-case (except the word NULL or characters in filenames). Parameters can be separated by arbitrary numbers of spaces and/or tabs, so long as the command fits on one line. The remainder of the line after the last parameter is ignored.
The next section outlines the structure of a LAMMPS input script. The final section gives a detailed description of the commands in alphabetic order, each with its associated parameters and default settings.
Any line starting with a # is a comment. Comments can appear anywhere in the input script.
(1) Initialization settings (must appear before "read data" or "read restart")
(2) Optional Settings (can appear before and/or after "read data" or "read restart")
(3) Read in a Problem via a "read data" or "read restart" command
(4) Optional Settings (same as (2))
(5) Problem Settings (must appear after "read data" or "read restart")
(6) Perform a Simulation via a "run" or "minimize" command
Repeat (4), (5), and (6) as desired ...
(if used, must appear before "read data" or "read restart" command)
units real extra memory 2.0 1.5 2.0 2.5 dimension 3 processor grid 10 10 10 periodicity 0 0 0 slab volume 3.0 newton flag 3 true flag 0 maximum cutoff 10.0 mixing style geometric restart version 5
(if used, can appear before and/or after "read data" or "read restart" command)
neighbor 2.0 1 1 10 1 nonbond style none nonbond style lj/cutoff 10.0 0 nonbond style lj/smooth 8.0 10.0 nonbond style lj/shift 10.0 0 nonbond style soft 2.5 nonbond style class2/cutoff 10.0 0 nonbond style lj/charmm 15.0 15.1 coulomb style none coulomb style cutoff 10.0 coulomb style smooth 8.0 10.0 coulomb style ewald 10.0 1.0E-4 coulomb style pppm 10.0 1.0E-4 coulomb style charmm/switch 15.0 15.1 coulomb style debye 10.0 0.5 bond style none bond style harmonic bond style fene/standard bond style fene/shift bond style nonlinear bond style class2 angle style none angle style harmonic angle style class2 angle style charmm angle style cosine dihedral style none dihedral style harmonic dihedral style mutliharmonic dihedral style class2 dihedral style charmm improper style none improper style harmonic improper style cvff improper style class2
read data data.lj read restart restart.100000
(if used, must appear after "read data" or "read restart" command)
create group types 1 3 create group molecules 200 300 create group region 0.0 1.0 0.0 1.0 INF 1.0 create group remainder rotation zero 1 create temp uniform 300.0 12345678 create temp gaussian 300.0 12345678 create temp velocity 0.0 0.0 0.0
(if used, must appear after "read data" or "read restart" command)
nonbond coeff 1 2 1.0 3.45 10.0 (nonbond style lj/cutoff) nonbond coeff 1 2 1.0 3.45 8.0 10.0 (nonbond style lj/smooth) nonbond coeff 1 2 1.0 3.45 2.0 10.0 (nonbond style lj/shift) nonbond coeff 1 2 1.0 30.0 2.5 (nonbond style soft) nonbond coeff 1 2 1.0 3.45 10.0 (nonbond style class2/cutoff) nonbond coeff 1 2 1.0 3.45 1.0 3.45 (nonbond style lj/charmm) special bonds amber special bonds 0.0 0.0 0.5 pppm mesh 32 32 64 pppm order 5 dielectric 1.0 bond coeff 1 100.0 3.45 (bond style harmonic) bond coeff 1 30.0 1.5 1.0 1.0 (bond style fene/standard ) bond coeff 1 30.0 1.5 1.0 1.0 0.2 (bond style fene/shift) bond coeff 1 28.0 0.748308 0.166667 (bond style nonlinear) angle coeff 1 30.0 108.0 (angle style harmonic) angle coeff 1 30.0 108.0 30.0 2.5 (angle style charmm) angle coeff 1 30.0 (angle style cosine) dihedral coeff 1 10.0 1 3 (dihedral style harmonic) dihedral coeff 1 2.0 2.0 2.0 2.0 2.0 (dihedral style multiharmonic) dihedral coeff 1 2.0 5 180.0 0.5 (dihedral style charmm) improper coeff 1 20.0 0.0 (improper style harmonic) improper coeff 1 20.0 10.0 (improper style cvff)
(if used, must appear after "read data" or "read restart" command)
fix style none fix style 1 setforce 0.0 NULL 0.0 fix style 1 addforce 1.0 0.0 0.0 fix style 1 aveforce 1.0 0.0 0.0 fix style 1 rescale 300.0 300.0 100 20.0 0.5 fix style 1 hoover/drag 50.0 50.0 0.001 fix style 1 langevin 50.0 50.0 0.01 12345 1 1 1 fix style 1 springforce 10.0 NULL NULL 1.0 fix style 1 dragforce 10.0 -5.0 NULL 2.0 1.0 fix style 1 shake 3 0.001 100 assign fix 1 atom 200 assign fix 1 molecule 50 assign fix 1 type 2 assign fix 1 region 0.0 1.0 INF INF 0.0 1.0 assign fix 1 bondtype 4 assign fix 1 angletype 18 10 assign fix 1 remainder
(if used, must appear after "read data" or "read restart" command)
temp control none temp control rescale 300.0 300.0 100 20.0 0.5 temp control replace 300.0 300.0 50 12345678 temp control langevin 50.0 50.0 0.01 123456 temp control nose/hoover 300.0 300.0 0.01 press control none press control nose/hoover xyz 0.0 0.0 0.001 press control nose/hoover xz 0.0 10.0 5.0 5.0 0.0 10.0 0.001 press control nose/hoover yz NULL NULL 5.0 5.0 0.0 10.0 0.001 press control nose/hoover aniso 0.0 0.0 0.0 0.0 1.0 10.0 0.001 press control nose/hoover aniso 0.0 0.0 0.0 0.0 NULL NULL 0.001 volume control none volume control linear x 0.0 10.0 volume control linear y -1.0 15.0 volume control linear z -10.0 10.0
(if used, must appear after "read data" or "read restart" command)
thermo flag 50 thermo style 0 dump atoms 100 filename dump velocities 100 filename dump forces 100 filename restart 1000 1 filename restart 1000 2 file1 file2 diagnostic diffusion 100 filename 3 1.0 -1.0 2.5
(if used, must appear after "read data" or "read restart" command)
timestep 1.0 respa 2 2 4 reset timestep 0
(if used, must appear after "read data" or "read restart" command)
min style hftn min flag 10
run 10000 minimize 0.0001 9999 50000
coeffs: harmonic
(1) K (energy units)
(2) theta (degrees)
class2
currently not enabled for "angle coeff" command
must be specified in data file (see "read data" command)
charmm
(1) K (energy units)
(2) theta (degrees)
(3) K_UB (energy/distance^2)
(4) r_UB (distance)
cosine
(1) K (energy units)
define (or override) angle coefficients for an individual angle type
use appropriate number of coeffs for a particular style
see force_fields.html for meaning of coefficients for each style
these coefficients can also be set in data file
by a "Angle Coeffs" entry, the most recently defined
coefficients are used
cannot use this command before a "read data" or "read restart" is performed,
because memory is not yet allocated for the necessary arrays
define style of angle interactions to use for all 3-body terms must be used before the "read data" command (if not using the default) to tell the program how to read the "Angle Coeffs" entry in the data file can be used after the "read data" command to change the style to none coefficients for all angle types must be defined in the data (or restart) file by a "Angle Coeffs" entry or by "angle coeff" commands before a run is performed Default = harmonic
styles:
coeffs: atom
(1) global atom #
molecule
(1) molecule #
type
(1) atom type
region
(1) lower x bound of region
(2) upper x bound of region
(3) lower y bound of region
(4) upper y bound of region
(5) lower z bound of region
(6) upper z bound of region
bondtype
(1) bond type
angletype
(1) angle type
(2) bond type used within that angle
remainder
no other parameters required
assign a group of atoms or a bond type to a particular constraint
use appropriate number of coeffs for a particular style
the constraint itself must first be defined by a
"fix style" command
multiple groups of atoms or bond types can be assigned to the same constraint
the bondtype option can only be assigned to a "fix style" of "shake",
multiple bondtypes can be SHAKEn, so long as the size of clusters of
atoms does not exceed the limit described in the "fix style" command
the angletype option can only be assigned to a "fix style" of "shake",
only a single angletype can be SHAKEn, it is designed to be used
in conjunction with "fix style bondtype" to make clusters of size 3
entirely rigid (e.g. water)
the angletype option enables an additional check when SHAKE constraints
are computed: if a cluster is of size 3 and both bonds in
the cluster are of a bondtype specified by the 2nd parameter of
angletype, then the cluster is SHAKEn with an additional angle
constraint that makes it rigid, using the equilibrium angle appropriate
to the specified angletype
IMPORTANT NOTE: the angletype option has one additional affect, namely
that no angle forces for any angle of type angletype are computed
(since it is assumed those angles will be frozen by being SHAKEn), thus
it will likely cause unintended behavior if the bonds in some atom pairs
within angles of type angletype do not have the appropriate bondtype,
since they will not be SHAKEn but neither will the angle force by computed
for style region, a coeff of INF means + or - infinity (all the way
to the boundary)
an atom can be assigned to multiple constraints, the constraints will be
applied in the reverse order they are assigned to that atom
(e.g. each timestep, the last fix assigned to an atom will be applied
to it first, then the next-to-last applied second, etc)
coeffs: harmonic
(1) K (energy units)
(2) r0 (distance units)
fene/standard
(1) k for FENE portion (energy/distance^2 units)
(2) r0 for FENE portion (distance units)
(3) epsilon for LJ portion (energy units)
(4) sigma for LJ portion (distance units)
fene/shift
(1) k for FENE (energy/distance^2 units)
(2) r0 for FENE after shift is performed (distance units)
(3) epsilon for LJ (energy units)
(4) sigma for LJ after shift is performed (distance units)
(5) delta shift distance (distance units)
nonlinear
(1) epsilon (energy units)
(2) r0 (distance units)
(3) lamda (distance units)
class2
currently not enabled for "bond coeff" command
must be specified in data file (see "read data" command)
define (or override) bond coefficients for an individual bond type
use appropriate number of coeffs for a particular style
see force_fields.html for meaning of coefficients for each style
these coefficients can also be set in data file
by a "Bond Coeffs" entry, the most recently defined
coefficients are used
cannot use this command before a "read data" or "read restart" is performed,
because memory is not yet allocated for the necessary arrays
define style of bond interactions to use between all bonded atoms must be used before the "read data" command (if not using the default) to tell the program how to read the "Bond Coeffs" entry in the data file (if one exists) can be used after the "read data" command to change the style, in this case "bond coeff" commands must also be used to set new coefficients for each bond type (unless the new style is "none") coefficients for all bond types must be defined in the data (or restart) file by a "Bond Coeffs" entry or by "bond coeff" commands before a run is performed Default = harmonic
blank lines are ignored lines starting with a # are echoed into the log file for commands, everything on a line after the last parameter is ignored
styles:
coeffs: none
no other parameters required
cutoff
(1) cutoff distance (distance units)
smooth
(1) inner cutoff (distance units)
(2) outer cutoff (distance units)
ewald
(1) cutoff distance for near-field portion (distance units)
(2) accuracy criterion
pppm
(1) cutoff distance for near-field portion (distance units)
(2) accuracy criterion
charmm/switch
(1) inner cutoff (distance units)
(2) outer cutoff (distance units)
debye
(1) cutoff distance (distance units)
(2) kappa (inverse distance units)
use appropriate number of coeffs for a particular style
normally this command should be used before "read data" or "read restart"
(if simulating a charged system) to tell LAMMPS how big a force cutoff
is being used, the "maximum cutoff" command can also serve this
purpose
restart files do not store "coulomb style" choice or cutoff, so
this should be specified in the input script when running from a restart
file
this command can also be used after "read data" or "read restart" to
change the style of Coulomb interactions or the cutoff
if simulated system has no charges, should set "coulomb style none" to
prevent LAMMPS from doing useless nonbond work, LAMMPS will set
this for you and issue a warning
cutoff distance can be smaller or larger than simulation box dimensions
accuracy criterion means "one part in value" - e.g. 1.0E-4
Ewald and PPPM accuracy criterion are used in conjunction with cutoff
to partition work between short-range and long-range routines
accuracy criterion effectively determines how many k-space vectors are used
to approximate the energy and forces
for PPPM, accuracy criterion determines mesh spacing (see "particle mesh"
command)
3-d periodic boundary conditions are normally used in conjunction with
Ewald and PPPM, see "slab volume" command for 2-d Ewald/PPPM
cannot use any Coulomb styles other than none with nonbond style = lj/shift or
nonbond style = soft
Coulomb style = smooth should be used with nonbond style = lj/smooth,
and both should use same inner and outer cutoffs
nonbond style = lj/charmm should be used with coulomb style = charmm/switch
for smooth and charmm/switch styles, outer cutoff must be > inner cutoff
for smooth and charmm/switch styles, atom pairs less than the inner cutoff
distance use usual Coulomb, pairs between inner and outer are smoothed,
and the potential goes to 0.0 at the outer cutoff
for smooth style, force is continuously differentiable everywhere
for debye style, an exp(-kappa*r) screening is added to the Coulombic
interaction
Default = cutoff 10.0 for real units
cutoff 2.5 for lj units
styles:
coeffs: types
(1) lowest atom type
(2) highest atom type
molecules
(1) lowest molecule ID
(2) highest molecule ID
region
(1) lower x bound of region
(2) upper x bound of region
(3) lower y bound of region
(4) upper y bound of region
(5) lower z bound of region
(6) upper z bound of region
remainder
no other parameters required
used with "create temp" command to initialize velocities of atoms
by default, the "create temp" command initializes the velocities of all atoms,
this command limits the initialization to a group of atoms
this command is only in force for the next "create temp" command, any
subsequent "create temp" command is applied to all atoms (unless the
"create group" command is used again)
for style types, only atoms with a type such that lo-type <= type <= hi-type
will be initialized by "create temp"
for style types, lo-type can equal hi-type if just want to specify one type
for style molecules, only atoms belonging to molecules with an ID # such
that lo-ID <= type <= hi-ID will be initialized by "create temp"
for style molecules, lo-ID can equal hi-ID if just want to specify one molecule
for style region, only atoms within the specified spatial region
will be initialized by "create temp"
for style region, a coeff of INF means + or - infinity (all the way
to the boundary)
for style remainder, only previously uninitialized atoms
will be initialized by "create temp"
styles:
coeffs: uniform
(1) target T (temperature units)
(2) random # seed (0 < seed <= 8 digits)
gaussian
(1) target T (temperature units)
(2) random # seed (0 < seed <= 8 digits)
velocity
(1) x velocity component (velocity units)
(2) y velocity component (velocity units)
(3) z velocity component (velocity units)
initialize velocities of atoms to a specified temperature
use appropriate number of coeffs for a particular style
cannot be done before a data or restart file is read
by default, velocities are created for all atoms - this can be overridden
by first using a "create group" command
for uniform and Gaussian styles velocities are created in
processor-independent fashion - is slower but gives the same initial
state independent of # of processors
for uniform and Gaussian styles the momentum of the initialized atoms is
also zeroed, but only if all atoms are being initialized
for uniform and Gaussian styles, RN are generated with Park/Miller RNG
for velocity style in 2-d simulations, still specify z velocity component,
even though it is ignored
call a user-defined diagnostic routine every this many timesteps this command can be used multiple times to call different routines at different frequencies, that use different parameters, and that send output to different files value of 0 for 2nd parameter means never call this particular routine this command causes any previous file associated with this user routine to be closed new filename can exist, will be overwritten if the file name specified is "none", then no file is opened each routine that is added to diagnostic.f and enabled with a "diagnostic" command will be called at the beginning and end of each "run" and every so many timesteps during the run see *** comments in diagnostic.f for changes that must be made in that file to enable user diagnostics, LAMMPS must then be re-compiled and re-linked see the diagnostic.f file for further information on how to create routines that operate on internal LAMMPS data, do their own file output, perform different operations (e.g. setup and clean-up) depending on when they are called, etc the optional 5th-9th parameters are stored as internal LAMMPS variables which can be accessed by the diagnostic routine
set dielectric constant to this value Default = 1.0
coeffs: harmonic
(1) K (energy units)
(2) d (+1 or -1)
(3) n (1,2,3,4,6)
multiharmonic
(1) A_1 (energy units)
(2) A_2 (energy units)
(3) A_3 (energy units)
(4) A_4 (energy units)
(5) A_5 (energy units)
class2
currently not enabled for "dihedral coeff" command
must be specified in data file (see "read data" command)
charmm
(1) K (energy units)
(2) n (1,2,3,4,6)
(3) d (0 or 180 degrees) (converted to radians within LAMMPS)
(4) weighting factor to turn on/off 1-4 neighbor nonbond interactions
define (or override) dihedral coefficients for an individual dihedral type
use appropriate number of coeffs for a particular style
see force_fields.html for meaning of coefficients for each style
these coefficients can also be set in data file
by a "Dihedral Coeffs" entry, the most recently defined
coefficients are used
cannot use this command before a "read data" or "read restart" is performed,
because memory is not yet allocated for the necessary arrays
define style of dihedral interactions to use for all 4-body terms must be used before the "read data" command (if not using the default) to tell the program how to read the "Dihedral Coeffs" entry in the data file can be used after the "read data" command to change the style to none coefficients for all dihedral types must be defined in the data (or restart) file by a "Dihedral Coeffs" entry or by "dihedral coeff" commands before a run is performed Default = harmonic
for a 2-d run, assumes all z-coords are set to 0.0 in "read data" or "read restart" files and program creates no z velocities this command sets the processor grid to default values for 2-d or 3-d so must be used before "processor grid" command must be set before data or restart file is read Default = 3
dump all atom positions to a file every this many timesteps (every this many iteration when the minimizer is invoked) when rRESPA is enabled, this is steps of outermost loop (longest timesteps) positions are also dumped at the start and end of each run when dumped during minimization, all dumps will have the same timestamp since the timestep does not change during minimization value of 0 means never dump any previous file is closed new filename can exist, will be overwritten atom positions in dump file are in "box" units (0.0 to 1.0) in each dimension IMPORTANT NOTE: due to the way periodic boundary conditions are enforced (only when neighbor lists are rebuilt), atom coords appearing in the dump file can be slightly outside the specified box Default = 0
dump all atom forces to a file every this many timesteps (every this many iteration when the minimizer is invoked) when rRESPA is enabled, this is steps of outermost loop (longest timesteps) forces are also dumped at the start and end of each run when dumped during minimization, all dumps will have the same timestamp since the timestep does not change during minimization any previous file is closed new filename can exist, will be overwritten value of 0 means never dump Default = 0
dump all atom velocities to a file every this many timesteps when rRESPA is enabled, this is steps of outermost loop (longest timesteps) velocities are also dumped at the start and end of every run any previous file is closed new filename can exist, will be overwritten value of 0 means never dump Default = 0
factors that affect how much extra memory is allocated when a problem is setup factor of 1.0 means no padding (use exactly what LAMMPS estimates is needed), factor of 2.0 means 2x longer arrays, etc typically don't need to change default settings unless LAMMPS tells you to "boost" some factor at run-time final section of log file lists optimal settings for these parameters, i.e. the job could have been run with those "extra memory" settings and would have used minimal memory must be set before data or restart file is read Default = 1.5 for all 4 parameters
styles:
coeffs: none
no other parameters required (use "none" as 1st parameter)
setforce
(1) x component of set force (in force units)
(2) y component of set force (in force units)
(3) z component of set force (in force units)
addforce
(1) x component of added force (in force units)
(2) y component of added force (in force units)
(3) z component of added force (in force units)
aveforce
(1) x comp of added average force per atom (in force units)
(2) y comp of added average force per atom (in force units)
(3) z comp of added average force per atom (in force units)
rescale
(1) desired T at beginning of run
(2) desired T at end of run
(3) check for rescaling every this many timesteps
(4) T window outside of which velocities will be rescaled
(5) fractional amount (0.0 to 1.0) of rescaling to perform
hoover/drag
(1) desired T at beginning of run
(2) desired T at end of run
(3) damping constant for drag (roughly inverse time units)
langevin
(1) desired T at beginning of run
(2) desired T at end of run
(3) Langevin damping parameter (inverse time units)
(4) random seed to use for white noise (0 < seed <= 8 digits)
(5) 0/1 = off/on x dimension
(6) 0/1 = off/on y dimension
(7) 0/1 = off/on z dimension
springforce
(1) x position of spring origin
(2) y position
(3) z position
(4) force constant k (so that k*distance = force units)
dragforce
(1) x position to drag atom towards
(2) y position
(3) z position
(4) force magnitude f (in force units)
(5) delta outside of which to apply force (in distance units)
shake
(1) max # of SHAKE iterations within each atom cluster
(2) SHAKE tolerance (accuracy of one part in tolerance)
(3) print bond statistics every this many steps (0 = never)
define a constraint
cannot skip a constraint number, all must be used before a run is performed
use appropriate number of coeffs for a particular style
which atoms or bonds the constraint will affect is set by the
"assign fix" command
all of the constraints (except for rescale) are applied every timestep
all specified temperatures are in temperature units
for style setforce, a coeff of NULL means do not alter that force component
for style aveforce, average force on the group of fixed atoms is computed,
then new average force is added in and actual force on each atom is set
to new total value -> has effect of applying same force to entire group
of atoms
thermostatting constraints (rescale, hoover/drag, langevin) cannot be used in
conjunction with global "temp control", since they conflict and will
cause atom velocities to be reset twice
thermostatting constraints (rescale, hoover/drag, langevin) cannot be used
when performing a minimization
if multiple Langevin constraints are specified the Marsaglia RNG will
only use the last RNG seed specified for initialization
meaning of rescale and Langevin thermostatting coefficients is same as in
"temp control" command
for rescale style, it can be used as a coarse temperature rescaler,
for example "rescale 200.0 300.0 100 10.0 1.0" will ramp the temperature
up during the simulation, resetting it to the target temperature as needed
for rescale style, it can be used to create an instantaneous
drag force that slowly rescales the temperature without oscillation,
for example "rescale 300.0 300.0 1 0.0 0.0001" will force (or keep)
the temperature to be 300.0, the time frame over which this occurs
will become longer as the last parameter is made smaller
for hoover/drag style, the drag force accumulates over time so some
oscillation in temperature can occur, for example
"rescale 300.0 300.0 1 0.0 0.0001" will force (or keep)
the temperature to be 300.0, the time frame over which the oscillations
occur will become longer as the last parameter is made smaller
style springforce is designed to be applied to an entire group of atoms
en masse (e.g. an umbrella force on an entire molecule)
for springforce style, the center of mass r0 of the group of atoms is computed,
then a restoring force = -k*(r-r0)*mass/masstotal is applied to each
atom in the group where mass = mass of the atom and masstotal = mass of
all the atoms in the group - thus "k" should represent the total
force on the group of atoms (not per atom)
for springforce style, a xyz position of NULL means do not include that
dimension in the distance or force computation
for dragforce style, apply a drag force of magnitude f to each atom in the
group in the direction (r-r0) where r0 = (x,y,z) - do not apply the force if
the atom is within a distance delta of r0
for dragforce style, a xyz position of NULL means do not include that
dimension in the distance or force computation
for shake style, certain bonds in the system are constrained every timestep
to be at their equilibrium length, this is done by applying a SHAKE-like
constraint to the forces on the atoms so that their position at the next
timestep will preserve the atom separations
for shake style, only atoms in small clusters can be constrained -
e.g. water molecules, CH3 groups, but not the C backbone of a
long polymer chain - a cluster is defined as a central atom
connected to others in the cluster by constrained bonds connected
together by constrained bonds - the max size of such a cluster is
4 atoms to enable easier parallelization
for shake style, the max iteration count need not be large (e.g. 3) since
iterations are only done within a cluster and converge quickly
see the "minimize" command for what constraints are allowed for use
with the minimizer
see the "respa" command for how constraints are applied when rRESPA
timestepping is enabled
Default = none
coeffs: harmonic
(1) K (energy units)
(2) chi (degrees)
cvff
(1) K (energy units)
(2) d (+1 or -1)
(3) n (0,1,2,3,4,6)
class2
currently not enabled for "improper coeff" command
must be specified in data file (see "read data" command)
define (or override) improper coefficients for an individual improper type
use appropriate number of coeffs for a particular style
see force_fields.html for meaning of coefficients for each style
these coefficients can also be set in data file
by a "Improper Coeffs" entry, the most recently defined
coefficients are used
cannot use this command before a "read data" or "read restart" is performed,
because memory is not yet allocated for the necessary arrays
define style of improper interactions to use for all trigonal centers in class2 case, dictates that angle-angle terms be included for all trigonal and tetrahedral centers angle for harmonic is improper torsion, angle for class2 is Wilson out-of-plane must be used before the "read data" command (if not using the default) to tell the program how to read the "Improper Coeffs" entry in the data file can be used after the "read data" command to change the style to none coefficients for all improper types must be defined in the data (or restart) file by a "Improper Coeffs" entry or by "improper coeff" commands before a run is performed Default = harmonic
specifies the longest force cutoff that will be used in any runs this value is used by LAMMPS to accurately allocate memory for neighbor arrays if the value is inaccurate (e.g. the command is not used), it is not an error, but LAMMPS may allocate insufficient memory for neighbor lists this command is not typically needed if the "nonbond style" and "coulomb style" commands are used before the "read data" or "read restart" command, since they specify the appropriate cutoffs an exception to this is if a short cutoff is used initially, but a longer cutoff will be used for a subsequent run (in the same input script), in this case the "maximum cutoff" command should be used to ensure enough memory is allocated for the later run note that a restart file contains nonbond cutoffs (so it is not necessary to use a "nonbond style" command before "read restart"), but LAMMPS still needs to know what the maximum cutoff will be before the restart file is read must be set before data or restart file is read Default = cutoffs for nonbond and Coulomb styles
write out minimization info every this many iterations value of 0 means never write Default = 1
choose minimization algorithm to use when "minimize" command is performed currently, the hftn style is the only option available Default = hftn
perform an energy minimization of the atomic coordinates of the system uses algorithm selected with "min style" command minimize commands can be interspersed with "run" commands to alternate between dynamics and relaxation of the system minimization stops if any of 3 criteria are met: (1) largest force component < stopping tolerance (2) # of iterations > max iterations (3) # of force and energy evaluations > max evaluations output from the minimizer is specified by the "dump atoms", "dump forces", and "restart" commands when using constraints with the minimizer, fixes are applied when atoms move except for the following fixes associated with temperature control are not allowed (rescale, hoover/drag, langevin) the minimizer does not invoke the "fix style shake" constraints on bond lengths the minimizer does not invoke pressure control or volume control settings for good convergence, should specify use of smooth nonbond force fields that have continuous second derivatives, e.g. set "coulomb style" to "smooth" or "pppm", set "nonbond style" to "lj/smooth" or use a long cutoff
styles:
determine the kind of mixing rule that is applied to generate nonbond
coefficients for interactions between type i and type j atoms
mixing rules are applied only when nonbond coeffs are input in a "read data" file
for nonbond style "soft", only epsilons (prefactor A) are input - they are
always mixed geometrically, regardless of mixing style setting
for nonbond style "lj/charmm", mixing style is always arithmetic,
regardless of mixing style setting
must be set before data file is read
Default = geometric for all nonbond styles except
arithmetic for nonbond style lj/charmm
sixthpower for nonbond style class2/cutoff
factors that affect how and when neighbor lists are constructed
the binning style is almost always faster than the N^2 style
skin must be large enough that all atoms needed for bond
interactions are also acquired by interprocessor communication
last parameter incurs extra checking and communication to test against
skin thickness, but may mean neighbor list is created less often
when rRESPA is run, the 3rd and 4th parameters refer to the
nonbond (short-range) timestepping
normally this command should be used before the data or restart file is read,
since the skin distance is used to estimate memory needed for
neighbor lists
this command can also be used after the "read data" or "read restart" command
to change the style of neighbor list construction, but if the
skin distance is changed it can cause LAMMPS to run out of neighbor
list memory, the "maximum cutoff" command can be used to avoid this
problem
Default = 2.0 1 1 10 1 for real units
0.3 1 1 10 1 for lj units
turn off or on Newton's 3rd law for bond and non-bond force computation
no Newton's 3rd law means more force computation and less communication yes Newton's 3rd law means less force computation and more communication which choice is faster is problem dependent on N, # of processors, and cutoff length(s) expect for round-off errors, setting this flag should not affect answers, only run time must be set before data or restart file is read Default = 3
coeffs: lj/cutoff
(1) epsilon (energy units)
(2) sigma (distance units)
(3) cutoff (distance units)
lj/smooth
(1) epsilon (energy units)
(2) sigma (distance units)
(3) inner cutoff (distance units)
(4) outer cutoff (distance units)
lj/shift
(1) epsilon (energy units)
(2) sigma (distance units)
(3) delta shift distance (distance units)
(4) cutoff (distance units)
soft
(1) prefactor A at start of run (energy units)
(2) prefactor A at end of run (energy units)
(3) cutoff (distance units)
class2/cutoff
(1) epsilon (energy units)
(2) sigma (distance units)
(3) cutoff (distance units)
lj/charmm
(1) epsilon (energy units)
(2) sigma (distance units)
(3) epsilon for 1-4 interactions (energy units)
(4) sigma for 1-4 interactions (distance units)
define (or override) nonbond coefficients for an individual atom type pair
use appropriate number of coeffs for a particular style
1st atom type must be <= 2nd atom type
all cutoffs are in global units, not local sigma units
(e.g. in reduced units a setting of "lj/cutoff 1.0 1.2 2.5" means a
cutoff of 2.5, not 1.2*2.5)
turn off a particular type pair interaction by setting the
cutoff to 0.0 (both cutoffs to zero for lj/smooth option)
for soft style, prefactor A is ramped from starting value to
ending value during run
these coefficients (except the cutoffs) can also be set in data file
by a "Nonbond Coeffs" entry and associated mixing rules, the cutoffs can
be set (globally) via the "nonbond style" command, the most
recently defined coefficients/cutoffs are used
cannot use this command before a "read data" or "read restart" is performed,
because memory is not yet allocated for the necessary arrays
styles:
coeffs: none
no other parameters required
lj/cutoff
(1) cutoff (distance units)
(2) offset flag (0 or 1)
lj/smooth
(1) inner cutoff (distance units)
(2) outer cutoff (distance units)
lj/shift
(1) cutoff (distance units)
(2) offset flag (0 or 1)
soft
(1) cutoff (distance units)
class2/cutoff
(1) cutoff (distance units)
(2) offset flag (0 or 1)
lj/charmm
(1) inner cutoff (distance units)
(2) outer cutoff (distance units)
define style of pairwise nonbond interactions to use between all atom types
use appropriate number of coeffs for a particular style
this is separate from charge interactions (see "coulomb style" command)
normally this command should be used before "read data"
to tell LAMMPS how big a force cutoff is being used, the
"maximum cutoff" command can also serve this purpose
when running from a restart file, the restart file contains the nonbond
style and nonbond cutoffs (but not the offset flag), so it is often
not necessary to use a "nonbond style" command before "read restart",
however LAMMPS still needs to know what the maximum cutoff will be
before the restart file is read, see "maximum cutoff" command
for more details
this command can also be used after "read data" or "read restart" to
change the style of nonbond interactions and/or the cutoff
cutoff distance can be smaller or larger than simulation box dimensions
nonbond style determines how many nonbond coefficients the program expects to
find in a "Nonbond Coeffs" entry in the data file or when using the
"nonbond coeff" command, thus the style must be set (if not using default)
before using the "read data" command (if the data file contains a
"Nonbond Coeffs" entry) or a "nonbond coeff" command
coefficients for all atom type pairs must be defined in data (or restart)
file by a "Nonbond Coeffs" entry or by "nonbond coeffs" commands before
a run is performed
this command sets the cutoff(s) for all type pair interactions, thus
overriding any previous settings by a "nonbond coeff" command or
that were read in from a data or restart file
for lj/cutoff, lj/shift, class2/cutoff styles,
offset flag only affects printout of thermodynamic energy
(not forces or dynamics), determines whether offset energy
is added in to LJ potential to make value at cutoff = 0.0,
flag = 0 -> do not add in offset energy,
flag = 1 -> add in offset energy
for lj/smooth and lj/charmm styles, outer cutoff must be > inner cutoff
for lj/smooth and lj/charmm styles, atom pairs less than the inner cutoff
distance use straight LJ, pairs between inner and outer use a smoothed LJ,
and the potential goes to 0.0 at the outer cutoff
for lj/smooth and lj/charmm styles, energy and forces are continuous at inner
cutoff and go smoothly to zero at outer cutoff
for lj/shift and soft styles, must set "coulomb style" to "none"
for lj/charmm style, must set "coulomb style" to "charmm/switch", "pppm",
or "ewald"
for lj/shift style, delta shift distances for each atom pair are set by
"Nonbond Coeffs" entry in data file or by "nonbond coeffs" command
for soft style, values of the prefactor "A", which is ramped from one
value to another during the run, are set by "Nonbond Coeffs" entry
in data file or by "nonbond coeffs" command
Default = lj/cutoff 10.0 0 for real units
lj/cutoff 2.5 0 for lj units
turn on/off periodicity in any of three dimensions used in inter-particle distance computation and when particles move to map (or not map) them back into periodic box for a 2-d run (see "dimension" command), 3rd parameter must be specified, but doesn't matter if it is 0 or 1 must be set before data or restart file is read Default = 0 0 0 (periodic in all dimensions)
specify the mesh size used by "coulomb style pppm" mesh dimensions that are power-of-two are fastest for FFTs, but any sizes can be used that are supported by native machine libraries this command is optional - if not used, a default mesh size will be chosen to satisfy accuracy criterion - if used, the specified mesh size will override the default
specify the order of the interpolation function that is used by "coulomb style pppm" to map particle charge to the particle mesh order is roughly equivalent to how many mesh points a point charge overlaps onto in each dimension Default = 5
styles:
coupling:
coeffs: none
no other parameters required
nose/hoover xyz
(1) desired P at beginning of run
(2) desired P at end of run
nose/hoover xy or yz or xz or aniso
(1) desired Px at beginning of run (or NULL, see below)
(2) desired Px at end of run
(3) desired Py at beginning of run
(4) desired Py at end of run
(5) desired Pz at beginning of run
(6) desired Pz at end of run
(7) frequency constant for volume adjust (inverse time units)
enable constant pressure simulations
all specified pressures are in pressure units
any dimension being varied by pressure control must be periodic
for xyz coupling, all 3 dimensions expand/contract together uniformly
using total scalar pressure as the driving force
for xy/yz/xz coupling, the 2 specified dimensions expand/contract together
uniformly using pressure components averaged over those 2 dimensions
as the driving force, the non-specified dimension will expand/contract
independently using its pressure component as the driving force
for anisotropic, all 3 dimensions expand/contract independently using
individual pressure components as the 3 driving forces
in all cases, the simulation box stays rectilinear (not Parinello-Rahman)
for dimensions coupled together, their specified P values should be the same
a non-coupled dimension (e.g. dimension z for xy option or any dimension
for aniso option) can have 2 NULL values as specified pressures,
which means apply no pressure control in that dimension (constant volume)
target pressure at intermediate points during a run is a ramped value
between the beginning and ending pressure(s)
for nose/hoover style, frequency constant is like an inverse "piston"
mass which determines how rapidly the pressure fluctuates in response to a
restoring force, large frequency -> small mass -> rapid fluctations
for nose/hoover style, units of frequency/damping constant are
inverse time, so a value of 0.001 means relax in a timespan on the
order of 1000 fmsec (real units) or 1000 tau (LJ units)
IMPORTANT NOTE: the computation of P in LAMMPS does not include
a long-range Van der Waals correction, this introduces a known
error when performing constant P simulations since the correction
factor changes as the box size varies
Default = none
specify 3-d grid of processors to map to physical simulation domain for 2-d problem, specify N by M by 1 grid program will choose these values to best map processor grid to physical simulation box, only use this command if wish to override program choice product of 3 parameters must equal total # of processors must be set before data or restart file is read Default = none
read the initial atom positions and bond info from the specified file the format for the data file is specified in the file data_format if a "Velocities" entry is not in data file, all atom velocities are set to 0.0 if a "Coeffs" entry is in data file, the appropriate "style" command command must be used first (unless default setting is used) to tell LAMMPS how many coefficients to expect a "Nonbond Coeffs" entry only contains one set of coefficients for each atom type, after being read-in mixing rules are applied to compute the cross-type coefficients, see the "mixing style" command and data_format file for more information
read atom and force-field information from specified file allows continuation of a previous run file is binary to enable exact restarts do not have to restart on same # of processors, but can only do exact restarts on same # of processors due to roundoff when restart file is read, warnings are issued if certain parameters in the restart file do not match current settings (e.g. newton flag, dimension, periodicity, units) - this usually indicates an error the restart file stores the "nonbond style" and many-body styles and coefficients and cutoffs, so these do not have to be re-specified in the input script, unless you want to change them the restart file does not store "coulomb style" choice or cutoff, so this should be re-specified in the input script the restart file stores the constraint assignments for each atom generated by using the "assign fix" command, it does NOT store the constraint parameters themselves, so they must be re-specified with "fix style" commands after the restart file is read - one exception to this is that SHAKE constraints (bondtype or angletype) are not stored with the atoms, so they must be re-specified when performing a restart with both the "fix style" and "assign fix" commands
explicitly reset the timestep to this value the "read data" and "read restart" commands set the timestep to zero and the file value respectively, so this should be done after those commands
factors that affect sub-cycling of force calculations within rRESPA hierarchy bonded intramolecular forces are calculated every innermost sub-timestep bonded 3- and 4-body forces are computed every 1st parameter sub-timesteps short-range nonbond pairwise forces (LJ, Coulombic) are computed every (2nd parameter * 1st parameter) sub-timesteps long-range (Ewald, PPPM) forces are computed every (3rd parameter * 2nd parameter * 1st parameter) sub-timesteps the timestepping for all 3 inner loops (bond, 3/4-body, nonbond) is performed as sub-cycling within the long-range timestepping loop the fastest (innermost) timestep size is set by the "timestep" command when running rRESPA, all input commands that specify numbers of timesteps (e.g. run, thermo flag, restart, etc) refer to the outermost loop of long-range timestepping the only exception to this rule is the "neighbor" command, where the timestep parameters refer to the short-range (nonbond) timestepping when using constraints (via the "fix style" and "assign fix" commands) with rRESPA, the setforce and aveforce constraints are applied at every level of the hierarchy (whenever forces are computed), the other constraints are applied only at the short-range (nonbond) level when using "temp control langevin" with rRESPA, thermostatting is applied at the short-range (nonbond) level rRESPA cannot be used with "fix style shake" setting all 3 parameters to 1 turns off rRESPA Default = 1 1 1 (no rRESPA)
create a restart file every this many timesteps value of 0 means never create one if the style is 1, restart information will be written to files named filename.timestep and no 4th parameter is needed if the style is 2, restart information will be written alternately to files given by the 3rd and 4th parameters, so only 2 restart files ever exist when the minimizer is invoked this command means create a restart file at the end of the minimization with the filename filename.timestep.min a restart file stores atom and force-field information in binary form allows program to restart from where it left off (see "read restart" command) Default = 0
tell LAMMPS that a restart file from an older version of LAMMPS will be read-in via a "read restart" command this command is necessary because older restart files have a different format valid settings are 2001 (LAMMPS 2001), 2000 (LAMMPS 2000), 6 (LAMMPS 99) or 5 (LAMMPS 5.0) restart files from earlier versions of LAMMPS are not readable without some source code modifications restart files are always written out in the current-version format regardless of this setting this must be set before the "read restart" command is executed Default = current version of code = 2001
zero out angular momentum when creating velocities for a group of atoms value of 0 means don't zero out, value of 1 means zero it Default = 0
run or continue dynamics for specified # of timesteps when rRESPA is enabled, this is steps of outermost loop (longest timesteps) must have performed "read data" or "read restart" command first
invoke 2-d slab Ewald/PPPM and set extended slab volume via this ratio 2-d slab Ewald/PPPM can be used for a system that is periodic in x-y, but not in z this ratio dampens inter-slab interactions in the z dimension by providing empty volume between slabs and removing dipole inter-slab interactions ratio value is the size of the extended dimension in z divided by the actual dimension in z recommended ratio value is 3.0: larger is inefficient, smaller risks unwanted inter-slab interactions when 2-d slab Ewald/PPPM is used, z-direction periodicity must be turned off - e.g. periodicity 0 0 1 when 2-d slab Ewald/PPPM is used, user must prevent particle migration beyond initial z-bounds, typically by providing walls 2-d slab Ewald/PPPM can only be used only with electrostatically neutral systems 2-d slab Ewald/PPPM can only be used (for the moment) with constant volume simulations (no pressure control) - the pressure computation (printed as thermodynamic data) does not include any slab correction factor or a volume correction for the extended z direction must be set before data or restart file is read Default = none (normal 3-D Ewald/PPPM)
weighting factors to turn on/off nonbond interactions of atom pairs that are "close" in the molecular topology 1-2 neighbors are a pair of atoms connected by a bond 1-3 neighbors are a pair of atoms 2 hops away, etc. weight values are from 0.0 to 1.0 and are used to multiply the energy and force interaction (both Coulombic and LJ) between the 2 atoms weight of 0.0 means no interaction weight of 1.0 means full interaction can either specify a single keyword (charmm, amber) or can give 3 numeric values using the charmm keyword means use the CHARMM force field settings of 0.0 0.0 0.0, requiring that pair-specific 1-4 interactions be read in individually (see "dihedral style charmm" command) using the amber keyword means use the AMBER force field settings of 0.0 0.0 N, where N = 0.5 for Van der Waals 1-4 interactions and 1.0/1.2 for Coulombic 1-4 interactions Default = CHARMM force field values of 0.0 0.0 0.0
styles:
coeffs: none
no other parameters required
rescale
(1) desired T at beginning of run
(2) desired T at end of run
(3) check for rescaling every this many timesteps
(4) T window outside of which velocities will be rescaled
(5) fractional amount (0.0 to 1.0) of rescaling to perform
replace
(1) desired T at beginning of run
(2) desired T at end of run
(3) do Gaussian replacement every this many timesteps
(4) random # seed to use for replacement (0 < seed <= 8 digits)
langevin
(1) desired T at beginning of run
(2) desired T at end of run
(3) Langevin damping parameter (inverse time units)
(4) random seed to use for white noise (0 < seed <= 8 digits)
nose/hoover
(1) desired T at beginning of run
(2) desired T at end of run
(3) frequency constant for friction force (inverse time units)
enable constant temperature simulations
use appropriate number of coeffs for a particular style
all specified temperatures are in temperature units
target temperature at intermediate points during run is a ramped value
between the beginning and ending temperatures
for rescale style, temperature is controlled by explicitly rescaling
velocities towards the target temperature
for rescale style, rescaling is only done if current temperature is
beyond the target temperature plus or minus the window value
for rescale style, the amount of rescaling is contfolled by the fractional
amount (0.0 to 1.0), e.g. a value of 0.5 means set the velocities
to halfway between the current and target temperature
for rescale style, it can be used as a coarse temperature rescaler,
for example "rescale 200.0 300.0 100 10.0 1.0" will ramp the temperature
up during the simulation, resetting it to the target temperature as needed
for rescale style, it can be used to create an instantaneous
drag force that slowly rescales the temperature without oscillation,
for example "rescale 300.0 300.0 1 0.0 0.0001" will force (or keep)
the temperature to be 300.0, the time frame over which this occurs
will become longer as the last parameter is made smaller
for replace style, Gaussian RNs from the Marsaglia RNG are used
for langevin style, uniform RNs from the Marsaglia RNG are used
for replace and langevin styles, the seed is used to initialize the
Marsaglia RNG, on successive runs the RNG will just continue on
for replace and langevin styles, generated RNs depend on # of processors
so will not get same answers independent of # of processors
for replace and langevin styles, RNG states are not saved in restart file,
so cannot do an exact restart
for langevin style, damping parameter means small value -> less damping
for nose/hoover style, frequency constant is like an inverse
"piston" mass which determines how rapidly the temperature
fluctuates in response to a restoring force, large frequency ->
small mass -> rapid fluctations
for nose/hoover style, cannot use a end-of-run T of 0.0, must be finite
for langevin and nose/hoover styles, units of frequency/damping constant are
inverse time, so a value of 0.01 means relax in a timespan on the
order of 100 fmsec (real units) or 100 tau (LJ units)
Default = none
print thermodynamic info to screen and log file every this many timesteps value of 0 means never print Default = 0
determines format of thermodynamic output to screen and log file
Default = 0
timestep size for MD run (time units) when rRESPA is enabled, the timestep size is for the innermost (bond) loop Default = 1.0
read atom positions (see "read data" command) and dump atom positions (see "dump atoms" command) in one of 2 formats
for each dimension, box count of "n" means add that many box lengths to get "true" un-remapped position, "n" can be positive, negative, or zero must be set before data or restart file is read Default = 0
set units to one of two options for all subsequent input parameters option real = conventional units:
option lj = LJ reduced units:
for LJ units, LAMMPS sets global epsilon,sigma,mass all equal to 1.0 subsequent input numbers in data and command file must be in these units output numbers to screen and log and dump files will be in these units this command (if it appears) must be the first command (aside from comments) in the input script must be set before data or restart file is read Default = real
styles:
enable volume changes (density changes) during a simulation specified box boundaries are in distance units each dimension is controlled separately dimensions not specified by a "volume control" command can be left alone (constant volume or nonperiodic) or controlled by a "press control" command any dimension being varied by volume control must be periodic the lo/hi values are the desired global simulation box boundaries at the end of the simulation run at each timestep, the box is expanded/contracted uniformly from its initial lo/hi values to the specified ending lo/hi values initial lo/hi values are specified in the data or restart file or inherited from the end of the previous run at each timestep, all atom coordinates are also scaled to the new box Default = none