## LAMMPS Input Commands

Return to top-level of LAMMPS documentation.

This page contains a complete list of valid LAMMPS inputs. It will be easiest to understand if you read it while looking at sample input files such as those in the examples directory.

The input file of 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 file to be read in or a simulation to be run. In general, commands can be listed in any order, although some commands require others to have been executed previously.

LAMMPS continues to read successive lines from the input command file until the end-of-file is reached which causes LAMMPS to terminate. Thus new simulations can be run or current simulations continued by simply specifying additional commands in the input command file.

The next section of this page gives an example 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. 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 final section of this page gives a more detailed description of each command with its associated parameters. It also lists the default parameters associated with each command. When performing a simulation, you only need specify a particular command if you do not want to use the default settings.

- Categories of Commands with Examples
- Alphabetic Listing of Commands

### Categories of Commands withExamples

- Basic Settings
- Output Control
- Ensemble Control
- Nonbond Force Field
- Bonded Force Field
- Atom Creation
- Velocity Creation
- Constraint Creation
- Dynamics or Minimization

### Basic Settings

    comments

    units                  real
    dimension              3
    periodicity            0 0 0
    processor grid         10 10 10
    newton flag            3
    timestep               1.0
    respa                  2 2 4
    neighbor               2.0 0 1 10 1
    special bonds          0.0 0.0 0.4

### Output Control

    thermo flag            50
    thermo style           0
    true flag              0

    dump atoms             100 filename
    dump velocities        100 filename
    dump forces            100 filename

    restart                1000 file1 file2
    diagnostic             diffusion 100 filename 3 1.0 -1.0 2.5

### Ensemble Control

    temp control           none
    temp control           rescale 300.0 300.0 100 20.0
    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 1.0 1.0 0.001
    press_x control        nose/hoover 1.0 1.0 0.001
    press_y control        nose/hoover 1.0 1.0 0.001
    press_z control        nose/hoover 1.0 1.0 0.001

### Nonbond Force Field

    nonbond style          none
    nonbond style          lj/cutoff 10.0 0
    nonbond coeff          1 2 1.0 3.45 10.0
    nonbond style          lj/smooth 8.0 10.0
    nonbond coeff          1 2 1.0 3.45 8.0 10.0
    nonbond style          lj/shift 10.0 0
    nonbond coeff          1 2 1.0 3.45 2.0 10.0
    nonbond style          soft 2.5
    nonbond coeff          1 2 1.0 30.0 2.5
    nonbond style          class2/cutoff 10.0 0
    nonbond coeff          1 2 1.0 3.45 10.0
    mixing style           geometric

    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
    pppm mesh              32 32 64
    pppm order             5
    dielectric             1.0

### Bonded Force Field

    bond style             none
    bond style             harmonic
    bond coeff             1 100.0 3.45
    bond style             fene/standard
    bond coeff             1 30.0 1.5 1.0 1.0
    bond style             fene/shift
    bond coeff             1 30.0 1.5 1.0 1.0 0.2
    bond style             nonlinear
    bond coeff             1 28.0 0.748308 0.166667
    bond style             class2

    angle style            none
    angle style            harmonic
    angle style            class2

    dihedral style         none
    dihedral style         harmonic
    dihedral style         class2

    improper style         none
    improper style         harmonic
    improper style         class2

### Atom Creation

    read data              filename
    read restart           filename

### Velocity Creation

    create group           types 1 3
    create group           region 0.0 1.0 0.0 1.0 INF 1.0
    create group           remainder

    create temp            uniform 300.0 12345678
    create temp            gaussian 300.0 12345678
    create temp            velocity 0.0 0.0 0.0

### Constraint Creation

    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
    fix style              1 langevin 50.0 50.0 0.01 12345 1 1 1
    fix style              1 nose/hoover 50.0 50.0 0.01
    fix style              1 springforce 10.0 NULL NULL 1.0
    fix style              1 dragforce 10.0 -5.0 NULL 2.0 1.0

    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 remainder

### Dynamics or Minimization

    reset timestep         0

    run                    1000

    min style              hftn
    min file               filename
    minimize               0.0001 9999 50000

### Alphabetic Listing of Commands:

### angle style

