Previous Section - LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands - Next Section


3. Commands

This section describes how a LAMMPS input script is formatted and what commands are used to define a LAMMPS simulation.

3.1 LAMMPS input script
3.2 Parsing rules
3.3 Input script structure
3.4 Commands listed by category
3.5 Commands listed alphabetically


3.1 LAMMPS input script

LAMMPS executes by reading commands from a input script (text file), one line at a time. When the input script ends, LAMMPS exits. Each command causes LAMMPS to take some action. It may set an internal variable, read in a file, or run a simulation. Most commands have default settings, which means you only need to use the command if you wish to change the default.

In many cases, the ordering of commands in an input script is not important. However the following rules apply:

(1) LAMMPS does not read your entire input script and then perform a simulation with all the settings. Rather, the input script is read one line at a time and each command takes effect when it is read. Thus this sequence of commands:

timestep 0.5 
run      100 
run      100 

does something different than this sequence:

run      100 
timestep 0.5 
run      100 

In the first case, the specified timestep (0.5 fmsec) is used for two simulations of 100 timesteps each. In the 2nd case, the default timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5 fmsec timestep is used for the 2nd one.

(2) Some commands are only valid when they follow other commands. For example you cannot set the temperature of a group of atoms until atoms have been defined and a group command is used to define which atoms belong to the group.

(3) Sometimes command B will use values that can be set by command A. This means command A must precede command B in the input script if it is to have the desired effect. For example, the read_data command initializes the system by setting up the simulation box and assigning atoms to processors. If default values are not desired, the processors and boundary commands need to be used before read_data to tell LAMMPS how to map processors to the simulation box.

Many input script errors are detected by LAMMPS and an ERROR or WARNING message is printed. This section gives more information on what errors mean. The documentation for each command lists restrictions on how the command can be used.


3.2 Parsing rules

Each non-blank line in the input script is treated as a command. LAMMPS commands are case sensitive. Command names are lower-case, as are specified command arguments. Upper case letters may be used in file names or user-chosen ID strings.

Here is how each line in the input script is parsed by LAMMPS:

(1) If the last printable character on the line is a "&" character (with no surrounding quotes), the command is assumed to continue on the next line. The next line is concatenated to the previous line by removing the "&" character and newline. This allows long commands to be continued across two or more lines.

(2) All characters from the first "#" character onward are treated as comment and discarded. See an exception in (6). Note that a comment after a trailing "&" character will prevent the command from continuing on the next line. Also note that for multi-line commands a single leading "#" will comment out the entire command.

(3) The line is searched repeatedly for $ characters, which indicate variables that are replaced with a text string. See an exception in (6). If the $ is followed by curly brackets, then the variable name is the text inside the curly brackets. If no curly brackets follow the $, then the variable name is the single character immediately following the $. Thus ${myTemp} and $x refer to variable names "myTemp" and "x". See the variable command for details of how strings are assigned to variables and how they are substituted for in input script commands.

(4) The line is broken into "words" separated by whitespace (tabs, spaces). Note that words can thus contain letters, digits, underscores, or punctuation characters.

(5) The first word is the command name. All successive words in the line are arguments.

(6) If you want text with spaces to be treated as a single argument, it can be enclosed in double quotes. The quotes are removed when the single argument is stored in its final form. See the dump modify format or if commands for examples. A "#" or "$" character that is between double quotes will not be treated as a comment indicator in (2) or substituted for as a variable in (3).


3.3 Input script structure

This section describes the structure of a typical LAMMPS input script. The "examples" directory in the LAMMPS distribution contains many sample input scripts; the corresponding problems are discussed in this section, and animated on the LAMMPS WWW Site.

A LAMMPS input script typically has 4 parts:

  1. Initialization

  2. Atom definition

  3. Settings

  4. Run a simulation

The last 2 parts can be repeated as many times as desired. I.e. run a simulation, change some settings, run some more, etc. Each of the 4 parts is now described in more detail. Remember that almost all the commands need only be used if a non-default value is desired.

(1) Initialization

Set parameters that need to be defined before atoms are created or read-in from a file.

The relevant commands are units, dimension, newton, processors, boundary, atom_style, atom_modify.

If force-field parameters appear in the files that will be read, these commands tell LAMMPS what kinds of force fields are being used: pair_style, bond_style, angle_style, dihedral_style, improper_style.

(2) Atom definition

