Merge branch 'lammps:develop' into cg-dna

This commit is contained in:
Oliver Henrich
2024-06-12 17:38:20 +01:00
committed by GitHub
159 changed files with 957 additions and 29736 deletions

View File

@ -72,7 +72,7 @@ OPT.
* :doc:`none <angle_none>`
* :doc:`zero <angle_zero>`
* :doc:`hybrid <angle_hybrid>`
* :doc:`hybrid (k) <angle_hybrid>`
*
*
*

View File

@ -148,6 +148,14 @@ performance characteristics on NVIDIA GPUs. Both, the KOKKOS
and the :ref:`GPU package <PKG-GPU>` are maintained
and allow running LAMMPS with GPU acceleration.
i-PI tool
---------
.. versionchanged:: TBD
The i-PI tool has been removed from the LAMMPS distribution. Instead,
instructions to install i-PI from PyPi via pip are provided.
restart2data tool
-----------------

View File

@ -305,6 +305,8 @@ of the contents of the :f:mod:`LIBLAMMPS` Fortran interface to LAMMPS.
:ftype extract_setting: function
:f extract_global: :f:func:`extract_global`
:ftype extract_global: function
:f map_atom: :f:func:`map_atom`
:ftype map_atom: function
:f extract_atom: :f:func:`extract_atom`
:ftype extract_atom: function
:f extract_compute: :f:func:`extract_compute`

View File

@ -13,6 +13,7 @@ This section documents the following functions:
- :cpp:func:`lammps_extract_setting`
- :cpp:func:`lammps_extract_global_datatype`
- :cpp:func:`lammps_extract_global`
- :cpp:func:`lammps_map_atom`
--------------------
@ -120,3 +121,8 @@ subdomains and processors.
.. doxygenfunction:: lammps_extract_global
:project: progguide
-----------------------
.. doxygenfunction:: lammps_map_atom
:project: progguide

View File

