Merge branch 'lammps:develop' into fortran-further-tinkering

This commit is contained in:
hammondkd
2022-09-30 19:40:32 -05:00
committed by GitHub
134 changed files with 1971 additions and 688 deletions

View File

@ -14,14 +14,14 @@ and tested by the LAMMPS developers, so it is easy to import bad
behavior from calling functions in one of those libraries. behavior from calling functions in one of those libraries.
Thus is is quite easy to crash LAMMPS through malicious input and do all Thus is is quite easy to crash LAMMPS through malicious input and do all
kinds of filesystem manipulations. And because of that LAMMPS should kinds of file system manipulations. And because of that LAMMPS should
**NEVER** be compiled or **run** as superuser, either from a "root" or **NEVER** be compiled or **run** as superuser, either from a "root" or
"administrator" account directly or indirectly via "sudo" or "su". "administrator" account directly or indirectly via "sudo" or "su".
Therefore what could be seen as a security vulnerability is usually Therefore what could be seen as a security vulnerability is usually
either a user mistake or a bug in the code. Bugs can be reported in either a user mistake or a bug in the code. Bugs can be reported in the
the LAMMPS project LAMMPS project [issue tracker on
[issue tracker on GitHub](https://github.com/lammps/lammps/issues). GitHub](https://github.com/lammps/lammps/issues).
To mitigate issues with using homoglyphs or bidirectional reordering in To mitigate issues with using homoglyphs or bidirectional reordering in
unicode, which have been demonstrated as a vector to obfuscate and hide unicode, which have been demonstrated as a vector to obfuscate and hide
@ -30,10 +30,18 @@ for unicode characters and only all-ASCII source code is accepted.
# Version Updates # Version Updates
LAMMPS follows continuous release development model. We aim to keep all LAMMPS follows continuous release development model. We aim to keep to
release versions (stable or patch) fully functional and employ a variety keep the development version (develop branch) always fully functional
of automatic testing procedures to detect failures of existing and employ a variety of automatic testing procedures to detect failures
functionality from adding new features before releases are made. Thus of existing functionality from adding or modifying features. Most of
bugfixes and updates are only integrated into the current development those tests are run on pull requests *before* merging to the development
branch and thus the next (patch) release and users are recommended to branch. The develop branch is protected, so all changes *must* be
update regularly. submitted as a pull request and thus cannot avoid the automated tests.
Additional tests are run *after* merging. Before releases are made
*all* tests must have cleared. Then a release tag is applied and the
release branch fast-forwarded to that tag. Bug fixes and updates are
applied to the current development branch and thus will be available in
the next (patch) release. For stable releases, selected bug fixes are
back-ported and occasionally published as update releases. There are
only updates to the latest stable release.

View File

@ -314,7 +314,7 @@ Bibliography
Espanol, Revenga, Physical Review E, 67, 026705 (2003). Espanol, Revenga, Physical Review E, 67, 026705 (2003).
**(Espanol1997)** **(Espanol1997)**
Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI: 10.1209/epl/i1997-00515-8 Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI:10.1209/epl/i1997-00515-8
**(Evans and Morriss)** **(Evans and Morriss)**
Evans and Morriss, Phys Rev A, 30, 1528 (1984). Evans and Morriss, Phys Rev A, 30, 1528 (1984).
@ -368,7 +368,7 @@ Bibliography
Frenkel and Smit, Understanding Molecular Simulation, Academic Press, London, 2002. Frenkel and Smit, Understanding Molecular Simulation, Academic Press, London, 2002.
**(GLE4MD)** **(GLE4MD)**
`http://gle4md.org/ <http://gle4md.org/>`_ `https://gle4md.org/ <https://gle4md.org/>`_
**(Gao)** **(Gao)**
Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504. Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504.
@ -401,13 +401,13 @@ Bibliography
Hayre, and Farago, Comp Phys Comm, 185, 524 (2014) Hayre, and Farago, Comp Phys Comm, 185, 524 (2014)
**(Groot)** **(Groot)**
Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI: 10.1063/1.474784 Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI:10.1063/1.474784
**(Guenole)** **(Guenole)**
Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek, Comput Mater Sci, 175, 109584 (2020). Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek, Comput Mater Sci, 175, 109584 (2020).
**(Gullet)** **(Gullet)**
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395
**(Guo)** **(Guo)**
Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996). Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996).
@ -461,7 +461,7 @@ Bibliography
Hunt, Mol Simul, 42, 347 (2016). Hunt, Mol Simul, 42, 347 (2016).
**(IPI)** **(IPI)**
`http://epfl-cosmo.github.io/gle4md/index.html?page=ipi <http://epfl-cosmo.github.io/gle4md/index.html?page=ipi>`_ `https://ipi-code.org/ <https://ipi-code.org/>`
**(IPI-CPC)** **(IPI-CPC)**
Ceriotti, More and Manolopoulos, Comp Phys Comm, 185, 1019-1026 (2014). Ceriotti, More and Manolopoulos, Comp Phys Comm, 185, 1019-1026 (2014).
@ -605,16 +605,16 @@ Bibliography
I.\ Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016). I.\ Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016).
**(Li2013_POF)** **(Li2013_POF)**
Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013). DOI: 10.1063/1.4812366. Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013). DOI:10.1063/1.4812366.
**(Li2014_JCP)** **(Li2014_JCP)**
Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265: 113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003. Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265: 113-127 (2014). DOI:10.1016/j.jcp.2014.02.003.
**(Li2015_CC)** **(Li2015_CC)**
Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040 (2015). DOI: 10.1039/C5CC01684C. Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040 (2015). DOI:10.1039/C5CC01684C.
**(Li2015_JCP)** **(Li2015_JCP)**
Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143: 014101 (2015). DOI: 10.1063/1.4923254. Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143: 014101 (2015). DOI:10.1063/1.4923254.
**(Lisal)** **(Lisal)**
M.\ Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative particle dynamics at isothermal, isobaric, isoenergetic, and isoenthalpic conditions using Shardlow-like splitting algorithms.", M.\ Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative particle dynamics at isothermal, isobaric, isoenergetic, and isoenthalpic conditions using Shardlow-like splitting algorithms.",
@ -733,8 +733,8 @@ Bibliography
**(Mishin)** **(Mishin)**
Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029 (2005). Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029 (2005).
**(Mitchell and Finchham)** **(Mitchell and Fincham)**
Mitchell, Finchham, J Phys Condensed Matter, 5, 1031-1038 (1993). Mitchell, Fincham, J Phys Condensed Matter, 5, 1031-1038 (1993).
**(Mitchell2011)** **(Mitchell2011)**
Mitchell. A non-local, ordinary-state-based viscoelasticity model for peridynamics. Sandia National Lab Report, 8064:1-28 (2011). Mitchell. A non-local, ordinary-state-based viscoelasticity model for peridynamics. Sandia National Lab Report, 8064:1-28 (2011).
@ -875,7 +875,7 @@ Bibliography
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014) G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
**(Paquay)** **(Paquay)**
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_. Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.
**(Park)** **(Park)**
Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004) Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004)

View File

@ -140,7 +140,7 @@ of the LAMMPS project on GitHub.
The unit testing facility is integrated into the CMake build process The unit testing facility is integrated into the CMake build process
of the LAMMPS source code distribution itself. It can be enabled by of the LAMMPS source code distribution itself. It can be enabled by
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step. setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
It requires the `YAML <http://pyyaml.org/>`_ library and development It requires the `YAML <https://pyyaml.org/>`_ library and development
headers (if those are not found locally a recent version will be headers (if those are not found locally a recent version will be
downloaded and compiled along with LAMMPS and the test program) to downloaded and compiled along with LAMMPS and the test program) to
compile and will download and compile a specific recent version of the compile and will download and compile a specific recent version of the

View File

@ -314,7 +314,7 @@ detailed information is available at:
In addition to installing the KIM API, it is also necessary to install the In addition to installing the KIM API, it is also necessary to install the
library of KIM models (interatomic potentials). library of KIM models (interatomic potentials).
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_ to See `Obtaining KIM Models <https://openkim.org/doc/usage/obtaining-models>`_ to
learn how to install a pre-build binary of the OpenKIM Repository of Models. learn how to install a pre-build binary of the OpenKIM Repository of Models.
See the list of all KIM models here: https://openkim.org/browse/models See the list of all KIM models here: https://openkim.org/browse/models
@ -432,7 +432,7 @@ Enabling the extra unit tests have some requirements,
``EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000``, ``EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000``,
``EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005``, and ``EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005``, and
``LennardJones612_UniversalShifted__MO_959249795837_003`` KIM models. ``LennardJones612_UniversalShifted__MO_959249795837_003`` KIM models.
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_ See `Obtaining KIM Models <https://openkim.org/doc/usage/obtaining-models>`_
to learn how to install a pre-built binary of the OpenKIM Repository of to learn how to install a pre-built binary of the OpenKIM Repository of
Models or see Models or see
`Installing KIM Models <https://openkim.org/doc/usage/obtaining-models/#installing_models>`_ `Installing KIM Models <https://openkim.org/doc/usage/obtaining-models/#installing_models>`_
@ -1053,7 +1053,7 @@ VORONOI package
----------------------------- -----------------------------
To build with this package, you must download and build the To build with this package, you must download and build the
`Voro++ library <http://math.lbl.gov/voro++>`_ or install a `Voro++ library <https://math.lbl.gov/voro++>`_ or install a
binary package provided by your operating system. binary package provided by your operating system.
.. tabs:: .. tabs::

View File

@ -176,7 +176,7 @@ math expressions transparently into embedded images.
For converting the generated ePUB file to a MOBI format file (for e-book For converting the generated ePUB file to a MOBI format file (for e-book
readers, like Kindle, that cannot read ePUB), you also need to have the readers, like Kindle, that cannot read ePUB), you also need to have the
``ebook-convert`` tool from the "calibre" software ``ebook-convert`` tool from the "calibre" software
installed. `http://calibre-ebook.com/ <http://calibre-ebook.com/>`_ installed. `https://calibre-ebook.com/ <https://calibre-ebook.com/>`_
Typing ``make mobi`` will first create the ePUB file and then convert Typing ``make mobi`` will first create the ePUB file and then convert
it. On the Kindle readers in particular, you also have support for PDF it. On the Kindle readers in particular, you also have support for PDF
files, so you could download and view the PDF version as an alternative. files, so you could download and view the PDF version as an alternative.

View File

@ -111,26 +111,25 @@ LAMMPS can use them if they are available on your system.
files in its default search path. You must specify ``FFT_LIB`` files in its default search path. You must specify ``FFT_LIB``
with the appropriate FFT libraries to include in the link. with the appropriate FFT libraries to include in the link.
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS The `KISS FFT library <https://github.com/mborgerding/kissfft>`_ is
distribution. It is portable across all platforms. Depending on the size included in the LAMMPS distribution. It is portable across all
of the FFTs and the number of processors used, the other libraries listed platforms. Depending on the size of the FFTs and the number of
here can be faster. processors used, the other libraries listed here can be faster.
However, note that long-range Coulombics are only a portion of the However, note that long-range Coulombics are only a portion of the
per-timestep CPU cost, FFTs are only a portion of long-range per-timestep CPU cost, FFTs are only a portion of long-range Coulombics,
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel and 1d FFTs are only a portion of the FFT cost (parallel communication
communication can be costly). A breakdown of these timings is printed can be costly). A breakdown of these timings is printed to the screen
to the screen at the end of a run when using the at the end of a run when using the :doc:`kspace_style pppm
:doc:`kspace_style pppm <kspace_style>` command. The <kspace_style>` command. The :doc:`Screen and logfile output
:doc:`Screen and logfile output <Run_output>` <Run_output>` page gives more details. A more detailed (and time
page gives more details. A more detailed (and time consuming) consuming) report of the FFT performance is generated with the
report of the FFT performance is generated with the
:doc:`kspace_modify fftbench yes <kspace_modify>` command. :doc:`kspace_modify fftbench yes <kspace_modify>` command.
FFTW is a fast, portable FFT library that should also work on any FFTW is a fast, portable FFT library that should also work on any
platform and can be faster than the KISS FFT library. You can platform and can be faster than the KISS FFT library. You can download
download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires it from `www.fftw.org <https://www.fftw.org>`_. LAMMPS requires version
version 3.X; the legacy version 2.1.X is no longer supported. 3.X; the legacy version 2.1.X is no longer supported.
Building FFTW for your box should be as simple as ``./configure; make; Building FFTW for your box should be as simple as ``./configure; make;
make install``. The install command typically requires root privileges make install``. The install command typically requires root privileges

View File

@ -75,7 +75,7 @@ Using the GDB debugger to get a stack trace
There are two options to use the GDB debugger for identifying the origin There are two options to use the GDB debugger for identifying the origin
of the segmentation fault or similar crash. The GDB debugger has many of the segmentation fault or similar crash. The GDB debugger has many
more features and options, as can be seen for example its `online more features and options, as can be seen for example its `online
documentation <http://sourceware.org/gdb/current/onlinedocs/gdb/>`_. documentation <https://sourceware.org/gdb/current/onlinedocs/gdb/>`_.
Run LAMMPS from within the debugger Run LAMMPS from within the debugger
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -85,6 +85,7 @@ Packages howto
Howto_coreshell Howto_coreshell
Howto_drude Howto_drude
Howto_drude2 Howto_drude2
Howto_peri
Howto_manifold Howto_manifold
Howto_spins Howto_spins

View File

@ -281,7 +281,7 @@ Here is more information about the extended XYZ format defined and
used by Tinker, and links to programs that convert standard PDB files used by Tinker, and links to programs that convert standard PDB files
to the extended XYZ format: to the extended XYZ format:
* `http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_ * `https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_
* `https://github.com/emleddin/pdbxyz-xyzpdb <https://github.com/emleddin/pdbxyz-xyzpdb>`_ * `https://github.com/emleddin/pdbxyz-xyzpdb <https://github.com/emleddin/pdbxyz-xyzpdb>`_
* `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f <https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f>`_ * `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f <https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f>`_

View File