- none = compute no angles
- harmonic = harmonic angles (class 1)
- class2 = class 2 angles (and associated cross terms)

    define style of angle interactions to use for all 3-body terms
    angle style determines how many angle coefficients the program expects to
      find in a "Angle Coeffs" entry in the data file,
      thus the style must be set (if not using default)
      before using the "read data" command (if the data file contains a
      "Angle Coeffs" entry)
    coefficients for all angle types must be defined in data (or restart)
      file by "Angle Coeffs" entry before a run is performed
    style of "none" erases all previously defined angle coefficients, must
      reset style to something else before defining new coefficients

    Default = harmonic

### assign fix

- 1st parameter = constraint #
- 2nd parameter = style of group of atoms
- 3rd-Nth parameters = coeffs 1 to N-2

    styles:

- atom = single atom
- molecule = all atoms in a particular molecule
- type = single atom type
- region = geometric region of atoms
- remainder = rest of unconstrained atoms

    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
             remainder
                   no other parameters required

    assign a group of atoms to a particular constraint
    use appropriate number of coeffs for a particular style
    the constraint itself is defined by the "fix style" command
    multiple groups of atoms can be assigned to the same constraint
    an atom can be assigned to multiple constraints, the contraints 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)
    for style region, a coeff of INF means + or - infinity (all the way
      to the boundary)

### bond coeff

- 1st parameter = bond type #
- 2nd-Nth parameters = coeffs 1 to N-1

    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)
              class 2
                   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
    these coefficients can also be set in data file
      by "Bond Coeffs" entry, the most recently defined coefficients are used

    Default = no settings

### bond style

- none = compute no bonds
- harmonic = harmonic springs
- fene/standard = attractive cosine, repulsive LJ
- fene/shift = same as fene/standard with shift of bond distance
- nonlinear = non-linear finite-extension spring (van Swol)
- class2 = class 2 bonds

    define style of bond interactions to use between all bonded atoms
    bond style determines how many bond coefficients the program expects to
      find in a "Bond Coeffs" entry in the  data file or when using the
      "bond coeff" command, thus the style must be set (if not using default)
      before using the "read data" command (if the data file contains a
      "Bond Coeffs" entry)
    coefficients for all bond types must be defined in data (or restart)
      file by "Bond Coeffs" entry or by "bond coeffs" commands before a run
      is performed
    style of "none" erases all previously defined bond coefficients, must
      reset style to something else before defining new coefficients

    Default = harmonic

### comments

    blank lines are ignored
    everything on a line after the last parameter is ignored
    lines starting with a # are echoed into the log file

### coulomb style

- 1st parameter = style of pairwise Coulomb interactions
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- none = no Coulomb interactions are computed
- cutoff = use a simple cutoff
- smooth = use a switch region that goes smoothly to zero
- ewald = use Ewald summations for long-range effects
- pppm = use particle-mesh Ewald for long-range effects

    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

    use appropriate number of coeffs for a particular style
    if simulated system has no charges, must set "coulomb style none" to
      prevent LAMMPS from doing useless nonbond work
    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)
    for PPPM, must be running on power-of-2 number of processors for FFTs
    must use periodic boundary conditions in conjuction with Ewald and PPPM
    cannot use any styles other than none with nonbond style = lj/shift or
      nonbond style = soft
    Coulomb style = smooth should be used with nonbond style = lj/switch,
      and both should use same inner and outer cutoffs
    for smooth style, outer cutoff must be > inner cutoff
    for smooth style, 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

    Default = cutoff 10.0

### create group

- 1st parameter = style of group of atoms
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- types = range of atom types
- region = geometric region of atoms
- remainder = rest of uninitialized atoms

    coeffs:  types
                   (1) lowest atom type
                   (2) highest 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
             remainder
                   no other parameters required

    used with "create temp" commmand 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 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"

### create temp

- 1st parameter = style of temperature creation
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- uniform = uniform distribution of velocities
- gaussian = gaussian distribution of velocities
- velocity = assign specific initial velocity to each atom

    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 "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

### diagnostic

- 1st parameter = nametag of a user routine added to diagnostic.f file
- 2nd parameter = call this user routine every this # of timesteps
- 3rd parameter = file name for this routine's diagnostic output
- 4th parameter = # of remaining parameters (0 to 5)
- 5th-9th parameters = optional parameters to pass to user routine

    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
    the diagnostic.f file has 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 user routines must be compiled and linked into LAMMPS
    the optional 5th-9th parameters are stored in program variables which
      can be accessed by the diagnostic routine

    Default = none

