diff -Naur lammps-23Oct17/doc/Makefile lammps-17Jan18/doc/Makefile --- lammps-23Oct17/doc/Makefile 2017-05-30 13:33:36.571988000 -0600 +++ lammps-17Jan18/doc/Makefile 2018-01-08 10:42:18.908988000 -0700 @@ -20,6 +20,7 @@ HAS_VIRTUALENV = YES endif +SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())') SOURCES=$(wildcard src/*.txt) OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst) @@ -55,7 +56,7 @@ @(\ . $(VENV)/bin/activate ;\ cp -r src/* $(RSTDIR)/ ;\ - sphinx-build -j 8 -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\ + sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\ echo "############################################" ;\ doc_anchor_check src/*.txt ;\ echo "############################################" ;\ @@ -91,7 +92,7 @@ @(\ . $(VENV)/bin/activate ;\ cp -r src/* $(RSTDIR)/ ;\ - sphinx-build -j 8 -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\ + sphinx-build $(SPHINXEXTRA) -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\ deactivate ;\ ) @mv epub/LAMMPS.epub . @@ -159,7 +160,7 @@ @( \ virtualenv -p $(PYTHON) $(VENV); \ . $(VENV)/bin/activate; \ - pip install Sphinx==1.5.6; \ + pip install Sphinx; \ pip install sphinxcontrib-images; \ deactivate;\ ) diff -Naur lammps-23Oct17/doc/html/.buildinfo lammps-17Jan18/doc/html/.buildinfo --- lammps-23Oct17/doc/html/.buildinfo 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/.buildinfo 2018-01-17 12:46:20.832443427 -0700 @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 427351f309bd1536e5d10ea5817e96ba +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff -Naur lammps-23Oct17/doc/html/Manual.html lammps-17Jan18/doc/html/Manual.html --- lammps-23Oct17/doc/html/Manual.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Manual.html 2018-01-17 12:46:20.642442132 -0700 @@ -0,0 +1,516 @@ + + + + + + + + + + + LAMMPS Documentation — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +

+

LAMMPS Documentation

+
+

17 Jan 2018 version

+
+
+

Version info:

+

The LAMMPS “version” is the date when it was released, such as 1 May +2010. LAMMPS is updated continuously. Whenever we fix a bug or add a +feature, we release it immediately, and post a notice on this page of the WWW site. Every 2-4 months one of the incremental releases +is subjected to more thorough testing and labeled as a stable version.

+

Each dated copy of LAMMPS contains all the +features and bug-fixes up to and including that version date. The +version date is printed to the screen and logfile every time you run +LAMMPS. It is also in the file src/version.h and in the LAMMPS +directory name created when you unpack a tarball, and at the top of +the first page of the manual (this page).

+
    +
  • If you browse the HTML doc pages on the LAMMPS WWW site, they always +describe the most current development version of LAMMPS.
  • +
  • If you browse the HTML doc pages included in your tarball, they +describe the version you have.
  • +
  • The PDF file on the WWW site or in the tarball is updated +about once per month. This is because it is large, and we don’t want +it to be part of every patch.
  • +
  • There is also a Developer.pdf file in the doc +directory, which describes the internal structure and algorithms of +LAMMPS.
  • +
+

LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel +Simulator.

+

LAMMPS is a classical molecular dynamics simulation code designed to +run efficiently on parallel computers. It was developed at Sandia +National Laboratories, a US Department of Energy facility, with +funding from the DOE. It is an open-source code, distributed freely +under the terms of the GNU Public License (GPL).

+

The current core group of LAMMPS developers is at Sandia National +Labs and Temple University:

+
    +
  • Steve Plimpton, sjplimp at sandia.gov
  • +
  • Aidan Thompson, athomps at sandia.gov
  • +
  • Stan Moore, stamoor at sandia.gov
  • +
  • Axel Kohlmeyer, akohlmey at gmail.com
  • +
+

Past core developers include Paul Crozier, Ray Shan and Mark Stevens, +all at Sandia. The LAMMPS home page at +http://lammps.sandia.gov has more information +about the code and its uses. Interaction with external LAMMPS developers, +bug reports and feature requests are mainly coordinated through the +LAMMPS project on GitHub. +The lammps.org domain, currently hosting public continuous integration testing and precompiled Linux RPM and Windows installer packages is located +at Temple University and managed by Richard Berger, +richard.berger at temple.edu.

+
+

The LAMMPS documentation is organized into the following sections. If +you find errors or omissions in this manual or have suggestions for +useful information to add, please send an email to the developers so +we can improve the LAMMPS documentation.

+

Once you are familiar with LAMMPS, you may want to bookmark this page at Section_commands.html#comm since +it gives quick access to documentation for all LAMMPS commands.

+

PDF file of the entire manual, generated by +htmldoc

+
+

User Documentation

+ +
+
+
+
+
+
+

Indices and tables

+ +
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_accelerate.html lammps-17Jan18/doc/html/Section_accelerate.html --- lammps-23Oct17/doc/html/Section_accelerate.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_accelerate.html 2018-01-17 12:46:20.668442309 -0700 @@ -0,0 +1,612 @@ + + + + + + + + + + + 5. Accelerating LAMMPS performance — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

5. Accelerating LAMMPS performance

+

This section describes various methods for improving LAMMPS +performance for different classes of problems running on different +kinds of machines.

+

There are two thrusts to the discussion that follows. The +first is using code options that implement alternate algorithms +that can speed-up a simulation. The second is to use one +of the several accelerator packages provided with LAMMPS that +contain code optimized for certain kinds of hardware, including +multi-core CPUs, GPUs, and Intel Xeon Phi coprocessors.

+ +

The Benchmark page of the LAMMPS +web site gives performance results for the various accelerator +packages discussed in Section 5.2, for several of the standard LAMMPS +benchmark problems, as a function of problem size and number of +compute nodes, on different hardware platforms.

+
+

5.1. Measuring performance

+

Before trying to make your simulation run faster, you should +understand how it currently performs and where the bottlenecks are.

+

The best way to do this is run the your system (actual number of +atoms) for a modest number of timesteps (say 100 steps) on several +different processor counts, including a single processor if possible. +Do this for an equilibrium version of your system, so that the +100-step timings are representative of a much longer run. There is +typically no need to run for 1000s of timesteps to get accurate +timings; you can simply extrapolate from short runs.

+

For the set of runs, look at the timing data printed to the screen and +log file at the end of each LAMMPS run. This section of the manual has an overview.

+

Running on one (or a few processors) should give a good estimate of +the serial performance and what portions of the timestep are taking +the most time. Running the same problem on a few different processor +counts should give an estimate of parallel scalability. I.e. if the +simulation runs 16x faster on 16 processors, its 100% parallel +efficient; if it runs 8x faster on 16 processors, it’s 50% efficient.

+

The most important data to look at in the timing info is the timing +breakdown and relative percentages. For example, trying different +options for speeding up the long-range solvers will have little impact +if they only consume 10% of the run time. If the pairwise time is +dominating, you may want to look at GPU or OMP versions of the pair +style, as discussed below. Comparing how the percentages change as +you increase the processor count gives you a sense of how different +operations within the timestep are scaling. Note that if you are +running with a Kspace solver, there is additional output on the +breakdown of the Kspace time. For PPPM, this includes the fraction +spent on FFTs, which can be communication intensive.

+

Another important detail in the timing info are the histograms of +atoms counts and neighbor counts. If these vary widely across +processors, you have a load-imbalance issue. This often results in +inaccurate relative timing data, because processors have to wait when +communication occurs for other processors to catch up. Thus the +reported times for “Communication” or “Other” may be higher than they +really are, due to load-imbalance. If this is an issue, you can +uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile +LAMMPS, to obtain synchronized timings.

+
+
+
+

5.2. General strategies

+
+

Note

+

this section 5.2 is still a work in progress

+
+

Here is a list of general ideas for improving simulation performance. +Most of them are only applicable to certain models and certain +bottlenecks in the current performance, so let the timing data you +generate be your guide. It is hard, if not impossible, to predict how +much difference these options will make, since it is a function of +problem size, number of processors used, and your machine. There is +no substitute for identifying performance bottlenecks, and trying out +various options.

+
    +
  • rRESPA
  • +
  • 2-FFT PPPM
  • +
  • Staggered PPPM
  • +
  • single vs double PPPM
  • +
  • partial charge PPPM
  • +
  • verlet/split run style
  • +
  • processor command for proc layout and numa layout
  • +
  • load-balancing: balance and fix balance
  • +
+

2-FFT PPPM, also called analytic differentiation or ad PPPM, uses +2 FFTs instead of the 4 FFTs used by the default ik differentiation +PPPM. However, 2-FFT PPPM also requires a slightly larger mesh size to +achieve the same accuracy as 4-FFT PPPM. For problems where the FFT +cost is the performance bottleneck (typically large problems running +on many processors), 2-FFT PPPM may be faster than 4-FFT PPPM.

+

Staggered PPPM performs calculations using two different meshes, one +shifted slightly with respect to the other. This can reduce force +aliasing errors and increase the accuracy of the method, but also +doubles the amount of work required. For high relative accuracy, using +staggered PPPM allows one to half the mesh size in each dimension as +compared to regular PPPM, which can give around a 4x speedup in the +kspace time. However, for low relative accuracy, using staggered PPPM +gives little benefit and can be up to 2x slower in the kspace +time. For example, the rhodopsin benchmark was run on a single +processor, and results for kspace time vs. relative accuracy for the +different methods are shown in the figure below. For this system, +staggered PPPM (using ik differentiation) becomes useful when using a +relative accuracy of slightly greater than 1e-5 and above.

+_images/rhodo_staggered.jpg +
+

Note

+

Using staggered PPPM may not give the same increase in accuracy +of energy and pressure as it does in forces, so some caution must be +used if energy and/or pressure are quantities of interest, such as +when using a barostat.

+
+
+
+
+

5.3. Packages with optimized styles

+

Accelerated versions of various pair_style, +fixes, computes, and other commands have +been added to LAMMPS, which will typically run faster than the +standard non-accelerated versions. Some require appropriate hardware +to be present on your system, e.g. GPUs or Intel Xeon Phi +coprocessors.

+

All of these commands are in packages provided with LAMMPS. An +overview of packages is give in Section packages.

+

These are the accelerator packages +currently in LAMMPS, either as standard or user packages:

+ ++++ + + + + + + + + + + + + + + + + + +
GPU Packagefor NVIDIA GPUs as well as OpenCL support
USER-INTEL Packagefor Intel CPUs and Intel Xeon Phi
KOKKOS Packagefor Nvidia GPUs, Intel Xeon Phi, and OpenMP threading
USER-OMP Packagefor OpenMP threading and generic CPU optimizations
OPT Packagegeneric CPU optimizations
+
+
+

Inverting this list, LAMMPS currently has acceleration support for +three kinds of hardware, via the listed packages:

+ ++++ + + + + + + + + + + + +
Many-core CPUsUSER-INTEL, KOKKOS, USER-OMP, OPT packages
NVIDIA GPUsGPU, KOKKOS packages
Intel PhiUSER-INTEL, KOKKOS packages
+

Which package is fastest for your hardware may depend on the size +problem you are running and what commands (accelerated and +non-accelerated) are invoked by your input script. While these doc +pages include performance guidelines, there is no substitute for +trying out the different packages appropriate to your hardware.

+

Any accelerated style has the same name as the corresponding standard +style, except that a suffix is appended. Otherwise, the syntax for +the command that uses the style is identical, their functionality is +the same, and the numerical results it produces should also be the +same, except for precision and round-off effects.

+

For example, all of these styles are accelerated variants of the +Lennard-Jones pair_style lj/cut:

+ +

To see what accelerate styles are currently available, see +Section 3.5 of the manual. The +doc pages for individual commands (e.g. pair lj/cut or +fix nve) also list any accelerated variants available +for that style.

+

To use an accelerator package in LAMMPS, and one or more of the styles +it provides, follow these general steps. Details vary from package to +package and are explained in the individual accelerator doc pages, +listed above:

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
build the accelerator libraryonly for GPU package
install the accelerator packagemake yes-opt, make yes-user-intel, etc
add compile/link flags to Makefile.machine in src/MAKEonly for USER-INTEL, KOKKOS, USER-OMP, OPT packages
re-build LAMMPSmake machine
prepare and test a regular LAMMPS simulationlmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script
enable specific accelerator support via ‘-k on’ command-line switch,only needed for KOKKOS package
set any needed options for the package via “-pk” command-line switch or package command,only if defaults need to be changed
use accelerated styles in your input via “-sf” command-line switch or suffix commandlmp_machine -in in.script -sf gpu
+

Note that the first 4 steps can be done as a single command with +suitable make command invocations. This is discussed in Section 4 of the manual, and its use is +illustrated in the individual accelerator sections. Typically these +steps only need to be done once, to create an executable that uses one +or more accelerator packages.

+

The last 4 steps can all be done from the command-line when LAMMPS is +launched, without changing your input script, as illustrated in the +individual accelerator sections. Or you can add +package and suffix commands to your input +script.

+
+

Note

+

With a few exceptions, you can build a single LAMMPS executable +with all its accelerator packages installed. Note however that the +USER-INTEL and KOKKOS packages require you to choose one of their +hardware options when building for a specific platform. I.e. CPU or +Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi +option for the KOKKOS package.

+
+

These are the exceptions. You cannot build a single executable with:

+
    +
  • both the USER-INTEL Phi and KOKKOS Phi options
  • +
  • the USER-INTEL Phi or Kokkos Phi option, and the GPU package
  • +
+

See the examples/accelerate/README and make.list files for sample +Make.py commands that build LAMMPS with any or all of the accelerator +packages. As an example, here is a command that builds with all the +GPU related packages installed (GPU, KOKKOS with Cuda), including +settings to build the needed auxiliary GPU libraries for Kepler GPUs:

+
Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi   -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi
+
+
+

The examples/accelerate directory also has input scripts that can be +used with all of the accelerator packages. See its README file for +details.

+

Likewise, the bench directory has FERMI and KEPLER and PHI +sub-directories with Make.py commands and input scripts for using all +the accelerator packages on various machines. See the README files in +those dirs.

+

As mentioned above, the Benchmark page of the LAMMPS web site gives +performance results for the various accelerator packages for several +of the standard LAMMPS benchmark problems, as a function of problem +size and number of compute nodes, on different hardware platforms.

+

Here is a brief summary of what the various packages provide. Details +are in the individual accelerator sections.

+
    +
  • Styles with a “gpu” suffix are part of the GPU package, and can be run +on NVIDIA GPUs. The speed-up on a GPU depends on a variety of +factors, discussed in the accelerator sections.
  • +
  • Styles with an “intel” suffix are part of the USER-INTEL +package. These styles support vectorized single and mixed precision +calculations, in addition to full double precision. In extreme cases, +this can provide speedups over 3.5x on CPUs. The package also +supports acceleration in “offload” mode to Intel(R) Xeon Phi(TM) +coprocessors. This can result in additional speedup over 2x depending +on the hardware configuration.
  • +
  • Styles with a “kk” suffix are part of the KOKKOS package, and can be +run using OpenMP on multicore CPUs, on an NVIDIA GPU, or on an Intel +Xeon Phi in “native” mode. The speed-up depends on a variety of +factors, as discussed on the KOKKOS accelerator page.
  • +
  • Styles with an “omp” suffix are part of the USER-OMP package and allow +a pair-style to be run in multi-threaded mode using OpenMP. This can +be useful on nodes with high-core counts when using less MPI processes +than cores is advantageous, e.g. when running with PPPM so that FFTs +are run on fewer MPI processors or when the many MPI tasks would +overload the available bandwidth for communication.
  • +
  • Styles with an “opt” suffix are part of the OPT package and typically +speed-up the pairwise calculations of your simulation by 5-25% on a +CPU.
  • +
+

The individual accelerator package doc pages explain:

+
    +
  • what hardware and software the accelerated package requires
  • +
  • how to build LAMMPS with the accelerated package
  • +
  • how to run with the accelerated package either via command-line switches or modifying the input script
  • +
  • speed-ups to expect
  • +
  • guidelines for best performance
  • +
  • restrictions
  • +
+
+
+
+

5.4. Comparison of various accelerator packages

+
+

Note

+

this section still needs to be re-worked with additional KOKKOS +and USER-INTEL information.

+
+

The next section compares and contrasts the various accelerator +options, since there are multiple ways to perform OpenMP threading, +run on GPUs, and run on Intel Xeon Phi coprocessors.

+

All 3 of these packages accelerate a LAMMPS calculation using NVIDIA +hardware, but they do it in different ways.

+

As a consequence, for a particular simulation on specific hardware, +one package may be faster than the other. We give guidelines below, +but the best way to determine which package is faster for your input +script is to try both of them on your machine. See the benchmarking +section below for examples where this has been done.

+

Guidelines for using each package optimally:

+
    +
  • The GPU package allows you to assign multiple CPUs (cores) to a single +GPU (a common configuration for “hybrid” nodes that contain multicore +CPU(s) and GPU(s)) and works effectively in this mode.
  • +
  • The GPU package moves per-atom data (coordinates, forces) +back-and-forth between the CPU and GPU every timestep. The +KOKKOS/CUDA package only does this on timesteps when a CPU calculation +is required (e.g. to invoke a fix or compute that is non-GPU-ized). +Hence, if you can formulate your input script to only use GPU-ized +fixes and computes, and avoid doing I/O too often (thermo output, dump +file snapshots, restart files), then the data transfer cost of the +KOKKOS/CUDA package can be very low, causing it to run faster than the +GPU package.
  • +
  • The GPU package is often faster than the KOKKOS/CUDA package, if the +number of atoms per GPU is smaller. The crossover point, in terms of +atoms/GPU at which the KOKKOS/CUDA package becomes faster depends +strongly on the pair style. For example, for a simple Lennard Jones +system the crossover (in single precision) is often about 50K-100K +atoms per GPU. When performing double precision calculations the +crossover point can be significantly smaller.
  • +
  • Both packages compute bonded interactions (bonds, angles, etc) on the +CPU. If the GPU package is running with several MPI processes +assigned to one GPU, the cost of computing the bonded interactions is +spread across more CPUs and hence the GPU package can run faster.
  • +
  • When using the GPU package with multiple CPUs assigned to one GPU, its +performance depends to some extent on high bandwidth between the CPUs +and the GPU. Hence its performance is affected if full 16 PCIe lanes +are not available for each GPU. In HPC environments this can be the +case if S2050/70 servers are used, where two devices generally share +one PCIe 2.0 16x slot. Also many multi-GPU mainboards do not provide +full 16 lanes to each of the PCIe 2.0 16x slots.
  • +
+

Differences between the two packages:

+
    +
  • The GPU package accelerates only pair force, neighbor list, and PPPM +calculations.
  • +
  • The GPU package requires neighbor lists to be built on the CPU when using +exclusion lists, hybrid pair styles, or a triclinic simulation box.
  • +
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_commands.html lammps-17Jan18/doc/html/Section_commands.html --- lammps-23Oct17/doc/html/Section_commands.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_commands.html 2018-01-17 12:46:20.669442316 -0700 @@ -0,0 +1,1734 @@ + + + + + + + + + + + 3. Commands — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

3. Commands

+

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

+ +
+

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, +the command is assumed to continue on the next line. The next line is +concatenated to the previous line by removing the “&” character and +line break. This allows long commands to be continued across two or +more lines. See the discussion of triple quotes in (6) for how to +continue a command across multiple line without using “&” characters.

+

(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”.

+

How the variable is converted to a text string depends on what style +of variable it is; see the variable doc page for details. +It can be a variable that stores multiple text strings, and return one +of them. The returned text string can be multiple “words” (space +separated) which will then be interpreted as multiple arguments in the +input command. The variable can also store a numeric formula which +will be evaluated and its numeric result returned as a string.

+

As a special case, if the $ is followed by parenthesis, then the text +inside the parenthesis is treated as an “immediate” variable and +evaluated as an equal-style variable. This is a way +to use numeric formulas in an input script without having to assign +them to variable names. For example, these 3 input script lines:

+
variable X equal (xlo+xhi)/2+sqrt(v_area)
+region 1 block $X 2 INF INF EDGE EDGE
+variable X delete
+
+
+

can be replaced by

+
region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE
+
+
+

so that you do not have to define (or discard) a temporary variable X.

+

Note that neither the curly-bracket or immediate form of variables can +contain nested $ characters for other variables to substitute for. +Thus you cannot do this:

+
variable        a equal 2
+variable        b2 equal 4
+print           "B2 = ${b$a}"
+
+
+

Nor can you specify this $($x-1.0) for an immediate variable, but +you could use $(v_x-1.0), since the latter is valid syntax for an +equal-style variable.

+

See the variable command for more details of how +strings are assigned to variables and evaluated, and how they can be +used 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 either single or double or triple quotes. A +long single argument enclosed in single or double quotes can span +multiple lines if the “&” character is used, as described above. When +the lines are concatenated together (and the “&” characters and line +breaks removed), the text will become a single line. If you want +multiple lines of an argument to retain their line breaks, the text +can be enclosed in triple quotes, in which case “&” characters are not +needed. For example:

+
print "Volume = $v"
+print 'Volume = $v'
+if "${steps} > 1000" then quit
+variable a string "red green blue &
+                   purple orange cyan"
+print """
+System volume = $v
+System temperature = $t
+"""
+
+
+

In each case, the single, double, or triple quotes are removed when +the single argument they enclose is stored internally.

+

See the dump modify format, print, +if, and python commands for examples.

+

A “#” or “$” character that is between quotes will not be treated as a +comment indicator in (2) or substituted for as a variable in (3).

+
+

Note

+

If the argument is itself a command that requires a quoted +argument (e.g. using a print command as part of an +if or run every command), then single, double, or +triple quotes can be nested in the usual manner. See the doc pages +for those commands for examples. Only one of level of nesting is +allowed, but that should be sufficient for most use cases.

+
+
+
+
+

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 +Section 7, and animated on the LAMMPS WWW Site.

+

A LAMMPS input script typically has 4 parts:

+
    +
  1. Initialization
  2. +
  3. Atom definition
  4. +
  5. Settings
  6. +
  7. Run a simulation
  8. +
+

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
  2. +
+

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.

+
    +
  1. Atom definition
  2. +
+

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.

+
    +
  1. Settings
  2. +
+

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.

+
    +
  1. Run a simulation
  2. +
+

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 core LAMMPS commands, grouped by category. +The next section lists all commands alphabetically. The +next section also includes (long) lists of style options for entries +that appear in the following categories as a single command (fix, +compute, pair, etc). Commands that are added by user packages are not +included in the categories here, but they are in the next section.

+

Initialization:

+

newton, +package, +processors, +suffix, +units

+

Setup simulation box:

+

boundary, +box, +change_box, +create_box, +dimension, +lattice, +region

+

Setup atoms:

+

atom_modify, +atom_style, +balance, +create_atoms, +create_bonds, +delete_atoms, +delete_bonds, +displace_atoms, +group, +mass, +molecule, +read_data, +read_dump, +read_restart, +replicate, +set, +velocity

+

Force fields:

+

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

+

Settings:

+

comm_modify, +comm_style, +info, +min_modify, +min_style, +neigh_modify, +neighbor, +partition, +reset_timestep, +run_style, +timer, +timestep

+

Operations within timestepping (fixes) and diagnostics (computes):

+

compute, +compute_modify, +fix, +fix_modify, +uncompute, +unfix

+

Output:

+

dump image, +dump movie, +dump, +dump_modify, +restart, +thermo, +thermo_modify, +thermo_style, +undump, +write_coeff, +write_data, +write_dump, +write_restart

+

Actions:

+

minimize, +neb, +prd, +rerun, +run, +tad, +temper

+

Input script control:

+

clear, +echo, +if, +include, +jump, +label, +log, +next, +print, +python, +quit, +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_coeffangle_styleatom_modifyatom_stylebalancebond_coeff
bond_stylebond_writeboundaryboxchange_boxclear
comm_modifycomm_stylecomputecompute_modifycreate_atomscreate_bonds
create_boxdelete_atomsdelete_bondsdielectricdihedral_coeffdihedral_style
dimensiondisplace_atomsdumpdump imagedump_modifydump movie
echofixfix_modifygroupifinfo
improper_coeffimproper_styleincludejumpkspace_modifykspace_style
labellatticelogmassminimizemin_modify
min_stylemoleculenebneigh_modifyneighbornewton
nextpackagepair_coeffpair_modifypair_stylepair_write
partitionprdprintprocessorspythonquit
read_dataread_dumpread_restartregionreplicatererun
reset_timesteprestartrunrun_stylesetshell
special_bondssuffixtadtemperthermothermo_modify
thermo_styletimertimestepuncomputeundumpunfix
unitsvariablevelocitywrite_coeffwrite_datawrite_dump
write_restart     
+

These are additional commands in USER packages, which can be used if +LAMMPS is built with the appropriate package.

+ +++++ + + + + + + + + + + + + + + +
dump netcdfdump netcdf/mpiiodump vtk
group2ndxndx2grouptemper/grem
temper/npt  
+
+
+
+

3.6. Fix styles

+

See the fix command for one-line descriptions of each style +or click on the style itself for a full description. Some of the +styles have accelerated versions, which can be used if LAMMPS is built +with the appropriate accelerated package. +This is indicated by additional letters in parenthesis: g = GPU, i = +USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.

+ ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
adaptaddforceappend/atomsatom/swapaveforceave/atomave/chunkave/correlate
ave/histoave/histo/weightave/timebalancebond/breakbond/createbond/swapbox/relax
cmapcontrollerdeform (k)depositdragdt/resetefieldehex
enforce2devaporateexternalfreezegcmcgldgravity (o)halt
heatindentlattelangevin (k)lineforcemomentum (k)movemscg
msstnebnph (ko)nphug (o)nph/asphere (o)nph/bodynph/sphere (o)npt (kio)
npt/asphere (o)npt/bodynpt/sphere (o)nve (kio)nve/asphere (i)nve/asphere/noforcenve/bodynve/limit
nve/linenve/noforcenve/sphere (o)nve/trinvt (iko)nvt/asphere (o)nvt/bodynvt/sllod (io)
nvt/sphere (o)onewayorient/bccorient/fccplaneforcepoemspourpress/berendsen
printproperty/atom (k)python/invokepython/moveqeq/comb (o)qeq/dynamicqeq/fireqeq/point
qeq/shieldedqeq/slaterrattlereax/bondsrecenterrestrainrigid (o)rigid/nph (o)
rigid/npt (o)rigid/nve (o)rigid/nvt (o)rigid/small (o)rigid/small/nphrigid/small/nptrigid/small/nverigid/small/nvt
setforce (k)shakespringspring/chunkspring/rgspring/selfsrdstore/force
store/statetemp/berendsentemp/csldtemp/csvrtemp/rescaletfmcthermal/conductivitytmd
ttmtune/kspacevectorviscosityviscouswall/colloidwall/granwall/gran/region
wall/harmonicwall/lj1043wall/lj126wall/lj93 (k)wall/pistonwall/reflect (k)wall/regionwall/srd
+

These are additional fix styles in USER packages, which can be used if +LAMMPS is built with the appropriate package.

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
adapt/fepaddtorqueatcave/correlate/longcolvarsdpd/energy (k)
drudedrude/transform/directdrude/transform/reverseedpd/sourceeos/cveos/table
eos/table/rx (k)filter/corotateflow/gaussglegremimd
ipilangevin/drudelangevin/efflb/fluidlb/momentumlb/pc
lb/rigid/pc/spherelb/viscousmesomanifoldforcemeso/stationarymvv/dpd
mvv/edpdmvv/tdpdnve/dotnve/dotc/langevinnve/manifold/rattlenvk
nvt/manifold/rattlenph/effnpt/effnve/effnvt/effnvt/sllod/eff
npt/uefnvt/uefphononpimdqbmsstqeq/reax (ko)
qmmmqtbreax/c/bonds (k)reax/c/species (k)rhokrx (k)
saed/vtkshardlow (k)smdsmd/adjust/dtsmd/integrate/tlsphsmd/integrate/ulsph
smd/move/triangulated/surfacesmd/setvelsmd/wall/surfacetdpd/sourcetemp/rescale/effti/spring
ttm/modwall/eeswall/region/ees   
+
+
+
+

3.7. Compute styles

+

See the compute command for one-line descriptions of +each style or click on the style itself for a full description. Some +of the styles have accelerated versions, which can be used if LAMMPS +is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = +KOKKOS, o = USER-OMP, t = OPT.

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
aggregate/atomangleangle/localangmom/chunkbody/localbond
bond/localcentro/atomchunk/atomcluster/atomcna/atomcom
com/chunkcontact/atomcoord/atomdamage/atomdihedraldihedral/local
dilatation/atomdipole/chunkdisplace/atomerotate/asphereerotate/rigiderotate/sphere
erotate/sphere/atomevent/displacefragment/atomglobal/atomgroup/groupgyration
gyration/chunkheat/fluxhexorder/atomimproperimproper/localinertia/chunk
keke/atomke/rigidmsdmsd/chunkmsd/nongauss
omega/chunkorientorder/atompairpair/localpepe/atom
plasticity/atompressureproperty/atomproperty/localproperty/chunkrdf
reducereduce/regionrigid/localslicesna/atomsnad/atom
snav/atomstress/atomtemp (k)temp/aspheretemp/bodytemp/chunk
temp/comtemp/deformtemp/partialtemp/profiletemp/ramptemp/region
temp/spheretitorque/chunkvacfvcm/chunkvoronoi/atom
+

These are additional compute styles in USER packages, which can be +used if LAMMPS is built with the appropriate package.

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ackland/atombasal/atomcnp/atomdpddpd/atomedpd/temp/atom
fepforce/tallyheat/flux/tallyke/effke/atom/effmeso/e/atom
meso/rho/atommeso/t/atompe/tallype/mol/tallypressure/uefsaed
smd/contact/radiussmd/damagesmd/hourglass/errorsmd/internal/energysmd/plastic/strainsmd/plastic/strain/rate
smd/rhosmd/tlsph/defgradsmd/tlsph/dtsmd/tlsph/num/neighssmd/tlsph/shapesmd/tlsph/strain
smd/tlsph/strain/ratesmd/tlsph/stresssmd/triangle/mesh/verticessmd/ulsph/num/neighssmd/ulsph/strainsmd/ulsph/strain/rate
smd/ulsph/stresssmd/volstress/tallytdpd/cc/atomtemp/drudetemp/eff
temp/deform/efftemp/region/efftemp/rotatetemp/uefxrd 
+
+
+
+

3.8. Pair_style potentials

+

See the pair_style command for an overview of pair +potentials. Click on the style itself for a full description. Many +of the styles have accelerated versions, which can be used if LAMMPS +is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = +KOKKOS, o = USER-OMP, t = OPT.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nonezerohybridhybrid/overlay (k)
adp (o)airebo (oi)airebo/morse (oi)beck (go)
bodybopborn (go)born/coul/dsf
born/coul/dsf/csborn/coul/long (go)born/coul/long/csborn/coul/msm (o)
born/coul/wolf (go)born/coul/wolf/csbrownian (o)brownian/poly (o)
buck (giko)buck/coul/cut (giko)buck/coul/long (giko)buck/coul/long/cs
buck/coul/msm (o)buck/long/coul/long (o)colloid (go)comb (o)
comb3coul/cut (gko)coul/debye (gko)coul/dsf (gko)
coul/long (gko)coul/long/cscoul/msmcoul/streitz
coul/wolf (ko)coul/wolf/csdpd (gio)dpd/tstat (go)
dsmceam (gikot)eam/alloy (gikot)eam/fs (gikot)
eim (o)gauss (go)gayberne (gio)gran/hertz/history (o)
gran/hooke (o)gran/hooke/history (o)gwgw/zbl
hbond/dreiding/lj (o)hbond/dreiding/morse (o)kimlcbop
line/ljlj/charmm/coul/charmm (iko)lj/charmm/coul/charmm/implicit (ko)lj/charmm/coul/long (giko)
lj/charmm/coul/msmlj/charmmfsw/coul/charmmfshlj/charmmfsw/coul/longlj/class2 (gko)
lj/class2/coul/cut (ko)lj/class2/coul/long (gko)lj/cubic (go)lj/cut (gikot)
lj/cut/coul/cut (gko)lj/cut/coul/debye (gko)lj/cut/coul/dsf (gko)lj/cut/coul/long (gikot)
lj/cut/coul/long/cslj/cut/coul/msm (go)lj/cut/dipole/cut (go)lj/cut/dipole/long
lj/cut/tip4p/cut (o)lj/cut/tip4p/long (ot)lj/expand (gko)lj/gromacs (gko)
lj/gromacs/coul/gromacs (ko)lj/long/coul/long (io)lj/long/dipole/longlj/long/tip4p/long
lj/smooth (o)lj/smooth/linear (o)lj96/cut (go)lubricate (o)
lubricate/poly (o)lubricateUlubricateU/polymeam
mie/cut (o)morse (gkot)nb3b/harmonic (o)nm/cut (o)
nm/cut/coul/cut (o)nm/cut/coul/long (o)peri/epsperi/lps (o)
peri/pmb (o)peri/vespolymorphicpython
reaxrebo (oi)resquared (go)snap (k)
soft (go)sw (giko)table (gko)tersoff (giko)
tersoff/mod (gko)tersoff/mod/c (o)tersoff/zbl (gko)tip4p/cut (o)
tip4p/long (o)tri/ljvashishta (ko)vashishta/table (o)
yukawa (gok)yukawa/colloid (go)zbl (gok) 
+

These are additional pair styles in USER packages, which can be used +if LAMMPS is built with the appropriate package.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
agni (o)awpmd/cutbuck/mdfcoul/cut/soft (o)
coul/diel (o)coul/long/soft (o)dpd/fdtdpd/fdt/energy (k)
eam/cd (o)edip (o)edip/multiedpd
eff/cutexp6/rx (k)extepgauss/cut
kolmogorov/crespi/zlennard/mdflistlj/charmm/coul/long/soft (o)
lj/cut/coul/cut/soft (o)lj/cut/coul/long/soft (o)lj/cut/dipole/sf (go)lj/cut/soft (o)
lj/cut/thole/long (o)lj/cut/tip4p/long/soft (o)lj/mdflj/sdk (gko)
lj/sdk/coul/long (go)lj/sdk/coul/msm (o)mdpdmdpd/rhosum
meam/cmeam/spline (o)meam/sw/splinemgpt
mombmorse/smooth/linearmorse/softmulti/lucy
multi/lucy/rx (k)oxdna/coaxstkoxdna/excvoxdna/hbond
oxdna/stkoxdna/xstkoxdna2/coaxstkoxdna2/dh
oxdna2/excvoxdna2/stkquipreax/c (ko)
smd/hertzsmd/tlsphsmd/triangulated/surfacesmd/ulsph
smtbqsnap (k)sph/heatconductionsph/idealgas
sph/ljsph/rhosumsph/taitwatersph/taitwater/morris
srptable/rx (k)tdpdtersoff/table (o)
tholetip4p/long/soft (o)  
+
+
+
+

3.9. Bond_style potentials

+

See the bond_style command for an overview of bond +potentials. Click on the style itself for a full description. Some +of the styles have accelerated versions, which can be used if LAMMPS +is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = +KOKKOS, o = USER-OMP, t = OPT.

+ ++++++ + + + + + + + + + + + + + + + + + +
nonezerohybridclass2 (ko)
fene (iko)fene/expand (o)gromos (o)harmonic (ko)
morse (o)nonlinear (o)quartic (o)table (o)
+

These are additional bond styles in USER packages, which can be used +if LAMMPS is built with the appropriate package.

+ ++++++ + + + + + + + +
harmonic/shift (o)harmonic/shift/cut (o)oxdna/feneoxdna2/fene
+
+
+
+

3.10. Angle_style potentials

+

See the angle_style command for an overview of +angle potentials. Click on the style itself for a full description. +Some of the styles have accelerated versions, which can be used if +LAMMPS is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = +USER-OMP, t = OPT.

+ ++++++ + + + + + + + + + + + + + + + + + +
nonezerohybridcharmm (ko)
class2 (ko)cosine (o)cosine/delta (o)cosine/periodic (o)
cosine/squared (o)harmonic (iko)table (o) 
+

These are additional angle styles in USER packages, which can be used +if LAMMPS is built with the appropriate package.

+ ++++++ + + + + + + + + + + + + +
cosine/shift (o)cosine/shift/exp (o)dipole (o)fourier (o)
fourier/simple (o)quartic (o)sdk 
+
+
+
+

3.11. Dihedral_style potentials

+

See the dihedral_style command for an overview +of dihedral potentials. Click on the style itself for a full +description. Some of the styles have accelerated versions, which can +be used if LAMMPS is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = +USER-OMP, t = OPT.

+ ++++++ + + + + + + + + + + + + + + + + + +
nonezerohybridcharmm (iko)
charmmfswclass2 (ko)harmonic (io)helix (o)
multi/harmonic (o)opls (iko)  
+

These are additional dihedral styles in USER packages, which can be +used if LAMMPS is built with the appropriate package.

+ ++++++ + + + + + + + + + + + + +
cosine/shift/exp (o)fourier (io)nharmonic (o)quadratic (o)
spherical (o)table (o)  
+
+
+
+

3.12. Improper_style potentials

+

See the improper_style command for an overview +of improper potentials. Click on the style itself for a full +description. Some of the styles have accelerated versions, which can +be used if LAMMPS is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = +USER-OMP, t = OPT.

+ ++++++ + + + + + + + + + + + + +
nonezerohybridclass2 (ko)
cvff (io)harmonic (iko)umbrella (o) 
+

These are additional improper styles in USER packages, which can be +used if LAMMPS is built with the appropriate package.

+ ++++++ + + + + + + + +
cossq (o)distancefourier (o)ring (o)
+
+
+
+

3.13. Kspace solvers

+

See the kspace_style command for an overview of +Kspace solvers. Click on the style itself for a full description. +Some of the styles have accelerated versions, which can be used if +LAMMPS is built with the appropriate accelerated package. This is indicated by additional +letters in parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = +USER-OMP, t = OPT.

+ ++++++ + + + + + + + + + + + + + + + + + +
ewald (o)ewald/dispmsm (o)msm/cg (o)
pppm (gok)pppm/cg (o)pppm/disp (i)pppm/disp/tip4p
pppm/staggerpppm/tip4p (o)  
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_errors.html lammps-17Jan18/doc/html/Section_errors.html --- lammps-23Oct17/doc/html/Section_errors.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_errors.html 2018-01-17 12:46:20.670442323 -0700 @@ -0,0 +1,6804 @@ + + + + + + + + + + + 12. Errors — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

12. Errors

+

This section describes the errors you can encounter when using LAMMPS, +either conceptually, or as printed out by the program.

+ +
+

12.1. Common problems

+

If two LAMMPS runs do not produce the exact same answer on different +machines or different numbers of processors, this is typically not a +bug. In theory you should get identical answers on any number of +processors and on any machine. In practice, numerical round-off can +cause slight differences and eventual divergence of molecular dynamics +phase space trajectories within a few 100s or few 1000s of timesteps. +However, the statistical properties of the two runs (e.g. average +energy or temperature) should still be the same.

+

If the velocity command is used to set initial atom +velocities, a particular atom can be assigned a different velocity +when the problem is run on a different number of processors or on +different machines. If this happens, the phase space trajectories of +the two simulations will rapidly diverge. See the discussion of the +loop option in the velocity command for details and +options that avoid this issue.

+

Similarly, the create_atoms command generates a +lattice of atoms. For the same physical system, the ordering and +numbering of atoms by atom ID may be different depending on the number +of processors.

+

Some commands use random number generators which may be setup to +produce different random number streams on each processor and hence +will produce different effects when run on different numbers of +processors. A commonly-used example is the fix langevin command for thermostatting.

+

A LAMMPS simulation typically has two stages, setup and run. Most +LAMMPS errors are detected at setup time; others like a bond +stretching too far may not occur until the middle of a run.

+

LAMMPS tries to flag errors and print informative error messages so +you can fix the problem. For most errors it will also print the last +input script command that it was processing. Of course, LAMMPS cannot +figure out your physics or numerical mistakes, like choosing too big a +timestep, specifying erroneous force field coefficients, or putting 2 +atoms on top of each other! If you run into errors that LAMMPS +doesn’t catch that you think it should flag, please send an email to +the developers.

+

If you get an error message about an invalid command in your input +script, you can determine what command is causing the problem by +looking in the log.lammps file or using the echo command +to see it on the screen. If you get an error like “Invalid … +style”, with … being fix, compute, pair, etc, it means that you +mistyped the style name or that the command is part of an optional +package which was not compiled into your executable. The list of +available styles in your executable can be listed by using the -h command-line argument. The installation +and compilation of optional packages is explained in the installation instructions.

+

For a given command, LAMMPS expects certain arguments in a specified +order. If you mess this up, LAMMPS will often flag the error, but it +may also simply read a bogus argument and assign a value that is +valid, but not what you wanted. E.g. trying to read the string “abc” +as an integer value of 0. Careful reading of the associated doc page +for the command should allow you to fix these problems. In most cases, +where LAMMPS expects to read a number, either integer or floating point, +it performs a stringent test on whether the provided input actually +is an integer or floating-point number, respectively, and reject the +input with an error message (for instance, when an integer is required, +but a floating-point number 1.0 is provided):

+
ERROR: Expected integer parameter in input script or data file
+
+
+

Some commands allow for using variable references in place of numeric +constants so that the value can be evaluated and may change over the +course of a run. This is typically done with the syntax v_name for a +parameter, where name is the name of the variable. On the other hand, +immediate variable expansion with the syntax $name is performed while +reading the input and before parsing commands,

+
+

Note

+

Using a variable reference (i.e. v_name) is only allowed if +the documentation of the corresponding command explicitly says it is.

+
+

Generally, LAMMPS will print a message to the screen and logfile and +exit gracefully when it encounters a fatal error. Sometimes it will +print a WARNING to the screen and logfile and continue on; you can +decide if the WARNING is important or not. A WARNING message that is +generated in the middle of a run is only printed to the screen, not to +the logfile, to avoid cluttering up thermodynamic output. If LAMMPS +crashes or hangs without spitting out an error message first then it +could be a bug (see this section) or one of the following +cases:

+

LAMMPS runs in the available memory a processor allows to be +allocated. Most reasonable MD runs are compute limited, not memory +limited, so this shouldn’t be a bottleneck on most platforms. Almost +all large memory allocations in the code are done via C-style malloc’s +which will generate an error message if you run out of memory. +Smaller chunks of memory are allocated via C++ “new” statements. If +you are unlucky you could run out of memory just when one of these +small requests is made, in which case the code will crash or hang (in +parallel), since LAMMPS doesn’t trap on those errors.

+

Illegal arithmetic can cause LAMMPS to run slow or crash. This is +typically due to invalid physics and numerics that your simulation is +computing. If you see wild thermodynamic values or NaN values in your +LAMMPS output, something is wrong with your simulation. If you +suspect this is happening, it is a good idea to print out +thermodynamic info frequently (e.g. every timestep) via the +thermo so you can monitor what is happening. +Visualizing the atom movement is also a good idea to insure your model +is behaving as you expect.

+

In parallel, one way LAMMPS can hang is due to how different MPI +implementations handle buffering of messages. If the code hangs +without an error message, it may be that you need to specify an MPI +setting or two (usually via an environment variable) to enable +buffering or boost the sizes of messages that can be buffered.

+
+
+
+

12.2. Reporting bugs

+

If you are confident that you have found a bug in LAMMPS, follow these +steps.

+

Check the New features and bug fixes section of the LAMMPS WWW site to see if the bug has already been reported or fixed or the +Unfixed bug to see if a fix is +pending.

+

Check the mailing list +to see if it has been discussed before.

+

If not, send an email to the mailing list describing the problem with +any ideas you have as to what is causing it or where in the code the +problem might be. The developers will ask for more info if needed, +such as an input script or data files.

+

The most useful thing you can do to help us fix the bug is to isolate +the problem. Run it on the smallest number of atoms and fewest number +of processors and with the simplest input script that reproduces the +bug and try to identify what command or combination of commands is +causing the problem.

+

As a last resort, you can send an email directly to the +developers.

+
+
+
+

12.3. Error & warning messages

+

These are two alphabetic lists of the ERROR and +WARNING messages LAMMPS prints out and the reason why. If the +explanation here is not sufficient, the documentation for the +offending command may help. +Error and warning messages also list the source file and line number +where the error was generated. For example, this message

+

ERROR: Illegal velocity command (velocity.cpp:78)

+

means that line #78 in the file src/velocity.cpp generated the error. +Looking in the source code may help you figure out what went wrong.

+

Note that error messages from user-contributed packages are not listed here. If such an +error occurs and is not self-explanatory, you’ll need to look in the +source code or contact the author of the package.

+
+
+

12.4. Errors:

+
+
1-3 bond count is inconsistent
+
An inconsistency was detected when computing the number of 1-3 +neighbors for each atom. This likely means something is wrong with +the bond topologies you have defined.
+
1-4 bond count is inconsistent
+
An inconsistency was detected when computing the number of 1-4 +neighbors for each atom. This likely means something is wrong with +the bond topologies you have defined.
+
Accelerator sharing is not currently supported on system
+
Multiple MPI processes cannot share the accelerator on your +system. For NVIDIA GPUs, see the nvidia-smi command to change this +setting.
+
All angle coeffs are not set
+
All angle coefficients must be set in the data file or by the +angle_coeff command before running a simulation.
+
All atom IDs = 0 but atom_modify id = yes
+
Self-explanatory.
+
All atoms of a swapped type must have same charge.
+
Self-explanatory.
+
All atoms of a swapped type must have the same charge.
+
Self-explanatory.
+
All bond coeffs are not set
+
All bond coefficients must be set in the data file or by the +bond_coeff command before running a simulation.
+
All dihedral coeffs are not set
+
All dihedral coefficients must be set in the data file or by the +dihedral_coeff command before running a simulation.
+
All improper coeffs are not set
+
All improper coefficients must be set in the data file or by the +improper_coeff command before running a simulation.
+
All masses are not set
+
For atom styles that define masses for each atom type, all masses must +be set in the data file or by the mass command before running a +simulation. They must also be set before using the velocity +command.
+
All mol IDs should be set for fix gcmc group atoms
+
The molecule flag is on, yet not all molecule ids in the fix group +have been set to non-zero positive values by the user. This is an +error since all atoms in the fix gcmc group are eligible for deletion, +rotation, and translation and therefore must have valid molecule ids.
+
All pair coeffs are not set
+
All pair coefficients must be set in the data file or by the +pair_coeff command before running a simulation.
+
All read_dump x,y,z fields must be specified for scaled, triclinic coords
+
For triclinic boxes and scaled coordinates you must specify all 3 of +the x,y,z fields, else LAMMPS cannot reconstruct the unscaled +coordinates.
+
All universe/uloop variables must have same # of values
+
Self-explanatory.
+
All variables in next command must be same style
+
Self-explanatory.
+
Angle atom missing in delete_bonds
+
The delete_bonds command cannot find one or more atoms in a particular +angle on a particular processor. The pairwise cutoff is too short or +the atoms are too far apart to make a valid angle.
+
Angle atom missing in set command
+
The set command cannot find one or more atoms in a particular angle on +a particular processor. The pairwise cutoff is too short or the atoms +are too far apart to make a valid angle.
+
Angle atoms %d %d %d missing on proc %d at step %ld
+
One or more of 3 atoms needed to compute a particular angle are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the angle has blown apart and an atom is +too far away.
+
Angle atoms missing on proc %d at step %ld
+
One or more of 3 atoms needed to compute a particular angle are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the angle has blown apart and an atom is +too far away.
+
Angle coeff for hybrid has invalid style
+
Angle style hybrid uses another angle style as one of its +coefficients. The angle style used in the angle_coeff command or read +from a restart file is not recognized.
+
Angle coeffs are not set
+
No angle coefficients have been assigned in the data file or via the +angle_coeff command.
+
Angle extent > half of periodic box length
+
This error was detected by the neigh_modify check yes setting. It is +an error because the angle atoms are so far apart it is ambiguous how +it should be defined.
+
Angle potential must be defined for SHAKE
+
When shaking angles, an angle_style potential must be used.
+
Angle style hybrid cannot have hybrid as an argument
+
Self-explanatory.
+
Angle style hybrid cannot have none as an argument
+
Self-explanatory.
+
Angle style hybrid cannot use same angle style twice
+
Self-explanatory.
+
Angle table must range from 0 to 180 degrees
+
Self-explanatory.
+
Angle table parameters did not set N
+
List of angle table parameters must include N setting.
+
Angle_coeff command before angle_style is defined
+
Coefficients cannot be set in the data file or via the angle_coeff +command until an angle_style has been assigned.
+
Angle_coeff command before simulation box is defined
+
The angle_coeff command cannot be used before a read_data, +read_restart, or create_box command.
+
Angle_coeff command when no angles allowed
+
The chosen atom style does not allow for angles to be defined.
+
Angle_style command when no angles allowed
+
The chosen atom style does not allow for angles to be defined.
+
Angles assigned incorrectly
+
Angles read in from the data file were not assigned correctly to +atoms. This means there is something invalid about the topology +definitions.
+
Angles defined but no angle types
+
The data file header lists angles but no angle types.
+
Append boundary must be shrink/minimum
+
The boundary style of the face where atoms are added +must be of type m (shrink/minimum).
+
Arccos of invalid value in variable formula
+
Argument of arccos() must be between -1 and 1.
+
Arcsin of invalid value in variable formula
+
Argument of arcsin() must be between -1 and 1.
+
Assigning body parameters to non-body atom
+
Self-explanatory.
+
Assigning ellipsoid parameters to non-ellipsoid atom
+
Self-explanatory.
+
Assigning line parameters to non-line atom
+
Self-explanatory.
+
Assigning quat to non-body atom
+
Self-explanatory.
+
Assigning tri parameters to non-tri atom
+
Self-explanatory.
+
At least one atom of each swapped type must be present to define charges.
+
Self-explanatory.
+
Atom IDs must be consecutive for velocity create loop all
+
Self-explanatory.
+
Atom IDs must be used for molecular systems
+
Atom IDs are used to identify and find partner atoms in bonds.
+
Atom count changed in fix neb
+
This is not allowed in a NEB calculation.
+
Atom count is inconsistent, cannot write data file
+
The sum of atoms across processors does not equal the global number +of atoms. Probably some atoms have been lost.
+
Atom count is inconsistent, cannot write restart file
+
Sum of atoms across processors does not equal initial total count. +This is probably because you have lost some atoms.
+
Atom in too many rigid bodies - boost MAXBODY
+
Fix poems has a parameter MAXBODY (in fix_poems.cpp) which determines +the maximum number of rigid bodies a single atom can belong to (i.e. a +multibody joint). The bodies you have defined exceed this limit.
+
Atom sort did not operate correctly
+
This is an internal LAMMPS error. Please report it to the +developers.
+
Atom sorting has bin size = 0.0
+
The neighbor cutoff is being used as the bin size, but it is zero. +Thus you must explicitly list a bin size in the atom_modify sort +command or turn off sorting.
+
Atom style hybrid cannot have hybrid as an argument
+
Self-explanatory.
+
Atom style hybrid cannot use same atom style twice
+
Self-explanatory.
+
Atom style template molecule must have atom types
+
The defined molecule(s) does not specify atom types.
+
Atom style was redefined after using fix property/atom
+
This is not allowed.
+
Atom type must be zero in fix gcmc mol command
+
Self-explanatory.
+
Atom vector in equal-style variable formula
+
Atom vectors generate one value per atom which is not allowed +in an equal-style variable.
+
Atom-style variable in equal-style variable formula
+
Atom-style variables generate one value per atom which is not allowed +in an equal-style variable.
+
Atom_modify id command after simulation box is defined
+
The atom_modify id command cannot be used after a read_data, +read_restart, or create_box command.
+
Atom_modify map command after simulation box is defined
+
The atom_modify map command cannot be used after a read_data, +read_restart, or create_box command.
+
Atom_modify sort and first options cannot be used together
+
Self-explanatory.
+
Atom_style command after simulation box is defined
+
The atom_style command cannot be used after a read_data, +read_restart, or create_box command.
+
Atom_style line can only be used in 2d simulations
+
Self-explanatory.
+
Atom_style tri can only be used in 3d simulations
+
Self-explanatory.
+
Atomfile variable could not read values
+
Check the file assigned to the variable.
+
Atomfile variable in equal-style variable formula
+
Self-explanatory.
+
Atomfile-style variable in equal-style variable formula
+
Self-explanatory.
+
Attempt to pop empty stack in fix box/relax
+
Internal LAMMPS error. Please report it to the developers.
+
Attempt to push beyond stack limit in fix box/relax
+
Internal LAMMPS error. Please report it to the developers.
+
Attempting to rescale a 0.0 temperature
+
Cannot rescale a temperature that is already 0.0.
+
Bad FENE bond
+
Two atoms in a FENE bond have become so far apart that the bond cannot +be computed.
+
Bad TIP4P angle type for PPPM/TIP4P
+
Specified angle type is not valid.
+
Bad TIP4P angle type for PPPMDisp/TIP4P
+
Specified angle type is not valid.
+
Bad TIP4P bond type for PPPM/TIP4P
+
Specified bond type is not valid.
+
Bad TIP4P bond type for PPPMDisp/TIP4P
+
Specified bond type is not valid.
+
Bad fix ID in fix append/atoms command
+
The value of the fix_id for keyword spatial must start with ‘f_’.
+
Bad grid of processors
+
The 3d grid of processors defined by the processors command does not +match the number of processors LAMMPS is being run on.
+
Bad kspace_modify kmax/ewald parameter
+
Kspace_modify values for the kmax/ewald keyword must be integers > 0
+
Bad kspace_modify slab parameter
+
Kspace_modify value for the slab/volume keyword must be >= 2.0.
+
Bad matrix inversion in mldivide3
+
This error should not occur unless the matrix is badly formed.
+
Bad principal moments
+
Fix rigid did not compute the principal moments of inertia of a rigid +group of atoms correctly.
+
Bad quadratic solve for particle/line collision
+
This is an internal error. It should normally not occur.
+
Bad quadratic solve for particle/tri collision
+
This is an internal error. It should normally not occur.
+
Bad real space Coulomb cutoff in fix tune/kspace
+
Fix tune/kspace tried to find the optimal real space Coulomb cutoff using +the Newton-Rhaphson method, but found a non-positive or NaN cutoff
+
Balance command before simulation box is defined
+
The balance command cannot be used before a read_data, read_restart, +or create_box command.
+
Balance produced bad splits
+
This should not occur. It means two or more cutting plane locations +are on top of each other or out of order. Report the problem to the +developers.
+
Balance rcb cannot be used with comm_style brick
+
Comm_style tiled must be used instead.
+
Balance shift string is invalid
+
The string can only contain the characters “x”, “y”, or “z”.
+
Bias compute does not calculate a velocity bias
+
The specified compute must compute a bias for temperature.
+
Bias compute does not calculate temperature
+
The specified compute must compute temperature.
+
Bias compute group does not match compute group
+
The specified compute must operate on the same group as the parent +compute.
+
Big particle in fix srd cannot be point particle
+
Big particles must be extended spheriods or ellipsoids.
+
Bigint setting in lmptype.h is invalid
+
Size of bigint is less than size of tagint.
+
Bigint setting in lmptype.h is not compatible
+
Format of bigint stored in restart file is not consistent with LAMMPS +version you are running. See the settings in src/lmptype.h
+
Bitmapped lookup tables require int/float be same size
+
Cannot use pair tables on this machine, because of word sizes. Use +the pair_modify command with table 0 instead.
+
Bitmapped table in file does not match requested table
+
Setting for bitmapped table in pair_coeff command must match table +in file exactly.
+
Bitmapped table is incorrect length in table file
+
Number of table entries is not a correct power of 2.
+
Bond and angle potentials must be defined for TIP4P
+
Cannot use TIP4P pair potential unless bond and angle potentials +are defined.
+
Bond atom missing in box size check
+
The 2nd atoms needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away.
+
Bond atom missing in delete_bonds
+
The delete_bonds command cannot find one or more atoms in a particular +bond on a particular processor. The pairwise cutoff is too short or +the atoms are too far apart to make a valid bond.
+
Bond atom missing in image check
+
The 2nd atom in a particular bond is missing on this processor. +Typically this is because the pairwise cutoff is set too short or the +bond has blown apart and an atom is too far away.
+
Bond atom missing in set command
+
The set command cannot find one or more atoms in a particular bond on +a particular processor. The pairwise cutoff is too short or the atoms +are too far apart to make a valid bond.
+
Bond atoms %d %d missing on proc %d at step %ld
+
The 2nd atom needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away.
+
Bond atoms missing on proc %d at step %ld
+
The 2nd atom needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away.
+
Bond coeff for hybrid has invalid style
+
Bond style hybrid uses another bond style as one of its coefficients. +The bond style used in the bond_coeff command or read from a restart +file is not recognized.
+
Bond coeffs are not set
+
No bond coefficients have been assigned in the data file or via the +bond_coeff command.
+
Bond extent > half of periodic box length
+
This error was detected by the neigh_modify check yes setting. It is +an error because the bond atoms are so far apart it is ambiguous how +it should be defined.
+
Bond potential must be defined for SHAKE
+
Cannot use fix shake unless bond potential is defined.
+
Bond style hybrid cannot have hybrid as an argument
+
Self-explanatory.
+
Bond style hybrid cannot have none as an argument
+
Self-explanatory.
+
Bond style hybrid cannot use same bond style twice
+
Self-explanatory.
+
Bond style quartic cannot be used with 3,4-body interactions
+
No angle, dihedral, or improper styles can be defined when using +bond style quartic.
+
Bond style quartic cannot be used with atom style template
+
This bond style can change the bond topology which is not +allowed with this atom style.
+
Bond style quartic requires special_bonds = 1,1,1
+
This is a restriction of the current bond quartic implementation.
+
Bond table parameters did not set N
+
List of bond table parameters must include N setting.
+
Bond table values are not increasing
+
The values in the tabulated file must be monotonically increasing.
+
BondAngle coeff for hybrid angle has invalid format
+
No “ba” field should appear in data file entry.
+
BondBond coeff for hybrid angle has invalid format
+
No “bb” field should appear in data file entry.
+
Bond_coeff command before bond_style is defined
+
Coefficients cannot be set in the data file or via the bond_coeff +command until an bond_style has been assigned.
+
Bond_coeff command before simulation box is defined
+
The bond_coeff command cannot be used before a read_data, +read_restart, or create_box command.
+
Bond_coeff command when no bonds allowed
+
The chosen atom style does not allow for bonds to be defined.
+
Bond_style command when no bonds allowed
+
The chosen atom style does not allow for bonds to be defined.
+
Bonds assigned incorrectly
+
Bonds read in from the data file were not assigned correctly to atoms. +This means there is something invalid about the topology definitions.
+
Bonds defined but no bond types
+
The data file header lists bonds but no bond types.
+
Both restart files must use % or neither
+
Self-explanatory.
+
Both restart files must use MPI-IO or neither
+
Self-explanatory.
+
Both sides of boundary must be periodic
+
Cannot specify a boundary as periodic only on the lo or hi side. Must +be periodic on both sides.
+
Boundary command after simulation box is defined
+
The boundary command cannot be used after a read_data, read_restart, +or create_box command.
+
Box bounds are invalid
+
The box boundaries specified in the read_data file are invalid. The +lo value must be less than the hi value for all 3 dimensions.
+
Box command after simulation box is defined
+
The box command cannot be used after a read_data, read_restart, or +create_box command.
+
CPU neighbor lists must be used for ellipsoid/sphere mix.
+
When using Gay-Berne or RE-squared pair styles with both ellipsoidal and +spherical particles, the neighbor list must be built on the CPU
+
Can not specify Pxy/Pxz/Pyz in fix box/relax with non-triclinic box
+
Only triclinic boxes can be used with off-diagonal pressure components. +See the region prism command for details.
+
Can not specify Pxy/Pxz/Pyz in fix nvt/npt/nph with non-triclinic box
+
Only triclinic boxes can be used with off-diagonal pressure components. +See the region prism command for details.
+
Can only use -plog with multiple partitions
+
Self-explanatory. See doc page discussion of command-line switches.
+
Can only use -pscreen with multiple partitions
+
Self-explanatory. See doc page discussion of command-line switches.
+
Can only use Kokkos supported regions with Kokkos package
+
Self-explanatory.
+
Can only use NEB with 1-processor replicas
+
This is current restriction for NEB as implemented in LAMMPS.
+
Can only use TAD with 1-processor replicas for NEB
+
This is current restriction for NEB as implemented in LAMMPS.
+
Cannot (yet) do analytic differentiation with pppm/gpu
+
This is a current restriction of this command.
+
Cannot (yet) request ghost atoms with Kokkos half neighbor list
+
This feature is not yet supported.
+
Cannot (yet) use ‘electron’ units with dipoles
+
This feature is not yet supported.
+
Cannot (yet) use Ewald with triclinic box and slab correction
+
This feature is not yet supported.
+
Cannot (yet) use K-space slab correction with compute group/group for triclinic systems
+
This option is not yet supported.
+
Cannot (yet) use MSM with 2d simulation
+
This feature is not yet supported.
+
Cannot (yet) use PPPM with triclinic box and TIP4P
+
This feature is not yet supported.
+
Cannot (yet) use PPPM with triclinic box and kspace_modify diff ad
+
This feature is not yet supported.
+
Cannot (yet) use PPPM with triclinic box and slab correction
+
This feature is not yet supported.
+
Cannot (yet) use kspace slab correction with long-range dipoles and non-neutral systems or per-atom energy
+
This feature is not yet supported.
+
Cannot (yet) use kspace_modify diff ad with compute group/group
+
This option is not yet supported.
+
Cannot (yet) use kspace_style pppm/stagger with triclinic systems
+
This feature is not yet supported.
+
Cannot (yet) use molecular templates with Kokkos
+
Self-explanatory.
+
Cannot (yet) use respa with Kokkos
+
Self-explanatory.
+
Cannot (yet) use rigid bodies with fix deform and Kokkos
+
Self-explanatory.
+
Cannot (yet) use rigid bodies with fix nh and Kokkos
+
Self-explanatory.
+
Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and recompile)
+
Single precision cannot be used with MSM.
+
Cannot add atoms to fix move variable
+
Atoms can not be added afterwards to this fix option.
+
Cannot append atoms to a triclinic box
+
The simulation box must be defined with edges aligned with the +Cartesian axes.
+
Cannot balance in z dimension for 2d simulation
+
Self-explanatory.
+
Cannot change box ortho/triclinic with certain fixes defined
+
This is because those fixes store the shape of the box. You need to +use unfix to discard the fix, change the box, then redefine a new +fix.
+
Cannot change box ortho/triclinic with dumps defined
+
This is because some dumps store the shape of the box. You need to +use undump to discard the dump, change the box, then redefine a new +dump.
+
Cannot change box tilt factors for orthogonal box
+
Cannot use tilt factors unless the simulation box is non-orthogonal.
+
Cannot change box to orthogonal when tilt is non-zero
+
Self-explanatory.
+
Cannot change box z boundary to nonperiodic for a 2d simulation
+
Self-explanatory.
+
Cannot change dump_modify every for dump dcd
+
The frequency of writing dump dcd snapshots cannot be changed.
+
Cannot change dump_modify every for dump xtc
+
The frequency of writing dump xtc snapshots cannot be changed.
+
Cannot change timestep once fix srd is setup
+
This is because various SRD properties depend on the timestep +size.
+
Cannot change timestep with fix pour
+
This is because fix pour pre-computes the time delay for particles to +fall out of the insertion volume due to gravity.
+
Cannot change to comm_style brick from tiled layout
+
Self-explanatory.
+
Cannot change_box after reading restart file with per-atom info
+
This is because the restart file info cannot be migrated with the +atoms. You can get around this by performing a 0-timestep run which +will assign the restart file info to actual atoms.
+
Cannot change_box in xz or yz for 2d simulation
+
Self-explanatory.
+
Cannot change_box in z dimension for 2d simulation
+
Self-explanatory.
+
Cannot clear group all
+
This operation is not allowed.
+
Cannot close restart file - MPI error: %s
+
This error was generated by MPI when reading/writing an MPI-IO restart +file.
+
Cannot compute initial g_ewald_disp
+
LAMMPS failed to compute an initial guess for the PPPM_disp g_ewald_6 +factor that partitions the computation between real space and k-space +for Dispersion interactions.
+
Cannot create an atom map unless atoms have IDs
+
The simulation requires a mapping from global atom IDs to local atoms, +but the atoms that have been defined have no IDs.
+
Cannot create atoms with undefined lattice
+
Must use the lattice command before using the create_atoms +command.
+
Cannot create/grow a vector/array of pointers for %s
+
LAMMPS code is making an illegal call to the templated memory +allocaters, to create a vector or array of pointers.
+
Cannot create_atoms after reading restart file with per-atom info
+
The per-atom info was stored to be used when by a fix that you may +re-define. If you add atoms before re-defining the fix, then there +will not be a correct amount of per-atom info.
+
Cannot create_box after simulation box is defined
+
A simulation box can only be defined once.
+
Cannot currently use pair reax with pair hybrid
+
This is not yet supported.
+
Cannot currently use pppm/gpu with fix balance.
+
Self-explanatory.
+
Cannot delete group all
+
Self-explanatory.
+
Cannot delete group currently used by a compute
+
Self-explanatory.
+
Cannot delete group currently used by a dump
+
Self-explanatory.
+
Cannot delete group currently used by a fix
+
Self-explanatory.
+
Cannot delete group currently used by atom_modify first
+
Self-explanatory.
+
Cannot delete_atoms bond yes for non-molecular systems
+
Self-explanatory.
+
Cannot displace_atoms after reading restart file with per-atom info
+
This is because the restart file info cannot be migrated with the +atoms. You can get around this by performing a 0-timestep run which +will assign the restart file info to actual atoms.
+
Cannot do GCMC on atoms in atom_modify first group
+
This is a restriction due to the way atoms are organized in a list to +enable the atom_modify first command.
+
Cannot do atom/swap on atoms in atom_modify first group
+
This is a restriction due to the way atoms are organized in a list to +enable the atom_modify first command.
+
Cannot dump sort on atom IDs with no atom IDs defined
+
Self-explanatory.
+
Cannot dump sort when multiple dump files are written
+
In this mode, each processor dumps its atoms to a file, so +no sorting is allowed.
+
Cannot embed Python when also extending Python with LAMMPS
+
When running LAMMPS via Python through the LAMMPS library interface +you cannot also user the input script python command.
+
Cannot evaporate atoms in atom_modify first group
+
This is a restriction due to the way atoms are organized in +a list to enable the atom_modify first command.
+
Cannot find create_bonds group ID
+
Self-explanatory.
+
Cannot find delete_bonds group ID
+
Group ID used in the delete_bonds command does not exist.
+
Cannot find specified group ID for core particles
+
Self-explanatory.
+
Cannot find specified group ID for shell particles
+
Self-explanatory.
+
Cannot have both pair_modify shift and tail set to yes
+
These 2 options are contradictory.
+
Cannot intersect groups using a dynamic group
+
This operation is not allowed.
+
Cannot mix molecular and molecule template atom styles
+
Self-explanatory.
+
Cannot open -reorder file
+
Self-explanatory.
+
Cannot open ADP potential file %s
+
The specified ADP potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open AIREBO potential file %s
+
The specified AIREBO potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open BOP potential file %s
+
The specified BOP potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open COMB potential file %s
+
The specified COMB potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open COMB3 lib.comb3 file
+
The COMB3 library file cannot be opened. Check that the path and name +are correct.
+
Cannot open COMB3 potential file %s
+
The specified COMB3 potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open EAM potential file %s
+
The specified EAM potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open EIM potential file %s
+
The specified EIM potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open LCBOP potential file %s
+
The specified LCBOP potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open MEAM potential file %s
+
The specified MEAM potential file cannot be opened. Check that the +path and name are correct.
+
Cannot open SNAP coefficient file %s
+
The specified SNAP coefficient file cannot be opened. Check that the +path and name are correct.
+
Cannot open SNAP parameter file %s
+
The specified SNAP parameter file cannot be opened. Check that the +path and name are correct.
+
Cannot open Stillinger-Weber potential file %s
+
The specified SW potential file cannot be opened. Check that the path +and name are correct.
+
Cannot open Tersoff potential file %s
+
The specified potential file cannot be opened. Check that the path +and name are correct.
+
Cannot open Vashishta potential file %s
+
The specified Vashishta potential file cannot be opened. Check that the path +and name are correct.
+
Cannot open balance output file
+
Self-explanatory.
+
Cannot open coul/streitz potential file %s
+
The specified coul/streitz potential file cannot be opened. Check +that the path and name are correct.
+
Cannot open custom file
+
Self-explanatory.
+
Cannot open data file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open dir to search for restart file
+
Using a “*” in the name of the restart file will open the current +directory to search for matching file names.
+
Cannot open dump file
+
Self-explanatory.
+
Cannot open dump file %s
+
The output file for the dump command cannot be opened. Check that the +path and name are correct.
+
Cannot open file %s
+
The specified file cannot be opened. Check that the path and name are +correct. If the file is a compressed file, also check that the gzip +executable can be found and run.
+
Cannot open file variable file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix ave/chunk file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix ave/correlate file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix ave/histo file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix ave/spatial file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix ave/time file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix balance output file
+
Self-explanatory.
+
Cannot open fix poems file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix print file %s
+
The output file generated by the fix print command cannot be opened
+
Cannot open fix qeq parameter file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix qeq/comb file %s
+
The output file for the fix qeq/combs command cannot be opened. +Check that the path and name are correct.
+
Cannot open fix reax/bonds file %s
+
The output file for the fix reax/bonds command cannot be opened. +Check that the path and name are correct.
+
Cannot open fix rigid infile %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix rigid restart file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix rigid/small infile %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open fix tmd file %s
+
The output file for the fix tmd command cannot be opened. Check that +the path and name are correct.
+
Cannot open fix ttm file %s
+
The output file for the fix ttm command cannot be opened. Check that +the path and name are correct.
+
Cannot open gzipped file
+
LAMMPS was compiled without support for reading and writing gzipped +files through a pipeline to the gzip program with -DLAMMPS_GZIP.
+
Cannot open input script %s
+
Self-explanatory.
+
Cannot open log.cite file
+
This file is created when you use some LAMMPS features, to indicate +what paper you should cite on behalf of those who implemented +the feature. Check that you have write privileges into the directory +you are running in.
+
Cannot open log.lammps for writing
+
The default LAMMPS log file cannot be opened. Check that the +directory you are running in allows for files to be created.
+
Cannot open logfile
+
The LAMMPS log file named in a command-line argument cannot be opened. +Check that the path and name are correct.
+
Cannot open logfile %s
+
The LAMMPS log file specified in the input script cannot be opened. +Check that the path and name are correct.
+
Cannot open molecule file %s
+
The specified file cannot be opened. Check that the path and name are +correct.
+
Cannot open nb3b/harmonic potential file %s
+
The specified potential file cannot be opened. Check that the path +and name are correct.
+
Cannot open pair_write file
+
The specified output file for pair energies and forces cannot be +opened. Check that the path and name are correct.
+
Cannot open polymorphic potential file %s
+
The specified polymorphic potential file cannot be opened. Check that +the path and name are correct.
+
Cannot open print file %s
+
Self-explanatory.
+
Cannot open processors output file
+
Self-explanatory.
+
Cannot open restart file %s
+
Self-explanatory.
+
Cannot open restart file for reading - MPI error: %s
+
This error was generated by MPI when reading/writing an MPI-IO restart +file.
+
Cannot open restart file for writing - MPI error: %s
+
This error was generated by MPI when reading/writing an MPI-IO restart +file.
+
Cannot open screen file
+
The screen file specified as a command-line argument cannot be +opened. Check that the directory you are running in allows for files +to be created.
+
Cannot open temporary file for world counter.
+
Self-explanatory.
+
Cannot open universe log file
+
For a multi-partition run, the master log file cannot be opened. +Check that the directory you are running in allows for files to be +created.
+
Cannot open universe screen file
+
For a multi-partition run, the master screen file cannot be opened. +Check that the directory you are running in allows for files to be +created.
+
Cannot read from restart file - MPI error: %s
+
This error was generated by MPI when reading/writing an MPI-IO restart +file.
+
Cannot read_data without add keyword after simulation box is defined
+
Self-explanatory.
+
Cannot read_restart after simulation box is defined
+
The read_restart command cannot be used after a read_data, +read_restart, or create_box command.
+
Cannot redefine variable as a different style
+
An equal-style variable can be re-defined but only if it was +originally an equal-style variable.
+
Cannot replicate 2d simulation in z dimension
+
The replicate command cannot replicate a 2d simulation in the z +dimension.
+
Cannot replicate with fixes that store atom quantities
+
Either fixes are defined that create and store atom-based vectors or a +restart file was read which included atom-based vectors for fixes. +The replicate command cannot duplicate that information for new atoms. +You should use the replicate command before fixes are applied to the +system.
+
Cannot reset timestep with a dynamic region defined
+
Dynamic regions (see the region command) have a time dependence. +Thus you cannot change the timestep when one or more of these +are defined.
+
Cannot reset timestep with a time-dependent fix defined
+
You cannot reset the timestep when a fix that keeps track of elapsed +time is in place.
+
Cannot run 2d simulation with nonperiodic Z dimension
+
Use the boundary command to make the z dimension periodic in order to +run a 2d simulation.
+
Cannot set bond topology types for atom style template
+
The bond, angle, etc types cannot be changed for this atom style since +they are static settings in the molecule template files.
+
Cannot set both respa pair and inner/middle/outer
+
In the rRESPA integrator, you must compute pairwise potentials either +all together (pair), or in pieces (inner/middle/outer). You can’t do +both.
+
Cannot set cutoff/multi before simulation box is defined
+
Self-explanatory.
+
Cannot set dpd/theta for this atom style
+
Self-explanatory.
+
Cannot set dump_modify flush for dump xtc
+
Self-explanatory.
+
Cannot set mass for this atom style
+
This atom style does not support mass settings for each atom type. +Instead they are defined on a per-atom basis in the data file.
+
Cannot set meso/cv for this atom style
+
Self-explanatory.
+
Cannot set meso/e for this atom style
+
Self-explanatory.
+
Cannot set meso/rho for this atom style
+
Self-explanatory.
+
Cannot set non-zero image flag for non-periodic dimension
+
Self-explanatory.
+
Cannot set non-zero z velocity for 2d simulation
+
Self-explanatory.
+
Cannot set quaternion for atom that has none
+
Self-explanatory.
+
Cannot set quaternion with xy components for 2d system
+
Self-explanatory.
+
Cannot set respa hybrid and any of pair/inner/middle/outer
+
In the rRESPA integrator, you must compute pairwise potentials either +all together (pair), with different cutoff regions (inner/middle/outer), +or per hybrid sub-style (hybrid). You cannot mix those.
+
Cannot set respa middle without inner/outer
+
In the rRESPA integrator, you must define both a inner and outer +setting in order to use a middle setting.
+
Cannot set restart file size - MPI error: %s
+
This error was generated by MPI when reading/writing an MPI-IO restart +file.
+
Cannot set smd/contact/radius for this atom style
+
Self-explanatory.
+
Cannot set smd/mass/density for this atom style
+
Self-explanatory.
+
Cannot set temperature for fix rigid/nph
+
The temp keyword cannot be specified.
+
Cannot set theta for atom that is not a line
+
Self-explanatory.
+
Cannot set this attribute for this atom style
+
The attribute being set does not exist for the defined atom style.
+
Cannot set variable z velocity for 2d simulation
+
Self-explanatory.
+
Cannot skew triclinic box in z for 2d simulation
+
Self-explanatory.
+
Cannot subtract groups using a dynamic group
+
This operation is not allowed.
+
Cannot union groups using a dynamic group
+
This operation is not allowed.
+
Cannot use -cuda on and -kokkos on together
+
This is not allowed since both packages can use GPUs.
+
Cannot use -cuda on without USER-CUDA installed
+
The USER-CUDA package must be installed via “make yes-user-cuda” +before LAMMPS is built.
+
Cannot use -kokkos on without KOKKOS installed
+
Self-explanatory.
+
Cannot use -reorder after -partition
+
Self-explanatory. See doc page discussion of command-line switches.
+
Cannot use Ewald with 2d simulation
+
The kspace style ewald cannot be used in 2d simulations. You can use +2d Ewald in a 3d simulation; see the kspace_modify command.
+
Cannot use Ewald/disp solver on system with no charge, dipole, or LJ particles
+
No atoms in system have a non-zero charge or dipole, or are LJ +particles. Change charges/dipoles or change options of the kspace +solver/pair style.
+
Cannot use EwaldDisp with 2d simulation
+
This is a current restriction of this command.
+
Cannot use GPU package with USER-CUDA package enabled
+
You cannot use both the GPU and USER-CUDA packages +together. Use one or the other.
+
Cannot use Kokkos pair style with rRESPA inner/middle
+
Self-explanatory.
+
Cannot use NEB unless atom map exists
+
Use the atom_modify command to create an atom map.
+
Cannot use NEB with a single replica
+
Self-explanatory.
+
Cannot use NEB with atom_modify sort enabled
+
This is current restriction for NEB implemented in LAMMPS.
+
Cannot use PPPM with 2d simulation
+
The kspace style pppm cannot be used in 2d simulations. You can use +2d PPPM in a 3d simulation; see the kspace_modify command.
+
Cannot use PPPMDisp with 2d simulation
+
The kspace style pppm/disp cannot be used in 2d simulations. You can +use 2d pppm/disp in a 3d simulation; see the kspace_modify command.
+
Cannot use PRD with a changing box
+
The current box dimensions are not copied between replicas
+
Cannot use PRD with a time-dependent fix defined
+
PRD alters the timestep in ways that will mess up these fixes.
+
Cannot use PRD with a time-dependent region defined
+
PRD alters the timestep in ways that will mess up these regions.
+
Cannot use PRD with atom_modify sort enabled
+
This is a current restriction of PRD. You must turn off sorting, +which is enabled by default, via the atom_modify command.
+
Cannot use PRD with multi-processor replicas unless atom map exists
+
Use the atom_modify command to create an atom map.
+
Cannot use TAD unless atom map exists for NEB
+
See atom_modify map command to set this.
+
Cannot use TAD with a single replica for NEB
+
NEB requires multiple replicas.
+
Cannot use TAD with atom_modify sort enabled for NEB
+
This is a current restriction of NEB.
+
Cannot use a damped dynamics min style with fix box/relax
+
This is a current restriction in LAMMPS. Use another minimizer +style.
+
Cannot use a damped dynamics min style with per-atom DOF
+
This is a current restriction in LAMMPS. Use another minimizer +style.
+
Cannot use append/atoms in periodic dimension
+
The boundary style of the face where atoms are added can not be of +type p (periodic).
+
Cannot use atomfile-style variable unless atom map exists
+
Self-explanatory. See the atom_modify command to create a map.
+
Cannot use both com and bias with compute temp/chunk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with buck/coul/cut/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with buck/coul/long/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with buck/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with coul/cut/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with coul/debye/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with coul/dsf/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with coul/wolf/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with lj/charmm/coul/charmm/implicit/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/charmm/coul/charmm/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/charmm/coul/long/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/class2/coul/cut/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/class2/coul/long/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/class2/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/cut/coul/cut/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with lj/cut/coul/debye/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/cut/coul/long/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with lj/cut/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with lj/expand/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/gromacs/coul/gromacs/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/gromacs/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with lj/sdk/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with pair eam/kk
+
That style is not supported by Kokkos.
+
Cannot use chosen neighbor list style with pair eam/kk/alloy
+
Self-explanatory.
+
Cannot use chosen neighbor list style with pair eam/kk/fs
+
Self-explanatory.
+
Cannot use chosen neighbor list style with pair sw/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with tersoff/kk
+
Self-explanatory.
+
Cannot use chosen neighbor list style with tersoff/zbl/kk
+
Self-explanatory.
+
Cannot use compute chunk/atom bin z for 2d model
+
Self-explanatory.
+
Cannot use compute cluster/atom unless atoms have IDs
+
Atom IDs are used to identify clusters.
+
Cannot use create_atoms rotate unless single style
+
Self-explanatory.
+
Cannot use create_bonds unless atoms have IDs
+
This command requires a mapping from global atom IDs to local atoms, +but the atoms that have been defined have no IDs.
+
Cannot use create_bonds with non-molecular system
+
Self-explanatory.
+
Cannot use cwiggle in variable formula between runs
+
This is a function of elapsed time.
+
Cannot use delete_atoms bond yes with atom_style template
+
This is because the bonds for that atom style are hardwired in the +molecule template.
+
Cannot use delete_atoms unless atoms have IDs
+
Your atoms do not have IDs, so the delete_atoms command cannot be +used.
+
Cannot use delete_bonds with non-molecular system
+
Your choice of atom style does not have bonds.
+
Cannot use dump_modify fileper without % in dump file name
+
Self-explanatory.
+
Cannot use dump_modify nfile without % in dump file name
+
Self-explanatory.
+
Cannot use dynamic group with fix adapt atom
+
This is not yet supported.
+
Cannot use fix TMD unless atom map exists
+
Using this fix requires the ability to lookup an atom index, which is +provided by an atom map. An atom map does not exist (by default) for +non-molecular problems. Using the atom_modify map command will force +an atom map to be created.
+
Cannot use fix ave/spatial z for 2 dimensional model
+
Self-explanatory.
+
Cannot use fix bond/break with non-molecular systems
+
Only systems with bonds that can be changed can be used. Atom_style +template does not qualify.
+
Cannot use fix bond/create with non-molecular systems
+
Only systems with bonds that can be changed can be used. Atom_style +template does not qualify.
+
Cannot use fix bond/swap with non-molecular systems
+
Only systems with bonds that can be changed can be used. Atom_style +template does not qualify.
+
Cannot use fix box/relax on a 2nd non-periodic dimension
+
When specifying an off-diagonal pressure component, the 2nd of the two +dimensions must be periodic. E.g. if the xy component is specified, +then the y dimension must be periodic.
+
Cannot use fix box/relax on a non-periodic dimension
+
When specifying a diagonal pressure component, the dimension must be +periodic.
+
Cannot use fix box/relax with both relaxation and scaling on a tilt factor
+
When specifying scaling on a tilt factor component, that component can not +also be controlled by the barostat. E.g. if scalexy yes is specified and +also keyword tri or xy, this is wrong.
+
Cannot use fix box/relax with tilt factor scaling on a 2nd non-periodic dimension
+
When specifying scaling on a tilt factor component, the 2nd of the two +dimensions must be periodic. E.g. if the xy component is specified, +then the y dimension must be periodic.
+
Cannot use fix deform on a shrink-wrapped boundary
+
The x, y, z options cannot be applied to shrink-wrapped +dimensions.
+
Cannot use fix deform tilt on a shrink-wrapped 2nd dim
+
This is because the shrink-wrapping will change the value +of the strain implied by the tilt factor.
+
Cannot use fix deform trate on a box with zero tilt
+
The trate style alters the current strain.
+
Cannot use fix deposit rigid and not molecule
+
Self-explanatory.
+
Cannot use fix deposit rigid and shake
+
These two attributes are conflicting.
+
Cannot use fix deposit shake and not molecule
+
Self-explanatory.
+
Cannot use fix enforce2d with 3d simulation
+
Self-explanatory.
+
Cannot use fix gcmc in a 2d simulation
+
Fix gcmc is set up to run in 3d only. No 2d simulations with fix gcmc +are allowed.
+
Cannot use fix gcmc shake and not molecule
+
Self-explanatory.
+
Cannot use fix msst without per-type mass defined
+
Self-explanatory.
+
Cannot use fix npt and fix deform on same component of stress tensor
+
This would be changing the same box dimension twice.
+
Cannot use fix nvt/npt/nph on a 2nd non-periodic dimension
+
When specifying an off-diagonal pressure component, the 2nd of the two +dimensions must be periodic. E.g. if the xy component is specified, +then the y dimension must be periodic.
+
Cannot use fix nvt/npt/nph on a non-periodic dimension
+
When specifying a diagonal pressure component, the dimension must be +periodic.
+
Cannot use fix nvt/npt/nph with both xy dynamics and xy scaling
+
Self-explanatory.
+
Cannot use fix nvt/npt/nph with both xz dynamics and xz scaling
+
Self-explanatory.
+
Cannot use fix nvt/npt/nph with both yz dynamics and yz scaling
+
Self-explanatory.
+
Cannot use fix nvt/npt/nph with xy scaling when y is non-periodic dimension
+
The 2nd dimension in the barostatted tilt factor must be periodic.
+
Cannot use fix nvt/npt/nph with xz scaling when z is non-periodic dimension
+
The 2nd dimension in the barostatted tilt factor must be periodic.
+
Cannot use fix nvt/npt/nph with yz scaling when z is non-periodic dimension
+
The 2nd dimension in the barostatted tilt factor must be periodic.
+
Cannot use fix pour rigid and not molecule
+
Self-explanatory.
+
Cannot use fix pour rigid and shake
+
These two attributes are conflicting.
+
Cannot use fix pour shake and not molecule
+
Self-explanatory.
+
Cannot use fix pour with triclinic box
+
This option is not yet supported.
+
Cannot use fix press/berendsen and fix deform on same component of stress tensor
+
These commands both change the box size/shape, so you cannot use both +together.
+
Cannot use fix press/berendsen on a non-periodic dimension
+
Self-explanatory.
+
Cannot use fix press/berendsen with triclinic box
+
Self-explanatory.
+
Cannot use fix reax/bonds without pair_style reax
+
Self-explanatory.
+
Cannot use fix rigid npt/nph and fix deform on same component of stress tensor
+
This would be changing the same box dimension twice.
+
Cannot use fix rigid npt/nph on a non-periodic dimension
+
When specifying a diagonal pressure component, the dimension must be +periodic.
+
Cannot use fix rigid/small npt/nph on a non-periodic dimension
+
When specifying a diagonal pressure component, the dimension must be +periodic.
+
Cannot use fix shake with non-molecular system
+
Your choice of atom style does not have bonds.
+
Cannot use fix ttm with 2d simulation
+
This is a current restriction of this fix due to the grid it creates.
+
Cannot use fix ttm with triclinic box
+
This is a current restriction of this fix due to the grid it creates.
+
Cannot use fix tune/kspace without a kspace style
+
Self-explanatory.
+
Cannot use fix tune/kspace without a pair style
+
This fix (tune/kspace) can only be used when a pair style has been specified.
+
Cannot use fix wall in periodic dimension
+
Self-explanatory.
+
Cannot use fix wall zlo/zhi for a 2d simulation
+
Self-explanatory.
+
Cannot use fix wall/reflect in periodic dimension
+
Self-explanatory.
+
Cannot use fix wall/reflect zlo/zhi for a 2d simulation
+
Self-explanatory.
+
Cannot use fix wall/srd in periodic dimension
+
Self-explanatory.
+
Cannot use fix wall/srd more than once
+
Nor is their a need to since multiple walls can be specified +in one command.
+
Cannot use fix wall/srd without fix srd
+
Self-explanatory.
+
Cannot use fix wall/srd zlo/zhi for a 2d simulation
+
Self-explanatory.
+
Cannot use fix_deposit unless atoms have IDs
+
Self-explanatory.
+
Cannot use fix_pour unless atoms have IDs
+
Self-explanatory.
+
Cannot use include command within an if command
+
Self-explanatory.
+
Cannot use lines with fix srd unless overlap is set
+
This is because line segments are connected to each other.
+
Cannot use multiple fix wall commands with pair brownian
+
Self-explanatory.
+
Cannot use multiple fix wall commands with pair lubricate
+
Self-explanatory.
+
Cannot use multiple fix wall commands with pair lubricate/poly
+
Self-explanatory.
+
Cannot use multiple fix wall commands with pair lubricateU
+
Self-explanatory.
+
Cannot use neigh_modify exclude with GPU neighbor builds
+
This is a current limitation of the GPU implementation +in LAMMPS.
+
Cannot use neighbor bins - box size << cutoff
+
Too many neighbor bins will be created. This typically happens when +the simulation box is very small in some dimension, compared to the +neighbor cutoff. Use the “nsq” style instead of “bin” style.
+
Cannot use newton pair with beck/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with born/coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with born/coul/wolf/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with born/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with buck/coul/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with buck/coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with buck/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with colloid/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with coul/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with coul/debye/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with coul/dsf/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with dipole/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with dipole/sf/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with dpd/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with dpd/tstat/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with eam/alloy/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with eam/fs/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with eam/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with gauss/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with gayberne/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/charmm/coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/class2/coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/class2/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cubic/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cut/coul/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cut/coul/debye/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cut/coul/dsf/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cut/coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cut/coul/msm/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/expand/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/gromacs/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/sdk/coul/long/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj/sdk/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with lj96/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with mie/cut/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with morse/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with resquared/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with soft/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with table/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with yukawa/colloid/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with yukawa/gpu pair style
+
Self-explanatory.
+
Cannot use newton pair with zbl/gpu pair style
+
Self-explanatory.
+
Cannot use non-zero forces in an energy minimization
+
Fix setforce cannot be used in this manner. Use fix addforce +instead.
+
Cannot use nonperiodic boundares with fix ttm
+
This fix requires a fully periodic simulation box.
+
Cannot use nonperiodic boundaries with Ewald
+
For kspace style ewald, all 3 dimensions must have periodic boundaries +unless you use the kspace_modify command to define a 2d slab with a +non-periodic z dimension.
+
Cannot use nonperiodic boundaries with EwaldDisp
+
For kspace style ewald/disp, all 3 dimensions must have periodic +boundaries unless you use the kspace_modify command to define a 2d +slab with a non-periodic z dimension.
+
Cannot use nonperiodic boundaries with PPPM
+
For kspace style pppm, all 3 dimensions must have periodic boundaries +unless you use the kspace_modify command to define a 2d slab with a +non-periodic z dimension.
+
Cannot use nonperiodic boundaries with PPPMDisp
+
For kspace style pppm/disp, all 3 dimensions must have periodic +boundaries unless you use the kspace_modify command to define a 2d +slab with a non-periodic z dimension.
+
Cannot use order greater than 8 with pppm/gpu.
+
Self-explanatory.
+
Cannot use package gpu neigh yes with triclinic box
+
This is a current restriction in LAMMPS.
+
Cannot use pair hybrid with GPU neighbor list builds
+
Neighbor list builds must be done on the CPU for this pair style.
+
Cannot use pair tail corrections with 2d simulations
+
The correction factors are only currently defined for 3d systems.
+
Cannot use processors part command without using partitions
+
See the command-line -partition switch.
+
Cannot use ramp in variable formula between runs
+
This is because the ramp() function is time dependent.
+
Cannot use read_data add before simulation box is defined
+
Self-explanatory.
+
Cannot use read_data extra with add flag
+
Self-explanatory.
+
Cannot use read_data offset without add flag
+
Self-explanatory.
+
Cannot use read_data shift without add flag
+
Self-explanatory.
+
Cannot use region INF or EDGE when box does not exist
+
Regions that extend to the box boundaries can only be used after the +create_box command has been used.
+
Cannot use set atom with no atom IDs defined
+
Atom IDs are not defined, so they cannot be used to identify an atom.
+
Cannot use set mol with no molecule IDs defined
+
Self-explanatory.
+
Cannot use swiggle in variable formula between runs
+
This is a function of elapsed time.
+
Cannot use tris with fix srd unless overlap is set
+
This is because triangles are connected to each other.
+
Cannot use variable energy with constant efield in fix efield
+
LAMMPS computes the energy itself when the E-field is constant.
+
Cannot use variable energy with constant force in fix addforce
+
This is because for constant force, LAMMPS can compute the change +in energy directly.
+
Cannot use variable every setting for dump dcd
+
The format of DCD dump files requires snapshots be output +at a constant frequency.
+
Cannot use variable every setting for dump xtc
+
The format of this file requires snapshots at regular intervals.
+
Cannot use vdisplace in variable formula between runs
+
This is a function of elapsed time.
+
Cannot use velocity bias command without temp keyword
+
Self-explanatory.
+
Cannot use velocity create loop all unless atoms have IDs
+
Atoms in the simulation to do not have IDs, so this style +of velocity creation cannot be performed.
+
Cannot use wall in periodic dimension
+
Self-explanatory.
+
Cannot use write_restart fileper without % in restart file name
+
Self-explanatory.
+
Cannot use write_restart nfile without % in restart file name
+
Self-explanatory.
+
Cannot wiggle and shear fix wall/gran
+
Cannot specify both options at the same time.
+
Cannot write to restart file - MPI error: %s
+
This error was generated by MPI when reading/writing an MPI-IO restart +file.
+
Cannot yet use KSpace solver with grid with comm style tiled
+
This is current restriction in LAMMPS.
+
Cannot yet use comm_style tiled with multi-mode comm
+
Self-explanatory.
+
Cannot yet use comm_style tiled with triclinic box
+
Self-explanatory.
+
Cannot yet use compute tally with Kokkos
+
This feature is not yet supported.
+
Cannot yet use fix bond/break with this improper style
+
This is a current restriction in LAMMPS.
+
Cannot yet use fix bond/create with this improper style
+
This is a current restriction in LAMMPS.
+
Cannot yet use minimize with Kokkos
+
This feature is not yet supported.
+
Cannot yet use pair hybrid with Kokkos
+
This feature is not yet supported.
+
Cannot zero Langevin force of 0 atoms
+
The group has zero atoms, so you cannot request its force +be zeroed.
+
Cannot zero gld force for zero atoms
+
There are no atoms currently in the group.
+
Cannot zero momentum of no atoms
+
Self-explanatory.
+
Change_box command before simulation box is defined
+
Self-explanatory.
+
Change_box volume used incorrectly
+
The “dim volume” option must be used immediately following one or two +settings for “dim1 …” (and optionally “dim2 …”) and must be for a +different dimension, i.e. dim != dim1 and dim != dim2.
+
Chunk/atom compute does not exist for compute angmom/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute com/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute gyration/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute inertia/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute msd/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute omega/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute property/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute temp/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute torque/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for compute vcm/chunk
+
Self-explanatory.
+
Chunk/atom compute does not exist for fix ave/chunk
+
Self-explanatory.
+
Comm tiled invalid index in box drop brick
+
Internal error check in comm_style tiled which should not occur. +Contact the developers.
+
Comm tiled mis-match in box drop brick
+
Internal error check in comm_style tiled which should not occur. +Contact the developers.
+
Comm_modify group != atom_modify first group
+
Self-explanatory.
+
Communication cutoff for comm_style tiled cannot exceed periodic box length
+
Self-explanatory.
+
Communication cutoff too small for SNAP micro load balancing
+
This can happen if you change the neighbor skin after your pair_style +command or if your box dimensions grow during a run. You can set the +cutoff explicitly via the comm_modify cutoff command.
+
Compute %s does not allow use of dynamic group
+
Dynamic groups have not yet been enabled for this compute.
+
Compute ID for compute chunk /atom does not exist
+
Self-explanatory.
+
Compute ID for compute chunk/atom does not exist
+
Self-explanatory.
+
Compute ID for compute reduce does not exist
+
Self-explanatory.
+
Compute ID for compute slice does not exist
+
Self-explanatory.
+
Compute ID for fix ave/atom does not exist
+
Self-explanatory.
+
Compute ID for fix ave/chunk does not exist
+
Self-explanatory.
+
Compute ID for fix ave/correlate does not exist
+
Self-explanatory.
+
Compute ID for fix ave/histo does not exist
+
Self-explanatory.
+
Compute ID for fix ave/spatial does not exist
+
Self-explanatory.
+
Compute ID for fix ave/time does not exist
+
Self-explanatory.
+
Compute ID for fix store/state does not exist
+
Self-explanatory.
+
Compute ID for fix vector does not exist
+
Self-explanatory.
+
Compute ID must be alphanumeric or underscore characters
+
Self-explanatory.
+
Compute angle/local used when angles are not allowed
+
The atom style does not support angles.
+
Compute angmom/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute body/local requires atom style body
+
Self-explanatory.
+
Compute bond/local used when bonds are not allowed
+
The atom style does not support bonds.
+
Compute centro/atom requires a pair style be defined
+
This is because the computation of the centro-symmetry values +uses a pairwise neighbor list.
+
Compute chunk/atom bin/cylinder radius is too large for periodic box
+
Radius cannot be bigger than 1/2 of a non-axis periodic dimension.
+
Compute chunk/atom bin/sphere radius is too large for periodic box
+
Radius cannot be bigger than 1/2 of any periodic dimension.
+
Compute chunk/atom compute array is accessed out-of-range
+
The index for the array is out of bounds.
+
Compute chunk/atom compute does not calculate a per-atom array
+
Self-explanatory.
+
Compute chunk/atom compute does not calculate a per-atom vector
+
Self-explanatory.
+
Compute chunk/atom compute does not calculate per-atom values
+
Self-explanatory.
+
Compute chunk/atom cylinder axis must be z for 2d
+
Self-explanatory.
+
Compute chunk/atom fix array is accessed out-of-range
+
the index for the array is out of bounds.
+
Compute chunk/atom fix does not calculate a per-atom array
+
Self-explanatory.
+
Compute chunk/atom fix does not calculate a per-atom vector
+
Self-explanatory.
+
Compute chunk/atom fix does not calculate per-atom values
+
Self-explanatory.
+
Compute chunk/atom for triclinic boxes requires units reduced
+
Self-explanatory.
+
Compute chunk/atom ids once but nchunk is not once
+
You cannot assign chunks IDs to atom permanently if the number of +chunks may change.
+
Compute chunk/atom molecule for non-molecular system
+
Self-explanatory.
+
Compute chunk/atom sphere z origin must be 0.0 for 2d
+
Self-explanatory.
+
Compute chunk/atom stores no IDs for compute property/chunk
+
It will only store IDs if its compress option is enabled.
+
Compute chunk/atom stores no coord1 for compute property/chunk
+
Only certain binning options for compute chunk/atom store coordinates.
+
Compute chunk/atom stores no coord2 for compute property/chunk
+
Only certain binning options for compute chunk/atom store coordinates.
+
Compute chunk/atom stores no coord3 for compute property/chunk
+
Only certain binning options for compute chunk/atom store coordinates.
+
Compute chunk/atom variable is not atom-style variable
+
Self-explanatory.
+
Compute chunk/atom without bins cannot use discard mixed
+
That discard option only applies to the binning styles.
+
Compute cluster/atom cutoff is longer than pairwise cutoff
+
Cannot identify clusters beyond cutoff.
+
Compute cluster/atom requires a pair style be defined
+
This is so that the pair style defines a cutoff distance which +is used to find clusters.
+
Compute cna/atom cutoff is longer than pairwise cutoff
+
Self-explanatory.
+
Compute cna/atom requires a pair style be defined
+
Self-explanatory.
+
Compute com/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute contact/atom requires a pair style be defined
+
Self-explanatory.
+
Compute contact/atom requires atom style sphere
+
Self-explanatory.
+
Compute coord/atom cutoff is longer than pairwise cutoff
+
Cannot compute coordination at distances longer than the pair cutoff, +since those atoms are not in the neighbor list.
+
Compute coord/atom requires a pair style be defined
+
Self-explanatory.
+
Compute damage/atom requires peridynamic potential
+
Damage is a Peridynamic-specific metric. It requires you +to be running a Peridynamics simulation.
+
Compute dihedral/local used when dihedrals are not allowed
+
The atom style does not support dihedrals.
+
Compute dilatation/atom cannot be used with this pair style
+
Self-explanatory.
+
Compute dilatation/atom requires Peridynamic pair style
+
Self-explanatory.
+
Compute does not allow an extra compute or fix to be reset
+
This is an internal LAMMPS error. Please report it to the +developers.
+
Compute erotate/asphere requires atom style ellipsoid or line or tri
+
Self-explanatory.
+
Compute erotate/asphere requires extended particles
+
This compute cannot be used with point particles.
+
Compute erotate/rigid with non-rigid fix-ID
+
Self-explanatory.
+
Compute erotate/sphere requires atom style sphere
+
Self-explanatory.
+
Compute erotate/sphere/atom requires atom style sphere
+
Self-explanatory.
+
Compute event/displace has invalid fix event assigned
+
This is an internal LAMMPS error. Please report it to the +developers.
+
Compute group/group group ID does not exist
+
Self-explanatory.
+
Compute gyration/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute heat/flux compute ID does not compute ke/atom
+
Self-explanatory.
+
Compute heat/flux compute ID does not compute pe/atom
+
Self-explanatory.
+
Compute heat/flux compute ID does not compute stress/atom
+
Self-explanatory.
+
Compute hexorder/atom cutoff is longer than pairwise cutoff
+
Cannot compute order parameter beyond cutoff.
+
Compute hexorder/atom requires a pair style be defined
+
Self-explanatory.
+
Compute improper/local used when impropers are not allowed
+
The atom style does not support impropers.
+
Compute inertia/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute ke/rigid with non-rigid fix-ID
+
Self-explanatory.
+
Compute msd/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute msd/chunk nchunk is not static
+
This is required because the MSD cannot be computed consistently if +the number of chunks is changing. Compute chunk/atom allows setting +nchunk to be static.
+
Compute nve/asphere requires atom style ellipsoid
+
Self-explanatory.
+
Compute nvt/nph/npt asphere requires atom style ellipsoid
+
Self-explanatory.
+
Compute nvt/nph/npt body requires atom style body
+
Self-explanatory.
+
Compute omega/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute orientorder/atom cutoff is longer than pairwise cutoff
+
Cannot compute order parameter beyond cutoff.
+
Compute orientorder/atom requires a pair style be defined
+
Self-explanatory.
+
Compute pair must use group all
+
Pair styles accumulate energy on all atoms.
+
Compute pe must use group all
+
Energies computed by potentials (pair, bond, etc) are computed on all +atoms.
+
Compute plasticity/atom cannot be used with this pair style
+
Self-explanatory.
+
Compute plasticity/atom requires Peridynamic pair style
+
Self-explanatory.
+
Compute pressure must use group all
+
Virial contributions computed by potentials (pair, bond, etc) are +computed on all atoms.
+
Compute pressure requires temperature ID to include kinetic energy
+
The keflag cannot be used unless a temperature compute is provided.
+
Compute pressure temperature ID does not compute temperature
+
The compute ID assigned to a pressure computation must compute +temperature.
+
Compute property/atom floating point vector does not exist
+
The command is accessing a vector added by the fix property/atom +command, that does not exist.
+
Compute property/atom for atom property that isn’t allocated
+
Self-explanatory.
+
Compute property/atom integer vector does not exist
+
The command is accessing a vector added by the fix property/atom +command, that does not exist.
+
Compute property/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute property/local cannot use these inputs together
+
Only inputs that generate the same number of datums can be used +together. E.g. bond and angle quantities cannot be mixed.
+
Compute property/local does not (yet) work with atom_style template
+
Self-explanatory.
+
Compute property/local for property that isn’t allocated
+
Self-explanatory.
+
Compute rdf requires a pair style be defined
+
Self-explanatory.
+
Compute reduce compute array is accessed out-of-range
+
An index for the array is out of bounds.
+
Compute reduce compute calculates global values
+
A compute that calculates peratom or local values is required.
+
Compute reduce compute does not calculate a local array
+
Self-explanatory.
+
Compute reduce compute does not calculate a local vector
+
Self-explanatory.
+
Compute reduce compute does not calculate a per-atom array
+
Self-explanatory.
+
Compute reduce compute does not calculate a per-atom vector
+
Self-explanatory.
+
Compute reduce fix array is accessed out-of-range
+
An index for the array is out of bounds.
+
Compute reduce fix calculates global values
+
A fix that calculates peratom or local values is required.
+
Compute reduce fix does not calculate a local array
+
Self-explanatory.
+
Compute reduce fix does not calculate a local vector
+
Self-explanatory.
+
Compute reduce fix does not calculate a per-atom array
+
Self-explanatory.
+
Compute reduce fix does not calculate a per-atom vector
+
Self-explanatory.
+
Compute reduce replace requires min or max mode
+
Self-explanatory.
+
Compute reduce variable is not atom-style variable
+
Self-explanatory.
+
Compute slice compute array is accessed out-of-range
+
An index for the array is out of bounds.
+
Compute slice compute does not calculate a global array
+
Self-explanatory.
+
Compute slice compute does not calculate a global vector
+
Self-explanatory.
+
Compute slice compute does not calculate global vector or array
+
Self-explanatory.
+
Compute slice compute vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Compute slice fix array is accessed out-of-range
+
An index for the array is out of bounds.
+
Compute slice fix does not calculate a global array
+
Self-explanatory.
+
Compute slice fix does not calculate a global vector
+
Self-explanatory.
+
Compute slice fix does not calculate global vector or array
+
Self-explanatory.
+
Compute slice fix vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Compute sna/atom cutoff is longer than pairwise cutoff
+
Self-explanatory.
+
Compute sna/atom requires a pair style be defined
+
Self-explanatory.
+
Compute snad/atom cutoff is longer than pairwise cutoff
+
Self-explanatory.
+
Compute snad/atom requires a pair style be defined
+
Self-explanatory.
+
Compute snav/atom cutoff is longer than pairwise cutoff
+
Self-explanatory.
+
Compute snav/atom requires a pair style be defined
+
Self-explanatory.
+
Compute stress/atom temperature ID does not compute temperature
+
The specified compute must compute temperature.
+
Compute temp/asphere requires atom style ellipsoid
+
Self-explanatory.
+
Compute temp/asphere requires extended particles
+
This compute cannot be used with point particles.
+
Compute temp/body requires atom style body
+
Self-explanatory.
+
Compute temp/body requires bodies
+
This compute can only be applied to body particles.
+
Compute temp/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute temp/cs requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Compute temp/cs used when bonds are not allowed
+
This compute only works on pairs of bonded particles.
+
Compute temp/partial cannot use vz for 2d systemx
+
Self-explanatory.
+
Compute temp/profile cannot bin z for 2d systems
+
Self-explanatory.
+
Compute temp/profile cannot use vz for 2d systemx
+
Self-explanatory.
+
Compute temp/sphere requires atom style sphere
+
Self-explanatory.
+
Compute ti kspace style does not exist
+
Self-explanatory.
+
Compute ti pair style does not exist
+
Self-explanatory.
+
Compute ti tail when pair style does not compute tail corrections
+
Self-explanatory.
+
Compute torque/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Compute used in dump between runs is not current
+
The compute was not invoked on the current timestep, therefore it +cannot be used in a dump between runs.
+
Compute used in variable between runs is not current
+
Computes cannot be invoked by a variable in between runs. Thus they +must have been evaluated on the last timestep of the previous run in +order for their value(s) to be accessed. See the doc page for the +variable command for more info.
+
Compute used in variable thermo keyword between runs is not current
+
Some thermo keywords rely on a compute to calculate their value(s). +Computes cannot be invoked by a variable in between runs. Thus they +must have been evaluated on the last timestep of the previous run in +order for their value(s) to be accessed. See the doc page for the +variable command for more info.
+
Compute vcm/chunk does not use chunk/atom compute
+
The style of the specified compute is not chunk/atom.
+
Computed temperature for fix temp/berendsen cannot be 0.0
+
Self-explanatory.
+
Computed temperature for fix temp/rescale cannot be 0.0
+
Cannot rescale the temperature to a new value if the current +temperature is 0.0.
+
Core/shell partner atom not found
+
Could not find one of the atoms in the bond pair.
+
Core/shell partners were not all found
+
Could not find or more atoms in the bond pairs.
+
Could not adjust g_ewald_6
+
The Newton-Raphson solver failed to converge to a good value for +g_ewald. This error should not occur for typical problems. Please +send an email to the developers.
+
Could not compute g_ewald
+
The Newton-Raphson solver failed to converge to a good value for +g_ewald. This error should not occur for typical problems. Please +send an email to the developers.
+
Could not compute grid size
+
The code is unable to compute a grid size consistent with the desired +accuracy. This error should not occur for typical problems. Please +send an email to the developers.
+
Could not compute grid size for Coulomb interaction
+
The code is unable to compute a grid size consistent with the desired +accuracy. This error should not occur for typical problems. Please +send an email to the developers.
+
Could not compute grid size for Dispersion
+
The code is unable to compute a grid size consistent with the desired +accuracy. This error should not occur for typical problems. Please +send an email to the developers.
+
Could not create 3d FFT plan
+
The FFT setup for the PPPM solver failed, typically due +to lack of memory. This is an unusual error. Check the +size of the FFT grid you are requesting.
+
Could not create 3d grid of processors
+
The specified constraints did not allow a Px by Py by Pz grid to be +created where Px * Py * Pz = P = total number of processors.
+
Could not create 3d remap plan
+
The FFT setup in pppm failed.
+
Could not create Python function arguments
+
This is an internal Python error, possibly because the number +of inputs to the function is too large.
+
Could not create numa grid of processors
+
The specified constraints did not allow this style of grid to be +created. Usually this is because the total processor count is not a +multiple of the cores/node or the user specified processor count is > +1 in one of the dimensions.
+
Could not create twolevel 3d grid of processors
+
The specified constraints did not allow this style of grid to be +created.
+
Could not evaluate Python function input variable
+
Self-explanatory.
+
Could not find Python function
+
The provided Python code was run successfully, but it not +define a callable function with the required name.
+
Could not find atom_modify first group ID
+
Self-explanatory.
+
Could not find change_box group ID
+
Group ID used in the change_box command does not exist.
+
Could not find compute ID for PRD
+
Self-explanatory.
+
Could not find compute ID for TAD
+
Self-explanatory.
+
Could not find compute ID for temperature bias
+
Self-explanatory.
+
Could not find compute ID to delete
+
Self-explanatory.
+
Could not find compute displace/atom fix ID
+
Self-explanatory.
+
Could not find compute event/displace fix ID
+
Self-explanatory.
+
Could not find compute group ID
+
Self-explanatory.
+
Could not find compute heat/flux compute ID
+
Self-explanatory.
+
Could not find compute msd fix ID
+
Self-explanatory.
+
Could not find compute msd/chunk fix ID
+
The compute creates an internal fix, which has been deleted.
+
Could not find compute pressure temperature ID
+
The compute ID for calculating temperature does not exist.
+
Could not find compute stress/atom temperature ID
+
Self-explanatory.
+
Could not find compute vacf fix ID
+
Self-explanatory.
+
Could not find compute/voronoi surface group ID
+
Self-explanatory.
+
Could not find compute_modify ID
+
Self-explanatory.
+
Could not find custom per-atom property ID
+
Self-explanatory.
+
Could not find delete_atoms group ID
+
Group ID used in the delete_atoms command does not exist.
+
Could not find delete_atoms region ID
+
Region ID used in the delete_atoms command does not exist.
+
Could not find displace_atoms group ID
+
Group ID used in the displace_atoms command does not exist.
+
Could not find dump custom compute ID
+
Self-explanatory.
+
Could not find dump custom fix ID
+
Self-explanatory.
+
Could not find dump custom variable name
+
Self-explanatory.
+
Could not find dump group ID
+
A group ID used in the dump command does not exist.
+
Could not find dump local compute ID
+
Self-explanatory.
+
Could not find dump local fix ID
+
Self-explanatory.
+
Could not find dump modify compute ID
+
Self-explanatory.
+
Could not find dump modify custom atom floating point property ID
+
Self-explanatory.
+
Could not find dump modify custom atom integer property ID
+
Self-explanatory.
+
Could not find dump modify fix ID
+
Self-explanatory.
+
Could not find dump modify variable name
+
Self-explanatory.
+
Could not find fix ID to delete
+
Self-explanatory.
+
Could not find fix adapt storage fix ID
+
This should not happen unless you explicitly deleted +a secondary fix that fix adapt created internally.
+
Could not find fix gcmc exclusion group ID
+
Self-explanatory.
+
Could not find fix gcmc rotation group ID
+
Self-explanatory.
+
Could not find fix group ID
+
A group ID used in the fix command does not exist.
+
Could not find fix msst compute ID
+
Self-explanatory.
+
Could not find fix poems group ID
+
A group ID used in the fix poems command does not exist.
+
Could not find fix recenter group ID
+
A group ID used in the fix recenter command does not exist.
+
Could not find fix rigid group ID
+
A group ID used in the fix rigid command does not exist.
+
Could not find fix srd group ID
+
Self-explanatory.
+
Could not find fix_modify ID
+
A fix ID used in the fix_modify command does not exist.
+
Could not find fix_modify pressure ID
+
The compute ID for computing pressure does not exist.
+
Could not find fix_modify temperature ID
+
The compute ID for computing temperature does not exist.
+
Could not find group clear group ID
+
Self-explanatory.
+
Could not find group delete group ID
+
Self-explanatory.
+
Could not find pair fix ID
+
A fix is created internally by the pair style to store shear +history information. You cannot delete it.
+
Could not find set group ID
+
Group ID specified in set command does not exist.
+
Could not find specified fix gcmc group ID
+
Self-explanatory.
+
Could not find thermo compute ID
+
Compute ID specified in thermo_style command does not exist.
+
Could not find thermo custom compute ID
+
The compute ID needed by thermo style custom to compute a requested +quantity does not exist.
+
Could not find thermo custom fix ID
+
The fix ID needed by thermo style custom to compute a requested +quantity does not exist.
+
Could not find thermo custom variable name
+
Self-explanatory.
+
Could not find thermo fix ID
+
Fix ID specified in thermo_style command does not exist.
+
Could not find thermo variable name
+
Self-explanatory.
+
Could not find thermo_modify pressure ID
+
The compute ID needed by thermo style custom to compute pressure does +not exist.
+
Could not find thermo_modify temperature ID
+
The compute ID needed by thermo style custom to compute temperature does +not exist.
+
Could not find undump ID
+
A dump ID used in the undump command does not exist.
+
Could not find velocity group ID
+
A group ID used in the velocity command does not exist.
+
Could not find velocity temperature ID
+
The compute ID needed by the velocity command to compute temperature +does not exist.
+
Could not find/initialize a specified accelerator device
+
Could not initialize at least one of the devices specified for the gpu +package
+
Could not grab element entry from EIM potential file
+
Self-explanatory
+
Could not grab global entry from EIM potential file
+
Self-explanatory.
+
Could not grab pair entry from EIM potential file
+
Self-explanatory.
+
Could not initialize embedded Python
+
The main module in Python was not accessible.
+
Could not open Python file
+
The specified file of Python code cannot be opened. Check that the +path and name are correct.
+
Could not process Python file
+
The Python code in the specified file was not run successfully by +Python, probably due to errors in the Python code.
+
Could not process Python string
+
The Python code in the here string was not run successfully by Python, +probably due to errors in the Python code.
+
Coulomb PPPMDisp order has been reduced below minorder
+
The default minimum order is 2. This can be reset by the +kspace_modify minorder command.
+
Coulomb cut not supported in pair_style buck/long/coul/coul
+
Must use long-range Coulombic interactions.
+
Coulomb cut not supported in pair_style lj/long/coul/long
+
Must use long-range Coulombic interactions.
+
Coulomb cut not supported in pair_style lj/long/tip4p/long
+
Must use long-range Coulombic interactions.
+
Coulomb cutoffs of pair hybrid sub-styles do not match
+
If using a Kspace solver, all Coulomb cutoffs of long pair styles must +be the same.
+
Coulombic cut not supported in pair_style lj/long/dipole/long
+
Must use long-range Coulombic interactions.
+
Cound not find dump_modify ID
+
Self-explanatory.
+
Create_atoms command before simulation box is defined
+
The create_atoms command cannot be used before a read_data, +read_restart, or create_box command.
+
Create_atoms molecule has atom IDs, but system does not
+
The atom_style id command can be used to force atom IDs to be stored.
+
Create_atoms molecule must have atom types
+
The defined molecule does not specify atom types.
+
Create_atoms molecule must have coordinates
+
The defined molecule does not specify coordinates.
+
Create_atoms region ID does not exist
+
A region ID used in the create_atoms command does not exist.
+
Create_bonds command before simulation box is defined
+
Self-explanatory.
+
Create_bonds command requires no kspace_style be defined
+
This is so that atom pairs that are already bonded to not appear +in the neighbor list.
+
Create_bonds command requires special_bonds 1-2 weights be 0.0
+
This is so that atom pairs that are already bonded to not appear in +the neighbor list.
+
Create_bonds max distance > neighbor cutoff
+
Can only create bonds for atom pairs that will be in neighbor list.
+
Create_bonds requires a pair style be defined
+
Self-explanatory.
+
Create_box region ID does not exist
+
Self-explanatory.
+
Create_box region does not support a bounding box
+
Not all regions represent bounded volumes. You cannot use +such a region with the create_box command.
+
Custom floating point vector for fix store/state does not exist
+
The command is accessing a vector added by the fix property/atom +command, that does not exist.
+
Custom integer vector for fix store/state does not exist
+
The command is accessing a vector added by the fix property/atom +command, that does not exist.
+
Custom per-atom property ID is not floating point
+
Self-explanatory.
+
Custom per-atom property ID is not integer
+
Self-explanatory.
+
Cut-offs missing in pair_style lj/long/dipole/long
+
Self-explanatory.
+
Cutoffs missing in pair_style buck/long/coul/long
+
Self-explanatory.
+
Cutoffs missing in pair_style lj/long/coul/long
+
Self-explanatory.
+
Cyclic loop in joint connections
+
Fix poems cannot (yet) work with coupled bodies whose joints connect +the bodies in a ring (or cycle).
+
Degenerate lattice primitive vectors
+
Invalid set of 3 lattice vectors for lattice command.
+
Delete region ID does not exist
+
Self-explanatory.
+
Delete_atoms command before simulation box is defined
+
The delete_atoms command cannot be used before a read_data, +read_restart, or create_box command.
+
Delete_atoms cutoff > max neighbor cutoff
+
Can only delete atoms in atom pairs that will be in neighbor list.
+
Delete_atoms mol yes requires atom attribute molecule
+
Cannot use this option with a non-molecular system.
+
Delete_atoms requires a pair style be defined
+
This is because atom deletion within a cutoff uses a pairwise +neighbor list.
+
Delete_bonds command before simulation box is defined
+
The delete_bonds command cannot be used before a read_data, +read_restart, or create_box command.
+
Delete_bonds command with no atoms existing
+
No atoms are yet defined so the delete_bonds command cannot be used.
+
Deposition region extends outside simulation box
+
Self-explanatory.
+
Did not assign all atoms correctly
+
Atoms read in from a data file were not assigned correctly to +processors. This is likely due to some atom coordinates being +outside a non-periodic simulation box.
+
Did not assign all restart atoms correctly
+
Atoms read in from the restart file were not assigned correctly to +processors. This is likely due to some atom coordinates being outside +a non-periodic simulation box. Normally this should not happen. You +may wish to use the “remap” option on the read_restart command to see +if this helps.
+
Did not find all elements in MEAM library file
+
The requested elements were not found in the MEAM file.
+
Did not find fix shake partner info
+
Could not find bond partners implied by fix shake command. This error +can be triggered if the delete_bonds command was used before fix +shake, and it removed bonds without resetting the 1-2, 1-3, 1-4 +weighting list via the special keyword.
+
Did not find keyword in table file
+
Keyword used in pair_coeff command was not found in table file.
+
Did not set pressure for fix rigid/nph
+
The press keyword must be specified.
+
Did not set temp for fix rigid/nvt/small
+
Self-explanatory.
+
Did not set temp or press for fix rigid/npt/small
+
Self-explanatory.
+
Did not set temperature for fix rigid/nvt
+
The temp keyword must be specified.
+
Did not set temperature or pressure for fix rigid/npt
+
The temp and press keywords must be specified.
+
Dihedral atom missing in delete_bonds
+
The delete_bonds command cannot find one or more atoms in a particular +dihedral on a particular processor. The pairwise cutoff is too short +or the atoms are too far apart to make a valid dihedral.
+
Dihedral atom missing in set command
+
The set command cannot find one or more atoms in a particular dihedral +on a particular processor. The pairwise cutoff is too short or the +atoms are too far apart to make a valid dihedral.
+
Dihedral atoms %d %d %d %d missing on proc %d at step %ld
+
One or more of 4 atoms needed to compute a particular dihedral are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the dihedral has blown apart and an atom is +too far away.
+
Dihedral atoms missing on proc %d at step %ld
+
One or more of 4 atoms needed to compute a particular dihedral are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the dihedral has blown apart and an atom is +too far away.
+
Dihedral charmm is incompatible with Pair style
+
Dihedral style charmm must be used with a pair style charmm +in order for the 1-4 epsilon/sigma parameters to be defined.
+
Dihedral coeff for hybrid has invalid style
+
Dihedral style hybrid uses another dihedral style as one of its +coefficients. The dihedral style used in the dihedral_coeff command +or read from a restart file is not recognized.
+
Dihedral coeffs are not set
+
No dihedral coefficients have been assigned in the data file or via +the dihedral_coeff command.
+
Dihedral style hybrid cannot have hybrid as an argument
+
Self-explanatory.
+
Dihedral style hybrid cannot have none as an argument
+
Self-explanatory.
+
Dihedral style hybrid cannot use same dihedral style twice
+
Self-explanatory.
+
Dihedral/improper extent > half of periodic box length
+
This error was detected by the neigh_modify check yes setting. It is +an error because the dihedral atoms are so far apart it is ambiguous +how it should be defined.
+
Dihedral_coeff command before dihedral_style is defined
+
Coefficients cannot be set in the data file or via the dihedral_coeff +command until an dihedral_style has been assigned.
+
Dihedral_coeff command before simulation box is defined
+
The dihedral_coeff command cannot be used before a read_data, +read_restart, or create_box command.
+
Dihedral_coeff command when no dihedrals allowed
+
The chosen atom style does not allow for dihedrals to be defined.
+
Dihedral_style command when no dihedrals allowed
+
The chosen atom style does not allow for dihedrals to be defined.
+
Dihedrals assigned incorrectly
+
Dihedrals read in from the data file were not assigned correctly to +atoms. This means there is something invalid about the topology +definitions.
+
Dihedrals defined but no dihedral types
+
The data file header lists dihedrals but no dihedral types.
+
Dimension command after simulation box is defined
+
The dimension command cannot be used after a read_data, +read_restart, or create_box command.
+
Dispersion PPPMDisp order has been reduced below minorder
+
The default minimum order is 2. This can be reset by the +kspace_modify minorder command.
+
Displace_atoms command before simulation box is defined
+
The displace_atoms command cannot be used before a read_data, +read_restart, or create_box command.
+
Distance must be > 0 for compute event/displace
+
Self-explanatory.
+
Divide by 0 in influence function
+
This should not normally occur. It is likely a problem with your +model.
+
Divide by 0 in influence function of pair peri/lps
+
This should not normally occur. It is likely a problem with your +model.
+
Divide by 0 in variable formula
+
Self-explanatory.
+
Domain too large for neighbor bins
+
The domain has become extremely large so that neighbor bins cannot be +used. Most likely, one or more atoms have been blown out of the +simulation box to a great distance.
+
Double precision is not supported on this accelerator
+
Self-explanatory
+
Dump atom/gz only writes compressed files
+
The dump atom/gz output file name must have a .gz suffix.
+
Dump cfg arguments can not mix xs|ys|zs with xsu|ysu|zsu
+
Self-explanatory.
+
Dump cfg arguments must start with ‘mass type xs ys zs’ or ‘mass type xsu ysu zsu’
+
This is a requirement of the CFG output format. See the dump cfg doc +page for more details.
+
Dump cfg requires one snapshot per file
+
Use the wildcard “*” character in the filename.
+
Dump cfg/gz only writes compressed files
+
The dump cfg/gz output file name must have a .gz suffix.
+
Dump custom and fix not computed at compatible times
+
The fix must produce per-atom quantities on timesteps that dump custom +needs them.
+
Dump custom compute does not calculate per-atom array
+
Self-explanatory.
+
Dump custom compute does not calculate per-atom vector
+
Self-explanatory.
+
Dump custom compute does not compute per-atom info
+
Self-explanatory.
+
Dump custom compute vector is accessed out-of-range
+
Self-explanatory.
+
Dump custom fix does not compute per-atom array
+
Self-explanatory.
+
Dump custom fix does not compute per-atom info
+
Self-explanatory.
+
Dump custom fix does not compute per-atom vector
+
Self-explanatory.
+
Dump custom fix vector is accessed out-of-range
+
Self-explanatory.
+
Dump custom variable is not atom-style variable
+
Only atom-style variables generate per-atom quantities, needed for +dump output.
+
Dump custom/gz only writes compressed files
+
The dump custom/gz output file name must have a .gz suffix.
+
Dump dcd of non-matching # of atoms
+
Every snapshot written by dump dcd must contain the same # of atoms.
+
Dump dcd requires sorting by atom ID
+
Use the dump_modify sort command to enable this.
+
Dump every variable returned a bad timestep
+
The variable must return a timestep greater than the current timestep.
+
Dump file MPI-IO output not allowed with % in filename
+
This is because a % signifies one file per processor and MPI-IO +creates one large file for all processors.
+
Dump file does not contain requested snapshot
+
Self-explanatory.
+
Dump file is incorrectly formatted
+
Self-explanatory.
+
Dump image body yes requires atom style body
+
Self-explanatory.
+
Dump image bond not allowed with no bond types
+
Self-explanatory.
+
Dump image cannot perform sorting
+
Self-explanatory.
+
Dump image line requires atom style line
+
Self-explanatory.
+
Dump image persp option is not yet supported
+
Self-explanatory.
+
Dump image requires one snapshot per file
+
Use a “*” in the filename.
+
Dump image tri requires atom style tri
+
Self-explanatory.
+
Dump local and fix not computed at compatible times
+
The fix must produce per-atom quantities on timesteps that dump local +needs them.
+
Dump local attributes contain no compute or fix
+
Self-explanatory.
+
Dump local cannot sort by atom ID
+
This is because dump local does not really dump per-atom info.
+
Dump local compute does not calculate local array
+
Self-explanatory.
+
Dump local compute does not calculate local vector
+
Self-explanatory.
+
Dump local compute does not compute local info
+
Self-explanatory.
+
Dump local compute vector is accessed out-of-range
+
Self-explanatory.
+
Dump local count is not consistent across input fields
+
Every column of output must be the same length.
+
Dump local fix does not compute local array
+
Self-explanatory.
+
Dump local fix does not compute local info
+
Self-explanatory.
+
Dump local fix does not compute local vector
+
Self-explanatory.
+
Dump local fix vector is accessed out-of-range
+
Self-explanatory.
+
Dump modify bcolor not allowed with no bond types
+
Self-explanatory.
+
Dump modify bdiam not allowed with no bond types
+
Self-explanatory.
+
Dump modify compute ID does not compute per-atom array
+
Self-explanatory.
+
Dump modify compute ID does not compute per-atom info
+
Self-explanatory.
+
Dump modify compute ID does not compute per-atom vector
+
Self-explanatory.
+
Dump modify compute ID vector is not large enough
+
Self-explanatory.
+
Dump modify element names do not match atom types
+
Number of element names must equal number of atom types.
+
Dump modify fix ID does not compute per-atom array
+
Self-explanatory.
+
Dump modify fix ID does not compute per-atom info
+
Self-explanatory.
+
Dump modify fix ID does not compute per-atom vector
+
Self-explanatory.
+
Dump modify fix ID vector is not large enough
+
Self-explanatory.
+
Dump modify variable is not atom-style variable
+
Self-explanatory.
+
Dump sort column is invalid
+
Self-explanatory.
+
Dump xtc requires sorting by atom ID
+
Use the dump_modify sort command to enable this.
+
Dump xyz/gz only writes compressed files
+
The dump xyz/gz output file name must have a .gz suffix.
+
Dump_modify buffer yes not allowed for this style
+
Self-explanatory.
+
Dump_modify format string is too short
+
There are more fields to be dumped in a line of output than your +format string specifies.
+
Dump_modify region ID does not exist
+
Self-explanatory.
+
Dumping an atom property that isn’t allocated
+
The chosen atom style does not define the per-atom quantity being +dumped.
+
Duplicate atom IDs exist
+
Self-explanatory.
+
Duplicate fields in read_dump command
+
Self-explanatory.
+
Duplicate particle in PeriDynamic bond - simulation box is too small
+
This is likely because your box length is shorter than 2 times +the bond length.
+
Electronic temperature dropped below zero
+
Something has gone wrong with the fix ttm electron temperature model.
+
Element not defined in potential file
+
The specified element is not in the potential file.
+
Empty brackets in variable
+
There is no variable syntax that uses empty brackets. Check +the variable doc page.
+
Energy was not tallied on needed timestep
+
You are using a thermo keyword that requires potentials to +have tallied energy, but they didn’t on this timestep. See the +variable doc page for ideas on how to make this work.
+
Epsilon or sigma reference not set by pair style in PPPMDisp
+
Self-explanatory.
+
Epsilon or sigma reference not set by pair style in ewald/n
+
The pair style is not providing the needed epsilon or sigma values.
+
Error in vdw spline: inner radius > outer radius
+
A pre-tabulated spline is invalid. Likely a problem with the +potential parameters.
+
Error writing averaged chunk data
+
Something in the output to the file triggered an error.
+
Error writing file header
+
Something in the output to the file triggered an error.
+
Error writing out correlation data
+
Something in the output to the file triggered an error.
+
Error writing out histogram data
+
Something in the output to the file triggered an error.
+
Error writing out time averaged data
+
Something in the output to the file triggered an error.
+
Failed to allocate %ld bytes for array %s
+
Your LAMMPS simulation has run out of memory. You need to run a +smaller simulation or on more processors.
+
Failed to open FFmpeg pipeline to file %s
+
The specified file cannot be opened. Check that the path and name are +correct and writable and that the FFmpeg executable can be found and run.
+
Failed to reallocate %ld bytes for array %s
+
Your LAMMPS simulation has run out of memory. You need to run a +smaller simulation or on more processors.
+
Fewer SRD bins than processors in some dimension
+
This is not allowed. Make your SRD bin size smaller.
+
File variable could not read value
+
Check the file assigned to the variable.
+
Final box dimension due to fix deform is < 0.0
+
Self-explanatory.
+
Fix %s does not allow use of dynamic group
+
Dynamic groups have not yet been enabled for this fix.
+
Fix ID for compute chunk/atom does not exist
+
Self-explanatory.
+
Fix ID for compute erotate/rigid does not exist
+
Self-explanatory.
+
Fix ID for compute ke/rigid does not exist
+
Self-explanatory.
+
Fix ID for compute reduce does not exist
+
Self-explanatory.
+
Fix ID for compute slice does not exist
+
Self-explanatory.
+
Fix ID for fix ave/atom does not exist
+
Self-explanatory.
+
Fix ID for fix ave/chunk does not exist
+
Self-explanatory.
+
Fix ID for fix ave/correlate does not exist
+
Self-explanatory.
+
Fix ID for fix ave/histo does not exist
+
Self-explanatory.
+
Fix ID for fix ave/spatial does not exist
+
Self-explanatory.
+
Fix ID for fix ave/time does not exist
+
Self-explanatory.
+
Fix ID for fix store/state does not exist
+
Self-explanatory
+
Fix ID for fix vector does not exist
+
Self-explanatory.
+
Fix ID for read_data does not exist
+
Self-explanatory.
+
Fix ID for velocity does not exist
+
Self-explanatory.
+
Fix ID must be alphanumeric or underscore characters
+
Self-explanatory.
+
Fix SRD: bad bin assignment for SRD advection
+
Something has gone wrong in your SRD model; try using more +conservative settings.
+
Fix SRD: bad search bin assignment
+
Something has gone wrong in your SRD model; try using more +conservative settings.
+
Fix SRD: bad stencil bin for big particle
+
Something has gone wrong in your SRD model; try using more +conservative settings.
+
Fix SRD: too many big particles in bin
+
Reset the ATOMPERBIN parameter at the top of fix_srd.cpp +to a larger value, and re-compile the code.
+
Fix SRD: too many walls in bin
+
This should not happen unless your system has been setup incorrectly.
+
Fix adapt interface to this pair style not supported
+
New coding for the pair style would need to be done.
+
Fix adapt kspace style does not exist
+
Self-explanatory.
+
Fix adapt pair style does not exist
+
Self-explanatory
+
Fix adapt pair style param not supported
+
The pair style does not know about the parameter you specified.
+
Fix adapt requires atom attribute charge
+
The atom style being used does not specify an atom charge.
+
Fix adapt requires atom attribute diameter
+
The atom style being used does not specify an atom diameter.
+
Fix adapt type pair range is not valid for pair hybrid sub-style
+
Self-explanatory.
+
Fix append/atoms requires a lattice be defined
+
Use the lattice command for this purpose.
+
Fix ave/atom compute array is accessed out-of-range
+
Self-explanatory.
+
Fix ave/atom compute does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/atom compute does not calculate a per-atom vector
+
A compute used by fix ave/atom must generate per-atom values.
+
Fix ave/atom compute does not calculate per-atom values
+
A compute used by fix ave/atom must generate per-atom values.
+
Fix ave/atom fix array is accessed out-of-range
+
Self-explanatory.
+
Fix ave/atom fix does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/atom fix does not calculate a per-atom vector
+
A fix used by fix ave/atom must generate per-atom values.
+
Fix ave/atom fix does not calculate per-atom values
+
A fix used by fix ave/atom must generate per-atom values.
+
Fix ave/atom variable is not atom-style variable
+
A variable used by fix ave/atom must generate per-atom values.
+
Fix ave/chunk compute does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/chunk compute does not calculate a per-atom vector
+
Self-explanatory.
+
Fix ave/chunk compute does not calculate per-atom values
+
Self-explanatory.
+
Fix ave/chunk compute vector is accessed out-of-range
+
Self-explanatory.
+
Fix ave/chunk does not use chunk/atom compute
+
The specified compute is not for a compute chunk/atom command.
+
Fix ave/chunk fix does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/chunk fix does not calculate a per-atom vector
+
Self-explanatory.
+
Fix ave/chunk fix does not calculate per-atom values
+
Self-explanatory.
+
Fix ave/chunk fix vector is accessed out-of-range
+
Self-explanatory.
+
Fix ave/chunk variable is not atom-style variable
+
Self-explanatory.
+
Fix ave/correlate compute does not calculate a scalar
+
Self-explanatory.
+
Fix ave/correlate compute does not calculate a vector
+
Self-explanatory.
+
Fix ave/correlate compute vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Fix ave/correlate fix does not calculate a scalar
+
Self-explanatory.
+
Fix ave/correlate fix does not calculate a vector
+
Self-explanatory.
+
Fix ave/correlate fix vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Fix ave/correlate variable is not equal-style variable
+
Self-explanatory.
+
Fix ave/histo cannot input local values in scalar mode
+
Self-explanatory.
+
Fix ave/histo cannot input per-atom values in scalar mode
+
Self-explanatory.
+
Fix ave/histo compute array is accessed out-of-range
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a global array
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a global scalar
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a global vector
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a local array
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a local vector
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/histo compute does not calculate a per-atom vector
+
Self-explanatory.
+
Fix ave/histo compute does not calculate local values
+
Self-explanatory.
+
Fix ave/histo compute does not calculate per-atom values
+
Self-explanatory.
+
Fix ave/histo compute vector is accessed out-of-range
+
Self-explanatory.
+
Fix ave/histo fix array is accessed out-of-range
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a global array
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a global scalar
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a global vector
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a local array
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a local vector
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/histo fix does not calculate a per-atom vector
+
Self-explanatory.
+
Fix ave/histo fix does not calculate local values
+
Self-explanatory.
+
Fix ave/histo fix does not calculate per-atom values
+
Self-explanatory.
+
Fix ave/histo fix vector is accessed out-of-range
+
Self-explanatory.
+
Fix ave/histo input is invalid compute
+
Self-explanatory.
+
Fix ave/histo input is invalid fix
+
Self-explanatory.
+
Fix ave/histo input is invalid variable
+
Self-explanatory.
+
Fix ave/histo inputs are not all global, peratom, or local
+
All inputs in a single fix ave/histo command must be of the +same style.
+
Fix ave/histo/weight value and weight vector lengths do not match
+
Self-explanatory.
+
Fix ave/spatial compute does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/spatial compute does not calculate a per-atom vector
+
A compute used by fix ave/spatial must generate per-atom values.
+
Fix ave/spatial compute does not calculate per-atom values
+
A compute used by fix ave/spatial must generate per-atom values.
+
Fix ave/spatial compute vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Fix ave/spatial fix does not calculate a per-atom array
+
Self-explanatory.
+
Fix ave/spatial fix does not calculate a per-atom vector
+
A fix used by fix ave/spatial must generate per-atom values.
+
Fix ave/spatial fix does not calculate per-atom values
+
A fix used by fix ave/spatial must generate per-atom values.
+
Fix ave/spatial fix vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Fix ave/spatial for triclinic boxes requires units reduced
+
Self-explanatory.
+
Fix ave/spatial settings invalid with changing box size
+
If the box size changes, only the units reduced option can be +used.
+
Fix ave/spatial variable is not atom-style variable
+
A variable used by fix ave/spatial must generate per-atom values.
+
Fix ave/time cannot set output array intensive/extensive from these inputs
+
One of more of the vector inputs has individual elements which are +flagged as intensive or extensive. Such an input cannot be flagged as +all intensive/extensive when turned into an array by fix ave/time.
+
Fix ave/time cannot use variable with vector mode
+
Variables produce scalar values.
+
Fix ave/time columns are inconsistent lengths
+
Self-explanatory.
+
Fix ave/time compute array is accessed out-of-range
+
An index for the array is out of bounds.
+
Fix ave/time compute does not calculate a scalar
+
Self-explanatory.
+
Fix ave/time compute does not calculate a vector
+
Self-explanatory.
+
Fix ave/time compute does not calculate an array
+
Self-explanatory.
+
Fix ave/time compute vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Fix ave/time fix array cannot be variable length
+
Self-explanatory.
+
Fix ave/time fix array is accessed out-of-range
+
An index for the array is out of bounds.
+
Fix ave/time fix does not calculate a scalar
+
Self-explanatory.
+
Fix ave/time fix does not calculate a vector
+
Self-explanatory.
+
Fix ave/time fix does not calculate an array
+
Self-explanatory.
+
Fix ave/time fix vector cannot be variable length
+
Self-explanatory.
+
Fix ave/time fix vector is accessed out-of-range
+
The index for the vector is out of bounds.
+
Fix ave/time variable is not equal-style variable
+
Self-explanatory.
+
Fix balance rcb cannot be used with comm_style brick
+
Comm_style tiled must be used instead.
+
Fix balance shift string is invalid
+
The string can only contain the characters “x”, “y”, or “z”.
+
Fix bond/break needs ghost atoms from further away
+
This is because the fix needs to walk bonds to a certain distance to +acquire needed info, The comm_modify cutoff command can be used to +extend the communication range.
+
Fix bond/create angle type is invalid
+
Self-explanatory.
+
Fix bond/create cutoff is longer than pairwise cutoff
+
This is not allowed because bond creation is done using the +pairwise neighbor list.
+
Fix bond/create dihedral type is invalid
+
Self-explanatory.
+
Fix bond/create improper type is invalid
+
Self-explanatory.
+
Fix bond/create induced too many angles/dihedrals/impropers per atom
+
See the read_data command for info on using the “extra/angle/per/atom”, +(or dihedral, improper) keywords to allow for additional +angles, dihedrals, and impropers to be formed.
+
Fix bond/create needs ghost atoms from further away
+
This is because the fix needs to walk bonds to a certain distance to +acquire needed info, The comm_modify cutoff command can be used to +extend the communication range.
+
Fix bond/swap cannot use dihedral or improper styles
+
These styles cannot be defined when using this fix.
+
Fix bond/swap requires pair and bond styles
+
Self-explanatory.
+
Fix bond/swap requires special_bonds = 0,1,1
+
Self-explanatory.
+
Fix box/relax generated negative box length
+
The pressure being applied is likely too large. Try applying +it incrementally, to build to the high pressure.
+
Fix command before simulation box is defined
+
The fix command cannot be used before a read_data, read_restart, or +create_box command.
+
Fix deform cannot use yz variable with xy
+
The yz setting cannot be a variable if xy deformation is also +specified. This is because LAMMPS cannot determine if the yz setting +will induce a box flip which would be invalid if xy is also changing.
+
Fix deform is changing yz too much with xy
+
When both yz and xy are changing, it induces changes in xz if the +box must flip from one tilt extreme to another. Thus it is not +allowed for yz to grow so much that a flip is induced.
+
Fix deform tilt factors require triclinic box
+
Cannot deform the tilt factors of a simulation box unless it +is a triclinic (non-orthogonal) box.
+
Fix deform volume setting is invalid
+
Cannot use volume style unless other dimensions are being controlled.
+
Fix deposit and fix rigid/small not using same molecule template ID
+
Self-explanatory.
+
Fix deposit and fix shake not using same molecule template ID
+
Self-explanatory.
+
Fix deposit molecule must have atom types
+
The defined molecule does not specify atom types.
+
Fix deposit molecule must have coordinates
+
The defined molecule does not specify coordinates.
+
Fix deposit molecule template ID must be same as atom_style template ID
+
When using atom_style template, you cannot deposit molecules that are +not in that template.
+
Fix deposit region cannot be dynamic
+
Only static regions can be used with fix deposit.
+
Fix deposit region does not support a bounding box
+
Not all regions represent bounded volumes. You cannot use +such a region with the fix deposit command.
+
Fix deposit shake fix does not exist
+
Self-explanatory.
+
Fix efield requires atom attribute q or mu
+
The atom style defined does not have this attribute.
+
Fix efield with dipoles cannot use atom-style variables
+
This option is not supported.
+
Fix evaporate molecule requires atom attribute molecule
+
The atom style being used does not define a molecule ID.
+
Fix external callback function not set
+
This must be done by an external program in order to use this fix.
+
Fix for fix ave/atom not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix ave/atom is +requesting a value on a non-allowed timestep.
+
Fix for fix ave/chunk not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix ave/chunk is +requesting a value on a non-allowed timestep.
+
Fix for fix ave/correlate not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix ave/correlate +is requesting a value on a non-allowed timestep.
+
Fix for fix ave/histo not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix ave/histo is +requesting a value on a non-allowed timestep.
+
Fix for fix ave/spatial not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix ave/spatial is +requesting a value on a non-allowed timestep.
+
Fix for fix ave/time not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix ave/time +is requesting a value on a non-allowed timestep.
+
Fix for fix store/state not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix store/state +is requesting a value on a non-allowed timestep.
+
Fix for fix vector not computed at compatible time
+
Fixes generate their values on specific timesteps. Fix vector is +requesting a value on a non-allowed timestep.
+
Fix freeze requires atom attribute torque
+
The atom style defined does not have this attribute.
+
Fix gcmc and fix shake not using same molecule template ID
+
Self-explanatory.
+
Fix gcmc atom has charge, but atom style does not
+
Self-explanatory.
+
Fix gcmc cannot exchange individual atoms belonging to a molecule
+
This is an error since you should not delete only one atom of a +molecule. The user has specified atomic (non-molecular) gas +exchanges, but an atom belonging to a molecule could be deleted.
+
Fix gcmc does not (yet) work with atom_style template
+
Self-explanatory.
+
Fix gcmc molecule command requires that atoms have molecule attributes
+
Should not choose the gcmc molecule feature if no molecules are being +simulated. The general molecule flag is off, but gcmc’s molecule flag +is on.
+
Fix gcmc molecule has charges, but atom style does not
+
Self-explanatory.
+
Fix gcmc molecule must have atom types
+
The defined molecule does not specify atom types.
+
Fix gcmc molecule must have coordinates
+
The defined molecule does not specify coordinates.
+
Fix gcmc molecule template ID must be same as atom_style template ID
+
When using atom_style template, you cannot insert molecules that are +not in that template.
+
Fix gcmc put atom outside box
+
This should not normally happen. Contact the developers.
+
Fix gcmc ran out of available atom IDs
+
See the setting for tagint in the src/lmptype.h file.
+
Fix gcmc ran out of available molecule IDs
+
See the setting for tagint in the src/lmptype.h file.
+
Fix gcmc region cannot be dynamic
+
Only static regions can be used with fix gcmc.
+
Fix gcmc region does not support a bounding box
+
Not all regions represent bounded volumes. You cannot use +such a region with the fix gcmc command.
+
Fix gcmc region extends outside simulation box
+
Self-explanatory.
+
Fix gcmc shake fix does not exist
+
Self-explanatory.
+
Fix gld c coefficients must be >= 0
+
Self-explanatory.
+
Fix gld needs more prony series coefficients
+
Self-explanatory.
+
Fix gld prony terms must be > 0
+
Self-explanatory.
+
Fix gld series type must be pprony for now
+
Self-explanatory.
+
Fix gld start temperature must be >= 0
+
Self-explanatory.
+
Fix gld stop temperature must be >= 0
+
Self-explanatory.
+
Fix gld tau coefficients must be > 0
+
Self-explanatory.
+
Fix heat group has no atoms
+
Self-explanatory.
+
Fix heat kinetic energy of an atom went negative
+
This will cause the velocity rescaling about to be performed by fix +heat to be invalid.
+
Fix heat kinetic energy went negative
+
This will cause the velocity rescaling about to be performed by fix +heat to be invalid.
+
Fix in variable not computed at compatible time
+
Fixes generate their values on specific timesteps. The variable is +requesting the values on a non-allowed timestep.
+
Fix langevin angmom is not yet implemented with kokkos
+
This option is not yet available.
+
Fix langevin angmom requires atom style ellipsoid
+
Self-explanatory.
+
Fix langevin angmom requires extended particles
+
This fix option cannot be used with point particles.
+
Fix langevin omega is not yet implemented with kokkos
+
This option is not yet available.
+
Fix langevin omega requires atom style sphere
+
Self-explanatory.
+
Fix langevin omega requires extended particles
+
One of the particles has radius 0.0.
+
Fix langevin period must be > 0.0
+
The time window for temperature relaxation must be > 0
+
Fix langevin variable returned negative temperature
+
Self-explanatory.
+
Fix momentum group has no atoms
+
Self-explanatory.
+
Fix move cannot define z or vz variable for 2d problem
+
Self-explanatory.
+
Fix move cannot rotate aroung non z-axis for 2d problem
+
Self-explanatory.
+
Fix move cannot set linear z motion for 2d problem
+
Self-explanatory.
+
Fix move cannot set wiggle z motion for 2d problem
+
Self-explanatory.
+
Fix msst compute ID does not compute potential energy
+
Self-explanatory.
+
Fix msst compute ID does not compute pressure
+
Self-explanatory.
+
Fix msst compute ID does not compute temperature
+
Self-explanatory.
+
Fix msst requires a periodic box
+
Self-explanatory.
+
Fix msst tscale must satisfy 0 <= tscale < 1
+
Self-explanatory.
+
Fix npt/nph has tilted box too far in one step - periodic cell is too far from equilibrium state
+
Self-explanatory. The change in the box tilt is too extreme +on a short timescale.
+
Fix nve/asphere requires extended particles
+
This fix can only be used for particles with a shape setting.
+
Fix nve/asphere/noforce requires atom style ellipsoid
+
Self-explanatory.
+
Fix nve/asphere/noforce requires extended particles
+
One of the particles is not an ellipsoid.
+
Fix nve/body requires atom style body
+
Self-explanatory.
+
Fix nve/body requires bodies
+
This fix can only be used for particles that are bodies.
+
Fix nve/line can only be used for 2d simulations
+
Self-explanatory.
+
Fix nve/line requires atom style line
+
Self-explanatory.
+
Fix nve/line requires line particles
+
Self-explanatory.
+
Fix nve/sphere dipole requires atom attribute mu
+
An atom style with this attribute is needed.
+
Fix nve/sphere requires atom style sphere
+
Self-explanatory.
+
Fix nve/sphere requires extended particles
+
This fix can only be used for particles of a finite size.
+
Fix nve/tri can only be used for 3d simulations
+
Self-explanatory.
+
Fix nve/tri requires atom style tri
+
Self-explanatory.
+
Fix nve/tri requires tri particles
+
Self-explanatory.
+
Fix nvt/nph/npt asphere requires extended particles
+
The shape setting for a particle in the fix group has shape = 0.0, +which means it is a point particle.
+
Fix nvt/nph/npt body requires bodies
+
Self-explanatory.
+
Fix nvt/nph/npt sphere requires atom style sphere
+
Self-explanatory.
+
Fix nvt/npt/nph damping parameters must be > 0.0
+
Self-explanatory.
+
Fix nvt/npt/nph dilate group ID does not exist
+
Self-explanatory.
+
Fix nvt/sphere requires extended particles
+
This fix can only be used for particles of a finite size.
+
Fix orient/fcc file open failed
+
The fix orient/fcc command could not open a specified file.
+
Fix orient/fcc file read failed
+
The fix orient/fcc command could not read the needed parameters from a +specified file.
+
Fix orient/fcc found self twice
+
The neighbor lists used by fix orient/fcc are messed up. If this +error occurs, it is likely a bug, so send an email to the +developers.
+
Fix peri neigh does not exist
+
Somehow a fix that the pair style defines has been deleted.
+
Fix pour and fix rigid/small not using same molecule template ID
+
Self-explanatory.
+
Fix pour and fix shake not using same molecule template ID
+
Self-explanatory.
+
Fix pour insertion count per timestep is 0
+
Self-explanatory.
+
Fix pour molecule must have atom types
+
The defined molecule does not specify atom types.
+
Fix pour molecule must have coordinates
+
The defined molecule does not specify coordinates.
+
Fix pour molecule template ID must be same as atom style template ID
+
When using atom_style template, you cannot pour molecules that are +not in that template.
+
Fix pour polydisperse fractions do not sum to 1.0
+
Self-explanatory.
+
Fix pour region ID does not exist
+
Self-explanatory.
+
Fix pour region cannot be dynamic
+
Only static regions can be used with fix pour.
+
Fix pour region does not support a bounding box
+
Not all regions represent bounded volumes. You cannot use +such a region with the fix pour command.
+
Fix pour requires atom attributes radius, rmass
+
The atom style defined does not have these attributes.
+
Fix pour rigid fix does not exist
+
Self-explanatory.
+
Fix pour shake fix does not exist
+
Self-explanatory.
+
Fix press/berendsen damping parameters must be > 0.0
+
Self-explanatory.
+
Fix property/atom cannot specify mol twice
+
Self-explanatory.
+
Fix property/atom cannot specify q twice
+
Self-explanatory.
+
Fix property/atom mol when atom_style already has molecule attribute
+
Self-explanatory.
+
Fix property/atom q when atom_style already has charge attribute
+
Self-explanatory.
+
Fix property/atom vector name already exists
+
The name for an integer or floating-point vector must be unique.
+
Fix qeq has negative upper Taper radius cutoff
+
Self-explanatory.
+
Fix qeq/comb group has no atoms
+
Self-explanatory.
+
Fix qeq/comb requires atom attribute q
+
An atom style with charge must be used to perform charge equilibration.
+
Fix qeq/dynamic group has no atoms
+
Self-explanatory.
+
Fix qeq/dynamic requires atom attribute q
+
Self-explanatory.
+
Fix qeq/fire group has no atoms
+
Self-explanatory.
+
Fix qeq/fire requires atom attribute q
+
Self-explanatory.
+
Fix qeq/point group has no atoms
+
Self-explanatory.
+
Fix qeq/point has insufficient QEq matrix size
+
Occurs when number of neighbor atoms for an atom increased too much +during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and +recompile.
+
Fix qeq/point requires atom attribute q
+
Self-explanatory.
+
Fix qeq/shielded group has no atoms
+
Self-explanatory.
+
Fix qeq/shielded has insufficient QEq matrix size
+
Occurs when number of neighbor atoms for an atom increased too much +during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and +recompile.
+
Fix qeq/shielded requires atom attribute q
+
Self-explanatory.
+
Fix qeq/slater could not extract params from pair coul/streitz
+
This should not happen unless pair coul/streitz has been altered.
+
Fix qeq/slater group has no atoms
+
Self-explanatory.
+
Fix qeq/slater has insufficient QEq matrix size
+
Occurs when number of neighbor atoms for an atom increased too much +during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and +recompile.
+
Fix qeq/slater requires atom attribute q
+
Self-explanatory.
+
Fix reax/bonds numbonds > nsbmax_most
+
The limit of the number of bonds expected by the ReaxFF force field +was exceeded.
+
Fix recenter group has no atoms
+
Self-explanatory.
+
Fix restrain requires an atom map, see atom_modify
+
Self-explanatory.
+
Fix rigid atom has non-zero image flag in a non-periodic dimension
+
Image flags for non-periodic dimensions should not be set.
+
Fix rigid file has no lines
+
Self-explanatory.
+
Fix rigid langevin period must be > 0.0
+
Self-explanatory.
+
Fix rigid molecule requires atom attribute molecule
+
Self-explanatory.
+
Fix rigid npt/nph dilate group ID does not exist
+
Self-explanatory.
+
Fix rigid npt/nph does not yet allow triclinic box
+
This is a current restriction in LAMMPS.
+
Fix rigid npt/nph period must be > 0.0
+
Self-explanatory.
+
Fix rigid npt/small t_chain should not be less than 1
+
Self-explanatory.
+
Fix rigid npt/small t_order must be 3 or 5
+
Self-explanatory.
+
Fix rigid nvt/npt/nph damping parameters must be > 0.0
+
Self-explanatory.
+
Fix rigid nvt/small t_chain should not be less than 1
+
Self-explanatory.
+
Fix rigid nvt/small t_iter should not be less than 1
+
Self-explanatory.
+
Fix rigid nvt/small t_order must be 3 or 5
+
Self-explanatory.
+
Fix rigid xy torque cannot be on for 2d simulation
+
Self-explanatory.
+
Fix rigid z force cannot be on for 2d simulation
+
Self-explanatory.
+
Fix rigid/npt period must be > 0.0
+
Self-explanatory.
+
Fix rigid/npt temperature order must be 3 or 5
+
Self-explanatory.
+
Fix rigid/npt/small period must be > 0.0
+
Self-explanatory.
+
Fix rigid/nvt period must be > 0.0
+
Self-explanatory.
+
Fix rigid/nvt temperature order must be 3 or 5
+
Self-explanatory.
+
Fix rigid/nvt/small period must be > 0.0
+
Self-explanatory.
+
Fix rigid/small atom has non-zero image flag in a non-periodic dimension
+
Image flags for non-periodic dimensions should not be set.
+
Fix rigid/small langevin period must be > 0.0
+
Self-explanatory.
+
Fix rigid/small molecule must have atom types
+
The defined molecule does not specify atom types.
+
Fix rigid/small molecule must have coordinates
+
The defined molecule does not specify coordinates.
+
Fix rigid/small npt/nph period must be > 0.0
+
Self-explanatory.
+
Fix rigid/small nvt/npt/nph damping parameters must be > 0.0
+
Self-explanatory.
+
Fix rigid/small nvt/npt/nph dilate group ID does not exist
+
Self-explanatory.
+
Fix rigid/small requires an atom map, see atom_modify
+
Self-explanatory.
+
Fix rigid/small requires atom attribute molecule
+
Self-explanatory.
+
Fix rigid: Bad principal moments
+
The principal moments of inertia computed for a rigid body +are not within the required tolerances.
+
Fix shake cannot be used with minimization
+
Cannot use fix shake while doing an energy minimization since +it turns off bonds that should contribute to the energy.
+
Fix shake molecule template must have shake info
+
The defined molecule does not specify SHAKE information.
+
Fix spring couple group ID does not exist
+
Self-explanatory.
+
Fix srd can only currently be used with comm_style brick
+
This is a current restriction in LAMMPS.
+
Fix srd lamda must be >= 0.6 of SRD grid size
+
This is a requirement for accuracy reasons.
+
Fix srd no-slip requires atom attribute torque
+
This is because the SRD collisions will impart torque to the solute +particles.
+
Fix srd requires SRD particles all have same mass
+
Self-explanatory.
+
Fix srd requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Fix srd requires newton pair on
+
Self-explanatory.
+
Fix store/state compute array is accessed out-of-range
+
Self-explanatory.
+
Fix store/state compute does not calculate a per-atom array
+
The compute calculates a per-atom vector.
+
Fix store/state compute does not calculate a per-atom vector
+
The compute calculates a per-atom vector.
+
Fix store/state compute does not calculate per-atom values
+
Computes that calculate global or local quantities cannot be used +with fix store/state.
+
Fix store/state fix array is accessed out-of-range
+
Self-explanatory.
+
Fix store/state fix does not calculate a per-atom array
+
The fix calculates a per-atom vector.
+
Fix store/state fix does not calculate a per-atom vector
+
The fix calculates a per-atom array.
+
Fix store/state fix does not calculate per-atom values
+
Fixes that calculate global or local quantities cannot be used with +fix store/state.
+
Fix store/state for atom property that isn’t allocated
+
Self-explanatory.
+
Fix store/state variable is not atom-style variable
+
Only atom-style variables calculate per-atom quantities.
+
Fix temp/berendsen period must be > 0.0
+
Self-explanatory.
+
Fix temp/berendsen variable returned negative temperature
+
Self-explanatory.
+
Fix temp/csld is not compatible with fix rattle or fix shake
+
These two commands cannot currently be used together with fix temp/csld.
+
Fix temp/csld variable returned negative temperature
+
Self-explanatory.
+
Fix temp/csvr variable returned negative temperature
+
Self-explanatory.
+
Fix temp/rescale variable returned negative temperature
+
Self-explanatory.
+
Fix tfmc displacement length must be > 0
+
Self-explanatory.
+
Fix tfmc is not compatible with fix shake
+
These two commands cannot currently be used together.
+
Fix tfmc temperature must be > 0
+
Self-explanatory.
+
Fix thermal/conductivity swap value must be positive
+
Self-explanatory.
+
Fix tmd must come after integration fixes
+
Any fix tmd command must appear in the input script after all time +integration fixes (nve, nvt, npt). See the fix tmd documentation for +details.
+
Fix ttm electron temperatures must be > 0.0
+
Self-explanatory.
+
Fix ttm electronic_density must be > 0.0
+
Self-explanatory.
+
Fix ttm electronic_specific_heat must be > 0.0
+
Self-explanatory.
+
Fix ttm electronic_thermal_conductivity must be >= 0.0
+
Self-explanatory.
+
Fix ttm gamma_p must be > 0.0
+
Self-explanatory.
+
Fix ttm gamma_s must be >= 0.0
+
Self-explanatory.
+
Fix ttm number of nodes must be > 0
+
Self-explanatory.
+
Fix ttm v_0 must be >= 0.0
+
Self-explanatory.
+
Fix used in compute chunk/atom not computed at compatible time
+
The chunk/atom compute cannot query the output of the fix on a timestep +it is needed.
+
Fix used in compute reduce not computed at compatible time
+
Fixes generate their values on specific timesteps. Compute reduce is +requesting a value on a non-allowed timestep.
+
Fix used in compute slice not computed at compatible time
+
Fixes generate their values on specific timesteps. Compute slice is +requesting a value on a non-allowed timestep.
+
Fix vector cannot set output array intensive/extensive from these inputs
+
The inputs to the command have conflicting intensive/extensive attributes. +You need to use more than one fix vector command.
+
Fix vector compute does not calculate a scalar
+
Self-explanatory.
+
Fix vector compute does not calculate a vector
+
Self-explanatory.
+
Fix vector compute vector is accessed out-of-range
+
Self-explanatory.
+
Fix vector fix does not calculate a scalar
+
Self-explanatory.
+
Fix vector fix does not calculate a vector
+
Self-explanatory.
+
Fix vector fix vector is accessed out-of-range
+
Self-explanatory.
+
Fix vector variable is not equal-style variable
+
Self-explanatory.
+
Fix viscosity swap value must be positive
+
Self-explanatory.
+
Fix viscosity vtarget value must be positive
+
Self-explanatory.
+
Fix wall cutoff <= 0.0
+
Self-explanatory.
+
Fix wall/colloid requires atom style sphere
+
Self-explanatory.
+
Fix wall/colloid requires extended particles
+
One of the particles has radius 0.0.
+
Fix wall/gran is incompatible with Pair style
+
Must use a granular pair style to define the parameters needed for +this fix.
+
Fix wall/gran requires atom style sphere
+
Self-explanatory.
+
Fix wall/piston command only available at zlo
+
The face keyword must be zlo.
+
Fix wall/region colloid requires atom style sphere
+
Self-explanatory.
+
Fix wall/region colloid requires extended particles
+
One of the particles has radius 0.0.
+
Fix wall/region cutoff <= 0.0
+
Self-explanatory.
+
Fix_modify pressure ID does not compute pressure
+
The compute ID assigned to the fix must compute pressure.
+
Fix_modify temperature ID does not compute temperature
+
The compute ID assigned to the fix must compute temperature.
+
For triclinic deformation, specified target stress must be hydrostatic
+
Triclinic pressure control is allowed using the tri keyword, but +non-hydrostatic pressure control can not be used in this case.
+
Found no restart file matching pattern
+
When using a “*” in the restart file name, no matching file was found.
+
GPU library not compiled for this accelerator
+
Self-explanatory.
+
GPU package does not (yet) work with atom_style template
+
Self-explanatory.
+
GPU particle split must be set to 1 for this pair style.
+
For this pair style, you cannot run part of the force calculation on +the host. See the package command.
+
GPU split param must be positive for hybrid pair styles
+
See the package gpu command.
+
GPUs are requested but Kokkos has not been compiled for CUDA
+
Recompile Kokkos with CUDA support to use GPUs.
+
Ghost velocity forward comm not yet implemented with Kokkos
+
This is a current restriction.
+
Gmask function in equal-style variable formula
+
Gmask is per-atom operation.
+
Gravity changed since fix pour was created
+
The gravity vector defined by fix gravity must be static.
+
Gravity must point in -y to use with fix pour in 2d
+
Self-explanatory.
+
Gravity must point in -z to use with fix pour in 3d
+
Self-explanatory.
+
Grmask function in equal-style variable formula
+
Grmask is per-atom operation.
+
Group ID does not exist
+
A group ID used in the group command does not exist.
+
Group ID in variable formula does not exist
+
Self-explanatory.
+
Group all cannot be made dynamic
+
This operation is not allowed.
+
Group command before simulation box is defined
+
The group command cannot be used before a read_data, read_restart, or +create_box command.
+
Group dynamic cannot reference itself
+
Self-explanatory.
+
Group dynamic parent group cannot be dynamic
+
Self-explanatory.
+
Group dynamic parent group does not exist
+
Self-explanatory.
+
Group region ID does not exist
+
A region ID used in the group command does not exist.
+
If read_dump purges it cannot replace or trim
+
These operations are not compatible. See the read_dump doc +page for details.
+
Illegal … command
+
Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line.
+
Illegal COMB parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal COMB3 parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal Stillinger-Weber parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal Tersoff parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal Vashishta parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal compute voronoi/atom command (occupation and (surface or edges))
+
Self-explanatory.
+
Illegal coul/streitz parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal dump_modify sfactor value (must be > 0.0)
+
Self-explanatory.
+
Illegal dump_modify tfactor value (must be > 0.0)
+
Self-explanatory.
+
Illegal fix gcmc gas mass <= 0
+
The computed mass of the designated gas molecule or atom type was less +than or equal to zero.
+
Illegal fix tfmc random seed
+
Seeds can only be nonzero positive integers.
+
Illegal fix wall/piston velocity
+
The piston velocity must be positive.
+
Illegal integrate style
+
Self-explanatory.
+
Illegal nb3b/harmonic parameter
+
One or more of the coefficients defined in the potential file is +invalid.
+
Illegal number of angle table entries
+
There must be at least 2 table entries.
+
Illegal number of bond table entries
+
There must be at least 2 table entries.
+
Illegal number of pair table entries
+
There must be at least 2 table entries.
+
Illegal or unset periodicity in restart
+
This error should not normally occur unless the restart file is invalid.
+
Illegal range increment value
+
The increment must be >= 1.
+
Illegal simulation box
+
The lower bound of the simulation box is greater than the upper bound.
+
Illegal size double vector read requested
+
This error should not normally occur unless the restart file is invalid.
+
Illegal size integer vector read requested
+
This error should not normally occur unless the restart file is invalid.
+
Illegal size string or corrupt restart
+
This error should not normally occur unless the restart file is invalid.
+
Imageint setting in lmptype.h is invalid
+
Imageint must be as large or larger than smallint.
+
Imageint setting in lmptype.h is not compatible
+
Format of imageint stored in restart file is not consistent with +LAMMPS version you are running. See the settings in src/lmptype.h
+
Improper atom missing in delete_bonds
+
The delete_bonds command cannot find one or more atoms in a particular +improper on a particular processor. The pairwise cutoff is too short +or the atoms are too far apart to make a valid improper.
+
Improper atom missing in set command
+
The set command cannot find one or more atoms in a particular improper +on a particular processor. The pairwise cutoff is too short or the +atoms are too far apart to make a valid improper.
+
Improper atoms %d %d %d %d missing on proc %d at step %ld
+
One or more of 4 atoms needed to compute a particular improper are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the improper has blown apart and an atom is +too far away.
+
Improper atoms missing on proc %d at step %ld
+
One or more of 4 atoms needed to compute a particular improper are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the improper has blown apart and an atom is +too far away.
+
Improper coeff for hybrid has invalid style
+
Improper style hybrid uses another improper style as one of its +coefficients. The improper style used in the improper_coeff command +or read from a restart file is not recognized.
+
Improper coeffs are not set
+
No improper coefficients have been assigned in the data file or via +the improper_coeff command.
+
Improper style hybrid cannot have hybrid as an argument
+
Self-explanatory.
+
Improper style hybrid cannot have none as an argument
+
Self-explanatory.
+
Improper style hybrid cannot use same improper style twice
+
Self-explanatory.
+
Improper_coeff command before improper_style is defined
+
Coefficients cannot be set in the data file or via the improper_coeff +command until an improper_style has been assigned.
+
Improper_coeff command before simulation box is defined
+
The improper_coeff command cannot be used before a read_data, +read_restart, or create_box command.
+
Improper_coeff command when no impropers allowed
+
The chosen atom style does not allow for impropers to be defined.
+
Improper_style command when no impropers allowed
+
The chosen atom style does not allow for impropers to be defined.
+
Impropers assigned incorrectly
+
Impropers read in from the data file were not assigned correctly to +atoms. This means there is something invalid about the topology +definitions.
+
Impropers defined but no improper types
+
The data file header lists improper but no improper types.
+
Incomplete use of variables in create_atoms command
+
The var and set options must be used together.
+
Inconsistent iparam/jparam values in fix bond/create command
+
If itype and jtype are the same, then their maxbond and newtype +settings must also be the same.
+
Inconsistent line segment in data file
+
The end points of the line segment are not equal distances from the +center point which is the atom coordinate.
+
Inconsistent triangle in data file
+
The centroid of the triangle as defined by the corner points is not +the atom coordinate.
+
Inconsistent use of finite-size particles by molecule template molecules
+
Not all of the molecules define a radius for their constituent +particles.
+
Incorrect # of floating-point values in Bodies section of data file
+
See doc page for body style.
+
Incorrect # of integer values in Bodies section of data file
+
See doc page for body style.
+
Incorrect %s format in data file
+
A section of the data file being read by fix property/atom does +not have the correct number of values per line.
+
Incorrect SNAP parameter file
+
The file cannot be parsed correctly, check its internal syntax.
+
Incorrect args for angle coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect args for bond coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect args for dihedral coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect args for improper coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect args for pair coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect args in pair_style command
+
Self-explanatory.
+
Incorrect atom format in data file
+
Number of values per atom line in the data file is not consistent with +the atom style.
+
Incorrect atom format in neb file
+
The number of fields per line is not what expected.
+
Incorrect bonus data format in data file
+
See the read_data doc page for a description of how various kinds of +bonus data must be formatted for certain atom styles.
+
Incorrect boundaries with slab Ewald
+
Must have periodic x,y dimensions and non-periodic z dimension to use +2d slab option with Ewald.
+
Incorrect boundaries with slab EwaldDisp
+
Must have periodic x,y dimensions and non-periodic z dimension to use +2d slab option with Ewald.
+
Incorrect boundaries with slab PPPM
+
Must have periodic x,y dimensions and non-periodic z dimension to use +2d slab option with PPPM.
+
Incorrect boundaries with slab PPPMDisp
+
Must have periodic x,y dimensions and non-periodic z dimension to use +2d slab option with pppm/disp.
+
Incorrect element names in ADP potential file
+
The element names in the ADP file do not match those requested.
+
Incorrect element names in EAM potential file
+
The element names in the EAM file do not match those requested.
+
Incorrect format in COMB potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in COMB3 potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in MEAM potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in SNAP coefficient file
+
Incorrect number of words per line in the coefficient file.
+
Incorrect format in SNAP parameter file
+
Incorrect number of words per line in the parameter file.
+
Incorrect format in Stillinger-Weber potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in TMD target file
+
Format of file read by fix tmd command is incorrect.
+
Incorrect format in Tersoff potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in Vashishta potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in coul/streitz potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect format in nb3b/harmonic potential file
+
Incorrect number of words per line in the potential file.
+
Incorrect integer value in Bodies section of data file
+
See doc page for body style.
+
Incorrect multiplicity arg for dihedral coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect number of elements in potential file
+
Self-explanatory.
+
Incorrect rigid body format in fix rigid file
+
The number of fields per line is not what expected.
+
Incorrect rigid body format in fix rigid/small file
+
The number of fields per line is not what expected.
+
Incorrect sign arg for dihedral coefficients
+
Self-explanatory. Check the input script or data file.
+
Incorrect table format check for element types
+
Self-explanatory.
+
Incorrect velocity format in data file
+
Each atom style defines a format for the Velocity section +of the data file. The read-in lines do not match.
+
Incorrect weight arg for dihedral coefficients
+
Self-explanatory. Check the input script or data file.
+
Index between variable brackets must be positive
+
Self-explanatory.
+
Indexed per-atom vector in variable formula without atom map
+
Accessing a value from an atom vector requires the ability to lookup +an atom index, which is provided by an atom map. An atom map does not +exist (by default) for non-molecular problems. Using the atom_modify +map command will force an atom map to be created.
+
Initial temperatures not all set in fix ttm
+
Self-explanatory.
+
Input line quote not followed by whitespace
+
An end quote must be followed by whitespace.
+
Insertion region extends outside simulation box
+
Self-explanatory.
+
Insufficient Jacobi rotations for POEMS body
+
Eigensolve for rigid body was not sufficiently accurate.
+
Insufficient Jacobi rotations for body nparticle
+
Eigensolve for rigid body was not sufficiently accurate.
+
Insufficient Jacobi rotations for rigid body
+
Eigensolve for rigid body was not sufficiently accurate.
+
Insufficient Jacobi rotations for rigid molecule
+
Eigensolve for rigid body was not sufficiently accurate.
+
Insufficient Jacobi rotations for triangle
+
The calculation of the inertia tensor of the triangle failed. This +should not happen if it is a reasonably shaped triangle.
+
Insufficient memory on accelerator
+
There is insufficient memory on one of the devices specified for the gpu +package
+
Internal error in atom_style body
+
This error should not occur. Contact the developers.
+
Invalid -reorder N value
+
Self-explanatory.
+
Invalid Angles section in molecule file
+
Self-explanatory.
+
Invalid Bonds section in molecule file
+
Self-explanatory.
+
Invalid Boolean syntax in if command
+
Self-explanatory.
+
Invalid Charges section in molecule file
+
Self-explanatory.
+
Invalid Coords section in molecule file
+
Self-explanatory.
+
Invalid Diameters section in molecule file
+
Self-explanatory.
+
Invalid Dihedrals section in molecule file
+
Self-explanatory.
+
Invalid Impropers section in molecule file
+
Self-explanatory.
+
Invalid Kokkos command-line args
+
Self-explanatory. See Section 2.7 of the manual for details.
+
Invalid LAMMPS restart file
+
The file does not appear to be a LAMMPS restart file since +it doesn’t contain the correct magic string at the beginning.
+
Invalid Masses section in molecule file
+
Self-explanatory.
+
Invalid REAX atom type
+
There is a mis-match between LAMMPS atom types and the elements +listed in the ReaxFF force field file.
+
Invalid Special Bond Counts section in molecule file
+
Self-explanatory.
+
Invalid Types section in molecule file
+
Self-explanatory.
+
Invalid angle count in molecule file
+
Self-explanatory.
+
Invalid angle table length
+
Length must be 2 or greater.
+
Invalid angle type in Angles section of data file
+
Angle type must be positive integer and within range of specified angle +types.
+
Invalid angle type in Angles section of molecule file
+
Self-explanatory.
+
Invalid angle type index for fix shake
+
Self-explanatory.
+
Invalid args for non-hybrid pair coefficients
+
“NULL” is only supported in pair_coeff calls when using pair hybrid
+
Invalid argument to factorial %d
+
N must be >= 0 and <= 167, otherwise the factorial result is too +large.
+
Invalid atom ID in %s section of data file
+
An atom in a section of the data file being read by fix property/atom +has an invalid atom ID that is <= 0 or > the maximum existing atom ID.
+
Invalid atom ID in Angles section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in Angles section of molecule file
+
Self-explanatory.
+
Invalid atom ID in Atoms section of data file
+
Atom IDs must be positive integers.
+
Invalid atom ID in Bodies section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in Bonds section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in Bonds section of molecule file
+
Self-explanatory.
+
Invalid atom ID in Bonus section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in Dihedrals section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in Impropers section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in Velocities section of data file
+
Atom IDs must be positive integers and within range of defined +atoms.
+
Invalid atom ID in dihedrals section of molecule file
+
Self-explanatory.
+
Invalid atom ID in impropers section of molecule file
+
Self-explanatory.
+
Invalid atom ID in variable file
+
Self-explanatory.
+
Invalid atom IDs in neb file
+
An ID in the file was not found in the system.
+
Invalid atom diameter in molecule file
+
Diameters must be >= 0.0.
+
Invalid atom mass for fix shake
+
Mass specified in fix shake command must be > 0.0.
+
Invalid atom mass in molecule file
+
Masses must be > 0.0.
+
Invalid atom type in Atoms section of data file
+
Atom types must range from 1 to specified # of types.
+
Invalid atom type in create_atoms command
+
The create_box command specified the range of valid atom types. +An invalid type is being requested.
+
Invalid atom type in create_atoms mol command
+
The atom types in the defined molecule are added to the value +specified in the create_atoms command, as an offset. The final value +for each atom must be between 1 to N, where N is the number of atom +types.
+
Invalid atom type in fix atom/swap command
+
The atom type specified in the atom/swap command does not exist.
+
Invalid atom type in fix bond/create command
+
Self-explanatory.
+
Invalid atom type in fix deposit command
+
Self-explanatory.
+
Invalid atom type in fix deposit mol command
+
The atom types in the defined molecule are added to the value +specified in the create_atoms command, as an offset. The final value +for each atom must be between 1 to N, where N is the number of atom +types.
+
Invalid atom type in fix gcmc command
+
The atom type specified in the gcmc command does not exist.
+
Invalid atom type in fix pour command
+
Self-explanatory.
+
Invalid atom type in fix pour mol command
+
The atom types in the defined molecule are added to the value +specified in the create_atoms command, as an offset. The final value +for each atom must be between 1 to N, where N is the number of atom +types.
+
Invalid atom type in molecule file
+
Atom types must range from 1 to specified # of types.
+
Invalid atom type in neighbor exclusion list
+
Atom types must range from 1 to Ntypes inclusive.
+
Invalid atom type index for fix shake
+
Atom types must range from 1 to Ntypes inclusive.
+
Invalid atom types in pair_write command
+
Atom types must range from 1 to Ntypes inclusive.
+
Invalid atom vector in variable formula
+
The atom vector is not recognized.
+
Invalid atom_style body command
+
No body style argument was provided.
+
Invalid atom_style command
+
Self-explanatory.
+
Invalid attribute in dump custom command
+
Self-explanatory.
+
Invalid attribute in dump local command
+
Self-explanatory.
+
Invalid attribute in dump modify command
+
Self-explanatory.
+
Invalid basis setting in create_atoms command
+
The basis index must be between 1 to N where N is the number of basis +atoms in the lattice. The type index must be between 1 to N where N +is the number of atom types.
+
Invalid basis setting in fix append/atoms command
+
The basis index must be between 1 to N where N is the number of basis +atoms in the lattice. The type index must be between 1 to N where N +is the number of atom types.
+
Invalid bin bounds in compute chunk/atom
+
The lo/hi values are inconsistent.
+
Invalid bin bounds in fix ave/spatial
+
The lo/hi values are inconsistent.
+
Invalid body nparticle command
+
Arguments in atom-style command are not correct.
+
Invalid bond count in molecule file
+
Self-explanatory.
+
Invalid bond table length
+
Length must be 2 or greater.
+
Invalid bond type in Bonds section of data file
+
Bond type must be positive integer and within range of specified bond +types.
+
Invalid bond type in Bonds section of molecule file
+
Self-explanatory.
+
Invalid bond type in create_bonds command
+
Self-explanatory.
+
Invalid bond type in fix bond/break command
+
Self-explanatory.
+
Invalid bond type in fix bond/create command
+
Self-explanatory.
+
Invalid bond type index for fix shake
+
Self-explanatory. Check the fix shake command in the input script.
+
Invalid coeffs for this dihedral style
+
Cannot set class 2 coeffs in data file for this dihedral style.
+
Invalid color in dump_modify command
+
The specified color name was not in the list of recognized colors. +See the dump_modify doc page.
+
Invalid color map min/max values
+
The min/max values are not consistent with either each other or +with values in the color map.
+
Invalid command-line argument
+
One or more command-line arguments is invalid. Check the syntax of +the command you are using to launch LAMMPS.
+
Invalid compute ID in variable formula
+
The compute is not recognized.
+
Invalid create_atoms rotation vector for 2d model
+
The rotation vector can only have a z component.
+
Invalid custom OpenCL parameter string.
+
There are not enough or too many parameters in the custom string for package +GPU.
+
Invalid cutoff in comm_modify command
+
Specified cutoff must be >= 0.0.
+
Invalid cutoffs in pair_write command
+
Inner cutoff must be larger than 0.0 and less than outer cutoff.
+
Invalid d1 or d2 value for pair colloid coeff
+
Neither d1 or d2 can be < 0.
+
Invalid data file section: Angle Coeffs
+
Atom style does not allow angles.
+
Invalid data file section: AngleAngle Coeffs
+
Atom style does not allow impropers.
+
Invalid data file section: AngleAngleTorsion Coeffs
+
Atom style does not allow dihedrals.
+
Invalid data file section: AngleTorsion Coeffs
+
Atom style does not allow dihedrals.
+
Invalid data file section: Angles
+
Atom style does not allow angles.
+
Invalid data file section: Bodies
+
Atom style does not allow bodies.
+
Invalid data file section: Bond Coeffs
+
Atom style does not allow bonds.
+
Invalid data file section: BondAngle Coeffs
+
Atom style does not allow angles.
+
Invalid data file section: BondBond Coeffs
+
Atom style does not allow angles.
+
Invalid data file section: BondBond13 Coeffs
+
Atom style does not allow dihedrals.
+
Invalid data file section: Bonds
+
Atom style does not allow bonds.
+
Invalid data file section: Dihedral Coeffs
+
Atom style does not allow dihedrals.
+
Invalid data file section: Dihedrals
+
Atom style does not allow dihedrals.
+
Invalid data file section: Ellipsoids
+
Atom style does not allow ellipsoids.
+
Invalid data file section: EndBondTorsion Coeffs
+
Atom style does not allow dihedrals.
+
Invalid data file section: Improper Coeffs
+
Atom style does not allow impropers.
+
Invalid data file section: Impropers
+
Atom style does not allow impropers.
+
Invalid data file section: Lines
+
Atom style does not allow lines.
+
Invalid data file section: MiddleBondTorsion Coeffs
+
Atom style does not allow dihedrals.
+
Invalid data file section: Triangles
+
Atom style does not allow triangles.
+
Invalid delta_conf in tad command
+
The value must be between 0 and 1 inclusive.
+
Invalid density in Atoms section of data file
+
Density value cannot be <= 0.0.
+
Invalid density in set command
+
Density must be > 0.0.
+
Invalid diameter in set command
+
Self-explanatory.
+
Invalid dihedral count in molecule file
+
Self-explanatory.
+
Invalid dihedral type in Dihedrals section of data file
+
Dihedral type must be positive integer and within range of specified +dihedral types.
+
Invalid dihedral type in dihedrals section of molecule file
+
Self-explanatory.
+
Invalid dipole length in set command
+
Self-explanatory.
+
Invalid displace_atoms rotate axis for 2d
+
Axis must be in z direction.
+
Invalid dump dcd filename
+
Filenames used with the dump dcd style cannot be binary or compressed +or cause multiple files to be written.
+
Invalid dump frequency
+
Dump frequency must be 1 or greater.
+
Invalid dump image element name
+
The specified element name was not in the standard list of elements. +See the dump_modify doc page.
+
Invalid dump image filename
+
The file produced by dump image cannot be binary and must +be for a single processor.
+
Invalid dump image persp value
+
Persp value must be >= 0.0.
+
Invalid dump image theta value
+
Theta must be between 0.0 and 180.0 inclusive.
+
Invalid dump image zoom value
+
Zoom value must be > 0.0.
+
Invalid dump movie filename
+
The file produced by dump movie cannot be binary or compressed +and must be a single file for a single processor.
+
Invalid dump xtc filename
+
Filenames used with the dump xtc style cannot be binary or compressed +or cause multiple files to be written.
+
Invalid dump xyz filename
+
Filenames used with the dump xyz style cannot be binary or cause files +to be written by each processor.
+
Invalid dump_modify threshold operator
+
Operator keyword used for threshold specification in not recognized.
+
Invalid entry in -reorder file
+
Self-explanatory.
+
Invalid fix ID in variable formula
+
The fix is not recognized.
+
Invalid fix ave/time off column
+
Self-explanatory.
+
Invalid fix box/relax command for a 2d simulation
+
Fix box/relax styles involving the z dimension cannot be used in +a 2d simulation.
+
Invalid fix box/relax command pressure settings
+
If multiple dimensions are coupled, those dimensions must be specified.
+
Invalid fix box/relax pressure settings
+
Settings for coupled dimensions must be the same.
+
Invalid fix nvt/npt/nph command for a 2d simulation
+
Cannot control z dimension in a 2d model.
+
Invalid fix nvt/npt/nph command pressure settings
+
If multiple dimensions are coupled, those dimensions must be +specified.
+
Invalid fix nvt/npt/nph pressure settings
+
Settings for coupled dimensions must be the same.
+
Invalid fix press/berendsen for a 2d simulation
+
The z component of pressure cannot be controlled for a 2d model.
+
Invalid fix press/berendsen pressure settings
+
Settings for coupled dimensions must be the same.
+
Invalid fix qeq parameter file
+
Element index > number of atom types.
+
Invalid fix rigid npt/nph command for a 2d simulation
+
Cannot control z dimension in a 2d model.
+
Invalid fix rigid npt/nph command pressure settings
+
If multiple dimensions are coupled, those dimensions must be +specified.
+
Invalid fix rigid/small npt/nph command for a 2d simulation
+
Cannot control z dimension in a 2d model.
+
Invalid fix rigid/small npt/nph command pressure settings
+
If multiple dimensions are coupled, those dimensions must be +specified.
+
Invalid flag in force field section of restart file
+
Unrecognized entry in restart file.
+
Invalid flag in header section of restart file
+
Unrecognized entry in restart file.
+
Invalid flag in peratom section of restart file
+
The format of this section of the file is not correct.
+
Invalid flag in type arrays section of restart file
+
Unrecognized entry in restart file.
+
Invalid frequency in temper command
+
Nevery must be > 0.
+
Invalid group ID in neigh_modify command
+
A group ID used in the neigh_modify command does not exist.
+
Invalid group function in variable formula
+
Group function is not recognized.
+
Invalid group in comm_modify command
+
Self-explanatory.
+
Invalid image up vector
+
Up vector cannot be (0,0,0).
+
Invalid immediate variable
+
Syntax of immediate value is incorrect.
+
Invalid improper count in molecule file
+
Self-explanatory.
+
Invalid improper type in Impropers section of data file
+
Improper type must be positive integer and within range of specified +improper types.
+
Invalid improper type in impropers section of molecule file
+
Self-explanatory.
+
Invalid index for non-body particles in compute body/local command
+
Only indices 1,2,3 can be used for non-body particles.
+
Invalid index in compute body/local command
+
Self-explanatory.
+
Invalid is_active() function in variable formula
+
Self-explanatory.
+
Invalid is_available() function in variable formula
+
Self-explanatory.
+
Invalid is_defined() function in variable formula
+
Self-explanatory.
+
Invalid keyword in angle table parameters
+
Self-explanatory.
+
Invalid keyword in bond table parameters
+
Self-explanatory.
+
Invalid keyword in compute angle/local command
+
Self-explanatory.
+
Invalid keyword in compute bond/local command
+
Self-explanatory.
+
Invalid keyword in compute dihedral/local command
+
Self-explanatory.
+
Invalid keyword in compute improper/local command
+
Self-explanatory.
+
Invalid keyword in compute pair/local command
+
Self-explanatory.
+
Invalid keyword in compute property/atom command
+
Self-explanatory.
+
Invalid keyword in compute property/chunk command
+
Self-explanatory.
+
Invalid keyword in compute property/local command
+
Self-explanatory.
+
Invalid keyword in dump cfg command
+
Self-explanatory.
+
Invalid keyword in pair table parameters
+
Keyword used in list of table parameters is not recognized.
+
Invalid length in set command
+
Self-explanatory.
+
Invalid mass in set command
+
Self-explanatory.
+
Invalid mass line in data file
+
Self-explanatory.
+
Invalid mass value
+
Self-explanatory.
+
Invalid math function in variable formula
+
Self-explanatory.
+
Invalid math/group/special function in variable formula
+
Self-explanatory.
+
Invalid option in lattice command for non-custom style
+
Certain lattice keywords are not supported unless the +lattice style is “custom”.
+
Invalid order of forces within respa levels
+
For respa, ordering of force computations within respa levels must +obey certain rules. E.g. bonds cannot be compute less frequently than +angles, pairwise forces cannot be computed less frequently than +kspace, etc.
+
Invalid pair table cutoff
+
Cutoffs in pair_coeff command are not valid with read-in pair table.
+
Invalid pair table length
+
Length of read-in pair table is invalid
+
Invalid param file for fix qeq/shielded
+
Invalid value of gamma.
+
Invalid param file for fix qeq/slater
+
Zeta value is 0.0.
+
Invalid partitions in processors part command
+
Valid partitions are numbered 1 to N and the sender and receiver +cannot be the same partition.
+
Invalid python command
+
Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line.
+
Invalid radius in Atoms section of data file
+
Radius must be >= 0.0.
+
Invalid random number seed in fix ttm command
+
Random number seed must be > 0.
+
Invalid random number seed in set command
+
Random number seed must be > 0.
+
Invalid replace values in compute reduce
+
Self-explanatory.
+
Invalid rigid body ID in fix rigid file
+
The ID does not match the number of an existing ID of rigid bodies +that are defined by the fix rigid command.
+
Invalid rigid body ID in fix rigid/small file
+
The ID does not match the number of an existing ID of rigid bodies +that are defined by the fix rigid/small command.
+
Invalid run command N value
+
The number of timesteps must fit in a 32-bit integer. If you want to +run for more steps than this, perform multiple shorter runs.
+
Invalid run command start/stop value
+
Self-explanatory.
+
Invalid run command upto value
+
Self-explanatory.
+
Invalid seed for Marsaglia random # generator
+
The initial seed for this random number generator must be a positive +integer less than or equal to 900 million.
+
Invalid seed for Park random # generator
+
The initial seed for this random number generator must be a positive +integer.
+
Invalid shake angle type in molecule file
+
Self-explanatory.
+
Invalid shake atom in molecule file
+
Self-explanatory.
+
Invalid shake bond type in molecule file
+
Self-explanatory.
+
Invalid shake flag in molecule file
+
Self-explanatory.
+
Invalid shape in Ellipsoids section of data file
+
Self-explanatory.
+
Invalid shape in Triangles section of data file
+
Two or more of the triangle corners are duplicate points.
+
Invalid shape in set command
+
Self-explanatory.
+
Invalid shear direction for fix wall/gran
+
Self-explanatory.
+
Invalid special atom index in molecule file
+
Self-explanatory.
+
Invalid special function in variable formula
+
Self-explanatory.
+
Invalid style in pair_write command
+
Self-explanatory. Check the input script.
+
Invalid syntax in variable formula
+
Self-explanatory.
+
Invalid t_event in prd command
+
Self-explanatory.
+
Invalid t_event in tad command
+
The value must be greater than 0.
+
Invalid template atom in Atoms section of data file
+
The atom indices must be between 1 to N, where N is the number of +atoms in the template molecule the atom belongs to.
+
Invalid template index in Atoms section of data file
+
The template indices must be between 1 to N, where N is the number of +molecules in the template.
+
Invalid thermo keyword in variable formula
+
The keyword is not recognized.
+
Invalid threads_per_atom specified.
+
For 3-body potentials on the GPU, the threads_per_atom setting cannot be +greater than 4 for NVIDIA GPUs.
+
Invalid timestep reset for fix ave/atom
+
Resetting the timestep has invalidated the sequence of timesteps this +fix needs to process.
+
Invalid timestep reset for fix ave/chunk
+
Resetting the timestep has invalidated the sequence of timesteps this +fix needs to process.
+
Invalid timestep reset for fix ave/correlate
+
Resetting the timestep has invalidated the sequence of timesteps this +fix needs to process.
+
Invalid timestep reset for fix ave/histo
+
Resetting the timestep has invalidated the sequence of timesteps this +fix needs to process.
+
Invalid timestep reset for fix ave/spatial
+
Resetting the timestep has invalidated the sequence of timesteps this +fix needs to process.
+
Invalid timestep reset for fix ave/time
+
Resetting the timestep has invalidated the sequence of timesteps this +fix needs to process.
+
Invalid tmax in tad command
+
The value must be greater than 0.0.
+
Invalid type for mass set
+
Mass command must set a type from 1-N where N is the number of atom +types.
+
Invalid use of library file() function
+
This function is called thru the library interface. This +error should not occur. Contact the developers if it does.
+
Invalid value in set command
+
The value specified for the setting is invalid, likely because it is +too small or too large.
+
Invalid variable evaluation in variable formula
+
A variable used in a formula could not be evaluated.
+
Invalid variable in next command
+
Self-explanatory.
+
Invalid variable name
+
Variable name used in an input script line is invalid.
+
Invalid variable name in variable formula
+
Variable name is not recognized.
+
Invalid variable style in special function next
+
Only file-style or atomfile-style variables can be used with next().
+
Invalid variable style with next command
+
Variable styles equal and world cannot be used in a next +command.
+
Invalid volume in set command
+
Volume must be > 0.0.
+
Invalid wiggle direction for fix wall/gran
+
Self-explanatory.
+
Invoked angle equil angle on angle style none
+
Self-explanatory.
+
Invoked angle single on angle style none
+
Self-explanatory.
+
Invoked bond equil distance on bond style none
+
Self-explanatory.
+
Invoked bond single on bond style none
+
Self-explanatory.
+
Invoked pair single on pair style none
+
A command (e.g. a dump) attempted to invoke the single() function on a +pair style none, which is illegal. You are probably attempting to +compute per-atom quantities with an undefined pair style.
+
Invoking coulombic in pair style lj/coul requires atom attribute q
+
The atom style defined does not have this attribute.
+
Invoking coulombic in pair style lj/long/dipole/long requires atom attribute q
+
The atom style defined does not have these attributes.
+
KIM neighbor iterator exceeded range
+
This should not happen. It likely indicates a bug +in the KIM implementation of the interatomic potential +where it is requesting neighbors incorrectly.
+
KOKKOS package does not yet support comm_style tiled
+
Self-explanatory.
+
KOKKOS package requires a kokkos enabled atom_style
+
Self-explanatory.
+
KSpace accuracy must be > 0
+
The kspace accuracy designated in the input must be greater than zero.
+
KSpace accuracy too large to estimate G vector
+
Reduce the accuracy request or specify gwald explicitly +via the kspace_modify command.
+
KSpace accuracy too low
+
Requested accuracy must be less than 1.0.
+
KSpace solver requires a pair style
+
No pair style is defined.
+
KSpace style does not yet support triclinic geometries
+
The specified kspace style does not allow for non-orthogonal +simulation boxes.
+
KSpace style has not yet been set
+
Cannot use kspace_modify command until a kspace style is set.
+
KSpace style is incompatible with Pair style
+
Setting a kspace style requires that a pair style with matching +long-range Coulombic or dispersion components be used.
+
Keyword %s in MEAM parameter file not recognized
+
Self-explanatory.
+
Kokkos has been compiled for CUDA but no GPUs are requested
+
One or more GPUs must be used when Kokkos is compiled for CUDA.
+
Kspace style does not support compute group/group
+
Self-explanatory.
+
Kspace style pppm/disp/tip4p requires newton on
+
Self-explanatory.
+
Kspace style pppm/tip4p requires newton on
+
Self-explanatory.
+
Kspace style requires atom attribute q
+
The atom style defined does not have these attributes.
+
Kspace_modify eigtol must be smaller than one
+
Self-explanatory.
+
LAMMPS is not built with Python embedded
+
This is done by including the PYTHON package before LAMMPS is built. +This is required to use python-style variables.
+
LAMMPS unit_style lj not supported by KIM models
+
Self-explanatory. Check the input script or data file.
+
LJ6 off not supported in pair_style buck/long/coul/long
+
Self-explanatory.
+
Label wasn’t found in input script
+
Self-explanatory.
+
Lattice orient vectors are not orthogonal
+
The three specified lattice orientation vectors must be mutually +orthogonal.
+
Lattice orient vectors are not right-handed
+
The three specified lattice orientation vectors must create a +right-handed coordinate system such that a1 cross a2 = a3.
+
Lattice primitive vectors are collinear
+
The specified lattice primitive vectors do not for a unit cell with +non-zero volume.
+
Lattice settings are not compatible with 2d simulation
+
One or more of the specified lattice vectors has a non-zero z +component.
+
Lattice spacings are invalid
+
Each x,y,z spacing must be > 0.
+
Lattice style incompatible with simulation dimension
+
2d simulation can use sq, sq2, or hex lattice. 3d simulation can use +sc, bcc, or fcc lattice.
+
Log of zero/negative value in variable formula
+
Self-explanatory.
+
Lost atoms via balance: original %ld current %ld
+
This should not occur. Report the problem to the developers.
+
Lost atoms: original %ld current %ld
+
Lost atoms are checked for each time thermo output is done. See the +thermo_modify lost command for options. Lost atoms usually indicate +bad dynamics, e.g. atoms have been blown far out of the simulation +box, or moved further than one processor’s sub-domain away before +reneighboring.
+
MEAM library error %d
+
A call to the MEAM Fortran library returned an error.
+
MPI_LMP_BIGINT and bigint in lmptype.h are not compatible
+
The size of the MPI datatype does not match the size of a bigint.
+
MPI_LMP_TAGINT and tagint in lmptype.h are not compatible
+
The size of the MPI datatype does not match the size of a tagint.
+
MSM can only currently be used with comm_style brick
+
This is a current restriction in LAMMPS.
+
MSM grid is too large
+
The global MSM grid is larger than OFFSET in one or more dimensions. +OFFSET is currently set to 16384. You likely need to decrease the +requested accuracy.
+
MSM order must be 4, 6, 8, or 10
+
This is a limitation of the MSM implementation in LAMMPS: +the MSM order can only be 4, 6, 8, or 10.
+
Mass command before simulation box is defined
+
The mass command cannot be used before a read_data, read_restart, or +create_box command.
+
Matrix factorization to split dispersion coefficients failed
+
This should not normally happen. Contact the developers.
+
Min_style command before simulation box is defined
+
The min_style command cannot be used before a read_data, read_restart, +or create_box command.
+
Minimization could not find thermo_pe compute
+
This compute is created by the thermo command. It must have been +explicitly deleted by a uncompute command.
+
Minimize command before simulation box is defined
+
The minimize command cannot be used before a read_data, read_restart, +or create_box command.
+
Mismatched brackets in variable
+
Self-explanatory.
+
Mismatched compute in variable formula
+
A compute is referenced incorrectly or a compute that produces per-atom +values is used in an equal-style variable formula.
+
Mismatched fix in variable formula
+
A fix is referenced incorrectly or a fix that produces per-atom +values is used in an equal-style variable formula.
+
Mismatched variable in variable formula
+
A variable is referenced incorrectly or an atom-style variable that +produces per-atom values is used in an equal-style variable +formula.
+
Modulo 0 in variable formula
+
Self-explanatory.
+
Molecule IDs too large for compute chunk/atom
+
The IDs must not be larger than can be stored in a 32-bit integer +since chunk IDs are 32-bit integers.
+
Molecule auto special bond generation overflow
+
Counts exceed maxspecial setting for other atoms in system.
+
Molecule file has angles but no nangles setting
+
Self-explanatory.
+
Molecule file has body params but no setting for them
+
Self-explanatory.
+
Molecule file has bonds but no nbonds setting
+
Self-explanatory.
+
Molecule file has dihedrals but no ndihedrals setting
+
Self-explanatory.
+
Molecule file has impropers but no nimpropers setting
+
Self-explanatory.
+
Molecule file has no Body Doubles section
+
Self-explanatory.
+
Molecule file has no Body Integers section
+
Self-explanatory.
+
Molecule file has special flags but no bonds
+
Self-explanatory.
+
Molecule file needs both Special Bond sections
+
Self-explanatory.
+
Molecule file requires atom style body
+
Self-explanatory.
+
Molecule file shake flags not before shake atoms
+
The order of the two sections is important.
+
Molecule file shake flags not before shake bonds
+
The order of the two sections is important.
+
Molecule file shake info is incomplete
+
All 3 SHAKE sections are needed.
+
Molecule file special list does not match special count
+
The number of values in an atom’s special list does not match count.
+
Molecule file z center-of-mass must be 0.0 for 2d
+
Self-explanatory.
+
Molecule file z coord must be 0.0 for 2d
+
Self-explanatory.
+
Molecule natoms must be 1 for body particle
+
Self-explanatory.
+
Molecule sizescale must be 1.0 for body particle
+
Self-explanatory.
+
Molecule template ID for atom_style template does not exist
+
Self-explanatory.
+
Molecule template ID for create_atoms does not exist
+
Self-explanatory.
+
Molecule template ID for fix deposit does not exist
+
Self-explanatory.
+
Molecule template ID for fix gcmc does not exist
+
Self-explanatory.
+
Molecule template ID for fix pour does not exist
+
Self-explanatory.
+
Molecule template ID for fix rigid/small does not exist
+
Self-explanatory.
+
Molecule template ID for fix shake does not exist
+
Self-explanatory.
+
Molecule template ID must be alphanumeric or underscore characters
+
Self-explanatory.
+
Molecule topology/atom exceeds system topology/atom
+
The number of bonds, angles, etc per-atom in the molecule exceeds the +system setting. See the create_box command for how to specify these +values.
+
Molecule topology type exceeds system topology type
+
The number of bond, angle, etc types in the molecule exceeds the +system setting. See the create_box command for how to specify these +values.
+
More than one fix deform
+
Only one fix deform can be defined at a time.
+
More than one fix freeze
+
Only one of these fixes can be defined, since the granular pair +potentials access it.
+
More than one fix shake
+
Only one fix shake can be defined.
+
Mu not allowed when not using semi-grand in fix atom/swap command
+
Self-explanatory.
+
Must define angle_style before Angle Coeffs
+
Must use an angle_style command before reading a data file that +defines Angle Coeffs.
+
Must define angle_style before BondAngle Coeffs
+
Must use an angle_style command before reading a data file that +defines Angle Coeffs.
+
Must define angle_style before BondBond Coeffs
+
Must use an angle_style command before reading a data file that +defines Angle Coeffs.
+
Must define bond_style before Bond Coeffs
+
Must use a bond_style command before reading a data file that +defines Bond Coeffs.
+
Must define dihedral_style before AngleAngleTorsion Coeffs
+
Must use a dihedral_style command before reading a data file that +defines AngleAngleTorsion Coeffs.
+
Must define dihedral_style before AngleTorsion Coeffs
+
Must use a dihedral_style command before reading a data file that +defines AngleTorsion Coeffs.
+
Must define dihedral_style before BondBond13 Coeffs
+
Must use a dihedral_style command before reading a data file that +defines BondBond13 Coeffs.
+
Must define dihedral_style before Dihedral Coeffs
+
Must use a dihedral_style command before reading a data file that +defines Dihedral Coeffs.
+
Must define dihedral_style before EndBondTorsion Coeffs
+
Must use a dihedral_style command before reading a data file that +defines EndBondTorsion Coeffs.
+
Must define dihedral_style before MiddleBondTorsion Coeffs
+
Must use a dihedral_style command before reading a data file that +defines MiddleBondTorsion Coeffs.
+
Must define improper_style before AngleAngle Coeffs
+
Must use an improper_style command before reading a data file that +defines AngleAngle Coeffs.
+
Must define improper_style before Improper Coeffs
+
Must use an improper_style command before reading a data file that +defines Improper Coeffs.
+
Must define pair_style before Pair Coeffs
+
Must use a pair_style command before reading a data file that defines +Pair Coeffs.
+
Must define pair_style before PairIJ Coeffs
+
Must use a pair_style command before reading a data file that defines +PairIJ Coeffs.
+
Must have more than one processor partition to temper
+
Cannot use the temper command with only one processor partition. Use +the -partition command-line option.
+
Must read Atoms before Angles
+
The Atoms section of a data file must come before an Angles section.
+
Must read Atoms before Bodies
+
The Atoms section of a data file must come before a Bodies section.
+
Must read Atoms before Bonds
+
The Atoms section of a data file must come before a Bonds section.
+
Must read Atoms before Dihedrals
+
The Atoms section of a data file must come before a Dihedrals section.
+
Must read Atoms before Ellipsoids
+
The Atoms section of a data file must come before a Ellipsoids +section.
+
Must read Atoms before Impropers
+
The Atoms section of a data file must come before an Impropers +section.
+
Must read Atoms before Lines
+
The Atoms section of a data file must come before a Lines section.
+
Must read Atoms before Triangles
+
The Atoms section of a data file must come before a Triangles section.
+
Must read Atoms before Velocities
+
The Atoms section of a data file must come before a Velocities +section.
+
Must set both respa inner and outer
+
Cannot use just the inner or outer option with respa without using the +other.
+
Must set number of threads via package omp command
+
Because you are using the USER-OMP package, set the number of threads +via its settings, not by the pair_style snap nthreads setting.
+
Must shrink-wrap piston boundary
+
The boundary style of the face where the piston is applied must be of +type s (shrink-wrapped).
+
Must specify a region in fix deposit
+
The region keyword must be specified with this fix.
+
Must specify a region in fix pour
+
Self-explanatory.
+
Must specify at least 2 types in fix atom/swap command
+
Self-explanatory.
+
Must use ‘kspace_modify pressure/scalar no’ for rRESPA with kspace_style MSM
+
The kspace scalar pressure option cannot (yet) be used with rRESPA.
+
Must use ‘kspace_modify pressure/scalar no’ for tensor components with kspace_style msm
+
Otherwise MSM will compute only a scalar pressure. See the kspace_modify +command for details on this setting.
+
Must use ‘kspace_modify pressure/scalar no’ to obtain per-atom virial with kspace_style MSM
+
The kspace scalar pressure option cannot be used to obtain per-atom virial.
+
Must use ‘kspace_modify pressure/scalar no’ with GPU MSM Pair styles
+
The kspace scalar pressure option is not (yet) compatible with GPU MSM Pair styles.
+
Must use ‘kspace_modify pressure/scalar no’ with kspace_style msm/cg
+
The kspace scalar pressure option is not compatible with kspace_style msm/cg.
+
Must use -in switch with multiple partitions
+
A multi-partition simulation cannot read the input script from stdin. +The -in command-line option must be used to specify a file.
+
Must use Kokkos half/thread or full neighbor list with threads or GPUs
+
Using Kokkos half-neighbor lists with threading is not allowed.
+
Must use a block or cylinder region with fix pour
+
Self-explanatory.
+
Must use a block region with fix pour for 2d simulations
+
Self-explanatory.
+
Must use a bond style with TIP4P potential
+
TIP4P potentials assume bond lengths in water are constrained +by a fix shake command.
+
Must use a molecular atom style with fix poems molecule
+
Self-explanatory.
+
Must use a z-axis cylinder region with fix pour
+
Self-explanatory.
+
Must use an angle style with TIP4P potential
+
TIP4P potentials assume angles in water are constrained by a fix shake +command.
+
Must use atom map style array with Kokkos
+
See the atom_modify map command.
+
Must use atom style with molecule IDs with fix bond/swap
+
Self-explanatory.
+
Must use pair_style comb or comb3 with fix qeq/comb
+
Self-explanatory.
+
Must use variable energy with fix addforce
+
Must define an energy variable when applying a dynamic +force during minimization.
+
Must use variable energy with fix efield
+
You must define an energy when performing a minimization with a +variable E-field.
+
NEB command before simulation box is defined
+
Self-explanatory.
+
NEB requires damped dynamics minimizer
+
Use a different minimization style.
+
NEB requires use of fix neb
+
Self-explanatory.
+
NL ramp in wall/piston only implemented in zlo for now
+
The ramp keyword can only be used for piston applied to face zlo.
+
Need nswaptypes mu values in fix atom/swap command
+
Self-explanatory.
+
Needed bonus data not in data file
+
Some atom styles require bonus data. See the read_data doc page for +details.
+
Needed molecular topology not in data file
+
The header of the data file indicated bonds, angles, etc would be +included, but they are not present.
+
Neigh_modify exclude molecule requires atom attribute molecule
+
Self-explanatory.
+
Neigh_modify include group != atom_modify first group
+
Self-explanatory.
+
Neighbor delay must be 0 or multiple of every setting
+
The delay and every parameters set via the neigh_modify command are +inconsistent. If the delay setting is non-zero, then it must be a +multiple of the every setting.
+
Neighbor include group not allowed with ghost neighbors
+
This is a current restriction within LAMMPS.
+
Neighbor list overflow, boost neigh_modify one
+
There are too many neighbors of a single atom. Use the neigh_modify +command to increase the max number of neighbors allowed for one atom. +You may also want to boost the page size.
+
Neighbor multi not yet enabled for ghost neighbors
+
This is a current restriction within LAMMPS.
+
Neighbor multi not yet enabled for granular
+
Self-explanatory.
+
Neighbor multi not yet enabled for rRESPA
+
Self-explanatory.
+
Neighbor page size must be >= 10x the one atom setting
+
This is required to prevent wasting too much memory.
+
New atom IDs exceed maximum allowed ID
+
See the setting for tagint in the src/lmptype.h file.
+
+

New bond exceeded bonds per atom in create_bonds +See the read_data command for info on using the “extra/bond/per/atom” +keyword to allow for additional bonds to be formed

+
+
New bond exceeded bonds per atom in fix bond/create
+
See the read_data command for info on using the “extra/bond/per/atom” +keyword to allow for additional bonds to be formed
+
New bond exceeded special list size in fix bond/create
+
See the “read_data extra/special/per/atom” command +(or the “create_box extra/special/per/atom” command) +for info on how to leave space in the special bonds +list to allow for additional bonds to be formed.
+
Newton bond change after simulation box is defined
+
The newton command cannot be used to change the newton bond value +after a read_data, read_restart, or create_box command.
+
Next command must list all universe and uloop variables
+
This is to insure they stay in sync.
+
No Kspace style defined for compute group/group
+
Self-explanatory.
+
No OpenMP support compiled in
+
An OpenMP flag is set, but LAMMPS was not built with +OpenMP support.
+
No angle style is defined for compute angle/local
+
Self-explanatory.
+
No angles allowed with this atom style
+
Self-explanatory.
+
No atoms in data file
+
The header of the data file indicated that atoms would be included, +but they are not present.
+
No basis atoms in lattice
+
Basis atoms must be defined for lattice style user.
+
No bodies allowed with this atom style
+
Self-explanatory. Check data file.
+
No bond style is defined for compute bond/local
+
Self-explanatory.
+
No bonds allowed with this atom style
+
Self-explanatory.
+
No box information in dump. You have to use ‘box no’
+
Self-explanatory.
+
No count or invalid atom count in molecule file
+
The number of atoms must be specified.
+
No dihedral style is defined for compute dihedral/local
+
Self-explanatory.
+
No dihedrals allowed with this atom style
+
Self-explanatory.
+
No dump custom arguments specified
+
The dump custom command requires that atom quantities be specified to +output to dump file.
+
No dump local arguments specified
+
Self-explanatory.
+
No ellipsoids allowed with this atom style
+
Self-explanatory. Check data file.
+
No fix gravity defined for fix pour
+
Gravity is required to use fix pour.
+
No improper style is defined for compute improper/local
+
Self-explanatory.
+
No impropers allowed with this atom style
+
Self-explanatory.
+
No input values for fix ave/spatial
+
Self-explanatory.
+
No lines allowed with this atom style
+
Self-explanatory. Check data file.
+
No matching element in ADP potential file
+
The ADP potential file does not contain elements that match the +requested elements.
+
No matching element in EAM potential file
+
The EAM potential file does not contain elements that match the +requested elements.
+
No molecule topology allowed with atom style template
+
The data file cannot specify the number of bonds, angles, etc, +because this info if inferred from the molecule templates.
+
No overlap of box and region for create_atoms
+
Self-explanatory.
+
No pair coul/streitz for fix qeq/slater
+
These commands must be used together.
+
No pair hbond/dreiding coefficients set
+
Self-explanatory.
+
No pair style defined for compute group/group
+
Cannot calculate group interactions without a pair style defined.
+
No pair style is defined for compute pair/local
+
Self-explanatory.
+
No pair style is defined for compute property/local
+
Self-explanatory.
+
No rigid bodies defined
+
The fix specification did not end up defining any rigid bodies.
+
No triangles allowed with this atom style
+
Self-explanatory. Check data file.
+
No values in fix ave/chunk command
+
Self-explanatory.
+
No values in fix ave/time command
+
Self-explanatory.
+
Non digit character between brackets in variable
+
Self-explanatory.
+
Non integer # of swaps in temper command
+
Swap frequency in temper command must evenly divide the total # of +timesteps.
+
Non-numeric box dimensions - simulation unstable
+
The box size has apparently blown up.
+
Non-zero atom IDs with atom_modify id = no
+
Self-explanatory.
+
Non-zero read_data shift z value for 2d simulation
+
Self-explanatory.
+
Nprocs not a multiple of N for -reorder
+
Self-explanatory.
+
Number of core atoms != number of shell atoms
+
There must be a one-to-one pairing of core and shell atoms.
+
Numeric index is out of bounds
+
A command with an argument that specifies an integer or range of +integers is using a value that is less than 1 or greater than the +maximum allowed limit.
+
One or more Atom IDs is negative
+
Atom IDs must be positive integers.
+
One or more atom IDs is too big
+
The limit on atom IDs is set by the SMALLBIG, BIGBIG, SMALLSMALL +setting in your Makefile. See Section_start 2.2 of the manual for +more details.
+
One or more atom IDs is zero
+
Either all atoms IDs must be zero or none of them.
+
One or more atoms belong to multiple rigid bodies
+
Two or more rigid bodies defined by the fix rigid command cannot +contain the same atom.
+
One or more rigid bodies are a single particle
+
Self-explanatory.
+
One or zero atoms in rigid body
+
Any rigid body defined by the fix rigid command must contain 2 or more +atoms.
+
Only 2 types allowed when not using semi-grand in fix atom/swap command
+
Self-explanatory.
+
Only one cut-off allowed when requesting all long
+
Self-explanatory.
+
Only one cutoff allowed when requesting all long
+
Self-explanatory.
+
Only zhi currently implemented for fix append/atoms
+
Self-explanatory.
+
Out of range atoms - cannot compute MSM
+
One or more atoms are attempting to map their charge to a MSM grid point +that is not owned by a processor. This is likely for one of two +reasons, both of them bad. First, it may mean that an atom near the +boundary of a processor’s sub-domain has moved more than 1/2 the +neighbor skin distance without neighbor lists being +rebuilt and atoms being migrated to new processors. This also means +you may be missing pairwise interactions that need to be computed. +The solution is to change the re-neighboring criteria via the +neigh_modify command. The safest settings are +“delay 0 every 1 check yes”. Second, it may mean that an atom has +moved far outside a processor’s sub-domain or even the entire +simulation box. This indicates bad physics, e.g. due to highly +overlapping atoms, too large a timestep, etc.
+
Out of range atoms - cannot compute PPPM
+
One or more atoms are attempting to map their charge to a PPPM grid +point that is not owned by a processor. This is likely for one of two +reasons, both of them bad. First, it may mean that an atom near the +boundary of a processor’s sub-domain has moved more than 1/2 the +neighbor skin distance without neighbor lists being +rebuilt and atoms being migrated to new processors. This also means +you may be missing pairwise interactions that need to be computed. +The solution is to change the re-neighboring criteria via the +neigh_modify command. The safest settings are +“delay 0 every 1 check yes”. Second, it may mean that an atom has +moved far outside a processor’s sub-domain or even the entire +simulation box. This indicates bad physics, e.g. due to highly +overlapping atoms, too large a timestep, etc.
+
Out of range atoms - cannot compute PPPMDisp
+
One or more atoms are attempting to map their charge to a PPPM grid +point that is not owned by a processor. This is likely for one of two +reasons, both of them bad. First, it may mean that an atom near the +boundary of a processor’s sub-domain has moved more than 1/2 the +neighbor skin distance without neighbor lists being +rebuilt and atoms being migrated to new processors. This also means +you may be missing pairwise interactions that need to be computed. +The solution is to change the re-neighboring criteria via the +neigh_modify command. The safest settings are +“delay 0 every 1 check yes”. Second, it may mean that an atom has +moved far outside a processor’s sub-domain or even the entire +simulation box. This indicates bad physics, e.g. due to highly +overlapping atoms, too large a timestep, etc.
+
Overflow of allocated fix vector storage
+
This should not normally happen if the fix correctly calculated +how long the vector will grow to. Contact the developers.
+
Overlapping large/large in pair colloid
+
This potential is infinite when there is an overlap.
+
Overlapping small/large in pair colloid
+
This potential is infinite when there is an overlap.
+
POEMS fix must come before NPT/NPH fix
+
NPT/NPH fix must be defined in input script after all poems fixes, +else the fix contribution to the pressure virial is incorrect.
+
PPPM can only currently be used with comm_style brick
+
This is a current restriction in LAMMPS.
+
PPPM grid is too large
+
The global PPPM grid is larger than OFFSET in one or more dimensions. +OFFSET is currently set to 4096. You likely need to decrease the +requested accuracy.
+
PPPM grid stencil extends beyond nearest neighbor processor
+
This is not allowed if the kspace_modify overlap setting is no.
+
PPPM order < minimum allowed order
+
The default minimum order is 2. This can be reset by the +kspace_modify minorder command.
+
PPPM order cannot be < 2 or > than %d
+
This is a limitation of the PPPM implementation in LAMMPS.
+
PPPMDisp Coulomb grid is too large
+
The global PPPM grid is larger than OFFSET in one or more dimensions. +OFFSET is currently set to 4096. You likely need to decrease the +requested accuracy.
+
PPPMDisp Dispersion grid is too large
+
The global PPPM grid is larger than OFFSET in one or more dimensions. +OFFSET is currently set to 4096. You likely need to decrease the +requested accuracy.
+
PPPMDisp can only currently be used with comm_style brick
+
This is a current restriction in LAMMPS.
+
PPPMDisp coulomb order cannot be greater than %d
+
This is a limitation of the PPPM implementation in LAMMPS.
+
PPPMDisp used but no parameters set, for further information please see the pppm/disp documentation
+
An efficient and accurate usage of the pppm/disp requires settings via the kspace_modify command. Please see the pppm/disp documentation for further instructions.
+
PRD command before simulation box is defined
+
The prd command cannot be used before a read_data, +read_restart, or create_box command.
+
PRD nsteps must be multiple of t_event
+
Self-explanatory.
+
PRD t_corr must be multiple of t_event
+
Self-explanatory.
+
Package command after simulation box is defined
+
The package command cannot be used afer a read_data, read_restart, or +create_box command.
+
Package cuda command without USER-CUDA package enabled
+
The USER-CUDA package must be installed via “make yes-user-cuda” +before LAMMPS is built, and the “-c on” must be used to enable the +package.
+
Package gpu command without GPU package installed
+
The GPU package must be installed via “make yes-gpu” before LAMMPS is +built.
+
Package intel command without USER-INTEL package installed
+
The USER-INTEL package must be installed via “make yes-user-intel” +before LAMMPS is built.
+
Package kokkos command without KOKKOS package enabled
+
The KOKKOS package must be installed via “make yes-kokkos” before +LAMMPS is built, and the “-k on” must be used to enable the package.
+
Package omp command without USER-OMP package installed
+
The USER-OMP package must be installed via “make yes-user-omp” before +LAMMPS is built.
+
Pair body requires atom style body
+
Self-explanatory.
+
Pair body requires body style nparticle
+
This pair style is specific to the nparticle body style.
+
Pair brownian requires atom style sphere
+
Self-explanatory.
+
Pair brownian requires extended particles
+
One of the particles has radius 0.0.
+
Pair brownian requires monodisperse particles
+
All particles must be the same finite size.
+
Pair brownian/poly requires atom style sphere
+
Self-explanatory.
+
Pair brownian/poly requires extended particles
+
One of the particles has radius 0.0.
+
Pair brownian/poly requires newton pair off
+
Self-explanatory.
+
Pair coeff for hybrid has invalid style
+
Style in pair coeff must have been listed in pair_style command.
+
Pair coul/wolf requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair cutoff < Respa interior cutoff
+
One or more pairwise cutoffs are too short to use with the specified +rRESPA cutoffs.
+
Pair dipole/cut requires atom attributes q, mu, torque
+
The atom style defined does not have these attributes.
+
Pair dipole/cut/gpu requires atom attributes q, mu, torque
+
The atom style defined does not have this attribute.
+
Pair dipole/long requires atom attributes q, mu, torque
+
The atom style defined does not have these attributes.
+
Pair dipole/sf/gpu requires atom attributes q, mu, torque
+
The atom style defined does not one or more of these attributes.
+
Pair distance < table inner cutoff
+
Two atoms are closer together than the pairwise table allows.
+
Pair distance > table outer cutoff
+
Two atoms are further apart than the pairwise table allows.
+
Pair dpd requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Pair gayberne epsilon a,b,c coeffs are not all set
+
Each atom type involved in pair_style gayberne must +have these 3 coefficients set at least once.
+
Pair gayberne requires atom style ellipsoid
+
Self-explanatory.
+
Pair gayberne requires atoms with same type have same shape
+
Self-explanatory.
+
Pair gayberne/gpu requires atom style ellipsoid
+
Self-explanatory.
+
Pair gayberne/gpu requires atoms with same type have same shape
+
Self-explanatory.
+
Pair granular requires atom attributes radius, rmass
+
The atom style defined does not have these attributes.
+
Pair granular requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Pair granular with shear history requires newton pair off
+
This is a current restriction of the implementation of pair +granular styles with history.
+
Pair hybrid single calls do not support per sub-style special bond values
+
Self-explanatory.
+
Pair hybrid sub-style does not support single call
+
You are attempting to invoke a single() call on a pair style +that doesn’t support it.
+
Pair hybrid sub-style is not used
+
No pair_coeff command used a sub-style specified in the pair_style +command.
+
Pair inner cutoff < Respa interior cutoff
+
One or more pairwise cutoffs are too short to use with the specified +rRESPA cutoffs.
+
Pair inner cutoff >= Pair outer cutoff
+
The specified cutoffs for the pair style are inconsistent.
+
Pair line/lj requires atom style line
+
Self-explanatory.
+
Pair lj/long/dipole/long requires atom attributes mu, torque
+
The atom style defined does not have these attributes.
+
Pair lubricate requires atom style sphere
+
Self-explanatory.
+
Pair lubricate requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Pair lubricate requires monodisperse particles
+
All particles must be the same finite size.
+
Pair lubricate/poly requires atom style sphere
+
Self-explanatory.
+
Pair lubricate/poly requires extended particles
+
One of the particles has radius 0.0.
+
Pair lubricate/poly requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Pair lubricate/poly requires newton pair off
+
Self-explanatory.
+
Pair lubricateU requires atom style sphere
+
Self-explanatory.
+
Pair lubricateU requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Pair lubricateU requires monodisperse particles
+
All particles must be the same finite size.
+
Pair lubricateU/poly requires ghost atoms store velocity
+
Use the comm_modify vel yes command to enable this.
+
Pair lubricateU/poly requires newton pair off
+
Self-explanatory.
+
Pair peri lattice is not identical in x, y, and z
+
The lattice defined by the lattice command must be cubic.
+
Pair peri requires a lattice be defined
+
Use the lattice command for this purpose.
+
Pair peri requires an atom map, see atom_modify
+
Even for atomic systems, an atom map is required to find Peridynamic +bonds. Use the atom_modify command to define one.
+
Pair resquared epsilon a,b,c coeffs are not all set
+
Self-explanatory.
+
Pair resquared epsilon and sigma coeffs are not all set
+
Self-explanatory.
+
Pair resquared requires atom style ellipsoid
+
Self-explanatory.
+
Pair resquared requires atoms with same type have same shape
+
Self-explanatory.
+
Pair resquared/gpu requires atom style ellipsoid
+
Self-explanatory.
+
Pair resquared/gpu requires atoms with same type have same shape
+
Self-explanatory.
+
Pair style AIREBO requires atom IDs
+
This is a requirement to use the AIREBO potential.
+
Pair style AIREBO requires newton pair on
+
See the newton command. This is a restriction to use the AIREBO +potential.
+
Pair style BOP requires atom IDs
+
This is a requirement to use the BOP potential.
+
Pair style BOP requires newton pair on
+
See the newton command. This is a restriction to use the BOP +potential.
+
Pair style COMB requires atom IDs
+
This is a requirement to use the AIREBO potential.
+
Pair style COMB requires atom attribute q
+
Self-explanatory.
+
Pair style COMB requires newton pair on
+
See the newton command. This is a restriction to use the COMB +potential.
+
Pair style COMB3 requires atom IDs
+
This is a requirement to use the COMB3 potential.
+
Pair style COMB3 requires atom attribute q
+
Self-explanatory.
+
Pair style COMB3 requires newton pair on
+
See the newton command. This is a restriction to use the COMB3 +potential.
+
Pair style LCBOP requires atom IDs
+
This is a requirement to use the LCBOP potential.
+
Pair style LCBOP requires newton pair on
+
See the newton command. This is a restriction to use the Tersoff +potential.
+
Pair style MEAM requires newton pair on
+
See the newton command. This is a restriction to use the MEAM +potential.
+
Pair style SNAP requires newton pair on
+
See the newton command. This is a restriction to use the SNAP +potential.
+
Pair style Stillinger-Weber requires atom IDs
+
This is a requirement to use the SW potential.
+
Pair style Stillinger-Weber requires newton pair on
+
See the newton command. This is a restriction to use the SW +potential.
+
Pair style Tersoff requires atom IDs
+
This is a requirement to use the Tersoff potential.
+
Pair style Tersoff requires newton pair on
+
See the newton command. This is a restriction to use the Tersoff +potential.
+
Pair style Vashishta requires atom IDs
+
This is a requirement to use the Vashishta potential.
+
Pair style Vashishta requires newton pair on
+
See the newton command. This is a restriction to use the Vashishta +potential.
+
Pair style bop requires comm ghost cutoff at least 3x larger than %g
+
Use the communicate ghost command to set this. See the pair bop +doc page for more details.
+
Pair style born/coul/long requires atom attribute q
+
An atom style that defines this attribute must be used.
+
Pair style born/coul/long/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style born/coul/wolf requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style buck/coul/cut requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style buck/coul/long requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style buck/coul/long/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style buck/long/coul/long requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style coul/cut requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style coul/cut/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style coul/debye/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style coul/dsf requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style coul/dsf/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style coul/long/gpu requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style coul/streitz requires atom attribute q
+
Self-explanatory.
+
Pair style does not have extra field requested by compute pair/local
+
The pair style does not support the pN value requested by the compute +pair/local command.
+
Pair style does not support bond_style quartic
+
The pair style does not have a single() function, so it can +not be invoked by bond_style quartic.
+
Pair style does not support compute group/group
+
The pair_style does not have a single() function, so it cannot be +invoked by the compute group/group command.
+
Pair style does not support compute pair/local
+
The pair style does not have a single() function, so it can +not be invoked by compute pair/local.
+
Pair style does not support compute property/local
+
The pair style does not have a single() function, so it can +not be invoked by fix bond/swap.
+
Pair style does not support fix bond/swap
+
The pair style does not have a single() function, so it can +not be invoked by fix bond/swap.
+
Pair style does not support pair_write
+
The pair style does not have a single() function, so it can +not be invoked by pair write.
+
Pair style does not support rRESPA inner/middle/outer
+
You are attempting to use rRESPA options with a pair style that +does not support them.
+
Pair style granular with history requires atoms have IDs
+
Atoms in the simulation do not have IDs, so history effects +cannot be tracked by the granular pair potential.
+
Pair style hbond/dreiding requires an atom map, see atom_modify
+
Self-explanatory.
+
Pair style hbond/dreiding requires atom IDs
+
Self-explanatory.
+
Pair style hbond/dreiding requires molecular system
+
Self-explanatory.
+
Pair style hbond/dreiding requires newton pair on
+
See the newton command for details.
+
Pair style hybrid cannot have hybrid as an argument
+
Self-explanatory.
+
Pair style hybrid cannot have none as an argument
+
Self-explanatory.
+
Pair style is incompatible with KSpace style
+
If a pair style with a long-range Coulombic component is selected, +then a kspace style must also be used.
+
Pair style is incompatible with TIP4P KSpace style
+
The pair style does not have the requires TIP4P settings.
+
Pair style lj/charmm/coul/charmm requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style lj/charmm/coul/long requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style lj/charmm/coul/long/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/class2/coul/cut requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/class2/coul/long requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/class2/coul/long/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/coul/cut requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/coul/cut/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/coul/debye/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/coul/dsf requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style lj/cut/coul/dsf/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/coul/long requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/coul/long/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/tip4p/cut requires atom IDs
+
This is a requirement to use this potential.
+
Pair style lj/cut/tip4p/cut requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style lj/cut/tip4p/cut requires newton pair on
+
See the newton command. This is a restriction to use this +potential.
+
Pair style lj/cut/tip4p/long requires atom IDs
+
There are no atom IDs defined in the system and the TIP4P potential +requires them to find O,H atoms with a water molecule.
+
Pair style lj/cut/tip4p/long requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style lj/cut/tip4p/long requires newton pair on
+
This is because the computation of constraint forces within a water +molecule adds forces to atoms owned by other processors.
+
Pair style lj/gromacs/coul/gromacs requires atom attribute q
+
An atom_style with this attribute is needed.
+
Pair style lj/long/dipole/long does not currently support respa
+
This feature is not yet supported.
+
Pair style lj/long/tip4p/long requires atom IDs
+
There are no atom IDs defined in the system and the TIP4P potential +requires them to find O,H atoms with a water molecule.
+
Pair style lj/long/tip4p/long requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style lj/long/tip4p/long requires newton pair on
+
This is because the computation of constraint forces within a water +molecule adds forces to atoms owned by other processors.
+
Pair style lj/sdk/coul/long/gpu requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style nb3b/harmonic requires atom IDs
+
This is a requirement to use this potential.
+
Pair style nb3b/harmonic requires newton pair on
+
See the newton command. This is a restriction to use this potential.
+
Pair style nm/cut/coul/cut requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style nm/cut/coul/long requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style peri requires atom style peri
+
Self-explanatory.
+
Pair style polymorphic requires atom IDs
+
This is a requirement to use the polymorphic potential.
+
Pair style polymorphic requires newton pair on
+
See the newton command. This is a restriction to use the polymorphic +potential.
+
Pair style reax requires atom IDs
+
This is a requirement to use the ReaxFF potential.
+
Pair style reax requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style reax requires newton pair on
+
This is a requirement to use the ReaxFF potential.
+
Pair style requires a KSpace style
+
No kspace style is defined.
+
Pair style requires use of kspace_style ewald/disp
+
Self-explanatory.
+
Pair style sw/gpu requires atom IDs
+
This is a requirement to use this potential.
+
Pair style sw/gpu requires newton pair off
+
See the newton command. This is a restriction to use this potential.
+
Pair style vashishta/gpu requires atom IDs
+
This is a requirement to use this potential.
+
Pair style vashishta/gpu requires newton pair off
+
See the newton command. This is a restriction to use this potential.
+
Pair style tersoff/gpu requires atom IDs
+
This is a requirement to use the tersoff/gpu potential.
+
Pair style tersoff/gpu requires newton pair off
+
See the newton command. This is a restriction to use this pair style.
+
Pair style tip4p/cut requires atom IDs
+
This is a requirement to use this potential.
+
Pair style tip4p/cut requires atom attribute q
+
The atom style defined does not have this attribute.
+
Pair style tip4p/cut requires newton pair on
+
See the newton command. This is a restriction to use this potential.
+
Pair style tip4p/long requires atom IDs
+
There are no atom IDs defined in the system and the TIP4P potential +requires them to find O,H atoms with a water molecule.
+
Pair style tip4p/long requires atom attribute q
+
The atom style defined does not have these attributes.
+
Pair style tip4p/long requires newton pair on
+
This is because the computation of constraint forces within a water +molecule adds forces to atoms owned by other processors.
+
Pair table cutoffs must all be equal to use with KSpace
+
When using pair style table with a long-range KSpace solver, the +cutoffs for all atom type pairs must all be the same, since the +long-range solver starts at that cutoff.
+
Pair table parameters did not set N
+
List of pair table parameters must include N setting.
+
Pair tersoff/zbl requires metal or real units
+
This is a current restriction of this pair potential.
+
Pair tersoff/zbl/kk requires metal or real units
+
This is a current restriction of this pair potential.
+
Pair tri/lj requires atom style tri
+
Self-explanatory.
+
Pair yukawa/colloid requires atom style sphere
+
Self-explanatory.
+
Pair yukawa/colloid requires atoms with same type have same radius
+
Self-explanatory.
+
Pair yukawa/colloid/gpu requires atom style sphere
+
Self-explanatory.
+
PairKIM only works with 3D problems
+
This is a current limitation.
+
Pair_coeff command before pair_style is defined
+
Self-explanatory.
+
Pair_coeff command before simulation box is defined
+
The pair_coeff command cannot be used before a read_data, +read_restart, or create_box command.
+
Pair_modify command before pair_style is defined
+
Self-explanatory.
+
Pair_modify special setting for pair hybrid incompatible with global special_bonds setting
+
Cannot override a setting of 0.0 or 1.0 or change a setting between +0.0 and 1.0.
+
Pair_write command before pair_style is defined
+
Self-explanatory.
+
Particle on or inside fix wall surface
+
Particles must be “exterior” to the wall in order for energy/force to +be calculated.
+
Particle outside surface of region used in fix wall/region
+
Particles must be inside the region for energy/force to be calculated. +A particle outside the region generates an error.
+
Per-atom compute in equal-style variable formula
+
Equal-style variables cannot use per-atom quantities.
+
Per-atom energy was not tallied on needed timestep
+
You are using a thermo keyword that requires potentials to +have tallied energy, but they didn’t on this timestep. See the +variable doc page for ideas on how to make this work.
+
Per-atom fix in equal-style variable formula
+
Equal-style variables cannot use per-atom quantities.
+
Per-atom virial was not tallied on needed timestep
+
You are using a thermo keyword that requires potentials to have +tallied the virial, but they didn’t on this timestep. See the +variable doc page for ideas on how to make this work.
+
Per-processor system is too big
+
The number of owned atoms plus ghost atoms on a single +processor must fit in 32-bit integer.
+
Potential energy ID for fix neb does not exist
+
Self-explanatory.
+
Potential energy ID for fix nvt/nph/npt does not exist
+
A compute for potential energy must be defined.
+
Potential file has duplicate entry
+
The potential file has more than one entry for the same element.
+
Potential file is missing an entry
+
The potential file does not have a needed entry.
+
Power by 0 in variable formula
+
Self-explanatory.
+
Pressure ID for fix box/relax does not exist
+
The compute ID needed to compute pressure for the fix does not +exist.
+
Pressure ID for fix modify does not exist
+
Self-explanatory.
+
Pressure ID for fix npt/nph does not exist
+
Self-explanatory.
+
Pressure ID for fix press/berendsen does not exist
+
The compute ID needed to compute pressure for the fix does not +exist.
+
Pressure ID for fix rigid npt/nph does not exist
+
Self-explanatory.
+
Pressure ID for thermo does not exist
+
The compute ID needed to compute pressure for thermodynamics does not +exist.
+
Pressure control can not be used with fix nvt
+
Self-explanatory.
+
Pressure control can not be used with fix nvt/asphere
+
Self-explanatory.
+
Pressure control can not be used with fix nvt/body
+
Self-explanatory.
+
Pressure control can not be used with fix nvt/sllod
+
Self-explanatory.
+
Pressure control can not be used with fix nvt/sphere
+
Self-explanatory.
+
Pressure control must be used with fix nph
+
Self-explanatory.
+
Pressure control must be used with fix nph/asphere
+
Self-explanatory.
+
Pressure control must be used with fix nph/body
+
Self-explanatory.
+
Pressure control must be used with fix nph/small
+
Self-explanatory.
+
Pressure control must be used with fix nph/sphere
+
Self-explanatory.
+
Pressure control must be used with fix nphug
+
A pressure control keyword (iso, aniso, tri, x, y, or z) must be +provided.
+
Pressure control must be used with fix npt
+
Self-explanatory.
+
Pressure control must be used with fix npt/asphere
+
Self-explanatory.
+
Pressure control must be used with fix npt/body
+
Self-explanatory.
+
Pressure control must be used with fix npt/sphere
+
Self-explanatory.
+
Processor count in z must be 1 for 2d simulation
+
Self-explanatory.
+
Processor partitions do not match number of allocated processors
+
The total number of processors in all partitions must match the number +of processors LAMMPS is running on.
+
Processors command after simulation box is defined
+
The processors command cannot be used after a read_data, read_restart, +or create_box command.
+
Processors custom grid file is inconsistent
+
The vales in the custom file are not consistent with the number of +processors you are running on or the Px,Py,Pz settings of the +processors command. Or there was not a setting for every processor.
+
Processors grid numa and map style are incompatible
+
Using numa for gstyle in the processors command requires using +cart for the map option.
+
Processors part option and grid style are incompatible
+
Cannot use gstyle numa or custom with the part option.
+
Processors twogrid requires proc count be a multiple of core count
+
Self-explanatory.
+
Pstart and Pstop must have the same value
+
Self-explanatory.
+
Python function evaluation failed
+
The Python function did not run successfully and/or did not return a +value (if it is supposed to return a value). This is probably due to +some error condition in the function.
+
Python function is not callable
+
The provided Python code was run successfully, but it not +define a callable function with the required name.
+
Python invoke of undefined function
+
Cannot invoke a function that has not been previously defined.
+
Python variable does not match Python function
+
This matching is defined by the python-style variable and the python +command.
+
Python variable has no function
+
No python command was used to define the function associated with the +python-style variable.
+
QEQ with ‘newton pair off’ not supported
+
See the newton command. This is a restriction to use the QEQ fixes.
+
R0 < 0 for fix spring command
+
Equilibrium spring length is invalid.
+
RATTLE coordinate constraints are not satisfied up to desired tolerance
+
Self-explanatory.
+
RATTLE determinant = 0.0
+
The determinant of the matrix being solved for a single cluster +specified by the fix rattle command is numerically invalid.
+
RATTLE failed
+
Certain constraints were not satisfied.
+
RATTLE velocity constraints are not satisfied up to desired tolerance
+
Self-explanatory.
+
Read data add offset is too big
+
It cannot be larger than the size of atom IDs, e.g. the maximum 32-bit +integer.
+
Read dump of atom property that isn’t allocated
+
Self-explanatory.
+
Read rerun dump file timestep > specified stop
+
Self-explanatory.
+
Read restart MPI-IO input not allowed with % in filename
+
This is because a % signifies one file per processor and MPI-IO +creates one large file for all processors.
+
Read_data shrink wrap did not assign all atoms correctly
+
This is typically because the box-size specified in the data file is +large compared to the actual extent of atoms in a shrink-wrapped +dimension. When LAMMPS shrink-wraps the box atoms will be lost if the +processor they are re-assigned to is too far away. Choose a box +size closer to the actual extent of the atoms.
+
Read_dump command before simulation box is defined
+
The read_dump command cannot be used before a read_data, read_restart, +or create_box command.
+
Read_dump field not found in dump file
+
Self-explanatory.
+
Read_dump triclinic status does not match simulation
+
Both the dump snapshot and the current LAMMPS simulation must +be using either an orthogonal or triclinic box.
+
Read_dump xyz fields do not have consistent scaling/wrapping
+
Self-explanatory.
+
Reading from MPI-IO filename when MPIIO package is not installed
+
Self-explanatory.
+
Reax_defs.h setting for NATDEF is too small
+
Edit the setting in the ReaxFF library and re-compile the +library and re-build LAMMPS.
+
Reax_defs.h setting for NNEIGHMAXDEF is too small
+
Edit the setting in the ReaxFF library and re-compile the +library and re-build LAMMPS.
+
Receiving partition in processors part command is already a receiver
+
Cannot specify a partition to be a receiver twice.
+
Region ID for compute chunk/atom does not exist
+
Self-explanatory.
+
Region ID for compute reduce/region does not exist
+
Self-explanatory.
+
Region ID for compute temp/region does not exist
+
Self-explanatory.
+
Region ID for dump custom does not exist
+
Self-explanatory.
+
Region ID for fix addforce does not exist
+
Self-explanatory.
+
Region ID for fix atom/swap does not exist
+
Self-explanatory.
+
Region ID for fix ave/spatial does not exist
+
Self-explanatory.
+
Region ID for fix aveforce does not exist
+
Self-explanatory.
+
Region ID for fix deposit does not exist
+
Self-explanatory.
+
Region ID for fix efield does not exist
+
Self-explanatory.
+
Region ID for fix evaporate does not exist
+
Self-explanatory.
+
Region ID for fix gcmc does not exist
+
Self-explanatory.
+
Region ID for fix heat does not exist
+
Self-explanatory.
+
Region ID for fix setforce does not exist
+
Self-explanatory.
+
Region ID for fix wall/region does not exist
+
Self-explanatory.
+
Region ID for group dynamic does not exist
+
Self-explanatory.
+
Region ID in variable formula does not exist
+
Self-explanatory.
+
Region cannot have 0 length rotation vector
+
Self-explanatory.
+
Region for fix oneway does not exist
+
Self-explanatory.
+
Region intersect region ID does not exist
+
Self-explanatory.
+
Region union or intersect cannot be dynamic
+
The sub-regions can be dynamic, but not the combined region.
+
Region union region ID does not exist
+
One or more of the region IDs specified by the region union command +does not exist.
+
Replacing a fix, but new style != old style
+
A fix ID can be used a 2nd time, but only if the style matches the +previous fix. In this case it is assumed you with to reset a fix’s +parameters. This error may mean you are mistakenly re-using a fix ID +when you do not intend to.
+
Replicate command before simulation box is defined
+
The replicate command cannot be used before a read_data, read_restart, +or create_box command.
+
Replicate did not assign all atoms correctly
+
Atoms replicated by the replicate command were not assigned correctly +to processors. This is likely due to some atom coordinates being +outside a non-periodic simulation box.
+
Replicated system atom IDs are too big
+
See the setting for tagint in the src/lmptype.h file.
+
Replicated system is too big
+
See the setting for bigint in the src/lmptype.h file.
+
Required border comm not yet implemented with Kokkos
+
There are various limitations in the communication options supported +by Kokkos.
+
Rerun command before simulation box is defined
+
The rerun command cannot be used before a read_data, read_restart, or +create_box command.
+
Rerun dump file does not contain requested snapshot
+
Self-explanatory.
+
Resetting timestep size is not allowed with fix move
+
This is because fix move is moving atoms based on elapsed time.
+
Respa inner cutoffs are invalid
+
The first cutoff must be <= the second cutoff.
+
Respa levels must be >= 1
+
Self-explanatory.
+
Respa middle cutoffs are invalid
+
The first cutoff must be <= the second cutoff.
+
Restart file MPI-IO output not allowed with % in filename
+
This is because a % signifies one file per processor and MPI-IO +creates one large file for all processors.
+
Restart file byte ordering is not recognized
+
The file does not appear to be a LAMMPS restart file since it doesn’t +contain a recognized byte-orderomg flag at the beginning.
+
Restart file byte ordering is swapped
+
The file was written on a machine with different byte-ordering than +the machine you are reading it on. Convert it to a text data file +instead, on the machine you wrote it on.
+
Restart file incompatible with current version
+
This is probably because you are trying to read a file created with a +version of LAMMPS that is too old compared to the current version. +Use your older version of LAMMPS and convert the restart file +to a data file.
+
Restart file is a MPI-IO file
+
The file is inconsistent with the filename you specified for it.
+
Restart file is a multi-proc file
+
The file is inconsistent with the filename you specified for it.
+
Restart file is not a MPI-IO file
+
The file is inconsistent with the filename you specified for it.
+
Restart file is not a multi-proc file
+
The file is inconsistent with the filename you specified for it.
+
Restart variable returned a bad timestep
+
The variable must return a timestep greater than the current timestep.
+
Restrain atoms %d %d %d %d missing on proc %d at step %ld
+
The 4 atoms in a restrain dihedral specified by the fix restrain +command are not all accessible to a processor. This probably means an +atom has moved too far.
+
Restrain atoms %d %d %d missing on proc %d at step %ld
+
The 3 atoms in a restrain angle specified by the fix restrain +command are not all accessible to a processor. This probably means an +atom has moved too far.
+
Restrain atoms %d %d missing on proc %d at step %ld
+
The 2 atoms in a restrain bond specified by the fix restrain +command are not all accessible to a processor. This probably means an +atom has moved too far.
+
Reuse of compute ID
+
A compute ID cannot be used twice.
+
Reuse of dump ID
+
A dump ID cannot be used twice.
+
Reuse of molecule template ID
+
The template IDs must be unique.
+
Reuse of region ID
+
A region ID cannot be used twice.
+
Rigid body atoms %d %d missing on proc %d at step %ld
+
This means that an atom cannot find the atom that owns the rigid body +it is part of, or vice versa. The solution is to use the communicate +cutoff command to insure ghost atoms are acquired from far enough away +to encompass the max distance printed when the fix rigid/small command +was invoked.
+
Rigid body has degenerate moment of inertia
+
Fix poems will only work with bodies (collections of atoms) that have +non-zero principal moments of inertia. This means they must be 3 or +more non-collinear atoms, even with joint atoms removed.
+
Rigid fix must come before NPT/NPH fix
+
NPT/NPH fix must be defined in input script after all rigid fixes, +else the rigid fix contribution to the pressure virial is +incorrect.
+
Rmask function in equal-style variable formula
+
Rmask is per-atom operation.
+
Run command before simulation box is defined
+
The run command cannot be used before a read_data, read_restart, or +create_box command.
+
Run command start value is after start of run
+
Self-explanatory.
+
Run command stop value is before end of run
+
Self-explanatory.
+
Run_style command before simulation box is defined
+
The run_style command cannot be used before a read_data, +read_restart, or create_box command.
+
SRD bin size for fix srd differs from user request
+
Fix SRD had to adjust the bin size to fit the simulation box. See the +cubic keyword if you want this message to be an error vs warning.
+
SRD bins for fix srd are not cubic enough
+
The bin shape is not within tolerance of cubic. See the cubic +keyword if you want this message to be an error vs warning.
+
SRD particle %d started inside big particle %d on step %ld bounce %d
+
See the inside keyword if you want this message to be an error vs +warning.
+
SRD particle %d started inside wall %d on step %ld bounce %d
+
See the inside keyword if you want this message to be an error vs +warning.
+
Same dimension twice in fix ave/spatial
+
Self-explanatory.
+
Sending partition in processors part command is already a sender
+
Cannot specify a partition to be a sender twice.
+
Set command before simulation box is defined
+
The set command cannot be used before a read_data, read_restart, +or create_box command.
+
Set command floating point vector does not exist
+
Self-explanatory.
+
Set command integer vector does not exist
+
Self-explanatory.
+
Set command with no atoms existing
+
No atoms are yet defined so the set command cannot be used.
+
Set region ID does not exist
+
Region ID specified in set command does not exist.
+
Shake angles have different bond types
+
All 3-atom angle-constrained SHAKE clusters specified by the fix shake +command that are the same angle type, must also have the same bond +types for the 2 bonds in the angle.
+
Shake atoms %d %d %d %d missing on proc %d at step %ld
+
The 4 atoms in a single shake cluster specified by the fix shake +command are not all accessible to a processor. This probably means +an atom has moved too far.
+
Shake atoms %d %d %d missing on proc %d at step %ld
+
The 3 atoms in a single shake cluster specified by the fix shake +command are not all accessible to a processor. This probably means +an atom has moved too far.
+
Shake atoms %d %d missing on proc %d at step %ld
+
The 2 atoms in a single shake cluster specified by the fix shake +command are not all accessible to a processor. This probably means +an atom has moved too far.
+
Shake cluster of more than 4 atoms
+
A single cluster specified by the fix shake command can have no more +than 4 atoms.
+
Shake clusters are connected
+
A single cluster specified by the fix shake command must have a single +central atom with up to 3 other atoms bonded to it.
+
Shake determinant = 0.0
+
The determinant of the matrix being solved for a single cluster +specified by the fix shake command is numerically invalid.
+
Shake fix must come before NPT/NPH fix
+
NPT fix must be defined in input script after SHAKE fix, else the +SHAKE fix contribution to the pressure virial is incorrect.
+
Shear history overflow, boost neigh_modify one
+
There are too many neighbors of a single atom. Use the neigh_modify +command to increase the max number of neighbors allowed for one atom. +You may also want to boost the page size.
+
Small to big integers are not sized correctly
+
This error occurs whenthe sizes of smallint, imageint, tagint, bigint, +as defined in src/lmptype.h are not what is expected. Contact +the developers if this occurs.
+
Smallint setting in lmptype.h is invalid
+
It has to be the size of an integer.
+
Smallint setting in lmptype.h is not compatible
+
Smallint stored in restart file is not consistent with LAMMPS version +you are running.
+
Special list size exceeded in fix bond/create
+
See the “read_data extra/special/per/atom” command +(or the “create_box extra/special/per/atom” command) +for info on how to leave space in the special bonds +list to allow for additional bonds to be formed.
+
Specified processors != physical processors
+
The 3d grid of processors defined by the processors command does not +match the number of processors LAMMPS is being run on.
+
Specified target stress must be uniaxial or hydrostatic
+
Self-explanatory.
+
Sqrt of negative value in variable formula
+
Self-explanatory.
+
Subsequent read data induced too many angles per atom
+
See the extra/angle/per/atom keyword for the create_box +or the read_data command to set this limit larger
+
Subsequent read data induced too many bonds per atom
+
See the extra/bond/per/atom keyword for the create_box +or the read_data command to set this limit larger
+
Subsequent read data induced too many dihedrals per atom
+
See the extra/dihedral/per/atom keyword for the create_box +or the read_data command to set this limit larger
+
Subsequent read data induced too many impropers per atom
+
See the extra/improper/per/atom keyword for the create_box +or the read_data command to set this limit larger
+
Substitution for illegal variable
+
Input script line contained a variable that could not be substituted +for.
+
Support for writing images in JPEG format not included
+
LAMMPS was not built with the -DLAMMPS_JPEG switch in the Makefile.
+
Support for writing images in PNG format not included
+
LAMMPS was not built with the -DLAMMPS_PNG switch in the Makefile.
+
Support for writing movies not included
+
LAMMPS was not built with the -DLAMMPS_FFMPEG switch in the Makefile
+
System in data file is too big
+
See the setting for bigint in the src/lmptype.h file.
+
System is not charge neutral, net charge = %g
+
The total charge on all atoms on the system is not 0.0. +For some KSpace solvers this is an error.
+
TAD nsteps must be multiple of t_event
+
Self-explanatory.
+
TIP4P hydrogen has incorrect atom type
+
The TIP4P pairwise computation found an H atom whose type does not +agree with the specified H type.
+
TIP4P hydrogen is missing
+
The TIP4P pairwise computation failed to find the correct H atom +within a water molecule.
+
TMD target file did not list all group atoms
+
The target file for the fix tmd command did not list all atoms in the +fix group.
+
Tad command before simulation box is defined
+
Self-explanatory.
+
Tagint setting in lmptype.h is invalid
+
Tagint must be as large or larger than smallint.
+
Tagint setting in lmptype.h is not compatible
+
Format of tagint stored in restart file is not consistent with LAMMPS +version you are running. See the settings in src/lmptype.h
+
Target pressure for fix rigid/nph cannot be < 0.0
+
Self-explanatory.
+
Target pressure for fix rigid/npt/small cannot be < 0.0
+
Self-explanatory.
+
Target temperature for fix nvt/npt/nph cannot be 0.0
+
Self-explanatory.
+
Target temperature for fix rigid/npt cannot be 0.0
+
Self-explanatory.
+
Target temperature for fix rigid/npt/small cannot be 0.0
+
Self-explanatory.
+
Target temperature for fix rigid/nvt cannot be 0.0
+
Self-explanatory.
+
Target temperature for fix rigid/nvt/small cannot be 0.0
+
Self-explanatory.
+
Temper command before simulation box is defined
+
The temper command cannot be used before a read_data, read_restart, or +create_box command.
+
Temperature ID for fix bond/swap does not exist
+
Self-explanatory.
+
Temperature ID for fix box/relax does not exist
+
Self-explanatory.
+
Temperature ID for fix nvt/npt does not exist
+
Self-explanatory.
+
Temperature ID for fix press/berendsen does not exist
+
Self-explanatory.
+
Temperature ID for fix rigid nvt/npt/nph does not exist
+
Self-explanatory.
+
Temperature ID for fix temp/berendsen does not exist
+
Self-explanatory.
+
Temperature ID for fix temp/csld does not exist
+
Self-explanatory.
+
Temperature ID for fix temp/csvr does not exist
+
Self-explanatory.
+
Temperature ID for fix temp/rescale does not exist
+
Self-explanatory.
+
Temperature compute degrees of freedom < 0
+
This should not happen if you are calculating the temperature +on a valid set of atoms.
+
Temperature control can not be used with fix nph
+
Self-explanatory.
+
Temperature control can not be used with fix nph/asphere
+
Self-explanatory.
+
Temperature control can not be used with fix nph/body
+
Self-explanatory.
+
Temperature control can not be used with fix nph/sphere
+
Self-explanatory.
+
Temperature control must be used with fix nphug
+
The temp keyword must be provided.
+
Temperature control must be used with fix npt
+
Self-explanatory.
+
Temperature control must be used with fix npt/asphere
+
Self-explanatory.
+
Temperature control must be used with fix npt/body
+
Self-explanatory.
+
Temperature control must be used with fix npt/sphere
+
Self-explanatory.
+
Temperature control must be used with fix nvt
+
Self-explanatory.
+
Temperature control must be used with fix nvt/asphere
+
Self-explanatory.
+
Temperature control must be used with fix nvt/body
+
Self-explanatory.
+
Temperature control must be used with fix nvt/sllod
+
Self-explanatory.
+
Temperature control must be used with fix nvt/sphere
+
Self-explanatory.
+
Temperature control must not be used with fix nph/small
+
Self-explanatory.
+
Temperature for fix nvt/sllod does not have a bias
+
The specified compute must compute temperature with a bias.
+
Tempering could not find thermo_pe compute
+
This compute is created by the thermo command. It must have been +explicitly deleted by a uncompute command.
+
Tempering fix ID is not defined
+
The fix ID specified by the temper command does not exist.
+
Tempering temperature fix is not valid
+
The fix specified by the temper command is not one that controls +temperature (nvt or langevin).
+
Test_descriptor_string already allocated
+
This is an internal error. Contact the developers.
+
The package gpu command is required for gpu styles
+
Self-explanatory.
+
Thermo and fix not computed at compatible times
+
Fixes generate values on specific timesteps. The thermo output +does not match these timesteps.
+
Thermo compute array is accessed out-of-range
+
Self-explanatory.
+
Thermo compute does not compute array
+
Self-explanatory.
+
Thermo compute does not compute scalar
+
Self-explanatory.
+
Thermo compute does not compute vector
+
Self-explanatory.
+
Thermo compute vector is accessed out-of-range
+
Self-explanatory.
+
Thermo custom variable cannot be indexed
+
Self-explanatory.
+
Thermo custom variable is not equal-style variable
+
Only equal-style variables can be output with thermodynamics, not +atom-style variables.
+
Thermo every variable returned a bad timestep
+
The variable must return a timestep greater than the current timestep.
+
Thermo fix array is accessed out-of-range
+
Self-explanatory.
+
Thermo fix does not compute array
+
Self-explanatory.
+
Thermo fix does not compute scalar
+
Self-explanatory.
+
Thermo fix does not compute vector
+
Self-explanatory.
+
Thermo fix vector is accessed out-of-range
+
Self-explanatory.
+
Thermo keyword in variable requires thermo to use/init pe
+
You are using a thermo keyword in a variable that requires +potential energy to be calculated, but your thermo output +does not use it. Add it to your thermo output.
+
Thermo keyword in variable requires thermo to use/init press
+
You are using a thermo keyword in a variable that requires pressure to +be calculated, but your thermo output does not use it. Add it to your +thermo output.
+
Thermo keyword in variable requires thermo to use/init temp
+
You are using a thermo keyword in a variable that requires temperature +to be calculated, but your thermo output does not use it. Add it to +your thermo output.
+
Thermo style does not use press
+
Cannot use thermo_modify to set this parameter since the thermo_style +is not computing this quantity.
+
Thermo style does not use temp
+
Cannot use thermo_modify to set this parameter since the thermo_style +is not computing this quantity.
+
Thermo_modify every variable returned a bad timestep
+
The returned timestep is less than or equal to the current timestep.
+
Thermo_modify int format does not contain d character
+
Self-explanatory.
+
Thermo_modify pressure ID does not compute pressure
+
The specified compute ID does not compute pressure.
+
Thermo_modify temperature ID does not compute temperature
+
The specified compute ID does not compute temperature.
+
Thermo_style command before simulation box is defined
+
The thermo_style command cannot be used before a read_data, +read_restart, or create_box command.
+
This variable thermo keyword cannot be used between runs
+
Keywords that refer to time (such as cpu, elapsed) do not +make sense in between runs.
+
Threshhold for an atom property that isn’t allocated
+
A dump threshold has been requested on a quantity that is +not defined by the atom style used in this simulation.
+
Timestep must be >= 0
+
Specified timestep is invalid.
+
Too big a problem to use velocity create loop all
+
The system size must fit in a 32-bit integer to use this option.
+
Too big a timestep for dump dcd
+
The timestep must fit in a 32-bit integer to use this dump style.
+
Too big a timestep for dump xtc
+
The timestep must fit in a 32-bit integer to use this dump style.
+
Too few bits for lookup table
+
Table size specified via pair_modify command does not work with your +machine’s floating point representation.
+
Too few lines in %s section of data file
+
Self-explanatory.
+
Too few values in body lines in data file
+
Self-explanatory.
+
Too few values in body section of molecule file
+
Self-explanatory.
+
Too many -pk arguments in command line
+
The string formed by concatenating the arguments is too long. Use a +package command in the input script instead.
+
Too many MSM grid levels
+
The max number of MSM grid levels is hardwired to 10.
+
Too many args in variable function
+
More args are used than any variable function allows.
+
Too many atom pairs for pair bop
+
The number of atomic pairs exceeds the expected number. Check your +atomic structure to ensure that it is realistic.
+
Too many atom sorting bins
+
This is likely due to an immense simulation box that has blown up +to a large size.
+
Too many atom triplets for pair bop
+
The number of three atom groups for angle determinations exceeds the +expected number. Check your atomic structure to ensure that it is +realistic.
+
Too many atoms for dump dcd
+
The system size must fit in a 32-bit integer to use this dump +style.
+
Too many atoms for dump xtc
+
The system size must fit in a 32-bit integer to use this dump +style.
+
Too many atoms to dump sort
+
Cannot sort when running with more than 2^31 atoms.
+
Too many exponent bits for lookup table
+
Table size specified via pair_modify command does not work with your +machine’s floating point representation.
+
Too many groups
+
The maximum number of atom groups (including the “all” group) is +given by MAX_GROUP in group.cpp and is 32.
+
Too many iterations
+
You must use a number of iterations that fit in a 32-bit integer +for minimization.
+
Too many lines in one body in data file - boost MAXBODY
+
MAXBODY is a setting at the top of the src/read_data.cpp file. +Set it larger and re-compile the code.
+
Too many local+ghost atoms for neighbor list
+
The number of nlocal + nghost atoms on a processor +is limited by the size of a 32-bit integer with 2 bits +removed for masking 1-2, 1-3, 1-4 neighbors.
+
Too many mantissa bits for lookup table
+
Table size specified via pair_modify command does not work with your +machine’s floating point representation.
+
Too many masses for fix shake
+
The fix shake command cannot list more masses than there are atom +types.
+
Too many molecules for fix poems
+
The limit is 2^31 = ~2 billion molecules.
+
Too many molecules for fix rigid
+
The limit is 2^31 = ~2 billion molecules.
+
Too many neighbor bins
+
This is likely due to an immense simulation box that has blown up +to a large size.
+
Too many timesteps
+
The cumulative timesteps must fit in a 64-bit integer.
+
Too many timesteps for NEB
+
You must use a number of timesteps that fit in a 32-bit integer +for NEB.
+
Too many total atoms
+
See the setting for bigint in the src/lmptype.h file.
+
Too many total bits for bitmapped lookup table
+
Table size specified via pair_modify command is too large. Note that +a value of N generates a 2^N size table.
+
Too many values in body lines in data file
+
Self-explanatory.
+
Too many values in body section of molecule file
+
Self-explanatory.
+
Too much buffered per-proc info for dump
+
The size of the buffered string must fit in a 32-bit integer for a +dump.
+
Too much per-proc info for dump
+
Number of local atoms times number of columns must fit in a 32-bit +integer for dump.
+
Tree structure in joint connections
+
Fix poems cannot (yet) work with coupled bodies whose joints connect +the bodies in a tree structure.
+
Triclinic box skew is too large
+
The displacement in a skewed direction must be less than half the box +length in that dimension. E.g. the xy tilt must be between -half and ++half of the x box length. This constraint can be relaxed by using +the box tilt command.
+
Tried to convert a double to int, but input_double > INT_MAX
+
Self-explanatory.
+
Trying to build an occasional neighbor list before initialization completed
+
This is not allowed. Source code caller needs to be modified.
+
Two fix ave commands using same compute chunk/atom command in incompatible ways
+
They are both attempting to “lock” the chunk/atom command so that the +chunk assignments persist for some number of timesteps, but are doing +it in different ways.
+
Two groups cannot be the same in fix spring couple
+
Self-explanatory.
+
USER-CUDA mode requires CUDA variant of min style
+
CUDA mode is enabled, so the min style must include a cuda suffix.
+
USER-CUDA mode requires CUDA variant of run style
+
CUDA mode is enabled, so the run style must include a cuda suffix.
+
USER-CUDA package does not yet support comm_style tiled
+
Self-explanatory.
+
USER-CUDA package requires a cuda enabled atom_style
+
Self-explanatory.
+
Unable to initialize accelerator for use
+
There was a problem initializing an accelerator for the gpu package
+
Unbalanced quotes in input line
+
No matching end double quote was found following a leading double +quote.
+
Unexpected end of -reorder file
+
Self-explanatory.
+
Unexpected end of AngleCoeffs section
+
Read a blank line.
+
Unexpected end of BondCoeffs section
+
Read a blank line.
+
Unexpected end of DihedralCoeffs section
+
Read a blank line.
+
Unexpected end of ImproperCoeffs section
+
Read a blank line.
+
Unexpected end of PairCoeffs section
+
Read a blank line.
+
Unexpected end of custom file
+
Self-explanatory.
+
Unexpected end of data file
+
LAMMPS hit the end of the data file while attempting to read a +section. Something is wrong with the format of the data file.
+
Unexpected end of dump file
+
A read operation from the file failed.
+
Unexpected end of fix rigid file
+
A read operation from the file failed.
+
Unexpected end of fix rigid/small file
+
A read operation from the file failed.
+
Unexpected end of molecule file
+
Self-explanatory.
+
Unexpected end of neb file
+
A read operation from the file failed.
+
Units command after simulation box is defined
+
The units command cannot be used after a read_data, read_restart, or +create_box command.
+
Universe/uloop variable count < # of partitions
+
A universe or uloop style variable must specify a number of values >= to the +number of processor partitions.
+
Unknown angle style
+
The choice of angle style is unknown.
+
Unknown atom style
+
The choice of atom style is unknown.
+
Unknown body style
+
The choice of body style is unknown.
+
Unknown bond style
+
The choice of bond style is unknown.
+
Unknown category for info is_active()
+
Self-explanatory.
+
Unknown category for info is_available()
+
Self-explanatory.
+
Unknown category for info is_defined()
+
Self-explanatory.
+
Unknown command: %s
+
The command is not known to LAMMPS. Check the input script.
+
Unknown compute style
+
The choice of compute style is unknown.
+
Unknown dihedral style
+
The choice of dihedral style is unknown.
+
Unknown dump reader style
+
The choice of dump reader style via the format keyword is unknown.
+
Unknown dump style
+
The choice of dump style is unknown.
+
Unknown error in GPU library
+
Self-explanatory.
+
Unknown fix style
+
The choice of fix style is unknown.
+
Unknown identifier in data file: %s
+
A section of the data file cannot be read by LAMMPS.
+
Unknown improper style
+
The choice of improper style is unknown.
+
Unknown keyword in thermo_style custom command
+
One or more specified keywords are not recognized.
+
Unknown kspace style
+
The choice of kspace style is unknown.
+
Unknown name for info newton category
+
Self-explanatory.
+
Unknown name for info package category
+
Self-explanatory.
+
Unknown name for info pair category
+
Self-explanatory.
+
Unknown pair style
+
The choice of pair style is unknown.
+
Unknown pair_modify hybrid sub-style
+
The choice of sub-style is unknown.
+
Unknown region style
+
The choice of region style is unknown.
+
Unknown section in molecule file
+
Self-explanatory.
+
Unknown table style in angle style table
+
Self-explanatory.
+
Unknown table style in bond style table
+
Self-explanatory.
+
Unknown table style in pair_style command
+
Style of table is invalid for use with pair_style table command.
+
Unknown unit_style
+
Self-explanatory. Check the input script or data file.
+
Unrecognized lattice type in MEAM file 1
+
The lattice type in an entry of the MEAM library file is not +valid.
+
Unrecognized lattice type in MEAM file 2
+
The lattice type in an entry of the MEAM parameter file is not +valid.
+
Unrecognized pair style in compute pair command
+
Self-explanatory.
+
Unrecognized virial argument in pair_style command
+
Only two options are supported: LAMMPSvirial and KIMvirial
+
Unsupported mixing rule in kspace_style ewald/disp
+
Only geometric mixing is supported.
+
Unsupported order in kspace_style ewald/disp
+
Only 1/r^6 dispersion or dipole terms are supported.
+
Unsupported order in kspace_style pppm/disp, pair_style %s
+
Only pair styles with 1/r and 1/r^6 dependence are currently supported.
+
Use cutoff keyword to set cutoff in single mode
+
Mode is single so cutoff/multi keyword cannot be used.
+
Use cutoff/multi keyword to set cutoff in multi mode
+
Mode is multi so cutoff keyword cannot be used.
+
Using fix nvt/sllod with inconsistent fix deform remap option
+
Fix nvt/sllod requires that deforming atoms have a velocity profile +provided by “remap v” as a fix deform option.
+
Using fix nvt/sllod with no fix deform defined
+
Self-explanatory.
+
Using fix srd with inconsistent fix deform remap option
+
When shearing the box in an SRD simulation, the remap v option for fix +deform needs to be used.
+
Using pair lubricate with inconsistent fix deform remap option
+
Must use remap v option with fix deform with this pair style.
+
Using pair lubricate/poly with inconsistent fix deform remap option
+
If fix deform is used, the remap v option is required.
+
Using suffix cuda without USER-CUDA package enabled
+
Self-explanatory.
+
Using suffix gpu without GPU package installed
+
Self-explanatory.
+
Using suffix intel without USER-INTEL package installed
+
Self-explanatory.
+
Using suffix kk without KOKKOS package enabled
+
Self-explanatory.
+
Using suffix omp without USER-OMP package installed
+
Self-explanatory.
+
Using update dipole flag requires atom attribute mu
+
Self-explanatory.
+
Using update dipole flag requires atom style sphere
+
Self-explanatory.
+
Variable ID in variable formula does not exist
+
Self-explanatory.
+
Variable atom ID is too large
+
Specified ID is larger than the maximum allowed atom ID.
+
Variable evaluation before simulation box is defined
+
Cannot evaluate a compute or fix or atom-based value in a variable +before the simulation has been setup.
+
Variable evaluation in fix wall gave bad value
+
The returned value for epsilon or sigma < 0.0.
+
Variable evaluation in region gave bad value
+
Variable returned a radius < 0.0.
+
Variable for compute ti is invalid style
+
Self-explanatory.
+
Variable for create_atoms is invalid style
+
The variables must be equal-style variables.
+
Variable for displace_atoms is invalid style
+
It must be an equal-style or atom-style variable.
+
Variable for dump every is invalid style
+
Only equal-style variables can be used.
+
Variable for dump image center is invalid style
+
Must be an equal-style variable.
+
Variable for dump image persp is invalid style
+
Must be an equal-style variable.
+
Variable for dump image phi is invalid style
+
Must be an equal-style variable.
+
Variable for dump image theta is invalid style
+
Must be an equal-style variable.
+
Variable for dump image zoom is invalid style
+
Must be an equal-style variable.
+
Variable for fix adapt is invalid style
+
Only equal-style variables can be used.
+
Variable for fix addforce is invalid style
+
Self-explanatory.
+
Variable for fix aveforce is invalid style
+
Only equal-style variables can be used.
+
Variable for fix deform is invalid style
+
The variable must be an equal-style variable.
+
Variable for fix efield is invalid style
+
The variable must be an equal- or atom-style variable.
+
Variable for fix gravity is invalid style
+
Only equal-style variables can be used.
+
Variable for fix heat is invalid style
+
Only equal-style or atom-style variables can be used.
+
Variable for fix indent is invalid style
+
Only equal-style variables can be used.
+
Variable for fix indent is not equal style
+
Only equal-style variables can be used.
+
Variable for fix langevin is invalid style
+
It must be an equal-style variable.
+
Variable for fix move is invalid style
+
Only equal-style variables can be used.
+
Variable for fix setforce is invalid style
+
Only equal-style variables can be used.
+
Variable for fix temp/berendsen is invalid style
+
Only equal-style variables can be used.
+
Variable for fix temp/csld is invalid style
+
Only equal-style variables can be used.
+
Variable for fix temp/csvr is invalid style
+
Only equal-style variables can be used.
+
Variable for fix temp/rescale is invalid style
+
Only equal-style variables can be used.
+
Variable for fix wall is invalid style
+
Only equal-style variables can be used.
+
Variable for fix wall/reflect is invalid style
+
Only equal-style variables can be used.
+
Variable for fix wall/srd is invalid style
+
Only equal-style variables can be used.
+
Variable for group dynamic is invalid style
+
The variable must be an atom-style variable.
+
Variable for group is invalid style
+
Only atom-style variables can be used.
+
Variable for region cylinder is invalid style
+
Only equal-style variables are allowed.
+
Variable for region is invalid style
+
Only equal-style variables can be used.
+
Variable for region is not equal style
+
Self-explanatory.
+
Variable for region sphere is invalid style
+
Only equal-style variables are allowed.
+
Variable for restart is invalid style
+
Only equal-style variables can be used.
+
Variable for set command is invalid style
+
Only atom-style variables can be used.
+
Variable for thermo every is invalid style
+
Only equal-style variables can be used.
+
Variable for velocity set is invalid style
+
Only atom-style variables can be used.
+
Variable for voronoi radius is not atom style
+
Self-explanatory.
+
Variable formula compute array is accessed out-of-range
+
Self-explanatory.
+
Variable formula compute vector is accessed out-of-range
+
Self-explanatory.
+
Variable formula fix array is accessed out-of-range
+
Self-explanatory.
+
Variable formula fix vector is accessed out-of-range
+
Self-explanatory.
+
Variable has circular dependency
+
A circular dependency is when variable “a” in used by variable “b” and +variable “b” is also used by variable “a”. Circular dependencies with +longer chains of dependence are also not allowed.
+
Variable name between brackets must be alphanumeric or underscore characters
+
Self-explanatory.
+
Variable name for compute chunk/atom does not exist
+
Self-explanatory.
+
Variable name for compute reduce does not exist
+
Self-explanatory.
+
Variable name for compute ti does not exist
+
Self-explanatory.
+
Variable name for create_atoms does not exist
+
Self-explanatory.
+
Variable name for displace_atoms does not exist
+
Self-explanatory.
+
Variable name for dump every does not exist
+
Self-explanatory.
+
Variable name for dump image center does not exist
+
Self-explanatory.
+
Variable name for dump image persp does not exist
+
Self-explanatory.
+
Variable name for dump image phi does not exist
+
Self-explanatory.
+
Variable name for dump image theta does not exist
+
Self-explanatory.
+
Variable name for dump image zoom does not exist
+
Self-explanatory.
+
Variable name for fix adapt does not exist
+
Self-explanatory.
+
Variable name for fix addforce does not exist
+
Self-explanatory.
+
Variable name for fix ave/atom does not exist
+
Self-explanatory.
+
Variable name for fix ave/chunk does not exist
+
Self-explanatory.
+
Variable name for fix ave/correlate does not exist
+
Self-explanatory.
+
Variable name for fix ave/histo does not exist
+
Self-explanatory.
+
Variable name for fix ave/spatial does not exist
+
Self-explanatory.
+
Variable name for fix ave/time does not exist
+
Self-explanatory.
+
Variable name for fix aveforce does not exist
+
Self-explanatory.
+
Variable name for fix deform does not exist
+
Self-explanatory.
+
Variable name for fix efield does not exist
+
Self-explanatory.
+
Variable name for fix gravity does not exist
+
Self-explanatory.
+
Variable name for fix heat does not exist
+
Self-explanatory.
+
Variable name for fix indent does not exist
+
Self-explanatory.
+
Variable name for fix langevin does not exist
+
Self-explanatory.
+
Variable name for fix move does not exist
+
Self-explanatory.
+
Variable name for fix setforce does not exist
+
Self-explanatory.
+
Variable name for fix store/state does not exist
+
Self-explanatory.
+
Variable name for fix temp/berendsen does not exist
+
Self-explanatory.
+
Variable name for fix temp/csld does not exist
+
Self-explanatory.
+
Variable name for fix temp/csvr does not exist
+
Self-explanatory.
+
Variable name for fix temp/rescale does not exist
+
Self-explanatory.
+
Variable name for fix vector does not exist
+
Self-explanatory.
+
Variable name for fix wall does not exist
+
Self-explanatory.
+
Variable name for fix wall/reflect does not exist
+
Self-explanatory.
+
Variable name for fix wall/srd does not exist
+
Self-explanatory.
+
Variable name for group does not exist
+
Self-explanatory.
+
Variable name for group dynamic does not exist
+
Self-explanatory.
+
Variable name for region cylinder does not exist
+
Self-explanatory.
+
Variable name for region does not exist
+
Self-explanatory.
+
Variable name for region sphere does not exist
+
Self-explanatory.
+
Variable name for restart does not exist
+
Self-explanatory.
+
Variable name for set command does not exist
+
Self-explanatory.
+
Variable name for thermo every does not exist
+
Self-explanatory.
+
Variable name for velocity set does not exist
+
Self-explanatory.
+
Variable name for voronoi radius does not exist
+
Self-explanatory.
+
Variable name must be alphanumeric or underscore characters
+
Self-explanatory.
+
Variable uses atom property that isn’t allocated
+
Self-explanatory.
+
Velocity command before simulation box is defined
+
The velocity command cannot be used before a read_data, read_restart, +or create_box command.
+
Velocity command with no atoms existing
+
A velocity command has been used, but no atoms yet exist.
+
Velocity ramp in z for a 2d problem
+
Self-explanatory.
+
Velocity rigid used with non-rigid fix-ID
+
Self-explanatory.
+
Velocity temperature ID does calculate a velocity bias
+
The specified compute must compute a bias for temperature.
+
Velocity temperature ID does not compute temperature
+
The compute ID given to the velocity command must compute +temperature.
+
Verlet/split can only currently be used with comm_style brick
+
This is a current restriction in LAMMPS.
+
Verlet/split does not yet support TIP4P
+
This is a current limitation.
+
Verlet/split requires 2 partitions
+
See the -partition command-line switch.
+
Verlet/split requires Rspace partition layout be multiple of Kspace partition layout in each dim
+
This is controlled by the processors command.
+
Verlet/split requires Rspace partition size be multiple of Kspace partition size
+
This is so there is an equal number of Rspace processors for every +Kspace processor.
+
Virial was not tallied on needed timestep
+
You are using a thermo keyword that requires potentials to +have tallied the virial, but they didn’t on this timestep. See the +variable doc page for ideas on how to make this work.
+
Voro++ error: narea and neigh have a different size
+
This error is returned by the Voro++ library.
+
Wall defined twice in fix wall command
+
Self-explanatory.
+
Wall defined twice in fix wall/reflect command
+
Self-explanatory.
+
Wall defined twice in fix wall/srd command
+
Self-explanatory.
+
Water H epsilon must be 0.0 for pair style lj/cut/tip4p/cut
+
This is because LAMMPS does not compute the Lennard-Jones interactions +with these particles for efficiency reasons.
+
Water H epsilon must be 0.0 for pair style lj/cut/tip4p/long
+
This is because LAMMPS does not compute the Lennard-Jones interactions +with these particles for efficiency reasons.
+
Water H epsilon must be 0.0 for pair style lj/long/tip4p/long
+
This is because LAMMPS does not compute the Lennard-Jones interactions +with these particles for efficiency reasons.
+
World variable count doesn’t match # of partitions
+
A world-style variable must specify a number of values equal to the +number of processor partitions.
+
Write_data command before simulation box is defined
+
Self-explanatory.
+
Write_restart command before simulation box is defined
+
The write_restart command cannot be used before a read_data, +read_restart, or create_box command.
+
Writing to MPI-IO filename when MPIIO package is not installed
+
Self-explanatory.
+
Zero length rotation vector with displace_atoms
+
Self-explanatory.
+
Zero length rotation vector with fix move
+
Self-explanatory.
+
Zero-length lattice orient vector
+
Self-explanatory.
+
+
+
+

12.5. Warnings:

+
+
Adjusting Coulombic cutoff for MSM, new cutoff = %g
+
The adjust/cutoff command is turned on and the Coulombic cutoff has been +adjusted to match the user-specified accuracy.
+
Angle atoms missing at step %ld
+
One or more of 3 atoms needed to compute a particular angle are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the angle has blown apart and an atom is +too far away.
+
Angle style in data file differs from currently defined angle style
+
Self-explanatory.
+
Atom style in data file differs from currently defined atom style
+
Self-explanatory.
+
Bond atom missing in box size check
+
The 2nd atoms needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away.
+
Bond atom missing in image check
+
The 2nd atom in a particular bond is missing on this processor. +Typically this is because the pairwise cutoff is set too short or the +bond has blown apart and an atom is too far away.
+
Bond atoms missing at step %ld
+
The 2nd atom needed to compute a particular bond is missing on this +processor. Typically this is because the pairwise cutoff is set too +short or the bond has blown apart and an atom is too far away.
+
Bond style in data file differs from currently defined bond style
+
Self-explanatory.
+
Bond/angle/dihedral extent > half of periodic box length
+
This is a restriction because LAMMPS can be confused about which image +of an atom in the bonded interaction is the correct one to use. +“Extent” in this context means the maximum end-to-end length of the +bond/angle/dihedral. LAMMPS computes this by taking the maximum bond +length, multiplying by the number of bonds in the interaction (e.g. 3 +for a dihedral) and adding a small amount of stretch.
+
Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero
+
Self-explanatory.
+
Calling write_dump before a full system init.
+
The write_dump command is used before the system has been fully +initialized as part of a ‘run’ or ‘minimize’ command. Not all dump +styles and features are fully supported at this point and thus the +command may fail or produce incomplete or incorrect output. Insert +a “run 0” command, if a full system init is required.
+
Cannot count rigid body degrees-of-freedom before bodies are fully initialized
+
This means the temperature associated with the rigid bodies may be +incorrect on this timestep.
+
Cannot count rigid body degrees-of-freedom before bodies are initialized
+
This means the temperature associated with the rigid bodies may be +incorrect on this timestep.
+
Cannot include log terms without 1/r terms; setting flagHI to 1
+
Self-explanatory.
+
Cannot include log terms without 1/r terms; setting flagHI to 1.
+
Self-explanatory.
+
Charges are set, but coulombic solver is not used
+
Self-explanatory.
+
Charges did not converge at step %ld: %lg
+
Self-explanatory.
+
Communication cutoff is too small for SNAP micro load balancing, increased to %lf
+
Self-explanatory.
+
Compute cna/atom cutoff may be too large to find ghost atom neighbors
+
The neighbor cutoff used may not encompass enough ghost atoms +to perform this operation correctly.
+
Computing temperature of portions of rigid bodies
+
The group defined by the temperature compute does not encompass all +the atoms in one or more rigid bodies, so the change in +degrees-of-freedom for the atoms in those partial rigid bodies will +not be accounted for.
+
Create_bonds max distance > minimum neighbor cutoff
+
This means atom pairs for some atom types may not be in the neighbor +list and thus no bond can be created between them.
+
Delete_atoms cutoff > minimum neighbor cutoff
+
This means atom pairs for some atom types may not be in the neighbor +list and thus an atom in that pair cannot be deleted.
+
Dihedral atoms missing at step %ld
+
One or more of 4 atoms needed to compute a particular dihedral are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the dihedral has blown apart and an atom is +too far away.
+
Dihedral problem
+
Conformation of the 4 listed dihedral atoms is extreme; you may want +to check your simulation geometry.
+
Dihedral problem: %d %ld %d %d %d %d
+
Conformation of the 4 listed dihedral atoms is extreme; you may want +to check your simulation geometry.
+
Dihedral style in data file differs from currently defined dihedral style
+
Self-explanatory.
+
Dump dcd/xtc timestamp may be wrong with fix dt/reset
+
If the fix changes the timestep, the dump dcd file will not +reflect the change.
+
Energy due to X extra global DOFs will be included in minimizer energies
+
When using fixes like box/relax, the potential energy used by the minimizer +is augmented by an additional energy provided by the fix. Thus the printed +converged energy may be different from the total potential energy.
+
Energy tally does not account for ‘zero yes’
+
The energy removed by using the ‘zero yes’ flag is not accounted +for in the energy tally and thus energy conservation cannot be +monitored in this case.
+
Estimated error in splitting of dispersion coeffs is %g
+
Error is greater than 0.0001 percent.
+
Ewald/disp Newton solver failed, using old method to estimate g_ewald
+
Self-explanatory. Choosing a different cutoff value may help.
+
FENE bond too long
+
A FENE bond has stretched dangerously far. It’s interaction strength +will be truncated to attempt to prevent the bond from blowing up.
+
FENE bond too long: %ld %d %d %g
+
A FENE bond has stretched dangerously far. It’s interaction strength +will be truncated to attempt to prevent the bond from blowing up.
+
FENE bond too long: %ld %g
+
A FENE bond has stretched dangerously far. It’s interaction strength +will be truncated to attempt to prevent the bond from blowing up.
+
Fix SRD walls overlap but fix srd overlap not set
+
You likely want to set this in your input script.
+
Fix bond/swap will ignore defined angles
+
See the doc page for fix bond/swap for more info on this +restriction.
+
Fix deposit near setting < possible overlap separation %g
+
This test is performed for finite size particles with a diameter, not +for point particles. The near setting is smaller than the particle +diameter which can lead to overlaps.
+
Fix evaporate may delete atom with non-zero molecule ID
+
This is probably an error, since you should not delete only one atom +of a molecule.
+
Fix gcmc using full_energy option
+
Fix gcmc has automatically turned on the full_energy option since it +is required for systems like the one specified by the user. User input +included one or more of the following: kspace, triclinic, a hybrid +pair style, an eam pair style, or no “single” function for the pair +style.
+
Fix property/atom mol or charge w/out ghost communication
+
A model typically needs these properties defined for ghost atoms.
+
Fix qeq CG convergence failed (%g) after %d iterations at %ld step
+
Self-explanatory.
+
Fix qeq has non-zero lower Taper radius cutoff
+
Absolute value must be <= 0.01.
+
Fix qeq has very low Taper radius cutoff
+
Value should typically be >= 5.0.
+
Fix qeq/dynamic tolerance may be too small for damped dynamics
+
Self-explanatory.
+
Fix qeq/fire tolerance may be too small for damped fires
+
Self-explanatory.
+
Fix rattle should come after all other integration fixes
+
This fix is designed to work after all other integration fixes change +atom positions. Thus it should be the last integration fix specified. +If not, it will not satisfy the desired constraints as well as it +otherwise would.
+
Fix recenter should come after all other integration fixes
+
Other fixes may change the position of the center-of-mass, so +fix recenter should come last.
+
Fix srd SRD moves may trigger frequent reneighboring
+
This is because the SRD particles may move long distances.
+
Fix srd grid size > 1/4 of big particle diameter
+
This may cause accuracy problems.
+
Fix srd particle moved outside valid domain
+
This may indicate a problem with your simulation parameters.
+
Fix srd particles may move > big particle diameter
+
This may cause accuracy problems.
+
Fix srd viscosity < 0.0 due to low SRD density
+
This may cause accuracy problems.
+
Fix thermal/conductivity comes before fix ave/spatial
+
The order of these 2 fixes in your input script is such that fix +thermal/conductivity comes first. If you are using fix ave/spatial to +measure the temperature profile induced by fix viscosity, then this +may cause a glitch in the profile since you are averaging immediately +after swaps have occurred. Flipping the order of the 2 fixes +typically helps.
+
Fix viscosity comes before fix ave/spatial
+
The order of these 2 fixes in your input script is such that +fix viscosity comes first. If you are using fix ave/spatial +to measure the velocity profile induced by fix viscosity, then +this may cause a glitch in the profile since you are averaging +immediately after swaps have occurred. Flipping the order +of the 2 fixes typically helps.
+
Fixes cannot send data in Kokkos communication, switching to classic communication
+
This is current restriction with Kokkos.
+
For better accuracy use ‘pair_modify table 0’
+
The user-specified force accuracy cannot be achieved unless the table +feature is disabled by using ‘pair_modify table 0’.
+
Geometric mixing assumed for 1/r^6 coefficients
+
Self-explanatory.
+
Group for fix_modify temp != fix group
+
The fix_modify command is specifying a temperature computation that +computes a temperature on a different group of atoms than the fix +itself operates on. This is probably not what you want to do.
+
H matrix size has been exceeded: m_fill=%d H.m=%dn
+
This is the size of the matrix.
+
Ignoring unknown or incorrect info command flag
+
Self-explanatory. An unknown argument was given to the info command. +Compare your input with the documentation.
+
Improper atoms missing at step %ld
+
One or more of 4 atoms needed to compute a particular improper are +missing on this processor. Typically this is because the pairwise +cutoff is set too short or the improper has blown apart and an atom is +too far away.
+
Improper problem: %d %ld %d %d %d %d
+
Conformation of the 4 listed improper atoms is extreme; you may want +to check your simulation geometry.
+
Improper style in data file differs from currently defined improper style
+
Self-explanatory.
+
Inconsistent image flags
+
The image flags for a pair on bonded atoms appear to be inconsistent. +Inconsistent means that when the coordinates of the two atoms are +unwrapped using the image flags, the two atoms are far apart. +Specifically they are further apart than half a periodic box length. +Or they are more than a box length apart in a non-periodic dimension. +This is usually due to the initial data file not having correct image +flags for the 2 atoms in a bond that straddles a periodic boundary. +They should be different by 1 in that case. This is a warning because +inconsistent image flags will not cause problems for dynamics or most +LAMMPS simulations. However they can cause problems when such atoms +are used with the fix rigid or replicate commands. Note that if you +have an infinite periodic crystal with bonds then it is impossible to +have fully consistent image flags, since some bonds will cross +periodic boundaries and connect two atoms with the same image +flag.
+
KIM Model does not provide ‘energy’; Potential energy will be zero
+
Self-explanatory.
+
KIM Model does not provide ‘forces’; Forces will be zero
+
Self-explanatory.
+
KIM Model does not provide ‘particleEnergy’; energy per atom will be zero
+
Self-explanatory.
+
KIM Model does not provide ‘particleVirial’; virial per atom will be zero
+
Self-explanatory.
+
Kspace_modify slab param < 2.0 may cause unphysical behavior
+
The kspace_modify slab parameter should be larger to insure periodic +grids padded with empty space do not overlap.
+
Less insertions than requested
+
The fix pour command was unsuccessful at finding open space +for as many particles as it tried to insert.
+
Library error in lammps_gather_atoms
+
This library function cannot be used if atom IDs are not defined +or are not consecutively numbered.
+
Library error in lammps_scatter_atoms
+
This library function cannot be used if atom IDs are not defined or +are not consecutively numbered, or if no atom map is defined. See the +atom_modify command for details about atom maps.
+
Lost atoms via change_box: original %ld current %ld
+
The command options you have used caused atoms to be lost.
+
Lost atoms via displace_atoms: original %ld current %ld
+
The command options you have used caused atoms to be lost.
+
Lost atoms: original %ld current %ld
+
Lost atoms are checked for each time thermo output is done. See the +thermo_modify lost command for options. Lost atoms usually indicate +bad dynamics, e.g. atoms have been blown far out of the simulation +box, or moved further than one processor’s sub-domain away before +reneighboring.
+
MSM mesh too small, increasing to 2 points in each direction
+
Self-explanatory.
+
Mismatch between velocity and compute groups
+
The temperature computation used by the velocity command will not be +on the same group of atoms that velocities are being set for.
+
Mixing forced for lj coefficients
+
Self-explanatory.
+
Molecule attributes do not match system attributes
+
An attribute is specified (e.g. diameter, charge) that is +not defined for the specified atom style.
+
Molecule has bond topology but no special bond settings
+
This means the bonded atoms will not be excluded in pair-wise +interactions.
+
Molecule template for create_atoms has multiple molecules
+
The create_atoms command will only create molecules of a single type, +i.e. the first molecule in the template.
+
Molecule template for fix gcmc has multiple molecules
+
The fix gcmc command will only create molecules of a single type, +i.e. the first molecule in the template.
+
Molecule template for fix shake has multiple molecules
+
The fix shake command will only recognize molecules of a single +type, i.e. the first molecule in the template.
+
More than one compute centro/atom
+
It is not efficient to use compute centro/atom more than once.
+
More than one compute cluster/atom
+
It is not efficient to use compute cluster/atom more than once.
+
More than one compute cna/atom defined
+
It is not efficient to use compute cna/atom more than once.
+
More than one compute contact/atom
+
It is not efficient to use compute contact/atom more than once.
+
More than one compute coord/atom
+
It is not efficient to use compute coord/atom more than once.
+
More than one compute damage/atom
+
It is not efficient to use compute ke/atom more than once.
+
More than one compute dilatation/atom
+
Self-explanatory.
+
More than one compute erotate/sphere/atom
+
It is not efficient to use compute erorate/sphere/atom more than once.
+
More than one compute hexorder/atom
+
It is not efficient to use compute hexorder/atom more than once.
+
More than one compute ke/atom
+
It is not efficient to use compute ke/atom more than once.
+
More than one compute orientorder/atom
+
It is not efficient to use compute orientorder/atom more than once.
+
More than one compute plasticity/atom
+
Self-explanatory.
+
More than one compute sna/atom
+
Self-explanatory.
+
More than one compute snad/atom
+
Self-explanatory.
+
More than one compute snav/atom
+
Self-explanatory.
+
More than one fix poems
+
It is not efficient to use fix poems more than once.
+
More than one fix rigid
+
It is not efficient to use fix rigid more than once.
+
Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies
+
This is because excluding specific pair interactions also excludes +them from long-range interactions which may not be the desired effect. +The special_bonds command handles this consistently by insuring +excluded (or weighted) 1-2, 1-3, 1-4 interactions are treated +consistently by both the short-range pair style and the long-range +solver. This is not done for exclusions of charged atom pairs via the +neigh_modify exclude command.
+
New thermo_style command, previous thermo_modify settings will be lost
+
If a thermo_style command is used after a thermo_modify command, the +settings changed by the thermo_modify command will be reset to their +default values. This is because the thermo_modify command acts on +the currently defined thermo style, and a thermo_style command creates +a new style.
+
No Kspace calculation with verlet/split
+
The 2nd partition performs a kspace calculation so the kspace_style +command must be used.
+
No automatic unit conversion to XTC file format conventions possible for units lj
+
This means no scaling will be performed.
+
No fixes defined, atoms won’t move
+
If you are not using a fix like nve, nvt, npt then atom velocities and +coordinates will not be updated during timestepping.
+
No joints between rigid bodies, use fix rigid instead
+
The bodies defined by fix poems are not connected by joints. POEMS +will integrate the body motion, but it would be more efficient to use +fix rigid.
+
Not using real units with pair reax
+
This is most likely an error, unless you have created your own ReaxFF +parameter file in a different set of units.
+
Number of MSM mesh points changed to be a multiple of 2
+
MSM requires that the number of grid points in each direction be a multiple +of two and the number of grid points in one or more directions have been +adjusted to meet this requirement.
+
OMP_NUM_THREADS environment is not set.
+
This environment variable must be set appropriately to use the +USER-OMP package.
+
One or more atoms are time integrated more than once
+
This is probably an error since you typically do not want to +advance the positions or velocities of an atom more than once +per timestep.
+
One or more chunks do not contain all atoms in molecule
+
This may not be what you intended.
+
One or more dynamic groups may not be updated at correct point in timestep
+
If there are other fixes that act immediately after the initial stage +of time integration within a timestep (i.e. after atoms move), then +the command that sets up the dynamic group should appear after those +fixes. This will insure that dynamic group assignments are made +after all atoms have moved.
+
One or more respa levels compute no forces
+
This is computationally inefficient.
+
Pair COMB charge %.10f with force %.10f hit max barrier
+
Something is possibly wrong with your model.
+
Pair COMB charge %.10f with force %.10f hit min barrier
+
Something is possibly wrong with your model.
+
Pair brownian needs newton pair on for momentum conservation
+
Self-explanatory.
+
Pair dpd needs newton pair on for momentum conservation
+
Self-explanatory.
+
Pair dsmc: num_of_collisions > number_of_A
+
Collision model in DSMC is breaking down.
+
Pair dsmc: num_of_collisions > number_of_B
+
Collision model in DSMC is breaking down.
+
Pair style in data file differs from currently defined pair style
+
Self-explanatory.
+
Particle deposition was unsuccessful
+
The fix deposit command was not able to insert as many atoms as +needed. The requested volume fraction may be too high, or other atoms +may be in the insertion region.
+
Proc sub-domain size < neighbor skin, could lead to lost atoms
+
The decomposition of the physical domain (likely due to load +balancing) has led to a processor’s sub-domain being smaller than the +neighbor skin in one or more dimensions. Since reneighboring is +triggered by atoms moving the skin distance, this may lead to lost +atoms, if an atom moves all the way across a neighboring processor’s +sub-domain before reneighboring is triggered.
+
Reducing PPPM order b/c stencil extends beyond nearest neighbor processor
+
This may lead to a larger grid than desired. See the kspace_modify overlap +command to prevent changing of the PPPM order.
+
Reducing PPPMDisp Coulomb order b/c stencil extends beyond neighbor processor
+
This may lead to a larger grid than desired. See the kspace_modify overlap +command to prevent changing of the PPPM order.
+
Reducing PPPMDisp dispersion order b/c stencil extends beyond neighbor processor
+
This may lead to a larger grid than desired. See the kspace_modify overlap +command to prevent changing of the PPPM order.
+
Replacing a fix, but new group != old group
+
The ID and style of a fix match for a fix you are changing with a fix +command, but the new group you are specifying does not match the old +group.
+
Replicating in a non-periodic dimension
+
The parameters for a replicate command will cause a non-periodic +dimension to be replicated; this may cause unwanted behavior.
+
Resetting reneighboring criteria during PRD
+
A PRD simulation requires that neigh_modify settings be delay = 0, +every = 1, check = yes. Since these settings were not in place, +LAMMPS changed them and will restore them to their original values +after the PRD simulation.
+
Resetting reneighboring criteria during TAD
+
A TAD simulation requires that neigh_modify settings be delay = 0, +every = 1, check = yes. Since these settings were not in place, +LAMMPS changed them and will restore them to their original values +after the PRD simulation.
+
Resetting reneighboring criteria during minimization
+
Minimization requires that neigh_modify settings be delay = 0, every = +1, check = yes. Since these settings were not in place, LAMMPS +changed them and will restore them to their original values after the +minimization.
+
Restart file used different # of processors
+
The restart file was written out by a LAMMPS simulation running on a +different number of processors. Due to round-off, the trajectories of +your restarted simulation may diverge a little more quickly than if +you ran on the same # of processors.
+
Restart file used different 3d processor grid
+
The restart file was written out by a LAMMPS simulation running on a +different 3d grid of processors. Due to round-off, the trajectories +of your restarted simulation may diverge a little more quickly than if +you ran on the same # of processors.
+
Restart file used different boundary settings, using restart file values
+
Your input script cannot change these restart file settings.
+
Restart file used different newton bond setting, using restart file value
+
The restart file value will override the setting in the input script.
+
Restart file used different newton pair setting, using input script value
+
The input script value will override the setting in the restart file.
+
Restrain problem: %d %ld %d %d %d %d
+
Conformation of the 4 listed dihedral atoms is extreme; you may want +to check your simulation geometry.
+
Running PRD with only one replica
+
This is allowed, but you will get no parallel speed-up.
+
SRD bin shifting turned on due to small lamda
+
This is done to try to preserve accuracy.
+
SRD bin size for fix srd differs from user request
+
Fix SRD had to adjust the bin size to fit the simulation box. See the +cubic keyword if you want this message to be an error vs warning.
+
SRD bins for fix srd are not cubic enough
+
The bin shape is not within tolerance of cubic. See the cubic +keyword if you want this message to be an error vs warning.
+
SRD particle %d started inside big particle %d on step %ld bounce %d
+
See the inside keyword if you want this message to be an error vs +warning.
+
SRD particle %d started inside wall %d on step %ld bounce %d
+
See the inside keyword if you want this message to be an error vs +warning.
+
Shake determinant < 0.0
+
The determinant of the quadratic equation being solved for a single +cluster specified by the fix shake command is numerically suspect. LAMMPS +will set it to 0.0 and continue.
+
Shell command ‘%s’ failed with error ‘%s’
+
Self-explanatory.
+
Shell command returned with non-zero status
+
This may indicate the shell command did not operate as expected.
+
Should not allow rigid bodies to bounce off relecting walls
+
LAMMPS allows this, but their dynamics are not computed correctly.
+
Should not use fix nve/limit with fix shake or fix rattle
+
This will lead to invalid constraint forces in the SHAKE/RATTLE +computation.
+
Simulations might be very slow because of large number of structure factors
+
Self-explanatory.
+
Slab correction not needed for MSM
+
Slab correction is intended to be used with Ewald or PPPM and is not needed by MSM.
+
System is not charge neutral, net charge = %g
+
The total charge on all atoms on the system is not 0.0. +For some KSpace solvers this is only a warning.
+
Table inner cutoff >= outer cutoff
+
You specified an inner cutoff for a Coulombic table that is longer +than the global cutoff. Probably not what you wanted.
+
Temperature for MSST is not for group all
+
User-assigned temperature to MSST fix does not compute temperature for +all atoms. Since MSST computes a global pressure, the kinetic energy +contribution from the temperature is assumed to also be for all atoms. +Thus the pressure used by MSST could be inaccurate.
+
Temperature for NPT is not for group all
+
User-assigned temperature to NPT fix does not compute temperature for +all atoms. Since NPT computes a global pressure, the kinetic energy +contribution from the temperature is assumed to also be for all atoms. +Thus the pressure used by NPT could be inaccurate.
+
Temperature for fix modify is not for group all
+
The temperature compute is being used with a pressure calculation +which does operate on group all, so this may be inconsistent.
+
Temperature for thermo pressure is not for group all
+
User-assigned temperature to thermo via the thermo_modify command does +not compute temperature for all atoms. Since thermo computes a global +pressure, the kinetic energy contribution from the temperature is +assumed to also be for all atoms. Thus the pressure printed by thermo +could be inaccurate.
+
The fix ave/spatial command has been replaced by the more flexible fix ave/chunk and compute chunk/atom commands – fix ave/spatial will be removed in the summer of 2015
+
Self-explanatory.
+
The minimizer does not re-orient dipoles when using fix efield
+
This means that only the atom coordinates will be minimized, +not the orientation of the dipoles.
+
Too many common neighbors in CNA %d times
+
More than the maximum # of neighbors was found multiple times. This +was unexpected.
+
Too many inner timesteps in fix ttm
+
Self-explanatory.
+
Too many neighbors in CNA for %d atoms
+
More than the maximum # of neighbors was found multiple times. This +was unexpected.
+
Triclinic box skew is large
+
The displacement in a skewed direction is normally required to be less +than half the box length in that dimension. E.g. the xy tilt must be +between -half and +half of the x box length. You have relaxed the +constraint using the box tilt command, but the warning means that a +LAMMPS simulation may be inefficient as a result.
+
Use special bonds = 0,1,1 with bond style fene
+
Most FENE models need this setting for the special_bonds command.
+
Use special bonds = 0,1,1 with bond style fene/expand
+
Most FENE models need this setting for the special_bonds command.
+
Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions
+
This is likely not what you want to do. The exclusion settings will +eliminate neighbors in the neighbor list, which the manybody potential +needs to calculated its terms correctly.
+
Using compute temp/deform with inconsistent fix deform remap option
+
Fix nvt/sllod assumes deforming atoms have a velocity profile provided +by “remap v” or “remap none” as a fix deform option.
+
Using compute temp/deform with no fix deform defined
+
This is probably an error, since it makes little sense to use +compute temp/deform in this case.
+
Using fix srd with box deformation but no SRD thermostat
+
The deformation will heat the SRD particles so this can +be dangerous.
+
Using kspace solver on system with no charge
+
Self-explanatory.
+
Using largest cut-off for lj/long/dipole/long long long
+
Self-explanatory.
+
Using largest cutoff for buck/long/coul/long
+
Self-explanatory.
+
Using largest cutoff for lj/long/coul/long
+
Self-explanatory.
+
Using largest cutoff for pair_style lj/long/tip4p/long
+
Self-explanatory.
+
Using package gpu without any pair style defined
+
Self-explanatory.
+
Using pair potential shift with pair_modify compute no
+
The shift effects will thus not be computed.
+
Using pair tail corrections with nonperiodic system
+
This is probably a bogus thing to do, since tail corrections are +computed by integrating the density of a periodic system out to +infinity.
+
Using pair tail corrections with pair_modify compute no
+
The tail corrections will thus not be computed.
+
pair style reax is now deprecated and will soon be retired. Users should switch to pair_style reax/c
+
Self-explanatory.
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_example.html lammps-17Jan18/doc/html/Section_example.html --- lammps-23Oct17/doc/html/Section_example.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_example.html 2018-01-17 12:46:20.671442330 -0700 @@ -0,0 +1,480 @@ + + + + + + + + + + + 7. Example problems — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

7. Example problems

+

The LAMMPS distribution includes an examples sub-directory with many +sample problems. Many are 2d models that run quickly are are +straightforward to visualize, requiring at most a couple of minutes to +run on a desktop machine. Each problem has an input script (in.*) and +produces a log file (log.*) when it runs. Some use a data file +(data.*) of initial coordinates as additional input. A few sample log +file run on different machines and different numbers of processors are +included in the directories to compare your answers to. E.g. a log +file like log.date.crack.foo.P means the “crack” example was run on P +processors of machine “foo” on that date (i.e. with that version of +LAMMPS).

+

Many of the input files have commented-out lines for creating dump +files and image files.

+

If you uncomment the dump command in the input script, a +text dump file will be produced, which can be animated by various +visualization programs.

+

If you uncomment the dump image command in the input +script, and assuming you have built LAMMPS with a JPG library, JPG +snapshot images will be produced when the simulation runs. They can +be quickly post-processed into a movie using commands described on the +dump image doc page.

+

Animations of many of the examples can be viewed on the Movies section +of the LAMMPS web site.

+

There are two kinds of sub-directories in the examples dir. Lowercase +dirs contain one or a few simple, quick-to-run problems. Uppercase +dirs contain up to several complex scripts that illustrate a +particular kind of simulation method or model. Some of these run for +longer times, e.g. to measure a particular quantity.

+

Lists of both kinds of directories are given below.

+
+
+

7.1. Lowercase directories

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
acceleraterun with various acceleration options (OpenMP, GPU, Phi)
airebopolyethylene with AIREBO potential
balancedynamic load balancing, 2d system
bodybody particles, 2d system
cmapCMAP 5-body contributions to CHARMM force field
colloidbig colloid particles in a small particle solvent, 2d system
combmodels using the COMB potential
coreshellcore/shell model using CORESHELL package
controlleruse of fix controller as a thermostat
crackcrack propagation in a 2d solid
depositdeposit atoms and molecules on a surface
dipolepoint dipolar particles, 2d system
dreidingmethanol via Dreiding FF
eimNaCl using the EIM potential
ellipseellipsoidal particles in spherical solvent, 2d system
flowCouette and Poiseuille flow in a 2d channel
frictionfrictional contact of spherical asperities between 2d surfaces
gcmcGrand Canonical Monte Carlo (GCMC) via the fix gcmc command
granregionuse of fix wall/region/gran as boundary on granular particles
hugoniostatHugoniostat shock dynamics
indentspherical indenter into a 2d solid
kimuse of potentials in Knowledge Base for Interatomic Models (KIM)
meamMEAM test for SiC and shear (same as shear examples)
meltrapid melt of 3d LJ system
micelleself-assembly of small lipid-like molecules into 2d bilayers
minenergy minimization of 2d LJ melt
mscgparameterize a multi-scale coarse-graining (MSCG) model
msstMSST shock dynamics
nb3buse of nonbonded 3-body harmonic pair style
nebnudged elastic band (NEB) calculation for barrier finding
nemdnon-equilibrium MD of 2d sheared system
obstacleflow around two voids in a 2d channel
peptidedynamics of a small solvated peptide chain (5-mer)
periPeridynamic model of cylinder impacted by indenter
pourpouring of granular particles into a 3d box, then chute flow
prdparallel replica dynamics of vacancy diffusion in bulk Si
pythonusing embedded Python in a LAMMPS input script
qequse of the QEQ package for charge equilibration
reaxRDX and TATB models using the ReaxFF
rigidrigid bodies modeled as independent or coupled
shearsideways shear applied to 2d solid, with and without a void
snapNVE dynamics for BCC tantalum crystal using SNAP potential
srdstochastic rotation dynamics (SRD) particles as solvent
streitzuse of Streitz/Mintmire potential with charge equilibration
tadtemperature-accelerated dynamics of vacancy diffusion in bulk Si
vashishtause of the Vashishta potential
voronoiVoronoi tesselation via compute voronoi/atom command
+

Here is how you can run and visualize one of the sample problems:

+
cd indent
+cp ../../src/lmp_linux .           # copy LAMMPS executable to this dir
+lmp_linux -in in.indent            # run the problem
+
+
+

Running the simulation produces the files dump.indent and +log.lammps. You can visualize the dump file of snapshots with a +variety of 3rd-party tools highlighted on the +Visualization page of the LAMMPS +web site.

+

If you uncomment the dump image line(s) in the input +script a series of JPG images will be produced by the run (assuming +you built LAMMPS with JPG support; see Section 2.2 for details). These can be viewed +individually or turned into a movie or animated by tools like +ImageMagick or QuickTime or various Windows-based tools. See the +dump image doc page for more details. E.g. this +Imagemagick command would create a GIF file suitable for viewing in a +browser.

+
+% convert -loop 1 *.jpg foo.gif
+
+
+
+
+

7.2. Uppercase directories

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ASPHEREvarious aspherical particle models, using ellipsoids, rigid bodies, line/triangle particles, etc
COUPLEexamples of how to use LAMMPS as a library
DIFFUSEcompute diffusion coefficients via several methods
ELASTICcompute elastic constants at zero temperature
ELASTIC_Tcompute elastic constants at finite temperature
KAPPAcompute thermal conductivity via several methods
MCusing LAMMPS in a Monte Carlo mode to relax the energy of a system
USERexamples for USER packages and USER-contributed commands
VISCOSITYcompute viscosity via several methods
+

Nearly all of these directories have README files which give more +details on how to understand and use their contents.

+

The USER directory has a large number of sub-directories which +correspond by name to a USER package. They contain scripts that +illustrate how to use the command(s) provided in that package. Many +of the sub-directories have their own README files which give further +instructions. See the Section 4 doc +page for more info on specific USER packages.

+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_history.html lammps-17Jan18/doc/html/Section_history.html --- lammps-23Oct17/doc/html/Section_history.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_history.html 2018-01-17 12:46:20.671442330 -0700 @@ -0,0 +1,341 @@ + + + + + + + + + + + 13. Future and history — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

13. Future and history

+

This section lists features we plan to add to LAMMPS, features of +previous versions of LAMMPS, and features of other parallel molecular +dynamics codes our group has distributed.

+ +
+

13.1. Coming attractions

+

As of summer 2016 we are using the LAMMPS project issue tracker on GitHub for keeping +track of suggested, planned or pending new features. This includes +discussions of how to best implement them, or why they would be +useful. Especially if a planned or proposed feature is non-trivial +to add, e.g. because it requires changes to some of the core +classes of LAMMPS, people planning to contribute a new feature to +LAMMS are encouraged to submit an issue about their planned +implementation this way in order to receive feedback from the +LAMMPS core developers. They will provide suggestions about +the validity of the proposed approach and possible improvements, +pitfalls or alternatives.

+

Please see some of the closed issues for examples of how to +suggest code enhancements, submit proposed changes, or report +possible bugs and how they are resolved.

+

As an alternative to using GitHub, you may e-mail the +core developers or send +an e-mail to the LAMMPS Mail list +if you want to have your suggestion added to the list.

+
+
+
+

13.2. Past versions

+

LAMMPS development began in the mid 1990s under a cooperative research +& development agreement (CRADA) between two DOE labs (Sandia and LLNL) +and 3 companies (Cray, Bristol Myers Squibb, and Dupont). The goal was +to develop a large-scale parallel classical MD code; the coding effort +was led by Steve Plimpton at Sandia.

+

After the CRADA ended, a final F77 version, LAMMPS 99, was +released. As development of LAMMPS continued at Sandia, its memory +management was converted to F90; a final F90 version was released as +LAMMPS 2001.

+

The current LAMMPS is a rewrite in C++ and was first publicly released +as an open source code in 2004. It includes many new features beyond +those in LAMMPS 99 or 2001. It also includes features from older +parallel MD codes written at Sandia, namely ParaDyn, Warp, and +GranFlow (see below).

+

In late 2006 we began merging new capabilities into LAMMPS that were +developed by Aidan Thompson at Sandia for his MD code GRASP, which has +a parallel framework similar to LAMMPS. Most notably, these have +included many-body potentials - Stillinger-Weber, Tersoff, ReaxFF - +and the associated charge-equilibration routines needed for ReaxFF.

+

The History link on the +LAMMPS WWW page gives a timeline of features added to the +C++ open-source version of LAMMPS over the last several years.

+

These older codes are available for download from the LAMMPS WWW site, except for Warp & GranFlow which were primarily used +internally. A brief listing of their features is given here.

+

LAMMPS 2001

+
    +
  • F90 + MPI
  • +
  • dynamic memory
  • +
  • spatial-decomposition parallelism
  • +
  • NVE, NVT, NPT, NPH, rRESPA integrators
  • +
  • LJ and Coulombic pairwise force fields
  • +
  • all-atom, united-atom, bead-spring polymer force fields
  • +
  • CHARMM-compatible force fields
  • +
  • class 2 force fields
  • +
  • 3d/2d Ewald & PPPM
  • +
  • various force and temperature constraints
  • +
  • SHAKE
  • +
  • Hessian-free truncated-Newton minimizer
  • +
  • user-defined diagnostics
  • +
+

LAMMPS 99

+
    +
  • F77 + MPI
  • +
  • static memory allocation
  • +
  • spatial-decomposition parallelism
  • +
  • most of the LAMMPS 2001 features with a few exceptions
  • +
  • no 2d Ewald & PPPM
  • +
  • molecular force fields are missing a few CHARMM terms
  • +
  • no SHAKE
  • +
+

Warp

+
    +
  • F90 + MPI
  • +
  • spatial-decomposition parallelism
  • +
  • embedded atom method (EAM) metal potentials + LJ
  • +
  • lattice and grain-boundary atom creation
  • +
  • NVE, NVT integrators
  • +
  • boundary conditions for applying shear stresses
  • +
  • temperature controls for actively sheared systems
  • +
  • per-atom energy and centro-symmetry computation and output
  • +
+

ParaDyn

+
    +
  • F77 + MPI
  • +
  • atom- and force-decomposition parallelism
  • +
  • embedded atom method (EAM) metal potentials
  • +
  • lattice atom creation
  • +
  • NVE, NVT, NPT integrators
  • +
  • all serial DYNAMO features for controls and constraints
  • +
+

GranFlow

+
    +
  • F90 + MPI
  • +
  • spatial-decomposition parallelism
  • +
  • frictional granular potentials
  • +
  • NVE integrator
  • +
  • boundary conditions for granular flow and packing and walls
  • +
  • particle insertion
  • +
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_howto.html lammps-17Jan18/doc/html/Section_howto.html --- lammps-23Oct17/doc/html/Section_howto.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_howto.html 2018-01-17 12:46:20.673442343 -0700 @@ -0,0 +1,2965 @@ + + + + + + + + + + + 6. How-to discussions — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

6. How-to discussions

+

This section describes how to perform common tasks using LAMMPS.

+ +

The example input scripts included in the LAMMPS distribution and +highlighted in Section 7 also show how to +setup and run various kinds of simulations.

+
+

6.1. Restarting a simulation

+

There are 3 ways to continue a long LAMMPS simulation. Multiple +run commands can be used in the same input script. Each +run will continue from where the previous run left off. Or binary +restart files can be saved to disk using the restart +command. At a later time, these binary files can be read via a +read_restart command in a new script. Or they can +be converted to text data files using the -r command-line switch and read by a +read_data command in a new script.

+

Here we give examples of 2 scripts that read either a binary restart +file or a converted data file and then issue a new run command to +continue where the previous run left off. They illustrate what +settings must be made in the new script. Details are discussed in the +documentation for the read_restart and +read_data commands.

+

Look at the in.chain input script provided in the bench directory +of the LAMMPS distribution to see the original script that these 2 +scripts are based on. If that script had the line

+
restart         50 tmp.restart
+
+
+

added to it, it would produce 2 binary restart files (tmp.restart.50 +and tmp.restart.100) as it ran.

+

This script could be used to read the 1st restart file and re-run the +last 50 timesteps:

+
read_restart    tmp.restart.50
+
+neighbor        0.4 bin
+neigh_modify    every 1 delay 1
+
+fix             1 all nve
+fix             2 all langevin 1.0 1.0 10.0 904297
+
+timestep        0.012
+
+run             50
+
+
+

Note that the following commands do not need to be repeated because +their settings are included in the restart file: units, atom_style, +special_bonds, pair_style, bond_style. However these commands do +need to be used, since their settings are not in the restart file: +neighbor, fix, timestep.

+

If you actually use this script to perform a restarted run, you will +notice that the thermodynamic data match at step 50 (if you also put a +“thermo 50” command in the original script), but do not match at step +100. This is because the fix langevin command +uses random numbers in a way that does not allow for perfect restarts.

+

As an alternate approach, the restart file could be converted to a data +file as follows:

+
lmp_g++ -r tmp.restart.50 tmp.restart.data
+
+
+

Then, this script could be used to re-run the last 50 steps:

+
units           lj
+atom_style      bond
+pair_style      lj/cut 1.12
+pair_modify     shift yes
+bond_style      fene
+special_bonds   0.0 1.0 1.0
+
+read_data       tmp.restart.data
+
+neighbor        0.4 bin
+neigh_modify    every 1 delay 1
+
+fix             1 all nve
+fix             2 all langevin 1.0 1.0 10.0 904297
+
+timestep        0.012
+
+reset_timestep  50
+run             50
+
+
+

Note that nearly all the settings specified in the original in.chain +script must be repeated, except the pair_coeff and bond_coeff +commands since the new data file lists the force field coefficients. +Also, the reset_timestep command is used to tell +LAMMPS the current timestep. This value is stored in restart files, +but not in data files.

+
+
+
+

6.2. 2d simulations

+

Use the dimension command to specify a 2d simulation.

+

Make the simulation box periodic in z via the boundary +command. This is the default.

+

If using the create box command to define a +simulation box, set the z dimensions narrow, but finite, so that the +create_atoms command will tile the 3d simulation box with a single z +plane of atoms - e.g.

+
+create box 1 -10 10 -10 10 -0.25 0.25
+
+

If using the read data command to read in a file of +atom coordinates, set the “zlo zhi” values to be finite but narrow, +similar to the create_box command settings just described. For each +atom in the file, assign a z coordinate so it falls inside the +z-boundaries of the box - e.g. 0.0.

+

Use the fix enforce2d command as the last +defined fix to insure that the z-components of velocities and forces +are zeroed out every timestep. The reason to make it the last fix is +so that any forces induced by other fixes will be zeroed out.

+

Many of the example input scripts included in the LAMMPS distribution +are for 2d models.

+
+

Note

+

Some models in LAMMPS treat particles as finite-size spheres, as +opposed to point particles. See the atom_style sphere and fix nve/sphere +commands for details. By default, for 2d simulations, such particles +will still be modeled as 3d spheres, not 2d discs (circles), meaning +their moment of inertia will be that of a sphere. If you wish to +model them as 2d discs, see the set density/disc command +and the disc option for the fix nve/sphere, +fix nvt/sphere, fix nph/sphere, fix npt/sphere +commands.

+
+
+
+
+

6.3. CHARMM, AMBER, and DREIDING force fields

+

A force field has 2 parts: the formulas that define it and the +coefficients used for a particular system. Here we only discuss +formulas implemented in LAMMPS that correspond to formulas commonly +used in the CHARMM, AMBER, and DREIDING force fields. Setting +coefficients is done in the input data file via the +read_data command or in the input script with +commands like pair_coeff or +bond_coeff. See Section 9 +for additional tools that can use CHARMM or AMBER to assign force +field coefficients and convert their output into LAMMPS input.

+

See (MacKerell) for a description of the CHARMM force +field. See (Cornell) for a description of the AMBER force +field.

+

These style choices compute force field formulas that are consistent +with common options in CHARMM or AMBER. See each command’s +documentation for the formula it computes.

+ +
+

Note

+

For CHARMM, newer charmmfsw or charmmfsh styles were +released in March 2017. We recommend they be used instead of the +older charmm styles. See discussion of the differences on the pair charmm and dihedral charmm +doc pages.

+
+

DREIDING is a generic force field developed by the Goddard group at Caltech and is useful for +predicting structures and dynamics of organic, biological and +main-group inorganic molecules. The philosophy in DREIDING is to use +general force constants and geometry parameters based on simple +hybridization considerations, rather than individual force constants +and geometric parameters that depend on the particular combinations of +atoms involved in the bond, angle, or torsion terms. DREIDING has an +explicit hydrogen bond term to describe +interactions involving a hydrogen atom on very electronegative atoms +(N, O, F).

+

See (Mayo) for a description of the DREIDING force field

+

These style choices compute force field formulas that are consistent +with the DREIDING force field. See each command’s +documentation for the formula it computes.

+ +
+
+
+

6.4. Running multiple simulations from one input script

+

This can be done in several ways. See the documentation for +individual commands for more details on how these examples work.

+

If “multiple simulations” means continue a previous simulation for +more timesteps, then you simply use the run command +multiple times. For example, this script

+
units lj
+atom_style atomic
+read_data data.lj
+run 10000
+run 10000
+run 10000
+run 10000
+run 10000
+
+
+

would run 5 successive simulations of the same system for a total of +50,000 timesteps.

+

If you wish to run totally different simulations, one after the other, +the clear command can be used in between them to +re-initialize LAMMPS. For example, this script

+
units lj
+atom_style atomic
+read_data data.lj
+run 10000
+clear
+units lj
+atom_style atomic
+read_data data.lj.new
+run 10000
+
+
+

would run 2 independent simulations, one after the other.

+

For large numbers of independent simulations, you can use +variables and the next and +jump commands to loop over the same input script +multiple times with different settings. For example, this +script, named in.polymer

+
variable d index run1 run2 run3 run4 run5 run6 run7 run8
+shell cd $d
+read_data data.polymer
+run 10000
+shell cd ..
+clear
+next d
+jump in.polymer
+
+
+

would run 8 simulations in different directories, using a data.polymer +file in each directory. The same concept could be used to run the +same system at 8 different temperatures, using a temperature variable +and storing the output in different log and dump files, for example

+
variable a loop 8
+variable t index 0.8 0.85 0.9 0.95 1.0 1.05 1.1 1.15
+log log.$a
+read data.polymer
+velocity all create $t 352839
+fix 1 all nvt $t $t 100.0
+dump 1 all atom 1000 dump.$a
+run 100000
+clear
+next t
+next a
+jump in.polymer
+
+
+

All of the above examples work whether you are running on 1 or +multiple processors, but assumed you are running LAMMPS on a single +partition of processors. LAMMPS can be run on multiple partitions via +the “-partition” command-line switch as described in this section of the manual.

+

In the last 2 examples, if LAMMPS were run on 3 partitions, the same +scripts could be used if the “index” and “loop” variables were +replaced with universe-style variables, as described in the +variable command. Also, the “next t” and “next a” +commands would need to be replaced with a single “next a t” command. +With these modifications, the 8 simulations of each script would run +on the 3 partitions one after the other until all were finished. +Initially, 3 simulations would be started simultaneously, one on each +partition. When one finished, that partition would then start +the 4th simulation, and so forth, until all 8 were completed.

+
+
+
+

6.5. Multi-replica simulations

+

Several commands in LAMMPS run mutli-replica simulations, meaning +that multiple instances (replicas) of your simulation are run +simultaneously, with small amounts of data exchanged between replicas +periodically.

+

These are the relevant commands:

+
    +
  • neb for nudged elastic band calculations
  • +
  • prd for parallel replica dynamics
  • +
  • tad for temperature accelerated dynamics
  • +
  • temper for parallel tempering
  • +
  • fix pimd for path-integral molecular dynamics (PIMD)
  • +
+

NEB is a method for finding transition states and barrier energies. +PRD and TAD are methods for performing accelerated dynamics to find +and perform infrequent events. Parallel tempering or replica exchange +runs different replicas at a series of temperature to facilitate +rare-event sampling.

+

These commands can only be used if LAMMPS was built with the REPLICA +package. See the Making LAMMPS section +for more info on packages.

+

PIMD runs different replicas whose individual particles are coupled +together by springs to model a system or ring-polymers.

+

This commands can only be used if LAMMPS was built with the USER-MISC +package. See the Making LAMMPS section +for more info on packages.

+

In all these cases, you must run with one or more processors per +replica. The processors assigned to each replica are determined at +run-time by using the -partition command-line switch to launch LAMMPS on multiple +partitions, which in this context are the same as replicas. E.g. +these commands:

+
mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
+mpirun -np 8 lmp_linux -partition 8x1 -in in.neb
+
+
+

would each run 8 replicas, on either 16 or 8 processors. Note the use +of the -in command-line switch to specify +the input script which is required when running in multi-replica mode.

+

Also note that with MPI installed on a machine (e.g. your desktop), +you can run on more (virtual) processors than you have physical +processors. Thus the above commands could be run on a +single-processor (or few-processor) desktop so that you can run +a multi-replica simulation on more replicas than you have +physical processors.

+
+
+
+

6.6. Granular models

+

Granular system are composed of spherical particles with a diameter, +as opposed to point particles. This means they have an angular +velocity and torque can be imparted to them to cause them to rotate.

+

To run a simulation of a granular model, you will want to use +the following commands:

+ +

This compute

+ +

calculates rotational kinetic energy which can be output with thermodynamic info.

+

Use one of these 3 pair potentials, which compute forces and torques +between interacting pairs of particles:

+ +

These commands implement fix options specific to granular systems:

+ +

The fix style freeze zeroes both the force and torque of frozen +atoms, and should be used for granular system instead of the fix style +setforce.

+

For computational efficiency, you can eliminate needless pairwise +computations between frozen atoms by using this command:

+ +
+

Note

+

By default, for 2d systems, granular particles are still modeled +as 3d spheres, not 2d discs (circles), meaning their moment of inertia +will be the same as in 3d. If you wish to model granular particles in +2d as 2d discs, see the note on this topic in Section 6.2, where 2d simulations are discussed.

+
+
+
+
+

6.7. TIP3P water model

+

The TIP3P water model as implemented in CHARMM +(MacKerell) specifies a 3-site rigid water molecule with +charges and Lennard-Jones parameters assigned to each of the 3 atoms. +In LAMMPS the fix shake command can be used to hold +the two O-H bonds and the H-O-H angle rigid. A bond style of +harmonic and an angle style of harmonic or charmm should also be +used.

+

These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid TIP3P-CHARMM model with a +cutoff. The K values can be used if a flexible TIP3P model (without +fix shake) is desired. If the LJ epsilon and sigma for HH and OH are +set to 0.0, it corresponds to the original 1983 TIP3P model +(Jorgensen).

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -0.834
+
H charge = 0.417
+
LJ epsilon of OO = 0.1521
+
LJ sigma of OO = 3.1507
+
LJ epsilon of HH = 0.0460
+
LJ sigma of HH = 0.4000
+
LJ epsilon of OH = 0.0836
+
LJ sigma of OH = 1.7753
+
K of OH bond = 450
+
r0 of OH bond = 0.9572
+
K of HOH angle = 55
+
theta of HOH angle = 104.52
+

+
+

These are the parameters to use for TIP3P with a long-range Coulombic +solver (e.g. Ewald or PPPM in LAMMPS), see (Price) for +details:

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -0.830
+
H charge = 0.415
+
LJ epsilon of OO = 0.102
+
LJ sigma of OO = 3.188
+
LJ epsilon, sigma of OH, HH = 0.0
+
K of OH bond = 450
+
r0 of OH bond = 0.9572
+
K of HOH angle = 55
+
theta of HOH angle = 104.52
+

+
+

Wikipedia also has a nice article on water models.

+
+
+
+

6.8. TIP4P water model

+

The four-point TIP4P rigid water model extends the traditional +three-point TIP3P model by adding an additional site, usually +massless, where the charge associated with the oxygen atom is placed. +This site M is located at a fixed distance away from the oxygen along +the bisector of the HOH bond angle. A bond style of harmonic and an +angle style of harmonic or charmm should also be used.

+

A TIP4P model is run with LAMMPS using either this command +for a cutoff model:

+

pair_style lj/cut/tip4p/cut

+

or these two commands for a long-range model:

+ +

For both models, the bond lengths and bond angles should be held fixed +using the fix shake command.

+

These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid TIP4P model with a cutoff +(Jorgensen). Note that the OM distance is specified in +the pair_style command, not as part of the pair +coefficients.

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -1.040
+
H charge = 0.520
+
r0 of OH bond = 0.9572
+
theta of HOH angle = 104.52
+
OM distance = 0.15
+
LJ epsilon of O-O = 0.1550
+
LJ sigma of O-O = 3.1536
+
LJ epsilon, sigma of OH, HH = 0.0
+
Coulombic cutoff = 8.5
+

+
+

For the TIP4/Ice model (J Chem Phys, 122, 234511 (2005); +http://dx.doi.org/10.1063/1.1931662) these values can be used:

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -1.1794
+
H charge = 0.5897
+
r0 of OH bond = 0.9572
+
theta of HOH angle = 104.52
+
OM distance = 0.1577
+
LJ epsilon of O-O = 0.21084
+
LJ sigma of O-O = 3.1668
+
LJ epsilon, sigma of OH, HH = 0.0
+
Coulombic cutoff = 8.5
+

+
+

For the TIP4P/2005 model (J Chem Phys, 123, 234505 (2005); +http://dx.doi.org/10.1063/1.2121687), these values can be used:

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -1.1128
+
H charge = 0.5564
+
r0 of OH bond = 0.9572
+
theta of HOH angle = 104.52
+
OM distance = 0.1546
+
LJ epsilon of O-O = 0.1852
+
LJ sigma of O-O = 3.1589
+
LJ epsilon, sigma of OH, HH = 0.0
+
Coulombic cutoff = 8.5
+

+
+

These are the parameters to use for TIP4P with a long-range Coulombic +solver (e.g. Ewald or PPPM in LAMMPS):

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -1.0484
+
H charge = 0.5242
+
r0 of OH bond = 0.9572
+
theta of HOH angle = 104.52
+
OM distance = 0.1250
+
LJ epsilon of O-O = 0.16275
+
LJ sigma of O-O = 3.16435
+
LJ epsilon, sigma of OH, HH = 0.0
+

+
+

Note that the when using the TIP4P pair style, the neighbor list +cutoff for Coulomb interactions is effectively extended by a distance +2 * (OM distance), to account for the offset distance of the +fictitious charges on O atoms in water molecules. Thus it is +typically best in an efficiency sense to use a LJ cutoff >= Coulomb +cutoff + 2*(OM distance), to shrink the size of the neighbor list. +This leads to slightly larger cost for the long-range calculation, so +you can test the trade-off for your model. The OM distance and the LJ +and Coulombic cutoffs are set in the pair_style lj/cut/tip4p/long command.

+

Wikipedia also has a nice article on water models.

+
+
+
+

6.9. SPC water model

+

The SPC water model specifies a 3-site rigid water molecule with +charges and Lennard-Jones parameters assigned to each of the 3 atoms. +In LAMMPS the fix shake command can be used to hold +the two O-H bonds and the H-O-H angle rigid. A bond style of +harmonic and an angle style of harmonic or charmm should also be +used.

+

These are the additional parameters (in real units) to set for O and H +atoms and the water molecule to run a rigid SPC model.

+
+
O mass = 15.9994
+
H mass = 1.008
+
O charge = -0.820
+
H charge = 0.410
+
LJ epsilon of OO = 0.1553
+
LJ sigma of OO = 3.166
+
LJ epsilon, sigma of OH, HH = 0.0
+
r0 of OH bond = 1.0
+
theta of HOH angle = 109.47
+

+
+

Note that as originally proposed, the SPC model was run with a 9 +Angstrom cutoff for both LJ and Coulommbic terms. It can also be used +with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing +any of the parameters above, though it becomes a different model in +that mode of usage.

+

The SPC/E (extended) water model is the same, except +the partial charge assignments change:

+
+
O charge = -0.8476
+
H charge = 0.4238
+

+
+

See the (Berendsen) reference for more details on both +the SPC and SPC/E models.

+

Wikipedia also has a nice article on water models.

+
+
+
+

6.10. Coupling LAMMPS to other codes

+

LAMMPS is designed to allow it to be coupled to other codes. For +example, a quantum mechanics code might compute forces on a subset of +atoms and pass those forces to LAMMPS. Or a continuum finite element +(FE) simulation might use atom positions as boundary conditions on FE +nodal points, compute a FE solution, and return interpolated forces on +MD atoms.

+

LAMMPS can be coupled to other codes in at least 3 ways. Each has +advantages and disadvantages, which you’ll have to think about in the +context of your application.

+

(1) Define a new fix command that calls the other code. In +this scenario, LAMMPS is the driver code. During its timestepping, +the fix is invoked, and can make library calls to the other code, +which has been linked to LAMMPS as a library. This is the way the +POEMS package that performs constrained rigid-body motion on +groups of atoms is hooked to LAMMPS. See the +fix poems command for more details. See this section of the documentation for info on how to add +a new fix to LAMMPS.

+

(2) Define a new LAMMPS command that calls the other code. This is +conceptually similar to method (1), but in this case LAMMPS and the +other code are on a more equal footing. Note that now the other code +is not called during the timestepping of a LAMMPS run, but between +runs. The LAMMPS input script can be used to alternate LAMMPS runs +with calls to the other code, invoked via the new command. The +run command facilitates this with its every option, which +makes it easy to run a few steps, invoke the command, run a few steps, +invoke the command, etc.

+

In this scenario, the other code can be called as a library, as in +(1), or it could be a stand-alone code, invoked by a system() call +made by the command (assuming your parallel machine allows one or more +processors to start up another program). In the latter case the +stand-alone code could communicate with LAMMPS thru files that the +command writes and reads.

+

See Section 10 of the documentation for how +to add a new command to LAMMPS.

+

(3) Use LAMMPS as a library called by another code. In this case the +other code is the driver and calls LAMMPS as needed. Or a wrapper +code could link and call both LAMMPS and another code as libraries. +Again, the run command has options that allow it to be +invoked with minimal overhead (no setup or clean-up) if you wish to do +multiple short runs, driven by another program.

+

Examples of driver codes that call LAMMPS as a library are included in +the examples/COUPLE directory of the LAMMPS distribution; see +examples/COUPLE/README for more details:

+
    +
  • simple: simple driver programs in C++ and C which invoke LAMMPS as a +library
  • +
  • lammps_quest: coupling of LAMMPS and Quest, to run classical +MD with quantum forces calculated by a density functional code
  • +
  • lammps_spparks: coupling of LAMMPS and SPPARKS, to couple +a kinetic Monte Carlo model for grain growth using MD to calculate +strain induced across grain boundaries
  • +
+

This section of the documentation +describes how to build LAMMPS as a library. Once this is done, you +can interface with LAMMPS either via C++, C, Fortran, or Python (or +any other language that supports a vanilla C-like interface). For +example, from C++ you could create one (or more) “instances” of +LAMMPS, pass it an input script to process, or execute individual +commands, all by invoking the correct class methods in LAMMPS. From C +or Fortran you can make function calls to do the same things. See +Section 11 of the manual for a description +of the Python wrapper provided with LAMMPS that operates through the +LAMMPS library interface.

+

The files src/library.cpp and library.h contain the C-style interface +to LAMMPS. See Section 6.19 of the +manual for a description of the interface and how to extend it for +your needs.

+

Note that the lammps_open() function that creates an instance of +LAMMPS takes an MPI communicator as an argument. This means that +instance of LAMMPS will run on the set of processors in the +communicator. Thus the calling code can run LAMMPS on all or a subset +of processors. For example, a wrapper script might decide to +alternate between LAMMPS and another code, allowing them both to run +on all the processors. Or it might allocate half the processors to +LAMMPS and half to the other code and run both codes simultaneously +before syncing them up periodically. Or it might instantiate multiple +instances of LAMMPS to perform different calculations.

+
+
+
+

6.11. Visualizing LAMMPS snapshots

+

LAMMPS itself does not do visualization, but snapshots from LAMMPS +simulations can be visualized (and analyzed) in a variety of ways.

+

LAMMPS snapshots are created by the dump command which can +create files in several formats. The native LAMMPS dump format is a +text file (see “dump atom” or “dump custom”) which can be visualized +by several popular visualization tools. The dump image +and dump movie styles can output internally rendered +images and convert a sequence of them to a movie during the MD run. +Several programs included with LAMMPS as auxiliary tools can convert +between LAMMPS format files and other formats. +See the Section 9 doc page for details.

+

A Python-based toolkit distributed by our group can read native LAMMPS +dump files, including custom dump files with additional columns of +user-specified atom information, and convert them to various formats +or pipe them into visualization software directly. See the Pizza.py WWW site for details. Specifically, Pizza.py can convert +LAMMPS dump files into PDB, XYZ, Ensight, and VTK formats. +Pizza.py can pipe LAMMPS dump files directly into the Raster3d and +RasMol visualization programs. Pizza.py has tools that do interactive +3d OpenGL visualization and one that creates SVG images of dump file +snapshots.

+
+
+
+

6.12. Triclinic (non-orthogonal) simulation boxes

+

By default, LAMMPS uses an orthogonal simulation box to encompass the +particles. The boundary command sets the boundary +conditions of the box (periodic, non-periodic, etc). The orthogonal +box has its “origin” at (xlo,ylo,zlo) and is defined by 3 edge vectors +starting from the origin given by a = (xhi-xlo,0,0); b = +(0,yhi-ylo,0); c = (0,0,zhi-zlo). The 6 parameters +(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simulation box +is created, e.g. by the create_box or +read_data or read_restart +commands. Additionally, LAMMPS defines box size parameters lx,ly,lz +where lx = xhi-xlo, and similarly in the y and z dimensions. The 6 +parameters, as well as lx,ly,lz, can be output via the thermo_style custom command.

+

LAMMPS also allows simulations to be performed in triclinic +(non-orthogonal) simulation boxes shaped as a parallelepiped with +triclinic symmetry. The parallelepiped has its “origin” at +(xlo,ylo,zlo) and is defined by 3 edge vectors starting from the +origin given by a = (xhi-xlo,0,0); b = (xy,yhi-ylo,0); c = +(xz,yz,zhi-zlo). xy,xz,yz can be 0.0 or positive or negative values +and are called “tilt factors” because they are the amount of +displacement applied to faces of an originally orthogonal box to +transform it into the parallelepiped. In LAMMPS the triclinic +simulation box edge vectors a, b, and c cannot be arbitrary +vectors. As indicated, a must lie on the positive x axis. b must +lie in the xy plane, with strictly positive y component. c may have +any orientation with strictly positive z component. The requirement +that a, b, and c have strictly positive x, y, and z components, +respectively, ensures that a, b, and c form a complete +right-handed basis. These restrictions impose no loss of generality, +since it is possible to rotate/invert any set of 3 crystal basis +vectors so that they conform to the restrictions.

+

For example, assume that the 3 vectors A,B,C are the edge +vectors of a general parallelepiped, where there is no restriction on +A,B,C other than they form a complete right-handed basis i.e. +A x B . C > 0. The equivalent LAMMPS a,b,c are a linear +rotation of A, B, and C and can be computed as follows:

+_images/transform.jpg +

where A = | A | indicates the scalar length of A. The hat symbol (^) +indicates the corresponding unit vector. beta and gamma are angles +between the vectors described below. Note that by construction, +a, b, and c have strictly positive x, y, and z components, respectively. +If it should happen that +A, B, and C form a left-handed basis, then the above equations +are not valid for c. In this case, it is necessary +to first apply an inversion. This can be achieved +by interchanging two basis vectors or by changing the sign of one of them.

+

For consistency, the same rotation/inversion applied to the basis vectors +must also be applied to atom positions, velocities, +and any other vector quantities. +This can be conveniently achieved by first converting to +fractional coordinates in the +old basis and then converting to distance coordinates in the new basis. +The transformation is given by the following equation:

+_images/rotate.jpg +

where V is the volume of the box, X is the original vector quantity and +x is the vector in the LAMMPS basis.

+

There is no requirement that a triclinic box be periodic in any +dimension, though it typically should be in at least the 2nd dimension +of the tilt (y in xy) if you want to enforce a shift in periodic +boundary conditions across that boundary. Some commands that work +with triclinic boxes, e.g. the fix deform and fix npt commands, require periodicity or non-shrink-wrap +boundary conditions in specific dimensions. See the command doc pages +for details.

+

The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the +time the simulation box is created. This happens in one of 3 ways. +If the create_box command is used with a region of +style prism, then a triclinic box is setup. See the +region command for details. If the +read_data command is used to define the simulation +box, and the header of the data file contains a line with the “xy xz +yz” keyword, then a triclinic box is setup. See the +read_data command for details. Finally, if the +read_restart command reads a restart file which +was written from a simulation using a triclinic box, then a triclinic +box will be setup for the restarted simulation.

+

Note that you can define a triclinic box with all 3 tilt factors = +0.0, so that it is initially orthogonal. This is necessary if the box +will become non-orthogonal, e.g. due to the fix npt or +fix deform commands. Alternatively, you can use the +change_box command to convert a simulation box from +orthogonal to triclinic and vice versa.

+

As with orthogonal boxes, LAMMPS defines triclinic box size parameters +lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions. +The 9 parameters, as well as lx,ly,lz, can be output via the +thermo_style custom command.

+

To avoid extremely tilted boxes (which would be computationally +inefficient), LAMMPS normally requires that no tilt factor can skew +the box more than half the distance of the parallel box length, which +is the 1st dimension in the tilt factor (x for xz). This is required +both when the simulation box is created, e.g. via the +create_box or read_data commands, +as well as when the box shape changes dynamically during a simulation, +e.g. via the fix deform or fix npt +commands.

+

For example, if xlo = 2 and xhi = 12, then the x box length is 10 and +the xy tilt factor must be between -5 and 5. Similarly, both xz and +yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is +not a limitation, since if the maximum tilt factor is 5 (as in this +example), then configurations with tilt = …, -15, -5, 5, 15, 25, +… are geometrically all equivalent. If the box tilt exceeds this +limit during a dynamics run (e.g. via the fix deform +command), then the box is “flipped” to an equivalent shape with a tilt +factor within the bounds, so the run can continue. See the fix deform doc page for further details.

+

One exception to this rule is if the 1st dimension in the tilt +factor (x for xy) is non-periodic. In that case, the limits on the +tilt factor are not enforced, since flipping the box in that dimension +does not change the atom positions due to non-periodicity. In this +mode, if you tilt the system to extreme angles, the simulation will +simply become inefficient, due to the highly skewed simulation box.

+

The limitation on not creating a simulation box with a tilt factor +skewing the box more than half the distance of the parallel box length +can be overridden via the box command. Setting the tilt +keyword to large allows any tilt factors to be specified.

+

Box flips that may occur using the fix deform or +fix npt commands can be turned off using the flip no +option with either of the commands.

+

Note that if a simulation box has a large tilt factor, LAMMPS will run +less efficiently, due to the large volume of communication needed to +acquire ghost atoms around a processor’s irregular-shaped sub-domain. +For extreme values of tilt, LAMMPS may also lose atoms and generate an +error.

+

Triclinic crystal structures are often defined using three lattice +constants a, b, and c, and three angles alpha, beta and +gamma. Note that in this nomenclature, the a, b, and c lattice +constants are the scalar lengths of the edge vectors a, b, and c +defined above. The relationship between these 6 quantities +(a,b,c,alpha,beta,gamma) and the LAMMPS box sizes (lx,ly,lz) = +(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows:

+_images/box.jpg +

The inverse relationship can be written as follows:

+_images/box_inverse.jpg +

The values of a, b, c , alpha, beta , and gamma can be printed +out or accessed by computes using the +thermo_style custom keywords +cella, cellb, cellc, cellalpha, cellbeta, cellgamma, +respectively.

+

As discussed on the dump command doc page, when the BOX +BOUNDS for a snapshot is written to a dump file for a triclinic box, +an orthogonal bounding box which encloses the triclinic simulation box +is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic +box, formatted as follows:

+
ITEM: BOX BOUNDS xy xz yz
+xlo_bound xhi_bound xy
+ylo_bound yhi_bound xz
+zlo_bound zhi_bound yz
+
+
+

This bounding box is convenient for many visualization programs and is +calculated from the 9 triclinic box parameters +(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows:

+
xlo_bound = xlo + MIN(0.0,xy,xz,xy+xz)
+xhi_bound = xhi + MAX(0.0,xy,xz,xy+xz)
+ylo_bound = ylo + MIN(0.0,yz)
+yhi_bound = yhi + MAX(0.0,yz)
+zlo_bound = zlo
+zhi_bound = zhi
+
+
+

These formulas can be inverted if you need to convert the bounding box +back into the triclinic box parameters, e.g. xlo = xlo_bound - +MIN(0.0,xy,xz,xy+xz).

+

One use of triclinic simulation boxes is to model solid-state crystals +with triclinic symmetry. The lattice command can be +used with non-orthogonal basis vectors to define a lattice that will +tile a triclinic simulation box via the +create_atoms command.

+

A second use is to run Parinello-Rahman dynamics via the fix npt command, which will adjust the xy, xz, yz tilt +factors to compensate for off-diagonal components of the pressure +tensor. The analog for an energy minimization is +the fix box/relax command.

+

A third use is to shear a bulk solid to study the response of the +material. The fix deform command can be used for +this purpose. It allows dynamic control of the xy, xz, yz tilt +factors as a simulation runs. This is discussed in the next section +on non-equilibrium MD (NEMD) simulations.

+
+
+
+

6.13. NEMD simulations

+

Non-equilibrium molecular dynamics or NEMD simulations are typically +used to measure a fluid’s rheological properties such as viscosity. +In LAMMPS, such simulations can be performed by first setting up a +non-orthogonal simulation box (see the preceding Howto section).

+

A shear strain can be applied to the simulation box at a desired +strain rate by using the fix deform command. The +fix nvt/sllod command can be used to thermostat +the sheared fluid and integrate the SLLOD equations of motion for the +system. Fix nvt/sllod uses compute temp/deform to compute a thermal temperature +by subtracting out the streaming velocity of the shearing atoms. The +velocity profile or other properties of the fluid can be monitored via +the fix ave/chunk command.

+

As discussed in the previous section on non-orthogonal simulation +boxes, the amount of tilt or skew that can be applied is limited by +LAMMPS for computational efficiency to be 1/2 of the parallel box +length. However, fix deform can continuously strain +a box by an arbitrary amount. As discussed in the fix deform command, when the tilt value reaches a limit, +the box is flipped to the opposite limit which is an equivalent tiling +of periodic space. The strain rate can then continue to change as +before. In a long NEMD simulation these box re-shaping events may +occur many times.

+

In a NEMD simulation, the “remap” option of fix deform should be set to “remap v”, since that is what +fix nvt/sllod assumes to generate a velocity +profile consistent with the applied shear strain rate.

+

An alternative method for calculating viscosities is provided via the +fix viscosity command.

+

NEMD simulations can also be used to measure transport properties of a fluid +through a pore or channel. Simulations of steady-state flow can be performed +using the fix flow/gauss command.

+
+
+
+

6.14. Finite-size spherical and aspherical particles

+

Typical MD models treat atoms or particles as point masses. Sometimes +it is desirable to have a model with finite-size particles such as +spheroids or ellipsoids or generalized aspherical bodies. The +difference is that such particles have a moment of inertia, rotational +energy, and angular momentum. Rotation is induced by torque coming +from interactions with other particles.

+

LAMMPS has several options for running simulations with these kinds of +particles. The following aspects are discussed in turn:

+
    +
  • atom styles
  • +
  • pair potentials
  • +
  • time integration
  • +
  • computes, thermodynamics, and dump output
  • +
  • rigid bodies composed of finite-size particles
  • +
+

Example input scripts for these kinds of models are in the body, +colloid, dipole, ellipse, line, peri, pour, and tri directories of the +examples directory in the LAMMPS distribution.

+
+

6.14.1. Atom styles

+

There are several atom styles that allow for +definition of finite-size particles: sphere, dipole, ellipsoid, line, +tri, peri, and body.

+

The sphere style defines particles that are spheriods and each +particle can have a unique diameter and mass (or density). These +particles store an angular velocity (omega) and can be acted upon by +torque. The “set” command can be used to modify the diameter and mass +of individual particles, after then are created.

+

The dipole style does not actually define finite-size particles, but +is often used in conjunction with spherical particles, via a command +like

+
atom_style hybrid sphere dipole
+
+
+

This is because when dipoles interact with each other, they induce +torques, and a particle must be finite-size (i.e. have a moment of +inertia) in order to respond and rotate. See the atom_style dipole command for details. The “set” command can be +used to modify the orientation and length of the dipole moment of +individual particles, after then are created.

+

The ellipsoid style defines particles that are ellipsoids and thus can +be aspherical. Each particle has a shape, specified by 3 diameters, +and mass (or density). These particles store an angular momentum and +their orientation (quaternion), and can be acted upon by torque. They +do not store an angular velocity (omega), which can be in a different +direction than angular momentum, rather they compute it as needed. +The “set” command can be used to modify the diameter, orientation, and +mass of individual particles, after then are created. It also has a +brief explanation of what quaternions are.

+

The line style defines line segment particles with two end points and +a mass (or density). They can be used in 2d simulations, and they can +be joined together to form rigid bodies which represent arbitrary +polygons.

+

The tri style defines triangular particles with three corner points +and a mass (or density). They can be used in 3d simulations, and they +can be joined together to form rigid bodies which represent arbitrary +particles with a triangulated surface.

+

The peri style is used with Peridynamic models and +defines particles as having a volume, that is used internally in the +pair_style peri potentials.

+

The body style allows for definition of particles which can represent +complex entities, such as surface meshes of discrete points, +collections of sub-particles, deformable objects, etc. The body style +is discussed in more detail on the body doc page.

+

Note that if one of these atom styles is used (or multiple styles via +the atom_style hybrid command), not all particles in +the system are required to be finite-size or aspherical.

+

For example, in the ellipsoid style, if the 3 shape parameters are set +to the same value, the particle will be a sphere rather than an +ellipsoid. If the 3 shape parameters are all set to 0.0 or if the +diameter is set to 0.0, it will be a point particle. In the line or +tri style, if the lineflag or triflag is specified as 0, then it +will be a point particle.

+

Some of the pair styles used to compute pairwise interactions between +finite-size particles also compute the correct interaction with point +particles as well, e.g. the interaction between a point particle and a +finite-size particle or between two point particles. If necessary, +pair_style hybrid can be used to insure the correct +interactions are computed for the appropriate style of interactions. +Likewise, using groups to partition particles (ellipsoids versus +spheres versus point particles) will allow you to use the appropriate +time integrators and temperature computations for each class of +particles. See the doc pages for various commands for details.

+

Also note that for 2d simulations, atom styles sphere +and ellipsoid still use 3d particles, rather than as circular disks or +ellipses. This means they have the same moment of inertia as the 3d +object. When temperature is computed, the correct degrees of freedom +are used for rotation in a 2d versus 3d system.

+
+
+

6.14.2. Pair potentials

+

When a system with finite-size particles is defined, the particles +will only rotate and experience torque if the force field computes +such interactions. These are the various pair styles that generate torque:

+ +

The granular pair styles are used with spherical particles. The +dipole pair style is used with the dipole atom style, which could be +applied to spherical or ellipsoidal particles. The GayBerne and +REsquared potentials require ellipsoidal particles, though they will +also work if the 3 shape parameters are the same (a sphere). The +Brownian and lubrication potentials are used with spherical particles. +The line, tri, and body potentials are used with line segment, +triangular, and body particles respectively.

+
+
+

6.14.3. Time integration

+

There are several fixes that perform time integration on finite-size +spherical particles, meaning the integrators update the rotational +orientation and angular velocity or angular momentum of the particles:

+ +

Likewise, there are 3 fixes that perform time integration on +ellipsoidal particles:

+ +

The advantage of these fixes is that those which thermostat the +particles include the rotational degrees of freedom in the temperature +calculation and thermostatting. The fix langevin +command can also be used with its omgea or angmom options to +thermostat the rotational degrees of freedom for spherical or +ellipsoidal particles. Other thermostatting fixes only operate on the +translational kinetic energy of finite-size particles.

+

These fixes perform constant NVE time integration on line segment, +triangular, and body particles:

+ +

Note that for mixtures of point and finite-size particles, these +integration fixes can only be used with groups which +contain finite-size particles.

+
+
+

6.14.4. Computes, thermodynamics, and dump output

+

There are several computes that calculate the temperature or +rotational energy of spherical or ellipsoidal particles:

+ +

These include rotational degrees of freedom in their computation. If +you wish the thermodynamic output of temperature or pressure to use +one of these computes (e.g. for a system entirely composed of +finite-size particles), then the compute can be defined and the +thermo_modify command used. Note that by default +thermodynamic quantities will be calculated with a temperature that +only includes translational degrees of freedom. See the +thermo_style command for details.

+

These commands can be used to output various attributes of finite-size +particles:

+ +

Attributes include the dipole moment, the angular velocity, the +angular momentum, the quaternion, the torque, the end-point and +corner-point coordinates (for line and tri particles), and +sub-particle attributes of body particles.

+
+
+

6.14.5. Rigid bodies composed of finite-size particles

+

The fix rigid command treats a collection of +particles as a rigid body, computes its inertia tensor, sums the total +force and torque on the rigid body each timestep due to forces on its +constituent particles, and integrates the motion of the rigid body.

+

If any of the constituent particles of a rigid body are finite-size +particles (spheres or ellipsoids or line segments or triangles), then +their contribution to the inertia tensor of the body is different than +if they were point particles. This means the rotational dynamics of +the rigid body will be different. Thus a model of a dimer is +different if the dimer consists of two point masses versus two +spheroids, even if the two particles have the same mass. Finite-size +particles that experience torque due to their interaction with other +particles will also impart that torque to a rigid body they are part +of.

+

See the “fix rigid” command for example of complex rigid-body models +it is possible to define in LAMMPS.

+

Note that the fix shake command can also be used to +treat 2, 3, or 4 particles as a rigid body, but it always assumes the +particles are point masses.

+

Also note that body particles cannot be modeled with the fix rigid command. Body particles are treated by LAMMPS +as single particles, though they can store internal state, such as a +list of sub-particles. Individual body partices are typically treated +as rigid bodies, and their motion integrated with a command like fix nve/body. Interactions between pairs of body +particles are computed via a command like pair_style body.

+
+
+
+
+

6.15. Output from LAMMPS (thermo, dumps, computes, fixes, variables)

+

There are four basic kinds of LAMMPS output:

+
    +
  • Thermodynamic output, which is a list +of quantities printed every few timesteps to the screen and logfile.
  • +
  • Dump files, which contain snapshots of atoms and various +per-atom values and are written at a specified frequency.
  • +
  • Certain fixes can output user-specified quantities to files: fix ave/time for time averaging, fix ave/chunk for spatial or other averaging, and fix print for single-line output of +variables. Fix print can also output to the +screen.
  • +
  • Restart files.
  • +
+

A simulation prints one set of thermodynamic output and (optionally) +restart files. It can generate any number of dump files and fix +output files, depending on what dump and fix +commands you specify.

+

As discussed below, LAMMPS gives you a variety of ways to determine +what quantities are computed and printed when the thermodynamics, +dump, or fix commands listed above perform output. Throughout this +discussion, note that users can also add their own computes and fixes to LAMMPS which can then generate values that can +then be output with these commands.

+

The following sub-sections discuss different LAMMPS command related +to output and the kind of data they operate on and produce:

+ +
+

6.15.1. Global/per-atom/local data

+

Various output-related commands work with three different styles of +data: global, per-atom, or local. A global datum is one or more +system-wide values, e.g. the temperature of the system. A per-atom +datum is one or more values per atom, e.g. the kinetic energy of each +atom. Local datums are calculated by each processor based on the +atoms it owns, but there may be zero or more per atom, e.g. a list of +bond distances.

+
+
+

6.15.2. Scalar/vector/array data

+

Global, per-atom, and local datums can each come in three kinds: a +single scalar value, a vector of values, or a 2d array of values. The +doc page for a “compute” or “fix” or “variable” that generates data +will specify both the style and kind of data it produces, e.g. a +per-atom vector.

+

When a quantity is accessed, as in many of the output commands +discussed below, it can be referenced via the following bracket +notation, where ID in this case is the ID of a compute. The leading +“c_” would be replaced by “f_” for a fix, or “v_” for a variable:

+ ++++ + + + + + + + + + + + +
c_IDentire scalar, vector, or array
c_ID[I]one element of vector, one column of array
c_ID[I][J]one element of array
+

In other words, using one bracket reduces the dimension of the data +once (vector -> scalar, array -> vector). Using two brackets reduces +the dimension twice (array -> scalar). Thus a command that uses +scalar values as input can typically also process elements of a vector +or array.

+
+
+

6.15.3. Thermodynamic output

+

The frequency and format of thermodynamic output is set by the +thermo, thermo_style, and +thermo_modify commands. The +thermo_style command also specifies what values +are calculated and written out. Pre-defined keywords can be specified +(e.g. press, etotal, etc). Three additional kinds of keywords can +also be specified (c_ID, f_ID, v_name), where a compute +or fix or variable provides the value to be +output. In each case, the compute, fix, or variable must generate +global values for input to the thermo_style custom +command.

+

Note that thermodynamic output values can be “extensive” or +“intensive”. The former scale with the number of atoms in the system +(e.g. total energy), the latter do not (e.g. temperature). The +setting for thermo_modify norm determines whether +extensive quantities are normalized or not. Computes and fixes +produce either extensive or intensive values; see their individual doc +pages for details. Equal-style variables produce only +intensive values; you can include a division by “natoms” in the +formula if desired, to make an extensive calculation produce an +intensive result.

+
+
+

6.15.4. Dump file output

+

Dump file output is specified by the dump and +dump_modify commands. There are several +pre-defined formats (dump atom, dump xtc, etc).

+

There is also a dump custom format where the user +specifies what values are output with each atom. Pre-defined atom +attributes can be specified (id, x, fx, etc). Three additional kinds +of keywords can also be specified (c_ID, f_ID, v_name), where a +compute or fix or variable +provides the values to be output. In each case, the compute, fix, or +variable must generate per-atom values for input to the dump custom command.

+

There is also a dump local format where the user specifies +what local values to output. A pre-defined index keyword can be +specified to enumerate the local values. Two additional kinds of +keywords can also be specified (c_ID, f_ID), where a +compute or fix or variable +provides the values to be output. In each case, the compute or fix +must generate local values for input to the dump local +command.

+
+
+

6.15.5. Fixes that write output files

+

Several fixes take various quantities as input and can write output +files: fix ave/time, fix ave/chunk, fix ave/histo, +fix ave/correlate, and fix print.

+

The fix ave/time command enables direct output to +a file and/or time-averaging of global scalars or vectors. The user +specifies one or more quantities as input. These can be global +compute values, global fix values, or +variables of any style except the atom style which +produces per-atom values. Since a variable can refer to keywords used +by the thermo_style custom command (like temp or +press) and individual per-atom values, a wide variety of quantities +can be time averaged and/or output in this way. If the inputs are one +or more scalar values, then the fix generate a global scalar or vector +of output. If the inputs are one or more vector values, then the fix +generates a global vector or array of output. The time-averaged +output of this fix can also be used as input to other output commands.

+

The fix ave/chunk command enables direct output +to a file of chunk-averaged per-atom quantities like those output in +dump files. Chunks can represent spatial bins or other collections of +atoms, e.g. individual molecules. The per-atom quantities can be atom +density (mass or number) or atom attributes such as position, +velocity, force. They can also be per-atom quantities calculated by a +compute, by a fix, or by an atom-style +variable. The chunk-averaged output of this fix can +also be used as input to other output commands.

+

The fix ave/histo command enables direct output +to a file of histogrammed quantities, which can be global or per-atom +or local quantities. The histogram output of this fix can also be +used as input to other output commands.

+

The fix ave/correlate command enables direct +output to a file of time-correlated quantities, which can be global +values. The correlation matrix output of this fix can also be used as +input to other output commands.

+

The fix print command can generate a line of output +written to the screen and log file or to a separate file, periodically +during a running simulation. The line can contain one or more +variable values for any style variable except the +vector or atom styles). As explained above, variables themselves can +contain references to global values generated by thermodynamic keywords, computes, +fixes, or other variables, or to per-atom +values for a specific atom. Thus the fix print +command is a means to output a wide variety of quantities separate +from normal thermodynamic or dump file output.

+
+
+

6.15.6. Computes that process output quantities

+

The compute reduce and compute reduce/region commands take one or more per-atom +or local vector quantities as inputs and “reduce” them (sum, min, max, +ave) to scalar quantities. These are produced as output values which +can be used as input to other output commands.

+

The compute slice command take one or more global +vector or array quantities as inputs and extracts a subset of their +values to create a new vector or array. These are produced as output +values which can be used as input to other output commands.

+

The compute property/atom command takes a +list of one or more pre-defined atom attributes (id, x, fx, etc) and +stores the values in a per-atom vector or array. These are produced +as output values which can be used as input to other output commands. +The list of atom attributes is the same as for the dump custom command.

+

The compute property/local command takes +a list of one or more pre-defined local attributes (bond info, angle +info, etc) and stores the values in a local vector or array. These +are produced as output values which can be used as input to other +output commands.

+
+
+

6.15.7. Fixes that process output quantities

+

The fix vector command can create global vectors as +output from global scalars as input, accumulating them one element at +a time.

+

The fix ave/atom command performs time-averaging +of per-atom vectors. The per-atom quantities can be atom attributes +such as position, velocity, force. They can also be per-atom +quantities calculated by a compute, by a +fix, or by an atom-style variable. The +time-averaged per-atom output of this fix can be used as input to +other output commands.

+

The fix store/state command can archive one or +more per-atom attributes at a particular time, so that the old values +can be used in a future calculation or output. The list of atom +attributes is the same as for the dump custom command, +including per-atom quantities calculated by a compute, +by a fix, or by an atom-style variable. +The output of this fix can be used as input to other output commands.

+
+
+

6.15.8. Computes that generate values to output

+

Every compute in LAMMPS produces either global or +per-atom or local values. The values can be scalars or vectors or +arrays of data. These values can be output using the other commands +described in this section. The doc page for each compute command +describes what it produces. Computes that produce per-atom or local +values have the word “atom” or “local” in their style name. Computes +without the word “atom” or “local” produce global values.

+
+
+

6.15.9. Fixes that generate values to output

+

Some fixes in LAMMPS produces either global or per-atom or +local values which can be accessed by other commands. The values can +be scalars or vectors or arrays of data. These values can be output +using the other commands described in this section. The doc page for +each fix command tells whether it produces any output quantities and +describes them.

+
+
+

6.15.10. Variables that generate values to output

+

Variables defined in an input script can store one or +more strings. But equal-style, vector-style, and atom-style or +atomfile-style variables generate a global scalar value, global vector +or values, or a per-atom vector, respectively, when accessed. The +formulas used to define these variables can contain references to the +thermodynamic keywords and to global and per-atom data generated by +computes, fixes, and other variables. The values generated by +variables can be used as input to and thus output by the other +commands described in this section.

+
+
+

6.15.11. Summary table of output options and data flow between commands

+

This table summarizes the various commands that can be used for +generating output from LAMMPS. Each command produces output data of +some kind and/or writes data to a file. Most of the commands can take +data from other commands as input. Thus you can link many of these +commands together in pipeline form, where data produced by one command +is used as input to another command and eventually written to the +screen or to a file. Note that to hook two commands together the +output and input data types must match, e.g. global/per-atom/local +data and scalar/vector/array data.

+

Also note that, as described above, when a command takes a scalar as +input, that could be an element of a vector or array. Likewise a +vector input could be a column of an array.

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandInputOutput
thermo_style customglobal scalarsscreen, log file
dump customper-atom vectorsdump file
dump locallocal vectorsdump file
fix printglobal scalar from variablescreen, file
printglobal scalar from variablescreen
computesN/Aglobal/per-atom/local scalar/vector/array
fixesN/Aglobal/per-atom/local scalar/vector/array
variablesglobal scalars and vectors, per-atom vectorsglobal scalar and vector, per-atom vector
compute reduceper-atom/local vectorsglobal scalar/vector
compute sliceglobal vectors/arraysglobal vector/array
compute property/atomper-atom vectorsper-atom vector/array
compute property/locallocal vectorslocal vector/array
fix vectorglobal scalarsglobal vector
fix ave/atomper-atom vectorsper-atom vector/array
fix ave/timeglobal scalars/vectorsglobal scalar/vector/array, file
fix ave/chunkper-atom vectorsglobal array, file
fix ave/histoglobal/per-atom/local scalars and vectorsglobal array, file
fix ave/correlateglobal scalarsglobal array, file
fix store/stateper-atom vectorsper-atom vector/array
+
+
+
+
+

6.16. Thermostatting, barostatting, and computing temperature

+

Thermostatting means controlling the temperature of particles in an MD +simulation. Barostatting means controlling the pressure. Since the +pressure includes a kinetic component due to particle velocities, both +these operations require calculation of the temperature. Typically a +target temperature (T) and/or pressure (P) is specified by the user, +and the thermostat or barostat attempts to equilibrate the system to +the requested T and/or P.

+

Temperature is computed as kinetic energy divided by some number of +degrees of freedom (and the Boltzmann constant). Since kinetic energy +is a function of particle velocity, there is often a need to +distinguish between a particle’s advection velocity (due to some +aggregate motion of particles) and its thermal velocity. The sum of +the two is the particle’s total velocity, but the latter is often what +is wanted to compute a temperature.

+

LAMMPS has several options for computing temperatures, any of which +can be used in thermostatting and barostatting. These compute commands calculate temperature, and the compute pressure command calculates pressure.

+ +

All but the first 3 calculate velocity biases directly (e.g. advection +velocities) that are removed when computing the thermal temperature. +Compute temp/sphere and compute temp/asphere compute kinetic energy for +finite-size particles that includes rotational degrees of freedom. +They both allow for velocity biases indirectly, via an optional extra +argument, another temperature compute that subtracts a velocity bias. +This allows the translational velocity of spherical or aspherical +particles to be adjusted in prescribed ways.

+

Thermostatting in LAMMPS is performed by fixes, or in one +case by a pair style. Several thermostatting fixes are available: +Nose-Hoover (nvt), Berendsen, CSVR, Langevin, and direct rescaling +(temp/rescale). Dissipative particle dynamics (DPD) thermostatting +can be invoked via the dpd/tstat pair style:

+ +

Fix nvt only thermostats the translational velocity of +particles. Fix nvt/sllod also does this, except +that it subtracts out a velocity bias due to a deforming box and +integrates the SLLOD equations of motion. See the NEMD simulations section of this page for further details. Fix nvt/sphere and fix nvt/asphere thermostat not only translation +velocities but also rotational velocities for spherical and aspherical +particles.

+

DPD thermostatting alters pairwise interactions in a manner analogous +to the per-particle thermostatting of fix langevin.

+

Any of the thermostatting fixes can use temperature computes that +remove bias which has two effects. First, the current calculated +temperature, which is compared to the requested target temperature, is +calculated with the velocity bias removed. Second, the thermostat +adjusts only the thermal temperature component of the particle’s +velocities, which are the velocities with the bias removed. The +removed bias is then added back to the adjusted velocities. See the +doc pages for the individual fixes and for the +fix_modify command for instructions on how to assign +a temperature compute to a thermostatting fix. For example, you can +apply a thermostat to only the x and z components of velocity by using +it in conjunction with compute temp/partial. Of you could thermostat only +the thermal temperature of a streaming flow of particles without +affecting the streaming velocity, by using compute temp/profile.

+
+

Note

+

Only the nvt fixes perform time integration, meaning they update +the velocities and positions of particles due to forces and velocities +respectively. The other thermostat fixes only adjust velocities; they +do NOT perform time integration updates. Thus they should be used in +conjunction with a constant NVE integration fix such as these:

+
+ +

Barostatting in LAMMPS is also performed by fixes. Two +barosttating methods are currently available: Nose-Hoover (npt and +nph) and Berendsen:

+ +

The fix npt commands include a Nose-Hoover thermostat +and barostat. Fix nph is just a Nose/Hoover barostat; +it does no thermostatting. Both fix nph and fix press/berendsen can be used in conjunction +with any of the thermostatting fixes.

+

As with the thermostats, fix npt and fix nph only use translational motion of the particles in +computing T and P and performing thermo/barostatting. Fix npt/sphere and fix npt/asphere thermo/barostat using not only +translation velocities but also rotational velocities for spherical +and aspherical particles.

+

All of the barostatting fixes use the compute pressure compute to calculate a current +pressure. By default, this compute is created with a simple compute temp (see the last argument of the compute pressure command), which is used to calculated +the kinetic component of the pressure. The barostatting fixes can +also use temperature computes that remove bias for the purpose of +computing the kinetic component which contributes to the current +pressure. See the doc pages for the individual fixes and for the +fix_modify command for instructions on how to assign +a temperature or pressure compute to a barostatting fix.

+
+

Note

+

As with the thermostats, the Nose/Hoover methods (fix npt and fix nph) perform time integration. +Fix press/berendsen does NOT, so it should +be used with one of the constant NVE fixes or with one of the NVT +fixes.

+
+

Finally, thermodynamic output, which can be setup via the +thermo_style command, often includes temperature +and pressure values. As explained on the doc page for the +thermo_style command, the default T and P are +setup by the thermo command itself. They are NOT the ones associated +with any thermostatting or barostatting fix you have defined or with +any compute that calculates a temperature or pressure. Thus if you +want to view these values of T and P, you need to specify them +explicitly via a thermo_style custom command. Or +you can use the thermo_modify command to +re-define what temperature or pressure compute is used for default +thermodynamic output.

+
+
+
+

6.17. Walls

+

Walls in an MD simulation are typically used to bound particle motion, +i.e. to serve as a boundary condition.

+

Walls in LAMMPS can be of rough (made of particles) or idealized +surfaces. Ideal walls can be smooth, generating forces only in the +normal direction, or frictional, generating forces also in the +tangential direction.

+

Rough walls, built of particles, can be created in various ways. The +particles themselves can be generated like any other particle, via the +lattice and create_atoms commands, +or read in via the read_data command.

+

Their motion can be constrained by many different commands, so that +they do not move at all, move together as a group at constant velocity +or in response to a net force acting on them, move in a prescribed +fashion (e.g. rotate around a point), etc. Note that if a time +integration fix like fix nve or fix nvt +is not used with the group that contains wall particles, their +positions and velocities will not be updated.

+
    +
  • fix aveforce - set force on particles to average value, so they move together
  • +
  • fix setforce - set force on particles to a value, e.g. 0.0
  • +
  • fix freeze - freeze particles for use as granular walls
  • +
  • fix nve/noforce - advect particles by their velocity, but without force
  • +
  • fix move - prescribe motion of particles by a linear velocity, oscillation, rotation, variable
  • +
+

The fix move command offers the most generality, since +the motion of individual particles can be specified with +variable formula which depends on time and/or the +particle position.

+

For rough walls, it may be useful to turn off pairwise interactions +between wall particles via the neigh_modify exclude command.

+

Rough walls can also be created by specifying frozen particles that do +not move and do not interact with mobile particles, and then tethering +other particles to the fixed particles, via a bond. +The bonded particles do interact with other mobile particles.

+

Idealized walls can be specified via several fix commands. Fix wall/gran creates frictional walls for use with +granular particles; all the other commands create smooth walls.

+ +

The lj93, lj126, colloid, and harmonic styles all allow the +flat walls to move with a constant velocity, or oscillate in time. +The fix wall/region command offers the most +generality, since the region surface is treated as a wall, and the +geometry of the region can be a simple primitive volume (e.g. a +sphere, or cube, or plane), or a complex volume made from the union +and intersection of primitive volumes. Regions can also +specify a volume “interior” or “exterior” to the specified primitive +shape or union or intersection. Regions can also be +“dynamic” meaning they move with constant velocity, oscillate, or +rotate.

+

The only frictional idealized walls currently in LAMMPS are flat or +curved surfaces specified by the fix wall/gran +command. At some point we plan to allow regoin surfaces to be used as +frictional walls, as well as triangulated surfaces.

+
+
+
+

6.18. Elastic constants

+

Elastic constants characterize the stiffness of a material. The formal +definition is provided by the linear relation that holds between the +stress and strain tensors in the limit of infinitesimal deformation. +In tensor notation, this is expressed as s_ij = C_ijkl * e_kl, where +the repeated indices imply summation. s_ij are the elements of the +symmetric stress tensor. e_kl are the elements of the symmetric strain +tensor. C_ijkl are the elements of the fourth rank tensor of elastic +constants. In three dimensions, this tensor has 3^4=81 elements. Using +Voigt notation, the tensor can be written as a 6x6 matrix, where C_ij +is now the derivative of s_i w.r.t. e_j. Because s_i is itself a +derivative w.r.t. e_i, it follows that C_ij is also symmetric, with at +most 7*6/2 = 21 distinct elements.

+

At zero temperature, it is easy to estimate these derivatives by +deforming the simulation box in one of the six directions using the +change_box command and measuring the change in the +stress tensor. A general-purpose script that does this is given in the +examples/elastic directory described in this section.

+

Calculating elastic constants at finite temperature is more +challenging, because it is necessary to run a simulation that perfoms +time averages of differential properties. One way to do this is to +measure the change in average stress tensor in an NVT simulations when +the cell volume undergoes a finite deformation. In order to balance +the systematic and statistical errors in this method, the magnitude of +the deformation must be chosen judiciously, and care must be taken to +fully equilibrate the deformed cell before sampling the stress +tensor. Another approach is to sample the triclinic cell fluctuations +that occur in an NPT simulation. This method can also be slow to +converge and requires careful post-processing (Shinoda)

+
+
+
+

6.19. Library interface to LAMMPS

+

As described in Section 2.5, LAMMPS +can be built as a library, so that it can be called by another code, +used in a coupled manner with other +codes, or driven through a Python interface.

+

All of these methodologies use a C-style interface to LAMMPS that is +provided in the files src/library.cpp and src/library.h. The +functions therein have a C-style argument list, but contain C++ code +you could write yourself in a C++ application that was invoking LAMMPS +directly. The C++ code in the functions illustrates how to invoke +internal LAMMPS operations. Note that LAMMPS classes are defined +within a LAMMPS namespace (LAMMPS_NS) if you use them from another C++ +application.

+

Library.cpp contains these functions for creating and destroying an +instance of LAMMPS and sending it commands to execute. See the +documentation in the src/library.cpp file for details:

+
+void lammps_open(int, char **, MPI_Comm, void **)
+void lammps_open_no_mpi(int, char **, void **)
+void lammps_close(void *)
+int lammps_version(void *)
+void lammps_file(void *, char *)
+char *lammps_command(void *, char *)
+void lammps_commands_list(void *, int, char **)
+void lammps_commands_string(void *, char *)
+void lammps_free(void *)
+
+

The lammps_open() function is used to initialize LAMMPS, passing in a +list of strings as if they were command-line arguments when LAMMPS is run in +stand-alone mode from the command line, and a MPI communicator for +LAMMPS to run under. It returns a ptr to the LAMMPS object that is +created, and which is used in subsequent library calls. The +lammps_open() function can be called multiple times, to create +multiple instances of LAMMPS.

+

LAMMPS will run on the set of processors in the communicator. This +means the calling code can run LAMMPS on all or a subset of +processors. For example, a wrapper script might decide to alternate +between LAMMPS and another code, allowing them both to run on all the +processors. Or it might allocate half the processors to LAMMPS and +half to the other code and run both codes simultaneously before +syncing them up periodically. Or it might instantiate multiple +instances of LAMMPS to perform different calculations.

+

The lammps_open_no_mpi() function is similar except that no MPI +communicator is passed from the caller. Instead, MPI_COMM_WORLD is +used to instantiate LAMMPS, and MPI is initialized if necessary.

+

The lammps_close() function is used to shut down an instance of LAMMPS +and free all its memory.

+

The lammps_version() function can be used to determined the specific +version of the underlying LAMMPS code. This is particularly useful +when loading LAMMPS as a shared library via dlopen(). The code using +the library interface can than use this information to adapt to +changes to the LAMMPS command syntax between versions. The returned +LAMMPS version code is an integer (e.g. 2 Sep 2015 results in +20150902) that grows with every new LAMMPS version.

+

The lammps_file(), lammps_command(), lammps_commands_list(), and +lammps_commands_string() functions are used to pass one or more +commands to LAMMPS to execute, the same as if they were coming from an +input script.

+

Via these functions, the calling code can read or generate a series of +LAMMPS commands one or multiple at a time and pass it thru the library +interface to setup a problem and then run it in stages. The caller +can interleave the command function calls with operations it performs, +calls to extract information from or set information within LAMMPS, or +calls to another code’s library.

+

The lammps_file() function passes the filename of an input script. +The lammps_command() function passes a single command as a string. +The lammps_commands_list() function passes multiple commands in a +char** list. In both lammps_command() and lammps_commands_list(), +individual commands may or may not have a trailing newline. The +lammps_commands_string() function passes multiple commands +concatenated into one long string, separated by newline characters. +In both lammps_commands_list() and lammps_commands_string(), a single +command can be spread across multiple lines, if the last printable +character of all but the last line is “&”, the same as if the lines +appeared in an input script.

+

The lammps_free() function is a clean-up function to free memory that +the library allocated previously via other function calls. See +comments in src/library.cpp file for which other functions need this +clean-up.

+

Library.cpp also contains these functions for extracting information +from LAMMPS and setting value within LAMMPS. Again, see the +documentation in the src/library.cpp file for details, including +which quantities can be queried by name:

+
+void *lammps_extract_global(void *, char *)
+void lammps_extract_box(void *, double *, double *,
+                        double *, double *, double *, int *, int *)
+void *lammps_extract_atom(void *, char *)
+void *lammps_extract_compute(void *, char *, int, int)
+void *lammps_extract_fix(void *, char *, int, int, int, int)
+void *lammps_extract_variable(void *, char *, char *)
+
+void lammps_reset_box(void *, double *, double *, double, double, double)
+int lammps_set_variable(void *, char *, char *)
+
+double lammps_get_thermo(void *, char *)
+int lammps_get_natoms(void *)
+void lammps_gather_atoms(void *, double *)
+void lammps_scatter_atoms(void *, double *)
+
+void lammps_create_atoms(void *, int, tagint *, int *, double *, double *,
+                         imageint *, int)
+
+

The extract functions return a pointer to various global or per-atom +quantities stored in LAMMPS or to values calculated by a compute, fix, +or variable. The pointer returned by the extract_global() function +can be used as a permanent reference to a value which may change. For +the extract_atom() method, see the extract() method in the +src/atom.cpp file for a list of valid per-atom properties. New names +could easily be added if the property you want is not listed. For the +other extract functions, the underlying storage may be reallocated as +LAMMPS runs, so you need to re-call the function to assure a current +pointer or returned value(s).

+

The lammps_reset_box() function resets the size and shape of the +simulation box, e.g. as part of restoring a previously extracted and +saved state of a simulation.

+

The lammps_set_variable() function can set an existing string-style +variable to a new string value, so that subsequent LAMMPS commands can +access the variable.

+

The lammps_get_thermo() function returns the current value of a thermo +keyword as a double precision value.

+

The lammps_get_natoms() function returns the total number of atoms in +the system and can be used by the caller to allocate space for the +lammps_gather_atoms() and lammps_scatter_atoms() functions. The +gather function collects peratom info of the requested type (atom +coords, types, forces, etc) from all processors, orders them by atom +ID, and returns a full list to each calling processor. The scatter +function does the inverse. It distributes the same peratom values, +passed by the caller, to each atom owned by individual processors. +Both methods are thus a means to extract or assign (overwrite) any +peratom quantities within LAMMPS. See the extract() method in the +src/atom.cpp file for a list of valid per-atom properties. New names +could easily be added if the property you want is not listed. +A special treatment is applied for accessing image flags via the +“image” property. Image flags are stored in a packed format with all +three image flags stored in a single integer. When signaling to access +the image flags as 3 individual values per atom instead of 1, the data +is transparently packed or unpacked by the library interface.

+

The lammps_create_atoms() function takes a list of N atoms as input +with atom types and coords (required), an optionally atom IDs and +velocities and image flags. It uses the coords of each atom to assign +it as a new atom to the processor that owns it. This function is +useful to add atoms to a simulation or (in tandem with +lammps_reset_box()) to restore a previously extracted and saved state +of a simulation. Additional properties for the new atoms can then be +assigned via the lammps_scatter_atoms() or lammps_extract_atom() +functions.

+

The examples/COUPLE and python directories have example C++ and C and +Python codes which show how a driver code can link to LAMMPS as a +library, run LAMMPS on a subset of processors, grab data from LAMMPS, +change it, and put it back into LAMMPS.

+
+

Note

+

You can write code for additional functions as needed to define +how your code talks to LAMMPS and add them to src/library.cpp and +src/library.h, as well as to the Python interface. The added functions can access or +change any LAMMPS data you wish.

+
+
+
+
+

6.20. Calculating thermal conductivity

+

The thermal conductivity kappa of a material can be measured in at +least 4 ways using various options in LAMMPS. See the examples/KAPPA +directory for scripts that implement the 4 methods discussed here for +a simple Lennard-Jones fluid model. Also, see this section of the manual for an analogous +discussion for viscosity.

+

The thermal conductivity tensor kappa is a measure of the propensity +of a material to transmit heat energy in a diffusive manner as given +by Fourier’s law

+

J = -kappa grad(T)

+

where J is the heat flux in units of energy per area per time and +grad(T) is the spatial gradient of temperature. The thermal +conductivity thus has units of energy per distance per time per degree +K and is often approximated as an isotropic quantity, i.e. as a +scalar.

+

The first method is to setup two thermostatted regions at opposite +ends of a simulation box, or one in the middle and one at the end of a +periodic box. By holding the two regions at different temperatures +with a thermostatting fix, the energy +added to the hot region should equal the energy subtracted from the +cold region and be proportional to the heat flux moving between the +regions. See the papers by Ikeshoji and Hafskjold +and Wirnsberger et al for details of this idea. +Note that thermostatting fixes such as fix nvt, fix langevin, and fix temp/rescale store the cumulative energy they +add/subtract.

+

Alternatively, as a second method, the fix heat or +fix ehex commands can be used in place of thermostats +on each of two regions to add/subtract specified amounts of energy to +both regions. In both cases, the resulting temperatures of the two +regions can be monitored with the “compute temp/region” command and +the temperature profile of the intermediate region can be monitored +with the fix ave/chunk and compute ke/atom commands.

+

The third method is to perform a reverse non-equilibrium MD simulation +using the fix thermal/conductivity +command which implements the rNEMD algorithm of Muller-Plathe. +Kinetic energy is swapped between atoms in two different layers of the +simulation box. This induces a temperature gradient between the two +layers which can be monitored with the fix ave/chunk and compute ke/atom commands. The fix tallies the +cumulative energy transfer that it performs. See the fix thermal/conductivity command for +details.

+

The fourth method is based on the Green-Kubo (GK) formula which +relates the ensemble average of the auto-correlation of the heat flux +to kappa. The heat flux can be calculated from the fluctuations of +per-atom potential and kinetic energies and per-atom stress tensor in +a steady-state equilibrated simulation. This is in contrast to the +two preceding non-equilibrium methods, where energy flows continuously +between hot and cold regions of the simulation box.

+

The compute heat/flux command can calculate +the needed heat flux and describes how to implement the Green_Kubo +formalism using additional LAMMPS commands, such as the fix ave/correlate command to calculate the needed +auto-correlation. See the doc page for the compute heat/flux command for an example input script +that calculates the thermal conductivity of solid Ar via the GK +formalism.

+
+
+
+

6.21. Calculating viscosity

+

The shear viscosity eta of a fluid can be measured in at least 5 ways +using various options in LAMMPS. See the examples/VISCOSITY directory +for scripts that implement the 5 methods discussed here for a simple +Lennard-Jones fluid model. Also, see this section of the manual for an analogous +discussion for thermal conductivity.

+

Eta is a measure of the propensity of a fluid to transmit momentum in +a direction perpendicular to the direction of velocity or momentum +flow. Alternatively it is the resistance the fluid has to being +sheared. It is given by

+

J = -eta grad(Vstream)

+

where J is the momentum flux in units of momentum per area per time. +and grad(Vstream) is the spatial gradient of the velocity of the fluid +moving in another direction, normal to the area through which the +momentum flows. Viscosity thus has units of pressure-time.

+

The first method is to perform a non-equilibrium MD (NEMD) simulation +by shearing the simulation box via the fix deform +command, and using the fix nvt/sllod command to +thermostat the fluid via the SLLOD equations of motion. +Alternatively, as a second method, one or more moving walls can be +used to shear the fluid in between them, again with some kind of +thermostat that modifies only the thermal (non-shearing) components of +velocity to prevent the fluid from heating up.

+

In both cases, the velocity profile setup in the fluid by this +procedure can be monitored by the fix ave/chunk command, which determines +grad(Vstream) in the equation above. E.g. the derivative in the +y-direction of the Vx component of fluid motion or grad(Vstream) = +dVx/dy. The Pxy off-diagonal component of the pressure or stress +tensor, as calculated by the compute pressure +command, can also be monitored, which is the J term in the equation +above. See this section of the manual +for details on NEMD simulations.

+

The third method is to perform a reverse non-equilibrium MD simulation +using the fix viscosity command which implements +the rNEMD algorithm of Muller-Plathe. Momentum in one dimension is +swapped between atoms in two different layers of the simulation box in +a different dimension. This induces a velocity gradient which can be +monitored with the fix ave/chunk command. +The fix tallies the cumulative momentum transfer that it performs. +See the fix viscosity command for details.

+

The fourth method is based on the Green-Kubo (GK) formula which +relates the ensemble average of the auto-correlation of the +stress/pressure tensor to eta. This can be done in a fully +equilibrated simulation which is in contrast to the two preceding +non-equilibrium methods, where momentum flows continuously through the +simulation box.

+

Here is an example input script that calculates the viscosity of +liquid Ar via the GK formalism:

+
+# Sample LAMMPS input script for viscosity of liquid Ar
+
+units       real
+variable    T equal 86.4956
+variable    V equal vol
+variable    dt equal 4.0
+variable    p equal 400     # correlation length
+variable    s equal 5       # sample interval
+variable    d equal $p*$s   # dump interval
+
+# convert from LAMMPS real units to SI
+
+variable    kB equal 1.3806504e-23    # [J/K/** Boltzmann
+variable    atm2Pa equal 101325.0
+variable    A2m equal 1.0e-10
+variable    fs2s equal 1.0e-15
+variable    convert equal ${atm2Pa}*${atm2Pa}*${fs2s}*${A2m}*${A2m}*${A2m}
+
+# setup problem
+
+dimension    3
+boundary     p p p
+lattice      fcc 5.376 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
+region       box block 0 4 0 4 0 4
+create_box   1 box
+create_atoms 1 box
+mass         1 39.948
+pair_style   lj/cut 13.0
+pair_coeff   * * 0.2381 3.405
+timestep     ${dt}
+thermo       $d
+
+# equilibration and thermalization
+
+velocity     all create $T 102486 mom yes rot yes dist gaussian
+fix          NVT all nvt temp $T $T 10 drag 0.2
+run          8000
+
+# viscosity calculation, switch to NVE if desired
+
+#unfix       NVT
+#fix         NVE all nve
+
+reset_timestep 0
+variable     pxy equal pxy
+variable     pxz equal pxz
+variable     pyz equal pyz
+fix          SS all ave/correlate $s $p $d &
+             v_pxy v_pxz v_pyz type auto file S0St.dat ave running
+variable     scale equal ${convert}/(${kB}*$T)*$V*$s*${dt}
+variable     v11 equal trap(f_SS[3])*${scale}
+variable     v22 equal trap(f_SS[4])*${scale}
+variable     v33 equal trap(f_SS[5])*${scale}
+thermo_style custom step temp press v_pxy v_pxz v_pyz v_v11 v_v22 v_v33
+run          100000
+variable     v equal (v_v11+v_v22+v_v33)/3.0
+variable     ndens equal count(all)/vol
+print        "average viscosity: $v [Pa.s] @ $T K, ${ndens} /A^3"
+
+

The fifth method is related to the above Green-Kubo method, +but uses the Einstein formulation, analogous to the Einstein +mean-square-displacement formulation for self-diffusivity. The +time-integrated momentum fluxes play the role of Cartesian +coordinates, whose mean-square displacement increases linearly +with time at sufficiently long times.

+
+
+
+

6.22. Calculating a diffusion coefficient

+

The diffusion coefficient D of a material can be measured in at least +2 ways using various options in LAMMPS. See the examples/DIFFUSE +directory for scripts that implement the 2 methods discussed here for +a simple Lennard-Jones fluid model.

+

The first method is to measure the mean-squared displacement (MSD) of +the system, via the compute msd command. The slope +of the MSD versus time is proportional to the diffusion coefficient. +The instantaneous MSD values can be accumulated in a vector via the +fix vector command, and a line fit to the vector to +compute its slope via the variable slope function, and +thus extract D.

+

The second method is to measure the velocity auto-correlation function +(VACF) of the system, via the compute vacf +command. The time-integral of the VACF is proportional to the +diffusion coefficient. The instantaneous VACF values can be +accumulated in a vector via the fix vector command, +and time integrated via the variable trap function, +and thus extract D.

+
+
+
+

6.23. Using chunks to calculate system properties

+

In LAMMS, “chunks” are collections of atoms, as defined by the +compute chunk/atom command, which assigns +each atom to a chunk ID (or to no chunk at all). The number of chunks +and the assignment of chunk IDs to atoms can be static or change over +time. Examples of “chunks” are molecules or spatial bins or atoms +with similar values (e.g. coordination number or potential energy).

+

The per-atom chunk IDs can be used as input to two other kinds of +commands, to calculate various properties of a system:

+ +

Here, each of the 3 kinds of chunk-related commands is briefly +overviewed. Then some examples are given of how to compute different +properties with chunk commands.

+
+

6.23.1. Compute chunk/atom command:

+

This compute can assign atoms to chunks of various styles. Only atoms +in the specified group and optional specified region are assigned to a +chunk. Here are some possible chunk definitions:

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
atoms in same moleculechunk ID = molecule ID
atoms of same atom typechunk ID = atom type
all atoms with same atom property (charge, radius, etc)chunk ID = output of compute property/atom
atoms in same clusterchunk ID = output of compute cluster/atom command
atoms in same spatial binchunk ID = bin ID
atoms in same rigid bodychunk ID = molecule ID used to define rigid bodies
atoms with similar potential energychunk ID = output of compute pe/atom
atoms with same local defect structurechunk ID = output of compute centro/atom or compute coord/atom command
+

Note that chunk IDs are integer values, so for atom properties or +computes that produce a floating point value, they will be truncated +to an integer. You could also use the compute in a variable that +scales the floating point value to spread it across multiple integers.

+

Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins = +pencils, 3d bins = boxes, spherical bins, cylindrical bins.

+

This compute also calculates the number of chunks Nchunk, which is +used by other commands to tally per-chunk data. Nchunk can be a +static value or change over time (e.g. the number of clusters). The +chunk ID for an individual atom can also be static (e.g. a molecule +ID), or dynamic (e.g. what spatial bin an atom is in as it moves).

+

Note that this compute allows the per-atom output of other +computes, fixes, and +variables to be used to define chunk IDs for each +atom. This means you can write your own compute or fix to output a +per-atom quantity to use as chunk ID. See +Section 10 of the documentation for how to +do this. You can also define a per-atom variable in +the input script that uses a formula to generate a chunk ID for each +atom.

+
+
+

6.23.2. Fix ave/chunk command:

+

This fix takes the ID of a compute chunk/atom command as input. For each chunk, +it then sums one or more specified per-atom values over the atoms in +each chunk. The per-atom values can be any atom property, such as +velocity, force, charge, potential energy, kinetic energy, stress, +etc. Additional keywords are defined for per-chunk properties like +density and temperature. More generally any per-atom value generated +by other computes, fixes, and per-atom variables, can be summed over atoms in each chunk.

+

Similar to other averaging fixes, this fix allows the summed per-chunk +values to be time-averaged in various ways, and output to a file. The +fix produces a global array as output with one row of values per +chunk.

+
+
+

6.23.3. Compute */chunk commands:

+

Currently the following computes operate on chunks of atoms to produce +per-chunk values.

+ +

They each take the ID of a compute chunk/atom command as input. As their names +indicate, they calculate the center-of-mass, radius of gyration, +moments of inertia, mean-squared displacement, temperature, torque, +and velocity of center-of-mass for each chunk of atoms. The compute property/chunk command can tally the +count of atoms in each chunk and extract other per-chunk properties.

+

The reason these various calculations are not part of the fix ave/chunk command, is that each requires a more +complicated operation than simply summing and averaging over per-atom +values in each chunk. For example, many of them require calculation +of a center of mass, which requires summing mass*position over the +atoms and then dividing by summed mass.

+

All of these computes produce a global vector or global array as +output, wih one or more values per chunk. They can be used +in various ways:

+
    +
  • As input to the fix ave/time command, which can +write the values to a file and optionally time average them.
  • +
  • As input to the fix ave/histo command to +histogram values across chunks. E.g. a histogram of cluster sizes or +molecule diffusion rates.
  • +
  • As input to special functions of equal-style variables, like sum() and max(). E.g. to find the +largest cluster or fastest diffusing molecule.
  • +
+
+
+

6.23.4. Example calculations with chunks

+

Here are examples using chunk commands to calculate various +properties:

+
    +
  1. Average velocity in each of 1000 2d spatial bins:
  2. +
+
compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.01 units reduced
+fix 1 all ave/chunk 100 10 1000 cc1 vx vy file tmp.out
+
+
+

(2) Temperature in each spatial bin, after subtracting a flow +velocity:

+
compute cc1 all chunk/atom bin/2d x 0.0 0.1 y lower 0.1 units reduced
+compute vbias all temp/profile 1 0 0 y 10
+fix 1 all ave/chunk 100 10 1000 cc1 temp bias vbias file tmp.out
+
+
+
    +
  1. Center of mass of each molecule:
  2. +
+
+compute cc1 all chunk/atom molecule
+compute myChunk all com/chunk cc1
+fix 1 all ave/time 100 1 100 c_myChunk[*] file tmp.out mode vector
+
+
    +
  1. Total force on each molecule and ave/max across all molecules:
  2. +
+
compute cc1 all chunk/atom molecule
+fix 1 all ave/chunk 1000 1 1000 cc1 fx fy fz file tmp.out
+variable xave equal ave(f_1[2])
+variable xmax equal max(f_1[2])
+thermo 1000
+thermo_style custom step temp v_xave v_xmax
+
+
+
    +
  1. Histogram of cluster sizes:
  2. +
+
compute cluster all cluster/atom 1.0
+compute cc1 all chunk/atom c_cluster compress yes
+compute size all property/chunk cc1 count
+fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo
+
+
+
+
+
+
+

6.24. Setting parameters for the kspace_style pppm/disp command

+

The PPPM method computes interactions by splitting the pair potential +into two parts, one of which is computed in a normal pairwise fashion, +the so-called real-space part, and one of which is computed using the +Fourier transform, the so called reciprocal-space or kspace part. For +both parts, the potential is not computed exactly but is approximated. +Thus, there is an error in both parts of the computation, the +real-space and the kspace error. The just mentioned facts are true +both for the PPPM for Coulomb as well as dispersion interactions. The +deciding difference - and also the reason why the parameters for +pppm/disp have to be selected with more care - is the impact of the +errors on the results: The kspace error of the PPPM for Coulomb and +dispersion interaction and the real-space error of the PPPM for +Coulomb interaction have the character of noise. In contrast, the +real-space error of the PPPM for dispersion has a clear physical +interpretation: the underprediction of cohesion. As a consequence, the +real-space error has a much stronger effect than the kspace error on +simulation results for pppm/disp. Parameters must thus be chosen in a +way that this error is much smaller than the kspace error.

+

When using pppm/disp and not making any specifications on the PPPM +parameters via the kspace modify command, parameters will be tuned +such that the real-space error and the kspace error are equal. This +will result in simulations that are either inaccurate or slow, both of +which is not desirable. For selecting parameters for the pppm/disp +that provide fast and accurate simulations, there are two approaches, +which both have their up- and downsides.

+

The first approach is to set desired real-space an kspace accuracies +via the kspace_modify force/disp/real and kspace_modify +force/disp/kspace commands. Note that the accuracies have to be +specified in force units and are thus dependent on the chosen unit +settings. For real units, 0.0001 and 0.002 seem to provide reasonable +accurate and efficient computations for the real-space and kspace +accuracies. 0.002 and 0.05 work well for most systems using lj +units. PPPM parameters will be generated based on the desired +accuracies. The upside of this approach is that it usually provides a +good set of parameters and will work for both the kspace_modify diff +ad and kspace_modify diff ik options. The downside of the method +is that setting the PPPM parameters will take some time during the +initialization of the simulation.

+

The second approach is to set the parameters for the pppm/disp +explicitly using the kspace_modify mesh/disp, kspace_modify +order/disp, and kspace_modify gewald/disp commands. This approach +requires a more experienced user who understands well the impact of +the choice of parameters on the simulation accuracy and +performance. This approach provides a fast initialization of the +simulation. However, it is sensitive to errors: A combination of +parameters that will perform well for one system might result in +far-from-optimal conditions for other simulations. For example, +parameters that provide accurate and fast computations for +all-atomistic force fields can provide insufficient accuracy or +united-atomistic force fields (which is related to that the latter +typically have larger dispersion coefficients).

+

To avoid inaccurate or inefficient simulations, the pppm/disp stops +simulations with an error message if no action is taken to control the +PPPM parameters. If the automatic parameter generation is desired and +real-space and kspace accuracies are desired to be equal, this error +message can be suppressed using the kspace_modify disp/auto yes +command.

+

A reasonable approach that combines the upsides of both methods is to +make the first run using the kspace_modify force/disp/real and +kspace_modify force/disp/kspace commands, write down the PPPM +parameters from the outut, and specify these parameters using the +second approach in subsequent runs (which have the same composition, +force field, and approximately the same volume).

+

Concerning the performance of the pppm/disp there are two more things +to consider. The first is that when using the pppm/disp, the cutoff +parameter does no longer affect the accuracy of the simulation +(subject to that gewald/disp is adjusted when changing the cutoff). +The performance can thus be increased by examining different values +for the cutoff parameter. A lower bound for the cutoff is only set by +the truncation error of the repulsive term of pair potentials.

+

The second is that the mixing rule of the pair style has an impact on +the computation time when using the pppm/disp. Fastest computations +are achieved when using the geometric mixing rule. Using the +arithmetic mixing rule substantially increases the computational cost. +The computational overhead can be reduced using the kspace_modify +mix/disp geom and kspace_modify splittol commands. The first +command simply enforces geometric mixing of the dispersion +coefficients in kspace computations. This introduces some error in +the computations but will also significantly speed-up the +simulations. The second keyword sets the accuracy with which the +dispersion coefficients are approximated using a matrix factorization +approach. This may result in better accuracy then using the first +command, but will usually also not provide an equally good increase of +efficiency.

+

Finally, pppm/disp can also be used when no mixing rules apply. +This can be achieved using the kspace_modify mix/disp none command. +Note that the code does not check automatically whether any mixing +rule is fulfilled. If mixing rules do not apply, the user will have +to specify this command explicitly.

+
+
+
+

6.25. Polarizable models

+

In polarizable force fields the charge distributions in molecules and +materials respond to their electrostatic environments. Polarizable +systems can be simulated in LAMMPS using three methods:

+
    +
  • the fluctuating charge method, implemented in the QEQ +package,
  • +
  • the adiabatic core-shell method, implemented in the +CORESHELL package,
  • +
  • the thermalized Drude dipole method, implemented in the +USER-DRUDE package.
  • +
+

The fluctuating charge method calculates instantaneous charges on +interacting atoms based on the electronegativity equalization +principle. It is implemented in the fix qeq which is +available in several variants. It is a relatively efficient technique +since no additional particles are introduced. This method allows for +charge transfer between molecules or atom groups. However, because the +charges are located at the interaction sites, off-plane components of +polarization cannot be represented in planar molecules or atom groups.

+

The two other methods share the same basic idea: polarizable atoms are +split into one core atom and one satellite particle (called shell or +Drude particle) attached to it by a harmonic spring. Both atoms bear +a charge and they represent collectively an induced electric dipole. +These techniques are computationally more expensive than the QEq +method because of additional particles and bonds. These two +charge-on-spring methods differ in certain features, with the +core-shell model being normally used for ionic/crystalline materials, +whereas the so-called Drude model is normally used for molecular +systems and fluid states.

+

The core-shell model is applicable to crystalline materials where the +high symmetry around each site leads to stable trajectories of the +core-shell pairs. However, bonded atoms in molecules can be so close +that a core would interact too strongly or even capture the Drude +particle of a neighbor. The Drude dipole model is relatively more +complex in order to remediate this and other issues. Specifically, the +Drude model includes specific thermostating of the core-Drude pairs +and short-range damping of the induced dipoles.

+

The three polarization methods can be implemented through a +self-consistent calculation of charges or induced dipoles at each +timestep. In the fluctuating charge scheme this is done by the matrix +inversion method in fix qeq/point, but for core-shell +or Drude-dipoles the relaxed-dipoles technique would require an slow +iterative procedure. These self-consistent solutions yield accurate +trajectories since the additional degrees of freedom representing +polarization are massless. An alternative is to attribute a mass to +the additional degrees of freedom and perform time integration using +an extended Lagrangian technique. For the fluctuating charge scheme +this is done by fix qeq/dynamic, and for the +charge-on-spring models by the methods outlined in the next two +sections. The assignment of masses to the additional degrees of +freedom can lead to unphysical trajectories if care is not exerted in +choosing the parameters of the polarizable models and the simulation +conditions.

+

In the core-shell model the vibration of the shells is kept faster +than the ionic vibrations to mimic the fast response of the +polarizable electrons. But in molecular systems thermalizing the +core-Drude pairs at temperatures comparable to the rest of the +simulation leads to several problems (kinetic energy transfer, too +short a timestep, etc.) In order to avoid these problems the relative +motion of the Drude particles with respect to their cores is kept +“cold” so the vibration of the core-Drude pairs is very slow, +approaching the self-consistent regime. In both models the +temperature is regulated using the velocities of the center of mass of +core+shell (or Drude) pairs, but in the Drude model the actual +relative core-Drude particle motion is thermostated separately as +well.

+
+
+
+

6.26. Adiabatic core/shell model

+

The adiabatic core-shell model by Mitchell and Fincham is a simple method for adding +polarizability to a system. In order to mimic the electron shell of +an ion, a satellite particle is attached to it. This way the ions are +split into a core and a shell where the latter is meant to react to +the electrostatic environment inducing polarizability.

+

Technically, shells are attached to the cores by a spring force f = +k*r where k is a parametrized spring constant and r is the distance +between the core and the shell. The charges of the core and the shell +add up to the ion charge, thus q(ion) = q(core) + q(shell). This +setup introduces the ion polarizability (alpha) given by +alpha = q(shell)^2 / k. In a +similar fashion the mass of the ion is distributed on the core and the +shell with the core having the larger mass.

+

To run this model in LAMMPS, atom_style full can +be used since atom charge and bonds are needed. Each kind of +core/shell pair requires two atom types and a bond type. The core and +shell of a core/shell pair should be bonded to each other with a +harmonic bond that provides the spring force. For example, a data file +for NaCl, as found in examples/coreshell, has this format:

+
432   atoms  # core and shell atoms
+216   bonds  # number of core/shell springs
+
+4     atom types  # 2 cores and 2 shells for Na and Cl
+2     bond types
+
+0.0 24.09597 xlo xhi
+0.0 24.09597 ylo yhi
+0.0 24.09597 zlo zhi
+
+Masses       # core/shell mass ratio = 0.1
+
+1 20.690784  # Na core
+2 31.90500   # Cl core
+3 2.298976   # Na shell
+4 3.54500    # Cl shell
+
+Atoms
+
+1    1    2   1.5005    0.00000000   0.00000000   0.00000000 # core of core/shell pair 1
+2    1    4  -2.5005    0.00000000   0.00000000   0.00000000 # shell of core/shell pair 1
+3    2    1   1.5056    4.01599500   4.01599500   4.01599500 # core of core/shell pair 2
+4    2    3  -0.5056    4.01599500   4.01599500   4.01599500 # shell of core/shell pair 2
+(...)
+
+Bonds   # Bond topology for spring forces
+
+1     2     1     2   # spring for core/shell pair 1
+2     2     3     4   # spring for core/shell pair 2
+(...)
+
+
+

Non-Coulombic (e.g. Lennard-Jones) pairwise interactions are only +defined between the shells. Coulombic interactions are defined +between all cores and shells. If desired, additional bonds can be +specified between cores.

+

The special_bonds command should be used to +turn-off the Coulombic interaction within core/shell pairs, since that +interaction is set by the bond spring. This is done using the +special_bonds command with a 1-2 weight = 0.0, +which is the default value. It needs to be considered whether one has +to adjust the special_bonds weighting according +to the molecular topology since the interactions of the shells are +bypassed over an extra bond.

+

Note that this core/shell implementation does not require all ions to +be polarized. One can mix core/shell pairs and ions without a +satellite particle if desired.

+

Since the core/shell model permits distances of r = 0.0 between the +core and shell, a pair style with a “cs” suffix needs to be used to +implement a valid long-range Coulombic correction. Several such pair +styles are provided in the CORESHELL package. See this doc page for details. All of the core/shell enabled pair +styles require the use of a long-range Coulombic solver, as specified +by the kspace_style command. Either the PPPM or +Ewald solvers can be used.

+

For the NaCL example problem, these pair style and bond style settings +are used:

+
+pair_style      born/coul/long/cs 20.0 20.0
+pair_coeff      * *      0.0 1.000   0.00  0.00   0.00
+pair_coeff      3 3    487.0 0.23768 0.00  1.05   0.50 #Na-Na
+pair_coeff      3 4 145134.0 0.23768 0.00  6.99   8.70 #Na-Cl
+pair_coeff      4 4 405774.0 0.23768 0.00 72.40 145.40 #Cl-Cl
+
+bond_style      harmonic
+bond_coeff      1 63.014 0.0
+bond_coeff      2 25.724 0.0
+
+

When running dynamics with the adiabatic core/shell model, the +following issues should be considered. The relative motion of +the core and shell particles corresponds to the polarization, +hereby an instantaneous relaxation of the shells is approximated +and a fast core/shell spring frequency ensures a nearly constant +internal kinetic energy during the simulation. +Thermostats can alter this polarization behaviour, by scaling the +internal kinetic energy, meaning the shell will not react freely to +its electrostatic environment. +Therefore it is typically desirable to decouple the relative motion of +the core/shell pair, which is an imaginary degree of freedom, from the +real physical system. To do that, the compute temp/cs command can be used, in conjunction with +any of the thermostat fixes, such as fix nvt or fix langevin. This compute uses the center-of-mass velocity +of the core/shell pairs to calculate a temperature, and insures that +velocity is what is rescaled for thermostatting purposes. This +compute also works for a system with both core/shell pairs and +non-polarized ions (ions without an attached satellite particle). The +compute temp/cs command requires input of two +groups, one for the core atoms, another for the shell atoms. +Non-polarized ions which might also be included in the treated system +should not be included into either of these groups, they are taken +into account by the group-ID (2nd argument) of the compute. The +groups can be defined using the group *type* command. +Note that to perform thermostatting using this definition of +temperature, the fix modify temp command should be +used to assign the compute to the thermostat fix. Likewise the +thermo_modify temp command can be used to make +this temperature be output for the overall system.

+

For the NaCl example, this can be done as follows:

+
group cores type 1 2
+group shells type 3 4
+compute CSequ all temp/cs cores shells
+fix thermoberendsen all temp/berendsen 1427 1427 0.4    # thermostat for the true physical system
+fix thermostatequ all nve                               # integrator as needed for the berendsen thermostat
+fix_modify thermoberendsen temp CSequ
+thermo_modify temp CSequ                                # output of center-of-mass derived temperature
+
+
+

The pressure for the core/shell system is computed via the regular +LAMMPS convention by treating the cores and shells as individual particles. For the thermo output of the pressure +as well as for the application of a barostat, it is necessary to +use an additional pressure compute based on the +default temperature and specifying it as a second +argument in fix modify and +thermo_modify resulting in:

+
(...)
+compute CSequ all temp/cs cores shells
+compute thermo_press_lmp all pressure thermo_temp       # pressure for individual particles
+thermo_modify temp CSequ press thermo_press_lmp         # modify thermo to regular pressure
+fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4
+fix_modify press_bar temp CSequ press thermo_press_lmp  # pressure modification for correct kinetic scalar
+
+
+

If compute temp/cs is used, the decoupled +relative motion of the core and the shell should in theory be +stable. However numerical fluctuation can introduce a small +momentum to the system, which is noticable over long trajectories. +Therefore it is recommendable to use the fix momentum command in combination with compute temp/cs when equilibrating the system to +prevent any drift.

+

When initializing the velocities of a system with core/shell pairs, it +is also desirable to not introduce energy into the relative motion of +the core/shell particles, but only assign a center-of-mass velocity to +the pairs. This can be done by using the bias keyword of the +velocity create command and assigning the compute temp/cs command to the temp keyword of the +velocity command, e.g.

+
velocity all create 1427 134 bias yes temp CSequ
+velocity all scale 1427 temp CSequ
+
+
+

To maintain the correct polarizability of the core/shell pairs, the +kinetic energy of the internal motion shall remain nearly constant. +Therefore the choice of spring force and mass ratio need to ensure +much faster relative motion of the 2 atoms within the core/shell pair +than their center-of-mass velocity. This allows the shells to +effectively react instantaneously to the electrostatic environment and +limits energy transfer to or from the core/shell oscillators. +This fast movement also dictates the timestep that can be used.

+

The primary literature of the adiabatic core/shell model suggests that +the fast relative motion of the core/shell pairs only allows negligible +energy transfer to the environment. +The mentioned energy transfer will typically lead to a small drift +in total energy over time. This internal energy can be monitored +using the compute chunk/atom and compute temp/chunk commands. The internal kinetic +energies of each core/shell pair can then be summed using the sum() +special function of the variable command. Or they can +be time/averaged and output using the fix ave/time +command. To use these commands, each core/shell pair must be defined +as a “chunk”. If each core/shell pair is defined as its own molecule, +the molecule ID can be used to define the chunks. If cores are bonded +to each other to form larger molecules, the chunks can be identified +by the fix property/atom via assigning a +core/shell ID to each atom using a special field in the data file read +by the read_data command. This field can then be +accessed by the compute property/atom +command, to use as input to the compute chunk/atom command to define the core/shell +pairs as chunks.

+

For example if core/shell pairs are the only molecules:

+
read_data NaCl_CS_x0.1_prop.data
+compute prop all property/atom molecule
+compute cs_chunk all chunk/atom c_prop
+compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0     # note the chosen degrees of freedom for the core/shell pairs
+fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector
+
+
+

For example if core/shell pairs and other molecules are present:

+
fix csinfo all property/atom i_CSID                       # property/atom command
+read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info  # atom property added in the data-file
+compute prop all property/atom i_CSID
+(...)
+
+
+

The additional section in the date file would be formatted like this:

+
CS-Info         # header of additional section
+
+1   1           # column 1 = atom ID, column 2 = core/shell ID
+2   1
+3   2
+4   2
+5   3
+6   3
+7   4
+8   4
+(...)
+
+
+
+
+
+

6.27. Drude induced dipoles

+

The thermalized Drude model, similarly to the core-shell +model, represents induced dipoles by a pair of charges (the core atom +and the Drude particle) connected by a harmonic spring. The Drude +model has a number of features aimed at its use in molecular systems +(Lamoureux and Roux):

+
    +
  • Thermostating of the additional degrees of freedom associated with the +induced dipoles at very low temperature, in terms of the reduced +coordinates of the Drude particles with respect to their cores. This +makes the trajectory close to that of relaxed induced dipoles.
  • +
  • Consistent definition of 1-2 to 1-4 neighbors. A core-Drude particle +pair represents a single (polarizable) atom, so the special screening +factors in a covalent structure should be the same for the core and +the Drude particle. Drude particles have to inherit the 1-2, 1-3, 1-4 +special neighbor relations from their respective cores.
  • +
  • Stabilization of the interactions between induced dipoles. Drude +dipoles on covalently bonded atoms interact too strongly due to the +short distances, so an atom may capture the Drude particle of a +neighbor, or the induced dipoles within the same molecule may align +too much. To avoid this, damping at short range can be done by Thole +functions (for which there are physical grounds). This Thole damping +is applied to the point charges composing the induced dipole (the +charge of the Drude particle and the opposite charge on the core, not +to the total charge of the core atom).
  • +
+

A detailed tutorial covering the usage of Drude induced dipoles in +LAMMPS is available here.

+

As with the core-shell model, the cores and Drude particles should +appear in the data file as standard atoms. The same holds for the +springs between them, which are described by standard harmonic bonds. +The nature of the atoms (core, Drude particle or non-polarizable) is +specified via the fix drude command. The special +list of neighbors is automatically refactored to account for the +equivalence of core and Drude particles as regards special 1-2 to 1-4 +screening. It may be necessary to use the extra/special/per/atom +keyword of the read_data command. If using fix shake, make sure no Drude particle is in this fix +group.

+

There are two ways to thermostat the Drude particles at a low +temperature: use either fix langevin/drude +for a Langevin thermostat, or fix drude/transform/* for a Nose-Hoover +thermostat. The former requires use of the command comm_modify vel yes. The latter requires two separate integration +fixes like nvt or npt. The correct temperatures of the reduced +degrees of freedom can be calculated using the compute temp/drude. This requires also to use the +command comm_modify vel yes.

+

Short-range damping of the induced dipole interactions can be achieved +using Thole functions through the pair style thole in pair_style hybrid/overlay +with a Coulomb pair style. It may be useful to use coul/long/cs or +similar from the CORESHELL package if the core and Drude particle come +too close, which can cause numerical issues.

+

(Berendsen) Berendsen, Grigera, Straatsma, J Phys Chem, 91, +6269-6271 (1987).

+

(Cornell) Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, +Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).

+

(Horn) Horn, Swope, Pitera, Madura, Dick, Hura, and Head-Gordon, +J Chem Phys, 120, 9665 (2004).

+

(Ikeshoji) Ikeshoji and Hafskjold, Molecular Physics, 81, 251-261 +(1994).

+

(Wirnsberger) Wirnsberger, Frenkel, and Dellago, J Chem Phys, 143, 124104 +(2015).

+

(MacKerell) MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, +Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).

+

(Mayo) Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909 +(1990).

+

(Jorgensen) Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem +Phys, 79, 926 (1983).

+

(Price) Price and Brooks, J Chem Phys, 121, 10096 (2004).

+

(Shinoda) Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).

+

(Mitchell and Fincham) Mitchell, Fincham, J Phys Condensed Matter, +5, 1031-1038 (1993).

+

(Fincham) Fincham, Mackrodt and Mitchell, J Phys Condensed Matter, +6, 393-404 (1994).

+

(Lamoureux and Roux) G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003)

+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_intro.html lammps-17Jan18/doc/html/Section_intro.html --- lammps-23Oct17/doc/html/Section_intro.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_intro.html 2018-01-17 12:46:20.673442343 -0700 @@ -0,0 +1,708 @@ + + + + + + + + + + + 1. Introduction — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

1. Introduction

+

This section provides an overview of what LAMMPS can and can’t do, +describes what it means for LAMMPS to be an open-source code, and +acknowledges the funding and people who have contributed to LAMMPS +over the years.

+ +
+

1.1. What is LAMMPS

+

LAMMPS is a classical molecular dynamics code that models an ensemble +of particles in a liquid, solid, or gaseous state. It can model +atomic, polymeric, biological, metallic, granular, and coarse-grained +systems using a variety of force fields and boundary conditions.

+

For examples of LAMMPS simulations, see the Publications page of the +LAMMPS WWW Site.

+

LAMMPS runs efficiently on single-processor desktop or laptop +machines, but is designed for parallel computers. It will run on any +parallel machine that compiles C++ and supports the MPI +message-passing library. This includes distributed- or shared-memory +parallel machines and Beowulf-style clusters.

+

LAMMPS can model systems with only a few particles up to millions or +billions. See Section 8 for information on +LAMMPS performance and scalability, or the Benchmarks section of the +LAMMPS WWW Site.

+

LAMMPS is a freely-available open-source code, distributed under the +terms of the GNU Public License, which means you can use or +modify the code however you wish. See this section for a +brief discussion of the open-source philosophy.

+

LAMMPS is designed to be easy to modify or extend with new +capabilities, such as new force fields, atom types, boundary +conditions, or diagnostics. See Section 10 +for more details.

+

The current version of LAMMPS is written in C++. Earlier versions +were written in F77 and F90. See +Section 13 for more information on +different versions. All versions can be downloaded from the LAMMPS WWW Site.

+

LAMMPS was originally developed under a US Department of Energy CRADA +(Cooperative Research and Development Agreement) between two DOE labs +and 3 companies. It is distributed by Sandia National Labs. +See this section for more information on LAMMPS funding and +individuals who have contributed to LAMMPS.

+

In the most general sense, LAMMPS integrates Newton’s equations of +motion for collections of atoms, molecules, or macroscopic particles +that interact via short- or long-range forces with a variety of +initial and/or boundary conditions. For computational efficiency +LAMMPS uses neighbor lists to keep track of nearby particles. The +lists are optimized for systems with particles that are repulsive at +short distances, so that the local density of particles never becomes +too large. On parallel machines, LAMMPS uses spatial-decomposition +techniques to partition the simulation domain into small 3d +sub-domains, one of which is assigned to each processor. Processors +communicate and store “ghost” atom information for atoms that border +their sub-domain. LAMMPS is most efficient (in a parallel sense) for +systems whose particles fill a 3d rectangular box with roughly uniform +density. Papers with technical details of the algorithms used in +LAMMPS are listed in this section.

+
+
+
+

1.2. LAMMPS features

+

This section highlights LAMMPS features, with pointers to specific +commands which give more details. If LAMMPS doesn’t have your +favorite interatomic potential, boundary condition, or atom type, see +Section 10, which describes how you can add +it to LAMMPS.

+
+

1.2.1. General features

+
    +
  • runs on a single processor or in parallel
  • +
  • distributed-memory message-passing parallelism (MPI)
  • +
  • spatial-decomposition of simulation domain for parallelism
  • +
  • open-source distribution
  • +
  • highly portable C++
  • +
  • optional libraries used: MPI and single-processor FFT
  • +
  • GPU (CUDA and OpenCL), Intel(R) Xeon Phi(TM) coprocessors, and OpenMP support for many code features
  • +
  • easy to extend with new features and functionality
  • +
  • runs from an input script
  • +
  • syntax for defining and using variables and formulas
  • +
  • syntax for looping over runs and breaking out of loops
  • +
  • run one or multiple simulations simultaneously (in parallel) from one script
  • +
  • build as library, invoke LAMMPS thru library interface or provided Python wrapper
  • +
  • couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both
  • +
+
+
+

1.2.2. Particle and model types

+

(atom style command)

+
    +
  • atoms
  • +
  • coarse-grained particles (e.g. bead-spring polymers)
  • +
  • united-atom polymers or organic molecules
  • +
  • all-atom polymers, organic molecules, proteins, DNA
  • +
  • metals
  • +
  • granular materials
  • +
  • coarse-grained mesoscale models
  • +
  • finite-size spherical and ellipsoidal particles
  • +
  • finite-size line segment (2d) and triangle (3d) particles
  • +
  • point dipole particles
  • +
  • rigid collections of particles
  • +
  • hybrid combinations of these
  • +
+
+
+

1.2.3. Force fields

+

(pair style, bond style, +angle style, dihedral style, +improper style, kspace style +commands)

+
    +
  • pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated
  • +
  • charged pairwise potentials: Coulombic, point-dipole
  • +
  • manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic
  • +
  • long-range interactions for charge, point-dipoles, and LJ dispersion: Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
  • +
  • polarization models: QEq, core/shell model, Drude dipole model
  • +
  • charge equilibration (QEq via dynamic, point, shielded, Slater methods)
  • +
  • coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO
  • +
  • mesoscopic potentials: granular, Peridynamics, SPH
  • +
  • electron force field (eFF, AWPMD)
  • +
  • bond potentials: harmonic, FENE, Morse, nonlinear, class 2, quartic (breakable)
  • +
  • angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, class 2 (COMPASS)
  • +
  • dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, class 2 (COMPASS), OPLS
  • +
  • improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS)
  • +
  • polymer potentials: all-atom, united-atom, bead-spring, breakable
  • +
  • water potentials: TIP3P, TIP4P, SPC
  • +
  • implicit solvent potentials: hydrodynamic lubrication, Debye
  • +
  • force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
  • +
  • access to KIM archive of potentials via pair kim
  • +
  • hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
  • +
  • overlaid potentials: superposition of multiple pair potentials
  • +
+
+
+

1.2.4. Atom creation

+

(read_data, lattice, +create_atoms, delete_atoms, +displace_atoms, replicate commands)

+
    +
  • read in atom coords from files
  • +
  • create atoms on one or more lattices (e.g. grain boundaries)
  • +
  • delete geometric or logical groups of atoms (e.g. voids)
  • +
  • replicate existing atoms multiple times
  • +
  • displace atoms
  • +
+
+
+

1.2.5. Ensembles, constraints, and boundary conditions

+

(fix command)

+
    +
  • 2d or 3d systems
  • +
  • orthogonal or non-orthogonal (triclinic symmetry) simulation domains
  • +
  • constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators
  • +
  • thermostatting options for groups and geometric regions of atoms
  • +
  • pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions
  • +
  • simulation box deformation (tensile and shear)
  • +
  • harmonic (umbrella) constraint forces
  • +
  • rigid body constraints
  • +
  • SHAKE bond and angle constraints
  • +
  • Monte Carlo bond breaking, formation, swapping
  • +
  • atom/molecule insertion and deletion
  • +
  • walls of various kinds
  • +
  • non-equilibrium molecular dynamics (NEMD)
  • +
  • variety of additional boundary conditions and constraints
  • +
+
+
+

1.2.6. Integrators

+

(run, run_style, minimize commands)

+
    +
  • velocity-Verlet integrator
  • +
  • Brownian dynamics
  • +
  • rigid body integration
  • +
  • energy minimization via conjugate gradient or steepest descent relaxation
  • +
  • rRESPA hierarchical timestepping
  • +
  • rerun command for post-processing of dump files
  • +
+
+
+

1.2.7. Diagnostics

+
    +
  • see the various flavors of the fix and compute commands
  • +
+
+
+

1.2.8. Output

+

(dump, restart commands)

+
    +
  • log file of thermodynamic info
  • +
  • text dump files of atom coords, velocities, other per-atom quantities
  • +
  • binary restart files
  • +
  • parallel I/O of dump and restart files
  • +
  • per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc)
  • +
  • user-defined system-wide (log file) or per-atom (dump file) calculations
  • +
  • spatial and time averaging of per-atom quantities
  • +
  • time averaging of system-wide quantities
  • +
  • atom snapshots in native, XYZ, XTC, DCD, CFG formats
  • +
+
+ +
+

1.2.10. Pre- and post-processing

+
    +
  • Various pre- and post-processing serial tools are packaged +with LAMMPS; see these doc pages.
  • +
  • Our group has also written and released a separate toolkit called +Pizza.py which provides tools for doing setup, analysis, +plotting, and visualization for LAMMPS simulations. Pizza.py is +written in Python and is available for download from the Pizza.py WWW site.
  • +
+
+
+

1.2.11. Specialized features

+

LAMMPS can be built with optional packages which implement a variety +of additional capabilities. An overview of all the packages is given here.

+

These are some LAMMPS capabilities which you may not think of as +typical classical molecular dynamics options:

+ +
+
+
+
+

1.3. LAMMPS non-features

+

LAMMPS is designed to efficiently compute Newton’s equations of motion +for a system of interacting particles. Many of the tools needed to +pre- and post-process the data for such simulations are not included +in the LAMMPS kernel for several reasons:

+
    +
  • the desire to keep LAMMPS simple
  • +
  • they are not parallel operations
  • +
  • other codes already do them
  • +
  • limited development resources
  • +
+

Specifically, LAMMPS itself does not:

+
    +
  • run thru a GUI
  • +
  • build molecular systems
  • +
  • assign force-field coefficients automagically
  • +
  • perform sophisticated analyses of your MD simulation
  • +
  • visualize your MD simulation
  • +
  • plot your output data
  • +
+

A few tools for pre- and post-processing tasks are provided as part of +the LAMMPS package; they are described in this section. However, many people use other codes or +write their own tools for these tasks.

+

As noted above, our group has also written and released a separate +toolkit called Pizza.py which addresses some of the listed +bullets. It provides tools for doing setup, analysis, plotting, and +visualization for LAMMPS simulations. Pizza.py is written in +Python and is available for download from the Pizza.py WWW site.

+

LAMMPS requires as input a list of initial atom coordinates and types, +molecular topology information, and force-field coefficients assigned +to all atoms and bonds. LAMMPS will not build molecular systems and +assign force-field parameters for you.

+

For atomic systems LAMMPS provides a create_atoms +command which places atoms on solid-state lattices (fcc, bcc, +user-defined, etc). Assigning small numbers of force field +coefficients can be done via the pair coeff, bond coeff, angle coeff, etc commands. +For molecular systems or more complicated simulation geometries, users +typically use another code as a builder and convert its output to +LAMMPS input format, or write their own code to generate atom +coordinate and molecular topology for LAMMPS to read in.

+

For complicated molecular systems (e.g. a protein), a multitude of +topology information and hundreds of force-field coefficients must +typically be specified. We suggest you use a program like +CHARMM or AMBER or other molecular builders to setup +such problems and dump its information to a file. You can then +reformat the file as LAMMPS input. Some of the tools in this section can assist in this process.

+

Similarly, LAMMPS creates output files in a simple format. Most users +post-process these files with their own analysis tools or re-format +them for input into other programs, including visualization packages. +If you are convinced you need to compute something on-the-fly as +LAMMPS runs, see Section 10 for a discussion +of how you can use the dump and compute and +fix commands to print out data of your choosing. Keep in +mind that complicated computations can slow down the molecular +dynamics timestepping, particularly if the computations are not +parallel, so it is often better to leave such analysis to +post-processing codes.

+

For high-quality visualization we recommend the +following packages:

+ +

Other features that LAMMPS does not yet (and may never) support are +discussed in Section 13.

+

Finally, these are freely-available molecular dynamics codes, most of +them parallel, which may be well-suited to the problems you want to +model. They can also be used in conjunction with LAMMPS to perform +complementary modeling tasks.

+ +

CHARMM, AMBER, NAMD, NWCHEM, and Tinker are designed primarily for +modeling biological molecules. CHARMM and AMBER use +atom-decomposition (replicated-data) strategies for parallelism; NAMD +and NWCHEM use spatial-decomposition approaches, similar to LAMMPS. +Tinker is a serial code. DL_POLY includes potentials for a variety of +biological and non-biological materials; both a replicated-data and +spatial-decomposition version exist.

+
+
+
+

1.4. Open source distribution

+

LAMMPS comes with no warranty of any kind. As each source file states +in its header, it is a copyrighted code that is distributed free-of- +charge, under the terms of the GNU Public License (GPL). This +is often referred to as open-source distribution - see +www.gnu.org or www.opensource.org for more +details. The legal text of the GPL is in the LICENSE file that is +included in the LAMMPS distribution.

+

Here is a summary of what the GPL means for LAMMPS users:

+

(1) Anyone is free to use, modify, or extend LAMMPS in any way they +choose, including for commercial purposes.

+

(2) If you distribute a modified version of LAMMPS, it must remain +open-source, meaning you distribute it under the terms of the GPL. +You should clearly annotate such a code as a derivative version of +LAMMPS.

+

(3) If you release any code that includes LAMMPS source code, then it +must also be open-sourced, meaning you distribute it under the terms +of the GPL.

+

(4) If you give LAMMPS files to someone else, the GPL LICENSE file and +source file headers (including the copyright and GPL notices) should +remain part of the code.

+

In the spirit of an open-source code, these are various ways you can +contribute to making LAMMPS better. You can send email to the +developers on any of these +items.

+
    +
  • Point prospective users to the LAMMPS WWW Site. Mention it in +talks or link to it from your WWW site.
  • +
  • If you find an error or omission in this manual or on the LAMMPS WWW Site, or have a suggestion for something to clarify or include, +send an email to the +developers.
  • +
  • If you find a bug, Section 12.2 +describes how to report it.
  • +
  • If you publish a paper using LAMMPS results, send the citation (and +any cool pictures or movies if you like) to add to the Publications, +Pictures, and Movies pages of the LAMMPS WWW Site, with links +and attributions back to you.
  • +
  • Create a new Makefile.machine that can be added to the src/MAKE +directory.
  • +
  • The tools sub-directory of the LAMMPS distribution has various +stand-alone codes for pre- and post-processing of LAMMPS data. More +details are given in Section 9. If you write +a new tool that users will find useful, it can be added to the LAMMPS +distribution.
  • +
  • LAMMPS is designed to be easy to extend with new code for features +like potentials, boundary conditions, diagnostic computations, etc. +This section gives details. If you add a +feature of general interest, it can be added to the LAMMPS +distribution.
  • +
  • The Benchmark page of the LAMMPS WWW Site lists LAMMPS +performance on various platforms. The files needed to run the +benchmarks are part of the LAMMPS distribution. If your machine is +sufficiently different from those listed, your timing data can be +added to the page.
  • +
  • You can send feedback for the User Comments page of the LAMMPS WWW Site. It might be added to the page. No promises.
  • +
  • Cash. Small denominations, unmarked bills preferred. Paper sack OK. +Leave on desk. VISA also accepted. Chocolate chip cookies +encouraged.
  • +
+
+
+
+

1.5. Acknowledgments and citations

+

LAMMPS development has been funded by the US Department of Energy (DOE), through its CRADA, LDRD, ASCI, and Genomes-to-Life +programs and its OASCR and OBER offices.

+

Specifically, work on the latest version was funded in part by the US +Department of Energy’s Genomics:GTL program +(www.doegenomestolife.org) under the project, “Carbon +Sequestration in Synechococcus Sp.: From Molecular Machines to +Hierarchical Modeling”.

+

The following paper describe the basic parallel algorithms used in +LAMMPS. If you use LAMMPS results in your published work, please cite +this paper and include a pointer to the LAMMPS WWW Site +(http://lammps.sandia.gov):

+

S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular +Dynamics, J Comp Phys, 117, 1-19 (1995).

+

Other papers describing specific algorithms used in LAMMPS are listed +under the Citing LAMMPS link of +the LAMMPS WWW page.

+

The Publications link on the +LAMMPS WWW page lists papers that have cited LAMMPS. If your paper is +not listed there for some reason, feel free to send us the info. If +the simulations in your paper produced cool pictures or animations, +we’ll be pleased to add them to the +Pictures or +Movies pages of the LAMMPS WWW +site.

+

The core group of LAMMPS developers is at Sandia National Labs:

+
    +
  • Steve Plimpton, sjplimp at sandia.gov
  • +
  • Aidan Thompson, athomps at sandia.gov
  • +
  • Paul Crozier, pscrozi at sandia.gov
  • +
+

The following folks are responsible for significant contributions to +the code, or other aspects of the LAMMPS development effort. Many of +the packages they have written are somewhat unique to LAMMPS and the +code would not be as general-purpose as it is without their expertise +and efforts.

+
    +
  • Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CGSDK and USER-OMP packages
  • +
  • Roy Pollock (LLNL), Ewald and PPPM solvers
  • +
  • Mike Brown (ORNL), brownw at ornl.gov, GPU package
  • +
  • Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential
  • +
  • Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics
  • +
  • Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion
  • +
  • Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling
  • +
  • Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD
  • +
  • Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA package
  • +
  • Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field
  • +
  • Christoph Kloss (JKU), Christoph.Kloss at jku.at, USER-LIGGGHTS package for granular models and granular/fluid coupling
  • +
  • Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF
  • +
  • Georg Gunzenmuller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SPH package
  • +
+

As discussed in Section 13, LAMMPS +originated as a cooperative project between DOE labs and industrial +partners. Folks involved in the design and testing of the original +version of LAMMPS were the following:

+
    +
  • John Carpenter (Mayo Clinic, formerly at Cray Research)
  • +
  • Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb)
  • +
  • Steve Lustig (Dupont)
  • +
  • Jim Belak (LLNL)
  • +
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_modify.html lammps-17Jan18/doc/html/Section_modify.html --- lammps-23Oct17/doc/html/Section_modify.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_modify.html 2018-01-17 12:46:20.674442350 -0700 @@ -0,0 +1,1327 @@ + + + + + + + + + + + 10. Modifying & extending LAMMPS — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

10. Modifying & extending LAMMPS

+

This section describes how to customize LAMMPS by modifying +and extending its source code.

+
+ + + + + +
10.6 Fix styles which include integrators, temperature and pressure control, force constraints, boundary conditions, diagnostic output, etc
+ + + + + + + + + +

+
+

LAMMPS is designed in a modular fashion so as to be easy to modify and +extend with new functionality. In fact, about 75% of its source code +is files added in this fashion.

+

In this section, changes and additions users can make are listed along +with minimal instructions. If you add a new feature to LAMMPS and +think it will be of interest to general users, we encourage you to +submit it to the developers for inclusion in the released version of +LAMMPS. Information about how to do this is provided +below.

+

The best way to add a new feature is to find a similar feature in +LAMMPS and look at the corresponding source and header files to figure +out what it does. You will need some knowledge of C++ to be able to +understand the hi-level structure of LAMMPS and its class +organization, but functions (class methods) that do actual +computations are written in vanilla C-style code and operate on simple +C-style data structures (vectors and arrays).

+

Most of the new features described in this section require you to +write a new C++ derived class (except for exceptions described below, +where you can make small edits to existing files). Creating a new +class requires 2 files, a source code file (*.cpp) and a header file +(*.h). The derived class must provide certain methods to work as a +new option. Depending on how different your new feature is compared +to existing features, you can either derive from the base class +itself, or from a derived class that already exists. Enabling LAMMPS +to invoke the new class is as simple as putting the two source +files in the src dir and re-building LAMMPS.

+

The advantage of C++ and its object-orientation is that all the code +and variables needed to define the new feature are in the 2 files you +write, and thus shouldn’t make the rest of LAMMPS more complex or +cause side-effect bugs.

+

Here is a concrete example. Suppose you write 2 files pair_foo.cpp +and pair_foo.h that define a new class PairFoo that computes pairwise +potentials described in the classic 1997 paper by Foo, et al. +If you wish to invoke those potentials in a LAMMPS input script with a +command like

+
pair_style foo 0.1 3.5
+
+
+

then your pair_foo.h file should be structured as follows:

+
#ifdef PAIR_CLASS
+PairStyle(foo,PairFoo)
+#else
+...
+(class definition for PairFoo)
+...
+#endif
+
+
+

where “foo” is the style keyword in the pair_style command, and +PairFoo is the class name defined in your pair_foo.cpp and pair_foo.h +files.

+

When you re-build LAMMPS, your new pairwise potential becomes part of +the executable and can be invoked with a pair_style command like the +example above. Arguments like 0.1 and 3.5 can be defined and +processed by your new class.

+

As illustrated by this pairwise example, many kinds of options are +referred to in the LAMMPS documentation as the “style” of a particular +command.

+

The instructions below give the header file for the base class that +these styles are derived from. Public variables in that file are ones +used and set by the derived classes which are also used by the base +class. Sometimes they are also used by the rest of LAMMPS. Virtual +functions in the base class header file which are set = 0 are ones you +must define in your new derived class to give it the functionality +LAMMPS expects. Virtual functions that are not set to 0 are functions +you can optionally define.

+

Additionally, new output options can be added directly to the +thermo.cpp, dump_custom.cpp, and variable.cpp files as explained +below.

+

Here are additional guidelines for modifying LAMMPS and adding new +functionality:

+
    +
  • Think about whether what you want to do would be better as a pre- or +post-processing step. Many computations are more easily and more +quickly done that way.
  • +
  • Don’t do anything within the timestepping of a run that isn’t +parallel. E.g. don’t accumulate a bunch of data on a single processor +and analyze it. You run the risk of seriously degrading the parallel +efficiency.
  • +
  • If your new feature reads arguments or writes output, make sure you +follow the unit conventions discussed by the units +command.
  • +
  • If you add something you think is truly useful and doesn’t impact +LAMMPS performance when it isn’t used, send an email to the +developers. We might be +interested in adding it to the LAMMPS distribution. See further +details on this at the bottom of this page.
  • +
+
+

10.1. Atom styles

+

Classes that define an atom style are derived from +the AtomVec class and managed by the Atom class. The atom style +determines what attributes are associated with an atom. A new atom +style can be created if one of the existing atom styles does not +define all the attributes you need to store and communicate with +atoms.

+

Atom_vec_atomic.cpp is a simple example of an atom style.

+

Here is a brief description of methods you define in your new derived +class. See atom_vec.h for details.

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
initone time setup (optional)
growre-allocate atom arrays to longer lengths (required)
grow_resetmake array pointers in Atom and AtomVec classes consistent (required)
copycopy info for one atom to another atom’s array locations (required)
pack_commstore an atom’s info in a buffer communicated every timestep (required)
pack_comm_veladd velocity info to communication buffer (required)
pack_comm_hybridstore extra info unique to this atom style (optional)
unpack_commretrieve an atom’s info from the buffer (required)
unpack_comm_velalso retrieve velocity info (required)
unpack_comm_hybridretrieve extra info unique to this atom style (optional)
pack_reversestore an atom’s info in a buffer communicating partial forces (required)
pack_reverse_hybridstore extra info unique to this atom style (optional)
unpack_reverseretrieve an atom’s info from the buffer (required)
unpack_reverse_hybridretrieve extra info unique to this atom style (optional)
pack_borderstore an atom’s info in a buffer communicated on neighbor re-builds (required)
pack_border_veladd velocity info to buffer (required)
pack_border_hybridstore extra info unique to this atom style (optional)
unpack_borderretrieve an atom’s info from the buffer (required)
unpack_border_velalso retrieve velocity info (required)
unpack_border_hybridretrieve extra info unique to this atom style (optional)
pack_exchangestore all an atom’s info to migrate to another processor (required)
unpack_exchangeretrieve an atom’s info from the buffer (required)
size_restartnumber of restart quantities associated with proc’s atoms (required)
pack_restartpack atom quantities into a buffer (required)
unpack_restartunpack atom quantities from a buffer (required)
create_atomcreate an individual atom of this style (required)
data_atomparse an atom line from the data file (required)
data_atom_hybridparse additional atom info unique to this atom style (optional)
data_velparse one line of velocity information from data file (optional)
data_vel_hybridparse additional velocity data unique to this atom style (optional)
memory_usagetally memory allocated by atom arrays (required)
+

The constructor of the derived class sets values for several variables +that you must set when defining a new atom style, which are documented +in atom_vec.h. New atom arrays are defined in atom.cpp. Search for +the word “customize” and you will find locations you will need to +modify.

+
+

Note

+

It is possible to add some attributes, such as a molecule ID, to +atom styles that do not have them via the fix property/atom command. This command also +allows new custom attributes consisting of extra integer or +floating-point values to be added to atoms. See the fix property/atom doc page for examples of cases +where this is useful and details on how to initialize, access, and +output the custom values.

+
+

New pair styles, fixes, or +computes can be added to LAMMPS, as discussed below. +The code for these classes can use the per-atom properties defined by +fix property/atom. The Atom class has a find_custom() method that is +useful in this context:

+
+int index = atom->find_custom(char *name, int &flag);
+
+

The “name” of a custom attribute, as specified in the fix property/atom command, is checked to verify +that it exists and its index is returned. The method also sets flag = +0/1 depending on whether it is an integer or floating-point attribute. +The vector of values associated with the attribute can then be +accessed using the returned index as

+
+int *ivector = atom->ivector[index];
+double *dvector = atom->dvector[index];
+
+

Ivector or dvector are vectors of length Nlocal = # of owned atoms, +which store the attributes of individual atoms.

+
+
+
+

10.2. Bond, angle, dihedral, improper potentials

+

Classes that compute molecular interactions are derived from the Bond, +Angle, Dihedral, and Improper classes. New styles can be created to +add new potentials to LAMMPS.

+

Bond_harmonic.cpp is the simplest example of a bond style. Ditto for +the harmonic forms of the angle, dihedral, and improper style +commands.

+

Here is a brief description of common methods you define in your +new derived class. See bond.h, angle.h, dihedral.h, and improper.h +for details and specific additional methods.

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
initcheck if all coefficients are set, calls init_style (optional)
init_stylecheck if style specific conditions are met (optional)
computecompute the molecular interactions (required)
settingsapply global settings for all types (optional)
coeffset coefficients for one type (required)
equilibrium_distancelength of bond, used by SHAKE (required, bond only)
equilibrium_angleopening of angle, used by SHAKE (required, angle only)
write & read_restartwrites/reads coeffs to restart files (required)
singleforce and energy of a single bond or angle (required, bond or angle only)
memory_usagetally memory allocated by the style (optional)
+
+
+
+

10.3. Compute styles

+

Classes that compute scalar and vector quantities like temperature +and the pressure tensor, as well as classes that compute per-atom +quantities like kinetic energy and the centro-symmetry parameter +are derived from the Compute class. New styles can be created +to add new calculations to LAMMPS.

+

Compute_temp.cpp is a simple example of computing a scalar +temperature. Compute_ke_atom.cpp is a simple example of computing +per-atom kinetic energy.

+

Here is a brief description of methods you define in your new derived +class. See compute.h for details.

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
initperform one time setup (required)
init_listneighbor list setup, if needed (optional)
compute_scalarcompute a scalar quantity (optional)
compute_vectorcompute a vector of quantities (optional)
compute_peratomcompute one or more quantities per atom (optional)
compute_localcompute one or more quantities per processor (optional)
pack_commpack a buffer with items to communicate (optional)
unpack_communpack the buffer (optional)
pack_reversepack a buffer with items to reverse communicate (optional)
unpack_reverseunpack the buffer (optional)
remove_biasremove velocity bias from one atom (optional)
remove_bias_allremove velocity bias from all atoms in group (optional)
restore_biasrestore velocity bias for one atom after remove_bias (optional)
restore_bias_allsame as before, but for all atoms in group (optional)
pair_tally_callbackcallback function for tally-style computes (optional).
memory_usagetally memory usage (optional)
+

Tally-style computes are a special case, as their computation is done +in two stages: the callback function is registered with the pair style +and then called from the Pair::ev_tally() function, which is called for +each pair after force and energy has been computed for this pair. Then +the tallied values are retrieved with the standard compute_scalar or +compute_vector or compute_peratom methods. The USER-TALLY package +provides examples_compute_tally.html for utilizing this mechanism.

+
+
+
+

10.4. Dump styles

+
+
+

10.5. Dump custom output options

+

Classes that dump per-atom info to files are derived from the Dump +class. To dump new quantities or in a new format, a new derived dump +class can be added, but it is typically simpler to modify the +DumpCustom class contained in the dump_custom.cpp file.

+

Dump_atom.cpp is a simple example of a derived dump class.

+

Here is a brief description of methods you define in your new derived +class. See dump.h for details.

+ ++++ + + + + + + + + + + + + + + +
write_headerwrite the header section of a snapshot of atoms
countcount the number of lines a processor will output
packpack a proc’s output data into a buffer
write_datawrite a proc’s data to a file
+

See the dump command and its custom style for a list of +keywords for atom information that can already be dumped by +DumpCustom. It includes options to dump per-atom info from Compute +classes, so adding a new derived Compute class is one way to calculate +new quantities to dump.

+

Alternatively, you can add new keywords to the dump custom command. +Search for the word “customize” in dump_custom.cpp to see the +half-dozen or so locations where code will need to be added.

+
+
+
+

10.6. Fix styles

+

In LAMMPS, a “fix” is any operation that is computed during +timestepping that alters some property of the system. Essentially +everything that happens during a simulation besides force computation, +neighbor list construction, and output, is a “fix”. This includes +time integration (update of coordinates and velocities), force +constraints or boundary conditions (SHAKE or walls), and diagnostics +(compute a diffusion coefficient). New styles can be created to add +new options to LAMMPS.

+

Fix_setforce.cpp is a simple example of setting forces on atoms to +prescribed values. There are dozens of fix options already in LAMMPS; +choose one as a template that is similar to what you want to +implement.

+

Here is a brief description of methods you can define in your new +derived class. See fix.h for details.

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
setmaskdetermines when the fix is called during the timestep (required)
initinitialization before a run (optional)
setup_pre_exchangecalled before atom exchange in setup (optional)
setup_pre_forcecalled before force computation in setup (optional)
setupcalled immediately before the 1st timestep and after forces are computed (optional)
min_setup_pre_forcelike setup_pre_force, but for minimizations instead of MD runs (optional)
min_setuplike setup, but for minimizations instead of MD runs (optional)
initial_integratecalled at very beginning of each timestep (optional)
pre_exchangecalled before atom exchange on re-neighboring steps (optional)
pre_neighborcalled before neighbor list build (optional)
pre_forcecalled before pair & molecular forces are computed (optional)
post_forcecalled after pair & molecular forces are computed and communicated (optional)
final_integratecalled at end of each timestep (optional)
end_of_stepcalled at very end of timestep (optional)
write_restartdumps fix info to restart file (optional)
restartuses info from restart file to re-initialize the fix (optional)
grow_arraysallocate memory for atom-based arrays used by fix (optional)
copy_arrayscopy atom info when an atom migrates to a new processor (optional)
pack_exchangestore atom’s data in a buffer (optional)
unpack_exchangeretrieve atom’s data from a buffer (optional)
pack_restartstore atom’s data for writing to restart file (optional)
unpack_restartretrieve atom’s data from a restart file buffer (optional)
size_restartsize of atom’s data (optional)
maxsize_restartmax size of atom’s data (optional)
setup_pre_force_respasame as setup_pre_force, but for rRESPA (optional)
initial_integrate_respasame as initial_integrate, but for rRESPA (optional)
post_integrate_respacalled after the first half integration step is done in rRESPA (optional)
pre_force_respasame as pre_force, but for rRESPA (optional)
post_force_respasame as post_force, but for rRESPA (optional)
final_integrate_respasame as final_integrate, but for rRESPA (optional)
min_pre_forcecalled after pair & molecular forces are computed in minimizer (optional)
min_post_forcecalled after pair & molecular forces are computed and communicated in minimizer (optional)
min_storestore extra data for linesearch based minimization on a LIFO stack (optional)
min_pushstorepush the minimization LIFO stack one element down (optional)
min_popstorepop the minimization LIFO stack one element up (optional)
min_clearstoreclear minimization LIFO stack (optional)
min_stepreset or move forward on line search minimization (optional)
min_dofreport number of degrees of freedom added by this fix in minimization (optional)
max_alphareport maximum allowed step size during linesearch minimization (optional)
pack_commpack a buffer to communicate a per-atom quantity (optional)
unpack_communpack a buffer to communicate a per-atom quantity (optional)
pack_reverse_commpack a buffer to reverse communicate a per-atom quantity (optional)
unpack_reverse_communpack a buffer to reverse communicate a per-atom quantity (optional)
dofreport number of degrees of freedom removed by this fix during MD (optional)
compute_scalarreturn a global scalar property that the fix computes (optional)
compute_vectorreturn a component of a vector property that the fix computes (optional)
compute_arrayreturn a component of an array property that the fix computes (optional)
deformcalled when the box size is changed (optional)
reset_targetcalled when a change of the target temperature is requested during a run (optional)
reset_dtis called when a change of the time step is requested during a run (optional)
modify_paramcalled when a fix_modify request is executed (optional)
memory_usagereport memory used by fix (optional)
thermocompute quantities for thermodynamic output (optional)
+

Typically, only a small fraction of these methods are defined for a +particular fix. Setmask is mandatory, as it determines when the fix +will be invoked during the timestep. Fixes that perform time +integration (nve, nvt, npt) implement initial_integrate() and +final_integrate() to perform velocity Verlet updates. Fixes that +constrain forces implement post_force().

+

Fixes that perform diagnostics typically implement end_of_step(). For +an end_of_step fix, one of your fix arguments must be the variable +“nevery” which is used to determine when to call the fix and you must +set this variable in the constructor of your fix. By convention, this +is the first argument the fix defines (after the ID, group-ID, style).

+

If the fix needs to store information for each atom that persists from +timestep to timestep, it can manage that memory and migrate the info +with the atoms as they move from processors to processor by +implementing the grow_arrays, copy_arrays, pack_exchange, and +unpack_exchange methods. Similarly, the pack_restart and +unpack_restart methods can be implemented to store information about +the fix in restart files. If you wish an integrator or force +constraint fix to work with rRESPA (see the run_style +command), the initial_integrate, post_force_integrate, and +final_integrate_respa methods can be implemented. The thermo method +enables a fix to contribute values to thermodynamic output, as printed +quantities and/or to be summed to the potential energy of the system.

+
+
+
+

10.7. Input script commands

+

New commands can be added to LAMMPS input scripts by adding new +classes that have a “command” method. For example, the create_atoms, +read_data, velocity, and run commands are all implemented in this +fashion. When such a command is encountered in the LAMMPS input +script, LAMMPS simply creates a class with the corresponding name, +invokes the “command” method of the class, and passes it the arguments +from the input script. The command method can perform whatever +operations it wishes on LAMMPS data structures.

+

The single method your new class must define is as follows:

+ ++++ + + + + + +
commandoperations performed by the new command
+

Of course, the new class can define other methods and variables as +needed.

+
+
+
+

10.8. Kspace computations

+

Classes that compute long-range Coulombic interactions via K-space +representations (Ewald, PPPM) are derived from the KSpace class. New +styles can be created to add new K-space options to LAMMPS.

+

Ewald.cpp is an example of computing K-space interactions.

+

Here is a brief description of methods you define in your new derived +class. See kspace.h for details.

+ ++++ + + + + + + + + + + + + + + +
initinitialize the calculation before a run
setupcomputation before the 1st timestep of a run
computeevery-timestep computation
memory_usagetally of memory usage
+
+
+
+

10.9. Minimization styles

+

Classes that perform energy minimization derived from the Min class. +New styles can be created to add new minimization algorithms to +LAMMPS.

+

Min_cg.cpp is an example of conjugate gradient minimization.

+

Here is a brief description of methods you define in your new derived +class. See min.h for details.

+ ++++ + + + + + + + + + + + +
initinitialize the minimization before a run
runperform the minimization
memory_usagetally of memory usage
+
+
+
+

10.10. Pairwise potentials

+

Classes that compute pairwise interactions are derived from the Pair +class. In LAMMPS, pairwise calculation include manybody potentials +such as EAM or Tersoff where particles interact without a static bond +topology. New styles can be created to add new pair potentials to +LAMMPS.

+

Pair_lj_cut.cpp is a simple example of a Pair class, though it +includes some optional methods to enable its use with rRESPA.

+

Here is a brief description of the class methods in pair.h:

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
computeworkhorse routine that computes pairwise interactions
settingsreads the input script line with arguments you define
coeffset coefficients for one i,j type pair
init_oneperform initialization for one i,j type pair
init_styleinitialization specific to this pair style
write & read_restartwrite/read i,j pair coeffs to restart files
write & read_restart_settingswrite/read global settings to restart files
singleforce and energy of a single pairwise interaction between 2 atoms
compute_inner/middle/outerversions of compute used by rRESPA
+

The inner/middle/outer routines are optional.

+
+
+
+

10.11. Region styles

+

Classes that define geometric regions are derived from the Region +class. Regions are used elsewhere in LAMMPS to group atoms, delete +atoms to create a void, insert atoms in a specified region, etc. New +styles can be created to add new region shapes to LAMMPS.

+

Region_sphere.cpp is an example of a spherical region.

+

Here is a brief description of methods you define in your new derived +class. See region.h for details.

+ ++++ + + + + + + + + + + + + + + +
insidedetermine whether a point is in the region
surface_interiordetermine if a point is within a cutoff distance inside of surc
surface_exteriordetermine if a point is within a cutoff distance outside of surf
shape_updatechange region shape if set by time-dependent variable
+
+
+
+

10.12. Body styles

+

Classes that define body particles are derived from the Body class. +Body particles can represent complex entities, such as surface meshes +of discrete points, collections of sub-particles, deformable objects, +etc.

+

See Section 6.14 of the manual for +an overview of using body particles and the body doc page +for details on the various body styles LAMMPS supports. New styles +can be created to add new kinds of body particles to LAMMPS.

+

Body_nparticle.cpp is an example of a body particle that is treated as +a rigid body containing N sub-particles.

+

Here is a brief description of methods you define in your new derived +class. See body.h for details.

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
data_bodyprocess a line from the Bodies section of a data file
noutrownumber of sub-particles output is generated for
noutcolnumber of values per-sub-particle output is generated for
outputoutput values for the Mth sub-particle
pack_comm_bodybody attributes to communicate every timestep
unpack_comm_bodyunpacking of those attributes
pack_border_bodybody attributes to communicate when reneighboring is done
unpack_border_bodyunpacking of those attributes
+
+
+
+

10.13. Thermodynamic output options

+

There is one class that computes and prints thermodynamic information +to the screen and log file; see the file thermo.cpp.

+

There are two styles defined in thermo.cpp: “one” and “multi”. There +is also a flexible “custom” style which allows the user to explicitly +list keywords for quantities to print when thermodynamic info is +output. See the thermo_style command for a list +of defined quantities.

+

The thermo styles (one, multi, etc) are simply lists of keywords. +Adding a new style thus only requires defining a new list of keywords. +Search for the word “customize” with references to “thermo style” in +thermo.cpp to see the two locations where code will need to be added.

+

New keywords can also be added to thermo.cpp to compute new quantities +for output. Search for the word “customize” with references to +“keyword” in thermo.cpp to see the several locations where code will +need to be added.

+

Note that the thermo_style custom command already allows +for thermo output of quantities calculated by fixes, +computes, and variables. Thus, it may +be simpler to compute what you wish via one of those constructs, than +by adding a new keyword to the thermo command.

+
+
+
+

10.14. Variable options

+

There is one class that computes and stores variable +information in LAMMPS; see the file variable.cpp. The value +associated with a variable can be periodically printed to the screen +via the print, fix print, or +thermo_style custom commands. Variables of style +“equal” can compute complex equations that involve the following types +of arguments:

+
thermo keywords = ke, vol, atoms, ...
+other variables = v_a, v_myvar, ...
+math functions = div(x,y), mult(x,y), add(x,y), ...
+group functions = mass(group), xcm(group,x), ...
+atom values = x[123], y[3], vx[34], ...
+compute values = c_mytemp[0], c_thermo_press[3], ...
+
+
+

Adding keywords for the thermo_style custom command +(which can then be accessed by variables) was discussed +here on this page.

+

Adding a new math function of one or two arguments can be done by +editing one section of the Variable::evaluate() method. Search for +the word “customize” to find the appropriate location.

+

Adding a new group function can be done by editing one section of the +Variable::evaluate() method. Search for the word “customize” to find +the appropriate location. You may need to add a new method to the +Group class as well (see the group.cpp file).

+

Accessing a new atom-based vector can be done by editing one section +of the Variable::evaluate() method. Search for the word “customize” +to find the appropriate location.

+

Adding new compute styles (whose calculated values can +then be accessed by variables) was discussed +here on this page.

+
+
+

10.15. Submitting new features for inclusion in LAMMPS

+

We encourage users to submit new features or modifications for +LAMMPS to the core developers +so they can be added to the LAMMPS distribution. The preferred way to +manage and coordinate this is as of Fall 2016 via the LAMMPS project on +GitHub. An alternative is to contact +the LAMMPS developers or the indicated developer of a package or feature +directly and send in your contribution via e-mail.

+

For any larger modifications or programming project, you are encouraged +to contact the LAMMPS developers ahead of time, in order to discuss +implementation strategies and coding guidelines, that will make it +easier to integrate your contribution and result in less work for +everybody involved. You are also encouraged to search through the list +of open issues on GitHub and +submit a new issue for a planned feature, so you would not duplicate +the work of others (and possibly get scooped by them) or have your work +duplicated by others.

+

How quickly your contribution will be integrated +depends largely on how much effort it will cause to integrate and test +it, how much it requires changes to the core codebase, and of how much +interest it is to the larger LAMMPS community. Please see below for a +checklist of typical requirements. Once you have prepared everything, +see this tutorial for instructions on how to +submit your changes or new files through a GitHub pull request. If you +prefer to submit patches or full files, you should first make certain, +that your code works correctly with the latest patch-level version of +LAMMPS and contains all bugfixes from it. Then create a gzipped tar +file of all changed or added files or a corresponding patch file using +‘diff -u’ or ‘diff -c’ and compress it with gzip. Please only use +gzip compression, as this works well on all platforms.

+

If the new features/files are broadly useful we may add them as core +files to LAMMPS or as part of a standard package. Else we will add them as a +user-contributed file or package. Examples of user packages are in +src sub-directories that start with USER. The USER-MISC package is +simply a collection of (mostly) unrelated single files, which is the +simplest way to have your contribution quickly added to the LAMMPS +distribution. You can see a list of the both standard and user +packages by typing “make package” in the LAMMPS src directory.

+

Note that by providing us files to release, you are agreeing to make +them open-source, i.e. we can release them under the terms of the GPL, +used as a license for the rest of LAMMPS. See Section 1.4 for details.

+

With user packages and files, all we are really providing (aside from +the fame and fortune that accompanies having your name in the source +code and on the Authors page +of the LAMMPS WWW site), is a means for you to distribute your +work to the LAMMPS user community, and a mechanism for others to +easily try out your new feature. This may help you find bugs or make +contact with new collaborators. Note that you’re also implicitly +agreeing to support your code which means answer questions, fix bugs, +and maintain it if LAMMPS changes in some way that breaks it (an +unusual event).

+
+

Note

+

If you prefer to actively develop and support your add-on +feature yourself, then you may wish to make it available for download +from your own website, as a user package that LAMMPS users can add to +their copy of LAMMPS. See the Offsite LAMMPS packages and tools page of the LAMMPS web +site for examples of groups that do this. We are happy to advertise +your package and web site from that page. Simply email the +developers with info about +your package and we will post it there.

+
+

The previous sections of this doc page describe how to add new “style” +files of various kinds to LAMMPS. Packages are simply collections of +one or more new class files which are invoked as a new style within a +LAMMPS input script. If designed correctly, these additions typically +do not require changes to the main core of LAMMPS; they are simply +add-on files. If you think your new feature requires non-trivial +changes in core LAMMPS files, you’ll need to communicate with the developers, since we may or may +not want to make those changes. An example of a trivial change is +making a parent-class method “virtual” when you derive a new child +class from it.

+

Here is a checklist of steps you need to follow to submit a single file +or user package for our consideration. Following these steps will save +both you and us time. See existing files in packages in the src dir for +examples. If you are uncertain, please ask.

+
    +
  • All source files you provide must compile with the most current +version of LAMMPS with multiple configurations. In particular you +need to test compiling LAMMPS from scratch with -DLAMMPS_BIGBIG +set in addition to the default -DLAMMPS_SMALLBIG setting. Your code +will need to work correctly in serial and in parallel using MPI.
  • +
  • For consistency with the rest of LAMMPS and especially, if you want +your contribution(s) to be added to main LAMMPS code or one of its +standard packages, it needs to be written in a style compatible with +other LAMMPS source files. This means: 2-character indentation per +level, no tabs, no lines over 80 characters. I/O is done via +the C-style stdio library, class header files should not import any +system headers outside <stdio.h>, STL containers should be avoided +in headers, and forward declarations used where possible or needed. +All added code should be placed into the LAMMPS_NS namespace or a +sub-namespace; global or static variables should be avoided, as they +conflict with the modular nature of LAMMPS and the C++ class structure. +Header files must not import namespaces with using. +This all is so the developers can more easily understand, integrate, +and maintain your contribution and reduce conflicts with other parts +of LAMMPS. This basically means that the code accesses data +structures, performs its operations, and is formatted similar to other +LAMMPS source files, including the use of the error class for error +and warning messages.
  • +
  • If you want your contribution to be added as a user-contributed +feature, and it’s a single file (actually a *.cpp and *.h file) it can +rapidly be added to the USER-MISC directory. Send us the one-line +entry to add to the USER-MISC/README file in that dir, along with the +2 source files. You can do this multiple times if you wish to +contribute several individual features.
  • +
  • If you want your contribution to be added as a user-contribution and +it is several related features, it is probably best to make it a user +package directory with a name like USER-FOO. In addition to your new +files, the directory should contain a README text file. The README +should contain your name and contact information and a brief +description of what your new package does. If your files depend on +other LAMMPS style files also being installed (e.g. because your file +is a derived class from the other LAMMPS class), then an Install.sh +file is also needed to check for those dependencies. See other README +and Install.sh files in other USER directories as examples. Send us a +tarball of this USER-FOO directory.
  • +
  • Your new source files need to have the LAMMPS copyright, GPL notice, +and your name and email address at the top, like other +user-contributed LAMMPS source files. They need to create a class +that is inside the LAMMPS namespace. If the file is for one of the +USER packages, including USER-MISC, then we are not as picky about the +coding style (see above). I.e. the files do not need to be in the +same stylistic format and syntax as other LAMMPS files, though that +would be nice for developers as well as users who try to read your +code.
  • +
  • You must also create a documentation file for each new command or +style you are adding to LAMMPS. For simplicity and convenience, the +documentation of groups of closely related commands or styles may be +combined into a single file. This will be one file for a single-file +feature. For a package, it might be several files. These are simple +text files with a specific markup language, that are then auto-converted +to HTML and PDF. The tools for this conversion are included in the +source distribution, and the translation can be as simple as doing +“make html pdf” in the doc folder. +Thus the documentation source files must be in the same format and +style as other *.txt files in the lammps/doc/src directory for similar +commands and styles; use one or more of them as a starting point. +A description of the markup can also be found in +lammps/doc/utils/txt2html/README.html +As appropriate, the text files can include links to equations +(see doc/Eqs/*.tex for examples, we auto-create the associated JPG +files), or figures (see doc/JPG for examples), or even additional PDF +files with further details (see doc/PDF for examples). The doc page +should also include literature citations as appropriate; see the +bottom of doc/fix_nh.txt for examples and the earlier part of the same +file for how to format the cite itself. The “Restrictions” section of +the doc page should indicate that your command is only available if +LAMMPS is built with the appropriate USER-MISC or USER-FOO package. +See other user package doc files for examples of how to do this. The +prerequisite for building the HTML format files are Python 3.x and +virtualenv, the requirement for generating the PDF format manual +is the htmldoc software. Please run at least +“make html” and carefully inspect and proofread the resulting HTML format +doc page before submitting your code.
  • +
  • For a new package (or even a single command) you should include one or +more example scripts demonstrating its use. These should run in no +more than a couple minutes, even on a single processor, and not require +large data files as input. See directories under examples/USER for +examples of input scripts other users provided for their packages. +These example inputs are also required for validating memory accesses +and testing for memory leaks with valgrind
  • +
  • If there is a paper of yours describing your feature (either the +algorithm/science behind the feature itself, or its initial usage, or +its implementation in LAMMPS), you can add the citation to the *.cpp +source file. See src/USER-EFF/atom_vec_electron.cpp for an example. +A LaTeX citation is stored in a variable at the top of the file and a +single line of code that references the variable is added to the +constructor of the class. Whenever a user invokes your feature from +their input script, this will cause LAMMPS to output the citation to a +log.cite file and prompt the user to examine the file. Note that you +should only use this for a paper you or your group authored. +E.g. adding a cite in the code for a paper by Nose and Hoover if you +write a fix that implements their integrator is not the intended +usage. That kind of citation should just be in the doc page you +provide.
  • +
+

Finally, as a general rule-of-thumb, the more clear and +self-explanatory you make your documentation and README files, and the +easier you make it for people to get started, e.g. by providing example +scripts, the more likely it is that users will try out your new feature.

+

(Foo) Foo, Morefoo, and Maxfoo, J of Classic Potentials, 75, 345 (1997).

+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Naur lammps-23Oct17/doc/html/Section_packages.html lammps-17Jan18/doc/html/Section_packages.html --- lammps-23Oct17/doc/html/Section_packages.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-17Jan18/doc/html/Section_packages.html 2018-01-17 12:46:20.671442330 -0700 @@ -0,0 +1,3365 @@ + + + + + + + + + + + 4. Packages — LAMMPS documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+
+
LAMMPS 17 Jan 2018
+ +
+ + + +
+
+
+ +
+

4. Packages

+

This section gives an overview of the optional packages that extend +LAMMPS functionality with instructions on how to build LAMMPS with +each of them. Packages are groups of files that enable a specific set +of features. For example, force fields for molecular systems or +granular systems are in packages. You can see the list of all +packages and “make” commands to manage them by typing “make package” +from within the src directory of the LAMMPS distribution. Section 2.3 gives general info on how to install +and un-install packages as part of the LAMMPS build process.

+

There are two kinds of packages in LAMMPS, standard and user packages:

+ +

Either of these kinds of packages may work as is, may require some +additional code compiled located in the lib folder, or may require +an external library to be downloaded, compiled, installed, and LAMMPS +configured to know about its location and additional compiler flags. +You can often do the build of the internal or external libraries +in one step by typing “make lib-name args=’…’” from the src dir, +with appropriate arguments included in args=’…’. If you just type +“make lib-name” you should see a help message about supported flags +and some examples. For more details about this, please study the +tables below and the sections about the individual packages.

+

Standard packages are supported by the LAMMPS developers and are +written in a syntax and style consistent with the rest of LAMMPS. +This means the developers will answer questions about them, debug and +fix them if necessary, and keep them compatible with future changes to +LAMMPS.

+

User packages have been contributed by users, and begin with the +“user” prefix. If they are a single command (single file), they are +typically in the user-misc package. User packages don’t necessarily +meet the requirements of the standard packages. This means the +developers will try to keep things working and usually can answer +technical questions about compiling the package. If you have problems +using a feature provided in a user package, you may need to contact +the contributor directly to get help. Information on how to submit +additions you make to LAMMPS as single files or as a standard or user +package are given in this section of the +manual.

+

Following the next two tables is a sub-section for each package. It +lists authors (if applicable) and summarizes the package contents. It +has specific instructions on how to install the package, including (if +necessary) downloading or building any extra library it requires. It +also gives links to documentation, example scripts, and +pictures/movies (if available) that illustrate use of the package.

+
+

Note

+

To see the complete list of commands a package adds to LAMMPS, +just look at the files in its src directory, e.g. “ls src/GRANULAR”. +Files with names that start with fix, compute, atom, pair, bond, +angle, etc correspond to commands with the same style names.

+
+

In these two tables, the “Example” column is a sub-directory in the +examples directory of the distribution which has an input script that +uses the package. E.g. “peptide” refers to the examples/peptide +directory; USER/atc refers to the examples/USER/atc directory. The +“Library” column indicates whether an extra library is needed to build +and use the package:

+
    +
  • dash = no library
  • +
  • sys = system library: you likely have it on your machine
  • +
  • int = internal library: provided with LAMMPS, but you may need to build it
  • +
  • ext = external library: you will need to download and install it on your machine
  • +
+

Standard packages

+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PackageDescriptionDoc pageExampleLibrary
ASPHEREaspherical particle modelsSection 6.6.14ellipse
    +
  • +
+
BODYbody-style particlesbodybody
    +
  • +
+
CLASS2class 2 force fieldspair_style lj/class2
    +
  • +
+
    +
  • +
+
COLLOIDcolloidal particlesatom_style colloidcolloid
    +
  • +
+
COMPRESSI/O compressiondump */gz
    +
  • +
+
sys
CORESHELLadiabatic core/shell modelSection 6.6.25coreshell
    +
  • +
+
DIPOLEpoint dipole particlespair_style dipole/cutdipole
    +
  • +
+
GPUGPU-enabled stylesSection 5.3.1Benchmarksint
GRANULARgranular systemsSection 6.6.6pour
    +
  • +
+
KIMOpenKIM wrapperpair_style kimkimext
KOKKOSKokkos-enabled stylesSection 5.3.3Benchmarks
    +
  • +
+
KSPACElong-range Coulombic solverskspace_stylepeptide
    +
  • +
+
LATTEquantum DFTB forces via LATTEfix lattelatteext
MANYBODYmany-body potentialspair_style tersoffshear
    +
  • +
+
MCMonte Carlo optionsfix gcmc
    +
  • +
+
    +
  • +
+
MEAMmodified EAM potentialpair_style meammeamint
MISCmiscellanous single-file commands
    +
  • +
+
    +
  • +
+
    +
  • +
+
MOLECULEmolecular system force fieldsSection 6.6.3peptide
    +
  • +
+
MPIIOMPI parallel I/O dump and restartdump
    +
  • +
+
    +
  • +
+
MSCGmulti-scale coarse-graining wrapperfix mscgmscgext
OPToptimized pair stylesSection 5.3.5Benchmarks
    +
  • +
+
PERIPeridynamics modelspair_style periperi
    +
  • +
+
POEMScoupled rigid body motionfix poemsrigidint
PYTHONembed Python code in an input scriptpythonpythonsys
QEQQEq charge equilibrationfix qeqqeq
    +
  • +
+
REAXReaxFF potential (Fortran)pair_style reaxreaxint
REPLICAmulti-replica methodsSection 6.6.5tad
    +
  • +
+
RIGIDrigid bodies and constraintsfix rigidrigid
    +
  • +
+
SHOCKshock loading methodsfix msst
    +
  • +
+
    +
  • +
+
SNAPquantum-fitted potentialpair_style snapsnap
    +
  • +
+
SRDstochastic rotation dynamicsfix srdsrd
    +
  • +
+
VORONOIVoronoi tesselationcompute voronoi/atom
    +
  • +
+
ext
+

USER packages

+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PackageDescriptionDoc pageExampleLibrary
USER-ATCatom-to-continuum couplingfix atcUSER/atcint
USER-AWPMDwave-packet MDpair_style awpmd/cutUSER/awpmdint
USER-CGDNAcoarse-grained DNA force fieldssrc/USER-CGDNA/READMEUSER/cgdna
    +
  • +
+
USER-CGSDKSDK coarse-graining modelpair_style lj/sdkUSER/cgsdk
    +
  • +
+
USER-COLVARScollective variables libraryfix colvarsUSER/colvarsint
USER-DIFFRACTIONvirtual x-ray and electron diffractioncompute xrdUSER/diffraction
    +
  • +
+
USER-DPDreactive dissipative particle dynamicssrc/USER-DPD/READMEUSER/dpd
    +
  • +
+
USER-DRUDEDrude oscillatorstutorialUSER/drude
    +
  • +
+
USER-EFFelectron force fieldpair_style eff/cutUSER/eff
    +
  • +
+
USER-FEPfree energy perturbationcompute fepUSER/fep
    +
  • +
+
USER-H5MDdump output via HDF5dump h5md
    +
  • +
+
ext
USER-INTELoptimized Intel CPU and KNL stylesSection 5.3.2Benchmarks
    +
  • +
+
USER-LBLattice Boltzmann fluidfix lb/fluidUSER/lb
    +
  • +
+
USER-MANIFOLDmotion on 2d surfacesfix manifoldforceUSER/manifold
    +
  • +
+
USER-MEAMCmodified EAM potential (C++)pair_style meam/cmeam
    +
  • +
+
USER-MESOmesoscale DPD modelspair_style edpdUSER/meso
    +
  • +
+
USER-MGPTfast MGPT multi-ion potentialspair_style mgptUSER/mgpt
    +
  • +
+
USER-MISCsingle-file contributionsUSER-MISC/READMEUSER/misc
    +
  • +
+
USER-MOLFILEVMD molfile plug-insdump molfile
    +
  • +
+
ext
USER-NETCDFdump output via NetCDFdump netcdf
    +
  • +
+
ext
USER-OMPOpenMP-enabled stylesSection 5.3.4Benchmarks
    +
  • +
+
USER-PHONONphonon dynamical matrixfix phononUSER/phonon
    +
  • +
+
USER-QMMMQM/MM couplingfix qmmmUSER/qmmmext
USER-QTBquantum nuclear effectsfix qtb fix qbmsstqtb
    +
  • +
+
USER-QUIPQUIP/libatoms interfacepair_style quipUSER/quipext
USER-REAXCReaxFF potential (C/C++)pair_style reaxcreax
    +
  • +
+
USER-SMDsmoothed Mach dynamicsSMD User GuideUSER/smdext
USER-SMTBQsecond moment tight binding QEq potentialpair_style smtbqUSER/smtbq
    +
  • +
+
USER-SPHsmoothed particle hydrodynamicsSPH User GuideUSER/sph
    +
  • +
+
USER-TALLYpairwise tally computescompute XXX/tallyUSER/tally
    +
  • +
+
USER-UEFextensional flowfix nvt/uefUSER/uef
    +
  • +
+
USER-VTKdump output via VTKcompute vtk
    +
  • +
+
ext
+
+

4.1. ASPHERE package

+

Contents:

+

Computes, time-integration fixes, and pair styles for aspherical +particle models including ellipsoids, 2d lines, and 3d triangles.

+

Install or un-install:

+
make yes-asphere
+make machine
+
+make no-asphere
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.2. BODY package

+

Contents:

+

Body-style particles with internal structure. Computes, +time-integration fixes, pair styles, as well as the body styles +themselves. See the body doc page for an overview.

+

Install or un-install:

+
make yes-body
+make machine
+
+make no-body
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.3. CLASS2 package

+

Contents:

+

Bond, angle, dihedral, improper, and pair styles for the COMPASS +CLASS2 molecular force field.

+

Install or un-install:

+
make yes-class2
+make machine
+
+make no-class2
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.4. COLLOID package

+

Contents:

+

Coarse-grained finite-size colloidal particles. Pair styles and fix +wall styles for colloidal interactions. Includes the Fast Lubrication +Dynamics (FLD) method for hydrodynamic interactions, which is a +simplified approximation to Stokesian dynamics.

+

Authors: This package includes Fast Lubrication Dynamics pair styles +which were created by Amit Kumar and Michael Bybee from Jonathan +Higdon’s group at UIUC.

+

Install or un-install:

+
make yes-colloid
+make machine
+
+make no-colloid
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.5. COMPRESS package

+

Contents:

+

Compressed output of dump files via the zlib compression library, +using dump styles with a “gz” in their style name.

+

To use this package you must have the zlib compression library +available on your system.

+

Author: Axel Kohlmeyer (Temple U).

+

Install or un-install:

+

Note that building with this package assumes you have the zlib +compression library available on your system. The LAMMPS build uses +the settings in the lib/compress/Makefile.lammps file in the +compile/link process. You should only need to edit this file if the +LAMMPS build fails on your system.

+
make yes-compress
+make machine
+
+make no-compress
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.6. CORESHELL package

+

Contents:

+

Compute and pair styles that implement the adiabatic core/shell model +for polarizability. The pair styles augment Born, Buckingham, and +Lennard-Jones styles with core/shell capabilities. The compute temp/cs command calculates the temperature of a +system with core/shell particles. See Section 6.26 for an overview of how to use this +package.

+

Author: Hendrik Heenen (Technical U of Munich).

+

Install or un-install:

+
make yes-coreshell
+make machine
+
+make no-coreshell
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.7. DIPOLE package

+

Contents:

+

An atom style and several pair styles for point dipole models with +short-range or long-range interactions.

+

Install or un-install:

+
make yes-dipole
+make machine
+
+make no-dipole
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.8. GPU package

+

Contents:

+

Dozens of pair styles and a version of the PPPM long-range Coulombic +solver optimized for GPUs. All such styles have a “gpu” as a +suffix in their style name. The GPU code can be compiled with either +CUDA or OpenCL, however the OpenCL variants are no longer actively +maintained and only the CUDA versions are regularly tested. +Section 5.3.1 gives details of what +hardware and GPU software is required on your system, +and details on how to build and use this package. Its styles can be +invoked at run time via the “-sf gpu” or “-suffix gpu” command-line switches. See also the KOKKOS +package, which has GPU-enabled styles.

+

Authors: Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen +(Northwestern U) while at ORNL.

+

Install or un-install:

+

Before building LAMMPS with this package, you must first build the GPU +library in lib/gpu from a set of provided C and CUDA files. You can +do this manually if you prefer; follow the instructions in +lib/gpu/README. Please note, that the GPU library uses MPI calls, so +you have to make certain to use the same MPI library (or the STUBS +library) settings as the main LAMMPS code. That same applies to the +-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.

+

You can also do it in one step from the lammps/src +dir, using a command like these, which simply invoke the +lib/gpu/Install.py script with the specified args:

+
make lib-gpu               # print help message
+make lib-gpu args="-b"     # build GPU library with default Makefile.linux
+make lib-gpu args="-m xk7 -p single -o xk7.single"  # create new Makefile.xk7.single, altered for single-precision
+make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi
+
+
+

Note that this procedure through the ‘-m machine’ flag starts with one of +the existing Makefile.machine files in lib/gpu. For your convenience, +machine makefiles for “mpi” and “serial” are provided, which have the +same settings as the corresponding machine makefiles in the main LAMMPS +source folder. In addition you can alter 4 important settings in that +Makefile, via the -h, -a, -p, -e switches, and also save a copy of the +new Makefile, if desired:

+
    +
  • CUDA_HOME = where NVIDIA CUDA software is installed on your system
  • +
  • CUDA_ARCH = what GPU hardware you have (see help message for details)
  • +
  • CUDA_PRECISION = precision (double, mixed, single)
  • +
  • EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps
  • +
+

If the library build is successful, at least 3 files should be created: +lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps. +The latter has settings that enable LAMMPS to link with CUDA libraries. +If the settings in Makefile.lammps for your machine are not correct, +the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to +be edited.

+

You can then install/un-install the package and build LAMMPS in the +usual manner:

+
make yes-gpu
+make machine
+
+make no-gpu
+make machine
+
+
+
+

Note

+

If you re-build the GPU library in lib/gpu, you should always +un-install the GPU package, then re-install it and re-build LAMMPS. +This is because the compilation of files in the GPU package use the +library settings from the lib/gpu/Makefile.machine used to build the +GPU library.

+
+

Supporting info:

+ +
+
+
+

4.9. GRANULAR package

+

Contents:

+

Pair styles and fixes for finite-size granular particles, which +interact with each other and boundaries via frictional and dissipative +potentials.

+

Install or un-install:

+
make yes-granular
+make machine
+
+make no-granular
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.10. KIM package

+

Contents:

+

A pair_style kim command which is a wrapper on the +Knowledge Base for Interatomic Models (KIM) repository of interatomic +potentials, enabling any of them to be used in LAMMPS simulations.

+

To use this package you must have the KIM library available on your +system.

+

Information about the KIM project can be found at its website: +https://openkim.org. The KIM project is led by Ellad Tadmor and Ryan +Elliott (U Minnesota) and James Sethna (Cornell U).

+

Authors: Ryan Elliott (U Minnesota) is the main developer for the KIM +API which the pair_style kim command uses. He +developed the pair style in collaboration with Valeriu Smirichinski (U +Minnesota).

+

Install or un-install:

+

Before building LAMMPS with this package, you must first download and +build the KIM library and include the KIM models that you want to +use. You can do this manually if you prefer; follow the instructions +in lib/kim/README. You can also do it in one step from the lammps/src +dir, using a command like these, which simply invoke the +lib/kim/Install.py script with the specified args.

+
make lib-kim              # print help message
+make lib-kim args="-b "   # (re-)install KIM API lib with only example models
+make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001"  # ditto plus one model
+make lib-kim args="-b -a everything"     # install KIM API lib with all models
+make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002"       # add one model or model driver
+make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
+make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver
+
+
+

Note that in LAMMPS lingo, a KIM model driver is a pair style +(e.g. EAM or Tersoff). A KIM model is a pair style for a particular +element or alloy and set of parameters, e.g. EAM for Cu with a +specific EAM potential file. Also note that installing the KIM API +library with all its models, may take around 30 min to build. Of +course you only need to do that once.

+

See the list of KIM model drivers here: +https://openkim.org/kim-items/model-drivers/alphabetical

+

See the list of all KIM models here: +https://openkim.org/kim-items/models/by-model-drivers

+

See the list of example KIM models included by default here: +https://openkim.org/kim-api in the “What is in the KIM API source +package?” section

+

You can then install/un-install the package and build LAMMPS in the +usual manner:

+
make yes-kim
+make machine
+
+make no-kim
+make machine
+
+
+

Supporting info:

+
    +
  • src/KIM: filenames -> commands
  • +
  • src/KIM/README
  • +
  • lib/kim/README
  • +
  • pair_style kim
  • +
  • examples/kim
  • +
+
+
+
+

4.11. KOKKOS package

+

Contents:

+

Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute +styles adapted to compile using the Kokkos library which can convert +them to OpenMP or CUDA code so that they run efficiently on multicore +CPUs, KNLs, or GPUs. All the styles have a “kk” as a suffix in their +style name. Section 5.3.3 gives details of +what hardware and software is required on your system, and how to +build and use this package. Its styles can be invoked at run time via +the “-sf kk” or “-suffix kk” command-line switches. Also see the GPU, +OPT, USER-INTEL, and USER-OMP +packages, which have styles optimized for CPUs, KNLs, and GPUs.

+

You must have a C++11 compatible compiler to use this package.

+

Authors: The KOKKOS package was created primarily by Christian Trott +and Stan Moore (Sandia), with contributions from other folks as well. +It uses the open-source Kokkos library +which was developed by Carter Edwards, Christian Trott, and others at +Sandia, and which is included in the LAMMPS distribution in +lib/kokkos.

+

Install or un-install:

+

For the KOKKOS package, you have 3 choices when building. You can +build with either CPU or KNL or GPU support. Each choice requires +additional settings in your Makefile.machine for the KOKKOS_DEVICES +and KOKKOS_ARCH settings. See the src/MAKE/OPTIONS/Makefile.kokkos* +files for examples.

+

For multicore CPUs using OpenMP:

+
KOKKOS_DEVICES = OpenMP
+KOKKOS_ARCH = HSW           # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc
+
+
+

For Intel KNLs using OpenMP:

+
KOKKOS_DEVICES = OpenMP
+KOKKOS_ARCH = KNL
+
+
+

For NVIDIA GPUs using CUDA:

+
KOKKOS_DEVICES = Cuda
+KOKKOS_ARCH = Pascal60,Power8     # P100 hosted by an IBM Power8, etc
+KOKKOS_ARCH = Kepler37,Power8     # K80 hosted by an IBM Power8, etc
+
+
+

For GPUs, you also need these 2 lines in your Makefile.machine before +the CC line is defined, in this case for use with OpenMPI mpicxx. The +2 lines define a nvcc wrapper compiler, which will use nvcc for +compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA +files.

+
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
+export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
+CC =         mpicxx
+
+
+

Once you have an appropriate Makefile.machine, you can +install/un-install the package and build LAMMPS in the usual manner. +Note that you cannot build one executable to run on multiple hardware +targets (CPU or KNL or GPU). You need to build LAMMPS once for each +hardware target, to produce a separate executable. Also note that we +do not recommend building with other acceleration packages installed +(GPU, OPT, USER-INTEL, USER-OMP) when also building with KOKKOS.

+
make yes-kokkos
+make machine
+
+make no-kokkos
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.12. KSPACE package

+

Contents:

+

A variety of long-range Coulombic solvers, as well as pair styles +which compute the corresponding short-range pairwise Coulombic +interactions. These include Ewald, particle-particle particle-mesh +(PPPM), and multilevel summation method (MSM) solvers.

+

Install or un-install:

+

Building with this package requires a 1d FFT library be present on +your system for use by the PPPM solvers. This can be the KISS FFT +library provided with LAMMPS, 3rd party libraries like FFTW, or a +vendor-supplied FFT library. See step 6 of Section 2.2.2 of the manual for details on how +to select different FFT options in your machine Makefile.

+
make yes-kspace
+make machine
+
+make no-kspace
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.13. LATTE package

+

Contents:

+

A fix command which wraps the LATTE DFTB code, so that molecular +dynamics can be run with LAMMPS using density-functional tight-binding +quantum forces calculated by LATTE.

+

More information on LATTE can be found at this web site: +https://github.com/lanl/LATTE. A brief technical +description is given with the fix latte command.

+

Authors: Christian Negre (LANL) and Steve Plimpton (Sandia). LATTE +itself is developed at Los Alamos National Laboratory by Marc +Cawkwell, Anders Niklasson, and Christian Negre.

+

Install or un-install:

+

Before building LAMMPS with this package, you must first download and +build the LATTE library. You can do this manually if you prefer; +follow the instructions in lib/latte/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invokes the lib/latte/Install.py script with the specified +args:

+
make lib-latte                          # print help message
+make lib-latte args="-b"                # download and build in lib/latte/LATTE-master
+make lib-latte args="-p $HOME/latte"    # use existing LATTE installation in $HOME/latte
+make lib-latte args="-b -m gfortran"    # download and build in lib/latte and
+                                        #   copy Makefile.lammps.gfortran to Makefile.lammps
+
+
+

Note that 3 symbolic (soft) links, “includelink” and “liblink” and +“filelink.o”, are created in lib/latte to point into the LATTE home dir. +When LAMMPS builds in src it will use these links. You should +also check that the Makefile.lammps file you create is appropriate +for the compiler you use on your system to build LATTE.

+

You can then install/un-install the package and build LAMMPS in the +usual manner:

+
make yes-latte
+make machine
+
+make no-latte
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.14. MANYBODY package

+

Contents:

+

A variety of manybody and bond-order potentials. These include +(AI)REBO, BOP, EAM, EIM, Stillinger-Weber, and Tersoff potentials.

+

Install or un-install:

+
make yes-manybody
+make machine
+
+make no-manybody
+make machine
+
+
+

Supporting info:

+
    +
  • src/MANYBODY: filenames -> commands
  • +
  • Pair Styles section of Section 3.5
  • +
  • examples/comb
  • +
  • examples/eim
  • +
  • examples/nb3d
  • +
  • examples/shear
  • +
  • examples/streitz
  • +
  • examples/vashishta
  • +
  • bench/in.eam
  • +
+
+
+
+

4.15. MC package

+

Contents:

+

Several fixes and a pair style that have Monte Carlo (MC) or MC-like +attributes. These include fixes for creating, breaking, and swapping +bonds, for performing atomic swaps, and performing grand-canonical MC +(GCMC) in conjuction with dynamics.

+

Install or un-install:

+
make yes-mc
+make machine
+
+make no-mc
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.16. MEAM package

+

Contents:

+

A pair style for the modified embedded atom (MEAM) potential.

+

Please note that the MEAM package has been superseded by the +USER-MEAMC package, which is a direct translation +of the MEAM package to C++. USER-MEAMC contains additional +optimizations making it run faster than MEAM on most machines, +while providing the identical features and USER interface.

+

Author: Greg Wagner (Northwestern U) while at Sandia.

+

Install or un-install:

+

Before building LAMMPS with this package, you must first build the +MEAM library in lib/meam. You can do this manually if you prefer; +follow the instructions in lib/meam/README. You can also do it in one +step from the lammps/src dir, using a command like these, which simply +invoke the lib/meam/Install.py script with the specified args:

+
make lib-meam                  # print help message
+make lib-meam args="-m mpi"    # build with default Fortran compiler compatible with your MPI library
+make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
+make lib-meam args="-m ifort"  # build with Intel Fortran compiler using Makefile.ifort
+
+
+

The build should produce two files: lib/meam/libmeam.a and +lib/meam/Makefile.lammps. The latter is copied from an existing +Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with +Fortran (MEAM library). Typically the two compilers used for LAMMPS +and the MEAM library need to be consistent (e.g. both Intel or both +GNU compilers). If necessary, you can edit/create a new +lib/meam/Makefile.machine file for your system, which should define an +EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine +file.

+

You can then install/un-install the package and build LAMMPS in the +usual manner:

+
make yes-meam
+make machine
+
+make no-meam
+make machine
+
+
+
+

Note

+

You should test building the MEAM library with both the Intel +and GNU compilers to see if a simulation runs faster with one versus +the other on your system.

+
+

Supporting info:

+
    +
  • src/MEAM: filenames -> commands
  • +
  • src/meam/README
  • +
  • lib/meam/README
  • +
  • pair_style meam
  • +
  • examples/meam
  • +
+
+
+
+

4.17. MISC package

+

Contents:

+

A variety of compute, fix, pair, dump styles with specialized +capabilities that don’t align with other packages. Do a directory +listing, “ls src/MISC”, to see the list of commands.

+
+

Note

+

the MISC package contains styles that require using the +-restrict flag, when compiling with Intel compilers.

+
+

Install or un-install:

+
make yes-misc
+make machine
+
+make no-misc
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.18. MOLECULE package

+

Contents:

+

A large number of atom, pair, bond, angle, dihedral, improper styles +that are used to model molecular systems with fixed covalent bonds. +The pair styles include the Dreiding (hydrogen-bonding) and CHARMM +force fields, and a TIP4P water model.

+

Install or un-install:

+
make yes-molecule
+make machine
+
+make no-molecule
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.19. MPIIO package

+

Contents:

+

Support for parallel output/input of dump and restart files via the +MPIIO library. It adds dump styles with a “mpiio” in +their style name. Restart files with an “.mpiio” suffix are also +written and read in parallel.

+

Install or un-install:

+

Note that MPIIO is part of the standard message-passing interface +(MPI) library, so you should not need any additional compiler or link +settings, beyond what LAMMPS normally uses for MPI on your system.

+
make yes-mpiio
+make machine
+
+make no-mpiio
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.20. MSCG package

+

Contents:

+

A fix mscg command which can parameterize a +Multi-Scale Coarse-Graining (MSCG) model using the open-source MS-CG library.

+

To use this package you must have the MS-CG library available on your +system.

+

Authors: The fix was written by Lauren Abbott (Sandia). The MS-CG +library was developed by Jacob Wagner in Greg Voth’s group at the +University of Chicago.

+

Install or un-install:

+

Before building LAMMPS with this package, you must first download and +build the MS-CG library. Building the MS-CG library and using it from +LAMMPS requires a C++11 compatible compiler and that the GSL +(GNU Scientific Library) headers and libraries are installed on your +machine. See the lib/mscg/README and MSCG/Install files for more details.

+

Assuming these libraries are in place, you can do the download and +build of MS-CG manually if you prefer; follow the instructions in +lib/mscg/README. You can also do it in one step from the lammps/src +dir, using a command like these, which simply invoke the +lib/mscg/Install.py script with the specified args:

+
make lib-mscg             # print help message
+make lib-mscg args="-b -m serial"   # download and build in lib/mscg/MSCG-release-master
+                                    # with the settings compatible with "make serial"
+make lib-mscg args="-b -m mpi"      # download and build in lib/mscg/MSCG-release-master
+                                    # with the settings compatible with "make mpi"
+make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release
+
+
+

Note that 2 symbolic (soft) links, “includelink” and “liblink”, will be created in lib/mscg +to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links. +You should not need to edit the lib/mscg/Makefile.lammps file.

+

You can then install/un-install the package and build LAMMPS in the +usual manner:

+
make yes-mscg
+make machine
+
+make no-mscg
+make machine
+
+
+

Supporting info:

+
    +
  • src/MSCG: filenames -> commands
  • +
  • src/MSCG/README
  • +
  • lib/mscg/README
  • +
  • examples/mscg
  • +
+
+
+
+

4.21. OPT package

+

Contents:

+

A handful of pair styles which are optimized for improved CPU +performance on single or multiple cores. These include EAM, LJ, +CHARMM, and Morse potentials. The styles have an “opt” suffix in +their style name. Section 5.3.5 gives details +of how to build and use this package. Its styles can be invoked at +run time via the “-sf opt” or “-suffix opt” command-line switches. See also the KOKKOS, +USER-INTEL, and USER-OMP packages, which +have styles optimized for CPU performance.

+

Authors: James Fischer (High Performance Technologies), David Richie, +and Vincent Natoli (Stone Ridge Technolgy).

+

Install or un-install:

+
make yes-opt
+make machine
+
+make no-opt
+make machine
+
+
+
+

Note

+

The compile flag “-restrict” must be used to build LAMMPS with +the OPT package when using Intel compilers. It should be added to +the CCFLAGS line of your Makefile.machine. See Makefile.opt in +src/MAKE/OPTIONS for an example.

+
+
    +
  • CCFLAGS: add -restrict for Intel compilers
  • +
+

Supporting info:

+ +
+
+
+

4.22. PERI package

+

Contents:

+

An atom style, several pair styles which implement different +Peridynamics materials models, and several computes which calculate +diagnostics. Peridynamics is a a particle-based meshless continuum +model.

+

Authors: The original package was created by Mike Parks (Sandia). +Additional Peridynamics models were added by Rezwanur Rahman and John +Foster (UTSA).

+

Install or un-install:

+
make yes-peri
+make machine
+
+make no-peri
+make machine
+
+
+

Supporting info:

+ +
+
+
+

4.23. POEMS package

+

Contents:

+

A fix that wraps the Parallelizable Open source Efficient Multibody +Software (POEMS) library, which is able to simulate the dynamics of +articulated body systems. These are systems with multiple rigid +bodies (collections of particles) whose motion is coupled by +connections at hinge points.

+

Author: Rudra Mukherjee (JPL) while at RPI.

+

Install or un-install:

+

Before building LAMMPS with this package, you must first build the +POEMS library in lib/poems. You can do this manually if you prefer; +follow the instructions in lib/poems/README. You can also do it in +one step from the lammps/src dir, using a command like these, which +simply invoke the lib/poems/Install.py script with the specified args:

+
make lib-poems                   # print help message
+make lib-poems args="-m serial"  # build with GNU g++ compiler (settings as with "make serial