@ -3,24 +3,20 @@ CHARMM, AMBER, COMPASS, and DREIDING force fields
A force field has 2 parts: the formulas that define it and the A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly formulas implemented in LAMMPS that correspond to formulas commonly used
used in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
coefficients is done either from special sections in an input data file coefficients is done either from special sections in an input data file
via the :doc:`read_data <read_data>` command or in the input script with via the :doc:`read_data <read_data>` command or in the input script with
commands like :doc:`pair_coeff <pair_coeff>` or commands like :doc:`pair_coeff <pair_coeff>` or :doc:`bond_coeff
:doc:`bond_coeff <bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc <bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for
page for additional tools that can use CHARMM, AMBER, or Materials additional tools that can use CHARMM, AMBER, or Materials Studio
Studio generated files to assign force field coefficients and convert generated files to assign force field coefficients and convert their
their output into LAMMPS input. output into LAMMPS input.
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM force See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM
field. See :ref:`(Cornell) <howto-Cornell>` for a description of the AMBER force field. See :ref:`(Cornell) <howto-Cornell>` for a description of
force field. See :ref:`(Sun) <howto-Sun>` for a description of the COMPASS the AMBER force field. See :ref:`(Sun) <howto-Sun>` for a description
force field. of the COMPASS force field.
.. _charmm: http://www.scripps.edu/brooks
.. _amber: http://amber.scripps.edu
The interaction styles listed below compute force field formulas that The interaction styles listed below compute force field formulas that
are consistent with common options in CHARMM or AMBER. See each are consistent with common options in CHARMM or AMBER. See each
@ -41,9 +37,10 @@ command's documentation for the formula it computes.
.. note:: .. note::
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in
in March 2017. We recommend they be used instead of the older *charmm* March 2017. We recommend they be used instead of the older *charmm*
styles. See discussion of the differences on the :doc:`pair charmm <pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc styles. See discussion of the differences on the :doc:`pair charmm
<pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
pages. pages.
COMPASS is a general force field for atomistic simulation of common COMPASS is a general force field for atomistic simulation of common

View File

@ -10,7 +10,7 @@ changes or additions you have made to LAMMPS into the official LAMMPS
distribution. It uses the process of updating this very tutorial as an distribution. It uses the process of updating this very tutorial as an
example to describe the individual steps and options. You need to be example to describe the individual steps and options. You need to be
familiar with git and you may want to have a look at the `git book familiar with git and you may want to have a look at the `git book
<http://git-scm.com/book/>`_ to familiarize yourself with some of the <https://git-scm.com/book/>`_ to familiarize yourself with some of the
more advanced git features used below. more advanced git features used below.
As of fall 2016, submitting contributions to LAMMPS via pull requests As of fall 2016, submitting contributions to LAMMPS via pull requests

View File

@ -47,4 +47,4 @@ to the relevant fixes.
.. _Paquay1: .. _Paquay1:
**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016). **(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).
preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_. preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.

1078
doc/src/Howto_peri.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -38,7 +38,7 @@ the partial charge assignments change:
See the :ref:`(Berendsen) <howto-Berendsen>` reference for more details on both See the :ref:`(Berendsen) <howto-Berendsen>` reference for more details on both
the SPC and SPC/E models. the SPC and SPC/E models.
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_. Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
---------- ----------

View File

@ -49,7 +49,7 @@ details:
| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}` | :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}`
| |
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_. Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
---------- ----------

View File

@ -97,7 +97,7 @@ This leads to slightly larger cost for the long-range calculation, so
you can test the trade-off for your model. The OM distance and the LJ you can test the trade-off for your model. The OM distance and the LJ
and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>` command. and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>` command.
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_. Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
---------- ----------

View File

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

View File

@ -5,7 +5,7 @@ Binaries are available for MacOS or Linux via `Conda <conda_>`_.
First, one must setup the Conda package manager on your system. Follow the First, one must setup the Conda package manager on your system. Follow the
instructions to install `Miniconda <mini_conda_install_>`_, then create a conda instructions to install `Miniconda <mini_conda_install_>`_, then create a conda
environment (named `my-lammps-env` or whatever you prefer) for your lammps environment (named `my-lammps-env` or whatever you prefer) for your LAMMPS
install: install:
.. code-block:: bash .. code-block:: bash
@ -13,7 +13,7 @@ install:
% conda config --add channels conda-forge % conda config --add channels conda-forge
% conda create -n my-lammps-env % conda create -n my-lammps-env
Then, you can install lammps on your system with the following command: Then, you can install LAMMPS on your system with the following command:
.. code-block:: bash .. code-block:: bash

View File

@ -6,7 +6,7 @@ Windows system can be downloaded from this site:
.. parsed-literal:: .. parsed-literal::
`http://packages.lammps.org/windows.html <http://packages.lammps.org/windows.html>`_ `https://packages.lammps.org/windows.html <https://packages.lammps.org/windows.html>`_
Note that each installer package has a date in its name, which Note that each installer package has a date in its name, which
corresponds to the LAMMPS version of the same date. Installers for corresponds to the LAMMPS version of the same date. Installers for

View File

@ -4,13 +4,13 @@ Authors of LAMMPS
The primary LAMMPS developers are at Sandia National Labs and Temple The primary LAMMPS developers are at Sandia National Labs and Temple
University: University:
* `Steve Plimpton <sjp_>`_, sjplimp at sandia.gov * `Steve Plimpton <sjp_>`_, sjplimp at gmail.com
* Aidan Thompson, athomps at sandia.gov * Aidan Thompson, athomps at sandia.gov
* Stan Moore, stamoor at sandia.gov * Stan Moore, stamoor at sandia.gov
* Axel Kohlmeyer, akohlmey at gmail.com * Axel Kohlmeyer, akohlmey at gmail.com
* Richard Berger, richard.berger at outlook.com * Richard Berger, richard.berger at outlook.com
.. _sjp: http://www.cs.sandia.gov/~sjplimp .. _sjp: https://sjplimp.github.io
.. _lws: https://www.lammps.org .. _lws: https://www.lammps.org
Past developers include Paul Crozier and Mark Stevens, both at Sandia, Past developers include Paul Crozier and Mark Stevens, both at Sandia,

View File

@ -27,7 +27,7 @@ namely https://www.lammps.org.
The original publication describing the parallel algorithms used in the The original publication describing the parallel algorithms used in the
initial versions of LAMMPS is: initial versions of LAMMPS is:
`S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). <http://www.sandia.gov/~sjplimp/papers/jcompphys95.pdf>`_ `S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). <https://doi.org/10.1006/jcph.1995.1039>`_
DOI for the LAMMPS source code DOI for the LAMMPS source code

View File

@ -95,7 +95,7 @@ commands)
* metal-organic framework potentials (QuickFF, MO-FF) * metal-organic framework potentials (QuickFF, MO-FF)
* implicit solvent potentials: hydrodynamic lubrication, Debye * implicit solvent potentials: hydrodynamic lubrication, Debye
* force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options * force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
* access to the `OpenKIM Repository <http://openkim.org>`_ of potentials via :doc:`kim command <kim_commands>` * access to the `OpenKIM Repository <https://openkim.org>`_ of potentials via the :doc:`kim command <kim_commands>`
* hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation * hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
* overlaid potentials: superposition of multiple pair potentials (including many-body) with optional scale factor * overlaid potentials: superposition of multiple pair potentials (including many-body) with optional scale factor
@ -205,7 +205,7 @@ Pre- and post-processing
.. _pizza: https://lammps.github.io/pizza .. _pizza: https://lammps.github.io/pizza
.. _python: http://www.python.org .. _python: https://www.python.org
.. _special: .. _special:

View File

@ -33,7 +33,7 @@ Here are suggestions on how to perform these tasks:
linear bead-spring polymer chains. The moltemplate program is a true linear bead-spring polymer chains. The moltemplate program is a true
molecular builder that will generate complex molecular models. See molecular builder that will generate complex molecular models. See
the :doc:`Tools <Tools>` page for details on tools packaged with the :doc:`Tools <Tools>` page for details on tools packaged with
LAMMPS. The `Pre/post processing page <http:/www.lammps.org/prepost.html>`_ of the LAMMPS website LAMMPS. The `Pre/post processing page <https:/www.lammps.org/prepost.html>`_ of the LAMMPS website
describes a variety of third party tools for this task. Furthermore, describes a variety of third party tools for this task. Furthermore,
some LAMMPS internal commands allow to reconstruct, or selectively add some LAMMPS internal commands allow to reconstruct, or selectively add
topology information, as well as provide the option to insert molecule topology information, as well as provide the option to insert molecule
@ -80,5 +80,5 @@ Here are suggestions on how to perform these tasks:
`Pizza.py <https://lammps.github.io/pizza>`_ which can do certain kinds of `Pizza.py <https://lammps.github.io/pizza>`_ which can do certain kinds of
setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS
simulations. It thus provides some functionality for several of the simulations. It thus provides some functionality for several of the
above bullets. Pizza.py is written in `Python <http://www.python.org>`_ above bullets. Pizza.py is written in `Python <https://www.python.org>`_
and is available for download from `this page <http://www.cs.sandia.gov/~sjplimp/download.html>`_. and is available for download from `this page <https://sjplimp.github.io/download.html>`_.

View File