### dielectric

    set dielectric constant to this value

    Default = 1.0

### dihedral style

- none = compute no dihedrals
- harmonic = harmonic dihedrals (class 1)
- class2 = class 2 dihedrals (and associated cross terms)

    define style of dihedral interactions to use for all 4-body terms
    dihedral style determines how many dihedral coefficients the program expects to
      find in a "Dihedral Coeffs" entry in the data file,
      thus the style must be set (if not using default)
      before using the "read data" command (if the data file contains a
      "Dihedral Coeffs" entry)
    coefficients for all dihedral types must be defined in data (or restart)
      file by "Dihedral Coeffs" entry before a run is performed
    style of "none" erases all previously defined dihedral coefficients, must
      reset style to something else before defining new coefficients

    Default = harmonic

### dimension

- specify 3 for 3-d or 2 for 2-d run

    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 atoms

- 1st parameter = # of timesteps
- 2nd parameter = file name

    dump all atom positions to a file every this many timesteps
    positions are also dumped at the start and end of every run
    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

    Default = 0

### dump forces

- 1st parameter = # of timesteps
- 2nd parameter = file name

    dump all atom forces to a file every this many timesteps
    forces 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

### dump velocities

- 1st parameter = # of timesteps
- 2nd parameter = file name

    dump all atom velocities to a file every this many 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

### fix style

- 1st parameter = constraint # (except for none)
- 2nd parameter = style of that constraint
- 3rd-Nth parameters = coeffs 1 to N-2

    styles:

- none = erase all constraints and all atom assignments
- setforce = set force on each atom in group
- addforce = add a force to each atom in group
- aveforce = apply an external force to group of atoms such that every atom is accelerated the same
- rescale = thermostat a group of atoms by rescaling their velocities
- langevin = thermostat a group of atoms by the Langevin method
- nose/hoover = thermostat a group of atoms by the Nose/Hoover method
- springforce = apply a spring force to each atom in group
- dragforce = drag each atom in group to a specified position

    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
             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
             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)
             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)

    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 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, langevin, nose/hoover) cannot be used in
      conjuction with global "temp control", since they conflict and will
      cause atom velocities to be reset twice
    if multiple Langevin constraints are specified the Marsaglia RNG will
      only use the last RNG seed specified for initialization
    meaning of thermostatting coefficients is same as in "temp control" command
    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 style springforce, 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 style springforce, a xyz position of NULL means do not include that
      dimension in the distance or force computation
    for style dragforce, 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 style dragforce, a xyz position of NULL means do not include that
      dimension in the distance or force computation

    Default = none

### improper style

- none = compute no impropers
- harmonic = harmonic impropers (class 1) (V = k*phi*phi)
- cvff = cvff improper (class 1 variant) (V = K*(1 +/- cos(n*phi))
- class2 = class 2 Wilson out-of-plane (V = K*chi*chi)

    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
    in above formulas, phi = improper torsion, chi = Wilson out-of-plane
    improper style determines how many improper coefficients the program
      expects to find in a "Improper Coeffs" entry in the data file,
      thus the style must be set (if not using default)
      before using the "read data" command (if the data file contains a
      "Improper Coeffs" entry)
    coefficients for all improper types must be defined in data (or restart)
      file by "Improper Coeffs" entry before a run is performed
    style of "none" erases all previously defined improper coefficients, must
      reset style to something else before defining new coefficients

    Default = harmonic

### min file

    name of file to write minimization iteration info to
    filename can exist, will be overwritten when minimization occurs
    if no file is specified, no minimization output will be written to a file

    Default = none

### min style

- htfn = Hessian-free truncated Newton method

    choose minimization algorithm to use when "minimize" command is performed
    currently, only htfn style is available

    Default = htfn

### minimize

- 1st parameter = stopping tolerance (in force units)
- 2nd parameter = max iterations of minimizer
- 3rd parameter = max number of force or energy evaluations

    perform an energy minimization of the atomic coordinates of the system
    uses algorithm selected with "min style" command
    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
    for good convergence, should specify use of smooth nonbond force fields
      that have continuous second derivatives, set "coulomb style" to "smooth",
      set nonbond style to "lj/smooth" or use a long cutoff

### mixing style

- 1st parameter = style of mixing used to generate i-j nonbond interactions

    styles:

- geometric = sqrt(i*j) for both epsilon and sigma
- arithmetic = sqrt(i*j) for epsilon, (i+j)/2 for sigma
- sixthpower = see force_fields.txt file for details

    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 used 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

    Default = geometric for all nonbond styles except class2/cutoff
             sixthpower for nonbond style class2/cutoff

### neighbor

- 1st parameter = skin distance in distance units
- 2nd parameter = neighboring style: 0 = N^2, 1 = binning
- 3rd parameter = build neighbor list every this many steps (see next param)
- 4th parameter = delay building until after this many steps since last build
- 5th parameter = build criteria: 0 = always build, 1 = only build if some atom has moved 1/2 or more of the skin thickness

    factors that affect how and when neighbor lists are constructed
    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 RESPA is run, the 3rd and 4th parameters refer to the
      nonbond (short-range) timestepping
    defaults = 2.0 0 1 10 1

### newton flag

    turn off or on Newton's 3rd law for bond and non-bond force computation

- value = 0 -> no Newton's 3rd law for either
- value = 1 -> Newton's 3rd law only for bonded computations
- value = 2 -> Newton's 3rd law only for non-bonded computations
- value = 3 -> Newton's 3rd law for both bonded and non-bonded computations

    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

### nonbond coeff

- 1st parameter = 1st atom type
- 2nd parameter = 2nd atom type
- 3rd-Nth parameters = coeffs 1 to N-2

    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)

    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 "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

    Default = no settings

