.. _glossary-label:
LAMMPS Glossary
***************
.. container:: justify
This glossary contains short definitions of the most common LAMMPS-specific words
encountered when working with LAMMPS.
Compute
=======
.. container:: justify
A *compute* is a command that calculates specific quantities during a
simulation, such as energy, temperature, or pressure. The output(s) of a
|compute-documentation| named *cname* can be accessed using :math:`\text{c}\_\text{cname}`.
.. |compute-documentation| raw:: html
computes
.. container:: justify
**Example:** Here, the first compute named *ke_per_atom* returns a vector
containing the kinetic energy *ke* for each atom, and the second
compute named *mean_ke* returns the sum of the elements
of the vector. The sum is then printed in the log file using *thermo_style*,
alongside the simulation *step*:
.. code-block:: lammps
compute ke_per_atom all ke/atom
compute mean_ke all reduce sum c_ke_per_atom
thermo_style custom step c_mean_ke
Dump file
=========
.. container:: justify
The *dump* command writes particle coordinates, velocities, and other
information to a file for post-mortem analysis or visualization.
Ensemble
========
.. container:: justify
An ensemble refers to a specific thermodynamic state or a collection
of states that characterize a system of particles. Different ensembles
represent systems with different degrees of separation from the surrounding
environment, ranging from completely isolated systems (e.g. microcanonical ensemble)
to open systems (e.g. grand canonical ensemble).
.. container:: justify
As an important side note, it is common for LAMMPS beginners to assume that
their system is in the NVE ensemble (or NVT, or NPT), simply because the
*fix nve* (or *fix nvt*, or *fix npt*) is used, but this is not necessarily
the case. For instance, in :ref:`lennard-jones-label`, the input
contains the following commands:
.. code-block:: lammps
fix mynve all nve
fix mylgv all langevin 1.0 1.0 0.1 1530917
.. container:: justify
Here, the *fix nve* is used to perform the time integration and update
the position and velocity of the atoms every timestep, and the
*fix langevin* applies the Langevin thermostat :cite:`schneider1978molecular`.
Due to the Langevin thermostat, the system does exchange energy with
a background implicit solvent, and is therefore not in the NVE (microcanonical)
ensemble, but rather in the NVT (canonical) ensemble with a
constant number of particles (N), constant volume (V), and a
temperature fluctuating around an equilibrium value (T).
Input script
============
.. container:: justify
The *input script* is a text file where users define simulation parameters,
forces, constraints, and other settings using LAMMPS commands.
Fix
===
.. container:: justify
A *fix* is a command that performs specific tasks during a simulation,
such as imposing constraints, applying forces, or modifying particle properties.
Force field
===========
.. container:: justify
A force field is a mathematical model describing the potential energy and forces
between atoms or particles in a molecular system. It includes the potential energy
functions (e.g. Lennard-Jones potential) and the parameters (e.g. the
Lennard-Jones coefficients :math:`\sigma_{ij}`
and :math:`\epsilon_{ij}`).
Grand canonical ensemble
========================
.. container:: justify
In the grand canonical ensemble, which is also called the macrocanonical ensemble,
the chemical potential (:math:`\mu`), volume (V), and temperature (T) of the
system are kept constant. This ensemble is relevant for systems exchanging particles
with the environment.
LAMMPS
======
.. container:: justify
LAMMPS is the acronym for Large-scale Atomic/Molecular Massively Parallel Simulator, it
designs the open-source molecular simulation software.
Minimization
============
.. container:: justify
Energy minimization refers to the computational process of adjusting the
atomic positions within a given system to reduce the forces on the atoms
until they become negligible. Several minimization methods are implemented in LAMMPS,
including the conjugate gradient :cite:`hestenes1952methods`
and the steepest descent :cite:`cauchy1847methode`,
see the |min_style_2| page for an exhaustive list.
.. |min_style_2| raw:: html
min style
Neighbor list
=============
.. container:: justify
*Neighbor list* enumerates all pairs of atoms with a separation smaller than
the cutoff distance.
NVE ensemble
============
.. container:: justify
In the NVE ensemble, which is also called the microcanonical ensemble,
the number of particles (N), the volume (V), and the total energy (E) of the
system are kept constant. This ensemble is relevant for systems that are fully isolated
and experience no exchange of particles or heat in the environment.
NVT ensemble
============
.. container:: justify
In the NVT ensemble, which is also called the canonical ensemble,
the number of particles (N), volume (V), and temperature (T) of the
system are kept constant. This ensemble is relevant for systems in thermal
contact with the environment.
NPT ensemble
============
.. container:: justify
In the NPT ensemble, which is also called the isothermal-isobaric ensemble,
the number of particles (N), pressure (P), and temperature (T) are kept constant.
This ensemble is relevant for systems in thermal and mechanical equilibrium
with the environment.
Pair style
==========
.. container:: justify
The *pair_style* command sets the potential interactions between pairs of atoms
(e.g. Lennard-Jones, Coulomb, Morse).
Parallel
========
.. container:: justify
LAMMPS is designed for parallel computing, enabling simulations to be
distributed across multiple processors or cores. Parallel execution in
LAMMPS can be achieved using message-passing parallelism (MPI) or threads.
Restart file
============
.. container:: justify
A *restart file* allows users to continue simulations from a saved state.
Run
===
.. container:: justify
A *run* is a command that executes the simulation for a specified number of time steps.
Seed
====
.. container:: justify
*Seeds* are used to initialize random number generators.
By setting the seed to a specific value, the user can ensure that the
sequence of random numbers generated by the simulation will be
reproducible, which is essential during debugging.
Serial
======
.. container:: justify
LAMMPS can be run in serial mode on a single processor or core. This is suitable for
small-scale simulations or when parallel computing resources are not available.
Time step
=========
.. container:: justify
The simulation progresses through discrete *time steps*.