@ -23,9 +23,9 @@ applies to LAMMPS is in the LICENSE file included in the LAMMPS distribution.
.. _lgpl: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html .. _lgpl: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
.. _gnuorg: http://www.gnu.org .. _gnuorg: https://www.gnu.org
.. _opensource: http://www.opensource.org .. _opensource: https://www.opensource.org
Here is a more specific summary of what the GPL means for LAMMPS users: Here is a more specific summary of what the GPL means for LAMMPS users:

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -134,6 +134,8 @@ commands to write and read data using the ADIOS library.
**Authors:** Norbert Podhorszki (ORNL) from the ADIOS developer team. **Authors:** Norbert Podhorszki (ORNL) from the ADIOS developer team.
.. versionadded:: 28Feb2019
**Install:** **Install:**
This package has :ref:`specific installation instructions <adios>` on the :doc:`Build extras <Build_extras>` page. This package has :ref:`specific installation instructions <adios>` on the :doc:`Build extras <Build_extras>` page.
@ -364,6 +366,8 @@ and also support self-propelled particles.
**Authors:** Sam Cameron (University of Bristol), **Authors:** Sam Cameron (University of Bristol),
Stefan Paquay (while at Brandeis University) (initial version of fix propel/self) Stefan Paquay (while at Brandeis University) (initial version of fix propel/self)
.. versionadded:: 14May2021
Example inputs are in the examples/PACKAGES/brownian folder. Example inputs are in the examples/PACKAGES/brownian folder.
---------- ----------
@ -592,6 +596,8 @@ To use this package, also the :ref:`KSPACE <PKG-KSPACE>` and
**Author:** Trung Nguyen and Monica Olvera de la Cruz (Northwestern U) **Author:** Trung Nguyen and Monica Olvera de la Cruz (Northwestern U)
.. versionadded:: 2Jul2021
**Supporting info:** **Supporting info:**
* src/DIELECTRIC: filenames -> commands * src/DIELECTRIC: filenames -> commands
@ -1071,7 +1077,7 @@ H5MD is a format for molecular simulations, built on top of HDF5.
This package implements a :doc:`dump h5md <dump_h5md>` command to output This package implements a :doc:`dump h5md <dump_h5md>` command to output
LAMMPS snapshots in this format. LAMMPS snapshots in this format.
.. _HDF5: http://www.hdfgroup.org/HDF5 .. _HDF5: https://www.hdfgroup.org/solutions/hdf5
To use this package you must have the HDF5 library available on your To use this package you must have the HDF5 library available on your
system. system.
@ -1512,6 +1518,8 @@ workflows via the `MolSSI Driver Interface
**Author:** Taylor Barnes - MolSSI, taylor.a.barnes at gmail.com **Author:** Taylor Barnes - MolSSI, taylor.a.barnes at gmail.com
.. versionadded:: 14May2021
**Install:** **Install:**
This package has :ref:`specific installation instructions <mdi>` on This package has :ref:`specific installation instructions <mdi>` on
@ -1596,6 +1604,8 @@ of Alabama), Leonid V. Zhigilei (University of Virginia)
**Author of the *mesocnt* styles:** **Author of the *mesocnt* styles:**
Philipp Kloza (U Cambridge) Philipp Kloza (U Cambridge)
.. versionadded:: 15Jun2020
**Supporting info:** **Supporting info:**
* src/MESONT: filenames -> commands * src/MESONT: filenames -> commands
@ -1688,6 +1698,8 @@ compiled on your system.
**Author:** Andreas Singraber **Author:** Andreas Singraber
.. versionadded:: 27May2021
**Install:** **Install:**
This package has :ref:`specific installation instructions <ml-hdnnp>` on the This package has :ref:`specific installation instructions <ml-hdnnp>` on the
@ -1722,6 +1734,10 @@ must be installed.
**Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL). **Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL).
.. versionadded:: 30Jun2020
.. versionadded:: 30Jun2020
**Supporting info:** **Supporting info:**
* src/ML-IAP: filenames -> commands * src/ML-IAP: filenames -> commands
@ -1766,6 +1782,8 @@ Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1.
^4: University of British Columbia, Vancouver, BC, Canada ^4: University of British Columbia, Vancouver, BC, Canada
.. versionadded:: 14May2021
**Install:** **Install:**
This package has :ref:`specific installation instructions <ml-pace>` on the This package has :ref:`specific installation instructions <ml-pace>` on the
@ -1829,6 +1847,8 @@ of a neural network.
This package was written by Christopher Barrett This package was written by Christopher Barrett
with contributions by Doyl Dickel, Mississippi State University. with contributions by Doyl Dickel, Mississippi State University.
.. versionadded:: 27May2021
**Supporting info:** **Supporting info:**
* src/ML-RANN: filenames -> commands * src/ML-RANN: filenames -> commands
@ -1954,7 +1974,7 @@ support for new file formats can be added to LAMMPS (or VMD or other
programs that use them) without having to re-compile the application programs that use them) without having to re-compile the application
itself. More information about the VMD molfile plugins can be found itself. More information about the VMD molfile plugins can be found
at at
`http://www.ks.uiuc.edu/Research/vmd/plugins/molfile <http://www.ks.uiuc.edu/Research/vmd/plugins/molfile>`_. `https://www.ks.uiuc.edu/Research/vmd/plugins/molfile <https://www.ks.uiuc.edu/Research/vmd/plugins/molfile>`_.
**Author:** Axel Kohlmeyer (Temple U). **Author:** Axel Kohlmeyer (Temple U).
@ -2045,7 +2065,7 @@ NETCDF package
Dump styles for writing NetCDF formatted dump files. NetCDF is a Dump styles for writing NetCDF formatted dump files. NetCDF is a
portable, binary, self-describing file format developed on top of portable, binary, self-describing file format developed on top of
HDF5. The file contents follow the AMBER NetCDF trajectory conventions HDF5. The file contents follow the AMBER NetCDF trajectory conventions
(http://ambermd.org/netcdf/nctraj.xhtml), but include extensions. (https://ambermd.org/netcdf/nctraj.xhtml), but include extensions.
To use this package you must have the NetCDF library available on your To use this package you must have the NetCDF library available on your
system. system.
@ -2056,7 +2076,7 @@ tools:
* `Ovito <ovito_>`_ (Ovito supports the AMBER convention and the extensions mentioned above) * `Ovito <ovito_>`_ (Ovito supports the AMBER convention and the extensions mentioned above)
* `VMD <vmd-home_>`_ * `VMD <vmd-home_>`_
.. _ovito: http://www.ovito.org .. _ovito: https://www.ovito.org
.. _vmd-home: https://www.ks.uiuc.edu/Research/vmd/ .. _vmd-home: https://www.ks.uiuc.edu/Research/vmd/
@ -2200,6 +2220,7 @@ Foster (UTSA).
**Supporting info:** **Supporting info:**
* src/PERI: filenames -> commands * src/PERI: filenames -> commands
* :doc:`Peridynamics Howto <Howto_peri>`
* `doc/PDF/PDLammps_overview.pdf <PDF/PDLammps_overview.pdf>`_ * `doc/PDF/PDLammps_overview.pdf <PDF/PDLammps_overview.pdf>`_
* `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_ * `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_
* `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_ * `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_
@ -2264,6 +2285,8 @@ try to load the contained plugins automatically at start-up.
**Authors:** Axel Kohlmeyer (Temple U) **Authors:** Axel Kohlmeyer (Temple U)
.. versionadded:: 8Apr2021
**Supporting info:** **Supporting info:**
* src/PLUGIN: filenames -> commands * src/PLUGIN: filenames -> commands
@ -2417,7 +2440,7 @@ A :doc:`fix qmmm <fix_qmmm>` command which allows LAMMPS to be used as
the MM code in a QM/MM simulation. This is currently only available the MM code in a QM/MM simulation. This is currently only available
in combination with the `Quantum ESPRESSO <espresso_>`_ package. in combination with the `Quantum ESPRESSO <espresso_>`_ package.
.. _espresso: http://www.quantum-espresso.org .. _espresso: https://www.quantum-espresso.org
To use this package you must have Quantum ESPRESSO (QE) available on To use this package you must have Quantum ESPRESSO (QE) available on
your system and include its coupling library in the compilation and your system and include its coupling library in the compilation and
@ -2829,7 +2852,7 @@ 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 can be used to calculate the local volume or each atoms or its near
neighbors. neighbors.
.. _voro-home: http://math.lbl.gov/voro++ .. _voro-home: https://math.lbl.gov/voro++
To use this package you must have the Voro++ library available on your To use this package you must have the Voro++ library available on your
system. system.
@ -2863,9 +2886,9 @@ A :doc:`dump vtk <dump_vtk>` command which outputs snapshot info in the
`VTK format <vtk_>`_, enabling visualization by `Paraview <paraview_>`_ or `VTK format <vtk_>`_, enabling visualization by `Paraview <paraview_>`_ or
other visualization packages. other visualization packages.
.. _vtk: http://www.vtk.org .. _vtk: https://www.vtk.org
.. _paraview: http://www.paraview.org .. _paraview: https://www.paraview.org
To use this package you must have VTK library available on your To use this package you must have VTK library available on your
system. system.
@ -2902,11 +2925,13 @@ which discuss the `QuickFF <quickff_>`_ methodology.
.. _vanduyfhuys2015: https://doi.org/10.1002/jcc.23877 .. _vanduyfhuys2015: https://doi.org/10.1002/jcc.23877
.. _vanduyfhuys2018: https://doi.org/10.1002/jcc.25173 .. _vanduyfhuys2018: https://doi.org/10.1002/jcc.25173
.. _quickff: http://molmod.github.io/QuickFF .. _quickff: https://molmod.github.io/QuickFF
.. _yaff: https://github.com/molmod/yaff .. _yaff: https://github.com/molmod/yaff
**Author:** Steven Vandenbrande. **Author:** Steven Vandenbrande.
.. versionadded:: 1Feb2019
**Supporting info:** **Supporting info:**
* src/YAFF/README * src/YAFF/README

View File

@ -43,26 +43,18 @@ Note that for AtomEye, you need version 3, and there is a line in the
scripts that specifies the path and name of the executable. See the scripts that specifies the path and name of the executable. See the
AtomEye web pages for more details: AtomEye web pages for more details:
* `http://li.mit.edu/Archive/Graphics/A/ <atomeye_>`_ * `http://li.mit.edu/Archive/Graphics/A/ <http://li.mit.edu/Archive/Graphics/A/>`_
* `http://li.mit.edu/Archive/Graphics/A3/A3.html <atomeye3_>`_ * `http://li.mit.edu/Archive/Graphics/A3/A3.html <http://li.mit.edu/Archive/Graphics/A3/A3.html>`_
.. _atomeye: http://li.mit.edu/Archive/Graphics/A/ The latter link is to AtomEye 3 which has the scripting capability
needed by these Python scripts.
.. _atomeye3: http://li.mit.edu/Archive/Graphics/A3/A3.html
The latter link is to AtomEye 3 which has the scripting
capability needed by these Python scripts.
Note that for PyMol, you need to have built and installed the Note that for PyMol, you need to have built and installed the
open-source version of PyMol in your Python, so that you can import it open-source version of PyMol in your Python, so that you can import it
from a Python script. See the PyMol web pages for more details: from a Python script. See the PyMol web pages for more details:
* `https://www.pymol.org <pymolhome_>`_ * `https://www.pymol.org <https://www.pymol.org>`_
* `https://github.com/schrodinger/pymol-open-source <pymolopen_>`_ * `https://github.com/schrodinger/pymol-open-source <https://github.com/schrodinger/pymol-open-source>`_
.. _pymolhome: https://www.pymol.org
.. _pymolopen: https://github.com/schrodinger/pymol-open-source
The latter link is to the open-source version. The latter link is to the open-source version.

View File

@ -18,17 +18,17 @@ together.
Python_error Python_error
Python_trouble Python_trouble
If you are not familiar with `Python <http://www.python.org>`_, it is a If you are not familiar with `Python <https://www.python.org>`_, it is a
powerful scripting and programming language which can do almost powerful scripting and programming language which can do almost
everything that compiled languages like C, C++, or Fortran can do in everything that compiled languages like C, C++, or Fortran can do in
fewer lines of code. It also comes with a large collection of add-on fewer lines of code. It also comes with a large collection of add-on
modules for many purposes (either bundled or easily installed from modules for many purposes (either bundled or easily installed from
Python code repositories). The major drawback is slower execution speed Python code repositories). The major drawback is slower execution speed
of the script code compared to compiled programming languages. But when of the script code compared to compiled programming languages. But when
the script code is interfaced to optimized compiled code, performance can the script code is interfaced to optimized compiled code, performance
be on par with a standalone executable, for as long as the scripting is can be on par with a standalone executable, for as long as the scripting
restricted to high-level operations. Thus Python is also convenient to is restricted to high-level operations. Thus Python is also convenient
use as a "glue" language to "drive" a program through its library to use as a "glue" language to "drive" a program through its library
interface, or to hook multiple pieces of software together, such as a interface, or to hook multiple pieces of software together, such as a
simulation code and a visualization tool, or to run a coupled simulation code and a visualization tool, or to run a coupled
multi-scale or multi-physics model. multi-scale or multi-physics model.

View File

@ -25,8 +25,8 @@ in parallel, follow these steps.
Download and install a compatible MPI library binary package: Download and install a compatible MPI library binary package:
* for 32-bit Windows: `mpich2-1.4.1p1-win-ia32.msi <http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi>`_ * for 32-bit Windows: `mpich2-1.4.1p1-win-ia32.msi <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi>`_
* for 64-bit Windows: `mpich2-1.4.1p1-win-x86-64.msi <http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_ * for 64-bit Windows: `mpich2-1.4.1p1-win-x86-64.msi <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_
The LAMMPS Windows installer packages will automatically adjust your The LAMMPS Windows installer packages will automatically adjust your
path for the default location of this MPI package. After the path for the default location of this MPI package. After the

View File

@ -39,7 +39,7 @@ toolkit software on your system (this is only tested on Linux
and unsupported on Windows): and unsupported on Windows):
* Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/\*/information * Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/\*/information
* Go to http://www.nvidia.com/object/cuda_get.html * Go to https://developer.nvidia.com/cuda-downloads
* Install a driver and toolkit appropriate for your system (SDK is not necessary) * Install a driver and toolkit appropriate for your system (SDK is not necessary)
* Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to * Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to
list supported devices and properties list supported devices and properties

View File

@ -537,5 +537,5 @@ References
"""""""""" """"""""""
* Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS", in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. * Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS", in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann.
* Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <http://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95). * Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <https://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95).
* Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101. * Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101.

View File

@ -97,7 +97,7 @@ sub-section.
A description of the multi-threading strategy used in the OPENMP A description of the multi-threading strategy used in the OPENMP
package and some performance examples are package and some performance examples are
`presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_. `presented here <https://drive.google.com/file/d/1d1gLK6Ru6aPYB50Ld2tO10Li8zgPVNB8/view?usp=sharing>`_.
Guidelines for best performance Guidelines for best performance
""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""

View File

@ -205,6 +205,7 @@ scripts are available:
whitespace.py # detects TAB characters and trailing whitespace whitespace.py # detects TAB characters and trailing whitespace
homepage.py # detects outdated LAMMPS homepage URLs (pointing to sandia.gov instead of lammps.org) homepage.py # detects outdated LAMMPS homepage URLs (pointing to sandia.gov instead of lammps.org)
errordocs.py # detects deprecated error docs in header files errordocs.py # detects deprecated error docs in header files
versiontags.py # detects .. versionadded:: or .. versionchanged:: with pending version date
The tools need to be given the main folder of the LAMMPS distribution The tools need to be given the main folder of the LAMMPS distribution
or individual file names as argument and will by default check them or individual file names as argument and will by default check them
@ -397,7 +398,7 @@ ipp tool
------------------ ------------------
The tools/ipp directory contains a Perl script ipp which can be used The tools/ipp directory contains a Perl script ipp which can be used
to facilitate the creation of a complicated file (say, a lammps input to facilitate the creation of a complicated file (say, a LAMMPS input
script or tools/createatoms input file) using a template file. script or tools/createatoms input file) using a template file.
ipp was created and is maintained by Reese Jones (Sandia), rjones at ipp was created and is maintained by Reese Jones (Sandia), rjones at
@ -512,8 +513,8 @@ with an ``.inputrc`` file in the home directory. For application
specific customization, the LAMMPS shell uses the name "lammps-shell". specific customization, the LAMMPS shell uses the name "lammps-shell".
For more information about using and customizing an application using For more information about using and customizing an application using
readline, please see the available documentation at: readline, please see the available documentation at:
`http://www.gnu.org/s/readline/#Documentation https://www.gnu.org/software/readline/
<http://www.gnu.org/s/readline/#Documentation>`_
Additional commands Additional commands
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
@ -715,7 +716,7 @@ See the README.pdf file for more information.
These scripts were written by Arun Subramaniyan at Purdue Univ These scripts were written by Arun Subramaniyan at Purdue Univ
(asubrama at purdue.edu). (asubrama at purdue.edu).
.. _matlabhome: http://www.mathworks.com .. _matlabhome: https://www.mathworks.com
---------- ----------
@ -1046,7 +1047,7 @@ the binary file. This usually is a so-called little endian hardware
SWIG interface SWIG interface
-------------- --------------
The `SWIG tool <http://swig.org>`_ offers a mostly automated way to The `SWIG tool <https://swig.org>`_ offers a mostly automated way to
incorporate compiled code modules into scripting languages. It incorporate compiled code modules into scripting languages. It
processes the function prototypes in C and generates wrappers for a wide processes the function prototypes in C and generates wrappers for a wide
variety of scripting languages from it. Thus it can also be applied to variety of scripting languages from it. Thus it can also be applied to
@ -1126,7 +1127,7 @@ data passed or returned as pointers are included in the ``lammps.i``
file. So most of the functionality of the library interface should be file. So most of the functionality of the library interface should be
accessible. What works and what does not depends a bit on the accessible. What works and what does not depends a bit on the
individual language for which the wrappers are built and how well SWIG individual language for which the wrappers are built and how well SWIG
supports those. The `SWIG documentation <http://swig.org/doc.html>`_ supports those. The `SWIG documentation <https://swig.org/doc.html>`_
has very detailed instructions and recommendations. has very detailed instructions and recommendations.
Usage examples Usage examples

View File

@ -35,6 +35,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 7Jan2022
Define a computation that calculates the local mass density and Define a computation that calculates the local mass density and
temperature for each atom based on its neighbors inside a spherical temperature for each atom based on its neighbors inside a spherical
cutoff. If an atom has :math:`M` neighbors, then its local mass density is cutoff. If an atom has :math:`M` neighbors, then its local mass density is

View File