### nonbond style

- 1st parameter = style of pairwise nonbond interactions (other than Coulombic)
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- none = no nonbond interactions are computed
- lj/cutoff = LJ with a cutoff
- lj/smooth = LJ with a switched region that goes smoothly to zero
- lj/shift = same as lj/cutoff with shift of interparticle distance
- soft = cosine potential with time-varying prefactor

    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)

    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)
    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)
    coefficients for all atom type pairs must be defined in data (or restart)
      file by "Nonbond Coeffs" entry or by "nonbond coeffs" commands before a run
      is performed
    style of "none" erases all previously defined nonbond coefficients, must
      reset style to something else before defining new coefficients
    for all styles (except none), 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 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 style, outer cutoff must be > inner cutoff
    for lj/smooth style, 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 style, 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/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

### periodicity

- 1st parameter = periodic BC in x direction (0) yes, (1) no
- 2nd parameter = periodic BC in y direction (0) yes, (1) no
- 3rd parameter = periodic BC in z direction (0) yes, (1) no

    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)

### pppm mesh

- 1st parameter = # of mesh points in x direction
- 2nd parameter = # of mesh points in y direction
- 3rd parameter = # of mesh points in z direction

    specify the mesh size used by coulomb style pppm
    mesh dimensions that are power-of-two are fastest for FFTs, but any size
      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
      specifed mesh size will override the default

    Default = none

### pppm order

    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

    Default = 5

### press control

- 1st parameter = style of pressure control
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- none = no control
- nose/hoover = Nose-Hoover constant P

    coeffs:   none
                   no other parameters required
              nose/hoover
                   (1) desired P at beginning of run
                   (2) desired P at end of run
                   (3) frequency constant for volume adjust (inverse time units)

    use appropriate number of coeffs for a particular style
    all specified pressures are in pressure units
    target pressure at intermediate points during run is a ramped value
      between the beginning and ending pressure
    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)

    Default = none

### press_x control

### press_y control

### press_z control

- 1st parameter = style of pressure control
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- none = no control
- nose/hoover = Nose-Hoover constant P

    coeffs: none
                    no other parameters required
            nose/hoover
                    (1) desired P at beginning of run
                    (2) desired P at end of run
                    (3) frequency constant for volume adjust (inverse time units)

    commands for anisotropic pressure control, any combination is allowed
    for a component with style = none, the cell dimension in that direction
      is held constant (constant volume)
    use appropriate number of coeffs for a particular style
    all specified pressures are in pressure units
    target pressure at intermediate points during run is a ramped value
      between the beginning and ending pressure
    cannot be used with isotropic "press control" command
    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)

    Default = none

### processor grid

- 1st parameter = # of processors in x dimension
- 2nd parameter = # of processors in y dimension
- 3rd parameter = # of processors in z dimension

    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 data

    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 "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
    most "Coeffs" entries must be present in this file if a particular "style"
      is desired, an exception are the "Nonbond Coeffs" and "Bond Coeffs" entries
      which can be omitted if all the settings are made via "nonbond coeff"
      and "bond coeff" commands
    a "Nonbond Coeffs" entry only contains one set of coefficients for each
      atom type, after being read-in the appropriate class I or class II mixing
      rules are applied to compute the cross-type coefficients (see the file
      data_format for more information)

