From c5d3274222a86168312450ba4f6188bb3c47a50d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer <akohlmey@gmail.com> Date: Thu, 23 Aug 2018 10:13:06 -0400 Subject: [PATCH] restore files --- doc/src/Packages_details.txt | 2000 ++++++++++++++++++++++++++++++++++ doc/src/Speed_kokkos.txt | 381 +++++++ 2 files changed, 2381 insertions(+) create mode 100644 doc/src/Packages_details.txt create mode 100644 doc/src/Speed_kokkos.txt diff --git a/doc/src/Packages_details.txt b/doc/src/Packages_details.txt new file mode 100644 index 0000000000..892774be38 --- /dev/null +++ b/doc/src/Packages_details.txt @@ -0,0 +1,2000 @@ +"Higher level section"_Packages.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +Package details :h3 + +Here is a brief description of all the standard and user packages in +LAMMPS. It lists authors (if applicable) and summarizes the package +contents. It has specific instructions on how to install the package, +including, if necessary, info on how to download or build any extra +library it requires. It also gives links to documentation, example +scripts, and pictures/movies (if available) that illustrate use of the +package. + +The majority of packages can be included in a LAMMPS build with a +single setting (-D PGK_NAME for CMake) or command ("make yes-name" for +make). See the "Build package"_Build_package.html doc page for more +info. A few packages may require additional steps; this is indicated +in the descriptions below. The "Build extras"_Build_extras.html doc +page gives those details. + +NOTE: To see the complete list of commands a package adds to LAMMPS, +you can examine 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 name +as contained in the file name. + +"ASPHERE"_#PKG-ASPHERE, +"BODY"_#PKG-BODY, +"CLASS2"_#PKG-CLASS2, +"COLLOID"_#PKG-COLLOID, +"COMPRESS"_#PKG-COMPRESS, +"CORESHELL"_#PKG-CORESHELL, +"DIPOLE"_#PKG-DIPOLE, +"GPU"_#PKG-GPU, +"GRANULAR"_#PKG-GRANULAR, +"KIM"_#PKG-KIM, +"KOKKOS"_#PKG-KOKKOS, +"KSPACE"_#PKG-KSPACE, +"LATTE"_#PKG-LATTE, +"MANYBODY"_#PKG-MANYBODY, +"MC"_#PKG-MC, +"MEAM"_#PKG-MEAM, +"MISC"_#PKG-MISC, +"MOLECULE"_#PKG-MOLECULE, +"MPIIO"_#PKG-MPIIO, +"MSCG"_#PKG-MSCG, +"OPT"_#PKG-OPT, +"PERI"_#PKG-PERI, +"POEMS"_#PKG-POEMS, +"PYTHON"_#PKG-PYTHON, +"QEQ"_#PKG-QEQ, +"REAX"_#PKG-REAX, +"REPLICA"_#PKG-REPLICA2, +"RIGID"_#PKG-RIGID, +"SHOCK"_#PKG-SHOCK, +"SNAP"_#PKG-SNAP, +"SPIN"_#PKG-SPIN, +"SRD"_#PKG-SRD, +"VORONOI"_#PKG-VORONOI :tb(c=6,ea=c) + +"USER-ATC"_#PKG-USER-ATC, +"USER-AWPMD"_#PKG-USER-AWPMD, +"USER-BOCS"_#PKG-USER-BOCS, +"USER-CGDNA"_#PKG-USER-CGDNA, +"USER-CGSDK"_#PKG-USER-CGSDK, +"USER-COLVARS"_#PKG-USER-COLVARS, +"USER-DIFFRACTION"_#PKG-USER-DIFFRACTION, +"USER-DPD"_#PKG-USER-DPD, +"USER-DRUDE"_#PKG-USER-DRUDE, +"USER-EFF"_#PKG-USER-EFF, +"USER-FEP"_#PKG-USER-FEP, +"USER-H5MD"_#PKG-USER-H5MD, +"USER-INTEL"_#PKG-USER-INTEL, +"USER-LB"_#PKG-USER-LB, +"USER-MANIFOLD"_#PKG-USER-MANIFOLD, +"USER-MEAMC"_#PKG-USER-MEAMC, +"USER-MESO"_#PKG-USER-MESO, +"USER-MGPT"_#PKG-USER-MGPT, +"USER-MISC"_#PKG-USER-MISC, +"USER-MOFFF"_#PKG-USER-MOFFF, +"USER-MOLFILE"_#PKG-USER-MOLFILE, +"USER-NETCDF"_#PKG-USER-NETCDF, +"USER-OMP"_#PKG-USER-OMP, +"USER-PHONON"_#PKG-USER-PHONON, +"USER-QMMM"_#PKG-USER-QMMM, +"USER-QTB"_#PKG-USER-QTB, +"USER-QUIP"_#PKG-USER-QUIP, +"USER-REAXC"_#PKG-USER-REAXC, +"USER-SMD"_#PKG-USER-SMD, +"USER-SMTBQ"_#PKG-USER-SMTBQ, +"USER-SPH"_#PKG-USER-SPH, +"USER-TALLY"_#PKG-USER-TALLY, +"USER-UEF"_#PKG-USER-UEF, +"USER-VTK"_#PKG-USER-VTK :tb(c=6,ea=c) + +:line + +ASPHERE package :link(PKG-ASPHERE),h4 + +[Contents:] + +Computes, time-integration fixes, and pair styles for aspherical +particle models including ellipsoids, 2d lines, and 3d triangles. + +[Supporting info:] + +src/ASPHERE: filenames -> commands +"Howto spherical"_Howto_spherical.html +"pair_style gayberne"_pair_gayberne.html +"pair_style resquared"_pair_resquared.html +"doc/PDF/pair_gayberne_extra.pdf"_PDF/pair_gayberne_extra.pdf +"doc/PDF/pair_resquared_extra.pdf"_PDF/pair_resquared_extra.pdf +examples/ASPHERE +examples/ellipse +http://lammps.sandia.gov/movies.html#line +http://lammps.sandia.gov/movies.html#tri :ul + +:line + +BODY package :link(PKG-BODY),h4 + +[Contents:] + +Body-style particles with internal structure. Computes, +time-integration fixes, pair styles, as well as the body styles +themselves. See the "Howto body"_Howto_body.html doc page for an +overview. + +[Supporting info:] + +src/BODY filenames -> commands +"Howto_body"_Howto_body.html +"atom_style body"_atom_style.html +"fix nve/body"_fix_nve_body.html +"pair_style body/nparticle"_pair_body_nparticle.html +examples/body :ul + +:line + +CLASS2 package :link(PKG-CLASS2),h4 + +[Contents:] + +Bond, angle, dihedral, improper, and pair styles for the COMPASS +CLASS2 molecular force field. + +[Supporting info:] + +src/CLASS2: filenames -> commands +"bond_style class2"_bond_class2.html +"angle_style class2"_angle_class2.html +"dihedral_style class2"_dihedral_class2.html +"improper_style class2"_improper_class2.html +"pair_style lj/class2"_pair_class2.html :ul + +:line + +COLLOID package :link(PKG-COLLOID),h4 + +[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. + +[Supporting info:] + +src/COLLOID: filenames -> commands +"fix wall/colloid"_fix_wall.html +"pair_style colloid"_pair_colloid.html +"pair_style yukawa/colloid"_pair_yukawa_colloid.html +"pair_style brownian"_pair_brownian.html +"pair_style lubricate"_pair_lubricate.html +"pair_style lubricateU"_pair_lubricateU.html +examples/colloid +examples/srd :ul + +:line + +COMPRESS package :link(PKG-COMPRESS),h4 + +[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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/COMPRESS: filenames -> commands +src/COMPRESS/README +lib/compress/README +"dump atom/gz"_dump.html +"dump cfg/gz"_dump.html +"dump custom/gz"_dump.html +"dump xyz/gz"_dump.html :ul + +:line + +CORESHELL package :link(PKG-CORESHELL),h4 + +[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"_compute_temp_cs.html command calculates the temperature of a +system with core/shell particles. See the "Howto +coreshell"_Howto_coreshell.html doc page for an overview of how to use +this package. + +[Author:] Hendrik Heenen (Technical U of Munich). + +[Supporting info:] + +src/CORESHELL: filenames -> commands +"Howto coreshell"_Howto_coreshell.html +"Howto polarizable"_Howto_polarizable.html +"compute temp/cs"_compute_temp_cs.html +"pair_style born/coul/long/cs"_pair_cs.html +"pair_style buck/coul/long/cs"_pair_cs.html +"pair_style lj/cut/coul/long/cs"_pair_lj.html +examples/coreshell :ul + +:line + +DIPOLE package :link(PKG-DIPOLE),h4 + +[Contents:] + +An atom style and several pair styles for point dipole models with +short-range or long-range interactions. + +[Supporting info:] + +src/DIPOLE: filenames -> commands +"atom_style dipole"_atom_style.html +"pair_style lj/cut/dipole/cut"_pair_dipole.html +"pair_style lj/cut/dipole/long"_pair_dipole.html +"pair_style lj/long/dipole/long"_pair_dipole.html +examples/dipole :ul + +:line + +GPU package :link(PKG-GPU),h4 + +[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. The "Speed +gpu"_Speed_gpu.html doc page 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"_Run_options.html. See +also the "KOKKOS"_#PKG-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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/GPU: filenames -> commands +src/GPU/README +lib/gpu/README +"Speed packages"_Speed_packages.html +"Speed gpu"_Speed_gpu.html +"Section 2.6 -sf gpu"_Run_options.html +"Section 2.6 -pk gpu"_Run_options.html +"package gpu"_package.html +"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +GRANULAR package :link(PKG-GRANULAR),h4 + +[Contents:] + +Pair styles and fixes for finite-size granular particles, which +interact with each other and boundaries via frictional and dissipative +potentials. + +[Supporting info:] + +src/GRANULAR: filenames -> commands +"Howto granular"_Howto_granular.html +"fix pour"_fix_pour.html +"fix wall/gran"_fix_wall_gran.html +"pair_style gran/hooke"_pair_gran.html +"pair_style gran/hertz/history"_pair_gran.html +examples/granregion +examples/pour +bench/in.chute +http://lammps.sandia.gov/pictures.html#jamming +http://lammps.sandia.gov/movies.html#hopper +http://lammps.sandia.gov/movies.html#dem +http://lammps.sandia.gov/movies.html#brazil +http://lammps.sandia.gov/movies.html#granregion :ul + +:line + +KIM package :link(PKG-KIM),h4 + +[Contents:] + +A "pair_style kim"_pair_kim.html 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"_pair_kim.html command uses. He +developed the pair style in collaboration with Valeriu Smirichinski (U +Minnesota). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/KIM: filenames -> commands +src/KIM/README +lib/kim/README +"pair_style kim"_pair_kim.html +examples/kim :ul + +:line + +KOKKOS package :link(PKG-KOKKOS),h4 + +[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. The "Speed kokkos"_Speed_kokkos.html doc page 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"_Run_options.html. Also see the "GPU"_#PKG-GPU, "OPT"_#PKG-OPT, +"USER-INTEL"_#PKG-USER-INTEL, and "USER-OMP"_#PKG-USER-OMP packages, which +have styles optimized for CPUs, KNLs, and GPUs. + +You must have a C++11 compatible compiler to use this package. +KOKKOS makes extensive use of advanced C++ features, which can +expose compiler bugs, especially when compiling for maximum +performance at high optimization levels. Please see the file +lib/kokkos/README for a list of compilers and their respective +platforms, that are known to work. + +[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"_https://github.com/kokkos +which was developed by Carter Edwards, Christian Trott, and others at +Sandia, and which is included in the LAMMPS distribution in +lib/kokkos. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/KOKKOS: filenames -> commands +src/KOKKOS/README +lib/kokkos/README +"Speed packages"_Speed_packages.html +"Speed kokkos"_Speed_kokkos.html +"Section 2.6 -k on ..."_Run_options.html +"Section 2.6 -sf kk"_Run_options.html +"Section 2.6 -pk kokkos"_Run_options.html +"package kokkos"_package.html +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +KSPACE package :link(PKG-KSPACE),h4 + +[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:] + +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 the "Build +settings"_Build_settings.html doc page for details on how to select +different FFT options for your LAMPMS build. + +[Supporting info:] + +src/KSPACE: filenames -> commands +"kspace_style"_kspace_style.html +"doc/PDF/kspace.pdf"_PDF/kspace.pdf +"Howto tip3p"_Howto_tip3p.html +"Howto tip4p"_Howto_tip4p.html +"Howto spc"_Howto_spc.html +"pair_style coul"_pair_coul.html +"Commands pair"_Commands_pair.html page for styles with "long" or "msm" in name +examples/peptide +bench/in.rhodo :ul + +:line + +LATTE package :link(PKG-LATTE),h4 + +[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"_latte_home. A brief technical +description is given with the "fix latte"_fix_latte.html command. + +:link(latte_home,https://github.com/lanl/LATTE) + +[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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/LATTE: filenames -> commands +src/LATTE/README +lib/latte/README +"fix latte"_fix_latte.html +examples/latte +"LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS :ul + +:line + +MANYBODY package :link(PKG-MANYBODY),h4 + +[Contents:] + +A variety of manybody and bond-order potentials. These include +(AI)REBO, BOP, EAM, EIM, Stillinger-Weber, and Tersoff potentials. + +[Supporting info:] + +src/MANYBODY: filenames -> commands +"Commands pair"_Commands_pair.html page +examples/comb +examples/eim +examples/nb3d +examples/shear +examples/streitz +examples/vashishta +bench/in.eam :ul + +:line + +MC package :link(PKG-MC),h4 + +[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. + +[Supporting info:] + +src/MC: filenames -> commands +"fix atom/swap"_fix_atom_swap.html +"fix bond/break"_fix_bond_break.html +"fix bond/create"_fix_bond_create.html +"fix bond/swap"_fix_bond_swap.html +"fix gcmc"_fix_gcmc.html +"pair_style dsmc"_pair_dsmc.html +http://lammps.sandia.gov/movies.html#gcmc :ul + +:line + +MEAM package :link(PKG-MEAM),h4 + +[Contents:] + +A pair style for the modified embedded atom (MEAM) potential. + +Please note that the use of the MEAM package is discouraged as +it has been superseded by the "USER-MEAMC"_#PKG-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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +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"_pair_meam.html +examples/meam :ul + +:line + +MISC package :link(PKG-MISC),h4 + +[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. + +[Supporting info:] + +src/MISC: filenames -> commands +"compute ti"_compute_ti.html +"fix evaporate"_fix_evaporate.html +"fix orient/fcc"_fix_orient.html +"fix ttm"_fix_ttm.html +"fix thermal/conductivity"_fix_thermal_conductivity.html +"fix viscosity"_fix_viscosity.html +examples/KAPPA +examples/VISCOSITY +http://lammps.sandia.gov/pictures.html#ttm +http://lammps.sandia.gov/movies.html#evaporation :ul + +:line + +MOLECULE package :link(PKG-MOLECULE),h4 + +[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. + +[Supporting info:] + +src/MOLECULE: filenames -> commands +"atom_style"_atom_style.html +"bond_style"_bond_style.html +"angle_style"_angle_style.html +"dihedral_style"_dihedral_style.html +"improper_style"_improper_style.html +"pair_style hbond/dreiding/lj"_pair_hbond_dreiding.html +"pair_style lj/charmm/coul/charmm"_pair_charmm.html +"Howto bioFF"_Howto_bioFF.html +examples/cmap +examples/dreiding +examples/micelle, +examples/peptide +bench/in.chain +bench/in.rhodo :ul + +:line + +MPIIO package :link(PKG-MPIIO),h4 + +[Contents:] + +Support for parallel output/input of dump and restart files via the +MPIIO library. It adds "dump styles"_dump.html with a "mpiio" in +their style name. Restart files with an ".mpiio" suffix are also +written and read in parallel. + +[Supporting info:] + +src/MPIIO: filenames -> commands +"dump"_dump.html +"restart"_restart.html +"write_restart"_write_restart.html +"read_restart"_read_restart.html :ul + +:line + +MSCG package :link(PKG-mscg),h4 + +[Contents:] + +A "fix mscg"_fix_mscg.html command which can parameterize a +Multi-Scale Coarse-Graining (MSCG) model using the open-source "MS-CG +library"_mscg_home. + +:link(mscg_home,https://github.com/uchicago-voth/MSCG-release) + +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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/MSCG: filenames -> commands +src/MSCG/README +lib/mscg/README +examples/mscg :ul + +:line + +OPT package :link(PKG-OPT),h4 + +[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. The "Speed opt"_Speed_opt.html doc page 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"_Run_options.html. See also the "KOKKOS"_#PKG-KOKKOS, +"USER-INTEL"_#PKG-USER-INTEL, and "USER-OMP"_#PKG-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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/OPT: filenames -> commands +"Speed packages"_Speed_packages.html +"Speed opt"_Speed_opt.html +"Section 2.6 -sf opt"_Run_options.html +"Commands pair"_Commands_pair.html for styles followed by (t) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +PERI package :link(PKG-PERI),h4 + +[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). + +[Supporting info:] + +src/PERI: filenames -> commands +"doc/PDF/PDLammps_overview.pdf"_PDF/PDLammps_overview.pdf +"doc/PDF/PDLammps_EPS.pdf"_PDF/PDLammps_EPS.pdf +"doc/PDF/PDLammps_VES.pdf"_PDF/PDLammps_VES.pdf +"atom_style peri"_atom_style.html +"pair_style peri/*"_pair_peri.html +"compute damage/atom"_compute_damage_atom.html +"compute plasticity/atom"_compute_plasticity_atom.html +examples/peri +http://lammps.sandia.gov/movies.html#peri :ul + +:line + +POEMS package :link(PKG-POEMS),h4 + +[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:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/POEMS: filenames -> commands +src/POEMS/README +lib/poems/README +"fix poems"_fix_poems.html +examples/rigid :ul + +:line + +PYTHON package :link(PKG-PYTHON),h4 + +[Contents:] + +A "python"_python.html command which allow you to execute Python code +from a LAMMPS input script. The code can be in a separate file or +embedded in the input script itself. See the "Python +call"_Python_call.html doc page for an overview of using Python from +LAMMPS in this manner and all the "Python"_Python_head.html doc pages +for other ways to use LAMMPS and Python together. + +NOTE: Building with the PYTHON package assumes you have a Python +shared library available on your system, which needs to be a Python 2 +version, 2.6 or later. Python 3 is not yet supported. See the +lib/python/README for more details. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/PYTHON: filenames -> commands +"Python call"_Python_head.html +lib/python/README +examples/python :ul + +:line + +QEQ package :link(PKG-QEQ),h4 + +[Contents:] + +Several fixes for performing charge equilibration (QEq) via different +algorithms. These can be used with pair styles that perform QEq as +part of their formulation. + +[Supporting info:] + +src/QEQ: filenames -> commands +"fix qeq/*"_fix_qeq.html +examples/qeq +examples/streitz :ul + +:line + +REAX package :link(PKG-REAX),h4 + +[Contents:] + +NOTE: the use of the REAX package is discouraged, as it is no longer +maintained. Please use the "USER-REAXC"_#PKG-USER-REAXC package instead, +and possibly the KOKKOS enabled variant of that, which has a more robust +memory management. + +A pair style which wraps a Fortran library which implements the ReaxFF +potential, which is a universal reactive force field. Also included is +a "fix reax/bonds"_fix_reax_bonds.html command for monitoring molecules +as bonds are created and destroyed. + +[Author:] Aidan Thompson (Sandia). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/REAX: filenames -> commands +lib/reax/README +"pair_style reax"_pair_reax.html +"fix reax/bonds"_fix_reax_bonds.html +examples/reax :ul + +:line + +REPLICA package :link(PKG-REPLICA2),h4 + +[Contents:] + +A collection of multi-replica methods which can be used when running +multiple LAMMPS simulations (replicas). See the "Howto +replica"_Howto_replica.html doc page for an overview of how to run +multi-replica simulations in LAMMPS. Methods in the package include +nudged elastic band (NEB), parallel replica dynamics (PRD), +temperature accelerated dynamics (TAD), parallel tempering, and a +verlet/split algorithm for performing long-range Coulombics on one set +of processors, and the remainder of the force field calcalation on +another set. + +[Supporting info:] + +src/REPLICA: filenames -> commands +"Howto replica"_Howto_replica.html +"neb"_neb.html +"prd"_prd.html +"tad"_tad.html +"temper"_temper.html, +"run_style verlet/split"_run_style.html +examples/neb +examples/prd +examples/tad :ul + +:line + +RIGID package :link(PKG-RIGID),h4 + +[Contents:] + +Fixes which enforce rigid constraints on collections of atoms or +particles. This includes SHAKE and RATTLE, as well as varous +rigid-body integrators for a few large bodies or many small bodies. +Also several computes which calculate properties of rigid bodies. + +[Supporting info:] + +src/RIGID: filenames -> commands +"compute erotate/rigid"_compute_erotate_rigid.html +fix shake"_fix_shake.html +"fix rattle"_fix_shake.html +"fix rigid/*"_fix_rigid.html +examples/ASPHERE +examples/rigid +bench/in.rhodo +http://lammps.sandia.gov/movies.html#box +http://lammps.sandia.gov/movies.html#star :ul + +:line + +SHOCK package :link(PKG-SHOCK),h4 + +[Contents:] + +Fixes for running impact simulations where a shock-wave passes through +a material. + +[Supporting info:] + +src/SHOCK: filenames -> commands +"fix append/atoms"_fix_append_atoms.html +"fix msst"_fix_msst.html +"fix nphug"_fix_nphug.html +"fix wall/piston"_fix_wall_piston.html +examples/hugoniostat +examples/msst :ul + +:line + +SNAP package :link(PKG-SNAP),h4 + +[Contents:] + +A pair style for the spectral neighbor analysis potential (SNAP). +SNAP is methodology for deriving a highly accurate classical potential +fit to a large archive of quantum mechanical (DFT) data. Also several +computes which analyze attributes of the potential. + +[Author:] Aidan Thompson (Sandia). + +[Supporting info:] + +src/SNAP: filenames -> commands +"pair_style snap"_pair_snap.html +"compute sna/atom"_compute_sna_atom.html +"compute snad/atom"_compute_sna_atom.html +"compute snav/atom"_compute_sna_atom.html +examples/snap :ul + +:line + +SPIN package :link(PKG-SPIN),h4 + +[Contents:] + +Model atomic magnetic spins classically, coupled to atoms moving in +the usual manner via MD. Various pair, fix, and compute styles. + +[Author:] Julian Tranchida (Sandia). + +[Supporting info:] + +src/SPIN: filenames -> commands +"Howto spins"_Howto_spins.html +"pair_style spin/dmi"_pair_spin_dmi.html +"pair_style spin/exchange"_pair_spin_exchange.html +"pair_style spin/magelec"_pair_spin_magelec.html +"pair_style spin/neel"_pair_spin_neel.html +"fix nve/spin"_fix_nve_spin.html +"fix precession/spin"_fix_precession_spin.html +"compute spin"_compute_spin.html +examples/SPIN :ul + +:line + +SRD package :link(PKG-SRD),h4 + +[Contents:] + +A pair of fixes which implement the Stochastic Rotation Dynamics (SRD) +method for coarse-graining of a solvent, typically around large +colloidal particles. + +[Supporting info:] + +src/SRD: filenames -> commands +"fix srd"_fix_srd.html +"fix wall/srd"_fix_wall_srd.html +examples/srd +examples/ASPHERE +http://lammps.sandia.gov/movies.html#tri +http://lammps.sandia.gov/movies.html#line +http://lammps.sandia.gov/movies.html#poly :ul + +:line + +VORONOI package :link(PKG-VORONOI),h4 + +[Contents:] + +A compute command which calculates the Voronoi tesselation of a +collection of atoms by wrapping the "Voro++ library"_voro_home. This +can be used to calculate the local volume or each atoms or its near +neighbors. + +:link(voro_home,http://math.lbl.gov/voro++) + +To use this package you must have the Voro++ library available on your +system. + +[Author:] Daniel Schwen (INL) while at LANL. The open-source Voro++ +library was written by Chris Rycroft (Harvard U) while at UC Berkeley +and LBNL. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/VORONOI: filenames -> commands +src/VORONOI/README +lib/voronoi/README +"compute voronoi/atom"_compute_voronoi_atom.html +examples/voronoi :ul + +:line + +USER-ATC package :link(PKG-USER-ATC),h4 + +[Contents:] + +ATC stands for atoms-to-continuum. This package implements a "fix +atc"_fix_atc.html command to either couple molecular dynamics with +continuum finite element equations or perform on-the-fly conversion of +atomic information to continuum fields. + +[Authors:] Reese Jones, Jeremy Templeton, Jon Zimmerman (Sandia). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-ATC: filenames -> commands +src/USER-ATC/README +"fix atc"_fix_atc.html +examples/USER/atc +http://lammps.sandia.gov/pictures.html#atc :ul + +:line + +USER-AWPMD package :link(PKG-USER-AWPMD),h4 + +[Contents:] + +AWPMD stands for Antisymmetrized Wave Packet Molecular Dynamics. This +package implements an atom, pair, and fix style which allows electrons +to be treated as explicit particles in a classical molecular dynamics +model. + +[Author:] Ilya Valuev (JIHT, Russia). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-AWPMD: filenames -> commands +src/USER-AWPMD/README +"pair_style awpmd/cut"_pair_awpmd.html +examples/USER/awpmd :ul + +:line + +USER-BOCS package :link(PKG-USER-BOCS),h4 + +[Contents:] + +This package provides "fix bocs"_fix_bocs.html, a modified version +of "fix npt"_fix_nh.html which includes the pressure correction to +the barostat as outlined in: + +N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that +accurately describe the structure, pressure, and compressibility of +molecular liquids," J. Chem. Phys. 143, 243148 (2015). + +[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The +Pennsylvania State University) + +[Supporting info:] + +The USER-BOCS user package for LAMMPS is part of the BOCS software package: +"https://github.com/noid-group/BOCS"_https://github.com/noid-group/BOCS + +See the following reference for information about the entire package: + +Dunn, NJH; Lebold, KM; DeLyser, MR; Rudzinski, JF; Noid, WG. +"BOCS: Bottom-Up Open-Source Coarse-Graining Software." +J. Phys. Chem. B. 122, 13, 3363-3377 (2018). + +Example inputs are in the examples/USER/bocs folder. + +:line + +USER-CGDNA package :link(PKG-USER-CGDNA),h4 + +[Contents:] + +Several pair styles, a bond style, and integration fixes for +coarse-grained models of single- and double-stranded DNA based on the +oxDNA model of Doye, Louis and Ouldridge at the University of Oxford. +This includes Langevin-type rigid-body integrators with improved +stability. + +[Author:] Oliver Henrich (University of Strathclyde, Glasgow). + +[Supporting info:] + +src/USER-CGDNA: filenames -> commands +/src/USER-CGDNA/README +"pair_style oxdna/*"_pair_oxdna.html +"pair_style oxdna2/*"_pair_oxdna2.html +"bond_style oxdna/*"_bond_oxdna.html +"bond_style oxdna2/*"_bond_oxdna.html +"fix nve/dotc/langevin"_fix_nve_dotc_langevin.html :ul + +:line + +USER-CGSDK package :link(PKG-USER-CGSDK),h4 + +[Contents:] + +Several pair styles and an angle style which implement the +coarse-grained SDK model of Shinoda, DeVane, and Klein which enables +simulation of ionic liquids, electrolytes, lipids and charged amino +acids. + +[Author:] Axel Kohlmeyer (Temple U). + +[Supporting info:] + +src/USER-CGSDK: filenames -> commands +src/USER-CGSDK/README +"pair_style lj/sdk/*"_pair_sdk.html +"angle_style sdk"_angle_sdk.html +examples/USER/cgsdk +http://lammps.sandia.gov/pictures.html#cg :ul + +:line + +USER-COLVARS package :link(PKG-USER-COLVARS),h4 + +[Contents:] + +COLVARS stands for collective variables, which can be used to +implement various enhanced sampling methods, including Adaptive +Biasing Force, Metadynamics, Steered MD, Umbrella Sampling and +Restraints. A "fix colvars"_fix_colvars.html command is implemented +which wraps a COLVARS library, which implements these methods. +simulations. + +[Authors:] The COLVARS library is written and maintained by +Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) +and Jerome Henin (LISM, CNRS, Marseille, France), originally for +the NAMD MD code, but with portability in mind. Axel Kohlmeyer +(Temple U) provided the interface to LAMMPS. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-COLVARS: filenames -> commands +"doc/PDF/colvars-refman-lammps.pdf"_PDF/colvars-refman-lammps.pdf +src/USER-COLVARS/README +lib/colvars/README +"fix colvars"_fix_colvars.html +examples/USER/colvars :ul + +:line + +USER-DIFFRACTION package :link(PKG-USER-DIFFRACTION),h4 + +[Contents:] + +Two computes and a fix for calculating x-ray and electron diffraction +intensities based on kinematic diffraction theory. + +[Author:] Shawn Coleman while at the U Arkansas. + +[Supporting info:] + +src/USER-DIFFRACTION: filenames -> commands +"compute saed"_compute_saed.html +"compute xrd"_compute_xrd.html +"fix saed/vtk"_fix_saed_vtk.html +examples/USER/diffraction :ul + +:line + +USER-DPD package :link(PKG-USER-DPD),h4 + +[Contents:] + +DPD stands for dissipative particle dynamics. This package implements +coarse-grained DPD-based models for energetic, reactive molecular +crystalline materials. It includes many pair styles specific to these +systems, including for reactive DPD, where each particle has internal +state for multiple species and a coupled set of chemical reaction ODEs +are integrated each timestep. Highly accurate time integrators for +isothermal, isoenergetic, isobaric and isenthalpic conditions are +included. These enable long timesteps via the Shardlow splitting +algorithm. + +[Authors:] Jim Larentzos (ARL), Tim Mattox (Engility Corp), and and John +Brennan (ARL). + +[Supporting info:] + +src/USER-DPD: filenames -> commands +/src/USER-DPD/README +"compute dpd"_compute_dpd.html +"compute dpd/atom"_compute_dpd_atom.html +"fix eos/cv"_fix_eos_table.html +"fix eos/table"_fix_eos_table.html +"fix eos/table/rx"_fix_eos_table_rx.html +"fix shardlow"_fix_shardlow.html +"fix rx"_fix_rx.html +"pair_style table/rx"_pair_table_rx.html +"pair_style dpd/fdt"_pair_dpd_fdt.html +"pair_style dpd/fdt/energy"_pair_dpd_fdt.html +"pair_style exp6/rx"_pair_exp6_rx.html +"pair_style multi/lucy"_pair_multi_lucy.html +"pair_style multi/lucy/rx"_pair_multi_lucy_rx.html +examples/USER/dpd :ul + +:line + +USER-DRUDE package :link(PKG-USER-DRUDE),h4 + +[Contents:] + +Fixes, pair styles, and a compute to simulate thermalized Drude +oscillators as a model of polarization. See the "Howto +drude"_Howto_drude.html and "Howto drude2"_Howto_drude2.html doc pages +for an overview of how to use the package. There are auxiliary tools +for using this package in tools/drude. + +[Authors:] Alain Dequidt (U Blaise Pascal Clermont-Ferrand), Julien +Devemy (CNRS), and Agilio Padua (U Blaise Pascal). + +[Supporting info:] + +src/USER-DRUDE: filenames -> commands +"Howto drude"_Howto_drude.html +"Howto drude2"_Howto_drude2.html +"Howto polarizable"_Howto_polarizable.html +src/USER-DRUDE/README +"fix drude"_fix_drude.html +"fix drude/transform/*"_fix_drude_transform.html +"compute temp/drude"_compute_temp_drude.html +"pair_style thole"_pair_thole.html +"pair_style lj/cut/thole/long"_pair_thole.html +examples/USER/drude +tools/drude :ul + +:line + +USER-EFF package :link(PKG-USER-EFF),h4 + +[Contents:] + +EFF stands for electron force field which allows a classical MD code +to model electrons as particles of variable radius. This package +contains atom, pair, fix and compute styles which implement the eFF as +described in A. Jaramillo-Botero, J. Su, Q. An, and W.A. Goddard III, +JCC, 2010. The eFF potential was first introduced by Su and Goddard, +in 2007. There are auxiliary tools for using this package in +tools/eff; see its README file. + +[Author:] Andres Jaramillo-Botero (CalTech). + +[Supporting info:] + +src/USER-EFF: filenames -> commands +src/USER-EFF/README +"atom_style electron"_atom_style.html +"fix nve/eff"_fix_nve_eff.html +"fix nvt/eff"_fix_nh_eff.html +"fix npt/eff"_fix_nh_eff.html +"fix langevin/eff"_fix_langevin_eff.html +"compute temp/eff"_compute_temp_eff.html +"pair_style eff/cut"_pair_eff.html +"pair_style eff/inline"_pair_eff.html +examples/USER/eff +tools/eff/README +tools/eff +http://lammps.sandia.gov/movies.html#eff :ul + +:line + +USER-FEP package :link(PKG-USER-FEP),h4 + +[Contents:] + +FEP stands for free energy perturbation. This package provides +methods for performing FEP simulations by using a "fix +adapt/fep"_fix_adapt_fep.html command with soft-core pair potentials, +which have a "soft" in their style name. There are auxiliary tools +for using this package in tools/fep; see its README file. + +[Author:] Agilio Padua (Universite Blaise Pascal Clermont-Ferrand) + +[Supporting info:] + +src/USER-FEP: filenames -> commands +src/USER-FEP/README +"fix adapt/fep"_fix_adapt_fep.html +"compute fep"_compute_fep.html +"pair_style */soft"_pair_lj_soft.html +examples/USER/fep +tools/fep/README +tools/fep :ul + +:line + +USER-H5MD package :link(PKG-USER-H5MD),h4 + +[Contents:] + +H5MD stands for HDF5 for MD. "HDF5"_HDF5 is a portable, binary, +self-describing file format, used by many scientific simulations. +H5MD is a format for molecular simulations, built on top of HDF5. +This package implements a "dump h5md"_dump_h5md.html command to output +LAMMPS snapshots in this format. + +:link(HDF5,http://www.hdfgroup.org/HDF5) + +To use this package you must have the HDF5 library available on your +system. + +[Author:] Pierre de Buyl (KU Leuven) created both the package and the +H5MD format. + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-H5MD: filenames -> commands +src/USER-H5MD/README +lib/h5md/README +"dump h5md"_dump_h5md.html :ul + +:line + +USER-INTEL package :link(PKG-USER-INTEL),h4 + +[Contents:] + +Dozens of pair, fix, bond, angle, dihedral, improper, and kspace +styles which are optimized for Intel CPUs and KNLs (Knights Landing). +All of them have an "intel" in their style name. The "Speed +intel"_Speed_intel.html doc page gives details of what hardware and +compilers are required on your system, and how to build and use this +package. Its styles can be invoked at run time via the "-sf intel" or +"-suffix intel" "command-line switches"_Run_options.html. Also see +the "KOKKOS"_#PKG-KOKKOS, "OPT"_#PKG-OPT, and "USER-OMP"_#PKG-USER-OMP packages, +which have styles optimized for CPUs and KNLs. + +You need to have an Intel compiler, version 14 or higher to take full +advantage of this package. While compilation with GNU compilers is +supported, performance will be suboptimal. + +NOTE: the USER-INTEL package contains styles that require using the +-restrict flag, when compiling with Intel compilers. + +[Author:] Mike Brown (Intel). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-INTEL: filenames -> commands +src/USER-INTEL/README +"Speed packages"_Speed_packages.html +"Speed intel"_Speed_intel.html +"Section 2.6 -sf intel"_Run_options.html +"Section 2.6 -pk intel"_Run_options.html +"package intel"_package.html +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i) +src/USER-INTEL/TEST +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +USER-LB package :link(PKG-USER-LB),h4 + +[Contents:] + +Fixes which implement a background Lattice-Boltzmann (LB) fluid, which +can be used to model MD particles influenced by hydrodynamic forces. + +[Authors:] Frances Mackay and Colin Denniston (University of Western +Ontario). + +[Supporting info:] + +src/USER-LB: filenames -> commands +src/USER-LB/README +"fix lb/fluid"_fix_lb_fluid.html +"fix lb/momentum"_fix_lb_momentum.html +"fix lb/viscous"_fix_lb_viscous.html +examples/USER/lb :ul + +:line + +USER-MGPT package :link(PKG-USER-MGPT),h4 + +[Contents:] + +A pair style which provides a fast implementation of the quantum-based +MGPT multi-ion potentials. The MGPT or model GPT method derives from +first-principles DFT-based generalized pseudopotential theory (GPT) +through a series of systematic approximations valid for mid-period +transition metals with nearly half-filled d bands. The MGPT method +was originally developed by John Moriarty at LLNL. The pair style in +this package calculates forces and energies using an optimized +matrix-MGPT algorithm due to Tomas Oppelstrup at LLNL. + +[Authors:] Tomas Oppelstrup and John Moriarty (LLNL). + +[Supporting info:] + +src/USER-MGPT: filenames -> commands +src/USER-MGPT/README +"pair_style mgpt"_pair_mgpt.html +examples/USER/mgpt :ul + +:line + +USER-MISC package :link(PKG-USER-MISC),h4 + +[Contents:] + +A potpourri of (mostly) unrelated features contributed to LAMMPS by +users. Each feature is a single fix, compute, pair, bond, angle, +dihedral, improper, or command style. + +[Authors:] The author for each style in the package is listed in the +src/USER-MISC/README file. + +[Supporting info:] + +src/USER-MISC: filenames -> commands +src/USER-MISC/README +one doc page per individual command listed in src/USER-MISC/README +examples/USER/misc :ul + +:line + +USER-MANIFOLD package :link(PKG-USER-MANIFOLD),h4 + +[Contents:] + +Several fixes and a "manifold" class which enable simulations of +particles constrained to a manifold (a 2D surface within the 3D +simulation box). This is done by applying the RATTLE constraint +algorithm to formulate single-particle constraint functions +g(xi,yi,zi) = 0 and their derivative (i.e. the normal of the manifold) +n = grad(g). + +[Author:] Stefan Paquay (until 2017: Eindhoven University of +Technology (TU/e), The Netherlands; since 2017: Brandeis University, +Waltham, MA, USA) + +[Supporting info:] + +src/USER-MANIFOLD: filenames -> commands +src/USER-MANIFOLD/README +"Howto manifold"_Howto_manifold.html +"fix manifoldforce"_fix_manifoldforce.html +"fix nve/manifold/rattle"_fix_nve_manifold_rattle.html +"fix nvt/manifold/rattle"_fix_nvt_manifold_rattle.html +examples/USER/manifold +http://lammps.sandia.gov/movies.html#manifold :ul + +:line + +USER-MEAMC package :link(PKG-USER-MEAMC),h4 + +[Contents:] + +A pair style for the modified embedded atom (MEAM) potential +translated from the Fortran version in the "MEAM"_MEAM package +to plain C++. In contrast to the MEAM package, no library +needs to be compiled and the pair style can be instantiated +multiple times. + +[Author:] Sebastian Huetter, (Otto-von-Guericke University Magdeburg) +based on the Fortran version of Greg Wagner (Northwestern U) while at +Sandia. + +[Supporting info:] + +src/USER-MEAMC: filenames -> commands +src/USER-MEAMC/README +"pair_style meam/c"_pair_meam.html +examples/meam :ul + +:line + +USER-MESO package :link(PKG-USER-MESO),h4 + +[Contents:] + +Several extensions of the the dissipative particle dynamics (DPD) +method. Specifically, energy-conserving DPD (eDPD) that can model +non-isothermal processes, many-body DPD (mDPD) for simulating +vapor-liquid coexistence, and transport DPD (tDPD) for modeling +advection-diffusion-reaction systems. The equations of motion of these +DPD extensions are integrated through a modified velocity-Verlet (MVV) +algorithm. + +[Author:] Zhen Li (Division of Applied Mathematics, Brown University) + +[Supporting info:] + +src/USER-MESO: filenames -> commands +src/USER-MESO/README +"atom_style edpd"_atom_style.html +"pair_style edpd"_pair_meso.html +"pair_style mdpd"_pair_meso.html +"pair_style tdpd"_pair_meso.html +"fix mvv/dpd"_fix_mvv_dpd.html +examples/USER/meso +http://lammps.sandia.gov/movies.html#mesodpd :ul + +:line + +USER-MOFFF package :link(PKG-USER-MOFFF),h4 + +[Contents:] + +Pair, angle and improper styles needed to employ the MOF-FF +force field by Schmid and coworkers with LAMMPS. +MOF-FF is a first principles derived force field with the primary aim +to simulate MOFs and related porous framework materials, using spherical +Gaussian charges. It is described in S. Bureekaew et al., Phys. Stat. Sol. B +2013, 250, 1128-1141. +For the usage of MOF-FF see the example in the example directory as +well as the "MOF+"_MOFplus website. + +:link(MOFplus,https://www.mofplus.org/content/show/MOF-FF) + +[Author:] Hendrik Heenen (Technical U of Munich), +Rochus Schmid (Ruhr-University Bochum). + +[Supporting info:] + +src/USER-MOFFF: filenames -> commands +src/USER-MOFFF/README +"pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html +"angle_style class2"_angle_class2.html +"angle_style cosine/buck6d"_angle_cosine_buck6d.html +"improper_style inversion/harmonic"_improper_inversion_harmonic.html +examples/USER/mofff :ul + +:line + +USER-MOLFILE package :link(PKG-USER-MOLFILE),h4 + +[Contents:] + +A "dump molfile"_dump_molfile.html command which uses molfile plugins +that are bundled with the "VMD"_vmd_home +molecular visualization and analysis program, to enable LAMMPS to dump +snapshots in formats compatible with various molecular simulation +tools. + +:link(vmd_home,http://www.ks.uiuc.edu/Research/vmd) + +To use this package you must have the desired VMD plugins available on +your system. + +Note that this package only provides the interface code, not the +plugins themselves, which will be accessed when requesting a specific +plugin via the "dump molfile"_dump_molfile.html command. Plugins can +be obtained from a VMD installation which has to match the platform +that you are using to compile LAMMPS for. By adding plugins to VMD, +support for new file formats can be added to LAMMPS (or VMD or other +programs that use them) without having to recompile the application +itself. More information about the VMD molfile plugins can be found +at +"http://www.ks.uiuc.edu/Research/vmd/plugins/molfile"_http://www.ks.uiuc.edu/Research/vmd/plugins/molfile. + +[Author:] Axel Kohlmeyer (Temple U). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-MOLFILE: filenames -> commands +src/USER-MOLFILE/README +lib/molfile/README +"dump molfile"_dump_molfile.html :ul + +:line + +USER-NETCDF package :link(PKG-USER-NETCDF),h4 + +[Contents:] + +Dump styles for writing NetCDF formatted dump files. NetCDF is a +portable, binary, self-describing file format developed on top of +HDF5. The file contents follow the AMBER NetCDF trajectory conventions +(http://ambermd.org/netcdf/nctraj.xhtml), but include extensions. + +To use this package you must have the NetCDF library available on your +system. + +Note that NetCDF files can be directly visualized with the following +tools: + +"Ovito"_ovito (Ovito supports the AMBER convention and the extensions mentioned above) +"VMD"_vmd_home +"AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul + +:link(ovito,http://www.ovito.org) +:link(atomeye,http://www.libatoms.org) + +[Author:] Lars Pastewka (Karlsruhe Institute of Technology). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-NETCDF: filenames -> commands +src/USER-NETCDF/README +lib/netcdf/README +"dump netcdf"_dump_netcdf.html :ul + +:line + +USER-OMP package :link(PKG-USER-OMP),h4 + +[Contents:] + +Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and +kspace styles which are altered to enable threading on many-core CPUs +via OpenMP directives. All of them have an "omp" in their style name. +The "Speed omp"_Speed_omp.html doc page gives details of what hardware +and compilers are required on your system, and how to build and use +this package. Its styles can be invoked at run time via the "-sf omp" +or "-suffix omp" "command-line switches"_Run_options.html. Also see +the "KOKKOS"_#PKG-KOKKOS, "OPT"_#PKG-OPT, and "USER-INTEL"_#PKG-USER-INTEL +packages, which have styles optimized for CPUs. + +[Author:] Axel Kohlmeyer (Temple U). + +NOTE: To enable multi-threading support the compile flag "-fopenmp" +and the link flag "-fopenmp" (for GNU compilers, you have to look up +the equivalent flags for other compilers) must be used to build LAMMPS. +When using Intel compilers, also the "-restrict" flag is required. +The USER-OMP package can be compiled without enabling OpenMP; then +all code will be compiled as serial and the only improvement over the +regular styles are some data access optimization. These flags should +be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine. +See src/MAKE/OPTIONS/Makefile.omp for an example. + +Once you have an appropriate Makefile.machine, you can +install/un-install the package and build LAMMPS in the usual manner: + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-OMP: filenames -> commands +src/USER-OMP/README +"Speed packages"_Speed_packages.html +"Speed omp"_Speed_omp.html +"Section 2.6 -sf omp"_Run_options.html +"Section 2.6 -pk omp"_Run_options.html +"package omp"_package.html +"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o) +"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul + +:line + +USER-PHONON package :link(PKG-USER-PHONON),h4 + +[Contents:] + +A "fix phonon"_fix_phonon.html command that calculates dynamical +matrices, which can then be used to compute phonon dispersion +relations, directly from molecular dynamics simulations. + +[Author:] Ling-Ti Kong (Shanghai Jiao Tong University). + +[Supporting info:] + +src/USER-PHONON: filenames -> commands +src/USER-PHONON/README +"fix phonon"_fix_phonon.html +examples/USER/phonon :ul + +:line + +USER-QMMM package :link(PKG-USER-QMMM),h4 + +[Contents:] + +A "fix qmmm"_fix_qmmm.html command which allows LAMMPS to be used in a +QM/MM simulation, currently only in combination with the "Quantum +ESPRESSO"_espresso package. + +:link(espresso,http://www.quantum-espresso.org) + +To use this package you must have Quantum ESPRESSO available on your +system. + +The current implementation only supports an ONIOM style mechanical +coupling to the Quantum ESPRESSO plane wave DFT package. +Electrostatic coupling is in preparation and the interface has been +written in a manner that coupling to other QM codes should be possible +without changes to LAMMPS itself. + +[Author:] Axel Kohlmeyer (Temple U). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-QMMM: filenames -> commands +src/USER-QMMM/README +lib/qmmm/README +"fix phonon"_fix_phonon.html +lib/qmmm/example-ec/README +lib/qmmm/example-mc/README :ul + +:line + +USER-QTB package :link(PKG-USER-QTB),h4 + +[Contents:] + +Two fixes which provide a self-consistent quantum treatment of +vibrational modes in a classical molecular dynamics simulation. By +coupling the MD simulation to a colored thermostat, it introduces zero +point energy into the system, altering the energy power spectrum and +the heat capacity to account for their quantum nature. This is useful +when modeling systems at temperatures lower than their classical +limits or when temperatures ramp across the classical limits in a +simulation. + +[Author:] Yuan Shen (Stanford U). + +[Supporting info:] + +src/USER-QTB: filenames -> commands +src/USER-QTB/README +"fix qtb"_fix_qtb.html +"fix qbmsst"_fix_qbmsst.html +examples/USER/qtb :ul + +:line + +USER-QUIP package :link(PKG-USER-QUIP),h4 + +[Contents:] + +A "pair_style quip"_pair_quip.html command which wraps the "QUIP +libAtoms library"_quip, which includes a variety of interatomic +potentials, including Gaussian Approximation Potential (GAP) models +developed by the Cambridge University group. + +:link(quip,https://github.com/libAtoms/QUIP) + +To use this package you must have the QUIP libAtoms library available +on your system. + +[Author:] Albert Bartok (Cambridge University) + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-QUIP: filenames -> commands +src/USER-QUIP/README +"pair_style quip"_pair_quip.html +examples/USER/quip :ul + +:line + +USER-REAXC package :link(PKG-USER-REAXC),h4 + +[Contents:] + +A pair style which implements the ReaxFF potential in C/C++ (in +contrast to the "REAX package"_#PKG-REAX and its Fortran library). ReaxFF +is universal reactive force field. See the src/USER-REAXC/README file +for more info on differences between the two packages. Also two fixes +for monitoring molecules as bonds are created and destroyed. + +[Author:] Hasan Metin Aktulga (MSU) while at Purdue University. + +[Supporting info:] + +src/USER-REAXC: filenames -> commands +src/USER-REAXC/README +"pair_style reax/c"_pair_reaxc.html +"fix reax/c/bonds"_fix_reax_bonds.html +"fix reax/c/species"_fix_reaxc_species.html +examples/reax :ul + +:line + +USER-SMD package :link(PKG-USER-SMD),h4 + +[Contents:] + +An atom style, fixes, computes, and several pair styles which +implements smoothed Mach dynamics (SMD) for solids, which is a model +related to smoothed particle hydrodynamics (SPH) for liquids (see the +"USER-SPH package"_#PKG-USER-SPH). + +This package solves solids mechanics problems via a state of the art +stabilized meshless method with hourglass control. It can specify +hydrostatic interactions independently from material strength models, +i.e. pressure and deviatoric stresses are separated. It provides many +material models (Johnson-Cook, plasticity with hardening, +Mie-Grueneisen, Polynomial EOS) and allows new material models to be +added. It implements rigid boundary conditions (walls) which can be +specified as surface geometries from *.STL files. + +[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed +Dynamics, Ernst Mach Institute, Germany). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-SMD: filenames -> commands +src/USER-SMD/README +doc/PDF/SMD_LAMMPS_userguide.pdf +examples/USER/smd +http://lammps.sandia.gov/movies.html#smd :ul + +:line + +USER-SMTBQ package :link(PKG-USER-SMTBQ),h4 + +[Contents:] + +A pair style which implements a Second Moment Tight Binding model with +QEq charge equilibration (SMTBQ) potential for the description of +ionocovalent bonds in oxides. + +[Authors:] Nicolas Salles, Emile Maras, Olivier Politano, and Robert +Tetot (LAAS-CNRS, France). + +[Supporting info:] + +src/USER-SMTBQ: filenames -> commands +src/USER-SMTBQ/README +"pair_style smtbq"_pair_smtbq.html +examples/USER/smtbq :ul + +:line + +USER-SPH package :link(PKG-USER-SPH),h4 + +[Contents:] + +An atom style, fixes, computes, and several pair styles which +implements smoothed particle hydrodynamics (SPH) for liquids. See the +related "USER-SMD package"_#PKG-USER-SMD package for smooth Mach dynamics +(SMD) for solids. + +This package contains ideal gas, Lennard-Jones equation of states, +Tait, and full support for complete (i.e. internal-energy dependent) +equations of state. It allows for plain or Monaghans XSPH integration +of the equations of motion. It has options for density continuity or +density summation to propagate the density field. It has +"set"_set.html command options to set the internal energy and density +of particles from the input script and allows the same quantities to +be output with thermodynamic output or to dump files via the "compute +property/atom"_compute_property_atom.html command. + +[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed +Dynamics, Ernst Mach Institute, Germany). + +[Supporting info:] + +src/USER-SPH: filenames -> commands +src/USER-SPH/README +doc/PDF/SPH_LAMMPS_userguide.pdf +examples/USER/sph +http://lammps.sandia.gov/movies.html#sph :ul + +:line + +USER-TALLY package :link(PKG-USER-TALLY),h4 + +[Contents:] + +Several compute styles that can be called when pairwise interactions +are calculated to tally information (forces, heat flux, energy, +stress, etc) about individual interactions. + +[Author:] Axel Kohlmeyer (Temple U). + +[Supporting info:] + +src/USER-TALLY: filenames -> commands +src/USER-TALLY/README +"compute */tally"_compute_tally.html +examples/USER/tally :ul + +:line + +USER-UEF package :link(PKG-USER-UEF),h4 + +[Contents:] + +A fix style for the integration of the equations of motion under +extensional flow with proper boundary conditions, as well as several +supporting compute styles and an output option. + +[Author:] David Nicholson (MIT). + +[Supporting info:] + +src/USER-UEF: filenames -> commands +src/USER-UEF/README +"fix nvt/uef"_fix_nh_uef.html +"fix npt/uef"_fix_nh_uef.html +"compute pressure/uef"_compute_pressure_uef.html +"compute temp/uef"_compute_temp_uef.html +"dump cfg/uef"_dump_cfg_uef.html +examples/uef :ul + +:line + +USER-VTK package :link(PKG-USER-VTK),h4 + +[Contents:] + +A "dump vtk"_dump_vtk.html command which outputs snapshot info in the +"VTK format"_vtk, enabling visualization by "Paraview"_paraview or +other visualization packages. + +:link(vtk,http://www.vtk.org) +:link(paraview,http://www.paraview.org) + +To use this package you must have VTK library available on your +system. + +[Authors:] Richard Berger (JKU) and Daniel Queteschiner (DCS Computing). + +[Install:] + +This package has "specific installation +instructions"_Build_extras.html#gpu on the "Build +extras"_Build_extras.html doc page. + +[Supporting info:] + +src/USER-VTK: filenames -> commands +src/USER-VTK/README +lib/vtk/README +"dump vtk"_dump_vtk.html :ul diff --git a/doc/src/Speed_kokkos.txt b/doc/src/Speed_kokkos.txt new file mode 100644 index 0000000000..eb787df5d6 --- /dev/null +++ b/doc/src/Speed_kokkos.txt @@ -0,0 +1,381 @@ +"Higher level section"_Speed.html - "LAMMPS WWW Site"_lws - "LAMMPS +Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Commands_all.html) + +:line + +KOKKOS package :h3 + +Kokkos is a templated C++ library that provides abstractions to allow +a single implementation of an application kernel (e.g. a pair style) +to run efficiently on different kinds of hardware, such as GPUs, Intel +Xeon Phis, or many-core CPUs. Kokkos maps the C++ kernel onto +different backend languages such as CUDA, OpenMP, or Pthreads. The +Kokkos library also provides data abstractions to adjust (at compile +time) the memory layout of data structures like 2d and 3d arrays to +optimize performance on different hardware. For more information on +Kokkos, see "Github"_https://github.com/kokkos/kokkos. Kokkos is part +of "Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos +library was written primarily by Carter Edwards, Christian Trott, and +Dan Sunderland (all Sandia). + +The LAMMPS KOKKOS package contains versions of pair, fix, and atom +styles that use data structures and macros provided by the Kokkos +library, which is included with LAMMPS in /lib/kokkos. The KOKKOS +package was developed primarily by Christian Trott (Sandia) and Stan +Moore (Sandia) with contributions of various styles by others, +including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez +(Sandia). For more information on developing using Kokkos abstractions +see the Kokkos programmers' guide at /lib/kokkos/doc/Kokkos_PG.pdf. + +Kokkos currently provides support for 3 modes of execution (per MPI +task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP +(threading for many-core CPUs and Intel Phi), and CUDA (for NVIDIA +GPUs). You choose the mode at build time to produce an executable +compatible with specific hardware. + +NOTE: Kokkos support within LAMMPS must be built with a C++11 compatible +compiler. This means GCC version 4.7.2 or later, Intel 14.0.4 or later, or +Clang 3.5.2 or later is required. + +NOTE: To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA +software version 7.5 or later must be installed on your system. See +the discussion for the "GPU package"_Speed_gpu.html for details of how +to check and do this. + +NOTE: Kokkos with CUDA currently implicitly assumes, that the MPI +library is CUDA-aware and has support for GPU-direct. This is not +always the case, especially when using pre-compiled MPI libraries +provided by a Linux distribution. This is not a problem when using +only a single GPU and a single MPI rank on a desktop. When running +with multiple MPI ranks, you may see segmentation faults without +GPU-direct support. These can be avoided by adding the flags "-pk +kokkos gpu/direct off"_Run_options.html to the LAMMPS command line or +by using the command "package kokkos gpu/direct off"_package.html in +the input file. + +[Building LAMMPS with the KOKKOS package:] + +See the "Build extras"_Build_extras.html#kokkos doc page for instructions. + +[Running LAMMPS with the KOKKOS package:] + +All Kokkos operations occur within the context of an individual MPI +task running on a single node of the machine. The total number of MPI +tasks used by LAMMPS (one or multiple per compute node) is set in the +usual manner via the mpirun or mpiexec commands, and is independent of +Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and +-npernode switches. Ditto for MPICH via -np and -ppn. + +[Running on a multi-core CPU:] + +Here is a quick overview of how to use the KOKKOS package +for CPU acceleration, assuming one or more 16-core nodes. + +mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no multi-threading +mpirun -np 2 -ppn 1 lmp_kokkos_omp -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task +mpirun -np 2 lmp_kokkos_omp -k on t 8 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 8 threads/task +mpirun -np 32 -ppn 4 lmp_kokkos_omp -k on t 4 -sf kk -in in.lj # 8 nodes, 4 MPI tasks/node, 4 threads/task :pre + +To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk +kokkos" "command-line switches"_Run_options.html in your mpirun +command. You must use the "-k on" "command-line +switch"_Run_options.html to enable the KOKKOS package. It takes +additional arguments for hardware settings appropriate to your system. +For OpenMP use: + +-k on t Nt :pre + +The "t Nt" option specifies how many OpenMP threads per MPI task to +use with a node. The default is Nt = 1, which is MPI-only mode. Note +that the product of MPI tasks * OpenMP threads/task should not exceed +the physical number of cores (on a node), otherwise performance will +suffer. If hyperthreading is enabled, then the product of MPI tasks * +OpenMP threads/task should not exceed the physical number of cores * +hardware threads. The "-k on" switch also issues a "package kokkos" +command (with no additional arguments) which sets various KOKKOS +options to default values, as discussed on the "package"_package.html +command doc page. + +The "-sf kk" "command-line switch"_Run_options.html will automatically +append the "/kk" suffix to styles that support it. In this manner no +modification to the input script is needed. Alternatively, one can run +with the KOKKOS package by editing the input script as described +below. + +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions. However, when running on CPUs, it +will typically be faster to use "half" neighbor lists and set the +Newton flag to "on", just as is the case for non-accelerated pair +styles. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Run_options.html to change the +default "package kokkos"_package.html options. See its doc page for +details and default settings. Experimenting with its options can +provide a speed-up for specific calculations. For example: + +mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre + +If the "newton"_newton.html command is used in the input +script, it can also override the Newton flag defaults. + +[Core and Thread Affinity:] + +When using multi-threading, it is important for performance to bind +both MPI tasks to physical cores, and threads to physical cores, so +they do not migrate during a simulation. + +If you are not certain MPI tasks are being bound (check the defaults +for your MPI installation), binding can be forced with these flags: + +OpenMPI 1.8: mpirun -np 2 --bind-to socket --map-by socket ./lmp_openmpi ... +Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ... :pre + +For binding threads with KOKKOS OpenMP, use thread affinity +environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or +later, intel 12 or later) setting the environment variable +OMP_PROC_BIND=true should be sufficient. In general, for best +performance with OpenMP 4.0 or better set OMP_PROC_BIND=spread and +OMP_PLACES=threads. For binding threads with the KOKKOS pthreads +option, compile LAMMPS the KOKKOS HWLOC=yes option as described below. + +[Running on Knight's Landing (KNL) Intel Xeon Phi:] + +Here is a quick overview of how to use the KOKKOS package for the +Intel Knight's Landing (KNL) Xeon Phi: + +KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are +reserved for the OS, and only 64 or 66 cores are used. Each core has 4 +hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66) +cores to run on. The product of MPI tasks * OpenMP threads/task should +not exceed this limit, otherwise performance will suffer. Note that +with the KOKKOS package you do not need to specify how many KNLs there +are per node; each KNL is simply treated as running some number of MPI +tasks. + +Examples of mpirun commands that follow these rules are shown below. + +Intel KNL node with 68 cores (272 threads/node via 4x hardware threading): +mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 1 node, 64 MPI tasks/node, 4 threads/task +mpirun -np 66 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 1 node, 66 MPI tasks/node, 4 threads/task +mpirun -np 32 lmp_kokkos_phi -k on t 8 -sf kk -in in.lj # 1 node, 32 MPI tasks/node, 8 threads/task +mpirun -np 512 -ppn 64 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 8 nodes, 64 MPI tasks/node, 4 threads/task :pre + +The -np setting of the mpirun command sets the number of MPI +tasks/node. The "-k on t Nt" command-line switch sets the number of +threads/task as Nt. The product of these two values should be N, i.e. +256 or 264. + +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions. When running on KNL, this will +typically be best for pair-wise potentials. For manybody potentials, +using "half" neighbor lists and setting the Newton flag to "on" may be +faster. It can also be faster to use non-threaded communication. Use +the "-pk kokkos" "command-line switch"_Run_options.html to change the +default "package kokkos"_package.html options. See its doc page for +details and default settings. Experimenting with its options can +provide a speed-up for specific calculations. For example: + +mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm +mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre + +NOTE: MPI tasks and threads should be bound to cores as described +above for CPUs. + +NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors +such as Knight's Corner (KNC), your system must be configured to use +them in "native" mode, not "offload" mode like the USER-INTEL package +supports. + +[Running on GPUs:] + +Use the "-k" "command-line switch"_Run_options.html to +specify the number of GPUs per node. Typically the -np setting of the +mpirun command should set the number of MPI tasks/node to be equal to +the number of physical GPUs on the node. You can assign multiple MPI +tasks to the same GPU with the KOKKOS package, but this is usually +only faster if significant portions of the input script have not +been ported to use Kokkos. Using CUDA MPS is recommended in this +scenario. Using a CUDA-aware MPI library with support for GPU-direct +is highly recommended. GPU-direct use can be avoided by using +"-pk kokkos gpu/direct no"_package.html. +As above for multi-core CPUs (and no GPU), if N is the number of +physical cores/node, then the number of MPI tasks/node should not +exceed N. + +-k on g Ng :pre + +Here are examples of how to use the KOKKOS package for GPUs, assuming +one or more nodes, each with two GPUs: + +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node +mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre + +NOTE: The default for the "package kokkos"_package.html command is to +use "full" neighbor lists and set the Newton flag to "off" for both +pairwise and bonded interactions, along with threaded communication. +When running on Maxwell or Kepler GPUs, this will typically be +best. For Pascal GPUs, using "half" neighbor lists and setting the +Newton flag to "on" may be faster. For many pair styles, setting the +neighbor binsize equal to the ghost atom cutoff will give speedup. +Use the "-pk kokkos" "command-line switch"_Run_options.html to change +the default "package kokkos"_package.html options. See its doc page +for details and default settings. Experimenting with its options can +provide a speed-up for specific calculations. For example: + +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff +mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre + +NOTE: For good performance of the KOKKOS package on GPUs, you must +have Kepler generation GPUs (or later). The Kokkos library exploits +texture cache options not supported by Telsa generation GPUs (or +older). + +NOTE: When using a GPU, you will achieve the best performance if your +input script does not use fix or compute styles which are not yet +Kokkos-enabled. This allows data to stay on the GPU for multiple +timesteps, without being copied back to the host CPU. Invoking a +non-Kokkos fix or compute, or performing I/O for +"thermo"_thermo_style.html or "dump"_dump.html output will cause data +to be copied back to the CPU incurring a performance penalty. + +NOTE: To get an accurate timing breakdown between time spend in pair, +kspace, etc., you must set the environment variable CUDA_LAUNCH_BLOCKING=1. +However, this will reduce performance and is not recommended for production runs. + +[Run with the KOKKOS package by editing an input script:] + +Alternatively the effect of the "-sf" or "-pk" switches can be +duplicated by adding the "package kokkos"_package.html or "suffix +kk"_suffix.html commands to your input script. + +The discussion above for building LAMMPS with the KOKKOS package, the +mpirun/mpiexec command, and setting appropriate thread are the same. + +You must still use the "-k on" "command-line switch"_Run_options.html +to enable the KOKKOS package, and specify its additional arguments for +hardware options appropriate to your system, as documented above. + +You can use the "suffix kk"_suffix.html command, or you can explicitly add a +"kk" suffix to individual styles in your input script, e.g. + +pair_style lj/cut/kk 2.5 :pre + +You only need to use the "package kokkos"_package.html command if you +wish to change any of its option defaults, as set by the "-k on" +"command-line switch"_Run_options.html. + +[Using OpenMP threading and CUDA together (experimental):] + +With the KOKKOS package, both OpenMP multi-threading and GPUs can be +used together in a few special cases. In the Makefile, the +KOKKOS_DEVICES variable must include both "Cuda" and "OpenMP", as is +the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi + +KOKKOS_DEVICES=Cuda,OpenMP :pre + +The suffix "/kk" is equivalent to "/kk/device", and for Kokkos CUDA, +using the "-sf kk" in the command line gives the default CUDA version +everywhere. However, if the "/kk/host" suffix is added to a specific +style in the input script, the Kokkos OpenMP (CPU) version of that +specific style will be used instead. Set the number of OpenMP threads +as "t Nt" and the number of GPUs as "g Ng" + +-k on t Nt g Ng :pre + +For example, the command to run with 1 GPU and 8 OpenMP threads is then: + +mpiexec -np 1 lmp_kokkos_cuda_openmpi -in in.lj -k on g 1 t 8 -sf kk :pre + +Conversely, if the "-sf kk/host" is used in the command line and then +the "/kk" or "/kk/device" suffix is added to a specific style in your +input script, then only that specific style will run on the GPU while +everything else will run on the CPU in OpenMP mode. Note that the +execution of the CPU and GPU styles will NOT overlap, except for a +special case: + +A kspace style and/or molecular topology (bonds, angles, etc.) running +on the host CPU can overlap with a pair style running on the +GPU. First compile with "--default-stream per-thread" added to CCFLAGS +in the Kokkos CUDA Makefile. Then explicitly use the "/kk/host" +suffix for kspace and bonds, angles, etc. in the input file and the +"kk" suffix (equal to "kk/device") on the command line. Also make +sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" +so CPU/GPU overlap can occur. + +[Speed-ups to expect:] + +The performance of KOKKOS running in different modes is a function of +your hardware, which KOKKOS-enable styles are used, and the problem +size. + +Generally speaking, the following rules of thumb apply: + +When running on CPUs only, with a single thread per MPI task, +performance of a KOKKOS style is somewhere between the standard +(un-accelerated) styles (MPI-only mode), and those provided by the +USER-OMP package. However the difference between all 3 is small (less +than 20%). :ulb,l + +When running on CPUs only, with multiple threads per MPI task, +performance of a KOKKOS style is a bit slower than the USER-OMP +package. :l + +When running large number of atoms per GPU, KOKKOS is typically faster +than the GPU package. :l + +When running on Intel hardware, KOKKOS is not as fast as +the USER-INTEL package, which is optimized for that hardware. :l +:ule + +See the "Benchmark page"_http://lammps.sandia.gov/bench.html of the +LAMMPS web site for performance of the KOKKOS package on different +hardware. + +[Advanced Kokkos options:] + +There are other allowed options when building with the KOKKOS package. +As explained on the "Build extras"_Build_extras.html#kokkos doc page, +they can be set either as variables on the make command line or in +Makefile.machine, or they can be specified as CMake variables. Each +takes a value shown below. The default value is listed, which is set +in the lib/kokkos/Makefile.kokkos file. + +KOKKOS_DEBUG, values = {yes}, {no}, default = {no} +KOKKOS_USE_TPLS, values = {hwloc}, {librt}, {experimental_memkind}, default = {none} +KOKKOS_CXX_STANDARD, values = {c++11}, {c++1z}, default = {c++11} +KOKKOS_OPTIONS, values = {aggressive_vectorization}, {disable_profiling}, default = {none} +KOKKOS_CUDA_OPTIONS, values = {force_uvm}, {use_ldg}, {rdc}, {enable_lambda}, default = {enable_lambda} :ul + +KOKKOS_USE_TPLS=hwloc binds threads to hardware cores, so they do not +migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be +used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not +necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP +provides alternative methods via environment variables for binding +threads to hardware cores. More info on binding threads to cores is +given on the "Speed omp"_Speed_omp.html doc page. + +KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism +on most Unix platforms. This library is not available on all +platforms. + +KOKKOS_DEBUG is only useful when developing a Kokkos-enabled style +within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time +debugging information that can be useful. It also enables runtime +bounds checking on Kokkos data structures. + +KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when +building LAMMPS. + +KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS +package must be compiled with the {enable_lambda} option when using +GPUs. + +[Restrictions:] + +Currently, there are no precision options with the KOKKOS package. All +compilation and computation is performed in double precision. -- GitLab