Unverified Commit bc8fa088 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer Committed by GitHub
Browse files

Merge pull request #1822 from jrgissing/bond/react-new-examples-and-package

Bond/react: new examples and repackage
parents 1fb54c30 21f2ec3a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -134,9 +134,9 @@ set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
  USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS
  USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB
  USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
  USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC
  USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF
  USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
  USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REACTION
  USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
  USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
  option(PKG_${PKG} "Build ${PKG} Package" OFF)
+2 −2
Original line number Diff line number Diff line
@@ -509,14 +509,14 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`

*Bond/react: Atom affected by reaction too close to template edge*
   This means an atom which changes type or connectivity during the
   reaction is too close to an 'edge' atom defined in the superimpose
   reaction is too close to an 'edge' atom defined in the map
   file. This could cause incorrect assignment of bonds, angle, etc.
   Generally, this means you must include more atoms in your templates,
   such that there are at least two atoms between each atom involved in
   the reaction and an edge atom.

*Bond/react: Fix bond/react needs ghost atoms from farther away*
   This is because a processor needs to superimpose the entire unreacted
   This is because a processor needs to map the entire unreacted
   molecule template onto simulation atoms it knows about. The
   comm\_modify cutoff command can be used to extend the communication
   range.
+34 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ page gives those details.
   * :ref:`USER-QMMM <PKG-USER-QMMM>`
   * :ref:`USER-QTB <PKG-USER-QTB>`
   * :ref:`USER-QUIP <PKG-USER-QUIP>`
   * :ref:`USER-REACTION <PKG-USER-REACTION>`
   * :ref:`USER-REAXC <PKG-USER-REAXC>`
   * :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>`
   * :ref:`USER-SDPD <PKG-USER-SDPD>`
@@ -2180,6 +2181,39 @@ This package has :ref:`specific installation instructions <user-quip>` on the :d
----------


.. _PKG-USER-REACTION:

USER-REACTION package
---------------------

**Contents:**

This package allows for complex bond topology changes (reactions)
during a running MD simulation, when using classical force fields.
Topology changes are defined in pre- and post-reaction molecule
templates and can include creation and deletion of bonds, angles,
dihedrals, impropers, atom types, bond types, angle types, dihedral
types, improper types, and/or atomic charges. Other options currently
available include reaction constraints (e.g. angle and Arrhenius
constraints), deletion of reaction byproducts or other small
molecules, and chiral-sensitive reactions.

**Author:** Jacob R. Gissinger (CU Boulder) while at NASA Langley Research Center.

**Supporting info:**

* src/USER-REACTION: filenames -> commands
* src/USER-REACTION/README
* :doc:`fix bond/react <fix_bond_react>`
* examples/USER/reaction
* `2017 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug17/pdf/gissinger.pdf>`_
* `2019 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug19/talk_gissinger.pdf>`_
* disarmmd.org


----------


.. _PKG-USER-REAXC:

USER-REAXC package
+2 −0
Original line number Diff line number Diff line
@@ -91,6 +91,8 @@ package:
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
| :ref:`USER-QUIP <PKG-USER-QUIP>`               | QUIP/libatoms interface                                         | :doc:`pair_style quip <pair_quip>`                                            | USER/quip                                           | ext     |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
| :ref:`USER-REACTION <PKG-USER-REACTION>`       | chemical reactions in classical MD                              | :doc:`fix bond/react <fix_bond_react>`                                        | USER/reaction                                       | no      |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
| :ref:`USER-REAXC <PKG-USER-REAXC>`             | ReaxFF potential (C/C++)                                        | :doc:`pair_style reaxc <pair_reaxc>`                                          | reax                                                | no      |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
| :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>`       | wrapper on ScaFaCoS solver                                      | :doc:`kspace_style scafacos <kspace_style>`                                   | USER/scafacos                                       | ext     |
+24 −7
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ Syntax
Examples
""""""""

For unabridged example scripts and files, see examples/USER/misc/bond\_react.
For unabridged example scripts and files, see examples/USER/reaction.


.. parsed-literal::
@@ -149,10 +149,9 @@ constant-topology parts of your system separately. The dynamic group
contains only atoms not involved in a reaction at a given timestep,
and therefore should be used by a subsequent system-wide time
integrator such as nvt, npt, or nve, as shown in the second example
above (full examples can be found at examples/USER/misc/bond\_react).
The time integration command should be placed after the fix bond/react
command due to the internal dynamic grouping performed by fix
bond/react.
above (full examples can be found at examples/USER/reaction). The time
integration command should be placed after the fix bond/react command
due to the internal dynamic grouping performed by fix bond/react.

.. note::

@@ -295,7 +294,7 @@ either 'none' or 'charges.' Further details are provided in the
discussion of the 'update\_edges' keyword. The fifth optional section
begins with the keyword 'Constraints' and lists additional criteria
that must be satisfied in order for the reaction to occur. Currently,
there are three types of constraints available, as discussed below.
there are four types of constraints available, as discussed below.

A sample map file is given below:

@@ -371,6 +370,24 @@ the central atom). Angles must be specified in degrees. This
constraint can be used to enforce a certain orientation between
reacting molecules.

The constraint of type 'dihedral' has the following syntax:


.. parsed-literal::

   dihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*

where 'dihedral' is the required keyword, and *ID1*\ , *ID2*\ , *ID3*
and *ID4* are pre-reaction atom IDs. Dihedral angles are calculated in
the interval (-180,180]. Refer to the :doc:`dihedral style <dihedral_style>`
documentation for further details on convention. If *amin* is less
than *amax*, these four atoms must form a dihedral angle greater than
*amin* **and** less than *amax* for the reaction to occur. If *amin*
is greater than *amax*, these four atoms must form a dihedral angle
greater than *amin* **or** less than *amax* for the reaction to occur.
Angles must be specified in degrees. Optionally, a second range of
permissible angles *amin2*-*amax2* can be specified.

The constraint of type 'arrhenius' imposes an additional reaction
probability according to the temperature-dependent Arrhenius equation:

@@ -516,7 +533,7 @@ Restrictions
""""""""""""


This fix is part of the USER-MISC package.  It is only enabled if
This fix is part of the USER-REACTION package.  It is only enabled if
LAMMPS was built with that package.  See the
:doc:`Build package <Build_package>` doc page for more info.

Loading