@ -24,16 +24,17 @@ Description
""""""""""" """""""""""
Define a computation that calculates the per-atom damage for each atom Define a computation that calculates the per-atom damage for each atom
in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_ in a group. This is a quantity relevant for :doc:`Peridynamics models
for an overview of LAMMPS commands for Peridynamics modeling. <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_ for an
overview of LAMMPS commands for Peridynamics modeling.
The "damage" of a Peridynamics particles is based on the bond breakage The "damage" of a Peridynamics particles is based on the bond breakage
between the particle and its neighbors. If all the bonds are broken between the particle and its neighbors. If all the bonds are broken
the particle is considered to be fully damaged. the particle is considered to be fully damaged.
See the `PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for a formal See the :doc:`Peridynamics Howto <Howto_peri>` for a formal definition
definition of "damage" and more details about Peridynamics as it is of "damage" and more details about Peridynamics as it is implemented in
implemented in LAMMPS. LAMMPS.
This command can be used with all the Peridynamic pair styles. This command can be used with all the Peridynamic pair styles.
@ -53,8 +54,9 @@ The per-atom vector values are unitless numbers (damage) :math:`\ge 0.0`.
Restrictions Restrictions
"""""""""""" """"""""""""
This compute is part of the PERI package. It is only enabled if This compute is part of the PERI package. It is only enabled if LAMMPS
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info. was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -24,7 +24,8 @@ Description
""""""""""" """""""""""
Define a computation that calculates the per-atom dilatation for each Define a computation that calculates the per-atom dilatation for each
atom in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_ atom in a group. This is a quantity relevant for :doc:`Peridynamics
models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
for an overview of LAMMPS commands for Peridynamics modeling. for an overview of LAMMPS commands for Peridynamics modeling.
For small deformation, dilatation of is the measure of the volumetric For small deformation, dilatation of is the measure of the volumetric
@ -32,13 +33,14 @@ strain.
The dilatation :math:`\theta` for each peridynamic particle :math:`i` is The dilatation :math:`\theta` for each peridynamic particle :math:`i` is
calculated as a sum over its neighbors with unbroken bonds, where the calculated as a sum over its neighbors with unbroken bonds, where the
contribution of the :math:`ij` pair is a function of the change in bond length contribution of the :math:`ij` pair is a function of the change in bond
(versus the initial length in the reference state), the volume length (versus the initial length in the reference state), the volume
fraction of the particles and an influence function. See the fraction of the particles and an influence function. See the
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for :doc:`Peridynamics Howto <Howto_peri>` for a formal definition of
a formal definition of dilatation. dilatation.
This command can only be used with a subset of the Peridynamic :doc:`pair styles <pair_peri>`: peri/lps, peri/ves and peri/eps. This command can only be used with a subset of the Peridynamic
:doc:`pair styles <pair_peri>`: *peri/lps*, *peri/ves*, and *peri/eps*.
The dilatation value will be 0.0 for atoms not in the specified The dilatation value will be 0.0 for atoms not in the specified
compute group. compute group.
@ -56,9 +58,9 @@ The per-atom vector values are unitless numbers :math:`(\theta \ge 0.0)`.
Restrictions Restrictions
"""""""""""" """"""""""""
This compute is part of the PERI package. It is only enabled if This compute is part of the PERI package. It is only enabled if LAMMPS
LAMMPS was built with that package. See the was built with that package. See the :doc:`Build package
:doc:`Build package <Build_package>` page for more info. <Build_package>` page for more info.
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -34,6 +34,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 4May2022
Define a computation that calculates the change in the free energy due Define a computation that calculates the change in the free energy due
to a test-area (TA) perturbation :ref:`(Gloor) <Gloor>`. The test-area to a test-area (TA) perturbation :ref:`(Gloor) <Gloor>`. The test-area
approach can be used to determine the interfacial tension of the system approach can be used to determine the interfacial tension of the system

View File

@ -228,18 +228,20 @@ command:
See section below on output for a detailed explanation of the data See section below on output for a detailed explanation of the data
layout in the global array. layout in the global array.
.. versionadded:: 3Aug2022
The compute *sna/grid* and *sna/grid/local* commands calculate The compute *sna/grid* and *sna/grid/local* commands calculate
bispectrum components for a regular grid of points. bispectrum components for a regular grid of points. These are
These are calculated from the local density of nearby atoms *i'* calculated from the local density of nearby atoms *i'* around each grid
around each grid point, as if there was a central atom *i* point, as if there was a central atom *i* at the grid point. This is
at the grid point. This is useful for characterizing fine-scale useful for characterizing fine-scale structure in a configuration of
structure in a configuration of atoms, and it is used atoms, and it is used in the `MALA package
in the `MALA package <https://github.com/casus/mala>`_ <https://github.com/casus/mala>`_ to build machine-learning surrogates
to build machine-learning surrogates for finite-temperature Kohn-Sham for finite-temperature Kohn-Sham density functional theory (:ref:`Ellis
density functional theory (:ref:`Ellis et al. <Ellis2021>`) et al. <Ellis2021>`) Neighbor atoms not in the group do not contribute
Neighbor atoms not in the group do not contribute to the to the bispectrum components of the grid points. The distance cutoff
bispectrum components of the grid points. The distance cutoff :math:`R_{ii'}` :math:`R_{ii'}` assumes that *i* has the same type as the neighbor atom
assumes that *i* has the same type as the neighbor atom *i'*. *i'*.
Compute *sna/grid* calculates a global array containing bispectrum Compute *sna/grid* calculates a global array containing bispectrum
components for a regular grid of points. components for a regular grid of points.

View File

@ -29,7 +29,7 @@ Description
Define a computation that calculates the temperature of a system based Define a computation that calculates the temperature of a system based
on the center-of-mass velocity of atom pairs that are bonded to each on the center-of-mass velocity of atom pairs that are bonded to each
other. This compute is designed to be used with the adiabatic other. This compute is designed to be used with the adiabatic
core/shell model of :ref:`(Mitchell and Finchham) <MitchellFinchham1>`. core/shell model of :ref:`(Mitchell and Fincham) <MitchellFincham1>`.
See the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of See the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of
the model as implemented in LAMMPS. Specifically, this compute the model as implemented in LAMMPS. Specifically, this compute
enables correct temperature calculation and thermostatting of enables correct temperature calculation and thermostatting of
@ -127,7 +127,7 @@ none
---------- ----------
.. _MitchellFinchham1: .. _MitchellFincham1:
**(Mitchell and Finchham)** Mitchell, Finchham, J Phys Condensed Matter, **(Mitchell and Fincham)** Mitchell, Fincham, J Phys Condensed Matter,
5, 1031-1038 (1993). 5, 1031-1038 (1993).

View File

@ -154,25 +154,25 @@ which must be installed on your system when building LAMMPS for use
with this compute. See instructions on obtaining and installing the with this compute. See instructions on obtaining and installing the
Voro++ software in the src/VORONOI/README file. Voro++ software in the src/VORONOI/README file.
.. _voronoi: http://math.lbl.gov/voro++/ .. _voronoi: https://math.lbl.gov/voro++/
.. note:: .. note::
The calculation of Voronoi volumes is performed by each The calculation of Voronoi volumes is performed by each processor for
processor for the atoms it owns, and includes the effect of ghost the atoms it owns, and includes the effect of ghost atoms stored by
atoms stored by the processor. This assumes that the Voronoi cells of the processor. This assumes that the Voronoi cells of owned atoms
owned atoms are not affected by atoms beyond the ghost atom cut-off are not affected by atoms beyond the ghost atom cut-off distance.
distance. This is usually a good assumption for liquid and solid This is usually a good assumption for liquid and solid systems, but
systems, but may lead to underestimation of Voronoi volumes in low may lead to underestimation of Voronoi volumes in low density
density systems. By default, the set of ghost atoms stored by each systems. By default, the set of ghost atoms stored by each processor
processor is determined by the cutoff used for is determined by the cutoff used for :doc:`pair_style <pair_style>`
:doc:`pair_style <pair_style>` interactions. The cutoff can be set interactions. The cutoff can be set explicitly via the
explicitly via the :doc:`comm_modify cutoff <comm_modify>` command. The :doc:`comm_modify cutoff <comm_modify>` command. The Voronoi cells
Voronoi cells for atoms adjacent to empty regions will extend into for atoms adjacent to empty regions will extend into those regions up
those regions up to the communication cutoff in :math:`x`, :math:`y`, or to the communication cutoff in :math:`x`, :math:`y`, or :math:`z`.
:math:`z`. In that situation, an exterior face is created at the cutoff In that situation, an exterior face is created at the cutoff distance
distance normal to the :math:`x`, :math:`y`, or :math:`z` direction. normal to the :math:`x`, :math:`y`, or :math:`z` direction. For
For triclinic systems, the exterior face is parallel to the corresponding triclinic systems, the exterior face is parallel to the corresponding
reciprocal lattice vector. reciprocal lattice vector.
.. note:: .. note::

View File

@ -189,6 +189,10 @@ to the area of that triangle.
beneficial to exclude computing interactions between the created beneficial to exclude computing interactions between the created
particles using :doc:`neigh_modify exclude <neigh_modify>`. particles using :doc:`neigh_modify exclude <neigh_modify>`.
.. versionchanged:: 2Jun2022
The *porosity* style has been renamed to *random* with added functionality.
For the *random* style, *N* particles are added to the system at For the *random* style, *N* particles are added to the system at
randomly generated coordinates, which can be useful for generating an randomly generated coordinates, which can be useful for generating an
amorphous system. The particles are created one by one using the amorphous system. The particles are created one by one using the

View File

@ -116,6 +116,8 @@ must be in both the specified group and region. If *group-ID* = all,
there is effectively no group criterion. If *region-ID* is specified there is effectively no group criterion. If *region-ID* is specified
as NULL, no region criterion is imposed. as NULL, no region criterion is imposed.
.. versionadded:: 4May2022
For style *variable*, all atoms for which the atom-style variable with For style *variable*, all atoms for which the atom-style variable with
the given name evaluates to non-zero will be deleted. Additional atoms the given name evaluates to non-zero will be deleted. Additional atoms
can be deleted if they are in a molecule for which one or more atoms can be deleted if they are in a molecule for which one or more atoms

View File

@ -480,7 +480,7 @@ style.
---------- ----------
Note that *atom*, *custom*, *dcd*, *xtc*, and *xyz* style dump files Note that *atom*, *custom*, *dcd*, *xtc*, and *xyz* style dump files
can be read directly by `VMD <http://www.ks.uiuc.edu/Research/vmd>`_, a can be read directly by `VMD <https://www.ks.uiuc.edu/Research/vmd>`_, a
popular molecular viewing program. popular molecular viewing program.
---------- ----------

View File

@ -64,7 +64,7 @@ stored within the same file by defining several dumps. A dump that
refers (via *file_from*) to an already open dump ID and that concerns refers (via *file_from*) to an already open dump ID and that concerns
another particle group must specify *create_group yes*. another particle group must specify *create_group yes*.
.. _h5md: http://nongnu.org/h5md/ .. _h5md: https://nongnu.org/h5md/
Each data element is written every N\*N_element steps. For *image*, no Each data element is written every N\*N_element steps. For *image*, no
sub-interval is needed as it must be present at the same interval as sub-interval is needed as it must be present at the same interval as
@ -113,7 +113,7 @@ the `HDF5 <HDF5-ws_>`_ library installed (C bindings are sufficient) on
your system. The library ch5md is compiled with the h5cc wrapper your system. The library ch5md is compiled with the h5cc wrapper
provided by the HDF5 library. provided by the HDF5 library.
.. _HDF5-ws: http://www.hdfgroup.org/HDF5/ .. _HDF5-ws: https://www.hdfgroup.org/solutions/hdf5/
---------- ----------
@ -129,4 +129,4 @@ Related commands
**(de Buyl)** de Buyl, Colberg and Hofling, H5MD: A structured, **(de Buyl)** de Buyl, Colberg and Hofling, H5MD: A structured,
efficient, and portable file format for molecular data, efficient, and portable file format for molecular data,
Comp. Phys. Comm. 185(6), 1546-1553 (2014) - Comp. Phys. Comm. 185(6), 1546-1553 (2014) -
`[arXiv:1308.6382] <http://arxiv.org/abs/1308.6382/>`_. `[arXiv:1308.6382] <https://arxiv.org/abs/1308.6382/>`_.

View File

@ -212,7 +212,7 @@ is used.
Similarly, the format of the resulting movie is chosen with the Similarly, the format of the resulting movie is chosen with the
*movie* dump style. This is handled by the underlying FFmpeg converter *movie* dump style. This is handled by the underlying FFmpeg converter
and thus details have to be looked up in the `FFmpeg documentation and thus details have to be looked up in the `FFmpeg documentation
<http://ffmpeg.org/ffmpeg.html>`_. Typical examples are: .avi, .mpg, <https://ffmpeg.org/ffmpeg.html>`_. Typical examples are: .avi, .mpg,
.m4v, .mp4, .mkv, .flv, .mov, .gif Additional settings of the movie .m4v, .mp4, .mkv, .flv, .mov, .gif Additional settings of the movie
compression like bitrate and framerate can be set using the compression like bitrate and framerate can be set using the
dump_modify command as described below. dump_modify command as described below.
@ -642,7 +642,7 @@ MPEG or other movie file you can use:
cat snap.*.ppm | ffmpeg -y -f image2pipe -c:v ppm -i - -b:v 2400k movie.avi cat snap.*.ppm | ffmpeg -y -f image2pipe -c:v ppm -i - -b:v 2400k movie.avi
Front ends for FFmpeg exist for multiple platforms. For more Front ends for FFmpeg exist for multiple platforms. For more
information see the `FFmpeg homepage <http://www.ffmpeg.org/>`_ information see the `FFmpeg homepage <https://www.ffmpeg.org/>`_
---------- ----------

View File

@ -881,7 +881,7 @@ levels that sacrifice compression for performance. 0 is the default,
positive levels are 1 to 22, with 22 being the most expensive positive levels are 1 to 22, with 22 being the most expensive
compression. Zstd promises higher compression/decompression speeds for compression. Zstd promises higher compression/decompression speeds for
similar compression ratios. For more details see similar compression ratios. For more details see
`http://facebook.github.io/zstd/`. `https://facebook.github.io/zstd/`.
In addition, Zstd compressed files can include a checksum of the In addition, Zstd compressed files can include a checksum of the
entire contents. The Zstd enabled dump styles enable this feature by entire contents. The Zstd enabled dump styles enable this feature by

View File

@ -34,7 +34,7 @@ Dump a snapshot of atom coordinates and selected additional quantities
to one or more files every N timesteps in one of several formats. to one or more files every N timesteps in one of several formats.
Only information for atoms in the specified group is dumped. This Only information for atoms in the specified group is dumped. This
specific dump style uses molfile plugins that are bundled with the specific dump style uses molfile plugins that are bundled with the
`VMD <http://www.ks.uiuc.edu/Research/vmd>`_ molecular visualization and `VMD <https://www.ks.uiuc.edu/Research/vmd>`_ molecular visualization and
analysis program. analysis program.
Unless the filename contains a \* character, the output will be written Unless the filename contains a \* character, the output will be written

View File

