diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 5b29fb6047..723015c1f9 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -12,6 +12,11 @@ endif()
if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW)
endif()
+# set policy to silence warnings about requiring execute permission for find_program
+# we use OLD because the python-config script for the Fedora MinGW cross-compiler requires it currently
+if(POLICY CMP0109)
+ cmake_policy(SET CMP0109 OLD)
+endif()
# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
if(POLICY CMP0135)
cmake_policy(SET CMP0135 OLD)
diff --git a/cmake/Modules/Packages/ML-PACE.cmake b/cmake/Modules/Packages/ML-PACE.cmake
index 248b8eea76..8660898138 100644
--- a/cmake/Modules/Packages/ML-PACE.cmake
+++ b/cmake/Modules/Packages/ML-PACE.cmake
@@ -1,5 +1,11 @@
-set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.11.25.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
+# PACE library support for ML-PACE package
+# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
+if(POLICY CMP0135)
+ cmake_policy(SET CMP0135 OLD)
+endif()
+
+set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.11.25.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "b45de9a633f42ed65422567e3ce56f9f" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
mark_as_advanced(PACELIB_URL)
mark_as_advanced(PACELIB_MD5)
diff --git a/cmake/Modules/Packages/PLUMED.cmake b/cmake/Modules/Packages/PLUMED.cmake
index 8312589478..595b6824c1 100644
--- a/cmake/Modules/Packages/PLUMED.cmake
+++ b/cmake/Modules/Packages/PLUMED.cmake
@@ -1,5 +1,10 @@
# Plumed2 support for PLUMED package
+# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
+if(POLICY CMP0135)
+ cmake_policy(SET CMP0135 OLD)
+endif()
+
# for supporting multiple concurrent plumed2 installations for debugging and testing
set(PLUMED_SUFFIX "" CACHE STRING "Suffix for Plumed2 library")
mark_as_advanced(PLUMED_SUFFIX)
@@ -81,6 +86,9 @@ if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND (CMAKE_CROSSCOMPILING))
DEPENDS plumed_build
COMMENT "Copying Plumed files"
)
+ if(CMAKE_PROJECT_NAME STREQUAL "lammps")
+ target_link_libraries(lammps INTERFACE LAMMPS::PLUMED)
+ endif()
else()
@@ -155,6 +163,9 @@ else()
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
+ if(CMAKE_PROJECT_NAME STREQUAL "lammps")
+ target_link_libraries(lammps PRIVATE LAMMPS::PLUMED)
+ endif()
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(PLUMED REQUIRED plumed${PLUMED_SUFFIX})
@@ -169,7 +180,9 @@ else()
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PLUMED_INCLUDE_DIRS}")
+ if(CMAKE_PROJECT_NAME STREQUAL "lammps")
+ target_link_libraries(lammps PUBLIC LAMMPS::PLUMED)
+ endif()
endif()
endif()
-target_link_libraries(lammps PRIVATE LAMMPS::PLUMED)
diff --git a/cmake/packaging/LAMMPS_DMG_Background.xcf b/cmake/packaging/LAMMPS_DMG_Background.xcf
new file mode 100644
index 0000000000..cff3222717
Binary files /dev/null and b/cmake/packaging/LAMMPS_DMG_Background.xcf differ
diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst
index aea039f0bc..1dd64b3160 100644
--- a/doc/src/Build_extras.rst
+++ b/doc/src/Build_extras.rst
@@ -1517,6 +1517,11 @@ in lib/pace or somewhere else, which must be done before building
LAMMPS with this package. The code for the library can be found
at: `https://github.com/ICAMS/lammps-user-pace/ `_
+Instead of including the ML-PACE package directly into LAMMPS, it
+is also possible to skip this step and build the ML-PACE package as
+a plugin using the CMake script files in the ``examples/PACKAGE/pace/plugin``
+folder and then load this plugin at runtime with the :doc:`plugin command `.
+
.. tabs::
.. tab:: CMake build
@@ -1701,6 +1706,11 @@ try a different one, switch to a different build system, consider a
global PLUMED installation or consider downloading PLUMED during the
LAMMPS build.
+Instead of including the PLUMED package directly into LAMMPS, it
+is also possible to skip this step and build the PLUMED package as
+a plugin using the CMake script files in the ``examples/PACKAGE/plumed/plugin``
+folder and then load this plugin at runtime with the :doc:`plugin command `.
+
.. tabs::
.. tab:: CMake build
diff --git a/doc/src/Developer_plugins.rst b/doc/src/Developer_plugins.rst
index 4cfdc92504..354350dde7 100644
--- a/doc/src/Developer_plugins.rst
+++ b/doc/src/Developer_plugins.rst
@@ -283,7 +283,7 @@ in the ``examples/kim/plugin`` folder. No changes to the sources of the
KIM package themselves are needed; only the plugin interface and loader
code needs to be added. This example only supports building with CMake,
but is probably a more typical example. To compile you need to run CMake
-with -DLAMMPS_SOURCE_DIR=. Other
+with ``-DLAMMPS_SOURCE_DIR=``. Other
configuration setting are identical to those for compiling LAMMPS.
A second example for a plugin from a package is in the
diff --git a/doc/src/Howto_lammps_gui.rst b/doc/src/Howto_lammps_gui.rst
index 4d283cbcc8..21e6a31ccc 100644
--- a/doc/src/Howto_lammps_gui.rst
+++ b/doc/src/Howto_lammps_gui.rst
@@ -19,9 +19,9 @@ to the online LAMMPS documentation for known LAMMPS commands and styles.
Pre-compiled, ready-to-use LAMMPS-GUI executables for Linux x86\_64
(Ubuntu 20.04LTS or later and compatible), macOS (version 11 aka Big
Sur or later), and Windows (version 10 or later) :ref:`are available
- ` for download. None-MPI LAMMPS executables for
- running LAMMPS from the command line and :doc:`some LAMMPS tools `
- are also included.
+ ` for download. Non-MPI LAMMPS executables (as
+ ``lmp``) for running LAMMPS from the command line and :doc:`some
+ LAMMPS tools ` compiled executables are also included.
The source code for LAMMPS-GUI is included in the LAMMPS source code
distribution and can be found in the ``tools/lammps-gui`` folder. It
@@ -29,40 +29,50 @@ to the online LAMMPS documentation for known LAMMPS commands and styles.
`.
LAMMPS-GUI tries to provide an experience similar to what people
-traditionally would have running LAMMPS using a command line window
-and the console LAMMPS executable but just rolled into a single executable:
+traditionally would have running LAMMPS using a command line window and
+the console LAMMPS executable but just rolled into a single executable:
- writing & editing LAMMPS input files with a text editor
- run LAMMPS on those input file with selected command line flags
-- use or extract data from the created files and visualize it with
- either a molecular visualization program or a plotting program
+- extract data from the created files and visualize it with and
+ external software
That procedure is quite effective for people proficient in using the
command line, as that allows them to use tools for the individual steps
-that they are most comfortable with. It is often *required* to adopt
-this workflow when running LAMMPS simulations on high-performance
+that they are most comfortable with. In fact, it is often *required* to
+adopt this workflow when running LAMMPS simulations on high-performance
computing facilities.
The main benefit of using LAMMPS-GUI is that many basic tasks can be
-done directly from the GUI without switching to a text console window or
-using external programs, let alone writing scripts to extract data from
-the generated output. It also integrates well with graphical desktop
-environments where the `.lmp` filename extension can be registered with
-LAMMPS-GUI as the executable to launch when double clicking on such
-files. Also, LAMMPS-GUI has support for drag-n-drop, i.e. an input
-file can be selected and then moved and dropped on the LAMMPS-GUI
-executable, and LAMMPS-GUI will launch and read the file into its
-buffer.
+done directly from the GUI **without** switching to a text console
+window or using external programs, let alone writing scripts to extract
+data from the generated output. It also integrates well with graphical
+desktop environments where the `.lmp` filename extension can be
+registered with LAMMPS-GUI as the executable to launch when double
+clicking on such files. Also, LAMMPS-GUI has support for drag-n-drop,
+i.e. an input file can be selected and then moved and dropped on the
+LAMMPS-GUI executable, and LAMMPS-GUI will launch and read the file into
+its buffer. In many cases LAMMPS-GUI will be integrated into the
+graphical desktop environment and can be launched like other
+applications.
LAMMPS-GUI thus makes it easier for beginners to get started running
simple LAMMPS simulations. It is very suitable for tutorials on LAMMPS
since you only need to learn how to use a single program for most tasks
and thus time can be saved and people can focus on learning LAMMPS.
-The tutorials at https://lammpstutorials.github.io/ were specifically
+The tutorials at https://lammpstutorials.github.io/ are specifically
updated for use with LAMMPS-GUI.
Another design goal is to keep the barrier low when replacing part of
-the functionality of LAMMPS-GUI with external tools.
+the functionality of LAMMPS-GUI with external tools. That said, LAMMPS-GUI
+has some unique functionality that is not found elsewhere:
+
+- auto-adapting to features available in the integrated LAMMPS library
+- interactive visualization using the :doc:`dump image `
+ command with the option to copy-paste the resulting settings
+- automatic slide show generation from dump image out at runtime
+- automatic plotting of thermodynamics data at runtime
+- inspection of binary restart files
The following text provides a detailed tour of the features and
functionality of LAMMPS-GUI. Suggestions for new features and
@@ -134,9 +144,13 @@ When LAMMPS-GUI starts, it shows the main window, labeled *Editor*, with
either an empty buffer or the contents of the file used as argument. In
the latter case it may look like the following:
-.. image:: JPG/lammps-gui-main.png
- :align: center
- :scale: 50%
+.. |gui-main1| image:: JPG/lammps-gui-main.png
+ :width: 48%
+
+.. |gui-main2| image:: JPG/lammps-gui-dark.png
+ :width: 48%
+
+|gui-main1| |gui-main2|
There is the typical menu bar at the top, then the main editor buffer,
and a status bar at the bottom. The input file contents are shown
@@ -276,8 +290,6 @@ right mouse button into the *Output* window text area.
:align: center
:scale: 50%
-.. versionadded:: 1.6
-
Should the *Output* window contain embedded YAML format text (see above for a
demonstration), for example from using :doc:`thermo_style yaml
` or :doc:`thermo_modify line yaml `, the
@@ -289,10 +301,6 @@ text area.
Charts Window
-------------
-.. versionadded:: 1.6
-
- Plot smoothing support
-
By default, when starting a run, a *Charts* window opens that displays a
plot of thermodynamic output of the LAMMPS calculation as shown below.
@@ -327,10 +335,6 @@ corresponds to. Same as for the *Output* window, the chart window is
replaced on each new run, but the behavior can be changed in the
*Preferences* dialog.
-.. versionadded:: 1.6
-
- Support for YAML export added
-
From the *File* menu on the top left, it is possible to save an image
of the currently displayed plot or export the data in either plain text
columns (for use by plotting tools like `gnuplot
@@ -371,8 +375,6 @@ zoom in or zoom out of the displayed images. The button on the very
left triggers an export of the slide show animation to a movie file,
provided the `FFmpeg program `_ is installed.
-.. versionadded:: 1.6
-
When clicking on the "garbage can" icon, all image files of the slide
show will be deleted. Since their number can be large for long
simulations, this option enables to safely and quickly clean up the
@@ -391,7 +393,7 @@ below.
.. image:: JPG/lammps-gui-variable-info.png
:align: center
- :scale: 75%
+ :scale: 50%
Like for the *Output* and *Charts* windows, its content is continuously
updated during a run. It will show "(none)" if there are no variables
@@ -435,20 +437,21 @@ instance when using reduced (= 'lj') :doc:`units `, then
LAMMPS-GUI will check the current pair style and if it is a
Lennard-Jones type potential, it will extract the *sigma* parameter
for each atom type and assign atom diameters from those numbers.
+For cases where atom diameters are not auto-detected, the *Atom size* field
+can be edited and a suitable value set manually. The default value
+is inferred from the x-direction lattice spacing.
-Otherwise the default sequence of colors of the :doc:`dump image
-` command is assigned to the different atom types and the
-diameters are all the same.
+If elements cannot be detected the default sequence of colors of the
+:doc:`dump image ` command is assigned to the different atom
+types.
-.. figure:: JPG/lammps-gui-image.png
- :align: center
- :scale: 50%
+.. |gui-image1| image:: JPG/lammps-gui-image.png
+ :width: 48%
- Visualization of LAMMPS "peptide" example
+.. |gui-image2| image:: JPG/lammps-gui-funnel.png
+ :width: 48%
-.. versionchanged:: 1.6
-
- Buttons for toggling shininess and re-centering were added.
+|gui-image1| |gui-image2|
The default image size, some default image quality settings, the view
style and some colors can be changed in the *Preferences* dialog
@@ -468,8 +471,6 @@ current image can be saved to a file (keyboard shortcut `Ctrl-S`) or
copied to the clipboard (keyboard shortcut `Ctrl-C`) for pasting the
image into another application.
-.. versionadded:: 1.6
-
From the *File* menu it is also possible to copy the current
:doc:`dump image ` and :doc:`dump_modify `
commands to the clipboard so they can be pasted into a LAMMPS input file
@@ -488,8 +489,6 @@ Paste (`Ctrl-V`), Undo (`Ctrl-Z`), Redo (`Ctrl-Shift-Z`), Select All
dialog will pop up asking whether to cancel the exit operation, or to
save or not save the buffer contents to a file.
-.. versionadded:: 1.6
-
The editor has an auto-save mode that can be enabled or disabled in the
*Preferences* dialog. In auto-save mode, the editor buffer is
automatically saved before running LAMMPS or before exiting LAMMPS-GUI.
@@ -553,8 +552,6 @@ context menu that open the corresponding documentation page in the
online LAMMPS documentation in a web browser window. When using the
keyboard, the first of those entries is chosen.
-.. versionadded:: 1.6
-
If the word under the cursor is a file, then additionally the context
menu has an entry to open the file in a read-only text viewer window.
If the file is a LAMMPS restart file, instead the menu entry offers to
@@ -572,8 +569,6 @@ will contain a corresponding message.
Inspecting a Restart file
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. versionadded:: 1.6
-
When LAMMPS-GUI is asked to "Inspect a Restart", it will read the
restart file into a LAMMPS instance and then open three different
windows. The first window is a text viewer with the output of an
@@ -629,9 +624,10 @@ Edit
^^^^
The *Edit* menu offers the usual editor functions like *Undo*, *Redo*,
-*Cut*, *Copy*, *Paste*. It can also open a *Preferences* dialog
-(keyboard shortcut `Ctrl-P`) and allows deleting all stored preferences
-and settings, so they are reset to their default values.
+*Cut*, *Copy*, *Paste*, and a *Find and Replace* dialog (keyboard
+shortcut `Ctrl-F`). It can also open a *Preferences* dialog (keyboard
+shortcut `Ctrl-P`) and allows deleting all stored preferences and
+settings, so they are reset to their default values.
Run
^^^
@@ -667,7 +663,7 @@ set *before* a run is started.
.. image:: JPG/lammps-gui-variables.png
:align: center
- :scale: 75%
+ :scale: 50%
The *Set Variables* dialog will be pre-populated with entries that
are set as index variables in the input and any variables that are
@@ -716,6 +712,43 @@ https://lammpstutorials.github.io/ in a web browser window.
-----
+Find and Replace
+----------------
+
+.. image:: JPG/lammps-gui-find.png
+ :align: center
+ :scale: 33%
+
+The *Find and Replace* dialog allows searching for and replacing
+text in the *Editor* window.
+
+The dialog can be opened either from the *Edit* menu or with the
+keyboard shortcut `Ctrl-F`. You can enter the text to search for.
+Through three check-boxes the search behavior can be adjusted:
+
+- If checked, "Match case" does a case sensitive search; otherwise
+ the search is case insensitive.
+
+- If checked, "Wrap around" starts searching from the start of the
+ document, if there is no match found from the current cursor position
+ until the end of the document; otherwise the search will stop.
+
+- If checked, the "Whole word" setting only finds full word matches
+ (white space and special characters are word boundaries).
+
+Clicking on the *Next* button will search for the next occurrence of the
+search text and select / highlight it. Clicking on the *Replace* button
+will replace an already highlighted search text and find the next one.
+If no text is selected, or the selected text does not match the
+selection string, then the first click on the *Replace* button will
+only search and highlight the next occurrence of the search string.
+Clicking on the *Replace All* button will replace all occurrences from
+the cursor position to the end of the file; if the *Wrap around* box is
+checked, then it will replace **all** occurrences in the **entire**
+document. Clicking on the *Done* button will dismiss the dialog.
+
+------
+
Preferences
-----------
@@ -848,7 +881,7 @@ available (On macOS use the Command key instead of Ctrl/Control).
.. list-table::
:header-rows: 1
- :widths: auto
+ :widths: 16 19 13 16 13 22
* - Shortcut
- Function
@@ -890,32 +923,32 @@ available (On macOS use the Command key instead of Ctrl/Control).
- Quit Application
- Ctrl+A
- Select All
- - Ctrl+P
- - Preferences
+ - Ctrl+F
+ - Find and Replace
* - Ctrl+W
- Close Window
- - Ctrl+Shift+H
- - Quick Help
- - Ctrl+Shift+G
- - LAMMPS-GUI Howto
- * - Ctrl+Shift+A
- - About LAMMPS
- - Ctrl+?
- - Context Help
- - Ctrl+Shift+W
- - Show Variables
- * - Ctrl+Shift+M
- - LAMMPS Manual
- TAB
- Reformat line
- Shift+TAB
- Show Completions
- * - Ctrl+Shift+T
- - LAMMPS Tutorial
- - Ctrl+Shift+Enter
+ * - Ctrl+Shift+Enter
- Run File
- -
- -
+ - Ctrl+Shift+W
+ - Show Variables
+ - Ctrl+P
+ - Preferences
+ * - Ctrl+Shift+A
+ - About LAMMPS
+ - Ctrl+Shift+H
+ - Quick Help
+ - Ctrl+Shift+G
+ - LAMMPS-GUI Howto
+ * - Ctrl+Shift+M
+ - LAMMPS Manual
+ - Ctrl+?
+ - Context Help
+ - Ctrl+Shift+T
+ - LAMMPS Tutorial
Further editing keybindings `are documented with the Qt documentation
`_. In
diff --git a/doc/src/JPG/lammps-gui-dark.png b/doc/src/JPG/lammps-gui-dark.png
new file mode 100644
index 0000000000..31921bf537
Binary files /dev/null and b/doc/src/JPG/lammps-gui-dark.png differ
diff --git a/doc/src/JPG/lammps-gui-find.png b/doc/src/JPG/lammps-gui-find.png
new file mode 100644
index 0000000000..452c5818eb
Binary files /dev/null and b/doc/src/JPG/lammps-gui-find.png differ
diff --git a/doc/src/JPG/lammps-gui-funnel.png b/doc/src/JPG/lammps-gui-funnel.png
new file mode 100644
index 0000000000..6f24f8bbd9
Binary files /dev/null and b/doc/src/JPG/lammps-gui-funnel.png differ
diff --git a/doc/src/JPG/lammps-gui-image.png b/doc/src/JPG/lammps-gui-image.png
index 969aadce0b..5f71cb2be5 100644
Binary files a/doc/src/JPG/lammps-gui-image.png and b/doc/src/JPG/lammps-gui-image.png differ
diff --git a/doc/src/JPG/lammps-gui-main.png b/doc/src/JPG/lammps-gui-main.png
index 69efe3db68..c7a1e5a98c 100644
Binary files a/doc/src/JPG/lammps-gui-main.png and b/doc/src/JPG/lammps-gui-main.png differ
diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst
index e87610fb31..43429feb03 100644
--- a/doc/src/Packages_details.rst
+++ b/doc/src/Packages_details.rst
@@ -1823,7 +1823,8 @@ Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1.
**Install:**
This package has :ref:`specific installation instructions ` on the
-:doc:`Build extras ` page.
+:doc:`Build extras ` page. This package may also be compiled
+as a plugin to avoid licensing conflicts when distributing binaries.
**Supporting info:**
@@ -2344,7 +2345,9 @@ and Gareth Tribello.
**Install:**
-This package has :ref:`specific installation instructions ` on the :doc:`Build extras ` page.
+This package has :ref:`specific installation instructions ` on the
+:doc:`Build extras ` page. This package may also be compiled
+as a plugin to avoid licensing conflicts when distributing binaries.
**Supporting info:**
diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst
index 6c12baf967..9f9f63f46a 100644
--- a/doc/src/Tools.rst
+++ b/doc/src/Tools.rst
@@ -590,20 +590,31 @@ and the LAMMPS library, via ``-D LAMMPS_SOURCE_DIR=/path/to/lammps/src``.
CMake will try to guess a build folder with the LAMMPS library from that
path, but it can also be set with ``-D LAMMPS_LIB_DIR=/path/to/lammps/lib``.
+Plugin version
+""""""""""""""
+
Rather than linking to the LAMMPS library during compilation, it is also
-possible to compile the GUI with a plugin loader that will load
-the LAMMPS library dynamically at runtime during the start of the GUI
-from a shared library; e.g. ``liblammps.so`` or ``liblammps.dylib`` or
+possible to compile the GUI with a plugin loader that will load the
+LAMMPS library dynamically at runtime during the start of the GUI from a
+shared library; e.g. ``liblammps.so`` or ``liblammps.dylib`` or
``liblammps.dll`` (depending on the operating system). This has the
advantage that the LAMMPS library can be built from updated or modified
LAMMPS source without having to recompile the GUI. The ABI of the
LAMMPS C-library interface is very stable and generally backward
-compatible. This feature is enabled by setting
-``-D LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D
+compatible. This feature is enabled by setting ``-D
+LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D
LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader``. Typically, this
would be the ``examples/COUPLE/plugin`` folder of the LAMMPS
distribution.
+When compiling LAMMPS-GUI with plugin support, there is an additional
+command line flag (``-p `` or ``--pluginpath ``) which
+allows to override the path to LAMMPS shared library used by the GUI.
+This is usually auto-detected on the first run and can be changed in the
+LAMMPS-GUI *Preferences* dialog. The command line flag allows to reset
+this path to a valid value in case the original setting has become
+invalid. An empty path ("") as argument restores the default setting.
+
Platform notes
^^^^^^^^^^^^^^
@@ -671,6 +682,15 @@ folder> --target tgz`` or ``make tgz`` to build a
``LAMMPS-Linux-amd64.tar.gz`` file with the executables and their
support libraries.
+It is also possible to build a `flatpak bundle
+`_ which is
+a way to distribute applications in a way that is compatible with most
+Linux distributions. Use the "flatpak" target to trigger a compile
+(``cmake --build --target flatpak`` or ``make flatpak``).
+Please note that this will not build from the local sources but from the
+repository and branch listed in the ``org.lammps.lammps-gui.yml``
+LAMMPS-GUI source folder.
+
----------
.. _arc:
diff --git a/doc/src/compute_pressure.rst b/doc/src/compute_pressure.rst
index 03dfbb841b..439f701bd4 100644
--- a/doc/src/compute_pressure.rst
+++ b/doc/src/compute_pressure.rst
@@ -59,11 +59,12 @@ may also contribute to the virial term.
A symmetric pressure tensor, stored as a 6-element vector, is also
calculated by this compute. The six components of the vector are
-ordered :math:`xx,` :math:`yy,` :math:`zz,` :math:`xy,` :math:`xz,` :math:`yz.`
-The equation for the :math:`(I,J)` components (where :math:`I` and :math:`J`
-are :math:`x`, :math:`y`, or :math:`z`) is similar to the above formula,
-except that the first term uses components of the kinetic energy tensor and the
-second term uses components of the virial tensor:
+ordered :math:`xx,` :math:`yy,` :math:`zz,` :math:`xy,` :math:`xz,`
+:math:`yz.` The equation for the :math:`(I,J)` components (where
+:math:`I` and :math:`J` are :math:`x`, :math:`y`, or :math:`z`) is
+similar to the above formula, except that the first term uses
+components related to the kinetic energy tensor and the second term
+uses components of the virial tensor:
.. math::
@@ -75,8 +76,8 @@ calculated. This includes a kinetic energy (temperature) term and the
virial as the sum of pair, bond, angle, dihedral, improper, kspace
(long-range), and fix contributions to the force on each atom. If any
extra keywords are listed, then only those components are summed to
-compute temperature or ke and/or the virial. The *virial* keyword
-means include all terms except the kinetic energy *ke*\ .
+compute temperature or ke and/or the virial. The *virial* keyword means
+include all terms except the kinetic energy *ke*\ .
The *pair/hybrid* keyword means to only include contribution
from a sub-style in a *hybrid* or *hybrid/overlay* pair style.
@@ -86,26 +87,31 @@ system, including for many-body potentials and accounting for the
effects of periodic boundary conditions are discussed in
:ref:`(Thompson) `.
-The temperature and kinetic energy tensor is not calculated by this
+The temperature and kinetic energy tensor are not calculated by this
compute, but rather by the temperature compute specified with the
-command. If the kinetic energy is not included in the pressure, than
-the temperature compute is not used and can be specified as NULL.
-Normally the temperature compute used by compute pressure should
-calculate the temperature of all atoms for consistency with the virial
-term, but any compute style that calculates temperature can be used
-(e.g., one that excludes frozen atoms or other degrees of freedom).
+command. See the doc pages for individual compute temp variants for an
+explanation of how they calculate temperature and a symmetric tensor
+(6-element vector) whose components are twice that of the traditional KE
+tensor. That tensor is what appears in the pressure tensor formula
+above.
+
+If the kinetic energy is not included in the pressure, than the
+temperature compute is not used and can be specified as NULL. Normally
+the temperature compute used by compute pressure should calculate the
+temperature of all atoms for consistency with the virial term, but any
+compute style that calculates temperature can be used (e.g., one that
+excludes frozen atoms or other degrees of freedom).
Note that if desired the specified temperature compute can be one that
subtracts off a bias to calculate a temperature using only the thermal
velocity of the atoms (e.g., by subtracting a background streaming
-velocity).
-See the doc pages for individual :doc:`compute commands ` to determine
-which ones include a bias.
+velocity). See the doc pages for individual :doc:`compute commands
+` to determine which ones include a bias.
Also note that the :math:`N` in the first formula above is really
-degrees-of-freedom divided by :math:`d` = dimensionality, where the DOF value
-is calculated by the temperature compute.
-See the various :doc:`compute temperature ` styles for details.
+degrees-of-freedom divided by :math:`d` = dimensionality, where the
+DOF value is calculated by the temperature compute. See the various
+:doc:`compute temperature ` styles for details.
A compute of this style with the ID of thermo_press is created when
LAMMPS starts up, as if this command were in the input script:
@@ -136,9 +142,8 @@ The ordering of values in the symmetric pressure tensor is as follows:
:math:`p_{xx},` :math:`p_{yy},` :math:`p_{zz},` :math:`p_{xy},`
:math:`p_{xz},` :math:`p_{yz}.`
-The scalar and vector values calculated by this compute are
-"intensive". The scalar and vector values will be in pressure
-:doc:`units `.
+The scalar and vector values calculated by this compute are "intensive".
+The scalar and vector values will be in pressure :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp.rst b/doc/src/compute_temp.rst
index e081280496..2638a1ae11 100644
--- a/doc/src/compute_temp.rst
+++ b/doc/src/compute_temp.rst
@@ -48,13 +48,17 @@ the group, :math:`N_\mathrm{fix DOFs}` is the number of degrees of
freedom removed by fix commands (see below), :math:`k_B` is the
Boltzmann constant, and :math:`T` is the resulting computed temperature.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the computation of a pressure
-tensor. The formula for the components of the tensor is the same as the
-above expression for :math:`E_\mathrm{kin}`, except that :math:`v_i^2` is
-replaced by :math:`v_{i,x} v_{i,y}` for the :math:`xy` component, and so on.
-The six components of the vector are ordered :math:`xx`, :math:`yy`,
-:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the
@@ -94,16 +98,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length six (KE tensor), which can be accessed by indices
-1--6. These values can be used by any command that uses global scalar
-or vector values from a compute as input. See the :doc:`Howto output
-` page for an overview of LAMMPS output options.
+vector of length six (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_asphere.rst b/doc/src/compute_temp_asphere.rst
index 5741db76aa..d2af4278ad 100644
--- a/doc/src/compute_temp_asphere.rst
+++ b/doc/src/compute_temp_asphere.rst
@@ -41,8 +41,8 @@ translational and rotational kinetic energy. This differs from the
usual :doc:`compute temp ` command, which assumes point
particles with only translational kinetic energy.
-Only finite-size particles (aspherical or spherical) can be included
-in the group. For 3d finite-size particles, each has six degrees of
+Only finite-size particles (aspherical or spherical) can be included in
+the group. For 3d finite-size particles, each has six degrees of
freedom (three translational, three rotational). For 2d finite-size
particles, each has three degrees of freedom (two translational, one
rotational).
@@ -70,25 +70,39 @@ axis. It will also be the case for biaxial ellipsoids when exactly two
of the semiaxes have the same length and the corresponding relative well
depths are equal.
-The translational kinetic energy is computed the same as is described
-by the :doc:`compute temp ` command. The rotational
-kinetic energy is computed as :math:`\frac12 I \omega^2`, where :math:`I` is
-the inertia tensor for the aspherical particle and :math:`\omega` is its
+The translational kinetic energy is computed the same as is described by
+the :doc:`compute temp ` command. The rotational kinetic
+energy is computed as :math:`\frac12 I \omega^2`, where :math:`I` is the
+inertia tensor for the aspherical particle and :math:`\omega` is its
angular velocity, which is computed from its angular momentum.
.. note::
For :doc:`2d models `, particles are treated as
- ellipsoids, not ellipses, meaning their moments of inertia will be the
- same as in 3d.
+ ellipsoids, not ellipses, meaning their moments of inertia will be
+ the same as in 3d.
A kinetic energy tensor, stored as a six-element vector, is also
calculated by this compute. The formula for the components of the
tensor is the same as the above formula, except that :math:`v^2` and
-:math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x \omega_y`
-for the :math:`xy` component, and the appropriate elements of the moment of
-inertia tensor are used. The six components of the vector are ordered
-:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+:math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x
+\omega_y` for the :math:`xy` component, and the appropriate elements of
+the moment of inertia tensor are used. The six components of the vector
+are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
+
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for the
+components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` and :math:`\omega^2` are replaced by :math:`v_x v_y`
+and :math:`\omega_x \omega_y` for the :math:`xy` component, and so on.
+And the appropriate elements of the moment of inertia tensor are used.
+Note that because it lacks the 1/2 factor, these tensor components are
+twice those of the traditional kinetic energy tensor. The six
+components of the vector are ordered :math:`xx`, :math:`yy`, :math:`zz`,
+:math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic/dof* option of
@@ -131,27 +145,26 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
-See the :doc:`Howto output ` page for an overview of LAMMPS
-output options.
+vector of length 6 (symmetric tensor), which can be accessed by indices
+1--6. These values can be used by any command that uses global scalar
+or vector values from a compute as input. See the :doc:`Howto output
+` page for an overview of LAMMPS output options.
-The scalar value calculated by this compute is "intensive". The
-vector values are "extensive".
+The scalar value calculated by this compute is "intensive". The vector
+values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
This compute is part of the ASPHERE package. It is only enabled if
-LAMMPS was built with that package. See the :doc:`Build package ` page for more info.
+LAMMPS was built with that package. See the :doc:`Build package
+` page for more info.
-This compute requires that atoms store angular momentum and a
-quaternion as defined by the :doc:`atom_style ellipsoid `
-command.
+This compute requires that atoms store angular momentum and a quaternion
+as defined by the :doc:`atom_style ellipsoid ` command.
All particles in the group must be finite-size. They cannot be point
particles, but they can be aspherical or spherical as defined by their
diff --git a/doc/src/compute_temp_body.rst b/doc/src/compute_temp_body.rst
index f29ca5c39b..ef536c1af7 100644
--- a/doc/src/compute_temp_body.rst
+++ b/doc/src/compute_temp_body.rst
@@ -62,12 +62,17 @@ kinetic energy is computed as :math:`\frac12 I \omega^2`, where :math:`I`
is the moment of inertia tensor for the aspherical particle and :math:`\omega`
is its angular velocity, which is computed from its angular momentum.
-A kinetic energy tensor, stored as a 6-element vector, is also calculated by
-this compute. The formula for the components of the tensor is the same as the
-above formula, except that :math:`v^2` and :math:`\omega^2` are
-replaced by :math:`v_x v_y` and :math:`\omega_x \omega_y` for the
-math:`xy` component, and the appropriate elements of the inertia tensor are
-used. The six components of the vector are ordered :math:`xx`, :math:`yy`,
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` and :math:`\omega^2` are replaced by :math:`v_x v_y`
+and :math:`\omega_x \omega_y` for the :math:`xy` component, and so on.
+And the appropriate elements of the moment of inertia tensor are used.
+Note that because it lacks the 1/2 factor, these tensor components are
+twice those of the traditional kinetic energy tensor. The six
+components of the vector are ordered :math:`xx`, :math:`yy`,
:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be
@@ -111,17 +116,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
-See the :doc:`Howto output ` page for an overview of LAMMPS
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `.
-The vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_chunk.rst b/doc/src/compute_temp_chunk.rst
index c92b4e36e9..33eab04343 100644
--- a/doc/src/compute_temp_chunk.rst
+++ b/doc/src/compute_temp_chunk.rst
@@ -85,12 +85,14 @@ By default, *adof* = 2 or 3 = dimensionality of system, as set via the
:doc:`dimension ` command, and *cdof* = 0.0.
This gives the usual formula for temperature.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the computation of a pressure
-tensor. The formula for the components of the tensor is the same as
-the above formula, except that :math:`v^2` is replaced by
-:math:`v_x v_y` for the :math:`xy` component, and so on.
-The six components of the vector are ordered :math:`xx`, :math:`yy`,
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute. The formula for the components of the tensor is the
+same as the above expression for :math:`E_\mathrm{kin}`, except that
+the 1/2 factor is NOT included and the :math:`v_i^2` is replaced by
+:math:`v_{i,x} v_{i,y}` for the :math:`xy` component, and so on. Note
+that because it lacks the 1/2 factor, these tensor components are
+twice those of the traditional kinetic energy tensor. The six
+components of the vector are ordered :math:`xx`, :math:`yy`,
:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
Note that the number of atoms contributing to the temperature is
@@ -227,10 +229,10 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
-See the :doc:`Howto output ` page for an overview of LAMMPS
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
output options.
This compute also optionally calculates a global array, if one or more
@@ -245,9 +247,9 @@ page for an overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive". The array values are "intensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `. The array values
-will be in temperature :doc:`units ` for the *temp* value, and in
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `. The array values will be
+in temperature :doc:`units ` for the *temp* value, and in
energy :doc:`units ` for the *kecom* and *internal* values.
Restrictions
diff --git a/doc/src/compute_temp_com.rst b/doc/src/compute_temp_com.rst
index d54fa7dfa6..e94c911dfa 100644
--- a/doc/src/compute_temp_com.rst
+++ b/doc/src/compute_temp_com.rst
@@ -44,12 +44,17 @@ where KE is the total kinetic energy of the group of atoms (sum of
simulation, :math:`N` is number of atoms in the group, :math:`k_B` is
the Boltzmann constant, and :math:`T` is the absolute temperature.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the computation of a pressure
-tensor. The formula for the components of the tensor is the same as
-the above formula, except that :math:`v^2` is replaced by :math:`v_x v_y`
-for the :math:`xy` component, and so on. The six components of the vector are
-ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the
@@ -81,17 +86,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `.
-The vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values is in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_cs.rst b/doc/src/compute_temp_cs.rst
index a33fbf7ffb..4908b12797 100644
--- a/doc/src/compute_temp_cs.rst
+++ b/doc/src/compute_temp_cs.rst
@@ -31,27 +31,27 @@ 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
core/shell model of :ref:`(Mitchell and Fincham) `.
See the :doc:`Howto coreshell ` page for an overview of
-the model as implemented in LAMMPS. Specifically, this compute
-enables correct temperature calculation and thermostatting of
-core/shell pairs where it is desirable for the internal degrees of
-freedom of the core/shell pairs to not be influenced by a thermostat.
-A compute of this style can be used by any command that computes a
-temperature via :doc:`fix_modify `
-(e.g., :doc:`fix temp/rescale `, :doc:`fix npt `).
+the model as implemented in LAMMPS. Specifically, this compute enables
+correct temperature calculation and thermostatting of core/shell pairs
+where it is desirable for the internal degrees of freedom of the
+core/shell pairs to not be influenced by a thermostat. A compute of
+this style can be used by any command that computes a temperature via
+:doc:`fix_modify ` (e.g., :doc:`fix temp/rescale
+`, :doc:`fix npt `).
-Note that this compute does not require all ions to be polarized,
-hence defined as core/shell pairs. One can mix core/shell pairs and
-ions without a satellite particle if desired. The compute will
-consider the non-polarized ions according to the physical system.
+Note that this compute does not require all ions to be polarized, hence
+defined as core/shell pairs. One can mix core/shell pairs and ions
+without a satellite particle if desired. The compute will consider the
+non-polarized ions according to the physical system.
For this compute, core and shell particles are specified by two
-respective group IDs, which can be defined using the
-:doc:`group ` command. The number of atoms in the two groups
-must be the same and there should be one bond defined between a pair
-of atoms in the two groups. Non-polarized ions which might also be
-included in the treated system should not be included into either of
-these groups, they are taken into account by the *group-ID* (second
-argument) of the compute.
+respective group IDs, which can be defined using the :doc:`group
+` command. The number of atoms in the two groups must be the
+same and there should be one bond defined between a pair of atoms in the
+two groups. Non-polarized ions which might also be included in the
+treated system should not be included into either of these groups, they
+are taken into account by the *group-ID* (second argument) of the
+compute.
The temperature is calculated by the formula
@@ -60,52 +60,56 @@ The temperature is calculated by the formula
\text{KE} = \frac{\text{dim}}{2} N k_B T,
where KE is the total kinetic energy of the group of atoms (sum of
-:math:`\frac12 m v^2`), dim = 2 or 3 is the dimensionality of the simulation,
-:math:`N` is the number of atoms in the group, :math:`k_B` is the Boltzmann
-constant, and :math:`T` is the absolute temperature. Note that
-the velocity of each core or shell atom used in the KE calculation is
-the velocity of the center-of-mass (COM) of the core/shell pair the
-atom is part of.
+:math:`\frac12 m v^2`), dim = 2 or 3 is the dimensionality of the
+simulation, :math:`N` is the number of atoms in the group, :math:`k_B`
+is the Boltzmann constant, and :math:`T` is the absolute temperature.
+Note that the velocity of each core or shell atom used in the KE
+calculation is the velocity of the center-of-mass (COM) of the
+core/shell pair the atom is part of.
-A kinetic energy tensor, stored as a six-element vector, is also calculated by
-this compute for use in the computation of a pressure tensor. The formula for
-the components of the tensor is the same as the above formula, except that
-:math:`v^2` is replaced by :math:`v_x v_y` for the :math:`xy` component, and so
-on. The six components of the vector are ordered :math:`xx`, :math:`yy`,
-:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. In contrast to the temperature,
-the velocity of each core or shell atom is taken individually.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for the
+components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The change this fix makes to core/shell atom velocities is essentially
-computing the temperature after a "bias" has been removed from the velocity of
-the atoms. This "bias" is the velocity of the atom relative to the
-center-of-mass velocity of the core/shell pair. If this compute is used with a
-fix command that performs thermostatting then this bias will be subtracted from
-each atom, thermostatting of the remaining center-of-mass velocity will be
-performed, and the bias will be added back in. This means the thermostatting
-will effectively be performed on the core/shell pairs, instead of on the
-individual core and shell atoms. Thermostatting fixes that work in this way
-include :doc:`fix nvt `, :doc:`fix temp/rescale `,
-:doc:`fix temp/berendsen `, and
-:doc:`fix langevin `.
+computing the temperature after a "bias" has been removed from the
+velocity of the atoms. This "bias" is the velocity of the atom relative
+to the center-of-mass velocity of the core/shell pair. If this compute
+is used with a fix command that performs thermostatting then this bias
+will be subtracted from each atom, thermostatting of the remaining
+center-of-mass velocity will be performed, and the bias will be added
+back in. This means the thermostatting will effectively be performed on
+the core/shell pairs, instead of on the individual core and shell atoms.
+Thermostatting fixes that work in this way include :doc:`fix nvt
+`, :doc:`fix temp/rescale `, :doc:`fix
+temp/berendsen `, and :doc:`fix langevin
+`.
The internal energy of core/shell pairs can be calculated by the
-:doc:`compute temp/chunk ` command, if chunks are defined
-as core/shell pairs. See the :doc:`Howto coreshell ` doc
-page for more discussion on how to do this.
+:doc:`compute temp/chunk ` command, if chunks are
+defined as core/shell pairs. See the :doc:`Howto coreshell
+` doc page for more discussion on how to do this.
Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
+vector of length 6 (symmetric tensor), which can be accessed by indices
+1--6. These values can be used by any command that uses global scalar
+or vector values from a compute as input.
-The scalar value calculated by this compute is "intensive". The
-vector values are "extensive".
+The scalar value calculated by this compute is "intensive". The vector
+values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_deform.rst b/doc/src/compute_temp_deform.rst
index adf76564a8..1c8c2da096 100644
--- a/doc/src/compute_temp_deform.rst
+++ b/doc/src/compute_temp_deform.rst
@@ -73,12 +73,16 @@ simulation, :math:`N` is the number of atoms in the group, :math:`k_B`
is the Boltzmann constant, and :math:`T` is the temperature. Note that
:math:`v` in the kinetic energy formula is the atom's velocity.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the computation of a pressure
-tensor. The formula for the components of the tensor is the same as
-the above formula, except that :math:`v^2` is replaced by :math:`v_x v_y` for
-the :math:`xy` component, and so on. The six components of the vector are
-ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
:math:`yz`.
The number of atoms contributing to the temperature is assumed to be
@@ -128,17 +132,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `.
-The vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_deform_eff.rst b/doc/src/compute_temp_deform_eff.rst
index 83535f4727..3c22ad8045 100644
--- a/doc/src/compute_temp_deform_eff.rst
+++ b/doc/src/compute_temp_deform_eff.rst
@@ -29,17 +29,20 @@ model, after subtracting out a streaming velocity induced by the
simulation box changing size and/or shape, for example in a
non-equilibrium MD (NEMD) simulation. The size/shape change is
induced by use of the :doc:`fix deform ` command. A
-compute of this style is created by the
-:doc:`fix nvt/sllod/eff ` command to compute the thermal
-temperature of atoms for thermostatting purposes. A compute of this
-style can also be used by any command that computes a temperature
-(e.g., :doc:`thermo_modify `, :doc:`fix npt/eff `).
+compute of this style is created by the :doc:`fix nvt/sllod/eff
+` command to compute the thermal temperature of
+atoms for thermostatting purposes. A compute of this style can also
+be used by any command that computes a temperature (e.g.,
+:doc:`thermo_modify `, :doc:`fix npt/eff
+`).
The calculation performed by this compute is exactly like that
described by the :doc:`compute temp/deform `
-command, except that the formula for the temperature includes the
-radial electron velocity contributions, as discussed by the :doc:`compute temp/eff ` command. Note that only the
-translational degrees of freedom for each nuclei or electron are
+command, except that the formulas for the temperature (scalar) and
+diagonal components of the symmetric tensor (vector) include the
+radial electron velocity contributions, as discussed by the
+:doc:`compute temp/eff ` command. Note that only
+the translational degrees of freedom for each nuclei or electron are
affected by the streaming velocity adjustment. The radial velocity
component of the electrons is not affected.
@@ -47,17 +50,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_partial.rst b/doc/src/compute_temp_partial.rst
index d5628e0d60..d98558c159 100644
--- a/doc/src/compute_temp_partial.rst
+++ b/doc/src/compute_temp_partial.rst
@@ -44,12 +44,16 @@ constant, and :math:`T` = temperature. The calculation of KE excludes the
is 0. The dim parameter is adjusted to give the correct number of
degrees of freedom.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the calculation of a pressure
-tensor. The formula for the components of the tensor is the same as
-the above formula, except that :math:`v^2` is replaced by :math:`v_x v_y` for
-the :math:`xy` component, and so on. The six components of the vector are
-ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
:math:`yz`.
The number of atoms contributing to the temperature is assumed to be
@@ -88,17 +92,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
-See the :doc:`Howto output ` page for an overview of LAMMPS
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_profile.rst b/doc/src/compute_temp_profile.rst
index 566d8cf3fc..9f6bbfc89c 100644
--- a/doc/src/compute_temp_profile.rst
+++ b/doc/src/compute_temp_profile.rst
@@ -97,21 +97,27 @@ center-of-mass velocity across the group in directions where streaming velocity
is *not* subtracted. This can be altered using the *extra* option of the
:doc:`compute_modify ` command.
-If the *out* keyword is used with a *tensor* value, which is the default,
-a kinetic energy tensor, stored as a six-element vector, is also calculated by
-this compute for use in the computation of a pressure tensor. The formula for
-the components of the tensor is the same as the above formula, except that
-:math:`v^2` is replaced by :math:`v_x v_y` for the :math:`xy` component, and
-so on. The six components of the vector are ordered :math:`xx`, :math:`yy`,
+If the *out* keyword is used with a *tensor* value, which is the
+default, then a symmetric tensor, stored as a six-element vector, is
+also calculated by this compute for use in the computation of a
+pressure tensor by the :doc:`compute pressue `
+command. The formula for the components of the tensor is the same as
+the above expression for :math:`E_\mathrm{kin}`, except that the 1/2
+factor is NOT included and the :math:`v_i^2` is replaced by
+:math:`v_{i,x} v_{i,y}` for the :math:`xy` component, and so on. Note
+that because it lacks the 1/2 factor, these tensor components are
+twice those of the traditional kinetic energy tensor. The six
+components of the vector are ordered :math:`xx`, :math:`yy`,
:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
-If the *out* keyword is used with a *bin* value, the count of atoms and
-computed temperature for each bin are stored for output, as an array of values,
-as described below. The temperature of each bin is calculated as described
-above, where the bias velocity is subtracted and only the remaining thermal
-velocity of atoms in the bin contributes to the temperature. See the note
-below for how the temperature is normalized by the degrees-of-freedom of atoms
-in the bin.
+If the *out* keyword is used with a *bin* value, the count of atoms
+and computed temperature for each bin are stored for output, as an
+array of values, as described below. The temperature of each bin is
+calculated as described above, where the bias velocity is subtracted
+and only the remaining thermal velocity of atoms in the bin
+contributes to the temperature. See the note below for how the
+temperature is normalized by the degrees-of-freedom of atoms in the
+bin.
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the
@@ -166,16 +172,17 @@ Output info
This compute calculates a global scalar (the temperature). Depending
on the setting of the *out* keyword, it also calculates a global
vector or array. For *out* = *tensor*, it calculates a vector of
-length 6 (KE tensor), which can be accessed by indices 1--6. For *out*
-= *bin* it calculates a global array which has 2 columns and :math:`N` rows,
-where :math:`N` is the number of bins. The first column contains the number
-of atoms in that bin. The second contains the temperature of that
-bin, calculated as described above. The ordering of rows in the array
-is as follows. Bins in :math:`x` vary fastest, then :math:`y`, then
-:math:`z`. Thus for a :math:`10\times 10\times 10` 3d array of bins, there
-will be 1000 rows. The bin with indices :math:`(i_x,i_y,i_z) = (2,3,4)` would
-map to row :math:`M = 10^2(i_z-1) + 10(i_y-1) + i_x = 322`, where the rows are
-numbered from 1 to 1000 and the bin indices are numbered from 1 to 10 in each
+length 6 (symmetric tensor), which can be accessed by indices 1--6.
+For *out* = *bin* it calculates a global array which has 2 columns and
+:math:`N` rows, where :math:`N` is the number of bins. The first
+column contains the number of atoms in that bin. The second contains
+the temperature of that bin, calculated as described above. The
+ordering of rows in the array is as follows. Bins in :math:`x` vary
+fastest, then :math:`y`, then :math:`z`. Thus for a :math:`10\times
+10\times 10` 3d array of bins, there will be 1000 rows. The bin with
+indices :math:`(i_x,i_y,i_z) = (2,3,4)` would map to row :math:`M =
+10^2(i_z-1) + 10(i_y-1) + i_x = 322`, where the rows are numbered from
+1 to 1000 and the bin indices are numbered from 1 to 10 in each
dimension.
These values can be used by any command that uses global scalar or
@@ -186,9 +193,9 @@ options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive". The array values are "intensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `. The first column
-of array values are counts; the values in the second column will be in
+The scalar value us in temperature :doc:`units `. The vector
+values are in energy :doc:`units `. The first column of array
+values are counts; the values in the second column will be in
temperature :doc:`units `.
Restrictions
@@ -203,7 +210,10 @@ will be for most thermostats.
Related commands
""""""""""""""""
-:doc:`compute temp `, :doc:`compute temp/ramp `, :doc:`compute temp/deform `, :doc:`compute pressure `
+:doc:`compute temp `,
+:doc:`compute temp/ramp `,
+:doc:`compute temp/deform `,
+:doc:`compute pressure `
Default
"""""""
diff --git a/doc/src/compute_temp_ramp.rst b/doc/src/compute_temp_ramp.rst
index 2e170316fb..643ca9d1dd 100644
--- a/doc/src/compute_temp_ramp.rst
+++ b/doc/src/compute_temp_ramp.rst
@@ -63,12 +63,17 @@ command (e.g., :math:`\AA` for units = real or metal). A
velocity in lattice spacings per unit time). The :doc:`lattice `
command must have been previously used to define the lattice spacing.
-A kinetic energy tensor, stored as a six-element vector, is also calculated by
-this compute for use in the computation of a pressure tensor. The formula for
-the components of the tensor is the same as the above formula, except that
-:math:`v^2` is replaced by :math:`v_x v_y` for the :math:`xy` component, and
-so on. The six components of the vector are ordered :math:`xx`, :math:`yy`,
-:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
The number of atoms contributing to the temperature is assumed to be constant
for the duration of the run; use the *dynamic* option of the
@@ -100,17 +105,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
@@ -119,7 +124,10 @@ Restrictions
Related commands
""""""""""""""""
-:doc:`compute temp `, :doc:`compute temp/profie `, :doc:`compute temp/deform `, :doc:`compute pressure `
+:doc:`compute temp `,
+:doc:`compute temp/profile `,
+:doc:`compute temp/deform `,
+:doc:`compute pressure `
Default
"""""""
diff --git a/doc/src/compute_temp_region.rst b/doc/src/compute_temp_region.rst
index 77954e8898..d2fc8a1633 100644
--- a/doc/src/compute_temp_region.rst
+++ b/doc/src/compute_temp_region.rst
@@ -49,12 +49,17 @@ where KE = is the total kinetic energy of the group of atoms (sum of
:math:`N` is the number of atoms in both the group and region, :math:`k_B` is
the Boltzmann constant, and :math:`T` temperature.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the computation of a pressure
-tensor. The formula for the components of the tensor is the same as
-the above formula, except that :math:`v^2` is replaced by :math:`v_x v_y`
-for the :math:`xy` component, and so on. The six components of the vector are
-ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
The number of atoms contributing to the temperature is calculated each
time the temperature is evaluated since it is assumed atoms can
@@ -78,12 +83,13 @@ will operate only on atoms that are currently in the geometric region.
Unlike other compute styles that calculate temperature, this compute
does not subtract out degrees-of-freedom due to fixes that constrain
-motion, such as :doc:`fix shake ` and :doc:`fix rigid `. This is because those degrees of freedom
-(e.g., a constrained bond) could apply to sets of atoms that straddle
-the region boundary, and hence the concept is somewhat ill-defined.
-If needed the number of subtracted degrees of freedom can be set
-explicitly using the *extra* option of the
-:doc:`compute_modify ` command.
+motion, such as :doc:`fix shake ` and :doc:`fix rigid
+`. This is because those degrees of freedom (e.g., a
+constrained bond) could apply to sets of atoms that straddle the
+region boundary, and hence the concept is somewhat ill-defined. If
+needed the number of subtracted degrees of freedom can be set
+explicitly using the *extra* option of the :doc:`compute_modify
+` command.
See the :doc:`Howto thermostat ` page for a
discussion of different ways to compute temperature and perform
@@ -93,17 +99,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `.
-The vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_region_eff.rst b/doc/src/compute_temp_region_eff.rst
index b8cd73f4fd..4193a0a7ec 100644
--- a/doc/src/compute_temp_region_eff.rst
+++ b/doc/src/compute_temp_region_eff.rst
@@ -32,32 +32,33 @@ temperature (e.g., :doc:`thermo_modify `).
The operation of this compute is exactly like that described by the
:doc:`compute temp/region ` command, except that
-the formula for the temperature itself includes the radial electron
-velocity contributions, as discussed by the
-:doc:`compute temp/eff ` command.
+the formulas for the temperature (scalar) and diagonal components of
+the symmetric tensor (vector) include the radial electron velocity
+contributions, as discussed by the :doc:`compute temp/eff
+` command.
Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
+output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
-This compute is part of the EFF package. It is only enabled if
-LAMMPS was built with that package.
-See the :doc:`Build package ` page for more info.
+This compute is part of the EFF package. It is only enabled if LAMMPS
+was built with that package. See the :doc:`Build package
+` page for more info.
Related commands
""""""""""""""""
diff --git a/doc/src/compute_temp_rotate.rst b/doc/src/compute_temp_rotate.rst
index 7c445109a1..7fab9a1325 100644
--- a/doc/src/compute_temp_rotate.rst
+++ b/doc/src/compute_temp_rotate.rst
@@ -43,12 +43,17 @@ where KE is the total kinetic energy of the group of atoms (sum of
:math:`N` is the number of atoms in the group, :math:`k_B` is the Boltzmann
constant, and :math:`T` is the absolute temperature.
-A kinetic energy tensor, stored as a six-element vector, is also calculated by
-this compute for use in the computation of a pressure tensor. The formula for
-the components of the tensor is the same as the above formula, except that
-:math:`v^2` is replaced by :math:`v_x v_y` for the :math:`xy` component, and
-so on. The six components of the vector are ordered :math:`xx`, :math:`yy`,
-:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the
@@ -80,17 +85,16 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1-6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input. See the
-:doc:`Howto output ` page for an overview of LAMMPS output
-options.
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1-6. These values can be used by any command that uses global
+scalar or vector values from a compute as input. See the :doc:`Howto
+output ` page for an overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_temp_sphere.rst b/doc/src/compute_temp_sphere.rst
index d1891f64bf..5499b3aae9 100644
--- a/doc/src/compute_temp_sphere.rst
+++ b/doc/src/compute_temp_sphere.rst
@@ -77,6 +77,18 @@ tensor is the same as the above formulas, except that :math:`v^2` and
vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`,
:math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` and :math:`\omega^2` are replaced by :math:`v_x v_y`
+and :math:`\omega_x \omega_y` for the :math:`xy` component, and so on.
+Note that because it lacks the 1/2 factor, these tensor components are
+twice those of the traditional kinetic energy tensor. The six
+components of the vector are ordered :math:`xx`, :math:`yy`,
+:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the
:doc:`compute_modify ` command if this is not the case.
@@ -117,17 +129,17 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 6 (KE tensor), which can be accessed by indices 1--6.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
-See the :doc:`Howto output ` page for an overview of LAMMPS
+vector of length 6 (symmetric tensor), which can be accessed by
+indices 1--6. These values can be used by any command that uses
+global scalar or vector values from a compute as input. See the
+:doc:`Howto output ` page for an overview of LAMMPS
output options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
-The scalar value will be in temperature :doc:`units `. The
-vector values will be in energy :doc:`units `.
+The scalar value is in temperature :doc:`units `. The vector
+values are in energy :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/compute_viscosity_cos.rst b/doc/src/compute_viscosity_cos.rst
index 87cfec56cf..bfc0c03d79 100644
--- a/doc/src/compute_viscosity_cos.rst
+++ b/doc/src/compute_viscosity_cos.rst
@@ -86,12 +86,17 @@ where KE is the total kinetic energy of the group of atoms (sum of
:math:`N` is the number of atoms in the group, :math:`k_B` is the Boltzmann
constant, and :math:`T` is the absolute temperature.
-A kinetic energy tensor, stored as a six-element vector, is also
-calculated by this compute for use in the computation of a pressure
-tensor. The formula for the components of the tensor is the same as
-the above formula, except that :math:`v^2` is replaced by :math:`v_x v_y` for
-the :math:`xy` component, and so on. The six components of the vector are
-ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
+A symmetric tensor, stored as a six-element vector, is also calculated
+by this compute for use in the computation of a pressure tensor by the
+:doc:`compute pressue ` command. The formula for
+the components of the tensor is the same as the above expression for
+:math:`E_\mathrm{kin}`, except that the 1/2 factor is NOT included and
+the :math:`v_i^2` is replaced by :math:`v_{i,x} v_{i,y}` for the
+:math:`xy` component, and so on. Note that because it lacks the 1/2
+factor, these tensor components are twice those of the traditional
+kinetic energy tensor. The six components of the vector are ordered
+:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`,
+:math:`yz`.
The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the
@@ -126,21 +131,21 @@ Output info
"""""""""""
This compute calculates a global scalar (the temperature) and a global
-vector of length 7, which can be accessed by indices 1--7.
-The first six elements of the vector are the KE tensor,
-and the seventh is the cosine-shaped velocity amplitude :math:`V`,
-which can be used to calculate the reciprocal viscosity, as shown in the example.
-These values can be used by any command that uses global scalar or
-vector values from a compute as input.
-See the :doc:`Howto output ` page for an overview of LAMMPS output options.
+vector of length 7, which can be accessed by indices 1--7. The first
+six elements of the vector are those of the symmetric tensor discussed
+above. The seventh is the cosine-shaped velocity amplitude :math:`V`,
+which can be used to calculate the reciprocal viscosity, as shown in
+the example. These values can be used by any command that uses global
+scalar or vector values from a compute as input. See the :doc:`Howto
+output ` page for an overview of LAMMPS output options.
The scalar value calculated by this compute is "intensive". The
first six elements of vector values are "extensive",
and the seventh element of vector values is "intensive".
-The scalar value will be in temperature :doc:`units `.
-The first six elements of vector values will be in energy :doc:`units `.
-The seventh element of vector value will be in velocity :doc:`units `.
+The scalar value is in temperature :doc:`units `. The first
+six elements of vector values are in energy :doc:`units `. The
+seventh element of vector value us in velocity :doc:`units `.
Restrictions
""""""""""""
diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst
index af3ee0fd48..08c2f5fb9d 100644
--- a/doc/src/fix_bond_react.rst
+++ b/doc/src/fix_bond_react.rst
@@ -785,3 +785,7 @@ reset_mol_ids = yes, custom_charges = no, molecule = off, modify_create = *fit a
.. _Gissinger2020:
**(Gissinger2020)** Gissinger, Jensen and Wise, Macromolecules, 53, 22, 9953-9961 (2020).
+
+.. _Gissinger2024:
+
+**(Gissinger2024)** Gissinger, Jensen and Wise, Computer Physics Communications, 304, 109287 (2024).
diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt
index ae4b52efee..cfbddbe5f6 100644
--- a/doc/utils/sphinx-config/false_positives.txt
+++ b/doc/utils/sphinx-config/false_positives.txt
@@ -4130,6 +4130,7 @@ Xiaowang
Xie
xk
xlat
+xlattice
xlo
xmax
Xmax
@@ -4181,6 +4182,7 @@ yflag
yhi
yi
ylat
+ylattice
ylo
ylz
ymax
@@ -4229,6 +4231,7 @@ Ziegenhain
zincblende
zj
Zj
+zlattice
zlim
zlo
Zm
diff --git a/examples/COUPLE/plugin/liblammpsplugin.c b/examples/COUPLE/plugin/liblammpsplugin.c
index 5d27a0a64b..50ad2f5192 100644
--- a/examples/COUPLE/plugin/liblammpsplugin.c
+++ b/examples/COUPLE/plugin/liblammpsplugin.c
@@ -41,7 +41,6 @@
#include
-
liblammpsplugin_t *liblammpsplugin_load(const char *lib)
{
liblammpsplugin_t *lmp;
@@ -191,6 +190,9 @@ liblammpsplugin_t *liblammpsplugin_load(const char *lib)
ADDSYM(is_running);
ADDSYM(force_timeout);
+ // symbol not present
+ if (!lmp->config_has_exceptions) return NULL;
+
lmp->has_exceptions = lmp->config_has_exceptions();
if (lmp->has_exceptions) {
ADDSYM(has_error);
diff --git a/examples/PACKAGES/pace/plugin/paceplugin.nsis b/examples/PACKAGES/pace/plugin/paceplugin.nsis
index de8d1d8478..0ca96b95a6 100644
--- a/examples/PACKAGES/pace/plugin/paceplugin.nsis
+++ b/examples/PACKAGES/pace/plugin/paceplugin.nsis
@@ -39,7 +39,7 @@ InstallDir "$LOCALAPPDATA\${PACEPLUGIN}"
ShowInstDetails show
ShowUninstDetails show
-SetCompressor lzma
+SetCompressor zlib
!define MUI_ABORTWARNING
diff --git a/examples/PACKAGES/plumed/plugin/CMakeLists.txt b/examples/PACKAGES/plumed/plugin/CMakeLists.txt
new file mode 100644
index 0000000000..33ed34123d
--- /dev/null
+++ b/examples/PACKAGES/plumed/plugin/CMakeLists.txt
@@ -0,0 +1,59 @@
+# -*- CMake -*- build system for plugin examples.
+# The is meant to be used as a template for plugins that are
+# distributed independent from the LAMMPS package.
+##########################################
+
+cmake_minimum_required(VERSION 3.16)
+
+project(plumedplugin VERSION 1.0 LANGUAGES CXX)
+
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+include(CheckIncludeFileCXX)
+include(LAMMPSInterfacePlugin)
+include(PLUMED)
+
+##########################
+# building the plugins
+
+add_library(plumedplugin MODULE plumedplugin.cpp ${LAMMPS_SOURCE_DIR}/PLUMED/fix_plumed.cpp)
+target_link_libraries(plumedplugin PRIVATE LAMMPS::PLUMED)
+target_link_libraries(plumedplugin PRIVATE lammps)
+target_include_directories(plumedplugin PRIVATE ${LAMMPS_SOURCE_DIR}/PLUMED)
+set_target_properties(plumedplugin PROPERTIES PREFIX "" SUFFIX ".so")
+
+# MacOS seems to need this
+if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
+ set_target_properties(plumedplugin PROPERTIES LINK_FLAGS "-Wl,-undefined,dynamic_lookup")
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+# tell CMake to export all symbols to a .dll on Windows with special case for MinGW cross-compilers
+ set_target_properties(plumedplugin PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+ if(CMAKE_CROSSCOMPILING)
+ set_target_properties(plumedplugin PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols")
+ endif()
+
+ get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION)
+ find_program(MAKENSIS_PATH makensis)
+ if(MAKENSIS_PATH)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/lammps.ico
+ ${CMAKE_SOURCE_DIR}/lammps-text-logo-wide.bmp ${CMAKE_SOURCE_DIR}/plumedplugin.nsis
+ ${CMAKE_BINARY_DIR})
+ if(BUILD_MPI)
+ if(USE_MSMPI)
+ add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION}-MSMPI plumedplugin.nsis
+ DEPENDS plumedplugin plumed_copy lammps.ico lammps-text-logo-wide.bmp plumedplugin.nsis
+ BYPRODUCTS LAMMPS-PLUMED-plugin-${LAMMPS_VERSION}-MSMPI.exe)
+ else()
+ add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION}-MPI plumedplugin.nsis
+ DEPENDS plumedplugin plumed_copy lammps.ico lammps-text-logo-wide.bmp plumedplugin.nsis
+ BYPRODUCTS LAMMPS-PLUMED-plugin-${LAMMPS_VERSION}-MPI.exe)
+ endif()
+ else()
+ add_custom_target(package ${MAKENSIS_PATH} -V1 -DVERSION=${LAMMPS_VERSION} plumedplugin.nsis
+ COMMAND ${CMAKE_COMMAND} -E echo ${PWD}
+ DEPENDS plumedplugin plumed_copy lammps.ico lammps-text-logo-wide.bmp plumedplugin.nsis
+ BYPRODUCTS LAMMPS-PLUMED-plugin-${LAMMPS_VERSION}.exe)
+ endif()
+ endif()
+else()
+ set_target_properties(plumedplugin PROPERTIES LINK_FLAGS "-rdynamic")
+endif()
diff --git a/examples/PACKAGES/plumed/plugin/LAMMPSInterfacePlugin.cmake b/examples/PACKAGES/plumed/plugin/LAMMPSInterfacePlugin.cmake
new file mode 120000
index 0000000000..2ac6d20a54
--- /dev/null
+++ b/examples/PACKAGES/plumed/plugin/LAMMPSInterfacePlugin.cmake
@@ -0,0 +1 @@
+../../../../cmake/Modules/LAMMPSInterfacePlugin.cmake
\ No newline at end of file
diff --git a/examples/PACKAGES/plumed/plugin/PLUMED.cmake b/examples/PACKAGES/plumed/plugin/PLUMED.cmake
new file mode 120000
index 0000000000..b69e8b04f5
--- /dev/null
+++ b/examples/PACKAGES/plumed/plugin/PLUMED.cmake
@@ -0,0 +1 @@
+../../../../cmake/Modules/Packages/PLUMED.cmake
\ No newline at end of file
diff --git a/examples/PACKAGES/plumed/plugin/README.txt b/examples/PACKAGES/plumed/plugin/README.txt
new file mode 100644
index 0000000000..2b1971ddbc
--- /dev/null
+++ b/examples/PACKAGES/plumed/plugin/README.txt
@@ -0,0 +1,2 @@
+This folder contains a loader and support files to build the PLUMED package as plugin.
+For more information please see: https://docs.lammps.org/Developer_plugins.html
diff --git a/examples/PACKAGES/plumed/plugin/lammps-text-logo-wide.bmp b/examples/PACKAGES/plumed/plugin/lammps-text-logo-wide.bmp
new file mode 100644
index 0000000000..b9ec4c35f2
Binary files /dev/null and b/examples/PACKAGES/plumed/plugin/lammps-text-logo-wide.bmp differ
diff --git a/examples/PACKAGES/plumed/plugin/lammps.ico b/examples/PACKAGES/plumed/plugin/lammps.ico
new file mode 100644
index 0000000000..cce156bf79
Binary files /dev/null and b/examples/PACKAGES/plumed/plugin/lammps.ico differ
diff --git a/examples/PACKAGES/plumed/plugin/plumedplugin.cpp b/examples/PACKAGES/plumed/plugin/plumedplugin.cpp
new file mode 100644
index 0000000000..48edc48e6e
--- /dev/null
+++ b/examples/PACKAGES/plumed/plugin/plumedplugin.cpp
@@ -0,0 +1,28 @@
+
+#include "lammpsplugin.h"
+#include "version.h"
+
+#include "fix_plumed.h"
+
+using namespace LAMMPS_NS;
+
+static Fix *fix_plumed_creator(LAMMPS *lmp, int argc, char **argv)
+{
+ return new FixPlumed(lmp, argc, argv);
+}
+
+extern "C" void lammpsplugin_init(void *lmp, void *handle, void *regfunc)
+{
+ lammpsplugin_t plugin;
+ lammpsplugin_regfunc register_plugin = (lammpsplugin_regfunc) regfunc;
+
+ // register plumed fix style
+ plugin.version = LAMMPS_VERSION;
+ plugin.style = "fix";
+ plugin.name = "plumed";
+ plugin.info = "Plumed2 plugin fix style v1.0";
+ plugin.author = "Axel Kohlmeyer (akohlmey@gmail.com)";
+ plugin.creator.v1 = (lammpsplugin_factory1 *) &fix_plumed_creator;
+ plugin.handle = handle;
+ (*register_plugin)(&plugin, lmp);
+}
diff --git a/examples/PACKAGES/plumed/plugin/plumedplugin.nsis b/examples/PACKAGES/plumed/plugin/plumedplugin.nsis
new file mode 100644
index 0000000000..1de9800d26
--- /dev/null
+++ b/examples/PACKAGES/plumed/plugin/plumedplugin.nsis
@@ -0,0 +1,172 @@
+#!Nsis Installer Command Script
+#
+# The following external defines are recognized:
+# ${VERSION} = YYYYMMDD
+
+!include "MUI2.nsh"
+!include "FileFunc.nsh"
+
+!define MUI_ICON "lammps.ico"
+!define MUI_UNICON "lammps.ico"
+!define MUI_HEADERIMAGE
+!define MUI_HEADERIMAGE_BITMAP "lammps-text-logo-wide.bmp"
+!define MUI_HEADERIMAGE_RIGHT
+
+Unicode true
+XPStyle on
+
+!include "LogicLib.nsh"
+!addplugindir "envvar/Plugins/x86-unicode"
+!include "x64.nsh"
+
+RequestExecutionLevel user
+
+!macro VerifyUserIsAdmin
+UserInfo::GetAccountType
+pop $0
+${If} $0 != "admin"
+ messageBox mb_iconstop "Administrator rights required!"
+ setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
+ quit
+${EndIf}
+!macroend
+
+!define PLUMEDPLUGIN "LAMMPS PLUMED Plugin ${VERSION}"
+OutFile "LAMMPS-PLUMED-plugin-${VERSION}.exe"
+
+Name "${PLUMEDPLUGIN}"
+InstallDir "$LOCALAPPDATA\${PLUMEDPLUGIN}"
+
+ShowInstDetails show
+ShowUninstDetails show
+SetCompressor zlib
+
+!define MUI_ABORTWARNING
+
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+!insertmacro MUI_LANGUAGE "English"
+
+function .onInit
+ # Determine if LAMMPS was already installed and check whether it was in 32-bit
+ # or 64-bit. Then look up path to uninstaller and offer to uninstall or quit
+ SetRegView 32
+ ReadRegDWORD $0 HKCU "Software\LAMMPS-PLUMED" "Bits"
+ SetRegView LastUsed
+ ${If} $0 == "32"
+ SetRegView 32
+ ${ElseIf} $0 == "64"
+ SetRegView 64
+ ${Else}
+ SetRegView 64
+ ${EndIf}
+ ClearErrors
+ ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" "UninstallString"
+ SetRegView LastUsed
+ ${If} ${Errors}
+ DetailPrint "LAMMPS PLUMED plugin not (yet) installed"
+ ${Else}
+ MessageBox MB_YESNO "LAMMPS PLUMED plugin ($0 bit) is already installed. Uninstall existing version?" /SD IDYES IDNO Quit
+ Pop $R1
+ StrCmp $R1 2 Quit +1
+ Exec $R0
+ Quit:
+ Quit
+ ${EndIf}
+ setShellVarContext all
+functionEnd
+
+Section "${PLUMEDPLUGIN}" SecPlumedplugin
+ SectionIn RO
+ # Write LAMMPS installation bitness marker. Always use 32-bit registry view
+ SetRegView 32
+ IntFmt $0 "0x%08X" 64
+ WriteRegDWORD HKCU "Software\LAMMPS-PLUMED" "Bits" $0
+
+ # Switch to "native" registry view
+ SetRegView 64
+ SetShellVarContext current
+
+ SetOutPath "$INSTDIR"
+ CreateDirectory "$INSTDIR\patches"
+ CreateDirectory "$INSTDIR\bin"
+ File lammps.ico
+ File plumedplugin.so
+
+ SetOutPath "$INSTDIR\bin"
+ File plumed.exe
+
+ # Register Application and its uninstaller
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "DisplayName" "${PLUMEDPLUGIN}"
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "Publisher" "The LAMMPS and PLUMED Developers"
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "URLInfoAbout" "lammps.org"
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "DisplayIcon" "$INSTDIR\lammps.ico"
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "DisplayVersion" "${VERSION}"
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "InstallLocation" "$INSTDIR"
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
+ WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
+
+ ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
+ IntFmt $0 "0x%08X" $0
+ WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED" \
+ "EstimatedSize" "$0"
+
+ # update path variables
+ EnVar::SetHKCU
+ # add plumed executable path
+ EnVar::AddValue "PATH" "$INSTDIR\bin"
+ # add to LAMMPS plugin search path
+ EnVar::AddValue "LAMMPS_PLUGIN_PATH" "$INSTDIR"
+ # add plumed2 patch files
+ EnVar::AddValue "PLUMED_ROOT" "$INSTDIR"
+
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+SectionEnd
+
+function un.onInit
+ SetShellVarContext current
+functionEnd
+
+Section "Uninstall"
+ # remove LAMMPS bitness/installation indicator always in 32-bit registry view
+ SetRegView 32
+ DeleteRegKey HKCU "Software\LAMMPS-PLUMED"
+
+ # unregister extension, and uninstall info
+ SetRegView 64
+ SetShellVarContext current
+ # unregister installation
+ DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-PLUMED"
+
+ # update path variables
+ EnVar::SetHKCU
+ # remove plumed executable path
+ EnVar::DeleteValue "PATH" "$INSTDIR\bin"
+ # remove entry from LAMMPS plugin search path
+ EnVar::DeleteValue "LAMMPS_PLUGIN_PATH" "$INSTDIR"
+ # remove plumed patch environment
+ EnVar::Delete "PLUMED_ROOT"
+
+ RMDir /r /REBOOTOK "$INSTDIR\patches"
+ RMDir /r /REBOOTOK "$INSTDIR\bin"
+ Delete /REBOOTOK "$INSTDIR\plumedplugin.so"
+ Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
+ Delete /REBOOTOK "$INSTDIR\lammps.ico"
+ RMDir /REBOOTOK "$INSTDIR"
+SectionEnd
+
+# Local Variables:
+# mode: sh
+# End:
diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized
index 60d33aa351..4998ea7d9d 100644
--- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized
+++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized
@@ -44,6 +44,7 @@ thermo 50
fix myrxns all bond/react stabilization yes statted_grp .03 &
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
+ react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes
fix 1 statted_grp_REACT nvt temp 300 300 100
diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability
index 770f4fc3b1..4b268cf0d9 100644
--- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability
+++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability
@@ -47,7 +47,7 @@ thermo 50
fix myrxns all bond/react stabilization yes statted_grp .03 &
react rxn1 all 1 0.0 5.0 mol1 mol2 rxn1_stp1_map prob v_prob1 1234 &
- react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map prob v_prob2 1234
+ react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map prob v_prob2 1234 rescale_charges yes
fix 1 statted_grp_REACT nvt temp 300 300 100
diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized
index 4ade3f8b99..3ecf552174 100644
--- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized
+++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized
@@ -44,7 +44,7 @@ thermo 50
fix myrxns all bond/react stabilization no &
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
- react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
+ react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map rescale_charges yes
fix 1 all nve/limit .03
diff --git a/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp1_reacted.molecule_template b/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp1_reacted.molecule_template
index 40f3aa8276..594775b39c 100644
--- a/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp1_reacted.molecule_template
+++ b/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp1_reacted.molecule_template
@@ -48,27 +48,6 @@ Types
17 hc
18 hc
-Charges
-
- 1 -0.300000
- 2 0.000000
- 3 0.000000
- 4 0.000000
- 5 0.000000
- 6 0.000000
- 7 0.000000
- 8 0.000000
- 9 0.000000
- 10 0.300000
- 11 0.000000
- 12 0.000000
- 13 0.000000
- 14 0.000000
- 15 0.000000
- 16 0.000000
- 17 0.000000
- 18 0.000000
-
Molecules
1 1
diff --git a/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp2_reacted.molecule_template b/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp2_reacted.molecule_template
index 2e91261468..7e1a350d16 100644
--- a/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp2_reacted.molecule_template
+++ b/examples/PACKAGES/reaction/tiny_nylon/rxn1_stp2_reacted.molecule_template
@@ -44,21 +44,21 @@ Types
Charges
- 1 -0.300000
- 2 0.000000
- 3 0.000000
- 4 0.410000
- 5 0.000000
- 6 0.000000
- 7 0.000000
- 8 0.000000
- 9 0.000000
- 10 0.300000
- 11 0.000000
- 12 -0.820000
- 13 0.000000
- 14 0.000000
- 15 0.410000
+ 1 -0.60533
+ 2 -0.01149
+ 3 -0.76306
+ 4 0.38
+ 5 0.29346
+ 6 0.18360
+ 7 0.15396
+ 8 -0.72636
+ 9 -0.27437
+ 10 0.40603
+ 11 -0.65530
+ 12 -0.76
+ 13 0.21423
+ 14 0.18949
+ 15 0.38
Molecules
diff --git a/examples/PACKAGES/reaction/tiny_nylon/tiny_nylon.data b/examples/PACKAGES/reaction/tiny_nylon/tiny_nylon.data
index ee8e397956..73c776c430 100644
--- a/examples/PACKAGES/reaction/tiny_nylon/tiny_nylon.data
+++ b/examples/PACKAGES/reaction/tiny_nylon/tiny_nylon.data
@@ -1,15 +1,15 @@
-this is LAMMPS data file containing two nylon monomers
+LAMMPS data file via write_data, version 27 Jun 2024, timestep = 0, units = real
44 atoms
11 atom types
42 bonds
-15 bond types
+13 bond types
74 angles
-29 angle types
+26 angle types
100 dihedrals
-36 dihedral types
-44 impropers
-13 improper types
+33 dihedral types
+16 impropers
+5 improper types
-25 25 xlo xhi
-25 25 ylo yhi
@@ -17,15 +17,15 @@ this is LAMMPS data file containing two nylon monomers
Atom Type Labels
-1 c2
-2 c_1
-3 o
-4 hc
-5 ho
-6 o_1
-7 na
-8 hn
-9 n
+1 c2
+2 c_1
+3 o
+4 hc
+5 ho
+6 o_1
+7 na
+8 hn
+9 n
10 hw
11 o*
@@ -37,102 +37,86 @@ Bond Type Labels
4 c2-c_1
5 c_1-o_1
6 o-ho
-7 c2-c2-repeat
-8 c2-hc-repeat
-9 na-c2
-10 na-hn
-11 n-c2
-12 n-hn
-13 n-c_1
-14 c2-na
-15 hw-o*
+7 na-c2
+8 na-hn
+9 n-c2
+10 n-hn
+11 n-c_1
+12 c2-na
+13 hw-o*
Angle Type Labels
-1 hc-c2-hc
-2 c2-c2-hc
-3 c2-c2-c2
-4 c2-c_1-o_1
-5 o-c_1-o_1
-6 c2-c_1-o
-7 c_1-o-ho
-8 c2-c2-c_1
-9 c_1-c2-hc
-10 c2-c2-hc-repeat
-11 c2-c2-c2-repeat
-12 hc-c2-hc-repeat
-13 c2-c2-na
-14 na-c2-hc
-15 c2-na-hn
-16 hn-na-hn
-17 c2-n-hn
-18 c2-n-c_1
-19 hn-n-hn
-20 hn-n-c_1
-21 n-c2-c2
-22 n-c2-hc
-23 hc-c2-c_1
-24 n-c_1-c2
-25 o_1-c_1-o
-26 n-c_1-o_1
-27 n-c_1-o
-28 na-c2-c2
-29 hw-o*-hw
+1 hc-c2-hc
+2 c2-c2-hc
+3 c2-c2-c2
+4 c2-c_1-o_1
+5 o-c_1-o_1
+6 c2-c_1-o
+7 c_1-o-ho
+8 c2-c2-c_1
+9 c_1-c2-hc
+10 c2-c2-na
+11 na-c2-hc
+12 c2-na-hn
+13 hn-na-hn
+14 c2-n-hn
+15 c2-n-c_1
+16 hn-n-hn
+17 hn-n-c_1
+18 n-c2-c2
+19 n-c2-hc
+20 hc-c2-c_1
+21 n-c_1-c2
+22 o_1-c_1-o
+23 n-c_1-o_1
+24 n-c_1-o
+25 na-c2-c2
+26 hw-o*-hw
Dihedral Type Labels
-1 c_1-c2-c2-hc
-2 hc-c2-c2-hc
-3 c2-c2-c2-c_1
-4 c2-c2-c2-hc
-5 c2-c2-c2-c2
-6 c2-c_1-o-ho
-7 o_1-c_1-o-ho
-8 c2-c2-c_1-o
-9 hc-c2-c_1-o
+1 c_1-c2-c2-hc
+2 hc-c2-c2-hc
+3 c2-c2-c2-c_1
+4 c2-c2-c2-hc
+5 c2-c2-c2-c2
+6 c2-c_1-o-ho
+7 o_1-c_1-o-ho
+8 c2-c2-c_1-o
+9 hc-c2-c_1-o
10 c2-c2-c_1-o_1
11 hc-c2-c_1-o_1
12 na-c2-c2-hc
-13 hc-c2-c2-hc-repeat
-14 c2-c2-c2-na
-15 c2-c2-c2-hc-repeat
-16 c2-c2-c2-c2-repeat
-17 c2-c2-na-hn
-18 hn-na-c2-hc
-19 hn-n-c2-c2
-20 hn-n-c2-hc
-21 c_1-n-c2-c2
-22 c_1-n-c2-hc
-23 c2-n-c_1-c2
-24 c2-n-c_1-o_1
-25 c2-n-c_1-o
-26 hn-n-c_1-c2
-27 hn-n-c_1-o_1
-28 hn-n-c_1-o
-29 n-c2-c2-c2
-30 n-c2-c2-hc
-31 c2-c2-c_1-n
-32 hc-c2-c_1-n
-33 n-c_1-o-ho
-34 hn-na-c2-c2
-35 hc-c2-na-hn
-36 na-c2-c2-c2
+13 c2-c2-c2-na
+14 c2-c2-na-hn
+15 hn-na-c2-hc
+16 hn-n-c2-c2
+17 hn-n-c2-hc
+18 c_1-n-c2-c2
+19 c_1-n-c2-hc
+20 c2-n-c_1-c2
+21 c2-n-c_1-o_1
+22 c2-n-c_1-o
+23 hn-n-c_1-c2
+24 hn-n-c_1-o_1
+25 hn-n-c_1-o
+26 n-c2-c2-c2
+27 n-c2-c2-hc
+28 c2-c2-c_1-n
+29 hc-c2-c_1-n
+30 n-c_1-o-ho
+31 hn-na-c2-c2
+32 hc-c2-na-hn
+33 na-c2-c2-c2
Improper Type Labels
-1 c2-c_1-o-o_1
-2 c2-na-hn-hn
-3 c2-c_1-o_1-o
-4 c2-n-hn-c_1
-5 zero5
-6 zero6
-7 zero7
-8 zero8
-9 zero9
-10 zero10
-11 zero11
-12 zero12
-13 n-c_1-c2-o_1
+1 c2-c_1-o-o_1
+2 c2-na-hn-hn
+3 c2-c_1-o_1-o
+4 c2-n-hn-c_1
+5 n-c_1-c2-o_1
Masses
@@ -148,7 +132,7 @@ Masses
10 1.00797
11 15.9994
-Pair Coeffs # lj/class2/coul/cut
+Pair Coeffs # lj/class2/coul/long
1 0.054 4.01
2 0.12 3.81
@@ -170,15 +154,13 @@ Bond Coeffs # class2
4 1.5202 253.707 -423.037 396.9
5 1.202 851.14 -1918.49 2160.77
6 0.965 532.506 -1282.9 2004.77
-7 1.53 299.67 -501.77 679.81
-8 1.101 345 -691.89 844.6
-9 1.457 365.805 -699.637 998.484
-10 1.006 466.74 -1073.6 1251.11
-11 1.452 327.166 -547.899 526.5
-12 1.01 462.75 -1053.63 1545.76
-13 1.416 359.159 -558.473 1146.38
-14 1.457 365.805 -699.637 998.484
-15 0.97 563.28 -1428.22 1902.12
+7 1.457 365.805 -699.637 998.484
+8 1.006 466.74 -1073.6 1251.11
+9 1.452 327.166 -547.899 526.5
+10 1.01 462.75 -1053.63 1545.76
+11 1.416 359.159 -558.473 1146.38
+12 1.457 365.805 -699.637 998.484
+13 0.97 563.28 -1428.22 1902.12
Angle Coeffs # class2
@@ -191,26 +173,23 @@ Angle Coeffs # class2
7 111.254 53.5303 -11.8454 -11.5405
8 108.53 51.9747 -9.4851 -10.9985
9 107.734 40.6099 -28.8121 0
-10 110.77 41.453 -10.604 5.129
-11 112.67 39.516 -7.443 -9.5583
-12 107.66 39.641 -12.921 -2.4318
-13 111.91 60.7147 -13.3366 -13.0785
-14 110.62 51.3137 -6.7198 -2.6003
-15 110.954 50.8652 -4.4522 -10.0298
-16 107.067 45.252 -7.5558 -9.512
-17 113.868 45.9271 -20.0824 0
-18 111.037 31.8958 -6.6942 -6.837
-19 116.94 37.5749 -8.6676 0
-20 117.961 37.4964 -8.1837 0
-21 114.302 42.6589 -10.5464 -9.3243
-22 108.937 57.401 2.9374 0
-23 107.734 40.6099 -28.8121 0
-24 116.926 39.4193 -10.9945 -8.7733
-25 118.986 98.6813 -22.2485 10.3673
-26 125.542 92.572 -34.48 -11.1871
-27 125.542 92.572 -34.48 -11.1871
-28 111.91 60.7147 -13.3366 -13.0785
-29 103.7 49.84 -11.6 -8
+10 111.91 60.7147 -13.3366 -13.0785
+11 110.62 51.3137 -6.7198 -2.6003
+12 110.954 50.8652 -4.4522 -10.0298
+13 107.067 45.252 -7.5558 -9.512
+14 113.868 45.9271 -20.0824 0
+15 111.037 31.8958 -6.6942 -6.837
+16 116.94 37.5749 -8.6676 0
+17 117.961 37.4964 -8.1837 0
+18 114.302 42.6589 -10.5464 -9.3243
+19 108.937 57.401 2.9374 0
+20 107.734 40.6099 -28.8121 0
+21 116.926 39.4193 -10.9945 -8.7733
+22 118.986 98.6813 -22.2485 10.3673
+23 125.542 92.572 -34.48 -11.1871
+24 125.542 92.572 -34.48 -11.1871
+25 111.91 60.7147 -13.3366 -13.0785
+26 103.7 49.84 -11.6 -8
BondBond Coeffs
@@ -223,26 +202,23 @@ BondBond Coeffs
7 0 1.3649 0.965
8 5.4199 1.53 1.5202
9 0.7115 1.5202 1.101
-10 3.3872 1.53 1.101
-11 0 1.53 1.53
-12 5.3316 1.101 1.101
-13 4.6217 1.53 1.457
-14 12.426 1.457 1.101
-15 -6.4168 1.457 1.006
-16 -1.8749 1.006 1.006
-17 -3.471 1.452 1.01
-18 12.1186 1.452 1.416
-19 -0.5655 1.01 1.01
-20 -4.3126 1.01 1.416
-21 3.5446 1.452 1.53
-22 15.2994 1.452 1.101
-23 0.7115 1.101 1.5202
-24 0 1.416 1.5202
-25 0 1.202 1.3649
-26 138.495 1.416 1.202
-27 0 1.416 1.3649
-28 4.6217 1.457 1.53
-29 -9.5 0.97 0.97
+10 4.6217 1.53 1.457
+11 12.426 1.457 1.101
+12 -6.4168 1.457 1.006
+13 -1.8749 1.006 1.006
+14 -3.471 1.452 1.01
+15 12.1186 1.452 1.416
+16 -0.5655 1.01 1.01
+17 -4.3126 1.01 1.416
+18 3.5446 1.452 1.53
+19 15.2994 1.452 1.101
+20 0.7115 1.101 1.5202
+21 0 1.416 1.5202
+22 0 1.202 1.3649
+23 138.495 1.416 1.202
+24 0 1.416 1.3649
+25 4.6217 1.457 1.53
+26 -9.5 0.97 0.97
BondAngle Coeffs
@@ -255,26 +231,23 @@ BondAngle Coeffs
7 0 0 1.3649 0.965
8 18.1678 15.8758 1.53 1.5202
9 12.4632 9.1765 1.5202 1.101
-10 20.754 11.421 1.53 1.101
-11 8.016 8.016 1.53 1.53
-12 18.103 18.103 1.101 1.101
-13 6.0876 16.5702 1.53 1.457
-14 42.4332 13.4582 1.457 1.101
-15 31.8096 20.5799 1.457 1.006
-16 28.0322 28.0322 1.006 1.006
-17 11.8828 5.9339 1.452 1.01
-18 3.7812 14.8633 1.452 1.416
-19 19.8125 19.8125 1.01 1.01
-20 10.8422 29.5743 1.01 1.416
-21 4.6031 -5.479 1.452 1.53
-22 34.8907 10.6917 1.452 1.101
-23 9.1765 12.4632 1.101 1.5202
-24 0 0 1.416 1.5202
-25 0 0 1.202 1.3649
-26 62.7124 52.4045 1.416 1.202
-27 0 0 1.416 1.3649
-28 16.5702 6.0876 1.457 1.53
-29 22.35 22.35 0.97 0.97
+10 6.0876 16.5702 1.53 1.457
+11 42.4332 13.4582 1.457 1.101
+12 31.8096 20.5799 1.457 1.006
+13 28.0322 28.0322 1.006 1.006
+14 11.8828 5.9339 1.452 1.01
+15 3.7812 14.8633 1.452 1.416
+16 19.8125 19.8125 1.01 1.01
+17 10.8422 29.5743 1.01 1.416
+18 4.6031 -5.479 1.452 1.53
+19 34.8907 10.6917 1.452 1.101
+20 9.1765 12.4632 1.101 1.5202
+21 0 0 1.416 1.5202
+22 0 0 1.202 1.3649
+23 62.7124 52.4045 1.416 1.202
+24 0 0 1.416 1.3649
+25 16.5702 6.0876 1.457 1.53
+26 22.35 22.35 0.97 0.97
Dihedral Coeffs # class2
@@ -290,30 +263,27 @@ Dihedral Coeffs # class2
10 0.0442 0 0.0292 0 0.0562 0
11 -0.1804 0 0.0012 0 0.0371 0
12 -0.2428 0 0.4065 0 -0.3079 0
-13 -0.1432 0 0.0617 0 -0.1083 0
-14 0.1764 0 0.1766 0 -0.5206 0
-15 0 0 0.0316 0 -0.1681 0
-16 0 0 0.0514 0 -0.143 0
-17 -1.1506 0 -0.6344 0 -0.1845 0
-18 -0.5187 0 -0.4837 0 -0.1692 0
-19 -0.0483 0 -0.0077 0 -0.0014 0
-20 -0.0148 0 -0.0791 0 -0.0148 0
-21 0.0143 0 -0.0132 0 0.0091 0
-22 0.0219 0 -0.026 0 0.0714 0
-23 -0.7532 0 2.7392 0 0.0907 0
-24 0.8297 0 3.7234 0 -0.0495 0
+13 0.1764 0 0.1766 0 -0.5206 0
+14 -1.1506 0 -0.6344 0 -0.1845 0
+15 -0.5187 0 -0.4837 0 -0.1692 0
+16 -0.0483 0 -0.0077 0 -0.0014 0
+17 -0.0148 0 -0.0791 0 -0.0148 0
+18 0.0143 0 -0.0132 0 0.0091 0
+19 0.0219 0 -0.026 0 0.0714 0
+20 -0.7532 0 2.7392 0 0.0907 0
+21 0.8297 0 3.7234 0 -0.0495 0
+22 0 0 0 0 0 0
+23 0 0 0 0 0 0
+24 -1.6938 0 2.7386 0 -0.336 0
25 0 0 0 0 0 0
-26 0 0 0 0 0 0
-27 -1.6938 0 2.7386 0 -0.336 0
-28 0 0 0 0 0 0
-29 0.0972 0 0.0722 0 -0.2581 0
-30 -0.0228 0 0.028 0 -0.1863 0
-31 0.1693 0 -0.009 0 -0.0687 0
-32 0.1693 0 -0.009 0 -0.0687 0
-33 0 0 0 0 0 0
-34 -1.1506 0 -0.6344 0 -0.1845 0
-35 -0.5187 0 -0.4837 0 -0.1692 0
-36 0.1764 0 0.1766 0 -0.5206 0
+26 0.0972 0 0.0722 0 -0.2581 0
+27 -0.0228 0 0.028 0 -0.1863 0
+28 0.1693 0 -0.009 0 -0.0687 0
+29 0.1693 0 -0.009 0 -0.0687 0
+30 0 0 0 0 0 0
+31 -1.1506 0 -0.6344 0 -0.1845 0
+32 -0.5187 0 -0.4837 0 -0.1692 0
+33 0.1764 0 0.1766 0 -0.5206 0
AngleAngleTorsion Coeffs
@@ -329,30 +299,27 @@ AngleAngleTorsion Coeffs
10 -8.019 108.53 123.145
11 -15.3496 107.734 123.145
12 -15.7572 111.91 110.77
-13 -12.564 110.77 110.77
-14 -27.3953 112.67 111.91
-15 -16.164 112.67 110.77
-16 -22.045 112.67 112.67
-17 -7.5499 111.91 110.954
-18 -10.4258 110.62 110.954
-19 -4.6337 113.868 114.302
-20 -6.659 113.868 108.937
-21 -7.4314 111.037 114.302
-22 -8.1335 111.037 108.937
-23 -6.5335 111.037 116.926
-24 -15.5547 111.037 125.542
-25 0 111.037 0
-26 -1.3234 117.961 116.926
-27 -7.3186 117.961 125.542
-28 0 117.961 0
-29 -1.0631 114.302 112.67
-30 -12.7974 114.302 110.77
-31 -5.4514 108.53 116.926
-32 -12.2417 107.734 116.926
-33 0 0 111.254
-34 -7.5499 110.954 111.91
-35 -10.4258 110.954 110.62
-36 -27.3953 111.91 112.67
+13 -27.3953 112.67 111.91
+14 -7.5499 111.91 110.954
+15 -10.4258 110.62 110.954
+16 -4.6337 113.868 114.302
+17 -6.659 113.868 108.937
+18 -7.4314 111.037 114.302
+19 -8.1335 111.037 108.937
+20 -6.5335 111.037 116.926
+21 -15.5547 111.037 125.542
+22 0 111.037 0
+23 -1.3234 117.961 116.926
+24 -7.3186 117.961 125.542
+25 0 117.961 0
+26 -1.0631 114.302 112.67
+27 -12.7974 114.302 110.77
+28 -5.4514 108.53 116.926
+29 -12.2417 107.734 116.926
+30 0 0 111.254
+31 -7.5499 110.954 111.91
+32 -10.4258 110.954 110.62
+33 -27.3953 111.91 112.67
EndBondTorsion Coeffs
@@ -368,30 +335,27 @@ EndBondTorsion Coeffs
10 0.2654 0.0503 0.1046 -0.281 0.0816 -0.1522 1.53 1.202
11 1.2143 0.2831 0.3916 -0.2298 0.0354 0.3853 1.101 1.202
12 0.1022 0.209 0.6433 0.196 0.7056 0.112 1.457 1.101
-13 0.213 0.312 0.0777 0.213 0.312 0.0777 1.101 1.101
-14 0.1032 0.5896 -0.4836 0.0579 -0.0043 -0.1906 1.53 1.457
-15 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.53 1.101
-16 -0.0732 0 0 -0.0732 0 0 1.53 1.53
-17 -0.9466 0.9356 -0.5542 0.057 0.0625 0.4112 1.53 1.006
-18 -1.1685 0.9266 -0.0993 0.085 0.3061 0.2104 1.101 1.006
-19 -0.0992 -0.0727 -0.4139 0.132 0.0015 0.1324 1.01 1.53
-20 -0.4894 0.1644 0.3105 -0.8983 0.2826 0.0881 1.01 1.101
-21 -0.1245 -0.9369 0.7781 -0.2033 0.0035 0.056 1.416 1.53
-22 0.2292 1.1732 -0.058 -0.3667 0.8197 0.1335 1.416 1.101
-23 0.2299 -0.1141 -0.1424 0.0933 -0.4631 0.2883 1.452 1.5202
-24 0.1598 0.7253 -0.1007 0.1226 -2.1326 0.5581 1.452 1.202
-25 0 0 0 0 0 0 1.452 1.3649
-26 0.6413 0.1676 0.144 -0.6979 0.5619 0.4212 1.01 1.5202
-27 0.1214 0.1936 0.0816 -0.7604 -2.6431 1.2467 1.01 1.202
-28 0 0 0 0 0 0 1.01 1.3649
-29 -0.0797 -0.0406 0.0255 0.0742 0.0105 0.0518 1.452 1.53
-30 0.3022 0.2513 0.4641 -0.0601 -0.3763 -0.1876 1.452 1.101
-31 -0.2631 -0.0076 -0.1145 -0.2751 -0.3058 -0.1767 1.53 1.416
-32 -0.0268 0.7836 0.0035 0.3552 -0.2685 0.5834 1.101 1.416
-33 0 0 0 0 0 0 1.416 0.965
-34 0.057 0.0625 0.4112 -0.9466 0.9356 -0.5542 1.006 1.53
-35 0.085 0.3061 0.2104 -1.1685 0.9266 -0.0993 1.006 1.101
-36 0.0579 -0.0043 -0.1906 0.1032 0.5896 -0.4836 1.457 1.53
+13 0.1032 0.5896 -0.4836 0.0579 -0.0043 -0.1906 1.53 1.457
+14 -0.9466 0.9356 -0.5542 0.057 0.0625 0.4112 1.53 1.006
+15 -1.1685 0.9266 -0.0993 0.085 0.3061 0.2104 1.101 1.006
+16 -0.0992 -0.0727 -0.4139 0.132 0.0015 0.1324 1.01 1.53
+17 -0.4894 0.1644 0.3105 -0.8983 0.2826 0.0881 1.01 1.101
+18 -0.1245 -0.9369 0.7781 -0.2033 0.0035 0.056 1.416 1.53
+19 0.2292 1.1732 -0.058 -0.3667 0.8197 0.1335 1.416 1.101
+20 0.2299 -0.1141 -0.1424 0.0933 -0.4631 0.2883 1.452 1.5202
+21 0.1598 0.7253 -0.1007 0.1226 -2.1326 0.5581 1.452 1.202
+22 0 0 0 0 0 0 1.452 1.3649
+23 0.6413 0.1676 0.144 -0.6979 0.5619 0.4212 1.01 1.5202
+24 0.1214 0.1936 0.0816 -0.7604 -2.6431 1.2467 1.01 1.202
+25 0 0 0 0 0 0 1.01 1.3649
+26 -0.0797 -0.0406 0.0255 0.0742 0.0105 0.0518 1.452 1.53
+27 0.3022 0.2513 0.4641 -0.0601 -0.3763 -0.1876 1.452 1.101
+28 -0.2631 -0.0076 -0.1145 -0.2751 -0.3058 -0.1767 1.53 1.416
+29 -0.0268 0.7836 0.0035 0.3552 -0.2685 0.5834 1.101 1.416
+30 0 0 0 0 0 0 1.416 0.965
+31 0.057 0.0625 0.4112 -0.9466 0.9356 -0.5542 1.006 1.53
+32 0.085 0.3061 0.2104 -1.1685 0.9266 -0.0993 1.006 1.101
+33 0.0579 -0.0043 -0.1906 0.1032 0.5896 -0.4836 1.457 1.53
MiddleBondTorsion Coeffs
@@ -407,30 +371,27 @@ MiddleBondTorsion Coeffs
10 0.3388 -0.1096 0.1219 1.5202
11 0.2359 0.9139 0.9594 1.5202
12 -10.4959 -0.7647 -0.0545 1.53
-13 -14.261 -0.5322 -0.4864 1.53
-14 -15.4174 -7.3055 -1.0749 1.53
-15 -14.879 -3.6581 -0.3138 1.53
-16 -17.787 -7.1877 0 1.53
-17 -2.2208 0.5479 -0.3527 1.457
-18 -3.4611 1.6996 -0.6007 1.457
-19 -3.5406 -3.3866 0.0352 1.452
-20 -1.1752 2.8058 0.8083 1.452
-21 -3.9501 -0.4002 -0.6798 1.452
-22 -0.6899 -2.2646 1.1579 1.452
+13 -15.4174 -7.3055 -1.0749 1.53
+14 -2.2208 0.5479 -0.3527 1.457
+15 -3.4611 1.6996 -0.6007 1.457
+16 -3.5406 -3.3866 0.0352 1.452
+17 -1.1752 2.8058 0.8083 1.452
+18 -3.9501 -0.4002 -0.6798 1.452
+19 -0.6899 -2.2646 1.1579 1.452
+20 0 0 0 1.416
+21 -8.8301 14.3079 -1.7716 1.416
+22 0 0 0 1.416
23 0 0 0 1.416
-24 -8.8301 14.3079 -1.7716 1.416
+24 -0.9084 6.1447 -0.4852 1.416
25 0 0 0 1.416
-26 0 0 0 1.416
-27 -0.9084 6.1447 -0.4852 1.416
-28 0 0 0 1.416
-29 -4.2324 -3.3023 -1.3244 1.53
-30 -4.1028 -0.5941 -0.047 1.53
-31 0 0 0 1.5202
-32 0 0 0 1.5202
-33 0 0 0 1.3649
-34 -2.2208 0.5479 -0.3527 1.457
-35 -3.4611 1.6996 -0.6007 1.457
-36 -15.4174 -7.3055 -1.0749 1.53
+26 -4.2324 -3.3023 -1.3244 1.53
+27 -4.1028 -0.5941 -0.047 1.53
+28 0 0 0 1.5202
+29 0 0 0 1.5202
+30 0 0 0 1.3649
+31 -2.2208 0.5479 -0.3527 1.457
+32 -3.4611 1.6996 -0.6007 1.457
+33 -15.4174 -7.3055 -1.0749 1.53
BondBond13 Coeffs
@@ -446,30 +407,27 @@ BondBond13 Coeffs
10 0 1.53 1.202
11 0 1.101 1.202
12 0 1.457 1.101
-13 0 1.101 1.101
-14 0 1.53 1.457
-15 0 1.53 1.101
-16 0 1.53 1.53
-17 0 1.53 1.006
-18 0 1.101 1.006
-19 0 1.01 1.53
-20 0 1.01 1.101
-21 0 1.416 1.53
-22 0 1.416 1.101
-23 0 1.452 1.5202
-24 0 1.452 1.202
-25 0 1.452 1.3649
-26 0 1.01 1.5202
-27 0 1.01 1.202
-28 0 1.01 1.3649
-29 0 1.452 1.53
-30 0 1.452 1.101
-31 0 1.53 1.416
-32 0 1.101 1.416
-33 0 1.416 0.965
-34 0 1.006 1.53
-35 0 1.006 1.101
-36 0 1.457 1.53
+13 0 1.53 1.457
+14 0 1.53 1.006
+15 0 1.101 1.006
+16 0 1.01 1.53
+17 0 1.01 1.101
+18 0 1.416 1.53
+19 0 1.416 1.101
+20 0 1.452 1.5202
+21 0 1.452 1.202
+22 0 1.452 1.3649
+23 0 1.01 1.5202
+24 0 1.01 1.202
+25 0 1.01 1.3649
+26 0 1.452 1.53
+27 0 1.452 1.101
+28 0 1.53 1.416
+29 0 1.101 1.416
+30 0 1.416 0.965
+31 0 1.006 1.53
+32 0 1.006 1.101
+33 0 1.457 1.53
AngleTorsion Coeffs
@@ -485,30 +443,27 @@ AngleTorsion Coeffs
10 0.0885 -1.3703 -0.5452 0.675 0.5965 0.6725 108.53 123.145
11 9.1299 -0.4847 0.3582 -1.4946 0.7308 -0.2083 107.734 123.145
12 -1.1075 0.282 0.8318 0.5111 1.6328 -1.0155 111.91 110.77
-13 -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.77 110.77
-14 -1.9225 -1.345 0.221 2.0125 0.944 -2.7612 112.67 111.91
-15 -0.2454 0 -0.1136 0.3113 0.4516 -0.1988 112.67 110.77
-16 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.67 112.67
-17 -3.343 4.4558 -0.0346 0.2873 -0.8072 -0.096 111.91 110.954
-18 -3.9582 2.0063 0.3213 -0.4294 -0.4442 -0.6141 110.62 110.954
-19 -0.5807 0.2041 -0.1384 -2.8967 2.7084 -0.0375 113.868 114.302
-20 -0.3868 0.2041 0.0445 -3.7022 1.3876 0.2393 113.868 108.937
-21 -1.523 1.1296 0.7167 -0.7555 0.0564 1.2177 111.037 114.302
-22 0.0372 -0.3418 -0.0775 -1.5157 2.0781 0.5364 111.037 108.937
-23 5.916 1.7856 0.4052 4.2133 2.9302 3.2903 111.037 116.926
-24 7.4427 2.1505 -0.2206 4.4466 4.0317 1.7129 111.037 125.542
-25 0 0 0 0 0 0 111.037 0
-26 1.9306 0.2105 0.0557 -2.2134 1.2909 0.9726 117.961 116.926
-27 2.3848 0.703 0.1399 -2.6238 0.3606 0.5474 117.961 125.542
-28 0 0 0 0 0 0 117.961 0
-29 0.2039 0.1602 -0.7946 -0.5501 -1.6982 0.2485 114.302 112.67
-30 -1.982 0.2325 -0.3928 -1.2469 1.6933 -1.2081 114.302 110.77
-31 2.1802 -0.0335 -1.3816 2.1221 0.5032 -0.0767 108.53 116.926
-32 7.095 0.0075 0.691 2.0013 0.5068 0.8406 107.734 116.926
-33 0 0 0 0 0 0 0 111.254
-34 0.2873 -0.8072 -0.096 -3.343 4.4558 -0.0346 110.954 111.91
-35 -0.4294 -0.4442 -0.6141 -3.9582 2.0063 0.3213 110.954 110.62
-36 2.0125 0.944 -2.7612 -1.9225 -1.345 0.221 111.91 112.67
+13 -1.9225 -1.345 0.221 2.0125 0.944 -2.7612 112.67 111.91
+14 -3.343 4.4558 -0.0346 0.2873 -0.8072 -0.096 111.91 110.954
+15 -3.9582 2.0063 0.3213 -0.4294 -0.4442 -0.6141 110.62 110.954
+16 -0.5807 0.2041 -0.1384 -2.8967 2.7084 -0.0375 113.868 114.302
+17 -0.3868 0.2041 0.0445 -3.7022 1.3876 0.2393 113.868 108.937
+18 -1.523 1.1296 0.7167 -0.7555 0.0564 1.2177 111.037 114.302
+19 0.0372 -0.3418 -0.0775 -1.5157 2.0781 0.5364 111.037 108.937
+20 5.916 1.7856 0.4052 4.2133 2.9302 3.2903 111.037 116.926
+21 7.4427 2.1505 -0.2206 4.4466 4.0317 1.7129 111.037 125.542
+22 0 0 0 0 0 0 111.037 0
+23 1.9306 0.2105 0.0557 -2.2134 1.2909 0.9726 117.961 116.926
+24 2.3848 0.703 0.1399 -2.6238 0.3606 0.5474 117.961 125.542
+25 0 0 0 0 0 0 117.961 0
+26 0.2039 0.1602 -0.7946 -0.5501 -1.6982 0.2485 114.302 112.67
+27 -1.982 0.2325 -0.3928 -1.2469 1.6933 -1.2081 114.302 110.77
+28 2.1802 -0.0335 -1.3816 2.1221 0.5032 -0.0767 108.53 116.926
+29 7.095 0.0075 0.691 2.0013 0.5068 0.8406 107.734 116.926
+30 0 0 0 0 0 0 0 111.254
+31 0.2873 -0.8072 -0.096 -3.343 4.4558 -0.0346 110.954 111.91
+32 -0.4294 -0.4442 -0.6141 -3.9582 2.0063 0.3213 110.954 110.62
+33 2.0125 0.944 -2.7612 -1.9225 -1.345 0.221 111.91 112.67
Improper Coeffs # class2
@@ -516,15 +471,7 @@ Improper Coeffs # class2
2 0 0
3 0 0
4 0 0
-5 0 0
-6 0 0
-7 0 0
-8 0 0
-9 0 0
-10 0 0
-11 0 0
-12 0 0
-13 24.3329 0
+5 24.3329 0
AngleAngle Coeffs
@@ -532,378 +479,342 @@ AngleAngle Coeffs
2 0.2738 -0.4825 0.2738 110.77 107.66 110.77
3 -1.3199 -1.3199 0.1184 112.67 110.77 110.77
4 2.0403 -1.8202 1.0827 108.53 107.734 110.77
-5 -3.3867 -3.4976 -3.3867 107.734 107.66 107.734
-6 0 0 0 110.954 107.067 110.954
-7 0.2738 -0.4825 0.2738 110.77 107.66 110.77
-8 -1.3199 -1.3199 0.1184 112.67 110.77 110.77
-9 -2.5301 0.5381 2.4286 111.91 110.62 110.77
-10 2.4321 -3.5496 2.4321 110.62 107.66 110.62
-11 0 0 0 123.145 118.985 0
-12 0 0 0 113.868 117.961 111.037
-13 0 0 0 116.926 123.145 125.542
+5 0 0 0 116.926 123.145 125.542
Atoms # full
-1 1 1 0.0000000000000000e+00 12.288168 0.738732 4.374280 0 0 0
-2 1 2 2.9999999999999999e-01 13.959928 -0.883144 5.090597 0 0 0
-3 1 3 0.0000000000000000e+00 14.411288 -1.994419 5.682160 0 0 0
-4 1 4 0.0000000000000000e+00 12.881083 0.872503 3.506176 0 0 0
-5 1 4 0.0000000000000000e+00 11.232775 0.801641 3.998777 0 0 0
-6 1 5 0.0000000000000000e+00 13.704366 -2.470396 6.130105 0 0 0
-7 1 1 0.0000000000000000e+00 12.489752 -0.793693 4.710639 0 0 0
-8 1 1 0.0000000000000000e+00 12.455071 1.866388 5.385870 0 0 0
-9 1 1 0.0000000000000000e+00 11.248961 1.901849 6.347664 0 0 0
-10 1 2 2.9999999999999999e-01 10.005971 2.466710 5.772840 -1 1 0
-11 1 6 0.0000000000000000e+00 14.795360 -0.034436 4.807367 0 0 0
-12 1 6 0.0000000000000000e+00 9.115239 1.654547 5.617002 -1 0 0
-13 1 3 0.0000000000000000e+00 9.745096 3.807654 5.573585 -1 1 0
-14 1 4 0.0000000000000000e+00 12.248215 -1.371492 3.808598 0 0 0
-15 1 4 0.0000000000000000e+00 11.715755 -1.036825 5.500449 0 0 0
-16 1 4 0.0000000000000000e+00 12.559724 2.807687 4.858452 0 1 0
-17 1 4 0.0000000000000000e+00 13.299968 1.616570 6.123781 0 0 0
-18 1 4 0.0000000000000000e+00 11.650505 2.330454 7.282410 0 1 0
-19 1 4 0.0000000000000000e+00 10.888420 0.913219 6.637162 -1 0 0
-20 1 5 0.0000000000000000e+00 10.550073 4.294209 5.758192 -1 1 0
-21 2 1 0.0000000000000000e+00 5.851425 1.929552 6.038335 0 0 0
-22 2 1 0.0000000000000000e+00 6.741509 3.160751 6.233074 0 0 0
-23 2 7 -2.9999999999999999e-01 7.957761 3.121780 5.252257 1 0 0
-24 2 7 -2.9999999999999999e-01 2.599653 -2.258940 5.985863 0 -1 0
-25 2 1 0.0000000000000000e+00 3.834337 -1.907078 5.441528 0 -1 0
-26 2 1 0.0000000000000000e+00 4.810793 -1.083699 6.310184 0 -1 0
-27 2 4 0.0000000000000000e+00 6.505912 1.182799 5.449104 0 0 0
-28 2 4 0.0000000000000000e+00 5.156429 2.256468 5.348423 0 0 0
-29 2 4 0.0000000000000000e+00 7.232782 3.178785 7.181911 0 0 0
-30 2 4 0.0000000000000000e+00 6.251671 4.103621 6.222913 0 0 0
-31 2 8 0.0000000000000000e+00 8.249909 4.070668 4.881297 1 0 0
-32 2 8 0.0000000000000000e+00 7.813025 2.623184 4.400744 1 0 0
-33 2 8 0.0000000000000000e+00 2.626695 -2.857547 6.817247 0 -1 0
-34 2 8 0.0000000000000000e+00 1.955281 -2.684319 5.328460 0 -1 0
-35 2 4 0.0000000000000000e+00 3.637708 -1.322842 4.469265 0 -1 0
-36 2 4 0.0000000000000000e+00 4.415570 -2.739689 4.997336 0 -1 0
-37 2 4 0.0000000000000000e+00 5.710714 -1.010014 5.642798 0 -1 0
-38 2 4 0.0000000000000000e+00 5.103831 -1.696423 7.160345 0 -1 0
-39 2 1 0.0000000000000000e+00 5.270763 1.286629 7.308822 0 0 0
-40 2 4 0.0000000000000000e+00 4.834381 2.168531 7.931687 0 0 1
-41 2 4 0.0000000000000000e+00 6.118354 0.786724 7.794709 0 0 1
-42 2 1 0.0000000000000000e+00 4.273849 0.167695 6.957862 0 -1 0
-43 2 4 0.0000000000000000e+00 3.792544 -0.081782 7.904418 0 -1 1
-44 2 4 0.0000000000000000e+00 3.527495 0.674238 6.348869 0 0 0
+1 1 c2 -0.37128 12.288168 0.738732 4.37428
+2 1 c_1 0.77363 13.959928 -0.883144 5.090597
+3 1 o -0.68333 14.411288 -1.994419 5.68216
+4 1 hc 0.20049 12.881083 0.872503 3.506176
+5 1 hc 0.19609 11.232775 0.801641 3.998777
+6 1 ho 0.48328 13.704366 -2.470396 6.130105
+7 1 c2 -0.46692 12.489752 -0.793693 4.710639
+8 1 c2 -0.38182 12.455071 1.866388 5.38587
+9 1 c2 -0.47583 11.248961 1.901849 6.347664
+10 1 c_1 0.78608 10.005971 2.46671 5.77284
+11 1 o_1 -0.56991 14.79536 -0.034436 4.807367
+12 1 o_1 -0.58244 9.115239 1.654547 5.617002
+13 1 o -0.68598 9.745096 3.807654 5.573585
+14 1 hc 0.20664 12.248215 -1.371492 3.808598
+15 1 hc 0.21572 11.715755 -1.036825 5.500449
+16 1 hc 0.18182 12.559724 2.807687 4.858452
+17 1 hc 0.21541 13.299968 1.61657 6.123781
+18 1 hc 0.20587 11.650505 2.330454 7.28241
+19 1 hc 0.22795 10.88842 0.913219 6.637162
+20 1 ho 0.48600 10.550073 4.294209 5.758192
+21 2 c2 -0.38667 5.851425 1.929552 6.038335
+22 2 c2 -0.17544 6.741509 3.160751 6.233074
+23 2 na -0.79903 7.957761 3.12178 5.252257
+24 2 na -0.79111 2.599653 -2.25894 5.985863
+25 2 c2 -0.17576 3.834337 -1.907078 5.441528
+26 2 c2 -0.38091 4.810793 -1.083699 6.310184
+27 2 hc 0.19062 6.505912 1.182799 5.449104
+28 2 hc 0.18951 5.156429 2.256468 5.348423
+29 2 hc 0.17321 7.232782 3.178785 7.181911
+30 2 hc 0.16772 6.251671 4.103621 6.222913
+31 2 hn 0.33245 8.249909 4.070668 4.881297
+32 2 hn 0.34480 7.813025 2.623184 4.400744
+33 2 hn 0.33793 2.626695 -2.857547 6.817247
+34 2 hn 0.33306 1.955281 -2.684319 5.32846
+35 2 hc 0.17708 3.637708 -1.322842 4.469265
+36 2 hc 0.15806 4.41557 -2.739689 4.997336
+37 2 hc 0.18117 5.710714 -1.010014 5.642798
+38 2 hc 0.18224 5.103831 -1.696423 7.160345
+39 2 c2 -0.38394 5.270763 1.286629 7.308822
+40 2 hc 0.17720 4.834381 2.168531 7.931687
+41 2 hc 0.18425 6.118354 0.786724 7.794709
+42 2 c2 -0.37058 4.273849 0.167695 6.957862
+43 2 hc 0.18777 3.792544 -0.081782 7.904418
+44 2 hc 0.18490 3.527495 0.674238 6.348869
Velocities
-1 -2.4626989626218821e-03 -1.5920230003311222e-03 -3.0621927786115238e-03
-2 9.5082416704385837e-03 -6.9903166167507250e-03 1.3702671335945608e-02
-3 2.3431518493187576e-03 -2.9261683108242173e-03 1.4269399726982105e-03
-4 -1.8184451408256214e-02 3.1103803691687960e-02 -1.3358827768357973e-02
-5 2.6084132471017967e-02 -1.0819576493517332e-02 3.0403384454794881e-02
-6 -4.7312115958218744e-03 -1.9111462399478338e-02 -3.6793354156497558e-02
-7 -7.5068797595949869e-03 6.5661422055962489e-03 1.3226575122695422e-03
-8 3.3807881380161281e-03 3.0458732663557089e-03 2.2368826795446284e-03
-9 -3.1113905793879316e-03 8.2908867720754773e-03 -1.7561238039496530e-03
-10 2.4685206571693056e-03 1.3194776209841030e-03 -2.8041877032800441e-03
-11 -3.4945605770565296e-03 3.2323777135621814e-03 1.6223017668450866e-03
-12 -6.1153483612847778e-03 -5.1534857074262185e-03 1.7735747357354274e-03
-13 2.1384296781859011e-04 -4.5398902942729667e-03 6.1649769894413760e-03
-14 2.5004619864373401e-03 -1.5709184283264888e-03 2.0837548254667757e-02
-15 6.0547939205643532e-03 -1.2650704436910937e-02 -5.4430753266962190e-03
-16 -1.0374605775698001e-02 9.1408658463889240e-03 -1.1306875858287088e-02
-17 -1.2736499128987409e-02 -9.1726811852506501e-03 5.1136502685461254e-03
-18 7.6741778607048112e-03 1.8629856635459279e-02 -1.1300096447670932e-02
-19 -1.8616138775281121e-02 1.0848388547730185e-03 -5.7118433687798576e-03
-20 5.4137572241479059e-03 -1.4564578166395727e-02 -1.2618420441909540e-02
-21 5.8473521452312256e-03 -4.0595286000332086e-03 -6.2517801580146415e-03
-22 3.6402033824753104e-03 -1.4629540504663154e-03 -4.0030712318898046e-03
-23 9.0266305019107689e-03 -2.7511425384659687e-03 4.5576402565437142e-03
-24 -1.3102302415548614e-02 -4.7286703965305791e-03 -1.8966887841189517e-03
-25 7.8621682621103171e-03 -4.2046313540949568e-03 9.6887957374751301e-04
-26 -4.7380176438337968e-03 9.6090441940775827e-03 -8.7592431387039336e-03
-27 5.4311658811632517e-03 2.0032224663495989e-02 -9.4952076489808503e-03
-28 -2.9056381493904374e-03 3.3317109723156875e-03 1.6650350064426677e-02
-29 -6.4569944033489122e-03 2.8423983541959541e-03 -2.6066912906505167e-02
-30 -2.2173867823429387e-02 1.4628839880961319e-02 -2.3330833961402380e-02
-31 9.1925713381983114e-03 -2.5697556639281928e-03 -1.2822203161488303e-02
-32 -8.3206975051927905e-03 -2.2538429924858707e-03 7.7620244118580314e-03
-33 1.9920685674825727e-02 5.0317764848494097e-03 -2.1106672824976403e-02
-34 1.4118463330250982e-02 1.7455545466840316e-02 -1.2482101375598437e-02
-35 -6.1116505640437966e-03 1.3353021777303568e-02 -2.5492434283827668e-02
-36 9.1001521565859649e-03 5.5737774505222404e-03 1.4573768978939985e-02
-37 1.6523593470528035e-03 -2.2107518020000917e-02 2.0311423445130115e-02
-38 -1.0346275393471860e-02 1.6055856586351790e-02 5.5489127019262424e-03
-39 -3.2054811383248638e-03 1.6779208962376315e-03 2.9390509537535661e-03
-40 1.9649219364916443e-02 4.0815776523222859e-03 -9.8422441166041274e-03
-41 5.6961697588160361e-04 7.1361132234741477e-04 4.6335764220256257e-03
-42 2.2221300208006252e-03 3.6217319632558197e-03 -6.3299398503455151e-03
-43 2.5710172734841170e-03 8.0029179814482924e-03 1.9992986928468189e-02
-44 -6.0827581822674656e-03 -1.1834273655641976e-02 2.0526923045885208e-02
+1 -0.002462698962621882 -0.0015920230003311222 -0.003062192778611524
+2 0.009508241670438584 -0.006990316616750725 0.013702671335945608
+3 0.0023431518493187576 -0.0029261683108242173 0.0014269399726982105
+4 -0.018184451408256214 0.03110380369168796 -0.013358827768357973
+5 0.026084132471017967 -0.010819576493517332 0.03040338445479488
+6 -0.004731211595821874 -0.01911146239947834 -0.03679335415649756
+7 -0.007506879759594987 0.006566142205596249 0.0013226575122695422
+8 0.003380788138016128 0.003045873266355709 0.0022368826795446284
+9 -0.0031113905793879316 0.008290886772075477 -0.001756123803949653
+10 0.0024685206571693056 0.001319477620984103 -0.002804187703280044
+11 -0.0034945605770565296 0.0032323777135621814 0.0016223017668450866
+12 -0.006115348361284778 -0.0051534857074262185 0.0017735747357354274
+13 0.0002138429678185901 -0.004539890294272967 0.006164976989441376
+14 0.00250046198643734 -0.0015709184283264888 0.020837548254667757
+15 0.006054793920564353 -0.012650704436910937 -0.005443075326696219
+16 -0.010374605775698001 0.009140865846388924 -0.011306875858287088
+17 -0.01273649912898741 -0.00917268118525065 0.005113650268546125
+18 0.007674177860704811 0.01862985663545928 -0.011300096447670932
+19 -0.01861613877528112 0.0010848388547730185 -0.005711843368779858
+20 0.005413757224147906 -0.014564578166395727 -0.01261842044190954
+21 0.005847352145231226 -0.004059528600033209 -0.0062517801580146415
+22 0.0036402033824753104 -0.0014629540504663154 -0.004003071231889805
+23 0.009026630501910769 -0.0027511425384659687 0.004557640256543714
+24 -0.013102302415548614 -0.004728670396530579 -0.0018966887841189517
+25 0.007862168262110317 -0.004204631354094957 0.000968879573747513
+26 -0.004738017643833797 0.009609044194077583 -0.008759243138703934
+27 0.005431165881163252 0.02003222466349599 -0.00949520764898085
+28 -0.0029056381493904374 0.0033317109723156875 0.016650350064426677
+29 -0.006456994403348912 0.002842398354195954 -0.026066912906505167
+30 -0.022173867823429387 0.014628839880961319 -0.02333083396140238
+31 0.009192571338198311 -0.0025697556639281928 -0.012822203161488303
+32 -0.00832069750519279 -0.0022538429924858707 0.007762024411858031
+33 0.019920685674825727 0.00503177648484941 -0.021106672824976403
+34 0.014118463330250982 0.017455545466840316 -0.012482101375598437
+35 -0.006111650564043797 0.013353021777303568 -0.025492434283827668
+36 0.009100152156585965 0.00557377745052224 0.014573768978939985
+37 0.0016523593470528035 -0.022107518020000917 0.020311423445130115
+38 -0.01034627539347186 0.01605585658635179 0.005548912701926242
+39 -0.0032054811383248638 0.0016779208962376315 0.002939050953753566
+40 0.019649219364916443 0.004081577652322286 -0.009842244116604127
+41 0.0005696169758816036 0.0007136113223474148 0.004633576422025626
+42 0.0022221300208006252 0.0036217319632558197 -0.006329939850345515
+43 0.002571017273484117 0.008002917981448292 0.01999298692846819
+44 -0.006082758182267466 -0.011834273655641976 0.020526923045885208
Bonds
-1 1 1 5
-2 1 1 4
-3 2 1 7
-4 2 1 8
-5 3 2 3
-6 5 2 11
-7 6 3 6
-8 4 7 2
-9 1 7 14
-10 1 7 15
-11 2 8 9
-12 1 8 16
-13 1 8 17
-14 4 9 10
-15 1 9 18
-16 1 9 19
-17 5 10 12
-18 3 10 13
-19 6 13 20
-20 7 21 22
-21 8 21 27
-22 8 21 28
-23 7 21 39
-24 9 22 23
-25 8 22 29
-26 8 22 30
-27 10 23 31
-28 10 23 32
-29 10 24 33
-30 10 24 34
-31 9 25 24
-32 7 25 26
-33 8 25 35
-34 8 25 36
-35 8 26 37
-36 8 26 38
-37 7 26 42
-38 8 39 40
-39 8 39 41
-40 7 39 42
-41 8 42 43
-42 8 42 44
+1 c2-hc 1 5
+2 c2-hc 1 4
+3 c2-c2 1 7
+4 c2-c2 1 8
+5 c_1-o 2 3
+6 c_1-o_1 2 11
+7 o-ho 3 6
+8 c2-c_1 7 2
+9 c2-hc 7 14
+10 c2-hc 7 15
+11 c2-c2 8 9
+12 c2-hc 8 16
+13 c2-hc 8 17
+14 c2-c_1 9 10
+15 c2-hc 9 18
+16 c2-hc 9 19
+17 c_1-o_1 10 12
+18 c_1-o 10 13
+19 o-ho 13 20
+20 c2-c2 21 22
+21 c2-hc 21 27
+22 c2-hc 21 28
+23 c2-c2 21 39
+24 na-c2 22 23
+25 c2-hc 22 29
+26 c2-hc 22 30
+27 na-hn 23 31
+28 na-hn 23 32
+29 na-hn 24 33
+30 na-hn 24 34
+31 na-c2 25 24
+32 c2-c2 25 26
+33 c2-hc 25 35
+34 c2-hc 25 36
+35 c2-hc 26 37
+36 c2-hc 26 38
+37 c2-c2 26 42
+38 c2-hc 39 40
+39 c2-hc 39 41
+40 c2-c2 39 42
+41 c2-hc 42 43
+42 c2-hc 42 44
Angles
-1 1 5 1 4
-2 2 7 1 5
-3 2 8 1 5
-4 2 7 1 4
-5 2 8 1 4
-6 3 7 1 8
-7 4 7 2 3
-8 5 3 2 11
-9 6 7 2 11
-10 7 2 3 6
-11 8 1 7 2
-12 2 1 7 14
-13 2 1 7 15
-14 9 2 7 14
-15 9 2 7 15
-16 1 14 7 15
-17 3 1 8 9
-18 2 1 8 16
-19 2 1 8 17
-20 2 9 8 16
-21 2 9 8 17
-22 1 16 8 17
-23 8 8 9 10
-24 2 8 9 18
-25 2 8 9 19
-26 9 10 9 18
-27 9 10 9 19
-28 1 18 9 19
-29 6 9 10 12
-30 4 9 10 13
-31 5 13 10 12
-32 7 10 13 20
-33 10 22 21 27
-34 10 22 21 28
-35 11 22 21 39
-36 12 27 21 28
-37 10 39 21 27
-38 10 39 21 28
-39 13 21 22 23
-40 10 21 22 29
-41 10 21 22 30
-42 14 23 22 29
-43 14 23 22 30
-44 12 29 22 30
-45 15 22 23 31
-46 15 22 23 32
-47 16 31 23 32
-48 15 25 24 33
-49 15 25 24 34
-50 16 33 24 34
-51 13 26 25 24
-52 14 24 25 35
-53 14 24 25 36
-54 10 26 25 35
-55 10 26 25 36
-56 12 35 25 36
-57 10 25 26 37
-58 10 25 26 38
-59 11 25 26 42
-60 12 37 26 38
-61 10 42 26 37
-62 10 42 26 38
-63 10 21 39 40
-64 10 21 39 41
-65 11 21 39 42
-66 12 40 39 41
-67 10 42 39 40
-68 10 42 39 41
-69 11 26 42 39
-70 10 26 42 43
-71 10 26 42 44
-72 10 39 42 43
-73 10 39 42 44
-74 12 43 42 44
+1 hc-c2-hc 5 1 4
+2 c2-c2-hc 7 1 5
+3 c2-c2-hc 8 1 5
+4 c2-c2-hc 7 1 4
+5 c2-c2-hc 8 1 4
+6 c2-c2-c2 7 1 8
+7 c2-c_1-o_1 7 2 3
+8 o-c_1-o_1 3 2 11
+9 c2-c_1-o 7 2 11
+10 c_1-o-ho 2 3 6
+11 c2-c2-c_1 1 7 2
+12 c2-c2-hc 1 7 14
+13 c2-c2-hc 1 7 15
+14 c_1-c2-hc 2 7 14
+15 c_1-c2-hc 2 7 15
+16 hc-c2-hc 14 7 15
+17 c2-c2-c2 1 8 9
+18 c2-c2-hc 1 8 16
+19 c2-c2-hc 1 8 17
+20 c2-c2-hc 9 8 16
+21 c2-c2-hc 9 8 17
+22 hc-c2-hc 16 8 17
+23 c2-c2-c_1 8 9 10
+24 c2-c2-hc 8 9 18
+25 c2-c2-hc 8 9 19
+26 c_1-c2-hc 10 9 18
+27 c_1-c2-hc 10 9 19
+28 hc-c2-hc 18 9 19
+29 c2-c_1-o 9 10 12
+30 c2-c_1-o_1 9 10 13
+31 o-c_1-o_1 13 10 12
+32 c_1-o-ho 10 13 20
+33 c2-c2-hc 22 21 27
+34 c2-c2-hc 22 21 28
+35 c2-c2-c2 22 21 39
+36 hc-c2-hc 27 21 28
+37 c2-c2-hc 39 21 27
+38 c2-c2-hc 39 21 28
+39 c2-c2-na 21 22 23
+40 c2-c2-hc 21 22 29
+41 c2-c2-hc 21 22 30
+42 na-c2-hc 23 22 29
+43 na-c2-hc 23 22 30
+44 hc-c2-hc 29 22 30
+45 c2-na-hn 22 23 31
+46 c2-na-hn 22 23 32
+47 hn-na-hn 31 23 32
+48 c2-na-hn 25 24 33
+49 c2-na-hn 25 24 34
+50 hn-na-hn 33 24 34
+51 c2-c2-na 26 25 24
+52 na-c2-hc 24 25 35
+53 na-c2-hc 24 25 36
+54 c2-c2-hc 26 25 35
+55 c2-c2-hc 26 25 36
+56 hc-c2-hc 35 25 36
+57 c2-c2-hc 25 26 37
+58 c2-c2-hc 25 26 38
+59 c2-c2-c2 25 26 42
+60 hc-c2-hc 37 26 38
+61 c2-c2-hc 42 26 37
+62 c2-c2-hc 42 26 38
+63 c2-c2-hc 21 39 40
+64 c2-c2-hc 21 39 41
+65 c2-c2-c2 21 39 42
+66 hc-c2-hc 40 39 41
+67 c2-c2-hc 42 39 40
+68 c2-c2-hc 42 39 41
+69 c2-c2-c2 26 42 39
+70 c2-c2-hc 26 42 43
+71 c2-c2-hc 26 42 44
+72 c2-c2-hc 39 42 43
+73 c2-c2-hc 39 42 44
+74 hc-c2-hc 43 42 44
Dihedrals
-1 2 5 1 7 14
-2 2 5 1 7 15
-3 2 4 1 7 14
-4 2 4 1 7 15
-5 3 8 1 7 2
-6 4 8 1 7 14
-7 4 8 1 7 15
-8 2 5 1 8 16
-9 2 5 1 8 17
-10 2 4 1 8 16
-11 2 4 1 8 17
-12 5 7 1 8 9
-13 4 7 1 8 16
-14 4 7 1 8 17
-15 6 7 2 3 6
-16 7 11 2 3 6
-17 1 2 7 1 5
-18 1 2 7 1 4
-19 8 1 7 2 3
-20 9 14 7 2 3
-21 9 15 7 2 3
-22 10 1 7 2 11
-23 11 14 7 2 11
-24 11 15 7 2 11
-25 4 9 8 1 5
-26 4 9 8 1 4
-27 3 1 8 9 10
-28 4 1 8 9 18
-29 4 1 8 9 19
-30 2 16 8 9 18
-31 2 16 8 9 19
-32 2 17 8 9 18
-33 2 17 8 9 19
-34 1 10 9 8 16
-35 1 10 9 8 17
-36 10 8 9 10 12
-37 8 8 9 10 13
-38 11 18 9 10 12
-39 9 18 9 10 13
-40 11 19 9 10 12
-41 9 19 9 10 13
-42 6 9 10 13 20
-43 7 12 10 13 20
-44 13 27 21 22 29
-45 13 27 21 22 30
-46 13 28 21 22 29
-47 13 28 21 22 30
-48 14 39 21 22 23
-49 15 39 21 22 29
-50 15 39 21 22 30
-51 15 22 21 39 40
-52 15 22 21 39 41
-53 16 22 21 39 42
-54 13 27 21 39 40
-55 13 27 21 39 41
-56 13 28 21 39 40
-57 13 28 21 39 41
-58 12 23 22 21 27
-59 12 23 22 21 28
-60 17 21 22 23 31
-61 17 21 22 23 32
-62 18 29 22 23 31
-63 18 29 22 23 32
-64 18 30 22 23 31
-65 18 30 22 23 32
-66 17 26 25 24 33
-67 18 35 25 24 33
-68 18 36 25 24 33
-69 17 26 25 24 34
-70 18 35 25 24 34
-71 18 36 25 24 34
-72 12 24 25 26 37
-73 12 24 25 26 38
-74 13 35 25 26 37
-75 13 35 25 26 38
-76 13 36 25 26 37
-77 13 36 25 26 38
-78 14 42 26 25 24
-79 15 42 26 25 35
-80 15 42 26 25 36
-81 16 25 26 42 39
-82 15 25 26 42 43
-83 15 25 26 42 44
-84 13 37 26 42 43
-85 13 37 26 42 44
-86 13 38 26 42 43
-87 13 38 26 42 44
-88 15 42 39 21 27
-89 15 42 39 21 28
-90 16 21 39 42 26
-91 15 21 39 42 43
-92 15 21 39 42 44
-93 13 40 39 42 43
-94 13 40 39 42 44
-95 13 41 39 42 43
-96 13 41 39 42 44
-97 15 39 42 26 37
-98 15 39 42 26 38
-99 15 26 42 39 40
-100 15 26 42 39 41
+1 hc-c2-c2-hc 5 1 7 14
+2 hc-c2-c2-hc 5 1 7 15
+3 hc-c2-c2-hc 4 1 7 14
+4 hc-c2-c2-hc 4 1 7 15
+5 c2-c2-c2-c_1 8 1 7 2
+6 c2-c2-c2-hc 8 1 7 14
+7 c2-c2-c2-hc 8 1 7 15
+8 hc-c2-c2-hc 5 1 8 16
+9 hc-c2-c2-hc 5 1 8 17
+10 hc-c2-c2-hc 4 1 8 16
+11 hc-c2-c2-hc 4 1 8 17
+12 c2-c2-c2-c2 7 1 8 9
+13 c2-c2-c2-hc 7 1 8 16
+14 c2-c2-c2-hc 7 1 8 17
+15 c2-c_1-o-ho 7 2 3 6
+16 o_1-c_1-o-ho 11 2 3 6
+17 c_1-c2-c2-hc 2 7 1 5
+18 c_1-c2-c2-hc 2 7 1 4
+19 c2-c2-c_1-o 1 7 2 3
+20 hc-c2-c_1-o 14 7 2 3
+21 hc-c2-c_1-o 15 7 2 3
+22 c2-c2-c_1-o_1 1 7 2 11
+23 hc-c2-c_1-o_1 14 7 2 11
+24 hc-c2-c_1-o_1 15 7 2 11
+25 c2-c2-c2-hc 9 8 1 5
+26 c2-c2-c2-hc 9 8 1 4
+27 c2-c2-c2-c_1 1 8 9 10
+28 c2-c2-c2-hc 1 8 9 18
+29 c2-c2-c2-hc 1 8 9 19
+30 hc-c2-c2-hc 16 8 9 18
+31 hc-c2-c2-hc 16 8 9 19
+32 hc-c2-c2-hc 17 8 9 18
+33 hc-c2-c2-hc 17 8 9 19
+34 c_1-c2-c2-hc 10 9 8 16
+35 c_1-c2-c2-hc 10 9 8 17
+36 c2-c2-c_1-o_1 8 9 10 12
+37 c2-c2-c_1-o 8 9 10 13
+38 hc-c2-c_1-o_1 18 9 10 12
+39 hc-c2-c_1-o 18 9 10 13
+40 hc-c2-c_1-o_1 19 9 10 12
+41 hc-c2-c_1-o 19 9 10 13
+42 c2-c_1-o-ho 9 10 13 20
+43 o_1-c_1-o-ho 12 10 13 20
+44 hc-c2-c2-hc 27 21 22 29
+45 hc-c2-c2-hc 27 21 22 30
+46 hc-c2-c2-hc 28 21 22 29
+47 hc-c2-c2-hc 28 21 22 30
+48 c2-c2-c2-na 39 21 22 23
+49 c2-c2-c2-hc 39 21 22 29
+50 c2-c2-c2-hc 39 21 22 30
+51 c2-c2-c2-hc 22 21 39 40
+52 c2-c2-c2-hc 22 21 39 41
+53 c2-c2-c2-c2 22 21 39 42
+54 hc-c2-c2-hc 27 21 39 40
+55 hc-c2-c2-hc 27 21 39 41
+56 hc-c2-c2-hc 28 21 39 40
+57 hc-c2-c2-hc 28 21 39 41
+58 na-c2-c2-hc 23 22 21 27
+59 na-c2-c2-hc 23 22 21 28
+60 c2-c2-na-hn 21 22 23 31
+61 c2-c2-na-hn 21 22 23 32
+62 hn-na-c2-hc 29 22 23 31
+63 hn-na-c2-hc 29 22 23 32
+64 hn-na-c2-hc 30 22 23 31
+65 hn-na-c2-hc 30 22 23 32
+66 c2-c2-na-hn 26 25 24 33
+67 hn-na-c2-hc 35 25 24 33
+68 hn-na-c2-hc 36 25 24 33
+69 c2-c2-na-hn 26 25 24 34
+70 hn-na-c2-hc 35 25 24 34
+71 hn-na-c2-hc 36 25 24 34
+72 na-c2-c2-hc 24 25 26 37
+73 na-c2-c2-hc 24 25 26 38
+74 hc-c2-c2-hc 35 25 26 37
+75 hc-c2-c2-hc 35 25 26 38
+76 hc-c2-c2-hc 36 25 26 37
+77 hc-c2-c2-hc 36 25 26 38
+78 c2-c2-c2-na 42 26 25 24
+79 c2-c2-c2-hc 42 26 25 35
+80 c2-c2-c2-hc 42 26 25 36
+81 c2-c2-c2-c2 25 26 42 39
+82 c2-c2-c2-hc 25 26 42 43
+83 c2-c2-c2-hc 25 26 42 44
+84 hc-c2-c2-hc 37 26 42 43
+85 hc-c2-c2-hc 37 26 42 44
+86 hc-c2-c2-hc 38 26 42 43
+87 hc-c2-c2-hc 38 26 42 44
+88 c2-c2-c2-hc 42 39 21 27
+89 c2-c2-c2-hc 42 39 21 28
+90 c2-c2-c2-c2 21 39 42 26
+91 c2-c2-c2-hc 21 39 42 43
+92 c2-c2-c2-hc 21 39 42 44
+93 hc-c2-c2-hc 40 39 42 43
+94 hc-c2-c2-hc 40 39 42 44
+95 hc-c2-c2-hc 41 39 42 43
+96 hc-c2-c2-hc 41 39 42 44
+97 c2-c2-c2-hc 39 42 26 37
+98 c2-c2-c2-hc 39 42 26 38
+99 c2-c2-c2-hc 26 42 39 40
+100 c2-c2-c2-hc 26 42 39 41
Impropers
-1 2 7 1 4 5
-2 2 8 1 4 5
-3 3 7 1 8 5
-4 3 7 1 8 4
-5 1 7 2 3 11
-6 4 1 7 2 14
-7 4 1 7 2 15
-8 2 1 7 14 15
-9 5 2 7 14 15
-10 3 1 8 9 16
-11 3 1 8 9 17
-12 2 1 8 16 17
-13 2 9 8 16 17
-14 4 8 9 10 18
-15 4 8 9 10 19
-16 2 8 9 18 19
-17 5 10 9 18 19
-18 1 9 10 13 12
-19 7 22 21 27 28
-20 8 22 21 39 27
-21 8 22 21 39 28
-22 7 39 21 28 27
-23 9 21 22 23 29
-24 9 21 22 23 30
-25 7 21 22 29 30
-26 10 23 22 29 30
-27 6 22 23 31 32
-28 6 25 24 33 34
-29 9 26 25 24 35
-30 9 26 25 24 36
-31 10 24 25 35 36
-32 7 26 25 35 36
-33 7 25 26 37 38
-34 8 25 26 42 37
-35 8 25 26 42 38
-36 7 42 26 38 37
-37 7 21 39 40 41
-38 8 21 39 42 40
-39 8 21 39 42 41
-40 7 42 39 41 40
-41 8 26 42 39 43
-42 8 26 42 39 44
-43 7 26 42 43 44
-44 7 39 42 43 44
+1 c2-na-hn-hn 7 1 4 5
+2 c2-na-hn-hn 8 1 4 5
+3 c2-c_1-o_1-o 7 1 8 5
+4 c2-c_1-o_1-o 7 1 8 4
+5 c2-c_1-o-o_1 7 2 3 11
+6 c2-n-hn-c_1 1 7 2 14
+7 c2-n-hn-c_1 1 7 2 15
+8 c2-na-hn-hn 1 7 14 15
+9 c2-c_1-o_1-o 1 8 9 16
+10 c2-c_1-o_1-o 1 8 9 17
+11 c2-na-hn-hn 1 8 16 17
+12 c2-na-hn-hn 9 8 16 17
+13 c2-n-hn-c_1 8 9 10 18
+14 c2-n-hn-c_1 8 9 10 19
+15 c2-na-hn-hn 8 9 18 19
+16 c2-c_1-o-o_1 9 10 13 12
diff --git a/src/CLASS2/angle_class2.cpp b/src/CLASS2/angle_class2.cpp
index 1dbaaf0568..118179ad91 100644
--- a/src/CLASS2/angle_class2.cpp
+++ b/src/CLASS2/angle_class2.cpp
@@ -18,17 +18,17 @@
#include "angle_class2.h"
-#include
-#include
#include "atom.h"
-#include "neighbor.h"
-#include "domain.h"
#include "comm.h"
+#include "domain.h"
+#include "error.h"
#include "force.h"
#include "math_const.h"
#include "memory.h"
-#include "error.h"
+#include "neighbor.h"
+#include
+#include
using namespace LAMMPS_NS;
using namespace MathConst;
diff --git a/src/KOKKOS/fft3d_kokkos.cpp b/src/KOKKOS/fft3d_kokkos.cpp
index 202d46e788..9d5347f173 100644
--- a/src/KOKKOS/fft3d_kokkos.cpp
+++ b/src/KOKKOS/fft3d_kokkos.cpp
@@ -43,7 +43,6 @@ FFT3dKokkos::FFT3dKokkos(LAMMPS *lmp, MPI_Comm comm, int nfast, int
#if defined(LMP_KOKKOS_GPU)
int ngpus = lmp->kokkos->ngpus;
ExecutionSpace execution_space = ExecutionSpaceFromDevice::space;
-#endif
#if defined(FFT_KOKKOS_MKL)
if (ngpus > 0 && execution_space == Device)
@@ -69,6 +68,8 @@ FFT3dKokkos::FFT3dKokkos(LAMMPS *lmp, MPI_Comm comm, int nfast, int
if (stack_size < 2048)
cudaDeviceSetLimit(cudaLimitStackSize,2048);
#endif
+#endif
+
#endif
plan = fft_3d_create_plan_kokkos(comm,nfast,nmid,nslow,
diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp
index 59112ddab0..da7660d0d0 100644
--- a/src/KOKKOS/pair_uf3_kokkos.cpp
+++ b/src/KOKKOS/pair_uf3_kokkos.cpp
@@ -1655,7 +1655,7 @@ double PairUF3Kokkos::single(int /*i*/, int /*j*/, int itype, int jt
namespace LAMMPS_NS {
template class PairUF3Kokkos;
-#ifdef KOKKOS_ENABLE_GPU
+#ifdef LMP_KOKKOS_GPU
template class PairUF3Kokkos;
#endif
} // namespace LAMMPS_NS
diff --git a/src/REACTION/fix_bond_react.cpp b/src/REACTION/fix_bond_react.cpp
index 8c241355fd..1e4ae33ee6 100644
--- a/src/REACTION/fix_bond_react.cpp
+++ b/src/REACTION/fix_bond_react.cpp
@@ -58,7 +58,7 @@ using namespace MathConst;
static const char cite_fix_bond_react[] =
"fix bond/react: reacter.org doi:10.1016/j.polymer.2017.09.038, "
- "doi:10.1021/acs.macromol.0c02012\n\n"
+ "doi:10.1021/acs.macromol.0c02012, doi:10.1016/j.cpc.2024.109287\n\n"
"@Article{Gissinger17,\n"
" author = {J. R. Gissinger and B. D. Jensen and K. E. Wise},\n"
" title = {Modeling Chemical Reactions in Classical Molecular Dynamics Simulations},\n"
@@ -75,6 +75,14 @@ static const char cite_fix_bond_react[] =
" volume = 53,\n"
" number = 22,\n"
" pages = {9953--9961}\n"
+ "}\n\n"
+ "@Article{Gissinger24,\n"
+ " author = {J. R. Gissinger, B. D. Jensen, K. E. Wise},\n"
+ " title = {Molecular Modeling of Reactive Systems with REACTER},\n"
+ " journal = {Computer Physics Communications},\n"
+ " year = 2024,\n"
+ " volume = 304,\n"
+ " number = 109287\n"
"}\n\n";
static constexpr double BIG = 1.0e20;
@@ -225,8 +233,8 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
memory->create(reacted_mol,nreacts,"bond/react:reacted_mol");
memory->create(fraction,nreacts,"bond/react:fraction");
memory->create(max_rxn,nreacts,"bond/react:max_rxn");
- memory->create(nlocalskips,nreacts,"bond/react:nlocalskips");
- memory->create(nghostlyskips,nreacts,"bond/react:nghostlyskips");
+ memory->create(nlocalkeep,nreacts,"bond/react:nlocalkeep");
+ memory->create(nghostlykeep,nreacts,"bond/react:nghostlykeep");
memory->create(seed,nreacts,"bond/react:seed");
memory->create(limit_duration,nreacts,"bond/react:limit_duration");
memory->create(rate_limit,3,nreacts,"bond/react:rate_limit");
@@ -486,10 +494,6 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
get_molxspecials();
read_map_file(i);
fclose(fp);
- if (ncreate == 0 && onemol->natoms != twomol->natoms)
- error->all(FLERR,"Fix bond/react: Reaction templates must contain the same number of atoms");
- else if (ncreate > 0 && onemol->natoms + ncreate != twomol->natoms)
- error->all(FLERR,"Fix bond/react: Incorrect number of created atoms");
iatomtype[i] = onemol->type[ibonding[i]-1];
jatomtype[i] = onemol->type[jbonding[i]-1];
find_landlocked_atoms(i);
@@ -644,8 +648,8 @@ FixBondReact::~FixBondReact()
memory->destroy(fraction);
memory->destroy(seed);
memory->destroy(max_rxn);
- memory->destroy(nlocalskips);
- memory->destroy(nghostlyskips);
+ memory->destroy(nlocalkeep);
+ memory->destroy(nghostlykeep);
memory->destroy(limit_duration);
memory->destroy(var_flag);
memory->destroy(var_id);
@@ -716,6 +720,7 @@ int FixBondReact::setmask()
int mask = 0;
mask |= POST_INTEGRATE;
mask |= POST_INTEGRATE_RESPA;
+ mask |= POST_FORCE;
return mask;
}
@@ -872,8 +877,8 @@ void FixBondReact::post_integrate()
reaction_count[i] = 0;
local_rxn_count[i] = 0;
ghostly_rxn_count[i] = 0;
- nlocalskips[i] = 0;
- nghostlyskips[i] = 0;
+ nlocalkeep[i] = INT_MAX;
+ nghostlykeep[i] = INT_MAX;
// update reaction probability
if (var_flag[PROB][i])
fraction[i] = input->variable->compute_equal(var_id[PROB][i]);
@@ -1424,10 +1429,13 @@ void FixBondReact::superimpose_algorithm()
MPI_Allreduce(&local_rxn_count[0],&reaction_count[0],nreacts,MPI_INT,MPI_SUM,world);
int rxnflag = 0;
+ int *delta_rxn;
+ memory->create(delta_rxn,nreacts,"bond/react:delta_rxn");
if (comm->me == 0)
for (int i = 0; i < nreacts; i++) {
- reaction_count_total[i] += reaction_count[i] + ghostly_rxn_count[i];
- rxnflag += reaction_count[i] + ghostly_rxn_count[i];
+ delta_rxn[i] = reaction_count[i] + ghostly_rxn_count[i];
+ reaction_count_total[i] += delta_rxn[i];
+ rxnflag += delta_rxn[i];
}
MPI_Bcast(&reaction_count_total[0], nreacts, MPI_INT, 0, world);
@@ -1460,42 +1468,43 @@ void FixBondReact::superimpose_algorithm()
if (overstep > 0) {
// let's randomly choose rxns to skip, unbiasedly from local and ghostly
int *local_rxncounts;
- int *all_localskips;
+ int *all_localkeep;
memory->create(local_rxncounts,nprocs,"bond/react:local_rxncounts");
- memory->create(all_localskips,nprocs,"bond/react:all_localskips");
+ memory->create(all_localkeep,nprocs,"bond/react:all_localkeep");
MPI_Gather(&local_rxn_count[i],1,MPI_INT,local_rxncounts,1,MPI_INT,0,world);
if (comm->me == 0) {
- int delta_rxn = reaction_count[i] + ghostly_rxn_count[i];
// when using variable input for rate_limit, rate_limit_overstep could be > delta_rxn (below)
// we need to limit overstep to the number of reactions on this timestep
// essentially skipping all reactions, would be more efficient to use a skip_all flag
- if (overstep > delta_rxn) overstep = delta_rxn;
+ if (overstep > delta_rxn[i]) overstep = delta_rxn[i];
+ int nkeep = delta_rxn[i] - overstep;
int *rxn_by_proc;
- memory->create(rxn_by_proc,delta_rxn,"bond/react:rxn_by_proc");
- for (int j = 0; j < delta_rxn; j++)
+ memory->create(rxn_by_proc,delta_rxn[i],"bond/react:rxn_by_proc");
+ for (int j = 0; j < delta_rxn[i]; j++)
rxn_by_proc[j] = -1; // corresponds to ghostly
int itemp = 0;
for (int j = 0; j < nprocs; j++)
for (int k = 0; k < local_rxncounts[j]; k++)
rxn_by_proc[itemp++] = j;
- std::shuffle(&rxn_by_proc[0],&rxn_by_proc[delta_rxn], park_rng);
+ std::shuffle(&rxn_by_proc[0],&rxn_by_proc[delta_rxn[i]], park_rng);
for (int j = 0; j < nprocs; j++)
- all_localskips[j] = 0;
- nghostlyskips[i] = 0;
- for (int j = 0; j < overstep; j++) {
- if (rxn_by_proc[j] == -1) nghostlyskips[i]++;
- else all_localskips[rxn_by_proc[j]]++;
+ all_localkeep[j] = 0;
+ nghostlykeep[i] = 0;
+ for (int j = 0; j < nkeep; j++) {
+ if (rxn_by_proc[j] == -1) nghostlykeep[i]++;
+ else all_localkeep[rxn_by_proc[j]]++;
}
memory->destroy(rxn_by_proc);
reaction_count_total[i] -= overstep;
}
- MPI_Scatter(&all_localskips[0],1,MPI_INT,&nlocalskips[i],1,MPI_INT,0,world);
- MPI_Bcast(&nghostlyskips[i],1,MPI_INT,0,world);
+ MPI_Scatter(&all_localkeep[0],1,MPI_INT,&nlocalkeep[i],1,MPI_INT,0,world);
+ MPI_Bcast(&nghostlykeep[i],1,MPI_INT,0,world);
memory->destroy(local_rxncounts);
- memory->destroy(all_localskips);
+ memory->destroy(all_localkeep);
}
}
MPI_Bcast(&reaction_count_total[0], nreacts, MPI_INT, 0, world);
+ memory->destroy(delta_rxn);
// this updates topology next step
next_reneighbor = update->ntimestep;
@@ -2965,6 +2974,8 @@ void FixBondReact::update_everything()
int *type = atom->type;
int **nspecial = atom->nspecial;
tagint **special = atom->special;
+ tagint *tag = atom->tag;
+ AtomVec *avec = atom->avec;
int **bond_type = atom->bond_type;
tagint **bond_atom = atom->bond_atom;
@@ -2977,13 +2988,16 @@ void FixBondReact::update_everything()
memory->create(mark,nmark,"bond/react:mark");
for (int i = 0; i < nmark; i++) mark[i] = 0;
+ // used when creating atoms
+ addatomtag = 0;
+ for (int i = 0; i < nlocal; i++) addatomtag = MAX(addatomtag,tag[i]);
+ MPI_Allreduce(MPI_IN_PLACE,&addatomtag,1,MPI_LMP_TAGINT,MPI_MAX,world);
+ addatoms.clear();
+
// flag used to delete special interactions
int *delflag;
memory->create(delflag,atom->maxspecial,"bond/react:delflag");
- tagint *tag = atom->tag;
- AtomVec *avec = atom->avec;
-
// used when creating atoms
int inserted_atoms_flag = 0;
@@ -3026,13 +3040,14 @@ void FixBondReact::update_everything()
for (int pass = 0; pass < 2; pass++) {
update_num_mega = 0;
- int *iskip = new int[nreacts];
- for (int i = 0; i < nreacts; i++) iskip[i] = 0;
+ int *noccur = new int[nreacts];
+ for (int i = 0; i < nreacts; i++) noccur[i] = 0;
if (pass == 0) {
for (int i = 0; i < local_num_mega; i++) {
rxnID = (int) local_mega_glove[0][i];
// reactions already shuffled from dedup procedure, so can skip first N
- if (iskip[rxnID]++ < nlocalskips[rxnID]) continue;
+ // wait, this check needs to be after add atoms, because they can also be 'skipped' due to overlap
+ if (noccur[rxnID] >= nlocalkeep[rxnID]) continue;
// this will be overwritten if reaction skipped by create_atoms below
update_mega_glove[0][update_num_mega] = (tagint) local_mega_glove[0][i];
@@ -3043,13 +3058,14 @@ void FixBondReact::update_everything()
if (create_atoms_flag[rxnID] == 1) {
onemol = atom->molecules[unreacted_mol[rxnID]];
twomol = atom->molecules[reacted_mol[rxnID]];
- if (insert_atoms(update_mega_glove,update_num_mega)) {
+ if (insert_atoms_setup(update_mega_glove,update_num_mega)) {
inserted_atoms_flag = 1;
} else { // create aborted
reaction_count_total[rxnID]--;
continue;
}
}
+ noccur[rxnID]++;
if (rescale_charges_flag[rxnID]) sim_total_charges[update_num_mega] = local_mega_glove[1][i];
update_num_mega++;
@@ -3058,7 +3074,7 @@ void FixBondReact::update_everything()
for (int i = 0; i < global_megasize; i++) {
rxnID = (int) global_mega_glove[0][i];
// reactions already shuffled from dedup procedure, so can skip first N
- if (iskip[rxnID]++ < nghostlyskips[rxnID]) continue;
+ if (noccur[rxnID] >= nghostlykeep[rxnID]) continue;
// this will be overwritten if reaction skipped by create_atoms below
update_mega_glove[0][update_num_mega] = (tagint) global_mega_glove[0][i];
@@ -3071,29 +3087,48 @@ void FixBondReact::update_everything()
if (create_atoms_flag[rxnID] == 1) {
onemol = atom->molecules[unreacted_mol[rxnID]];
twomol = atom->molecules[reacted_mol[rxnID]];
- if (insert_atoms(update_mega_glove,update_num_mega)) {
+ if (insert_atoms_setup(update_mega_glove,update_num_mega)) {
inserted_atoms_flag = 1;
} else { // create aborted
reaction_count_total[rxnID]--;
continue;
}
}
+ noccur[rxnID]++;
if (rescale_charges_flag[rxnID]) sim_total_charges[update_num_mega] = global_mega_glove[1][i];
update_num_mega++;
}
}
- delete [] iskip;
+ delete [] noccur;
if (update_num_mega == 0) continue;
- // if inserted atoms and global map exists, reset map now instead
- // of waiting for comm since other pre-exchange fixes may use it
- // invoke map_init() b/c atom count has grown
- // do this once after all atom insertions
- if (inserted_atoms_flag == 1 && atom->map_style != Atom::MAP_NONE) {
- atom->map_init();
- atom->map_set();
+ // insert all atoms for all rxns here
+ if (inserted_atoms_flag == 1) {
+ // clear to-be-overwritten ghost info
+ atom->nghost = 0;
+ atom->avec->clear_bonus();
+
+ for (auto & myaddatom : addatoms) {
+ atom->avec->create_atom(myaddatom.type,myaddatom.x);
+ int n = atom->nlocal - 1;
+ atom->tag[n] = myaddatom.tag;
+ atom->molecule[n] = myaddatom.molecule;
+ atom->mask[n] = myaddatom.mask;
+ atom->image[n] = myaddatom.image;
+ atom->v[n][0] = myaddatom.v[0];
+ atom->v[n][1] = myaddatom.v[1];
+ atom->v[n][2] = myaddatom.v[2];
+ if (atom->rmass) atom->rmass[n]= myaddatom.rmass;
+ modify->create_attribute(n);
+ }
+
+ // reset atom->map
+ if (atom->map_style != Atom::MAP_NONE) {
+ atom->map_init();
+ atom->map_set();
+ }
}
// mark to-delete atoms
@@ -3620,10 +3655,6 @@ void FixBondReact::update_everything()
atom->natoms -= ndel;
// done deleting atoms
-
- // reset mol ids
- if (reset_mol_ids_flag) reset_mol_ids->reset();
-
// something to think about: this could done much more concisely if
// all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG
@@ -3651,17 +3682,17 @@ void FixBondReact::update_everything()
}
/* ----------------------------------------------------------------------
-insert created atoms
+setup for inserting created atoms
+atoms for all rxns are actually created all at once in update_everything
------------------------------------------------------------------------- */
-int FixBondReact::insert_atoms(tagint **my_update_mega_glove, int iupdate)
+int FixBondReact::insert_atoms_setup(tagint **my_update_mega_glove, int iupdate)
{
// inserting atoms based off fix_deposit->pre_exchange
int flag;
imageint *imageflags;
double **coords,lamda[3],rotmat[3][3];
double *newcoord;
- double **v = atom->v;
double t,delx,dely,delz,rsq;
memory->create(coords,twomol->natoms,3,"bond/react:coords");
@@ -3677,19 +3708,13 @@ int FixBondReact::insert_atoms(tagint **my_update_mega_glove, int iupdate)
}
// find current max atom and molecule IDs
- tagint *tag = atom->tag;
double **x = atom->x;
tagint *molecule = atom->molecule;
int nlocal = atom->nlocal;
- tagint maxtag_all,maxmol_all;
- tagint max = 0;
- for (int i = 0; i < nlocal; i++) max = MAX(max,tag[i]);
- MPI_Allreduce(&max,&maxtag_all,1,MPI_LMP_TAGINT,MPI_MAX,world);
-
- max = 0;
- for (int i = 0; i < nlocal; i++) max = MAX(max,molecule[i]);
- MPI_Allreduce(&max,&maxmol_all,1,MPI_LMP_TAGINT,MPI_MAX,world);
+ tagint maxmol_all = 0;;
+ for (int i = 0; i < nlocal; i++) maxmol_all = MAX(maxmol_all,molecule[i]);
+ MPI_Allreduce(MPI_IN_PLACE,&maxmol_all,1,MPI_LMP_TAGINT,MPI_MAX,world);
int dimension = domain->dimension;
@@ -3786,6 +3811,26 @@ int FixBondReact::insert_atoms(tagint **my_update_mega_glove, int iupdate)
if (abortflag) break;
}
}
+ // also check against previous to-be-added atoms
+ if (!abortflag) {
+ for (auto & myaddatom : addatoms) {
+ for (int m = 0; m < twomol->natoms; m++) {
+ if (create_atoms[m][rxnID] == 1) {
+ delx = coords[m][0] - myaddatom.x[0];
+ dely = coords[m][1] - myaddatom.x[1];
+ delz = coords[m][2] - myaddatom.x[2];
+ domain->minimum_image(delx,dely,delz);
+ rsq = delx*delx + dely*dely + delz*delz;
+ if (rsq < overlapsq[rxnID]) {
+ abortflag = 1;
+ break;
+ }
+ }
+ }
+ if (abortflag) break;
+ }
+ }
+
MPI_Allreduce(MPI_IN_PLACE,&abortflag,1,MPI_INT,MPI_MAX,world);
if (abortflag) {
memory->destroy(coords);
@@ -3794,12 +3839,6 @@ int FixBondReact::insert_atoms(tagint **my_update_mega_glove, int iupdate)
}
}
- // clear ghost count and any ghost bonus data internal to AtomVec
- // same logic as beginning of Comm::exchange()
- // do it now b/c inserting atoms will overwrite ghost atoms
- atom->nghost = 0;
- atom->avec->clear_bonus();
-
// check if new atoms are in my sub-box or above it if I am highest proc
// if so, add atom to my list via create_atom()
// initialize additional info about the atoms
@@ -3842,40 +3881,46 @@ int FixBondReact::insert_atoms(tagint **my_update_mega_glove, int iupdate)
}
int root = 0;
+ addatomtag++;
if (flag) {
+ struct AddAtom myaddatom;
root = comm->me;
- atom->avec->create_atom(twomol->type[m],coords[m]);
- int n = atom->nlocal - 1;
- atom->tag[n] = maxtag_all + add_count;
+ myaddatom.type = twomol->type[m];
+ myaddatom.x[0] = coords[m][0];
+ myaddatom.x[1] = coords[m][1];
+ myaddatom.x[2] = coords[m][2];
+ myaddatom.tag = addatomtag;
// locally update mega_glove
- my_update_mega_glove[preID][iupdate] = atom->tag[n];
+ my_update_mega_glove[preID][iupdate] = myaddatom.tag;
+ // !! could do better job choosing mol ID for added atoms
if (atom->molecule_flag) {
if (twomol->moleculeflag) {
- atom->molecule[n] = maxmol_all + twomol->molecule[m];
+ myaddatom.molecule = maxmol_all + twomol->molecule[m];
} else {
- atom->molecule[n] = maxmol_all + 1;
+ myaddatom.molecule = maxmol_all + 1;
}
}
- atom->mask[n] = 1 | groupbit;
- atom->image[n] = imageflags[m];
+ myaddatom.mask = 1 | groupbit;
+ myaddatom.image = imageflags[m];
// guess a somewhat reasonable initial velocity based on reaction site
// further control is possible using bond_react_MASTER_group
// compute |velocity| corresponding to a given temperature t, using specific atom's mass
- double mymass = atom->rmass ? atom->rmass[n] : atom->mass[twomol->type[m]];
- double vtnorm = sqrt(t / (force->mvv2e / (dimension * force->boltz)) / mymass);
- v[n][0] = random[rxnID]->uniform();
- v[n][1] = random[rxnID]->uniform();
- v[n][2] = random[rxnID]->uniform();
- double vnorm = sqrt(v[n][0]*v[n][0] + v[n][1]*v[n][1] + v[n][2]*v[n][2]);
- v[n][0] = v[n][0]/vnorm*vtnorm;
- v[n][1] = v[n][1]/vnorm*vtnorm;
- v[n][2] = v[n][2]/vnorm*vtnorm;
- modify->create_attribute(n);
+ myaddatom.rmass = atom->rmass ? twomol->rmass[m] : atom->mass[twomol->type[m]];
+ double vtnorm = sqrt(t / (force->mvv2e / (dimension * force->boltz)) / myaddatom.rmass);
+ double myv[3];
+ myv[0] = random[rxnID]->uniform();
+ myv[1] = random[rxnID]->uniform();
+ myv[2] = random[rxnID]->uniform();
+ double vnorm = sqrt(myv[0]*myv[0] + myv[1]*myv[1] + myv[2]*myv[2]);
+ myaddatom.v[0] = myv[0]/vnorm*vtnorm;
+ myaddatom.v[1] = myv[1]/vnorm*vtnorm;
+ myaddatom.v[2] = myv[2]/vnorm*vtnorm;
+ addatoms.push_back(myaddatom);
}
// globally update mega_glove and equivalences
MPI_Allreduce(MPI_IN_PLACE,&root,1,MPI_INT,MPI_SUM,world);
@@ -3888,12 +3933,11 @@ int FixBondReact::insert_atoms(tagint **my_update_mega_glove, int iupdate)
}
// reset global natoms here
- // reset atom map elsewhere, after all calls to 'insert_atoms'
+ // reset atom map elsewhere, after all calls to 'insert_atoms_setup'
atom->natoms += add_count;
if (atom->natoms < 0)
error->all(FLERR,"Too many total atoms");
- maxtag_all += add_count;
- if (maxtag_all >= MAXTAGINT)
+ if (addatomtag >= MAXTAGINT)
error->all(FLERR,"New atom IDs exceed maximum allowed ID");
// atom creation successful
memory->destroy(coords);
@@ -3970,6 +4014,11 @@ void FixBondReact::read_map_file(int myrxn)
} else break;
}
+ if (ncreate == 0 && onemol->natoms != twomol->natoms)
+ error->all(FLERR,"Fix bond/react: Reaction templates must contain the same number of atoms");
+ else if (ncreate > 0 && onemol->natoms + ncreate != twomol->natoms)
+ error->all(FLERR,"Fix bond/react: Incorrect number of created atoms");
+
// grab keyword and skip next line
parse_keyword(0,line,keyword);
@@ -4012,6 +4061,13 @@ void FixBondReact::read_map_file(int myrxn)
}
+ // error check
+ for (int i = 0; i < onemol->natoms; i++) {
+ int my_equiv = reverse_equiv[i][1][myrxn];
+ if (create_atoms[my_equiv-1][myrxn] == 1)
+ error->all(FLERR,"Fix bond/react: Created atoms cannot also be listed in Equivalences section\n");
+ }
+
// error check
if (bondflag == 0 || equivflag == 0)
error->all(FLERR,"Fix bond/react: Map file missing InitiatorIDs or Equivalences section\n");
@@ -4071,6 +4127,8 @@ void FixBondReact::CreateAtoms(char *line, int myrxn)
readline(line);
rv = sscanf(line,"%d",&tmp);
if (rv != 1) error->one(FLERR, "CreateIDs section is incorrectly formatted");
+ if (tmp > twomol->natoms)
+ error->one(FLERR,"Fix bond/react: Invalid atom ID in CreateIDs section of map file");
create_atoms[tmp-1][myrxn] = 1;
}
if (twomol->xflag == 0)
@@ -4331,6 +4389,13 @@ void FixBondReact::post_integrate_respa(int ilevel, int /*iloop*/)
/* ---------------------------------------------------------------------- */
+void FixBondReact::post_force(int /*vflag*/)
+{
+ if (reset_mol_ids_flag) reset_mol_ids->reset();
+}
+
+/* ---------------------------------------------------------------------- */
+
int FixBondReact::pack_forward_comm(int n, int *list, double *buf,
int /*pbc_flag*/, int * /*pbc*/)
{
diff --git a/src/REACTION/fix_bond_react.h b/src/REACTION/fix_bond_react.h
index 8c9fc9dce4..c3a92d91a0 100644
--- a/src/REACTION/fix_bond_react.h
+++ b/src/REACTION/fix_bond_react.h
@@ -46,6 +46,7 @@ class FixBondReact : public Fix {
void init_list(int, class NeighList *) override;
void post_integrate() override;
void post_integrate_respa(int, int) override;
+ void post_force(int) override;
int pack_forward_comm(int, int *, double *, int, int *) override;
void unpack_forward_comm(int, int, double *) override;
@@ -62,7 +63,7 @@ class FixBondReact : public Fix {
int *iatomtype, *jatomtype;
int *seed;
double **cutsq, *fraction;
- int *max_rxn, *nlocalskips, *nghostlyskips;
+ int *max_rxn, *nlocalkeep, *nghostlykeep;
tagint lastcheck;
int stabilization_flag;
int reset_mol_ids_flag;
@@ -215,7 +216,7 @@ class FixBondReact : public Fix {
void glove_ghostcheck();
void ghost_glovecast();
void update_everything();
- int insert_atoms(tagint **, int);
+ int insert_atoms_setup(tagint **, int);
void unlimit_bond(); // removes atoms from stabilization, and other post-reaction every-step operations
void dedup_mega_gloves(int); //dedup global mega_glove
void write_restart(FILE *) override;
@@ -245,6 +246,15 @@ class FixBondReact : public Fix {
std::map, int> atoms2bond; // maps atom pair to index of local bond array
std::vector> constraints;
+ tagint addatomtag;
+ struct AddAtom {
+ tagint tag, molecule;
+ int type, mask;
+ imageint image;
+ double rmass, x[3], v[3];
+ };
+ std::vector addatoms;
+
// DEBUG
void print_bb();
diff --git a/src/library.cpp b/src/library.cpp
index 324bfc5b9f..950702c420 100644
--- a/src/library.cpp
+++ b/src/library.cpp
@@ -35,6 +35,7 @@
#include "group.h"
#include "info.h"
#include "input.h"
+#include "lattice.h"
#include "lmppython.h"
#include "memory.h"
#include "modify.h"
@@ -1414,6 +1415,9 @@ int lammps_extract_global_datatype(void * /*handle*/, const char *name)
if (strcmp(name,"xy") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"xz") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"yz") == 0) return LAMMPS_DOUBLE;
+ if (strcmp(name,"xlattice") == 0) return LAMMPS_DOUBLE;
+ if (strcmp(name,"ylattice") == 0) return LAMMPS_DOUBLE;
+ if (strcmp(name,"zlattice") == 0) return LAMMPS_DOUBLE;
if (strcmp(name,"procgrid") == 0) return LAMMPS_INT;
if (strcmp(name,"natoms") == 0) return LAMMPS_BIGINT;
@@ -1510,9 +1514,9 @@ The function :cpp:func:`lammps_extract_global_datatype` will directly
report the "native" data type. The following tables are provided:
* :ref:`Timestep settings `
-* :ref:`Git revision and version settings `
* :ref:`Simulation box settings `
* :ref:`System property settings `
+* :ref:`Git revision and version settings `
* :ref:`Unit settings `
.. _extract_timestep_settings:
@@ -1552,35 +1556,6 @@ report the "native" data type. The following tables are provided:
- :math:`N_{respa}`
- length of the time steps with r-RESPA. See :doc:`run_style`.
-.. _extract_git_settings:
-
-**Git revision and version settings**
-
-.. list-table::
- :header-rows: 1
- :widths: 16 14 10 60
-
- * - Name
- - Type
- - Length
- - Description
- * - git_commit
- - const char \*
- - 1
- - Git commit hash for the LAMMPS version.
- * - git_branch
- - const char \*
- - 1
- - Git branch for the LAMMPS version.
- * - git_descriptor
- - const char \*
- - 1
- - Combined descriptor for the git revision
- * - lammps_version
- - const char \*
- - 1
- - LAMMPS version string.
-
.. _extract_box_settings:
**Simulation box settings**
@@ -1649,6 +1624,18 @@ report the "native" data type. The following tables are provided:
- double
- 1
- triclinic tilt factor; see :doc:`Howto_triclinic`.
+ * - xlattice
+ - double
+ - 1
+ - lattice spacing in x-direction; see :doc:`lattice command `.
+ * - ylattice
+ - double
+ - 1
+ - lattice spacing in y-direction; see :doc:`lattice command `.
+ * - zlattice
+ - double
+ - 1
+ - lattice spacing in z-direction; see :doc:`lattice command `.
* - procgrid
- int
- 3
@@ -1763,6 +1750,35 @@ report the "native" data type. The following tables are provided:
- 1
- string with the current KSpace style.
+.. _extract_git_settings:
+
+**Git revision and version settings**
+
+.. list-table::
+ :header-rows: 1
+ :widths: 16 14 10 60
+
+ * - Name
+ - Type
+ - Length
+ - Description
+ * - git_commit
+ - const char \*
+ - 1
+ - Git commit hash for the LAMMPS version.
+ * - git_branch
+ - const char \*
+ - 1
+ - Git branch for the LAMMPS version.
+ * - git_descriptor
+ - const char \*
+ - 1
+ - Combined descriptor for the git revision
+ * - lammps_version
+ - const char \*
+ - 1
+ - LAMMPS version string.
+
.. _extract_unit_settings:
**Unit settings**
@@ -1917,6 +1933,9 @@ void *lammps_extract_global(void *handle, const char *name)
if (strcmp(name,"xy") == 0) return (void *) &lmp->domain->xy;
if (strcmp(name,"xz") == 0) return (void *) &lmp->domain->xz;
if (strcmp(name,"yz") == 0) return (void *) &lmp->domain->yz;
+ if (strcmp(name,"xlattice") == 0) return (void *) &lmp->domain->lattice->xlattice;
+ if (strcmp(name,"ylattice") == 0) return (void *) &lmp->domain->lattice->ylattice;
+ if (strcmp(name,"zlattice") == 0) return (void *) &lmp->domain->lattice->zlattice;
if (((lmp->comm->layout == Comm::LAYOUT_UNIFORM) ||
(lmp->comm->layout == Comm::LAYOUT_NONUNIFORM)) && (strcmp(name,"procgrid") == 0))
return (void *) &lmp->comm->procgrid;
diff --git a/tools/lammps-gui/CMakeLists.txt b/tools/lammps-gui/CMakeLists.txt
index 73e945820b..1dfd8f451d 100644
--- a/tools/lammps-gui/CMakeLists.txt
+++ b/tools/lammps-gui/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.16)
-project(lammps-gui VERSION 1.6.9 LANGUAGES CXX)
+project(lammps-gui VERSION 1.6.10 LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
@@ -130,6 +130,8 @@ set(PROJECT_SOURCES
chartviewer.h
codeeditor.cpp
codeeditor.h
+ findandreplace.cpp
+ findandreplace.h
helpers.cpp
highlighter.cpp
highlighter.h
diff --git a/tools/lammps-gui/TODO.md b/tools/lammps-gui/TODO.md
index e3782e6446..b36f0a4ce8 100644
--- a/tools/lammps-gui/TODO.md
+++ b/tools/lammps-gui/TODO.md
@@ -2,12 +2,21 @@ LAMMPS-GUI TODO list:
# Short term goals (v1.x)
+- implement a timed "Auto-Save" feature that saves after some idle time. set timeout in Editor preferences.
+- add a "Filter data" checkbox to the "Charts" window to select whether data should be dropped.
+- add a "Charts tab" to the preferences with the following (default) settings:
+ - default filter data yes/no
+ - default smooth parameters
+ - default plot colors
+ - enable "raw" or "smooth" or "both"
+- add QLineEdit field to enter plot title
+- add a "Colors" menu to the image viewer to adjust color settings for the
+ current image (unlike the defaults in the perferences) including assigning
+ colors to individual atom types.
+- Support color by property (e.g. scan computes or fixes with per-atom data), define colormaps etc.
+- Add a "Diameters" dialog where diamaters can by specified by atom type
- figure out how widgets can be resized to fraction of available screen size.
- figure out stacking order of frames and whether it can be more flexible
-- implement a timed "Auto-Save" feature that saves after some idle time. set timeout in Editor preferences.
-- add a "Colors" menu to the image viewer to adjust color settings for the
- current image (unlike the defaults in the perferences). Support color by
- property (e.g. scan computes or fixes with per-atom data), define colormaps etc.
- implement indenting regions for (nested) loops?
- implement data file manager GUI with the following features:
diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp
index 71ba07de4c..eb5444de8e 100644
--- a/tools/lammps-gui/chartviewer.cpp
+++ b/tools/lammps-gui/chartviewer.cpp
@@ -424,7 +424,7 @@ void ChartViewer::add_data(int step, double data)
if (last_step < step) {
last_step = step;
- // do not add data that deviates by more than 5 sigma from the average
+ // do not add data that deviates by more than 4 sigma from the average
// over the last 5 to 20 data items. this is a hack to work around
// getting corrupted data from lammps_get_last_thermo()
const auto &points = series->points();
diff --git a/tools/lammps-gui/codeeditor.cpp b/tools/lammps-gui/codeeditor.cpp
index fd86b5199e..8083f1e2c5 100644
--- a/tools/lammps-gui/codeeditor.cpp
+++ b/tools/lammps-gui/codeeditor.cpp
@@ -218,7 +218,10 @@ CodeEditor::CodeEditor(QWidget *parent) :
help_index.close();
}
+ setBackgroundRole(QPalette::Light);
lineNumberArea = new LineNumberArea(this);
+ lineNumberArea->setBackgroundRole(QPalette::Dark);
+ lineNumberArea->setAutoFillBackground(true);
connect(this, &CodeEditor::blockCountChanged, this, &CodeEditor::updateLineNumberAreaWidth);
connect(this, &CodeEditor::updateRequest, this, &CodeEditor::updateLineNumberArea);
updateLineNumberAreaWidth(0);
@@ -669,7 +672,7 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
if (block.isVisible() && bottom >= event->rect().top()) {
QString number = QString::number(blockNumber + 1) + " ";
if ((highlight == NO_HIGHLIGHT) || (blockNumber != std::abs(highlight))) {
- painter.setPen(Qt::black);
+ painter.setPen(palette().color(QPalette::WindowText));
} else {
number = QString(">") + QString::number(blockNumber + 1) + "<";
if (highlight < 0)
diff --git a/tools/lammps-gui/findandreplace.cpp b/tools/lammps-gui/findandreplace.cpp
new file mode 100644
index 0000000000..e986dc4edf
--- /dev/null
+++ b/tools/lammps-gui/findandreplace.cpp
@@ -0,0 +1,148 @@
+/* ----------------------------------------------------------------------
+ LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
+ https://www.lammps.org/, Sandia National Laboratories
+ LAMMPS development team: developers@lammps.org
+
+ Copyright (2003) Sandia Corporation. Under the terms of Contract
+ DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
+ certain rights in this software. This software is distributed under
+ the GNU General Public License.
+
+ See the README file in the top-level LAMMPS directory.
+------------------------------------------------------------------------- */
+
+#include "findandreplace.h"
+
+#include "codeeditor.h"
+#include "lammpsgui.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include