There are 3 ways to define atoms in LAMMPS. Read them in from a data or restart file via the read_data or read_restart commands. These files can contain molecular topology information. Or create atoms on a lattice (with no molecular topology), using these commands: lattice, region, create_box, create_atoms. The entire set of atoms can be duplicated to make a larger simulation using the replicate command.

(3) Settings

Once atoms and molecular topology are defined, a variety of settings can be specified: force field coefficients, simulation parameters, output options, etc.

Force field coefficients are set by these commands (they can also be set in the read-in files): pair_coeff, bond_coeff, angle_coeff, dihedral_coeff, improper_coeff, kspace_style, dielectric, special_bonds.

Various simulation parameters are set by these commands: neighbor, neigh_modify, group, timestep, reset_timestep, run_style, min_style, min_modify.

Fixes impose a variety of boundary conditions, time integration, and diagnostic options. The fix command comes in many flavors.

Various computations can be specified for execution during a simulation using the compute, compute_modify, and variable commands.

Output options are set by the thermo, dump, and restart commands.

(4) Run a simulation

A molecular dynamics simulation is run using the run command. Energy minimization (molecular statics) is performed using the minimize command. A parallel tempering (replica-exchange) simulation can be run using the temper command.


3.4 Commands listed by category

This section lists all LAMMPS commands, grouped by category. The next section lists the same commands alphabetically. Note that some style options for some commands are part of specific LAMMPS packages, which means they cannot be used unless the package was included when LAMMPS was built. Not all packages are included in a default LAMMPS build. These dependencies are listed as Restrictions in the command's documentation.

Initialization:

atom_modify, atom_style, boundary, dimension, newton, processors, units

Atom definition:

create_atoms, create_box, lattice, read_data, read_restart, region, replicate

Force fields:

angle_coeff, angle_style, bond_coeff, bond_style, dielectric, dihedral_coeff, dihedral_style, improper_coeff, improper_style, kspace_modify, kspace_style, pair_coeff, pair_modify, pair_style, pair_write, special_bonds

Settings:

communicate, dipole, group, mass, min_modify, min_style, neigh_modify, neighbor, reset_timestep, run_style, set, shape, timestep, velocity

Fixes:

fix, fix_modify, unfix

Computes:

compute, compute_modify, uncompute

Output:

dump, dump_modify, restart, thermo, thermo_modify, thermo_style, undump, write_restart

Actions:

delete_atoms, delete_bonds, displace_atoms, displace_box, minimize, prd, run, temper

Miscellaneous:

clear, echo, if, include, jump, label, log, next, print, shell, variable


3.5 Individual commands

This section lists all LAMMPS commands alphabetically, with a separate listing below of styles within certain commands. The previous section lists the same commands, grouped by category. Note that some style options for some commands are part of specific LAMMPS packages, which means they cannot be used unless the package was included when LAMMPS was built. Not all packages are included in a default LAMMPS build. These dependencies are listed as Restrictions in the command's documentation.

angle_coeff

angle_style

atom_modify

atom_style

bond_coeff

bond_style

boundary

change_box

clear

communicate

compute

compute_modify

create_atoms

create_box

delete_atoms

delete_bonds

dielectric

dihedral_coeff

dihedral_style

dimension

dipole

displace_atoms

displace_box

dump

dump_modify

echo

fix

fix_modify

group

if

improper_coeff

improper_style

include

jump

kspace_modify

kspace_style

label

lattice

log

mass

minimize

min_modify

min_style

neigh_modify

neighbor

newton

next

pair_coeff

pair_modify

pair_style

pair_write

prd

print

processors

read_data

read_restart

region

replicate

reset_timestep

restart

run

run_style

set

shape

shell

special_bonds

temper

thermo

thermo_modify

thermo_style

timestep

uncompute

undump

unfix

units

variable

velocity

write_restart


Fix styles

See the fix command for one-line descriptions of each style or click on the style itself for a full description:

addforce

aveforce

ave/atom

ave/histo

ave/spatial

ave/time

bond/break

bond/create

bond/swap

box/relax

deform

deposit

drag

dt/reset

efield

enforce2d

evaporate

freeze

gravity

heat

indent

langevin

lineforce

momentum

move

nph

npt

npt/asphere

npt/sphere

nve

nve/asphere

nve/limit

nve/noforce

nve/sphere

nvt

nvt/asphere

nvt/sllod

nvt/sphere

orient/fcc

planeforce