@ -48,21 +48,17 @@ rank.
NetCDF files can be directly visualized via the following tools: NetCDF files can be directly visualized via the following tools:
Ovito (http://www.ovito.org/). Ovito supports the AMBER convention and * Ovito (https://www.ovito.org/). Ovito supports the AMBER convention and
all extensions of this dump style. all extensions of this dump style.
* VMD (https://www.ks.uiuc.edu/Research/vmd/).
* VMD (http://www.ks.uiuc.edu/Research/vmd/).
* AtomEye (http://www.libatoms.org/). The libAtoms version of AtomEye
contains a NetCDF reader that is not present in the standard
distribution of AtomEye.
In addition to per-atom data, :doc:`thermo <thermo>` data can be included in the In addition to per-atom data, :doc:`thermo <thermo>` data can be included in the
dump file. The data included in the dump file is identical to the data specified dump file. The data included in the dump file is identical to the data specified
by :doc:`thermo_style <thermo_style>`. by :doc:`thermo_style <thermo_style>`.
.. _netcdf-home: http://www.unidata.ucar.edu/software/netcdf/ .. _netcdf-home: https://www.unidata.ucar.edu/software/netcdf/
.. _pnetcdf-home: http://trac.mcs.anl.gov/projects/parallel-netcdf/ .. _pnetcdf-home: https://trac.mcs.anl.gov/projects/parallel-netcdf/
---------- ----------

View File

@ -29,8 +29,9 @@ Description
""""""""""" """""""""""
Dump a snapshot of atom quantities to one or more files every :math:`N` Dump a snapshot of atom quantities to one or more files every :math:`N`
timesteps in a format readable by the `VTK visualization toolkit <http://www.vtk.org>`_ or other visualization tools that use it, timesteps in a format readable by the `VTK visualization toolkit
such as `ParaView <http://www.paraview.org>`_. The time steps on which dump <https://www.vtk.org>`_ or other visualization tools that use it, such
as `ParaView <https://www.paraview.org>`_. The time steps on which dump
output is written can also be controlled by a variable; see the output is written can also be controlled by a variable; see the
:doc:`dump_modify every <dump_modify>` command for details. :doc:`dump_modify every <dump_modify>` command for details.
@ -38,8 +39,8 @@ This dump style is similar to :doc:`dump_style custom <dump>` but uses
the VTK library to write data to VTK simple legacy or XML format, the VTK library to write data to VTK simple legacy or XML format,
depending on the filename extension specified for the dump file. This depending on the filename extension specified for the dump file. This
can be either *\*.vtk* for the legacy format or *\*.vtp* and *\*.vtu*, can be either *\*.vtk* for the legacy format or *\*.vtp* and *\*.vtu*,
respectively, for XML format; see the respectively, for XML format; see the `VTK homepage
`VTK homepage <http://www.vtk.org/VTK/img/file-formats.pdf>`_ for a detailed <https://www.vtk.org/VTK/img/file-formats.pdf>`_ for a detailed
description of these formats. Since this naming convention conflicts description of these formats. Since this naming convention conflicts
with the way binary output is usually specified (see below), the with the way binary output is usually specified (see below), the
:doc:`dump_modify binary <dump_modify>` command allows setting of a :doc:`dump_modify binary <dump_modify>` command allows setting of a
@ -61,14 +62,15 @@ determine the kind of output.
.. warning:: .. warning::
Unless the :doc:`dump_modify sort <dump_modify>` option Unless the :doc:`dump_modify sort <dump_modify>` option is invoked,
is invoked, the lines of atom information written to dump files will the lines of atom information written to dump files will be in an
be in an indeterminate order for each snapshot. This is even true indeterminate order for each snapshot. This is even true when
when running on a single processor, if the :doc:`atom_modify sort <atom_modify>` option is on, which it is by default. In this running on a single processor, if the :doc:`atom_modify sort
case atoms are re-ordered periodically during a simulation, due to <atom_modify>` option is on, which it is by default. In this case
spatial sorting. It is also true when running in parallel, because atoms are re-ordered periodically during a simulation, due to spatial
data for a single snapshot is collected from multiple processors, each sorting. It is also true when running in parallel, because data for
of which owns a subset of the atoms. a single snapshot is collected from multiple processors, each of
which owns a subset of the atoms.
For the *vtk* style, sorting is off by default. See the For the *vtk* style, sorting is off by default. See the
:doc:`dump_modify <dump_modify>` page for details. :doc:`dump_modify <dump_modify>` page for details.

View File

@ -319,6 +319,8 @@ with fix_adapt are
---------- ----------
.. versionadded:: 4May2022
The *angle* keyword uses the specified variable to change the value of The *angle* keyword uses the specified variable to change the value of
an angle coefficient over time, very similar to how the *pair* keyword an angle coefficient over time, very similar to how the *pair* keyword
operates. The only difference is that now an angle coefficient for a operates. The only difference is that now an angle coefficient for a

View File

@ -78,7 +78,7 @@ example of how this is done. This sample application performs
classical MD using quantum forces computed by a density functional classical MD using quantum forces computed by a density functional
code `Quest <quest_>`_. code `Quest <quest_>`_.
.. _quest: http://dft.sandia.gov/Quest .. _quest: https://dft.sandia.gov/Quest
---------- ----------

View File

@ -159,7 +159,7 @@ Related commands
.. _GLE4MD: .. _GLE4MD:
**(GLE4MD)** `http://gle4md.org/ <http://gle4md.org/>`_ **(GLE4MD)** `https://gle4md.org/ <https://gle4md.org/>`_
.. _Ceriotti2: .. _Ceriotti2:

View File

@ -51,16 +51,11 @@ from the main execution thread and potentially lower the inferred
latencies for slow communication links. This feature has only been latencies for slow communication links. This feature has only been
tested under linux. tested under linux.
There are example scripts for using this package with LAMMPS in The source code for this fix includes code developed by the Theoretical
examples/PACKAGES/imd. Additional examples and a driver for use with the and Computational Biophysics Group in the Beckman Institute for Advanced
Novint Falcon game controller as haptic device can be found at: Science and Technology at the University of Illinois at
http://sites.google.com/site/akohlmey/software/vrpn-icms. Urbana-Champaign. We thank them for providing a software interface that
allows codes like LAMMPS to hook to `VMD <VMD_>`_.
The source code for this fix includes code developed by the
Theoretical and Computational Biophysics Group in the Beckman
Institute for Advanced Science and Technology at the University of
Illinois at Urbana-Champaign. We thank them for providing a software
interface that allows codes like LAMMPS to hook to `VMD <VMD_>`_.
Upon initialization of the fix, it will open a communication port on Upon initialization of the fix, it will open a communication port on
the node with MPI task 0 and wait for an incoming connection. As soon the node with MPI task 0 and wait for an incoming connection. As soon
@ -117,40 +112,40 @@ VMD are the following:
In the Mouse menu of the VMD Main window, select "Mouse -> Force -> In the Mouse menu of the VMD Main window, select "Mouse -> Force ->
Atom". You may alternately select "Residue", or "Fragment" to apply Atom". You may alternately select "Residue", or "Fragment" to apply
forces to whole residues or fragments. Your mouse can now be used to forces to whole residues or fragments. Your mouse can now be used to
apply forces to your simulation. Click on an atom, residue, or apply forces to your simulation. Click on an atom, residue, or fragment
fragment and drag to apply a force. Click quickly without moving the and drag to apply a force. Click quickly without moving the mouse to
mouse to turn the force off. You can also use a variety of 3D position turn the force off. You can also use a variety of 3D position trackers
trackers to apply forces to your simulation. Game controllers or haptic to apply forces to your simulation. Game controllers or haptic devices
devices with force-feedback such as the Novint Falcon or Sensable with force-feedback such as the Novint Falcon or Sensable PHANTOM allow
PHANTOM allow you to feel the resistance due to inertia or interactions you to feel the resistance due to inertia or interactions with neighbors
with neighbors that the atoms experience you are trying to move, as if that the atoms experience you are trying to move, as if they were real
they were real objects. See the `VMD IMD Homepage <imdvmd_>`_ and the objects. See the `VMD IMD Homepage <imdvmd_>`_ for more details.
`VRPN-ICMS Homepage <vrpnicms_>`_ for more details.
If IMD control messages are received, a line of text describing the If IMD control messages are received, a line of text describing the
message and its effect will be printed to the LAMMPS output screen, if message and its effect will be printed to the LAMMPS output screen, if
screen output is active. screen output is active.
.. _VMD: http://www.ks.uiuc.edu/Research/vmd .. _VMD: https://www.ks.uiuc.edu/Research/vmd
.. _imdvmd: http://www.ks.uiuc.edu/Research/vmd/imd/ .. _imdvmd: https://www.ks.uiuc.edu/Research/vmd/imd/
.. _vrpnicms: http://sites.google.com/site/akohlmey/software/vrpn-icms
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options No information about this fix is written to :doc:`binary restart files
are relevant to this fix. No global scalar or vector or per-atom <restart>`. None of the :doc:`fix_modify <fix_modify>` options are
quantities are stored by this fix for access by various :doc:`output commands <Howto_output>`. No parameter of this fix can be used relevant to this fix. No global scalar or vector or per-atom quantities
with the *start/stop* keywords of the :doc:`run <run>` command. This are stored by this fix for access by various :doc:`output commands
fix is not invoked during :doc:`energy minimization <minimize>`. <Howto_output>`. No parameter of this fix can be used with the
*start/stop* keywords of the :doc:`run <run>` command. This fix is not
invoked during :doc:`energy minimization <minimize>`.
Restrictions Restrictions
"""""""""""" """"""""""""
This fix is part of the MISC package. It is only enabled if This fix is part of the MISC package. It is only enabled if LAMMPS was
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info. built with that package. See the :doc:`Build package <Build_package>`
page for more info.
When used in combination with VMD, a topology or coordinate file has When used in combination with VMD, a topology or coordinate file has
to be loaded, which matches (in number and ordering of atoms) the to be loaded, which matches (in number and ordering of atoms) the

View File

@ -111,4 +111,4 @@ Related commands
.. _ipihome: .. _ipihome:
**(IPI)** **(IPI)**
`http://epfl-cosmo.github.io/gle4md/index.html?page=ipi <http://epfl-cosmo.github.io/gle4md/index.html?page=ipi>`_ `https://ipi-code.org <https://ipi-code.org>`_

View File

@ -81,6 +81,8 @@ The *coulomb* argument is not yet supported by fix latte (as of Sept
Coulomb potential as an alternative to LATTE performing the Coulomb potential as an alternative to LATTE performing the
calculation. calculation.
.. versionadded:: 15Sep2022
The *exclude* argument allows this fix to work in tandem with another The *exclude* argument allows this fix to work in tandem with another
fix which may decide to delete one or more atoms of molecules. The fix which may decide to delete one or more atoms of molecules. The
specified fixID is the ID of the other fix. specified fixID is the ID of the other fix.

View File

@ -43,6 +43,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 3Aug2022
This command enables LAMMPS to act as a client with another server This command enables LAMMPS to act as a client with another server
code that will compute the total energy, per-atom forces, and total code that will compute the total energy, per-atom forces, and total
virial for atom conformations and simulation box size/shapes that virial for atom conformations and simulation box size/shapes that

View File

@ -210,7 +210,8 @@ use :doc:`change_box <change_box>` before invoking the fix.
.. note:: .. note::
When resuming from restart files, you may need to use :doc:`box tilt large <box>` since lammps has internal criteria from lattice When resuming from restart files, you may need to use :doc:`box tilt
large <box>` since LAMMPS has internal criteria from lattice
reduction that are not the same as the criteria in the numerical reduction that are not the same as the criteria in the numerical
lattice reduction algorithm. lattice reduction algorithm.

View File

@ -25,6 +25,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 17Feb2022
Calculate the virial stress tensor through a finite difference calculation of Calculate the virial stress tensor through a finite difference calculation of
energy versus strain. These values can be compared to the analytic virial energy versus strain. These values can be compared to the analytic virial
tensor computed by pair styles, bond styles, etc. This can be useful for tensor computed by pair styles, bond styles, etc. This can be useful for

View File

@ -108,4 +108,4 @@ every = 0, tchain = 3
.. _Paquay2: .. _Paquay2:
**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016). **(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).
preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_. preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.

View File

@ -82,4 +82,4 @@ Related commands
.. _Paquay3: .. _Paquay3:
**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016). **(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).
preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_. preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.

View File

@ -134,7 +134,7 @@ for other systems, *nasr* = 10 is typically sufficient.
The *map_file* contains the mapping information between the lattice The *map_file* contains the mapping information between the lattice
indices and the atom IDs, which tells the code which atom sits at indices and the atom IDs, which tells the code which atom sits at
which lattice point; the lattice indices start from 0. An auxiliary which lattice point; the lattice indices start from 0. An auxiliary
code, `latgen <http://code.google.com/p/latgen>`_, can be employed to code, `latgen <https://code.google.com/p/latgen>`_, can be employed to
generate the compatible map file for various crystals. generate the compatible map file for various crystals.
In case one simulates a non-periodic system, where the whole simulation In case one simulates a non-periodic system, where the whole simulation
@ -143,7 +143,7 @@ that the mapping info will be generated internally and a file is not
needed. In this case, the dynamical matrix at only the gamma-point needed. In this case, the dynamical matrix at only the gamma-point
will/can be evaluated. Please keep in mind that fix-phonon is designed will/can be evaluated. Please keep in mind that fix-phonon is designed
for cyrstals, it will be inefficient and even degrade the performance for cyrstals, it will be inefficient and even degrade the performance
of lammps in case the unit cell is too large. of LAMMPS in case the unit cell is too large.
The calculated dynamical matrix elements are written out in The calculated dynamical matrix elements are written out in
:doc:`energy/distance\^2/mass <units>` units. The coordinates for *q* :doc:`energy/distance\^2/mass <units>` units. The coordinates for *q*

View File

@ -31,7 +31,7 @@ wave DFT package. Electrostatic coupling is in preparation and the
interface has been written in a manner that coupling to other QM codes interface has been written in a manner that coupling to other QM codes
should be possible without changes to LAMMPS itself. should be possible without changes to LAMMPS itself.
.. _espresso: http://www.quantum-espresso.org .. _espresso: https://www.quantum-espresso.org
The interface code for this is in the lib/qmmm directory of the LAMMPS The interface code for this is in the lib/qmmm directory of the LAMMPS
distribution and is being made available at this early stage of distribution and is being made available at this early stage of

View File

@ -58,10 +58,13 @@ Description
Apply bond and angle constraints to specified bonds and angles in the Apply bond and angle constraints to specified bonds and angles in the
simulation by either the SHAKE or RATTLE algorithms. This typically simulation by either the SHAKE or RATTLE algorithms. This typically
enables a longer timestep. The SHAKE or RATTLE algorithms, however, can enables a longer timestep. The SHAKE or RATTLE constraint algorithms,
*only* be applied during molecular dynamics runs. When this fix is used however, can *only* be applied during molecular dynamics runs.
during a minimization, the constraints are *approximated* by strong
harmonic restraints. .. versionchanged:: 15Sep2022
These fixes may still be used during minimization. In that case the
constraints are *approximated* by strong harmonic restraints.
**SHAKE vs RATTLE:** **SHAKE vs RATTLE:**

View File

@ -314,9 +314,10 @@ pressure simulation with MSM will cause the code to run slower.
---------- ----------
The *scafacos* style is a wrapper on the `ScaFaCoS Coulomb solver library <http://www.scafacos.de>`_ which provides a variety of solver The *scafacos* style is a wrapper on the `ScaFaCoS Coulomb solver
methods which can be used with LAMMPS. The paper by :ref:`(Sutman) <Sutmann2014>` library <http://www.scafacos.de>`_ which provides a variety of solver
gives an overview of ScaFaCoS. methods which can be used with LAMMPS. The paper by :ref:`(Sutman)
<Sutmann2014>` gives an overview of ScaFaCoS.
ScaFaCoS was developed by a consortium of German research facilities ScaFaCoS was developed by a consortium of German research facilities
with a BMBF (German Ministry of Science and Education) funded project with a BMBF (German Ministry of Science and Education) funded project

View File

@ -54,7 +54,7 @@ command to specify them.
**ADP potentials are available from:** **ADP potentials are available from:**
* The NIST WWW site at http://www.ctcms.nist.gov/potentials. * The NIST WWW site at https://www.ctcms.nist.gov/potentials.
Note that ADP potentials obtained from NIST must be converted Note that ADP potentials obtained from NIST must be converted
into the extended DYNAMO *setfl* format discussed below. into the extended DYNAMO *setfl* format discussed below.
* The OpenKIM Project at * The OpenKIM Project at

View File

@ -110,7 +110,7 @@ These pair styles compute Lennard Jones (LJ) and Coulombic
interactions with additional switching or shifting functions that ramp interactions with additional switching or shifting functions that ramp
the energy and/or force smoothly to zero between an inner and outer the energy and/or force smoothly to zero between an inner and outer
cutoff. They are implementations of the widely used CHARMM force cutoff. They are implementations of the widely used CHARMM force
field used in the `CHARMM <http://www.scripps.edu/brooks>`_ MD code (and field used in the `CHARMM <https://www.charmm.org>`_ MD code (and
others). See :ref:`(MacKerell) <pair-MacKerell>` for a description of the others). See :ref:`(MacKerell) <pair-MacKerell>` for a description of the
CHARMM force field. CHARMM force field.

View File

@ -114,7 +114,7 @@ Description
""""""""""" """""""""""
These pair styles are designed to be used with the adiabatic These pair styles are designed to be used with the adiabatic
core/shell model of :ref:`(Mitchell and Finchham) <MitchellFinchham2>`. See core/shell model of :ref:`(Mitchell and Fincham) <MitchellFincham3>`. See
the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of
the model as implemented in LAMMPS. the model as implemented in LAMMPS.
@ -196,7 +196,7 @@ none
---------- ----------
.. _MitchellFinchham2: .. _MitchellFincham3:
**(Mitchell and Finchham)** Mitchell, Finchham, J Phys Condensed Matter, **(Mitchell and Fincham)** Mitchell, Fincham, J Phys Condensed Matter,
5, 1031-1038 (1993). 5, 1031-1038 (1993).

View File

@ -122,15 +122,11 @@ are parameterized in terms of LAMMPS :doc:`metal units <units>`.
EAM potential files list atomic masses; thus you do not need to use EAM potential files list atomic masses; thus you do not need to use
the :doc:`mass <mass>` command to specify them. the :doc:`mass <mass>` command to specify them.
There are several WWW sites that distribute and document EAM There are web sites that distribute and document EAM potentials stored
potentials stored in DYNAMO or other formats: in DYNAMO or other formats:
.. parsed-literal:: * https://www.ctcms.nist.gov/potentials
* https://openkim.org
http://www.ctcms.nist.gov/potentials
http://cst-www.nrl.navy.mil/ccm6/ap
http://enpub.fulton.asu.edu/cms/potentials/main/main.htm
https://openkim.org
These potentials should be usable with LAMMPS, though the alternate These potentials should be usable with LAMMPS, though the alternate
formats would need to be converted to the DYNAMO format used by LAMMPS formats would need to be converted to the DYNAMO format used by LAMMPS

View File

@ -53,7 +53,7 @@ Description
The *lj/gromacs* styles compute shifted LJ and Coulombic interactions The *lj/gromacs* styles compute shifted LJ and Coulombic interactions
with an additional switching function S(r) that ramps the energy and force with an additional switching function S(r) that ramps the energy and force
smoothly to zero between an inner and outer cutoff. It is a commonly smoothly to zero between an inner and outer cutoff. It is a commonly
used potential in the `GROMACS <http://www.gromacs.org>`_ MD code and for used potential in the `GROMACS <https://www.gromacs.org>`_ MD code and for
the coarse-grained models of :ref:`(Marrink) <Marrink>`. the coarse-grained models of :ref:`(Marrink) <Marrink>`.
.. math:: .. math::

View File

@ -27,6 +27,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 17Feb2022
Style *harmonic/cut* computes pairwise repulsive-only harmonic interactions with the formula Style *harmonic/cut* computes pairwise repulsive-only harmonic interactions with the formula
.. math:: .. math::

View File

@ -32,6 +32,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 17Feb2022
The *ilp/tmd* style computes the registry-dependent interlayer The *ilp/tmd* style computes the registry-dependent interlayer
potential (ILP) potential for transition metal dichalcogenides (TMD) potential (ILP) potential for transition metal dichalcogenides (TMD)
as described in :ref:`(Ouyang7) <Ouyang7>`. as described in :ref:`(Ouyang7) <Ouyang7>`.

View File

@ -311,9 +311,9 @@ formulation of the partial electron density function. In recent
literature, an extra term is included in the expression for the literature, an extra term is included in the expression for the
third-order density in order to make the densities orthogonal (see for third-order density in order to make the densities orthogonal (see for
example :ref:`(Wang) <Wang2>`, equation 3d); this term is included in the example :ref:`(Wang) <Wang2>`, equation 3d); this term is included in the
MEAM implementation in lammps. However, in earlier published work MEAM implementation in LAMMPS. However, in earlier published work
this term was not included when deriving parameters, including most of this term was not included when deriving parameters, including most of
those provided in the ``library.meam`` file included with lammps, and to those provided in the ``library.meam`` file included with LAMMPS, and to
account for this difference the parameter *t1* must be augmented by account for this difference the parameter *t1* must be augmented by
3/5\**t3*. If *augt1* = 1, the default, this augmentation is done 3/5\**t3*. If *augt1* = 1, the default, this augmentation is done
automatically. When parameter values are fit using the modified automatically. When parameter values are fit using the modified
@ -321,16 +321,16 @@ density function, as in more recent literature, augt1 should be set to
0. 0.
The *mixture_ref_t* parameter is available to match results with those The *mixture_ref_t* parameter is available to match results with those
of previous versions of lammps (before January 2011). Newer versions of previous versions of LAMMPS (before January 2011). Newer versions
of lammps, by default, use the single-element values of the *t* of LAMMPS, by default, use the single-element values of the *t*
parameters to compute the background reference density. This is the parameters to compute the background reference density. This is the
proper way to compute these parameters. Earlier versions of lammps proper way to compute these parameters. Earlier versions of LAMMPS
used an alloy mixture averaged value of *t* to compute the background used an alloy mixture averaged value of *t* to compute the background
reference density. Setting *mixture_ref_t* = 1 gives the old behavior. reference density. Setting *mixture_ref_t* = 1 gives the old behavior.
WARNING: using *mixture_ref_t* = 1 will give results that are demonstrably WARNING: using *mixture_ref_t* = 1 will give results that are demonstrably
incorrect for second-neighbor MEAM, and non-standard for incorrect for second-neighbor MEAM, and non-standard for
first-neighbor MEAM; this option is included only for matching with first-neighbor MEAM; this option is included only for matching with
previous versions of lammps and should be avoided if possible. previous versions of LAMMPS and should be avoided if possible.
The parameters *attrac* and *repuls*, along with the integer selection The parameters *attrac* and *repuls*, along with the integer selection
parameter *erose_form*, can be used to modify the Rose energy function parameter *erose_form*, can be used to modify the Rose energy function
@ -361,7 +361,7 @@ recent published MEAM parameter sets, such as :ref:`(Valone) <Valone>`
The default form of the *erose* expression in LAMMPS was corrected The default form of the *erose* expression in LAMMPS was corrected
in March 2009. The current version is correct, but may show different in March 2009. The current version is correct, but may show different
behavior compared with earlier versions of lammps with the attrac behavior compared with earlier versions of LAMMPS with the attrac
and/or repuls parameters are non-zero. To obtain the previous default and/or repuls parameters are non-zero. To obtain the previous default
form, use *erose_form* = 1 (this form does not seem to appear in the form, use *erose_form* = 1 (this form does not seem to appear in the
literature). An alternative form (see e.g. :ref:`(Lee2) <Lee2>`) is literature). An alternative form (see e.g. :ref:`(Lee2) <Lee2>`) is
@ -423,10 +423,8 @@ none
.. _Gullet: .. _Gullet:
**(Gullet)** Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). **(Gullet)** Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395
This report may be accessed on-line via `this link <sandreport_>`_. This report may be accessed on-line via `this link <https://download.lammps.org/pdfs/MEAM_report_2003.pdf>`_.
.. _sandreport: http://infoserve.sandia.gov/sand_doc/2003/038782.pdf
.. _Lee: .. _Lee:

View File

@ -62,6 +62,8 @@ useful to know the gradient or derivative of energy, force, and stress
w.r.t. model parameters. This information can be accessed using the w.r.t. model parameters. This information can be accessed using the
related :doc:`compute mliap <compute_mliap>` command. related :doc:`compute mliap <compute_mliap>` command.
.. versionadded:: 2Jun2022
The descriptor style *so3* is a descriptor that is derived from the The descriptor style *so3* is a descriptor that is derived from the
the smooth SO(3) power spectrum with the explicit inclusion of a radial the smooth SO(3) power spectrum with the explicit inclusion of a radial
basis :ref:`(Bartok) <Bartok2013>` and :ref:`(Zagaceta) <Zagaceta2020>`. basis :ref:`(Bartok) <Bartok2013>` and :ref:`(Zagaceta) <Zagaceta2020>`.

View File

@ -284,6 +284,8 @@ the *pair* keyword. Use *no* to disable, or *yes* to enable.
The "pair_modify pair compute/tally" command must be issued The "pair_modify pair compute/tally" command must be issued
**before** the corresponding compute style is defined. **before** the corresponding compute style is defined.
.. versionadded:: 3Aug2022
The *neigh/trim* keyword controls whether an explicit cutoff is set for The *neigh/trim* keyword controls whether an explicit cutoff is set for
each neighbor list request issued by individual pair sub-styles when each neighbor list request issued by individual pair sub-styles when
using :doc:`pair hybrid/overlay <pair_hybrid>`. When this keyword is using :doc:`pair hybrid/overlay <pair_hybrid>`. When this keyword is

View File

@ -51,8 +51,9 @@ Description
""""""""""" """""""""""
The peridynamic pair styles implement material models that can be used The peridynamic pair styles implement material models that can be used
at the mesoscopic and macroscopic scales. See `this document <PDF/PDLammps_overview.pdf>`_ for an overview of LAMMPS commands at the mesoscopic and macroscopic scales. See `this document
for Peridynamics modeling. <PDF/PDLammps_overview.pdf>`_ for an overview of LAMMPS commands for
Peridynamics modeling.
Style *peri/pmb* implements the Peridynamic bond-based prototype Style *peri/pmb* implements the Peridynamic bond-based prototype
microelastic brittle (PMB) model. microelastic brittle (PMB) model.
@ -66,26 +67,27 @@ peridynamic viscoelastic solid (VES) model.
Style *peri/eps* implements the Peridynamic state-based elastic-plastic Style *peri/eps* implements the Peridynamic state-based elastic-plastic
solid (EPS) model. solid (EPS) model.
The canonical papers on Peridynamics are :ref:`(Silling 2000) <Silling2000>` The canonical papers on Peridynamics are :ref:`(Silling 2000)
and :ref:`(Silling 2007) <Silling2007>`. The implementation of Peridynamics <Silling2000>` and :ref:`(Silling 2007) <Silling2007>`. The
in LAMMPS is described in :ref:`(Parks) <Parks>`. Also see the `PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for implementation of Peridynamics in LAMMPS is described in :ref:`(Parks)
more details about its implementation. <Parks>`. Also see the :doc:`Peridynamics Howto <Howto_peri>` for more
details about its implementation.
The peridynamic VES and EPS models in PDLAMMPS were implemented by The peridynamic VES and EPS models in PDLAMMPS were implemented by
R. Rahman and J. T. Foster at University of Texas at San Antonio. The R. Rahman and J. T. Foster at University of Texas at San Antonio. The
original VES formulation is described in "(Mitchell2011)" and the original VES formulation is described in "(Mitchell2011)" and the
original EPS formulation is in "(Mitchell2011a)". Additional PDF docs original EPS formulation is in "(Mitchell2011a)". Additional PDF docs
that describe the VES and EPS implementations are include in the that describe the VES and EPS implementations are include in the LAMMPS
LAMMPS distribution in `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_ and distribution in `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_ and
`doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_. For questions `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_. For questions
regarding the VES and EPS models in LAMMPS you can contact R. Rahman regarding the VES and EPS models in LAMMPS you can contact R. Rahman
(rezwanur.rahman at utsa.edu). (rezwanur.rahman at utsa.edu).
The following coefficients must be defined for each pair of atom types The following coefficients must be defined for each pair of atom types
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above, via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
or in the data file or restart files read by the or in the data file or restart files read by the :doc:`read_data
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>` <read_data>` or :doc:`read_restart <read_restart>` commands, or by
commands, or by mixing as described below. mixing as described below.
For the *peri/pmb* style: For the *peri/pmb* style:
@ -96,8 +98,8 @@ For the *peri/pmb* style:
C is the effectively a spring constant for Peridynamic bonds, the C is the effectively a spring constant for Peridynamic bonds, the
horizon is a cutoff distance for truncating interactions, and s00 and horizon is a cutoff distance for truncating interactions, and s00 and
:math:`\alpha` are used as a bond breaking criteria. The units of c are such :math:`\alpha` are used as a bond breaking criteria. The units of c are
that c/distance = stiffness/volume\^2, where stiffness is such that c/distance = stiffness/volume\^2, where stiffness is
energy/distance\^2 and volume is distance\^3. See the users guide for energy/distance\^2 and volume is distance\^3. See the users guide for
more details. more details.
@ -110,8 +112,8 @@ For the *peri/lps* style:
* :math:`\alpha` (unitless) * :math:`\alpha` (unitless)
K is the bulk modulus and G is the shear modulus. The horizon is a K is the bulk modulus and G is the shear modulus. The horizon is a
cutoff distance for truncating interactions, and s00 and :math:`\alpha` are cutoff distance for truncating interactions, and s00 and :math:`\alpha`
used as a bond breaking criteria. See the users guide for more are used as a bond breaking criteria. See the users guide for more
details. details.
For the *peri/ves* style: For the *peri/ves* style:
@ -125,12 +127,12 @@ For the *peri/ves* style:
* m_taubi (unitless) * m_taubi (unitless)
K is the bulk modulus and G is the shear modulus. The horizon is a K is the bulk modulus and G is the shear modulus. The horizon is a
cutoff distance for truncating interactions, and s00 and :math:`\alpha` are cutoff distance for truncating interactions, and s00 and :math:`\alpha`
used as a bond breaking criteria. m_lambdai and m_taubi are the are used as a bond breaking criteria. m_lambdai and m_taubi are the
viscoelastic relaxation parameter and time constant, viscoelastic relaxation parameter and time constant,
respectively. m_lambdai varies within zero to one. For very small respectively. m_lambdai varies within zero to one. For very small values
values of m_lambdai the viscoelastic model responds very similar to a of m_lambdai the viscoelastic model responds very similar to a linear
linear elastic model. For details please see the description in elastic model. For details please see the description in
"(Mitchell2011)". "(Mitchell2011)".
For the *peri/eps* style: For the *peri/eps* style:
@ -165,8 +167,9 @@ shift option.
The :doc:`pair_modify <pair_modify>` table and tail options are not The :doc:`pair_modify <pair_modify>` table and tail options are not
relevant for these pair styles. relevant for these pair styles.
These pair styles write their information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do not need These pair styles write their information to :doc:`binary restart files
to be specified in an input script that reads a restart file. <restart>`, so pair_style and pair_coeff commands do not need to be
specified in an input script that reads a restart file.
These pair styles can only be used via the *pair* keyword of the These pair styles can only be used via the *pair* keyword of the
:doc:`run_style respa <run_style>` command. They do not support the :doc:`run_style respa <run_style>` command. They do not support the
@ -177,8 +180,9 @@ These pair styles can only be used via the *pair* keyword of the
Restrictions Restrictions
"""""""""""" """"""""""""
All of these styles are part of the PERI package. They are only All of these styles are part of the PERI package. They are only enabled
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info. if LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -49,11 +49,12 @@ A QUIP potential is fully specified by the filename which contains the
parameters of the potential in XML format, the initialization string, parameters of the potential in XML format, the initialization string,
and the map of atomic numbers. and the map of atomic numbers.
GAP potentials can be obtained from the Data repository section of GAP potentials can be obtained from the `GAP models and databases page
`http://www.libatoms.org <http://www.libatoms.org>`_, where the on the libAtoms homepage `https://libatoms.github.io
appropriate initialization strings are also advised. The list of <https://libatoms.github.io/GAP/data.html>`_, where the appropriate
atomic numbers must be matched to the LAMMPS atom types specified in initialization strings are also advised. The list of atomic numbers must
the LAMMPS data file or elsewhere. be matched to the LAMMPS atom types specified in the LAMMPS data file or
elsewhere.
Two examples input scripts are provided in the examples/PACKAGES/quip Two examples input scripts are provided in the examples/PACKAGES/quip
directory. directory.

View File

@ -32,6 +32,8 @@ Examples
Description Description
""""""""""" """""""""""
.. versionadded:: 17Feb2022
The *saip/metal* style computes the registry-dependent interlayer The *saip/metal* style computes the registry-dependent interlayer
potential (ILP) potential for hetero-junctions formed with hexagonal potential (ILP) potential for hetero-junctions formed with hexagonal
2D materials and metal surfaces, as described in :ref:`(Ouyang6) <Ouyang6>`. 2D materials and metal surfaces, as described in :ref:`(Ouyang6) <Ouyang6>`.

View File

@ -132,6 +132,8 @@ at the cutoff distance :math:`r_c`.
---------- ----------
.. versionadded:: 3Aug2022
Pair style *srp/react* interfaces the pair style *srp* with the Pair style *srp/react* interfaces the pair style *srp* with the
bond breaking and formation mechanisms provided by fix *bond/break* bond breaking and formation mechanisms provided by fix *bond/break*
and fix *bond/create*, respectively. When using this pair style, whenever a and fix *bond/create*, respectively. When using this pair style, whenever a

View File

@ -130,6 +130,8 @@ terms.
so the inconsistency between potential and force can be neglected in so the inconsistency between potential and force can be neglected in
actual simulations. actual simulations.
.. versionadded:: 3Aug2022
The *threebody* keyword is optional and determines whether or not the The *threebody* keyword is optional and determines whether or not the
three-body term of the potential is calculated. The default value is three-body term of the potential is calculated. The default value is
"on" and it is only available for the plain *sw* pair style variants, "on" and it is only available for the plain *sw* pair style variants,

View File

@ -59,6 +59,8 @@ The *clear* command will unload all currently loaded plugins.
.. admonition:: Automatic loading of plugins .. admonition:: Automatic loading of plugins
:class: note :class: note
.. versionadded:: 4May2022
When the environment variable ``LAMMPS_PLUGIN_PATH`` is set, then When the environment variable ``LAMMPS_PLUGIN_PATH`` is set, then
LAMMPS will search the directory (or directories) listed in this path LAMMPS will search the directory (or directories) listed in this path
for files with names that end in ``plugin.so`` for files with names that end in ``plugin.so``

View File

@ -266,6 +266,8 @@ replace properties of the current system. There are various options
for how this is done, determined by the specified fields and optional for how this is done, determined by the specified fields and optional
keywords. keywords.
.. versionchanged:: 3Aug2022
The timestep of the snapshot becomes the current timestep for the The timestep of the snapshot becomes the current timestep for the
simulation unless the *timestep* keyword is specified with a *no* value simulation unless the *timestep* keyword is specified with a *no* value
(default setting is *yes*). See the :doc:`reset_timestep <reset_timestep>` (default setting is *yes*). See the :doc:`reset_timestep <reset_timestep>`
@ -397,4 +399,4 @@ Default
The option defaults are box = yes, timestep = yes, replace = yes, purge = no, The option defaults are box = yes, timestep = yes, replace = yes, purge = no,
trim = no, add = no, scaled = no, wrapped = yes, and format = native. trim = no, add = no, scaled = no, wrapped = yes, and format = native.
.. _vmd: http://www.ks.uiuc.edu/Research/vmd .. _vmd: https://www.ks.uiuc.edu/Research/vmd

View File

@ -162,6 +162,8 @@ Thus the third example above specifies a cylinder with its axis in the
y-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and y-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and
extending in the y-direction from -5.0 to the upper box boundary. extending in the y-direction from -5.0 to the upper box boundary.
.. versionadded:: 4May2022
For style *ellipsoid*, an axis-aligned ellipsoid is defined. The For style *ellipsoid*, an axis-aligned ellipsoid is defined. The
ellipsoid has its center at (x,y,z) and is defined by 3 axis-aligned ellipsoid has its center at (x,y,z) and is defined by 3 axis-aligned
vectors given by A = (a,0,0); B = (0,b,0); C = (0,0,c). Note that vectors given by A = (a,0,0); B = (0,b,0); C = (0,0,c). Note that

View File

@ -1,3 +1,11 @@
.math {
text-align: left;
}
.eqno {
float: right;
}
.wy-nav-content { .wy-nav-content {
max-width: 100% !important; max-width: 100% !important;
} }

View File

@ -750,6 +750,7 @@ dirname
discoverable discoverable
discretization discretization
discretized discretized
discretizing
disp disp
dissipative dissipative
Dissipative Dissipative
@ -918,6 +919,7 @@ emax
Emax Emax
Embt Embt
emi emi
Emmrich
emol emol
eN eN
endian endian
@ -1083,7 +1085,6 @@ filesystem
filesystems filesystems
Fily Fily
Fincham Fincham
Finchham
Fint Fint
fingerprintconstants fingerprintconstants
fingerprintsperelement fingerprintsperelement
@ -2128,6 +2129,7 @@ modelled
modelling modelling
Modelling Modelling
Modine Modine
moduli
mofff mofff
MOFFF MOFFF
Mohd Mohd
@ -2143,6 +2145,7 @@ Monaghan
Monaghans Monaghans
monodisperse monodisperse
monodispersity monodispersity
monolayer
monopole monopole
monovalent monovalent
Montalenti Montalenti
@ -2418,6 +2421,7 @@ normy
normz normz
Noskov Noskov
noslip noslip
notational
noticable noticable
Nout Nout
noutcol noutcol
@ -2778,6 +2782,7 @@ ps
Ps Ps
pscreen pscreen
pscrozi pscrozi
Pseudocode
pseudodynamics pseudodynamics
pseudopotential pseudopotential
pSp pSp
@ -3137,6 +3142,7 @@ sectoring
sed sed
segmental segmental
Seifert Seifert
Seleson
sellerio sellerio
Sellerio Sellerio
Semaev Semaev
@ -3215,7 +3221,7 @@ slategray
slater slater
Slepoy Slepoy
Sliozberg Sliozberg
sLLG sLL
sllod sllod
sm sm
smallbig smallbig
@ -3626,6 +3632,7 @@ unsmoothed
unsolvated unsolvated
unsplit unsplit
unstrained unstrained
unstretched
untar untar
untilted untilted
Unwin Unwin

View File

@ -81,6 +81,10 @@ class UCL_Device {
/// Return the number of devices that support CUDA /// Return the number of devices that support CUDA
inline int num_devices() { return _properties.size(); } inline int num_devices() { return _properties.size(); }
/// Specify whether profiling (device timers) will be used for the device (yes=true)
/** No-op for CUDA and HIP **/
inline void configure_profiling(const bool profiling_on) {}
/// Set the CUDA device to the specified device number /// Set the CUDA device to the specified device number
/** A context and default command queue will be created for the device /** A context and default command queue will be created for the device
* Returns UCL_SUCCESS if successful or UCL_ERROR if the device could not * Returns UCL_SUCCESS if successful or UCL_ERROR if the device could not

View File

@ -95,6 +95,10 @@ class UCL_Device {
/// Return the number of devices that support CUDA /// Return the number of devices that support CUDA
inline int num_devices() { return _properties.size(); } inline int num_devices() { return _properties.size(); }
/// Specify whether profiling (device timers) will be used for the device (yes=true)
/** No-op for CUDA and HIP **/
inline void configure_profiling(const bool profiling_on) {}
/// Set the CUDA device to the specified device number /// Set the CUDA device to the specified device number
/** A context and default command queue will be created for the device /** A context and default command queue will be created for the device
* Returns UCL_SUCCESS if successful or UCL_ERROR if the device could not * Returns UCL_SUCCESS if successful or UCL_ERROR if the device could not
@ -305,9 +309,9 @@ class UCL_Device {
/// For compatability with OCL API /// For compatability with OCL API
inline int auto_set_platform(const enum UCL_DEVICE_TYPE type=UCL_GPU, inline int auto_set_platform(const enum UCL_DEVICE_TYPE type=UCL_GPU,
const std::string vendor="", const std::string vendor="",
const int ndevices=-1, const int ndevices=-1,
const int first_device=-1) const int first_device=-1)
{ return set_platform(0); } { return set_platform(0); }
private: private:

View File

@ -99,6 +99,7 @@ struct OCLProperties {
int cl_device_version; int cl_device_version;
bool has_subgroup_support; bool has_subgroup_support;
bool has_shuffle_support; bool has_shuffle_support;
bool shared_main_memory;
}; };
/// Class for looking at data parallel device properties /// Class for looking at data parallel device properties
@ -125,6 +126,11 @@ class UCL_Device {
/// Return the number of devices that support OpenCL /// Return the number of devices that support OpenCL
inline int num_devices() { return _num_devices; } inline int num_devices() { return _num_devices; }
/// Specify whether profiling (device timers) will be used for the device (yes=true)
/** No-op for CUDA and HIP **/
inline void configure_profiling(const bool profiling_on)
{ _cq_profiling = profiling_on; }
/// Set the OpenCL device to the specified device number /// Set the OpenCL device to the specified device number
/** A context and default command queue will be created for the device * /** A context and default command queue will be created for the device *
* Returns UCL_SUCCESS if successful or UCL_ERROR if the device could not * Returns UCL_SUCCESS if successful or UCL_ERROR if the device could not
@ -169,10 +175,22 @@ class UCL_Device {
_cq.push_back(cl_command_queue()); _cq.push_back(cl_command_queue());
#ifdef CL_VERSION_2_0 #ifdef CL_VERSION_2_0
cl_queue_properties props[] = {CL_QUEUE_PROPERTIES, CL_QUEUE_PROFILING_ENABLE, 0}; if (_cq_profiling) {
_cq.back()=clCreateCommandQueueWithProperties(_context, _cl_device, props, &errorv); cl_queue_properties props[] = {CL_QUEUE_PROPERTIES, CL_QUEUE_PROFILING_ENABLE,
0};
_cq.back()=clCreateCommandQueueWithProperties(_context, _cl_device, props,
&errorv);
} else {
cl_queue_properties props[] = {CL_QUEUE_PROPERTIES, 0};
_cq.back()=clCreateCommandQueueWithProperties(_context, _cl_device, props,
&errorv);
}
#else #else
_cq.back()=clCreateCommandQueue(_context, _cl_device, CL_QUEUE_PROFILING_ENABLE, &errorv); if (_cq_profiling)
_cq.back()=clCreateCommandQueue(_context, _cl_device, CL_QUEUE_PROFILING_ENABLE,
&errorv);
else
_cq.back()=clCreateCommandQueue(_context, _cl_device, 0, &errorv);
#endif #endif
if (errorv!=CL_SUCCESS) { if (errorv!=CL_SUCCESS) {
std::cerr << "Could not create command queue on device: " << name() std::cerr << "Could not create command queue on device: " << name()
@ -209,7 +227,7 @@ class UCL_Device {
inline bool shared_memory() { return shared_memory(_device); } inline bool shared_memory() { return shared_memory(_device); }
/// Returns true if host memory is efficiently addressable from device /// Returns true if host memory is efficiently addressable from device
inline bool shared_memory(const int i) inline bool shared_memory(const int i)
{ return _shared_mem_device(_cl_devices[i]); } { return _properties[i].shared_main_memory; }
/// Returns preferred vector width /// Returns preferred vector width
inline int preferred_fp32_width() { return preferred_fp32_width(_device); } inline int preferred_fp32_width() { return preferred_fp32_width(_device); }
@ -370,6 +388,7 @@ class UCL_Device {
cl_platform_id _cl_platforms[20]; // OpenCL IDs for all platforms cl_platform_id _cl_platforms[20]; // OpenCL IDs for all platforms
cl_context _context; // Context used for accessing the device cl_context _context; // Context used for accessing the device
std::vector<cl_command_queue> _cq;// The default command queue for this device std::vector<cl_command_queue> _cq;// The default command queue for this device
bool _cq_profiling; // True=create command queues w/ profiling support
int _device; // UCL_Device ID for current device int _device; // UCL_Device ID for current device
cl_device_id _cl_device; // OpenCL ID for current device cl_device_id _cl_device; // OpenCL ID for current device
std::vector<cl_device_id> _cl_devices; // OpenCL IDs for all devices std::vector<cl_device_id> _cl_devices; // OpenCL IDs for all devices
@ -384,6 +403,7 @@ class UCL_Device {
// Grabs the properties for all devices // Grabs the properties for all devices
UCL_Device::UCL_Device() { UCL_Device::UCL_Device() {
_device=-1; _device=-1;
_cq_profiling=true;
// --- Get Number of Platforms // --- Get Number of Platforms
cl_uint nplatforms; cl_uint nplatforms;
@ -563,8 +583,9 @@ void UCL_Device::add_properties(cl_device_id device_list) {
op.preferred_vector_width64=double_width; op.preferred_vector_width64=double_width;
// Determine if double precision is supported: All bits in the mask must be set. // Determine if double precision is supported: All bits in the mask must be set.
cl_device_fp_config double_mask = (CL_FP_FMA|CL_FP_ROUND_TO_NEAREST|CL_FP_ROUND_TO_ZERO| cl_device_fp_config double_mask = (CL_FP_FMA|CL_FP_ROUND_TO_NEAREST|
CL_FP_ROUND_TO_INF|CL_FP_INF_NAN|CL_FP_DENORM); CL_FP_ROUND_TO_ZERO|CL_FP_ROUND_TO_INF|
CL_FP_INF_NAN|CL_FP_DENORM);
cl_device_fp_config double_avail; cl_device_fp_config double_avail;
CL_SAFE_CALL(clGetDeviceInfo(device_list,CL_DEVICE_DOUBLE_FP_CONFIG, CL_SAFE_CALL(clGetDeviceInfo(device_list,CL_DEVICE_DOUBLE_FP_CONFIG,
sizeof(double_avail),&double_avail,nullptr)); sizeof(double_avail),&double_avail,nullptr));
@ -665,6 +686,7 @@ void UCL_Device::add_properties(cl_device_id device_list) {
double arch = static_cast<double>(minor)/10+major; double arch = static_cast<double>(minor)/10+major;
if (arch >= 3.0) if (arch >= 3.0)
op.has_shuffle_support=true; op.has_shuffle_support=true;
op.shared_main_memory=_shared_mem_device(device_list);
} }
delete[] buffer2; delete[] buffer2;
#endif #endif

View File

@ -118,15 +118,19 @@ inline int _host_alloc(mat_type &mat, copy_type &cm, const size_t n,
template <class mat_type, class copy_type> template <class mat_type, class copy_type>
inline int _host_view(mat_type &mat, copy_type &cm, const size_t o, inline int _host_view(mat_type &mat, copy_type &cm, const size_t o,
const size_t n) { const size_t n) {
cl_int error_flag; // When viewing outside host allocation with discrete main memory on accelerator,
cl_buffer_region subbuffer; // no cl_buffer object is created to avoid unnecessary creation of device allocs
subbuffer.origin = o; if (cm.shared_mem_device()) {
subbuffer.size = n; cl_int error_flag;
mat.cbegin()=clCreateSubBuffer(cm.cbegin(), 0, cl_buffer_region subbuffer;
CL_BUFFER_CREATE_TYPE_REGION, &subbuffer, subbuffer.origin = o;
&error_flag); subbuffer.size = n;
mat.cbegin()=clCreateSubBuffer(cm.cbegin(), 0,
CL_CHECK_ERR(error_flag); CL_BUFFER_CREATE_TYPE_REGION, &subbuffer,
&error_flag);
CL_CHECK_ERR(error_flag);
} else
mat.cbegin()=(cl_mem)0;
CL_SAFE_CALL(clRetainCommandQueue(mat.cq())); CL_SAFE_CALL(clRetainCommandQueue(mat.cq()));
return UCL_SUCCESS; return UCL_SUCCESS;
} }
@ -170,10 +174,13 @@ inline int _host_alloc(mat_type &mat, UCL_Device &dev, const size_t n,
template <class mat_type> template <class mat_type>
inline int _host_view(mat_type &mat, UCL_Device &dev, const size_t n) { inline int _host_view(mat_type &mat, UCL_Device &dev, const size_t n) {
cl_int error_flag; if (mat.shared_mem_device()) {
mat.cbegin()=clCreateBuffer(dev.context(), CL_MEM_USE_HOST_PTR, cl_int error_flag;
n,*mat.host_ptr(),&error_flag); mat.cbegin()=clCreateBuffer(dev.context(), CL_MEM_USE_HOST_PTR,
CL_CHECK_ERR(error_flag); n,*mat.host_ptr(),&error_flag);
CL_CHECK_ERR(error_flag);
} else
mat.cbegin()=(cl_mem)0;
CL_SAFE_CALL(clRetainCommandQueue(mat.cq())); CL_SAFE_CALL(clRetainCommandQueue(mat.cq()));
return UCL_SUCCESS; return UCL_SUCCESS;
} }
@ -181,7 +188,10 @@ inline int _host_view(mat_type &mat, UCL_Device &dev, const size_t n) {
template <class mat_type> template <class mat_type>
inline void _host_free(mat_type &mat) { inline void _host_free(mat_type &mat) {
if (mat.cols()>0) { if (mat.cols()>0) {
CL_DESTRUCT_CALL(clReleaseMemObject(mat.cbegin())); // When viewing outside host allocation with discrete main memory on accelerator,
// no cl_buffer object is created to avoid unnecessary creation of device allocs
if (mat.cbegin()!=(cl_mem)(0))
CL_DESTRUCT_CALL(clReleaseMemObject(mat.cbegin()));
CL_DESTRUCT_CALL(clReleaseCommandQueue(mat.cq())); CL_DESTRUCT_CALL(clReleaseCommandQueue(mat.cq()));
} }
} }

View File

@ -50,11 +50,15 @@ class UCL_Timer {
/** \note init() must be called to reuse timer after a clear() **/ /** \note init() must be called to reuse timer after a clear() **/
inline void clear() { inline void clear() {
if (_initialized) { if (_initialized) {
if (has_measured_time) {
clReleaseEvent(start_event);
clReleaseEvent(stop_event);
has_measured_time = false;
}
CL_DESTRUCT_CALL(clReleaseCommandQueue(_cq)); CL_DESTRUCT_CALL(clReleaseCommandQueue(_cq));
_initialized=false; _initialized=false;
_total_time=0.0; _total_time=0.0;
} }
has_measured_time = false;
} }
/// Initialize default command queue for timing /// Initialize default command queue for timing
@ -71,8 +75,12 @@ class UCL_Timer {
/// Start timing on default command queue /// Start timing on default command queue
inline void start() { inline void start() {
if (has_measured_time) {
clReleaseEvent(start_event);
clReleaseEvent(stop_event);
has_measured_time = false;
}
UCL_OCL_MARKER(_cq,&start_event); UCL_OCL_MARKER(_cq,&start_event);
has_measured_time = false;
} }
/// Stop timing on default command queue /// Stop timing on default command queue
@ -83,8 +91,12 @@ class UCL_Timer {
/// Block until the start event has been reached on device /// Block until the start event has been reached on device
inline void sync_start() { inline void sync_start() {
if (has_measured_time) {
clReleaseEvent(start_event);
clReleaseEvent(stop_event);
has_measured_time = false;
}
CL_SAFE_CALL(clWaitForEvents(1,&start_event)); CL_SAFE_CALL(clWaitForEvents(1,&start_event));
has_measured_time = false;
} }
/// Block until the stop event has been reached on device /// Block until the stop event has been reached on device

View File

@ -75,13 +75,21 @@ class UCL_BaseMat {
inline enum UCL_MEMOPT kind() const { return _kind; } inline enum UCL_MEMOPT kind() const { return _kind; }
inline bool shared_mem_device() { inline bool shared_mem_device() {
#ifdef _OCL_MAT #ifndef _OCL_MAT
return false;
#else
#if defined(GERYON_FORCE_SHARED_MAIN_MEM_ON)
return true;
#elif defined(GERYON_FORCE_SHARED_MAIN_MEM_OFF)
return false;
#else
cl_device_id device; cl_device_id device;
CL_SAFE_CALL(clGetCommandQueueInfo(_cq,CL_QUEUE_DEVICE, CL_SAFE_CALL(clGetCommandQueueInfo(_cq,CL_QUEUE_DEVICE,
sizeof(cl_device_id),&device,NULL)); sizeof(cl_device_id),&device,NULL));
return _shared_mem_device(device); return _shared_mem_device(device);
#else #endif
return false;
#endif #endif
} }

View File

@ -140,7 +140,10 @@ class UCL_H_Mat : public UCL_BaseMat {
_end=_array+_cols; _end=_array+_cols;
#ifdef _OCL_MAT #ifdef _OCL_MAT
_carray=input.cbegin(); _carray=input.cbegin();
CL_SAFE_CALL(clRetainMemObject(input.cbegin())); // When viewing outside host allocation with discrete main memory on accelerator,
// no cl_buffer object is created to avoid unnecessary creation of device allocs
if (_carray!=(cl_mem)(0))
CL_SAFE_CALL(clRetainMemObject(input.cbegin()));
CL_SAFE_CALL(clRetainCommandQueue(input.cq())); CL_SAFE_CALL(clRetainCommandQueue(input.cq()));
#endif #endif
} }

View File

@ -139,7 +139,10 @@ class UCL_H_Vec : public UCL_BaseMat {
_end=_array+_cols; _end=_array+_cols;
#ifdef _OCL_MAT #ifdef _OCL_MAT
_carray=input.cbegin(); _carray=input.cbegin();
CL_SAFE_CALL(clRetainMemObject(input.cbegin())); // When viewing outside host allocation with discrete main memory on accelerator,
// no cl_buffer object is created to avoid unnecessary creation of device allocs
if (_carray!=(cl_mem)(0))
CL_SAFE_CALL(clRetainMemObject(input.cbegin()));
CL_SAFE_CALL(clRetainCommandQueue(input.cq())); CL_SAFE_CALL(clRetainCommandQueue(input.cq()));
#endif #endif
} }

View File

@ -265,15 +265,13 @@ int DeviceT::init_device(MPI_Comm world, MPI_Comm replica, const int ngpu,
// Time on the device only if 1 proc per gpu // Time on the device only if 1 proc per gpu
_time_device=true; _time_device=true;
#if 0 // Previous source of OCL memory leak when time_device=false
// XXX: the following setting triggers a memory leak with OpenCL and MPI // - Logic added to release OCL events when timers are not invoked
// setting _time_device=true for all processes doesn't seem to be a
// problem with either (no segfault, no (large) memory leak.
// thus keeping this disabled for now. may need to review later.
// 2018-07-23 <akohlmey@gmail.com>
if (_procs_per_gpu>1) if (_procs_per_gpu>1)
_time_device=false; _time_device=false;
#endif
if (!_time_device && _particle_split > 0)
gpu->configure_profiling(false);
// Set up a per device communicator // Set up a per device communicator
MPI_Comm_split(node_comm,my_gpu,0,&_comm_gpu); MPI_Comm_split(node_comm,my_gpu,0,&_comm_gpu);
@ -715,7 +713,9 @@ void DeviceT::estimate_gpu_overhead(const int kernel_calls,
dev_data_out[0].flush(); dev_data_out[0].flush();
#endif #endif
driver_time=MPI_Wtime()-driver_time; driver_time=MPI_Wtime()-driver_time;
double time=over_timer.seconds(); double time=0.0;
if (_time_device)
time=over_timer.seconds();
if (time_device()) { if (time_device()) {
for (int i=0; i<_data_in_estimate; i++) for (int i=0; i<_data_in_estimate; i++)

View File

@ -304,7 +304,8 @@ int PPPMT::spread(const int ago, const int nlocal, const int nall,
const double delxinv, const double delyinv, const double delxinv, const double delyinv,
const double delzinv) { const double delzinv) {
if (!_precompute_done) { if (!_precompute_done) {
atom->acc_timers(); if (device->time_device())
atom->acc_timers();
_precompute(ago,nlocal,nall,host_x,host_type,success,host_q,boxlo,delxinv, _precompute(ago,nlocal,nall,host_x,host_type,success,host_q,boxlo,delxinv,
delyinv,delzinv); delyinv,delzinv);
} }

View File

@ -4,12 +4,13 @@ import pickle
class MLIAPUnified(ABC): class MLIAPUnified(ABC):
"""Abstract base class for MLIAPUnified.""" """Abstract base class for MLIAPUnified."""
def __init__(self): def __init__(self, interface = None, element_types = None,
self.interface = None ndescriptors = None, nparams = None, rcutfac = None):
self.element_types = None self.interface = interface
self.ndescriptors = None self.element_types = element_types
self.nparams = None self.ndescriptors = ndescriptors
self.rcutfac = None self.nparams = nparams
self.rcutfac = rcutfac
@abstractmethod @abstractmethod
def compute_gradients(self, data): def compute_gradients(self, data):

Some files were not shown because too many files have changed in this diff Show More