@ -90,7 +90,7 @@ Miscellaneous tools
* :ref:`LAMMPS coding standards <coding_standard>`
* :ref:`emacs <emacs>`
* :ref:`i-pi <ipi>`
* :ref:`i-PI <ipi>`
* :ref:`kate <kate>`
* :ref:`LAMMPS shell <lammps_shell>`
* :ref:`LAMMPS GUI <lammps_gui>`
@ -376,21 +376,40 @@ See README file in the tools/fep directory.
.. _ipi:
i-pi tool
i-PI tool
-------------------
The tools/i-pi directory contains a version of the i-PI package, with
all the LAMMPS-unrelated files removed. It is provided so that it can
be used with the :doc:`fix ipi <fix_ipi>` command to perform
path-integral molecular dynamics (PIMD).
.. versionchanged:: TBD
The tools/i-pi directory used to contain a bundled version of the i-PI
software package for use with LAMMPS. This version, however, was
removed in 06/2024.
The i-PI package was created and is maintained by Michele Ceriotti,
michele.ceriotti at gmail.com, to interface to a variety of molecular
dynamics codes.
See the tools/i-pi/manual.pdf file for an overview of i-PI, and the
:doc:`fix ipi <fix_ipi>` page for further details on running PIMD
calculations with LAMMPS.
i-PI is now available via PyPi using the pip package manager at:
https://pypi.org/project/ipi/
Here are the commands to set up a virtual environment and install
i-PI into it with all its dependencies.
.. code-block:: sh
python -m venv ipienv
source ipienv/bin/activate
pip install --upgrade pip
pip install ipi
To install the development version from GitHub, please use:
.. code-block:: sh
pip install git+https://github.com/i-pi/i-pi.git
For further information, please consult the [i-PI home
page](https://ipi-code.org).
----------

View File

@ -1,8 +1,11 @@
.. index:: bond_style hybrid
.. index:: bond_style hybrid/kk
bond_style hybrid command
=========================
Accelerator Variants: *hybrid/kk*
Syntax
""""""
@ -15,7 +18,7 @@ Syntax
Examples
""""""""
.. code-block: LAMMPS
.. code-block:: LAMMPS
bond_style hybrid harmonic fene
bond_coeff 1 harmonic 80.0 1.2
@ -60,6 +63,10 @@ bond types.
----------
.. include:: accel_styles.rst
----------
Restrictions
""""""""""""

View File

@ -311,6 +311,10 @@ This fix is not invoked during :doc:`energy minimization <minimize>`.
Restrictions
""""""""""""
This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package <Build_package>`
page for more info.
You cannot apply x, y, or z deformations to a dimension that is
shrink-wrapped via the :doc:`boundary <boundary>` command.

View File

@ -35,23 +35,24 @@ Description
"""""""""""
This fix enables LAMMPS to be run as a client for the i-PI Python
wrapper :ref:`(IPI) <ipihome>` for performing a path integral molecular dynamics
(PIMD) simulation. The philosophy behind i-PI is described in the
following publication :ref:`(IPI-CPC) <IPICPC>`.
wrapper :ref:`(IPI) <ipihome>`. i-PI is a universal force engine,
designed to perform advanced molecular simulations, with a special
focus on path integral molecular dynamics (PIMD) simulation.
The philosophy behind i-PI is to separate the evaluation of the
energy and forces, which is delegated to the client, and the evolution
of the dynamics, that is the responsibility of i-PI. This approach also
simplifies combining energies computed from different codes, which
can for instance be useful to mix first-principles calculations,
empirical force fields or machine-learning potentials.
The following publication :ref:`(IPI-CPC-2014) <IPICPC>` discusses the
overall implementation of i-PI, and focuses on path-integral techniques,
while a later release :ref:`(IPI-CPC-2019) <IPICPC2>` introduces several
additional features and simulation schemes.
A version of the i-PI package, containing only files needed for use
with LAMMPS, is provided in the tools/i-pi directory. See the
tools/i-pi/manual.pdf for an introduction to i-PI. The
examples/PACKAGES/i-pi directory contains example scripts for using i-PI
with LAMMPS.
In brief, the path integral molecular dynamics is performed by the
Python wrapper, while the client (LAMMPS in this case) simply computes
forces and energy for each configuration. The communication between
the two components takes place using sockets, and is reduced to the
bare minimum. All the parameters of the dynamics are specified in the
input of i-PI, and all the parameters of the force field must be
specified as LAMMPS inputs, preceding the *fix ipi* command.
The communication between i-PI and LAMMPS takes place using sockets,
and is reduced to the bare minimum. All the parameters of the dynamics
are specified in the input of i-PI, and all the parameters of the force
field must be specified as LAMMPS inputs, preceding the *fix ipi* command.
The server address must be specified by the *address* argument, and
can be either the IP address, the fully-qualified name of the server,
@ -75,6 +76,20 @@ If the cell varies too wildly, it may be advisable to re-initialize
these interactions at each call. This behavior can be requested by
setting the *reset* switch.
Obtaining i-PI
""""""""""""""
Here are the commands to set up a virtual environment and install
i-PI into it with all its dependencies via the PyPi repository and
the pip package manager.
.. code-block:: sh
python -m venv ipienv
source ipienv/bin/activate
pip install --upgrade pip
pip install ipi
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
@ -111,9 +126,14 @@ Related commands
.. _IPICPC:
**(IPI-CPC)** Ceriotti, More and Manolopoulos, Comp Phys Comm, 185,
**(IPI-CPC-2014)** Ceriotti, More and Manolopoulos, Comp Phys Comm 185,
1019-1026 (2014).
.. _IPICPC2:
**(IPI-CPC-2019)** Kapil et al., Comp Phys Comm 236, 214-223 (2019).
.. _ipihome:
**(IPI)**

View File

@ -134,36 +134,34 @@ value. For example, AuO.pos.\* becomes AuO.pos.0, AuO.pos.1000, etc.
.. versionadded:: 3Aug2022
The optional keyword *delete* enables the periodic removal of
molecules from the system. Criteria for deletion can be either a list
of specific chemical formulae or a range of molecular weights.
Molecules are deleted every *Nfreq* timesteps, and bond connectivity
is determined using the *Nevery* and *Nrepeat* keywords. The
*filedel* argument is the name of the output file that records the
species that are removed from the system. The *specieslist* keyword
permits specific chemical species to be deleted. The *Nspecies*
argument specifies how many species are eligible for deletion and is
followed by a list of chemical formulae, whose strings are compared to
species identified by this fix. For example, "specieslist 2 CO CO2"
deletes molecules that are identified as "CO" and "CO2" in the species
output file. When using the *specieslist* keyword, the *filedel* file
has the following format: the first line lists the chemical formulae
eligible for deletion, and each additional line contains the timestep
on which a molecule deletion occurs and the number of each species
deleted on that timestep. The *masslimit* keyword permits deletion of
molecules with molecular weights between *massmin* and *massmax*.
When using the *masslimit* keyword, each line of the *filedel* file
contains the timestep on which deletions occurs, followed by how many
of each species are deleted (with quantities preceding chemical
formulae). The *specieslist* and *masslimit* keywords cannot both be
used in the same *reaxff/species* fix. The *delete_rate_limit*
keyword can enforce an upper limit on the overall rate of molecule
deletion. The number of deletion occurrences is limited to Nlimit
within an interval of Nsteps timesteps. Nlimit can be specified with
an equal-style :doc:`variable <variable>`. When using the
*delete_rate_limit* keyword, no deletions are permitted to occur
within the first Nsteps timesteps of the first run (after reading a
either a data or restart file).
The optional keyword *delete* enables the periodic removal of molecules
from the system :ref:`(Gissinger) <Delete>`. Criteria for deletion can
be either a list of specific chemical formulae or a range of molecular
weights. Molecules are deleted every *Nfreq* timesteps, and bond
connectivity is determined using the *Nevery* and *Nrepeat* keywords. The
*filedel* argument is the name of the output file that records the species
that are removed from the system. The *specieslist* keyword permits
specific chemical species to be deleted. The *Nspecies* argument specifies
how many species are eligible for deletion and is followed by a list of
chemical formulae, whose strings are compared to species identified by this
fix. For example, "specieslist 2 CO CO2" deletes molecules that are
identified as "CO" and "CO2" in the species output file. When using the
*specieslist* keyword, the *filedel* file has the following format: the
first line lists the chemical formulae eligible for deletion, and each
additional line contains the timestep on which a molecule deletion occurs
and the number of each species deleted on that timestep. The *masslimit*
keyword permits deletion of molecules with molecular weights between
*massmin* and *massmax*. When using the *masslimit* keyword, each line of
the *filedel* file contains the timestep on which deletions occurs,
followed by how many of each species are deleted (with quantities preceding
chemical formulae). The *specieslist* and *masslimit* keywords cannot both
be used in the same *reaxff/species* fix. The *delete_rate_limit* keyword
can enforce an upper limit on the overall rate of molecule deletion. The
number of deletion occurrences is limited to Nlimit within an interval of
Nsteps timesteps. Nlimit can be specified with an equal-style
:doc:`variable <variable>`. When using the *delete_rate_limit* keyword, no
deletions are permitted to occur within the first Nsteps timesteps of the
first run (after reading a either a data or restart file).
----------
@ -235,3 +233,7 @@ Default
The default values for bond-order cutoffs are 0.3 for all I-J pairs.
The default element symbols are taken from the ReaxFF pair_coeff command.
Position files are not written by default.
.. _Delete:
**(Gissinger)** Jacob R. Gissinger, Scott R. Zavada, Joseph G. Smith, Josh Kemppainen, Ivan Gallegos, Gregory M. Odegard, Emilie J. Siochi, and Kristopher E. Wise, Carbon, 202, 336-347 (2023).

View File

@ -64,8 +64,8 @@ Restrictions
""""""""""""
This improper style can only be used if LAMMPS was built with the
MOLECULE package. See the :doc:`Build package <Build_package>` doc
page for more info.
EXTRA-MOLECULE package. See the :doc:`Build package <Build_package>`
doc page for more info.
Related commands
""""""""""""""""

View File

@ -54,8 +54,8 @@ Restrictions
""""""""""""
This improper style can only be used if LAMMPS was built with the
MOLECULE package. See the :doc:`Build package <Build_package>` doc
page for more info.
EXTRA-MOLECULE package. See the :doc:`Build package <Build_package>`
doc page for more info.
Related commands
""""""""""""""""

View File

@ -60,8 +60,8 @@ Restrictions
""""""""""""
This angle style can only be used if LAMMPS was built with the
MOLECULE package. See the :doc:`Build package <Build_package>` doc
page for more info.
EXTRA-MOLECULE package. See the :doc:`Build package <Build_package>`
doc page for more info.
Related commands
""""""""""""""""

View File

@ -72,8 +72,8 @@ Restrictions
""""""""""""
This improper style can only be used if LAMMPS was built with the
MOLECULE package. See the :doc:`Build package <Build_package>` doc
page for more info.
EXTRA-MOLECULE package. See the :doc:`Build package <Build_package>`
doc page for more info.
Related commands
""""""""""""""""

View File

@ -379,10 +379,11 @@ These pair styles can only be used via the *pair* keyword of the
Restrictions
""""""""""""
The *coul/cut/global*, *coul/long*, *coul/msm*, *coul/streitz*, and *tip4p/long* styles
are part of the KSPACE package. They are only enabled if LAMMPS was built
with that package. See the :doc:`Build package <Build_package>` doc page
for more info.
The *coul/long*, *coul/msm*, *coul/streitz*, and *tip4p/long* styles are
part of the KSPACE package. The *coul/cut/global* and *coul/exclude* are
part of the EXTRA-PAIR package. A pair style is only enabled if LAMMPS was
built with its corresponding package. See the :doc:`Build package <Build_package>`
doc page for more info.
Related commands
""""""""""""""""

View File

@ -67,7 +67,7 @@ Syntax
bound(group,dir,region), gyration(group,region), ke(group,reigon),
angmom(group,dim,region), torque(group,dim,region),
inertia(group,dimdim,region), omega(group,dim,region)
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label)
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label)
feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id)
atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i]
atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz
@ -547,7 +547,7 @@ variables.
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) |
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) |
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |
+------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@ -913,23 +913,27 @@ Special Functions
Special functions take specific kinds of arguments, meaning their
arguments cannot be formulas themselves.
The sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions
each take 1 argument which is of the form "c_ID" or "c_ID[N]" or
"f_ID" or "f_ID[N]" or "v_name". The first two are computes and the
second two are fixes; the ID in the reference should be replaced by
the ID of a compute or fix defined elsewhere in the input script. The
compute or fix must produce either a global vector or array. If it
produces a global vector, then the notation without "[N]" should be
used. If it produces a global array, then the notation with "[N]"
should be used, when N is an integer, to specify which column of the
global array is being referenced. The last form of argument "v_name"
is for a vector-style variable where "name" is replaced by the name of
the variable.
The sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), and
rsort(x) functions each take 1 argument which is of the form "c_ID" or
"c_ID[N]" or "f_ID" or "f_ID[N]" or "v_name". The first two are
computes and the second two are fixes; the ID in the reference should be
replaced by the ID of a compute or fix defined elsewhere in the input
script. The compute or fix must produce either a global vector or
array. If it produces a global vector, then the notation without "[N]"
should be used. If it produces a global array, then the notation with
"[N]" should be used, where N is an integer, to specify which column of
the global array is being referenced. The last form of argument
"v_name" is for a vector-style variable where "name" is replaced by the
name of the variable.
These functions operate on a global vector of inputs and reduce it to
a single scalar value. This is analogous to the operation of the
:doc:`compute reduce <compute_reduce>` command, which performs similar
operations on per-atom and local vectors.
The sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions
operate on a global vector of inputs and reduce it to a single scalar
value. This is analogous to the operation of the :doc:`compute reduce
<compute_reduce>` command, which performs similar operations on per-atom
and local vectors.
The sort(x) and rsort(x) functions operate on a global vector of inputs
and return a global vector of the same length.
The sum() function calculates the sum of all the vector elements. The
min() and max() functions find the minimum and maximum element
@ -953,6 +957,12 @@ of points, equally spaced by 1 in their x coordinate: (1,V1), (2,V2),
length N. The returned value is the slope of the line. If the line
has a single point or is vertical, it returns 1.0e20.
.. versionadded:: TBD
The sort(x) and rsort(x) functions sort the data of the input vector by
their numeric value: sort(x) sorts in ascending order, rsort(x) sorts
in descending order.
The gmask(x) function takes 1 argument which is a group ID. It
can only be used in atom-style variables. It returns a 1 for
atoms that are in the group, and a 0 for atoms that are not.

View File

@ -189,4 +189,4 @@ Related commands
Default
"""""""
The option defaults are pair = ii and types_style = numeric.
The option defaults are pair = ii and types = numeric.

View File

@ -992,6 +992,7 @@ emax
Emax
Embt
emi
Emilie
Emmrich
emol
eN
@ -1732,6 +1733,7 @@ Kalia
Kamberaj
Kantorovich
Kapfer
Kapil
Karhunen
Karls
Karlsruhe
@ -1763,8 +1765,10 @@ keflag
Keir
Kelchner
Kelkar
Kemppainen
Kemper
kepler
Kemppainen
keV
Keyes
keyfile
@ -2483,6 +2487,7 @@ Nevery
newfile
Newns
newtype
nextsort
Neyts
Nf
nfft
@ -2672,6 +2677,7 @@ nzlo
ocl
octahedral
octants
Odegard
Ohara
O'Hearn
ohenrich
@ -3252,6 +3258,7 @@ rRESPA
Rsi
Rso
Rspace
rsort
rsq
rst
rstyle
@ -3287,6 +3294,7 @@ Saidi
saip
Salanne
Salles
sametag
sandia
Sandia
sandybrown
@ -3404,6 +3412,7 @@ sinh
sinusoid
sinusoidally
SiO
Siochi
Sirk
Sival
sizeI
@ -3451,6 +3460,7 @@ solvated
solvation
someuser
Sorensen
sortfreq
soundspeed
sourceforge
Souza
@ -4149,6 +4159,7 @@ yy
yz
Zagaceta
Zannoni
Zavada
Zavattieri
zbl
ZBL