This article is a draft

This is not a complete article: This is a draft, a work in progress that is intended to be published into an article, which may or may not be ready for inclusion in the main wiki. It should not necessarily be considered factual or authoritative.




General

LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale Atomic / Molecular Massively Parallel Simulator. LAMMPS is distributed by Sandia National Laboratories, a US Department of Energy laboratory. The main authors of LAMMPS are listed on this page along with contact information and other contributors. Funding for LAMMPS development has come primarily from DOE (OASCR, OBER, ASCI, LDRD, Genomes-to-Life) and is acknowledged here.

Code Layout

  • C++ and Object-Oriented approach.
  • Parallelization via MPI and OpenMP; runs on GPU.
  • Is invoked by commands through input scripts.
  • Possibility to customize the output.
  • Could be interfaced with other codes.

Force fields and examples

Force fields classified by Material

  • Biomolecules: CHARMM, AMBER, OPLS, COMPASS (class 2), long-range Coulombics via PPPM, point dipoles, ...
  • Polymers: all-atom, united-atom, coarse-grain (bead-spring FENE), bond-breaking, …
  • Materials: EAM and MEAM for metals, Buckingham, Morse, Yukawa, Stillinger-Weber, Tersoff, EDIP, COMB, SNAP, ...
  • Chemistry: AI-REBO, REBO, ReaxFF, eFF
  • Mesoscale: granular, DPD, Gay-Berne, colloidal, peri-dynamics, DSMC...
  • Hybrid: can use combinations of potentials for hybrid systems: water on metal, polymers/semiconductor interface, colloids in solution, …

Potential classified by Functional Form

  • Pairwise potentials: Lennard-Jones, Buckingham, ...
  • Charged Pairwise Potentials: Coulombic, point-dipole
  • Manybody Potentials: EAM, Finnis/Sinclair, modified EAM (MEAM), embedded ion (EIM), Stillinger-Weber, Tersoff, AI-REBO, ReaxFF, COMB
  • Coarse-Grained Potentials: DPD, GayBerne, ...
  • Mesoscopic Potentials: granular, peri-dynamics
  • Long-Range Electrostatics: Ewald, PPPM, MSM
  • Implicit Solvent Potentials: hydrodynamic lubrication, Debye
  • Force-Field Compatibility with common: CHARMM, AMBER, OPLS, GROMACS options

Modules

Several versions of LAMMPS were installed on cvmfs and accessible on Compute Canada systems through modules. To find the modules, use: module spider lammps or module -r spider '.*lammps.*'

The version of each module gives the date of the release of each version in the format: YYYYMMDD. The name of the module contains an attribute depending on the accelerators included in the module.

For each release installed, one or more modules are are available. For example, the release of 31 March 2017 has 3 modules:

  • Version built with MPI: lammps/20170331
  • Version built with USER-OMP support: lmmps-omp/20170331
  • Version built with USER-INTEL support: lammps-user-intel/20170331

These versions are also available with GPU support. In order to load the GPU enabled version of LAMMPS, the cuda module needs to be loaded first before loading the LAMMPS module:

$ module load cuda
$ module load lmmps-omp/20170331

The name of the executable may differ from one version to another. To figure out what is the name of the executable that correspond to a given module, do the following (example for lammps-omp/20170331):

$ module load  lmmps-omp/20170331
$ ls ${EBROOTLAMMPS}/bin/
lmp lmp_icc_openmpi

From this output, the executable is: lmp_icc_openmpi. Note that lmp is a symbolic link to the executable. For all versions installed on cvmfs, a symbolic link was added to each LAMMPS executable and it is called lmp. It means that no matter which module you pick, lmp will work as the executable for that module.

The reason behind different versions for the same release is the difference in the packages included. The recent versions of LAMMPS contain about 60 different packages that can be enabled when compiling the program. All the packages are documented on the official web page of LAMMPS .

For each module installed on cvmfs, a file list-packages.txt is provided and gives a list of supported and non-supported packages for that particular module. The different versions for one release mentioned above come from the fact one can not put all available packages in one binary. If for some reason, your simulation does not work with one module, it is more likely related to the fact that the corresponding package was not included.

To see or know more about the supported packages on a given module , do the following:

  • First load a particular module of LAMMPS (use module -r spider '.*lammps.*' to see how to load a particular module).
  • Then, execute the command: cat ${EBROOTLAMMPS}/list-packages.txt

For more information on Environment Modules, please refer to the Using modules page.

Scripts for running LAMMPS

File : run_dalton_job.sh

#!/bin/bash

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=4
#SBATCH --mem-per-cpu=3500M
#SBATCH --time=00-30:00

# Load the module: 

module load nixpkgs/16.09  intel/2016.4  openmpi/2.0.2 dalton/2017-alpha

# Setting the variables:

dltonlaun=dalton
dltonexec=dalton.x
daltoninput=dft_rspexci_nosym.dal
daltonmol=H2O_cc-pVDZ_nosym.mol

echo "Starting run at: `date`"

echo "Running the example: INPUT=${daltoninput} - Molecule=${daltonmol}"

${dltonlaun} -b ${BASLIB} -N ${SLURM_NTASKS}  -dal ${daltoninput}  -mol ${daltonmol}

echo "Program finished with exit code $? at: `date`"


File : dft_rspexci_nosym.dal

**DALTON INPUT
.RUN RESPONSE
**INTEGRALS
.PROPRINT
**WAVE FUNCTIONS
.DFT
 B3LYP
**RESPONSE
*LINEAR
.SINGLE RESIDUE
.ROOTS
 3
**END OF DALTON INPUT


File : H2O_cc-pVDZ_nosym.mol

BASIS
cc-pVDZ
H2O

    2    0
        8.    1
O     0.0  0.0000000000 0.0
        1.    2
H1    1.430    0.0  1.1
H2   -1.430    0.0  1.1


Related Software

  • DL_POLY:
  • CPMD:
  • GULP:
  • NAMD:
  • CHARMM:
  • AMBER:
  • GROMACS:
  • NWCHEM:
  • HOOMD:
  • Tinker:

Useful Links