lammps/doc/html/Section_intro.html

695 lines
41 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1. Introduction &mdash; LAMMPS documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/sphinxcontrib-images/LightBox2/lightbox2/css/lightbox.css" type="text/css" />
<link rel="top" title="LAMMPS documentation" href="index.html"/>
<link rel="next" title="2. Getting Started" href="Section_start.html"/>
<link rel="prev" title="LAMMPS Documentation" href="Manual.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="Manual.html" class="icon icon-home"> LAMMPS
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">1. Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#what-is-lammps">1.1. What is LAMMPS</a></li>
<li class="toctree-l2"><a class="reference internal" href="#lammps-features">1.2. LAMMPS features</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#general-features">1.2.1. General features</a></li>
<li class="toctree-l3"><a class="reference internal" href="#particle-and-model-types">1.2.2. Particle and model types</a></li>
<li class="toctree-l3"><a class="reference internal" href="#force-fields">1.2.3. Force fields</a></li>
<li class="toctree-l3"><a class="reference internal" href="#atom-creation">1.2.4. Atom creation</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ensembles-constraints-and-boundary-conditions">1.2.5. Ensembles, constraints, and boundary conditions</a></li>
<li class="toctree-l3"><a class="reference internal" href="#integrators">1.2.6. Integrators</a></li>
<li class="toctree-l3"><a class="reference internal" href="#diagnostics">1.2.7. Diagnostics</a></li>
<li class="toctree-l3"><a class="reference internal" href="#output">1.2.8. Output</a></li>
<li class="toctree-l3"><a class="reference internal" href="#multi-replica-models">1.2.9. Multi-replica models</a></li>
<li class="toctree-l3"><a class="reference internal" href="#pre-and-post-processing">1.2.10. Pre- and post-processing</a></li>
<li class="toctree-l3"><a class="reference internal" href="#specialized-features">1.2.11. Specialized features</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#lammps-non-features">1.3. LAMMPS non-features</a></li>
<li class="toctree-l2"><a class="reference internal" href="#open-source-distribution">1.4. Open source distribution</a></li>
<li class="toctree-l2"><a class="reference internal" href="#acknowledgments-and-citations">1.5. Acknowledgments and citations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">3. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">4. Packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_accelerate.html">5. Accelerating LAMMPS performance</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">6. How-to discussions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_example.html">7. Example problems</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_perf.html">8. Performance &amp; scalability</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_tools.html">9. Additional tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">10. Modifying &amp; extending LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">11. Python interface to LAMMPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">12. Errors</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_history.html">13. Future and history</a></li>
</ul>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="Manual.html">LAMMPS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="Manual.html">Docs</a> &raquo;</li>
<li>1. Introduction</li>
<li class="wy-breadcrumbs-aside">
<a href="http://lammps.sandia.gov">Website</a>
<a href="Section_commands.html#comm">Commands</a>
</li>
</ul>
<hr/>
<div class="rst-footer-buttons" style="margin-bottom: 1em" role="navigation" aria-label="footer navigation">
<a href="Section_start.html" class="btn btn-neutral float-right" title="2. Getting Started" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="Manual.html" class="btn btn-neutral" title="LAMMPS Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="introduction">
<h1>1. Introduction</h1>
<p>This section provides an overview of what LAMMPS can and can&#8217;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.</p>
<div class="line-block">
<div class="line">1.1 <a class="reference internal" href="#intro-1"><span class="std std-ref">What is LAMMPS</span></a></div>
<div class="line">1.2 <a class="reference internal" href="#intro-2"><span class="std std-ref">LAMMPS features</span></a></div>
<div class="line">1.3 <a class="reference internal" href="#intro-3"><span class="std std-ref">LAMMPS non-features</span></a></div>
<div class="line">1.4 <a class="reference internal" href="#intro-4"><span class="std std-ref">Open source distribution</span></a></div>
<div class="line">1.5 <a class="reference internal" href="#intro-5"><span class="std std-ref">Acknowledgments and citations</span></a></div>
<div class="line"><br /></div>
</div>
<div class="section" id="what-is-lammps">
<span id="intro-1"></span><h2>1.1. What is LAMMPS</h2>
<p>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.</p>
<p>For examples of LAMMPS simulations, see the Publications page of the
<a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>.</p>
<p>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 <a class="reference external" href="http://www-unix.mcs.anl.gov/mpi">MPI</a>
message-passing library. This includes distributed- or shared-memory
parallel machines and Beowulf-style clusters.</p>
<p>LAMMPS can model systems with only a few particles up to millions or
billions. See <a class="reference internal" href="Section_perf.html"><span class="doc">Section_perf</span></a> for information on
LAMMPS performance and scalability, or the Benchmarks section of the
<a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>.</p>
<p>LAMMPS is a freely-available open-source code, distributed under the
terms of the <a class="reference external" href="http://www.gnu.org/copyleft/gpl.html">GNU Public License</a>, which means you can use or
modify the code however you wish. See <a class="reference internal" href="#intro-4"><span class="std std-ref">this section</span></a> for a
brief discussion of the open-source philosophy.</p>
<p>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 <a class="reference internal" href="Section_modify.html"><span class="doc">Section_modify</span></a>
for more details.</p>
<p>The current version of LAMMPS is written in C++. Earlier versions
were written in F77 and F90. See
<a class="reference internal" href="Section_history.html"><span class="doc">Section_history</span></a> for more information on
different versions. All versions can be downloaded from the <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>.</p>
<p>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 <a class="reference external" href="http://www.sandia.gov">Sandia National Labs</a>.
See <a class="reference internal" href="#intro-5"><span class="std std-ref">this section</span></a> for more information on LAMMPS funding and
individuals who have contributed to LAMMPS.</p>
<p>In the most general sense, LAMMPS integrates Newton&#8217;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 &#8220;ghost&#8221; 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 <a class="reference internal" href="#intro-5"><span class="std std-ref">this section</span></a>.</p>
<hr class="docutils" />
</div>
<div class="section" id="lammps-features">
<span id="intro-2"></span><h2>1.2. LAMMPS features</h2>
<p>This section highlights LAMMPS features, with pointers to specific
commands which give more details. If LAMMPS doesn&#8217;t have your
favorite interatomic potential, boundary condition, or atom type, see
<a class="reference internal" href="Section_modify.html"><span class="doc">Section_modify</span></a>, which describes how you can add
it to LAMMPS.</p>
<div class="section" id="general-features">
<h3>1.2.1. General features</h3>
<ul class="simple">
<li>runs on a single processor or in parallel</li>
<li>distributed-memory message-passing parallelism (MPI)</li>
<li>spatial-decomposition of simulation domain for parallelism</li>
<li>open-source distribution</li>
<li>highly portable C++</li>
<li>optional libraries used: MPI and single-processor FFT</li>
<li>GPU (CUDA and OpenCL), Intel(R) Xeon Phi(TM) coprocessors, and OpenMP support for many code features</li>
<li>easy to extend with new features and functionality</li>
<li>runs from an input script</li>
<li>syntax for defining and using variables and formulas</li>
<li>syntax for looping over runs and breaking out of loops</li>
<li>run one or multiple simulations simultaneously (in parallel) from one script</li>
<li>build as library, invoke LAMMPS thru library interface or provided Python wrapper</li>
<li>couple with other codes: LAMMPS calls other code, other code calls LAMMPS, umbrella code calls both</li>
</ul>
</div>
<div class="section" id="particle-and-model-types">
<h3>1.2.2. Particle and model types</h3>
<p>(<a class="reference internal" href="atom_style.html"><span class="doc">atom style</span></a> command)</p>
<ul class="simple">
<li>atoms</li>
<li>coarse-grained particles (e.g. bead-spring polymers)</li>
<li>united-atom polymers or organic molecules</li>
<li>all-atom polymers, organic molecules, proteins, DNA</li>
<li>metals</li>
<li>granular materials</li>
<li>coarse-grained mesoscale models</li>
<li>finite-size spherical and ellipsoidal particles</li>
<li>finite-size line segment (2d) and triangle (3d) particles</li>
<li>point dipole particles</li>
<li>rigid collections of particles</li>
<li>hybrid combinations of these</li>
</ul>
</div>
<div class="section" id="force-fields">
<h3>1.2.3. Force fields</h3>
<p>(<a class="reference internal" href="pair_style.html"><span class="doc">pair style</span></a>, <a class="reference internal" href="bond_style.html"><span class="doc">bond style</span></a>,
<a class="reference internal" href="angle_style.html"><span class="doc">angle style</span></a>, <a class="reference internal" href="dihedral_style.html"><span class="doc">dihedral style</span></a>,
<a class="reference internal" href="improper_style.html"><span class="doc">improper style</span></a>, <a class="reference internal" href="kspace_style.html"><span class="doc">kspace style</span></a>
commands)</p>
<ul class="simple">
<li>pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated</li>
<li>charged pairwise potentials: Coulombic, point-dipole</li>
<li>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</li>
<li>long-range interactions for charge, point-dipoles, and LJ dispersion: Ewald, Wolf, PPPM (similar to particle-mesh Ewald)</li>
<li>polarization models: <a class="reference internal" href="fix_qeq.html"><span class="doc">QEq</span></a>, <a class="reference internal" href="Section_howto.html#howto-26"><span class="std std-ref">core/shell model</span></a>, <a class="reference internal" href="Section_howto.html#howto-27"><span class="std std-ref">Drude dipole model</span></a></li>
<li>charge equilibration (QEq via dynamic, point, shielded, Slater methods)</li>
<li>coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO</li>
<li>mesoscopic potentials: granular, Peridynamics, SPH</li>
<li>electron force field (eFF, AWPMD)</li>
<li>bond potentials: harmonic, FENE, Morse, nonlinear, class 2, quartic (breakable)</li>
<li>angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, class 2 (COMPASS)</li>
<li>dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, class 2 (COMPASS), OPLS</li>
<li>improper potentials: harmonic, cvff, umbrella, class 2 (COMPASS)</li>
<li>polymer potentials: all-atom, united-atom, bead-spring, breakable</li>
<li>water potentials: TIP3P, TIP4P, SPC</li>
<li>implicit solvent potentials: hydrodynamic lubrication, Debye</li>
<li>force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options</li>
<li>access to <a class="reference external" href="http://openkim.org">KIM archive</a> of potentials via <a class="reference internal" href="pair_kim.html"><span class="doc">pair kim</span></a></li>
<li>hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation</li>
<li>overlaid potentials: superposition of multiple pair potentials</li>
</ul>
</div>
<div class="section" id="atom-creation">
<h3>1.2.4. Atom creation</h3>
<p>(<a class="reference internal" href="read_data.html"><span class="doc">read_data</span></a>, <a class="reference internal" href="lattice.html"><span class="doc">lattice</span></a>,
<a class="reference internal" href="create_atoms.html"><span class="doc">create_atoms</span></a>, <a class="reference internal" href="delete_atoms.html"><span class="doc">delete_atoms</span></a>,
<a class="reference internal" href="displace_atoms.html"><span class="doc">displace_atoms</span></a>, <a class="reference internal" href="replicate.html"><span class="doc">replicate</span></a> commands)</p>
<ul class="simple">
<li>read in atom coords from files</li>
<li>create atoms on one or more lattices (e.g. grain boundaries)</li>
<li>delete geometric or logical groups of atoms (e.g. voids)</li>
<li>replicate existing atoms multiple times</li>
<li>displace atoms</li>
</ul>
</div>
<div class="section" id="ensembles-constraints-and-boundary-conditions">
<h3>1.2.5. Ensembles, constraints, and boundary conditions</h3>
<p>(<a class="reference internal" href="fix.html"><span class="doc">fix</span></a> command)</p>
<ul class="simple">
<li>2d or 3d systems</li>
<li>orthogonal or non-orthogonal (triclinic symmetry) simulation domains</li>
<li>constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators</li>
<li>thermostatting options for groups and geometric regions of atoms</li>
<li>pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions</li>
<li>simulation box deformation (tensile and shear)</li>
<li>harmonic (umbrella) constraint forces</li>
<li>rigid body constraints</li>
<li>SHAKE bond and angle constraints</li>
<li>Monte Carlo bond breaking, formation, swapping</li>
<li>atom/molecule insertion and deletion</li>
<li>walls of various kinds</li>
<li>non-equilibrium molecular dynamics (NEMD)</li>
<li>variety of additional boundary conditions and constraints</li>
</ul>
</div>
<div class="section" id="integrators">
<h3>1.2.6. Integrators</h3>
<p>(<a class="reference internal" href="run.html"><span class="doc">run</span></a>, <a class="reference internal" href="run_style.html"><span class="doc">run_style</span></a>, <a class="reference internal" href="minimize.html"><span class="doc">minimize</span></a> commands)</p>
<ul class="simple">
<li>velocity-Verlet integrator</li>
<li>Brownian dynamics</li>
<li>rigid body integration</li>
<li>energy minimization via conjugate gradient or steepest descent relaxation</li>
<li>rRESPA hierarchical timestepping</li>
<li>rerun command for post-processing of dump files</li>
</ul>
</div>
<div class="section" id="diagnostics">
<h3>1.2.7. Diagnostics</h3>
<ul class="simple">
<li>see the various flavors of the <a class="reference internal" href="fix.html"><span class="doc">fix</span></a> and <a class="reference internal" href="compute.html"><span class="doc">compute</span></a> commands</li>
</ul>
</div>
<div class="section" id="output">
<h3>1.2.8. Output</h3>
<p>(<a class="reference internal" href="dump.html"><span class="doc">dump</span></a>, <a class="reference internal" href="restart.html"><span class="doc">restart</span></a> commands)</p>
<ul class="simple">
<li>log file of thermodynamic info</li>
<li>text dump files of atom coords, velocities, other per-atom quantities</li>
<li>binary restart files</li>
<li>parallel I/O of dump and restart files</li>
<li>per-atom quantities (energy, stress, centro-symmetry parameter, CNA, etc)</li>
<li>user-defined system-wide (log file) or per-atom (dump file) calculations</li>
<li>spatial and time averaging of per-atom quantities</li>
<li>time averaging of system-wide quantities</li>
<li>atom snapshots in native, XYZ, XTC, DCD, CFG formats</li>
</ul>
</div>
<div class="section" id="multi-replica-models">
<h3>1.2.9. Multi-replica models</h3>
<p><a class="reference internal" href="neb.html"><span class="doc">nudged elastic band</span></a>
<a class="reference internal" href="prd.html"><span class="doc">parallel replica dynamics</span></a>
<a class="reference internal" href="tad.html"><span class="doc">temperature accelerated dynamics</span></a>
<a class="reference internal" href="temper.html"><span class="doc">parallel tempering</span></a></p>
</div>
<div class="section" id="pre-and-post-processing">
<h3>1.2.10. Pre- and post-processing</h3>
<ul class="simple">
<li>Various pre- and post-processing serial tools are packaged
with LAMMPS; see these <a class="reference internal" href="Section_tools.html"><span class="doc">doc pages</span></a>.</li>
<li>Our group has also written and released a separate toolkit called
<a class="reference external" href="http://www.sandia.gov/~sjplimp/pizza.html">Pizza.py</a> which provides tools for doing setup, analysis,
plotting, and visualization for LAMMPS simulations. Pizza.py is
written in <a class="reference external" href="http://www.python.org">Python</a> and is available for download from <a class="reference external" href="http://www.sandia.gov/~sjplimp/pizza.html">the Pizza.py WWW site</a>.</li>
</ul>
</div>
<div class="section" id="specialized-features">
<h3>1.2.11. Specialized features</h3>
<p>These are LAMMPS capabilities which you may not think of as typical
molecular dynamics options:</p>
<ul class="simple">
<li><a class="reference internal" href="balance.html"><span class="doc">static</span></a> and <a class="reference internal" href="fix_balance.html"><span class="doc">dynamic load-balancing</span></a></li>
<li><a class="reference internal" href="body.html"><span class="doc">generalized aspherical particles</span></a></li>
<li><a class="reference internal" href="fix_srd.html"><span class="doc">stochastic rotation dynamics (SRD)</span></a></li>
<li><a class="reference internal" href="fix_imd.html"><span class="doc">real-time visualization and interactive MD</span></a></li>
<li>calculate <a class="reference internal" href="compute_xrd.html"><span class="doc">virtual diffraction patterns</span></a></li>
<li><a class="reference internal" href="fix_atc.html"><span class="doc">atom-to-continuum coupling</span></a> with finite elements</li>
<li>coupled rigid body integration via the <a class="reference internal" href="fix_poems.html"><span class="doc">POEMS</span></a> library</li>
<li><a class="reference internal" href="fix_qmmm.html"><span class="doc">QM/MM coupling</span></a></li>
<li><a class="reference internal" href="fix_ipi.html"><span class="doc">path-integral molecular dynamics (PIMD)</span></a> and <a class="reference internal" href="fix_pimd.html"><span class="doc">this as well</span></a></li>
<li>Monte Carlo via <a class="reference internal" href="fix_gcmc.html"><span class="doc">GCMC</span></a> and <a class="reference internal" href="fix_tfmc.html"><span class="doc">tfMC</span></a> and <span class="xref doc">atom swapping</span></li>
<li><a class="reference internal" href="pair_dsmc.html"><span class="doc">Direct Simulation Monte Carlo</span></a> for low-density fluids</li>
<li><a class="reference internal" href="pair_peri.html"><span class="doc">Peridynamics mesoscale modeling</span></a></li>
<li><a class="reference internal" href="fix_lb_fluid.html"><span class="doc">Lattice Boltzmann fluid</span></a></li>
<li><a class="reference internal" href="fix_tmd.html"><span class="doc">targeted</span></a> and <a class="reference internal" href="fix_smd.html"><span class="doc">steered</span></a> molecular dynamics</li>
<li><a class="reference internal" href="fix_ttm.html"><span class="doc">two-temperature electron model</span></a></li>
</ul>
<hr class="docutils" />
</div>
</div>
<div class="section" id="lammps-non-features">
<span id="intro-3"></span><h2>1.3. LAMMPS non-features</h2>
<p>LAMMPS is designed to efficiently compute Newton&#8217;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:</p>
<ul class="simple">
<li>the desire to keep LAMMPS simple</li>
<li>they are not parallel operations</li>
<li>other codes already do them</li>
<li>limited development resources</li>
</ul>
<p>Specifically, LAMMPS itself does not:</p>
<ul class="simple">
<li>run thru a GUI</li>
<li>build molecular systems</li>
<li>assign force-field coefficients automagically</li>
<li>perform sophisticated analyses of your MD simulation</li>
<li>visualize your MD simulation</li>
<li>plot your output data</li>
</ul>
<p>A few tools for pre- and post-processing tasks are provided as part of
the LAMMPS package; they are described in <a class="reference internal" href="Section_tools.html"><span class="doc">this section</span></a>. However, many people use other codes or
write their own tools for these tasks.</p>
<p>As noted above, our group has also written and released a separate
toolkit called <a class="reference external" href="http://www.sandia.gov/~sjplimp/pizza.html">Pizza.py</a> 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
<a class="reference external" href="http://www.python.org">Python</a> and is available for download from <a class="reference external" href="http://www.sandia.gov/~sjplimp/pizza.html">the Pizza.py WWW site</a>.</p>
<p>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.</p>
<p>For atomic systems LAMMPS provides a <a class="reference internal" href="create_atoms.html"><span class="doc">create_atoms</span></a>
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 <a class="reference internal" href="pair_coeff.html"><span class="doc">pair coeff</span></a>, <a class="reference internal" href="bond_coeff.html"><span class="doc">bond coeff</span></a>, <a class="reference internal" href="angle_coeff.html"><span class="doc">angle coeff</span></a>, 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.</p>
<p>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
<a class="reference external" href="http://www.scripps.edu/brooks">CHARMM</a> or <a class="reference external" href="http://amber.scripps.edu">AMBER</a> 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 <a class="reference internal" href="Section_tools.html"><span class="doc">this section</span></a> can assist in this process.</p>
<p>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 <a class="reference internal" href="Section_modify.html"><span class="doc">Section_modify</span></a> for a discussion
of how you can use the <a class="reference internal" href="dump.html"><span class="doc">dump</span></a> and <a class="reference internal" href="compute.html"><span class="doc">compute</span></a> and
<a class="reference internal" href="fix.html"><span class="doc">fix</span></a> 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.</p>
<p>A very simple (yet fast) visualizer is provided with the LAMMPS
package - see the <a class="reference internal" href="Section_tools.html#xmovie"><span class="std std-ref">xmovie</span></a> tool in <a class="reference internal" href="Section_tools.html"><span class="doc">this section</span></a>. It creates xyz projection views of
atomic coordinates and animates them. We find it very useful for
debugging purposes. For high-quality visualization we recommend the
following packages:</p>
<ul class="simple">
<li><a class="reference external" href="http://www.ks.uiuc.edu/Research/vmd">VMD</a></li>
<li><a class="reference external" href="http://mt.seas.upenn.edu/Archive/Graphics/A">AtomEye</a></li>
<li><a class="reference external" href="http://pymol.sourceforge.net">PyMol</a></li>
<li><a class="reference external" href="http://www.bmsc.washington.edu/raster3d/raster3d.html">Raster3d</a></li>
<li><a class="reference external" href="http://www.openrasmol.org">RasMol</a></li>
</ul>
<p>Other features that LAMMPS does not yet (and may never) support are
discussed in <a class="reference internal" href="Section_history.html"><span class="doc">Section_history</span></a>.</p>
<p>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.</p>
<ul class="simple">
<li><a class="reference external" href="http://www.scripps.edu/brooks">CHARMM</a></li>
<li><a class="reference external" href="http://amber.scripps.edu">AMBER</a></li>
<li><a class="reference external" href="http://www.ks.uiuc.edu/Research/namd/">NAMD</a></li>
<li><a class="reference external" href="http://www.emsl.pnl.gov/docs/nwchem/nwchem.html">NWCHEM</a></li>
<li><a class="reference external" href="http://www.cse.clrc.ac.uk/msi/software/DL_POLY">DL_POLY</a></li>
<li><a class="reference external" href="http://dasher.wustl.edu/tinker">Tinker</a></li>
</ul>
<p>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.</p>
<hr class="docutils" />
</div>
<div class="section" id="open-source-distribution">
<span id="intro-4"></span><h2>1.4. Open source distribution</h2>
<p>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 <a class="reference external" href="http://www.gnu.org/copyleft/gpl.html">GNU Public License</a> (GPL). This
is often referred to as open-source distribution - see
<a class="reference external" href="http://www.gnu.org">www.gnu.org</a> or <a class="reference external" href="http://www.opensource.org">www.opensource.org</a> for more
details. The legal text of the GPL is in the LICENSE file that is
included in the LAMMPS distribution.</p>
<p>Here is a summary of what the GPL means for LAMMPS users:</p>
<p>(1) Anyone is free to use, modify, or extend LAMMPS in any way they
choose, including for commercial purposes.</p>
<p>(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.</p>
<p>(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.</p>
<p>(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.</p>
<p>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
<a class="reference external" href="http://lammps.sandia.gov/authors.html">developers</a> on any of these
items.</p>
<ul class="simple">
<li>Point prospective users to the <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>. Mention it in
talks or link to it from your WWW site.</li>
<li>If you find an error or omission in this manual or on the <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>, or have a suggestion for something to clarify or include,
send an email to the
<a class="reference external" href="http://lammps.sandia.gov/authors.html">developers</a>.</li>
<li>If you find a bug, <a class="reference internal" href="Section_errors.html#err-2"><span class="std std-ref">Section_errors 2</span></a>
describes how to report it.</li>
<li>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 <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>, with links
and attributions back to you.</li>
<li>Create a new Makefile.machine that can be added to the src/MAKE
directory.</li>
<li>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 <a class="reference internal" href="Section_tools.html"><span class="doc">Section_tools</span></a>. If you write
a new tool that users will find useful, it can be added to the LAMMPS
distribution.</li>
<li>LAMMPS is designed to be easy to extend with new code for features
like potentials, boundary conditions, diagnostic computations, etc.
<a class="reference internal" href="Section_modify.html"><span class="doc">This section</span></a> gives details. If you add a
feature of general interest, it can be added to the LAMMPS
distribution.</li>
<li>The Benchmark page of the <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a> 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.</li>
<li>You can send feedback for the User Comments page of the <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>. It might be added to the page. No promises.</li>
<li>Cash. Small denominations, unmarked bills preferred. Paper sack OK.
Leave on desk. VISA also accepted. Chocolate chip cookies
encouraged.</li>
</ul>
<hr class="docutils" />
</div>
<div class="section" id="acknowledgments-and-citations">
<span id="intro-5"></span><h2>1.5. Acknowledgments and citations</h2>
<p>LAMMPS development has been funded by the <a class="reference external" href="http://www.doe.gov">US Department of Energy</a> (DOE), through its CRADA, LDRD, ASCI, and Genomes-to-Life
programs and its <a class="reference external" href="http://www.sc.doe.gov/ascr/home.html">OASCR</a> and <a class="reference external" href="http://www.er.doe.gov/production/ober/ober_top.html">OBER</a> offices.</p>
<p>Specifically, work on the latest version was funded in part by the US
Department of Energy&#8217;s Genomics:GTL program
(<a class="reference external" href="http://www.doegenomestolife.org">www.doegenomestolife.org</a>) under the <a class="reference external" href="http://www.genomes2life.org">project</a>, &#8220;Carbon
Sequestration in Synechococcus Sp.: From Molecular Machines to
Hierarchical Modeling&#8221;.</p>
<p>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 <a class="reference external" href="http://lammps.sandia.gov">LAMMPS WWW Site</a>
(<a class="reference external" href="http://lammps.sandia.gov">http://lammps.sandia.gov</a>):</p>
<p>S. J. Plimpton, <strong>Fast Parallel Algorithms for Short-Range Molecular
Dynamics</strong>, J Comp Phys, 117, 1-19 (1995).</p>
<p>Other papers describing specific algorithms used in LAMMPS are listed
under the <a class="reference external" href="http://lammps.sandia.gov/cite.html">Citing LAMMPS link</a> of
the LAMMPS WWW page.</p>
<p>The <a class="reference external" href="http://lammps.sandia.gov/papers.html">Publications link</a> 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&#8217;ll be pleased to add them to the
<a class="reference external" href="http://lammps.sandia.gov/pictures.html">Pictures</a> or
<a class="reference external" href="http://lammps.sandia.gov/movies.html">Movies</a> pages of the LAMMPS WWW
site.</p>
<p>The core group of LAMMPS developers is at Sandia National Labs:</p>
<ul class="simple">
<li>Steve Plimpton, sjplimp at sandia.gov</li>
<li>Aidan Thompson, athomps at sandia.gov</li>
<li>Paul Crozier, pscrozi at sandia.gov</li>
</ul>
<p>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.</p>
<ul class="simple">
<li>Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM and USER-OMP packages</li>
<li>Roy Pollock (LLNL), Ewald and PPPM solvers</li>
<li>Mike Brown (ORNL), brownw at ornl.gov, GPU package</li>
<li>Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential</li>
<li>Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics</li>
<li>Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion</li>
<li>Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling</li>
<li>Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD</li>
<li>Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA package</li>
<li>Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field</li>
<li>Christoph Kloss (JKU), Christoph.Kloss at jku.at, USER-LIGGGHTS package for granular models and granular/fluid coupling</li>
<li>Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF</li>
<li>Georg Gunzenmuller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SPH package</li>
</ul>
<p>As discussed in <a class="reference internal" href="Section_history.html"><span class="doc">Section_history</span></a>, 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:</p>
<ul class="simple">
<li>John Carpenter (Mayo Clinic, formerly at Cray Research)</li>
<li>Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb)</li>
<li>Steve Lustig (Dupont)</li>
<li>Jim Belak (LLNL)</li>
</ul>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="Section_start.html" class="btn btn-neutral float-right" title="2. Getting Started" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="Manual.html" class="btn btn-neutral" title="LAMMPS Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2013 Sandia Corporation.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2/js/lightbox.min.js"></script>
<script type="text/javascript" src="_static/sphinxcontrib-images/LightBox2/lightbox2-customize/jquery-noconflict.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>