poems

pour_legacy

press/berendsen

print

reax/bonds

recenter

rigid

setforce

shake

spring

spring/rg

spring/self

store/coord

store/force

temp/berendsen

temp/rescale

thermal/conductivity

tmd

ttm

viscosity

viscous

wall/colloid

wall/gran

wall/harmonic

wall/lj126

wall/lj93

wall/reflect

wall/region



These are fix styles specific to LIGGGHTS:



adapt

check/timestep/gran

heat/gran

insert/pack

insert/rate/region

insert/stream

mesh/gran

mesh/gran/stressanalysis

mesh/gran/6dof

move/mesh/gran

pour

pour/dev

pour/dev/packing

particledistribution/discrete

particletemplate/sphere

sph/density/continuity

sph/density/corr

sph/density/summation

sph/pressure

wall/region/sph

wall/sph





These are fix styles contributed by users, which can be used if LAMMPS is built with the appropriate package.

atc

imd

smd


Compute styles

See the compute command for one-line descriptions of each style or click on the style itself for a full description:

angle/local

bond/local

centro/atom

cna/atom

com

com/molecule

coord/atom

damage/atom

dihedral/local

displace/atom

erotate/asphere

erotate/sphere

event/displace

group/group

gyration

gyration/molecule

heat/flux

improper/local

ke

ke/atom

msd

msd/molecule

pair/local

pe

pe/atom

pressure

property/atom

property/local

property/molecule

rdf

reduce

reduce/region

stress/atom

temp

temp/asphere

temp/com

temp/deform

temp/partial

temp/profile

temp/ramp

temp/region

temp/sphere



These are compute styles specific to LIGGGHTS:

coord/gran

pair/gran/local

wall/gran/local



These are compute styles contributed by users, which can be used if LAMMPS is built with the appropriate package.

ackland/atom


Pair_style potentials

See the pair_style command for an overview of pair potentials. Click on the style itself for a full description:

none

hybrid

hybrid/overlay

airebo

born/coul/long

buck

buck/coul/cut

buck/coul/long

colloid

coul/cut

coul/debye

coul/long

dipole/cut

dpd

dsmc

eam

eam/opt

eam/alloy

eam/alloy/opt

eam/fs

eam/fs/opt

gayberne

gayberne/gpu

gran/hertz/history

gran/hooke

gran/hooke/history

lj/charmm/coul/charmm

lj/charmm/coul/charmm/implicit

lj/charmm/coul/long

lj/charmm/coul/long/opt

lj/class2

lj/class2/coul/cut

lj/class2/coul/long

lj/cut

lj/cut/gpu

lj/cut/opt

lj/cut/coul/cut

lj/cut/coul/debye

lj/cut/coul/long

lj/cut/coul/long/tip4p

lj/expand

lj/gromacs

lj/gromacs/coul/gromacs

lj/smooth

lj96/cut

lubricate

meam

morse

morse/opt

peri/pmb

reax

resquared

soft

sw

table

tersoff

tersoff/zbl

yukawa

yukawa/colloid



These are pair styles specific to LIGGGHTS:

sph





These are pair styles contributed by users, which can be used if LAMMPS is built with the appropriate package.

buck/coul

cg/cmm

cg/cmm/coul/cut

cg/cmm/coul/long

eam/cd

lj/coul


Bond_style potentials

See the bond_style command for an overview of bond potentials. Click on the style itself for a full description:

none

hybrid

class2

fene

fene/expand

harmonic

morse

nonlinear

quartic

table


Angle_style potentials

See the angle_style command for an overview of angle potentials. Click on the style itself for a full description:

none

hybrid

charmm

class2

cosine

cosine/delta

cosine/squared

harmonic

table

These are angle styles contributed by users, which can be used if LAMMPS is built with the appropriate package.

cg/cmm


Dihedral_style potentials

See the dihedral_style command for an overview of dihedral potentials. Click on the style itself for a full description:

none

hybrid

charmm

class2

harmonic

helix

multi/harmonic

opls


Improper_style potentials

See the improper_style command for an overview of improper potentials. Click on the style itself for a full description:

none

hybrid

class2

cvff

harmonic


Kspace solvers

See the kspace_style command for an overview of Kspace solvers. Click on the style itself for a full description:

ewald

pppm

pppm/tip4p

These are Kspace solvers contributed by users, which can be used if LAMMPS is built with the appropriate package.

ewald/n