### read restart

    read atom positions and velocities and nonbond and bond coefficients
      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
    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 all nonbond and many-body styles and coefficients,
      so reading the file will overwrite any current settings
    the restart file stores the constraint assignments for each atom, but
      not the constraints themselves, so they must still be specified with
      the "fix style" command
    for a restart do not use the "read data" and "create temp" commands

### reset timestep

    explicitly reset the timestep to this value
    the "read data" and "read restart" commands set the timestep to zero
      and file value respectively, so this should be done after those commands

### respa

- 1st parameter = compute bond forces this many times for every one 3/4-body force call
- 2nd parameter = compute 3/4-body forces this many times for every one nonbond (short-range) force call
- 3rd parameter = compute nonbond (short-range) forces this many times for every one long-range force call

    factors that affect sub-cycling of force calculations within RESPA 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 RESPA, all input commands that specify numbers of timesteps
      (e.g. run, thermo flag, restart flag, 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 nonbond (short-range) timestepping
    setting all 3 parameters to 1 turns off RESPA

    Default = 1 1 1 (no RESPA)

### restart

- 1st parameter = # of timesteps
- 2nd parameter = 1st file name
- 3rd parameter = 2nd file name

    create a restart file every this many timesteps
    value of 0 means never create one
    program will toggle between 2 filenames as the run progresses
      so always have at least one good file even if the program dies in mid-write
    restart file stores atom positions and velocities in binary form
    allows program to restart from where it left off (see "read restart" commmand)

    Default = 0

### run

    run or continue dynamics for specified # of timesteps
    must have performed "read data"/"create temp" or "read restart"
      commands first

### special bonds

- 1st parameter = nonbond weight applied to 1st nearest neighbors
- 2nd parameter = nonbond weight applied to 2nd nearest neighbors
- 3rd parameter = nonbond weight applied to 3rd nearest neighbors

    weighting factors to turn on/off nonbond interactions of atom pairs that
      are "close" in the molecular topology
    1st nearest neighbors are a pair of atoms connected by a bond
    2nd nearest 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

    Default = 0.0 0.0 0.4 (CHARMM standard)

### temp control

- 1st parameter = style of temperature control
- 2nd-Nth parameters = coeffs 1 to N-1

    styles:

- none = no control
- rescale = instantaneous rescaling
- replace = Gaussian replacement
- nose/hoover = Nose-Hoover constant T
- langevin = Langevin white noise

    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
             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)

    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 to exactly 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 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 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

### thermo flag

    print thermodynamic info to screen and log file every this many timesteps
    value of 0 means never print

    Default = 0

### thermo style

    determines format of thermodynamic output to screen and log file

- style = 0 -> standard output - about 5 lines per entry
- style = 1 -> reduced output - 1 line per entry
- style = 2 -> output with class 2 terms - about 8 lines per entry

    Default = 0

### timestep

    timestep size for MD run (time units)
    when RESPA is run, the timestep size is for the innermost (bond) loop

    Default = 1.0

### true flag

    read atom positions (see "read data" command) and dump atom positions
      (see "dump flag" command) in one of 2 formats

- flag = 0 -> read/dump only atom positions (remapped to periodic box)
- flag = 1 -> dump atom positions plus integer box counts
- flag = 2 -> read atom positions plus integer box counts
- flag = 3 -> read/dump atom positions plus integer box counts

    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

    Default = 0

### units

- real or lj

    set units to one of two options for all subsequent input parameters

    option real = conventional units:

- distance = Angstroms
- time = femtoseconds
- mass = grams/mole
- temperature = degrees K
- pressure = atmospheres
- energy = Kcal/mole
- velocity = Angstroms/femtosecond
- force = grams/mole * Angstroms/femtosecond^2

    option lj = LJ reduced units:

- distance = sigmas
- time = reduced LJ tau
- temperature = reduced LJ temp
- pressure = reduced LJ pressure
- energy = epsilons
- velocity = sigmas/tau
- force = reduced LJ force (sigmas/tau^2)

    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
    must be set before data or restart file is read

    Default = real