Merge branch 'develop' into type-labels-for-pair_style_commands

This commit is contained in:
Axel Kohlmeyer
2024-08-13 16:19:44 -04:00
266 changed files with 102590 additions and 9278 deletions

View File

@ -510,6 +510,14 @@ if(PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR BUILD_T
endif() endif()
endif() endif()
find_package(CURL QUIET COMPONENTS HTTP HTTPS)
option(WITH_CURL "Enable libcurl support" ${CURL_FOUND})
if(WITH_CURL)
find_package(CURL REQUIRED COMPONENTS HTTP HTTPS)
target_compile_definitions(lammps PRIVATE -DLAMMPS_CURL)
target_link_libraries(lammps PRIVATE CURL::libcurl)
endif()
# tweak jpeg library names to avoid linker errors with MinGW cross-compilation # tweak jpeg library names to avoid linker errors with MinGW cross-compilation
set(JPEG_NAMES libjpeg libjpeg-62) set(JPEG_NAMES libjpeg libjpeg-62)
find_package(JPEG QUIET) find_package(JPEG QUIET)

View File

@ -24,6 +24,12 @@ target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
target_include_directories(colvars PRIVATE ${LAMMPS_SOURCE_DIR}) target_include_directories(colvars PRIVATE ${LAMMPS_SOURCE_DIR})
target_link_libraries(lammps PRIVATE colvars) target_link_libraries(lammps PRIVATE colvars)
if(BUILD_OMP)
# Enable OpenMP for Colvars as well
target_compile_options(colvars PRIVATE ${OpenMP_CXX_FLAGS})
target_link_libraries(colvars PRIVATE OpenMP::OpenMP_CXX)
endif()
if(COLVARS_DEBUG) if(COLVARS_DEBUG)
# Need to export the define publicly to be valid in interface code # Need to export the define publicly to be valid in interface code
target_compile_definitions(colvars PUBLIC -DCOLVARS_DEBUG) target_compile_definitions(colvars PUBLIC -DCOLVARS_DEBUG)

View File

@ -2,9 +2,10 @@
APP_NAME=lammps-gui APP_NAME=lammps-gui
DESTDIR=${PWD}/../LAMMPS_GUI DESTDIR=${PWD}/../LAMMPS_GUI
VERSION="$1"
echo "Delete old files, if they exist" echo "Delete old files, if they exist"
rm -rf ${DESTDIR} ../LAMMPS_GUI-Linux-amd64.tar.gz rm -rf ${DESTDIR} ../LAMMPS_GUI-Linux-amd64*.tar.gz
echo "Create staging area for deployment and populate" echo "Create staging area for deployment and populate"
DESTDIR=${DESTDIR} cmake --install . --prefix "/" DESTDIR=${DESTDIR} cmake --install . --prefix "/"
@ -71,7 +72,7 @@ do \
done done
pushd .. pushd ..
tar -czvvf LAMMPS_GUI-Linux-amd64.tar.gz LAMMPS_GUI tar -czvvf LAMMPS_GUI-Linux-amd64-${VERSION}.tar.gz LAMMPS_GUI
popd popd
echo "Cleanup dir" echo "Cleanup dir"

View File

@ -1,9 +1,10 @@
#!/bin/bash #!/bin/bash
APP_NAME=lammps-gui APP_NAME=lammps-gui
VERSION="$1"
echo "Delete old files, if they exist" echo "Delete old files, if they exist"
rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS_GUI-macOS-multiarch.dmg rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS_GUI-macOS-multiarch*.dmg
echo "Create initial dmg file with macdeployqt" echo "Create initial dmg file with macdeployqt"
macdeployqt lammps-gui.app -dmg macdeployqt lammps-gui.app -dmg
@ -96,12 +97,12 @@ sync
echo "Unmount modified disk image and convert to compressed read-only image" echo "Unmount modified disk image and convert to compressed read-only image"
hdiutil detach "${DEVICE}" hdiutil detach "${DEVICE}"
hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS_GUI-macOS-multiarch.dmg" hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS_GUI-macOS-multiarch-${VERSION}.dmg"
echo "Attach icon to .dmg file" echo "Attach icon to .dmg file"
echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc
Rez -a icon.rsrc -o LAMMPS_GUI-macOS-multiarch.dmg Rez -a icon.rsrc -o LAMMPS_GUI-macOS-multiarch-${VERSION}.dmg
SetFile -a C LAMMPS_GUI-macOS-multiarch.dmg SetFile -a C LAMMPS_GUI-macOS-multiarch-${VERSION}.dmg
rm icon.rsrc rm icon.rsrc
echo "Delete temporary disk images" echo "Delete temporary disk images"

View File

@ -3,9 +3,10 @@
APP_NAME=lammps-gui APP_NAME=lammps-gui
DESTDIR=${PWD}/LAMMPS_GUI DESTDIR=${PWD}/LAMMPS_GUI
SYSROOT="$1" SYSROOT="$1"
VERSION="$2"
echo "Delete old files, if they exist" echo "Delete old files, if they exist"
rm -rvf ${DESTDIR}/LAMMPS_GUI ${DESTDIR}/LAMMPS-Win10-amd64.zip rm -rvf ${DESTDIR}/LAMMPS_GUI ${DESTDIR}/LAMMPS-Win10-amd64*.zip
echo "Create staging area for deployment and populate" echo "Create staging area for deployment and populate"
DESTDIR=${DESTDIR} cmake --install . --prefix "/" DESTDIR=${DESTDIR} cmake --install . --prefix "/"
@ -60,5 +61,5 @@ cat > ${DESTDIR}/bin/qt.conf <<EOF
[Paths] [Paths]
Plugins = ../qt5plugins Plugins = ../qt5plugins
EOF EOF
zip -9rvD LAMMPS-Win10-amd64.zip LAMMPS_GUI zip -9rvD LAMMPS-Win10-amd64-${VERSION}.zip LAMMPS_GUI

View File

@ -226,6 +226,20 @@ arguments of the "dump" command. See the
.B LAMMPS .B LAMMPS
manual for details on either of the two commands. manual for details on either of the two commands.
.TP .TP
\fB\-r2info <restart file> <keyword> ...\fR or
\fB\-restart2info <restart file> <keyword> ...\fR
Write information about the <restart file> previously written by
.B LAMMPS
to the screen and immediately exit. Following <restart file>
argument, additional keywords for the
.B LAMMPS
"info" command may be added to increase the amount of information
written. By default "system" "group" "fix" "compute" are already
set. See the
.B LAMMPS
manual for details on the "info" command.
.TP
.TP
\fB\-sc <file name>\fR or \fB\-screen <file name>\fR \fB\-sc <file name>\fR or \fB\-screen <file name>\fR
Specify a file for Specify a file for
.B LAMMPS .B LAMMPS

View File

@ -153,7 +153,12 @@ development headers to compile (if those are not found locally a recent
version of that library will be downloaded and compiled along with version of that library will be downloaded and compiled along with
LAMMPS and the test programs) and will download and compile a specific LAMMPS and the test programs) and will download and compile a specific
version of the `GoogleTest <https://github.com/google/googletest/>`_ C++ version of the `GoogleTest <https://github.com/google/googletest/>`_ C++
test framework that is used to implement the tests. test framework that is used to implement the tests. Those unit tests
may be combined with memory access and leak checking with valgrind
(see below for how to enable it). In that case, running so-called
death tests will create a lot of false positives and thus they can be
disabled by configuring compilation with the additional setting
``-D SKIP_DEATH_TESTS=on``.
.. admonition:: Software version and LAMMPS configuration requirements .. admonition:: Software version and LAMMPS configuration requirements
:class: note :class: note

View File

@ -8,7 +8,8 @@ explains how to do this for building both with CMake and make.
* `FFT library`_ for use with the :doc:`kspace_style pppm <kspace_style>` command * `FFT library`_ for use with the :doc:`kspace_style pppm <kspace_style>` command
* `Size of LAMMPS integer types and size limits`_ * `Size of LAMMPS integer types and size limits`_
* `Read or write compressed files`_ * `Read or write compressed files`_
* `Output of JPG, PNG, and move files` via the :doc:`dump image <dump_image>` or :doc:`dump movie <dump_image>` commands * `Output of JPEG, PNG, and movie files`_ via the :doc:`dump image <dump_image>` or :doc:`dump movie <dump_image>` commands
* `Support for downloading files`_
* `Memory allocation alignment`_ * `Memory allocation alignment`_
* `Workaround for long long integers`_ * `Workaround for long long integers`_
* `Exception handling when using LAMMPS as a library`_ to capture errors * `Exception handling when using LAMMPS as a library`_ to capture errors
@ -19,7 +20,7 @@ explains how to do this for building both with CMake and make.
.. _cxx11: .. _cxx11:
C++11 standard compliance C++11 standard compliance
------------------------------------------ -------------------------
A C++11 standard compatible compiler is a requirement for compiling LAMMPS. A C++11 standard compatible compiler is a requirement for compiling LAMMPS.
LAMMPS version 3 March 2020 is the last version compatible with the previous LAMMPS version 3 March 2020 is the last version compatible with the previous
@ -31,12 +32,16 @@ flags to enable C++11 compliance. Example for GNU c++ 4.8.x:
CCFLAGS = -g -O3 -std=c++11 CCFLAGS = -g -O3 -std=c++11
Individual packages may require compliance with a later C++ standard
like C++14 or C++17. These requirements will be documented with the
:doc:`individual packages <Packages_details>`.
---------- ----------
.. _fft: .. _fft:
FFT library FFT library
--------------------- -----------
When the KSPACE package is included in a LAMMPS build, the When the KSPACE package is included in a LAMMPS build, the
:doc:`kspace_style pppm <kspace_style>` command performs 3d FFTs which :doc:`kspace_style pppm <kspace_style>` command performs 3d FFTs which
@ -341,8 +346,8 @@ in whichever ``lib/gpu/Makefile`` is used must be the same as above.
.. _graphics: .. _graphics:
Output of JPG, PNG, and movie files Output of JPEG, PNG, and movie files
-------------------------------------------------- ------------------------------------
The :doc:`dump image <dump_image>` command has options to output JPEG or The :doc:`dump image <dump_image>` command has options to output JPEG or
PNG image files. Likewise, the :doc:`dump movie <dump_image>` command PNG image files. Likewise, the :doc:`dump movie <dump_image>` command
@ -356,9 +361,9 @@ requires the following settings:
.. code-block:: bash .. code-block:: bash
-D WITH_JPEG=value # yes or no -D WITH_JPEG=value # yes or no
# default = yes if CMake finds JPEG files, else no # default = yes if CMake finds JPEG development files, else no
-D WITH_PNG=value # yes or no -D WITH_PNG=value # yes or no
# default = yes if CMake finds PNG and ZLIB files, else no # default = yes if CMake finds PNG and ZLIB development files, else no
-D WITH_FFMPEG=value # yes or no -D WITH_FFMPEG=value # yes or no
# default = yes if CMake can find ffmpeg, else no # default = yes if CMake can find ffmpeg, else no
@ -446,12 +451,58 @@ during a run.
available using a compression library instead, which is what the available using a compression library instead, which is what the
:ref:`COMPRESS package <PKG-COMPRESS>` enables. :ref:`COMPRESS package <PKG-COMPRESS>` enables.
--------------------------------------------------
.. _libcurl:
Support for downloading files
-----------------------------
.. versionadded:: TBD
The :doc:`geturl command <geturl>` command uses the `the libcurl library
<https://curl.se/libcurl/>`_ to download files. This requires that
LAMMPS is compiled accordingly which needs the following settings:
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D WITH_CURL=value # yes or no
# default = yes if CMake finds CURL development files, else no
Usually these settings are all that is needed. If CMake cannot
find the graphics header, library, executable files, you can set
these variables:
.. code-block:: bash
-D CURL_INCLUDE_DIR=path # path to folder which contains curl.h header file
-D CURL_LIBRARY=path # path to libcurls.a (.so) file
.. tab:: Traditional make
.. code-block:: make
LMP_INC = -DLAMMPS_CURL <other LMP_INC settings>
CURL_INC = -I/usr/local/include # path to curl folder with curl.h
CURL_PATH = -L/usr/lib # paths to libcurl.a(.so) if make cannot find it
CURL_LIB = -lcurl # library names
As with CMake, you do not need to set ``CURL_INC`` or ``CURL_PATH``,
if make can find the libcurl header and library files in their
default system locations. You must specify ``CURL_LIB`` with a
paths or linker flags to link to libcurl.
---------- ----------
.. _align: .. _align:
Memory allocation alignment Memory allocation alignment
--------------------------------------- ---------------------------
This setting enables the use of the "posix_memalign()" call instead of This setting enables the use of the "posix_memalign()" call instead of
"malloc()" when LAMMPS allocates large chunks of memory. Vector "malloc()" when LAMMPS allocates large chunks of memory. Vector

View File

@ -54,6 +54,7 @@ table above.
* :doc:`echo <echo>` * :doc:`echo <echo>`
* :doc:`fix <fix>` * :doc:`fix <fix>`
* :doc:`fix_modify <fix_modify>` * :doc:`fix_modify <fix_modify>`
* :doc:`geturl <geturl>`
* :doc:`group <group>` * :doc:`group <group>`
* :doc:`if <if>` * :doc:`if <if>`
* :doc:`improper_coeff <improper_coeff>` * :doc:`improper_coeff <improper_coeff>`

View File

@ -98,10 +98,26 @@ get access to the other included executables.
Linux on x86\_64 Linux on x86\_64
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
After downloading and unpacking the For Linux with x86\_64 CPU there are currently two variants. The first
is compiled on Ubuntu 20.04LTS, is using some wrapper scripts, and
should be compatible with more recent Linux distributions. After
downloading and unpacking the
``LAMMPS-Linux-x86_64-GUI-<version>.tar.gz`` package. You can switch ``LAMMPS-Linux-x86_64-GUI-<version>.tar.gz`` package. You can switch
into the "LAMMPS_GUI" folder and execute "./lammps-gui" directly. into the "LAMMPS_GUI" folder and execute "./lammps-gui" directly.
The second variant uses `flatpak <https://www.flatpak.org>`_ and
requires the flatpak management and runtime software to be installed.
After downloading the ``LAMMPS-GUI-Linux-x86_64-GUI-<version>.tar.gz``
flatpak bundle, you can install it with ``flatpak install --user
LAMMPS-GUI-Linux-x86_64-GUI-<version>.tar.gz``. After installation,
LAMMPS-GUI should be integrated into your desktop environment under
"Applications > Science" but also can be launched from the console with
``flatpak run org.lammps.lammps-gui``. The flatpak bundle also includes
the console LAMMPS executable ``lmp`` which can be launched to run
simulations with, for example: ``flatpak run --command=lmp
org.lammps.lammps-gui -in in.melt``.
Compiling from Source Compiling from Source
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
@ -371,6 +387,8 @@ record a separate log for each run attempt by using the command
at the beginning of an input file. That would record logs to files at the beginning of an input file. That would record logs to files
``logfile-1.txt``, ``logfile-2.txt``, and so on for successive runs. ``logfile-1.txt``, ``logfile-2.txt``, and so on for successive runs.
.. _snapshot_viewer:
Snapshot Image Viewer Snapshot Image Viewer
--------------------- ---------------------
@ -400,10 +418,16 @@ Otherwise the default sequence of colors of the :doc:`dump image
<dump_image>` command is assigned to the different atom types and the <dump_image>` command is assigned to the different atom types and the
diameters are all the same. diameters are all the same.
.. image:: JPG/lammps-gui-image.png .. figure:: JPG/lammps-gui-image.png
:align: center :align: center
:scale: 50% :scale: 50%
Visualization of LAMMPS "peptide" example
.. versionchanged:: 1.6
Buttons for toggling shininess and re-centering were added.
The default image size, some default image quality settings, the view The default image size, some default image quality settings, the view
style and some colors can be changed in the ``Preferences`` dialog style and some colors can be changed in the ``Preferences`` dialog
window. From the image viewer window further adjustments can be made: window. From the image viewer window further adjustments can be made:
@ -442,6 +466,12 @@ 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 dialog will pop up asking whether to cancel the exit operation, or to
save or not save the buffer contents to a file. 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.
Context Specific Word Completion Context Specific Word Completion
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -471,11 +501,12 @@ Line Reformatting
The editor supports reformatting lines according to the syntax in order The editor supports reformatting lines according to the syntax in order
to have consistently aligned lines. This primarily means adding to have consistently aligned lines. This primarily means adding
whitespace padding to commands, type specifiers, IDs and names. This whitespace padding to commands, type specifiers, IDs and names. This
reformatting is performed by default when hitting the 'Enter' key to reformatting is performed manually by hitting the 'Tab' key. It is
start a new line. This feature can be turned on or off in the also possible to have this done automatically when hitting the 'Enter'
``Preferences`` dialog, but it can still be manually performed by key to start a new line. This feature can be turned on or off in the
hitting the 'TAB' key. The amount of padding can be adjusted in the ``Preferences`` dialog for ``Editor Settings`` with the
``Preferences`` dialog for the *Editor*. "Reformat with 'Enter'" checkbox. The amount of padding for multiple
categories can be adjusted in the same dialog.
Internally this functionality is achieved by splitting the line into Internally this functionality is achieved by splitting the line into
"words" and then putting it back together with padding added where the "words" and then putting it back together with padding added where the
@ -504,13 +535,40 @@ keyboard, the first of those entries is chosen.
If the word under the cursor is a file, then additionally the context 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. menu has an entry to open the file in a read-only text viewer window.
This is a convenient way to view the contents of files that are If the file is a LAMMPS restart file, instead the menu entry offers to
referenced in the input. The file viewer also supports on-the-fly :ref:`inspect the restart <inspect_restart>`.
The text viewer is a convenient way to view the contents of files that
are referenced in the input. The file viewer also supports on-the-fly
decompression based on the file name suffix in a :ref:`similar fashion decompression based on the file name suffix in a :ref:`similar fashion
as available with LAMMPS <gzip>`. If the necessary decompression as available with LAMMPS <gzip>`. If the necessary decompression
program is missing or the file cannot be decompressed, the viewer window program is missing or the file cannot be decompressed, the viewer window
will contain a corresponding message. will contain a corresponding message.
.. _inspect_restart:
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
:doc:`info command <info>` with system information stored in the
restart. The second window is text viewer containing a data file
generated with a :doc:`write_data command <write_data>`. The third
window is a :ref:`Snapshot Image Viewer <snapshot_viewer>` containing a
visualization of the system in the restart.
If the restart file is larger than 250 MBytes, a dialog will ask
for confirmation before continuing, since large restart files
may require large amounts of RAM since the entire system must
be read into RAM. Thus restart file for large simulations that
have been run on an HPC cluster may overload a laptop or local
workstation. The ``Show Details...`` button will display a rough
estimate of the additional memory required.
Menu Menu
---- ----
@ -530,6 +588,7 @@ The ``File`` menu offers the usual options:
- ``New`` clears the current buffer and resets the file name to ``*unknown*`` - ``New`` clears the current buffer and resets the file name to ``*unknown*``
- ``Open`` opens a dialog to select a new file for editing in the *Editor* - ``Open`` opens a dialog to select a new file for editing in the *Editor*
- ``View`` opens a dialog to select a file for viewing in a *separate* window (read-only) with support for on-the-fly decompression as explained above. - ``View`` opens a dialog to select a file for viewing in a *separate* window (read-only) with support for on-the-fly decompression as explained above.
- ``Inspect restart`` opens a dialog to select a file. If that file is a :doc:`LAMMPS restart <write_restart>` three windows with :ref:`information about the file are opened <inspect_restart>`.
- ``Save`` saves the current file; if the file name is ``*unknown*`` - ``Save`` saves the current file; if the file name is ``*unknown*``
a dialog will open to select a new file name a dialog will open to select a new file name
- ``Save As`` opens a dialog to select and new file name (and folder, if - ``Save As`` opens a dialog to select and new file name (and folder, if
@ -696,13 +755,15 @@ General Settings:
log) of the application can be set. log) of the application can be set.
- *Select Text Font:* Opens a font selection dialog where the type and - *Select Text Font:* Opens a font selection dialog where the type and
size for the text editor and log font of the application can be set. size for the text editor and log font of the application can be set.
- *GUI update interval:* Allows to set the time interval between GUI - *GUI update interval:* Allows to set the time interval between GUI and
and data updates during a LAMMPS run in milliseconds. The default is data updates during a LAMMPS run in milliseconds. The default is to
to update the GUI every 10 milliseconds. This is good for most cases. update the GUI every 10 milliseconds. This is good for many cases.
For LAMMPS runs that run *very* fast, however, data may be missed and Set this to 100 milliseconds or more if LAMMPS-GUI consumes too many
through lowering this interval, this can be corrected. However, this resources during a run. For LAMMPS runs that run *very* fast (for
will make the GUI use more resources, which may be a problem on some example in tutorial examples), however, data may be missed and through
computers with slower CPUs and a small number of CPU cores. This lowering this interval, this can be corrected. However, this will
make the GUI use more resources, which may be a problem on some
computers with slower CPUs and a small number of CPU cores. This
setting may be changed to a value between 1 and 1000 milliseconds. setting may be changed to a value between 1 and 1000 milliseconds.
Accelerators: Accelerators:
@ -719,18 +780,23 @@ Snapshot Image:
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
This tab allows setting defaults for the snapshot images displayed in This tab allows setting defaults for the snapshot images displayed in
the ``Image Viewer`` window, such as its dimensions and the zoom the ``Image Viewer`` window, such as its dimensions and the zoom factor
factor applied. The *Antialias* switch will render images with twice applied. The *Antialias* switch will render images with twice the
the number of pixels for width and height and then smoothly scale the number of pixels for width and height and then smoothly scale the image
image back to the requested size. This produces higher quality images back to the requested size. This produces higher quality images with
with smoother edges at the expense of requiring more CPU time to smoother edges at the expense of requiring more CPU time to render the
render the image. The *HQ Image mode* option turns on screen space image. The *HQ Image mode* option turns on screen space ambient
ambient occlusion (SSAO) mode when rendering images. This is also occlusion (SSAO) mode when rendering images. This is also more time
more time consuming, but produces a more 'spatial' representation of consuming, but produces a more 'spatial' representation of the system
the system shading of atoms by their depth. The *VDW Style* checkbox shading of atoms by their depth. The *Shiny Image mode* option will
selects whether atoms are represented by space filling spheres when render objects with a shiny surface when enabled. Otherwise the
checked or by smaller spheres and sticks. Finally there are a couple surfaces will be matted. The *Show Box* option selects whether the
of drop down lists to select the background and box colors. system box is drawn as a colored set of sticks. Similarly, the *Show
Axes* option selects whether a representation of the three system axes
will be drawn as colored sticks. The *VDW Style* checkbox selects
whether atoms are represented by space filling spheres when checked or
by smaller spheres and sticks. Finally there are a couple of drop down
lists to select the background and box colors.
Editor Settings: Editor Settings:
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
@ -741,9 +807,11 @@ ranges, IDs (e.g. for fixes), and names (e.g. for groups). The value
set is the minimum width for the text element and it can be chosen in set is the minimum width for the text element and it can be chosen in
the range between 1 and 32. the range between 1 and 32.
The two settings which follow enable or disable the automatic The three settings which follow enable or disable the automatic
reformatting when hitting the 'Enter' key and the automatic display of reformatting when hitting the 'Enter' key, the automatic display of
the completion pop-up window. the completion pop-up window, and whether auto-save mode is enabled.
In auto-save mode the editor buffer is saved before a run or before
exiting LAMMPS-GUI.
----------- -----------

View File

@ -14,7 +14,13 @@ choices among them.
The :doc:`dump image <dump_image>` and :doc:`dump movie <dump_image>` The :doc:`dump image <dump_image>` and :doc:`dump movie <dump_image>`
styles can output internally rendered images or convert them to a movie styles can output internally rendered images or convert them to a movie
during the MD run. during the MD run. It is also possible to create visualizations from
LAMMPS inputs or restart file with the :doc:`LAMMPS-GUI
<Howto_lammps_gui>`, which uses the :doc:`dump image <dump_image>`
command internally. The ``Snapshot Image Viewer`` can be used to
adjust the visualization of the system interactively and then export
the corresponding LAMMPS commands to the clipboard to be inserted
into input files.
Programs included with LAMMPS as auxiliary tools can convert Programs included with LAMMPS as auxiliary tools can convert
between LAMMPS format files and other formats. See the :doc:`Tools between LAMMPS format files and other formats. See the :doc:`Tools

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -22,6 +22,7 @@ letter abbreviation can be used:
* :ref:`-ro or -reorder <reorder>` * :ref:`-ro or -reorder <reorder>`
* :ref:`-r2data or -restart2data <restart2data>` * :ref:`-r2data or -restart2data <restart2data>`
* :ref:`-r2dump or -restart2dump <restart2dump>` * :ref:`-r2dump or -restart2dump <restart2dump>`
* :ref:`-r2info or -restart2info <restart2info>`
* :ref:`-sc or -screen <screen>` * :ref:`-sc or -screen <screen>`
* :ref:`-sr or skiprun <skiprun>` * :ref:`-sr or skiprun <skiprun>`
* :ref:`-sf or -suffix <suffix>` * :ref:`-sf or -suffix <suffix>`
@ -503,6 +504,37 @@ e.g. the *nfile* and *fileper* keywords. See the
---------- ----------
.. _restart2info:
**-restart2info restartfile keyword ...**
.. versionadded:: TBD
Write out some info about the restart file and and immediately exit.
This is the same operation as if the following 2-line input script were
run:
.. code-block:: LAMMPS
read_restart restartfile
info system group computes fixes
The specified restartfile name may contain the wild-card character "\*".
The restartfile name may also contain the wild-card character "%". The
meaning of these characters is explained on the :doc:`read_restart
<read_restart>` documentation. The use of "%" means that a parallel
restart file can be read. Note that a filename such as file.\* may need
to be enclosed in quotes or the "\*" character prefixed with a backslash
("\") to avoid shell expansion of the "\*" character.
Optional keywords may follow the restartfile argument. These must be
valid keywords for the :doc:`info command <info>`. The most useful
ones - *system*, *group*, *computes*, and *fixes* - are already applied.
Appending keywords like *coeffs* or *communication* may provide
additional useful information stored in the restart file.
----------
.. _screen: .. _screen:
**-screen file** **-screen file**

View File

@ -92,7 +92,7 @@ Miscellaneous tools
* :ref:`emacs <emacs>` * :ref:`emacs <emacs>`
* :ref:`i-PI <ipi>` * :ref:`i-PI <ipi>`
* :ref:`kate <kate>` * :ref:`kate <kate>`
* :ref:`LAMMPS GUI <lammps_gui>` * :ref:`LAMMPS-GUI <lammps_gui>`
* :ref:`LAMMPS magic patterns for file(1) <magic>` * :ref:`LAMMPS magic patterns for file(1) <magic>`
* :ref:`Offline build tool <offline>` * :ref:`Offline build tool <offline>`
* :ref:`singularity/apptainer <singularity_tool>` * :ref:`singularity/apptainer <singularity_tool>`
@ -524,6 +524,7 @@ The LAMMPS-GUI has been successfully compiled and tested on:
- Fedora Linux 40 x86\_64 using GCC 14, Qt version 6.7 - Fedora Linux 40 x86\_64 using GCC 14, Qt version 6.7
- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS - Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS
- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS - Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS
- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.40, Qt version 6.7
- Windows 10 and 11 x86_64 with MinGW / GCC 10.0 cross-compiler on Fedora 38, Qt version 5.15LTS - Windows 10 and 11 x86_64 with MinGW / GCC 10.0 cross-compiler on Fedora 38, Qt version 5.15LTS
.. _lammps_gui_install: .. _lammps_gui_install:
@ -532,14 +533,28 @@ The LAMMPS-GUI has been successfully compiled and tested on:
Pre-compiled executables Pre-compiled executables
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
Pre-compiled LAMMPS executable packages that include the GUI are currently Pre-compiled LAMMPS executable packages that include the GUI are
available from https://download.lammps.org/static or currently available from https://download.lammps.org/static or
https://github.com/lammps/lammps/releases. You can unpack the archives https://github.com/lammps/lammps/releases. For Windows, you need to
(or mount the macOS disk image) and run the GUI directly in place. The download and then run the application installer. For macOS you download
folder may also be moved around and added to the ``PATH`` environment and mount the disk image and then drag the application bundle to the
variable so the executables will be found automatically. The LAMMPS-GUI Applications folder. For Linux (x86_64) you currently have two
executable is called ``lammps-gui`` and either takes no arguments or options: 1) you can download the tar.gz archive, unpack it and run the
attempts to load the first argument as LAMMPS input file. GUI directly in place. The ``LAMMPS_GUI`` folder may also be moved
around and added to the ``PATH`` environment variable so the executables
will be found automatically. 2) you can download the `Flatpak file
<https://www.flatpak.org/>`_ and then install it locally with the
*flatpak* command: ``flatpak install --user
LAMMPS-Linux-x86_64-GUI-<version>.flatpak`` and run it with ``flatpak
run org.lammps.lammps-gui``. The flatpak bundle also includes the
command line version of LAMMPS and some LAMMPS tools like msi2lmp. The
can be launched by using the ``--command`` flag. For example to run
LAMMPS directly on the ``in.lj`` benchmark input you would type in the
``bench`` folder: ``flatpak run --command=lmp -in in.lj`` The flatpak
version should also appear in the applications menu of standard desktop
environments. The LAMMPS-GUI executable is called ``lammps-gui`` and
either takes no arguments or attempts to load the first argument as
LAMMPS input file.
.. _lammps_gui_compilation: .. _lammps_gui_compilation:
@ -1107,13 +1122,13 @@ necessary development headers and libraries are present.
.. code-block:: bash .. code-block:: bash
-D WITH_SWIG=on # to enable building any SWIG wrapper -D WITH_SWIG=on # to enable building any SWIG wrapper
-D BUILD_SWIG_JAVA=on # to enable building the Java wrapper -D BUILD_SWIG_JAVA=on # to enable building the Java wrapper
-D BUILD_SWIG_LUA=on # to enable building the Lua wrapper -D BUILD_SWIG_LUA=on # to enable building the Lua wrapper
-D BUILD_SWIG_PERL5=on # to enable building the Perl 5.x wrapper -D BUILD_SWIG_PERL5=on # to enable building the Perl 5.x wrapper
-D BUILD_SWIG_PYTHON=on # to enable building the Python wrapper -D BUILD_SWIG_PYTHON=on # to enable building the Python wrapper
-D BUILD_SWIG_RUBY=on # to enable building the Ruby wrapper -D BUILD_SWIG_RUBY=on # to enable building the Ruby wrapper
-D BUILD_SWIG_TCL=on # to enable building the Tcl wrapper -D BUILD_SWIG_TCL=on # to enable building the Tcl wrapper
Manual building allows a little more flexibility. E.g. one can choose Manual building allows a little more flexibility. E.g. one can choose

View File

@ -45,6 +45,7 @@ Commands
fix fix
fix_modify fix_modify
fitpod_command fitpod_command
geturl
group group
group2ndx group2ndx
hyper hyper

View File

@ -12,10 +12,10 @@ Syntax
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix ID group-ID bond/create Nevery itype jtype Rmin bondtype keyword values ... fix ID group-ID style Nevery itype jtype Rmin bondtype keyword values ...
* ID, group-ID are documented in :doc:`fix <fix>` command * ID, group-ID are documented in :doc:`fix <fix>` command
* bond/create = style name of this fix command * style = *bond/create* or *bond/create/angle*
* Nevery = attempt bond creation every this many steps * Nevery = attempt bond creation every this many steps
* itype,jtype = atoms of itype can bond to atoms of jtype (1-Ntypes or type label) * itype,jtype = atoms of itype can bond to atoms of jtype (1-Ntypes or type label)
* Rmin = 2 atoms separated by less than Rmin can bond (distance units) * Rmin = 2 atoms separated by less than Rmin can bond (distance units)

View File

@ -8,151 +8,232 @@ Syntax
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix ID group-ID colvars configfile keyword values ... fix ID group-ID colvars *configfile* keyword value ...
* ID, group-ID are documented in :doc:`fix <fix>` command * *ID*, *group-ID* are documented in :doc:`fix <fix>` command
* colvars = style name of this fix command * "colvars" = style name of this fix command
* configfile = the configuration file for the colvars module * *configfile* = configuration file for Colvars (use "*none*" to provide it inline)
* keyword = *input* or *output* or *seed* or *unwrap* or *tstat* * keyword = *output* or *input* or *unwrap* or *tstat* or *seed*
.. parsed-literal:: .. parsed-literal::
*output* value = state filename/prefix for Colvars (default: "out")
*input* arg = colvars.state file name or prefix or NULL (default: NULL) *input* value = input state filename/prefix for Colvars (optional, default: "NULL")
*output* arg = output filename prefix (default: out) *unwrap* value = "yes" or "no" (default: "yes")
*seed* arg = seed for random number generator (default: 1966) *tstat* value = fix ID of thermostat applied to relevant atoms (default: "NULL")
*unwrap* arg = *yes* or *no* *seed* value = seed for random number generator (default: 1966)
use unwrapped coordinates in collective variables (default: yes)
*tstat* arg = fix id of a thermostat or NULL (default: NULL)
Examples Examples
"""""""" """"""""
.. code-block:: LAMMPS .. code-block:: LAMMPS
fix mtd all colvars peptide.colvars.inp seed 2122 input peptide.colvars.state output peptide # Create the fix using a config file, set prefix for its output files
fix abf all colvars colvars.inp tstat 1 fix Colvars all colvars colvars.inp output ${JOB}
# Communicate the LAMMPS target temperature to the Colvars module
fix_modify Colvars tstat NPT
# Add a new restraint specific to this LAMMPS run
fix_modify Colvars config """
harmonic {
name restraint
colvars distance1 distance2
centers ${ref1} ${ref2}
forceConstant ${kappa}
}"""
Description Description
""""""""""" """""""""""
This fix interfaces LAMMPS to the collective variables (Colvars) This fix interfaces LAMMPS to the collective variables `Colvars
library, which allows to calculate potentials of mean force (PMFs) for <https://colvars.github.io>`_ library, which allows to accelerate sampling of
any set of colvars, using sampling methods, including but not limited to rare events and the computation of free energy surfaces and potentials of
Adaptive Biasing Force (ABF), metadynamics (MtD), Steered Molecular mean force (PMFs) for any set of collective variables using a variety of
Dynamics (SMD) and Umbrella Sampling (US) via a flexible harmonic sampling methods (e.g. umbrella-sampling, metadynamics, ABF...).
restraint bias.
This documentation describes only the ``fix colvars`` command itself in This documentation describes only the "fix colvars" command itself in
a LAMMPS script. The Colvars library is documented via the included a LAMMPS script. The Colvars library is fully documented in the included
`PDF manual <PDF/colvars-refman-lammps.pdf>`_ or at the webpage `PDF manual <PDF/colvars-refman-lammps.pdf>`_ or in the webpage
`https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html `https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html
<https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html>`_. <https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html>`_.
The Colvars library is developed at `https://github.com/Colvars/colvars The Colvars library is developed at `https://github.com/Colvars/colvars
<https://github.com/Colvars/colvars>`_ A detailed discussion of its <https://github.com/colvars/colvars>`_ A detailed discussion of its
implementation is in :ref:`(Fiorin) <Fiorin>`; additional references are implementation is in :ref:`(Fiorin) <Fiorin>`; additional citations for
printed at runtime based on specific features being used. specific features are printed at runtime if these features are used.
There are some example scripts for using this package with LAMMPS in the There are example scripts on the `Colvars website <https://colvars.github.io>`_
``examples/PACKAGES/colvars`` directory. as well as in the ``examples/PACKAGES/colvars`` directory in the LAMMPS
source tree.
---------- ----------
The only required argument to ``fix colvars`` is the filename to the The only required argument to the fix is the name of the Colvars
Colvars configuration file that contains the definition of the variables configuration file. The contents of this file are independent from the
and any biasing methods applied to them. from the MD program in which MD engine in which the Colvars library has been integrated, save for the
the colvars library has been integrated. units that are specific to each engine. In LAMMPS, the units used by
Colvars are consistent with those specified by the :doc:`units <units>`
command.
The *group-ID* entry is ignored. ``fix colvars`` will always apply to .. versionadded:: Colvars_2023-06-04 The special value "*none*"
(lowercase) initializes an empty Colvars module, which
allows loading configuration dynamically using
:doc:`fix_modify <fix_modify>` (see below).
The *group-ID* entry is ignored. "fix colvars" will always apply to
the entire system, but specific atoms will be selected based on the entire system, but specific atoms will be selected based on
selection keywords in the Colvars configuration file or files. There is selection keywords in the Colvars configuration file or files. There is
no need to define multiple ``fix colvars`` instances and it is not no need to define multiple "fix colvars" instances and it is not
allowed. allowed.
The *output* keyword allows to specify the prefix of output files The "output" keyword allows to specify the prefix of output files generated
generated by Colvars, for example ``output.colvars.traj`` or by Colvars, for example "*output*.colvars.traj" or "output.pmf". Supplying
``output.pmf``. an empty string suppresses any file output from Colvars to file, except for
data saved into the LAMMPS :doc:`binary restart <restart>` files.
The *input* keyword allows to specify an optional state file that The "input" keyword allows to specify an optional state file that contains
contains the restart information needed to continue a previous the restart information needed to continue a previous simulation state.
simulation state. Note, however, that ``fix colvars`` records its state However, because "fix colvars" records its state in LAMMPS :doc:`binary
in :doc:`binary restart <restart>` files, so when using the restart <restart>` files, this is usually not needed when using the
:doc:`read_restart <read_restart>` command, this is usually not needed. :doc:`read_restart <read_restart>` command.
The *seed* keyword contains the seed for the random number generator The *unwrap* keyword controls whether wrapped or unwrapped coordinates are
used by Colvars. passed to the Colvars library for calculation of the collective variables and
the resulting forces. The default is *yes*, i.e. the image flags are used to
The *unwrap* keyword controls whether wrapped or unwrapped coordinates reconstruct the absolute atom positions. Setting this to *no* will use the
are passed to the Colvars library for calculation of the collective current local coordinates that are wrapped back into the simulation cell at
variables and the resulting forces. The default is *yes*, i.e. to use each re-neighboring step instead. For information about when and how this
the image flags to reconstruct the absolute atom positions. Setting affects results, please see
this to *no* will use the current local coordinates that are wrapped
back into the simulation cell at each re-neighboring instead. For
information about when and how this affects results, please see
`https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvar_atom_groups_wrapping `https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvar_atom_groups_wrapping
<https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvar_atom_groups_wrapping>`_. <https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvar_atom_groups_wrapping>`_.
The *tstat* keyword can be either NULL or the label of a thermostatting The *tstat* keyword can be either "NULL" or the label of a thermostatting
fix that thermostats all atoms in the fix colvars group. This will be fix that thermostats all atoms in the fix colvars group. This will be
used to let Colvars know what is the current thermostat target used to provide the colvars module with the current thermostat target
temperature. temperature.
Restart, fix_modify, output, run start/stop, minimize info The *seed* keyword contains the seed for the random number generator
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" that will be used in the colvars module.
This fix writes the current status of the colvars module into
:doc:`binary restart files <restart>`. This is in addition to the text
mode ``.colvars.state`` written by Colvars itself and the information in
both files is identical.
The :doc:`fix_modify <fix_modify>` *energy* option is supported by this Restarting
fix to add the energy change from the biasing force added by Colvars to """"""""""
the global potential energy of the system as part of :doc:`thermodynamic
output <thermo_style>`. The default setting for this fix is
:doc:`fix_modify energy no <fix_modify>`.
The *fix_modify configfile <config file>* option loads Colvars This fix writes the current state of the Colvars module into :doc:`binary
configuration from an additional file. This option can only be used, restart files <restart>`. This is in addition to the text-mode
after the system has been initialized with a :doc:`run <run>` command. ".colvars.state" state file that is written by the Colvars module itself.
The information contained in both files is identical, and the binary LAMMPS
restart file is also used by fix colvars when :doc:`read_restart
<read_restart>` is called in a LAMMPS script. In that case, there is
typically no need to specify the *input* keyword.
The *fix_modify config <quoted string>* option allows to add settings As long as LAMMPS binary restarts will be used to continue a simulation, it
from inline strings. Those have to fit on a single line when enclosed in is safe to delete the ".colvars.state" files to save space. However, when a
a pair of double quotes ("), or can span multiple lines when bracketed LAMMPS simulation is restarted using :doc:`read_data <read_data>`, the
by a pair of triple double quotes (""", like Python embedded Colvars state file must be available and loaded via the "input" keyword or
documentation). via a "fix_modify Colvars load" command (see below).
When restarting, the fix and the Colvars module should be created and
configured using either the original configuration file(s).
Output
""""""
This fix computes a global scalar which can be accessed by various This fix computes a global scalar which can be accessed by various
:doc:`output commands <Howto_output>`. The scalar is the Colvars energy :doc:`output commands <Howto_output>`. The scalar is the energy due to all
mentioned above. The scalar value calculated by this fix is external potentials defined in the Colvars configuration. The scalar value
"extensive". calculated by this fix is "extensive".
Aside from the state information in a ".colvars.state" file, other
`output files <https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html#sec:colvars_output>`_
are produced by Colvars depending on the type of simulation.
For this reason, the "output" keyword is required for fix colvars.
Controlling Colvars via `fix_modify`
""""""""""""""""""""""""""""""""""""
.. versionadded:: Colvars_2023-06-04
The :doc:`fix_modify <fix_modify>` command may be used on "fix colvars" in
either one of two ways:
(1) Provide updated values for the fix parameters, such as *output*, *input*,
*unwrap*, *tstat* and *seed*. Additionally, the :doc:`fix_modify
<fix_modify>` *energy* keyword is supported by this fix to add the energy
change from the biasing force added by Colvars to the global potential
energy of the system as part of :doc:`thermodynamic output <thermo_style>`
(the default is :doc:`fix_modify energy no <fix_modify>`).
For example, in a multi-step LAMMPS script involving multiple thermostats
(e.g. fix nvt followed by fix npt), Colvars can read a new thermostat's
target temperature like this:
.. code-block:: LAMMPS
fix NVT all nvt ...
fix Colvars all colvars <configfile> output equil1 tstat NVT
run <NUMSTEPS>
unfix nvt
fix NPT all n ...
fix_modify Colvars tstat NPT
fix_modify Colvars output equil2
(2) Call one of the scripting functions provided by the Colvars module
itself (a full list is available in the Colvars doc). The arguments
to these functions are provided as strings and passed to Colvars.
LAMMPS variables referenced by their string representation
"${variable}" will be expanded immediately. Note also that this
variable expansion *will also happen within quotes*, similar to what the
:doc:`mdi <mdi>` command provides. This feature makes it possible to use
the values of certain LAMMPS variables in Colvars configuration strings.
For example, to synchronize the LAMMPS and Colvars dump frequencies:
.. code-block:: LAMMPS
variable freq index 10000
dump myDump all atom/zstd ${freq} dump.atom.zstd
fix_modify Colvars config "colvarsTrajFrequency ${freq}"
.. note::
Although it is possible to use :doc:`fix_modify <fix_modify>` at any time,
its results will only reflect the state of the Colvars module at the end
of the most recent "run" or "minimize" command. Any new configuration
added via "fix_modify Colvars configfile" or "fix_modify Colvars config"
will only be loaded when the simulation resumes. Configuration files or
strings will be parsed in the same sequence as they were provided in the
LAMMPS script.
Restrictions Restrictions
"""""""""""" """"""""""""
``fix colvars`` is provided by the COLVARS package and is only available This fix is provided by the COLVARS package and is only available if LAMMPS
if LAMMPS was built with that package. Some of the features also was built with that package (default in most builds). Some of the features
require code available from the LEPTON package. See the :doc:`Build also require code available from the LEPTON package. See the :doc:`Build
package <Build_package>` page for more info. package <Build_package>` page for more info.
There can only be one Colvars instance defined at a time. Since the There can only be one Colvars instance defined at a time. Since the
interface communicates only the minimum amount of information and the interface communicates only the minimum required amount of information, and
Colvars module itself can handle an arbitrary number of collective the Colvars module itself can handle an arbitrary number of collective
variables, this is not a limitation of functionality. variables, this is not a limitation of functionality.
Related commands Related commands
"""""""""""""""" """"""""""""""""
:doc:`fix smd <fix_smd>`, :doc:`fix spring <fix_spring>`, :doc:`fix smd <fix_smd>`, :doc:`fix spring <fix_spring>`,
:doc:`fix plumed <fix_plumed>` :doc:`fix plumed <fix_plumed>`
Default
"""""""
The default options are input = NULL, output = out, seed = 1966, unwrap yes,
and tstat = NULL.
---------- ----------
.. _Fiorin: .. _Fiorin:
**(Fiorin)** Fiorin, Klein, Henin, Mol. Phys., DOI:10.1080/00268976.2013.813594 **(Fiorin)** Fiorin, Klein, Henin, Mol. Phys. 111, 3345 (2013) https://doi.org/10.1080/00268976.2013.813594
.. _Colvars_LAMMPS_doc:
https://colvars.github.io/colvars-refman-lammps/colvars-refman-lammps.html

82
doc/src/geturl.rst Normal file
View File

@ -0,0 +1,82 @@
.. index:: geturl
geturl command
==============
Syntax
""""""
.. code-block:: LAMMPS
geturl url keyword args ...
* url = URL of the file to download
* zero or more keyword argument pairs may be provided
* keyword = *output* or *verify* or *overwrite* or *verbose*
.. parsed-literal::
*output* filename = write to *filename* instead of inferring the name from the URL
*verify* yes/no = verify SSL certificate and hostname if *yes*, do not if *no*
*overwrite* yes/no = if *yes* overwrite the output file in case it exists, do not if *no*
*verbose* yes/no = if *yes* write verbose debug output from libcurl to screen, do not if *no*
Examples
""""""""
.. code-block:: LAMMPS
geturl https://www.ctcms.nist.gov/potentials/Download/1990--Ackland-G-J-Vitek-V--Cu/2/Cu2.eam.fs
geturl https://github.com/lammps/lammps/blob/develop/bench/in.lj output in.bench-lj
Description
"""""""""""
.. versionadded:: TBD
Download a file from an URL to the local disk. This is implemented with
the `libcurl library <https:://curl.se/libcurl/>`_ which supports a
large variety of protocols including "http", "https", "ftp", "scp",
"sftp", "file". The transfer will only be performed on MPI rank 0.
The *output* keyword can be used to set the filename. By default, the last part
of the URL is used.
The *verify* keyword determines whether ``libcurl`` will validate the
SSL certificate and hostname for encrypted connections. Turning this
off may be required when using a proxy or connecting to a server with a
self-signed SSL certificate.
The *overwrite* keyword determines whether a file should be overwritten if it
already exists. If the argument is *no*, then the download will be skipped
if the file exists.
The *verbose* keyword determines whether a detailed protocol of the steps
performed by libcurl is written to the screen. Using the argument *yes*
can be used to debug connection issues when the *geturl* command does not
behave as expected. If the argument is *no*, geturl will operate silently
and only report the error status number provided by libcurl, in case of a
failure.
----------
Restrictions
""""""""""""
This command is part of the EXTRA-COMMAND package. It is only enabled
if LAMMPS was built with that package. See the :doc:`Build package
<Build_package>` page for more info. It also requires that LAMMPS was
built with support for `the libcurl library
<https://curl.se/libcurl/>`_. See the page about :ref:`Compiling LAMMPS
with libcurl support <libcurl>` for further info. If support for
libcurl is not included, using *geturl* will trigger an error.
Related commands
""""""""""""""""
:doc:`shell <shell>`
Default
"""""""
*verify* = yes, *overwrite* = yes

View File

@ -24,15 +24,18 @@ Examples
info all out log info all out log
info all out append info.txt info all out append info.txt
info styles all info styles all
info styles atom info styles atom styles command
Description Description
""""""""""" """""""""""
Print out information about the current internal state of the running Print out information about the current internal state of the running
LAMMPS process. This can be helpful when debugging or validating LAMMPS process. This can be helpful when debugging or validating complex
complex input scripts. Several output categories are available and input scripts. Several output categories are available and one or more
one or more output category may be requested. output categories may be requested. All category keywords take no
arguments, only *out* and *styles* take arguments as shown below. The
keywords are cumulative, may be abbreviated, and unknown keywords are
ignored.
The *out* flag controls where the output is sent. It can only be sent The *out* flag controls where the output is sent. It can only be sent
to one target. By default this is the screen, if it is active. The to one target. By default this is the screen, if it is active. The
@ -99,9 +102,12 @@ support. This lists the 3d-FFT engine, FFT precision, FFT library
used by the FFT engine. If the KOKKOS package is included, the settings used by the FFT engine. If the KOKKOS package is included, the settings
used for the KOKKOS package are displayed as well. used for the KOKKOS package are displayed as well.
The *styles* category prints the list of styles available in the The *styles* category prints the list of styles available in the current
current LAMMPS binary. It supports one of the following options LAMMPS binary. The *styles* keyword without option is the same as using
to control which category of styles is printed out: the "all" option. One of the following options may be used to control
which category of styles is printed out. To select multiple categories,
the styles keyword needs to be used multiple times with the desired
categories:
* all * all
* angle * angle

View File

@ -426,8 +426,8 @@ The *meam* and *meam/ms* pair styles are provided in the MEAM
package. They are only enabled if LAMMPS was built with that package. package. They are only enabled if LAMMPS was built with that package.
See the :doc:`Build package <Build_package>` page for more info. See the :doc:`Build package <Build_package>` page for more info.
The maximum number of elements, that can be read from the MEAM library The maximum number of elements that can be read from the MEAM library
file, is determined at compile time. The default is 8. If you need file is determined at compile time. The default is 8. If you need
support for more elements, you have to change the the constant 'MAXELT' support for more elements, you have to change the the constant 'MAXELT'
at the beginning of the file ``src/MEAM/meam.h`` and update/recompile at the beginning of the file ``src/MEAM/meam.h`` and update/recompile
LAMMPS. There is no limit on the number of atoms types. LAMMPS. There is no limit on the number of atoms types.

View File

@ -47,6 +47,12 @@ Restart files are saved in binary format to enable exact restarts,
meaning that the trajectories of a restarted run will precisely match meaning that the trajectories of a restarted run will precisely match
those produced by the original run had it continued on. those produced by the original run had it continued on.
Some information about a restart file can be gathered directly from the
command line when using LAMMPS with the :ref:`-restart2info
<restart2info>` command line flag. On Unix-like operating systems (like
Linux or macOS), one can also :ref:`configure the "file" command line
program <magic>` to display basic information about a restart file
The binary restart file format was not designed with backward, forward, The binary restart file format was not designed with backward, forward,
or cross-platform compatibility in mind, so the files are only expected or cross-platform compatibility in mind, so the files are only expected
to be read correctly by the same LAMMPS executable on the same platform. to be read correctly by the same LAMMPS executable on the same platform.
@ -130,7 +136,7 @@ these settings after the restart file is read.
* :doc:`newton bond <newton>` (see discussion of newton command below) * :doc:`newton bond <newton>` (see discussion of newton command below)
* :doc:`atom style <atom_style>` and :doc:`atom_modify <atom_modify>` settings id, map, sort * :doc:`atom style <atom_style>` and :doc:`atom_modify <atom_modify>` settings id, map, sort
* :doc:`comm style <comm_style>` and :doc:`comm_modify <comm_modify>` settings mode, cutoff, vel * :doc:`comm style <comm_style>` and :doc:`comm_modify <comm_modify>` settings mode, cutoff, vel
* :doc:`timestep <timestep>` * :doc:`timestep size <timestep>` and :doc:`timestep number <reset_timestep>`
* simulation box size and shape and :doc:`boundary <boundary>` settings * simulation box size and shape and :doc:`boundary <boundary>` settings
* atom :doc:`group <group>` definitions * atom :doc:`group <group>` definitions
* per-type atom settings such as :doc:`mass <mass>` * per-type atom settings such as :doc:`mass <mass>`

View File

@ -1186,6 +1186,7 @@ flaglog
flagN flagN
flagVF flagVF
flang flang
flatpak
fld fld
floralwhite floralwhite
Florez Florez
@ -1297,6 +1298,7 @@ Gershgorin
getrusage getrusage
getter getter
gettimeofday gettimeofday
geturl
gewald gewald
Gezelter Gezelter
Gflop Gflop
@ -1491,6 +1493,8 @@ hplanck
Hs Hs
hstyle hstyle
html html
http
https
hTST hTST
https https
hu hu
@ -2902,6 +2906,7 @@ plumedfile
pmb pmb
pmcmoves pmcmoves
pme pme
pmf
Pmolrotate Pmolrotate
Pmoltrans Pmoltrans
pN pN
@ -3348,6 +3353,7 @@ Schunk
Schuring Schuring
Schwen Schwen
Sci Sci
scp
screenshot screenshot
screenshots screenshots
Scripps Scripps
@ -3388,6 +3394,7 @@ setvel
sevenbody sevenbody
sfftw sfftw
sfree sfree
sftp
Sg Sg
sgcmc sgcmc
Shan Shan
@ -3902,6 +3909,7 @@ upenn
upto upto
Urbakh Urbakh
Urbana Urbana
url
UreyBradley UreyBradley
Usabiaga Usabiaga
usec usec

View File

@ -150,6 +150,7 @@ liblammpsplugin_t *liblammpsplugin_load(const char *lib)
ADDSYM(config_has_png_support); ADDSYM(config_has_png_support);
ADDSYM(config_has_jpeg_support); ADDSYM(config_has_jpeg_support);
ADDSYM(config_has_ffmpeg_support); ADDSYM(config_has_ffmpeg_support);
ADDSYM(config_has_curl_support);
ADDSYM(config_has_exceptions); ADDSYM(config_has_exceptions);
ADDSYM(config_has_package); ADDSYM(config_has_package);

View File

@ -203,6 +203,7 @@ struct _liblammpsplugin {
int (*config_has_png_support)(); int (*config_has_png_support)();
int (*config_has_jpeg_support)(); int (*config_has_jpeg_support)();
int (*config_has_ffmpeg_support)(); int (*config_has_ffmpeg_support)();
int (*config_has_curl_support)();
int (*config_has_exceptions)(); int (*config_has_exceptions)();
int (*config_has_package)(const char *); int (*config_has_package)(const char *);

View File

@ -1,629 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f out*.colvars.*"
fix 2 all colvars peptide.colvars
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
colvars: Creating proxy instance
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version 2018-11-16.
colvars: Please cite Fiorin et al, Mol Phys 2013:
colvars: https://doi.org/10.1080/00268976.2013.813594
colvars: in any publication based on this calculation.
colvars: SMP parallelism is available.
colvars: Using LAMMPS interface, version 2018-08-29.
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "peptide.colvars":
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 1
colvars: # colvarsRestartFrequency = 1000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "one"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "two"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables initialized, 2 in total.
colvars: ----------------------------------------------------------------------
colvars: Initializing a new "harmonic" instance.
colvars: # name = "h_pot"
colvars: # colvars = { one, two }
colvars: # outputEnergy = off [default]
colvars: # timeStepFactor = 1 [default]
colvars: # writeTISamples = off [default]
colvars: # writeTIPMF = off [default]
colvars: # centers = { 10, 10 }
colvars: # targetCenters = { 10, 10 } [default]
colvars: # outputCenters = off [default]
colvars: # forceConstant = 100
colvars: # targetForceConstant = -1 [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables biases initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Collective variables module (re)initialized.
colvars: ----------------------------------------------------------------------
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 1.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 1.
colvars: The restart output state file will be "rest.colvars.state".
colvars: The final output state file will be "out.colvars.state".
colvars: Writing to colvar trajectory file "out.colvars.traj".
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 12.011.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 12.011.
colvars: Performing analysis.
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 18.7 | 18.7 | 18.7 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta) on step 100
4 1.11098 8.97155e-05
6 0.996996 1.00568e-05
8 1.08 6.02345e-06
10 1.111 1.84253e-05
12 1.08 7.2713e-06
14 0.959996 0
18 0.957198 3.36079e-05
31 104.52 0.0030599
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
colvars: Saving collective variables state to "out.colvars.state".
Loop time of 2.17304 on 1 procs for 100 steps with 2004 atoms
Performance: 7.952 ns/day, 3.018 hours/ns, 46.018 timesteps/s
98.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5817 | 1.5817 | 1.5817 | 0.0 | 72.79
Bond | 0.0031469 | 0.0031469 | 0.0031469 | 0.0 | 0.14
Kspace | 0.17366 | 0.17366 | 0.17366 | 0.0 | 7.99
Neigh | 0.37354 | 0.37354 | 0.37354 | 0.0 | 17.19
Comm | 0.013652 | 0.013652 | 0.013652 | 0.0 | 0.63
Output | 0.00026059 | 0.00026059 | 0.00026059 | 0.0 | 0.01
Modify | 0.025484 | 0.025484 | 0.025484 | 0.0 | 1.17
Other | | 0.001615 | | | 0.07
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11124 ave 11124 max 11124 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708237 ave 708237 max 708237 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708237
Ave neighs/atom = 353.412
Ave special neighs/atom = 2.34032
Neighbor list builds = 12
Dangerous builds = 2
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 12.011.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 12.011.
SHAKE stats (type/ave/delta) on step 100
4 1.11098 8.97155e-05
6 0.996996 1.00568e-05
8 1.08 6.02345e-06
10 1.111 1.84253e-05
12 1.08 7.2713e-06
14 0.959996 0
18 0.957198 3.36079e-05
31 104.52 0.0030599
Per MPI rank memory allocation (min/avg/max) = 18.7 | 18.7 | 18.7 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
110 266.26438 -5341.1991 -6412.4073 1071.2082 -6552.7551 33.573173 1.9229657
120 262.66604 -5386.2387 -6442.9704 1056.7317 -6587.5483 29.859587 2.7124812
130 252.83379 -5422.5401 -6439.7157 1017.1756 -6580.4703 25.979343 1.2031592
140 253.85111 -5452.1838 -6473.4522 1021.2684 -6609.4826 26.071651 0.30585517
150 261.31816 -5490.4727 -6541.7817 1051.3091 -6646.6076 16.258823 6.9051008
160 255.7352 -5521.5941 -6550.4424 1028.8483 -6658.1373 19.717399 12.339679
170 253.42527 -5540.0942 -6559.6494 1019.5552 -6656.6678 23.293812 10.290217
180 248.51161 -5550.3253 -6550.1124 999.78705 -6661.4235 26.200127 3.4336038
190 250.80862 -5555.2554 -6564.2836 1009.0282 -6666.164 25.53634 3.3494288
SHAKE stats (type/ave/delta) on step 200
4 1.111 1.81266e-06
6 0.997 7.79424e-07
8 1.08 1.08903e-06
10 1.111 2.96503e-07
12 1.08 4.69038e-07
14 0.960001 0
18 0.957201 3.76471e-06
31 104.52 0.000411055
200 251.50475 -5557.4251 -6569.2538 1011.8287 -6674.0845 24.804906 7.1387574
colvars: Saving collective variables state to "out.colvars.state".
Loop time of 2.03298 on 1 procs for 100 steps with 2004 atoms
Performance: 8.500 ns/day, 2.824 hours/ns, 49.189 timesteps/s
98.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5975 | 1.5975 | 1.5975 | 0.0 | 78.58
Bond | 0.0033164 | 0.0033164 | 0.0033164 | 0.0 | 0.16
Kspace | 0.17349 | 0.17349 | 0.17349 | 0.0 | 8.53
Neigh | 0.21971 | 0.21971 | 0.21971 | 0.0 | 10.81
Comm | 0.012045 | 0.012045 | 0.012045 | 0.0 | 0.59
Output | 0.00026226 | 0.00026226 | 0.00026226 | 0.0 | 0.01
Modify | 0.025034 | 0.025034 | 0.025034 | 0.0 | 1.23
Other | | 0.001596 | | | 0.08
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11159 ave 11159 max 11159 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708083 ave 708083 max 708083 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708083
Ave neighs/atom = 353.335
Ave special neighs/atom = 2.34032
Neighbor list builds = 7
Dangerous builds = 0
fix 2 all colvars peptide.colvars input out.colvars.state output out2
colvars: Resetting the Collective Variables module.
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
colvars: Creating proxy instance
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version 2018-11-16.
colvars: Please cite Fiorin et al, Mol Phys 2013:
colvars: https://doi.org/10.1080/00268976.2013.813594
colvars: in any publication based on this calculation.
colvars: SMP parallelism is available.
colvars: Using LAMMPS interface, version 2018-08-29.
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "peptide.colvars":
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 1
colvars: # colvarsRestartFrequency = 1000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "one"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "two"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables initialized, 2 in total.
colvars: ----------------------------------------------------------------------
colvars: Initializing a new "harmonic" instance.
colvars: # name = "h_pot"
colvars: # colvars = { one, two }
colvars: # outputEnergy = off [default]
colvars: # timeStepFactor = 1 [default]
colvars: # writeTISamples = off [default]
colvars: # writeTIPMF = off [default]
colvars: # centers = { 10, 10 }
colvars: # targetCenters = { 10, 10 } [default]
colvars: # outputCenters = off [default]
colvars: # forceConstant = 100
colvars: # targetForceConstant = -1 [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables biases initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Collective variables module (re)initialized.
colvars: ----------------------------------------------------------------------
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 1.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 1.
colvars: ----------------------------------------------------------------------
colvars: Restarting from file "out.colvars.state".
colvars: Restarting collective variable "one" from value: 10.0128
colvars: Restarting collective variable "two" from value: 9.62236
colvars: ----------------------------------------------------------------------
colvars: The restart output state file will be "rest.colvars.state".
colvars: The final output state file will be "out2.colvars.state".
colvars: Writing to colvar trajectory file "out2.colvars.traj".
colvars: Setting initial step number from LAMMPS: 200
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 12.011.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 12.011.
colvars: Performing analysis.
SHAKE stats (type/ave/delta) on step 200
4 1.111 1.81266e-06
6 0.997 7.79424e-07
8 1.08 1.08903e-06
10 1.111 2.96503e-07
12 1.08 4.69038e-07
14 0.960001 0
18 0.957201 3.76471e-06
31 104.52 0.000411055
Per MPI rank memory allocation (min/avg/max) = 18.7 | 18.7 | 18.7 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
200 251.50475 -5557.4251 -6569.2538 1011.8287 -6674.0845 24.804906 7.1387574
210 253.15303 -5538.5615 -6557.0215 1018.46 -6672.0498 37.67662 0.61219496
220 245.19621 -5522.519 -6508.9679 986.44888 -6628.1899 36.657688 0.04864338
230 258.69884 -5495.7275 -6536.4988 1040.7713 -6658.2885 34.857911 0.22092547
240 260.79635 -5469.8678 -6519.0776 1049.2098 -6624.1801 31.576951 3.7574816
250 269.07527 -5438.3946 -6520.9114 1082.5167 -6616.4383 25.447674 8.6600014
260 266.01049 -5397.3485 -6467.5353 1070.1868 -6580.2897 26.871917 8.3323097
270 272.81313 -5350.882 -6448.4365 1097.5545 -6563.8231 23.114195 10.973131
280 279.42263 -5307.9798 -6432.125 1124.1452 -6557.3367 33.644027 8.5490492
290 286.85172 -5260.841 -6414.8741 1154.0331 -6515.6798 28.574838 5.9100133
SHAKE stats (type/ave/delta) on step 300
4 1.111 1.79792e-05
6 0.997005 1.02512e-05
8 1.08 1.85102e-05
10 1.111 9.98839e-06
12 1.08 8.84111e-06
14 0.960008 0
18 0.957203 1.8445e-05
31 104.52 0.00168383
300 291.52798 -5216.288 -6389.1341 1172.8462 -6503.1276 27.889154 2.2482459
colvars: Saving collective variables state to "out2.colvars.state".
Loop time of 2.07171 on 1 procs for 100 steps with 2004 atoms
Performance: 8.341 ns/day, 2.877 hours/ns, 48.269 timesteps/s
98.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.6047 | 1.6047 | 1.6047 | 0.0 | 77.46
Bond | 0.0031033 | 0.0031033 | 0.0031033 | 0.0 | 0.15
Kspace | 0.17325 | 0.17325 | 0.17325 | 0.0 | 8.36
Neigh | 0.25117 | 0.25117 | 0.25117 | 0.0 | 12.12
Comm | 0.012173 | 0.012173 | 0.012173 | 0.0 | 0.59
Output | 0.00026488 | 0.00026488 | 0.00026488 | 0.0 | 0.01
Modify | 0.025317 | 0.025317 | 0.025317 | 0.0 | 1.22
Other | | 0.001731 | | | 0.08
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11296 ave 11296 max 11296 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708152 ave 708152 max 708152 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708152
Ave neighs/atom = 353.369
Ave special neighs/atom = 2.34032
Neighbor list builds = 8
Dangerous builds = 0
colvars: Resetting the Collective Variables module.
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:06

View File

@ -1,629 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f out*.colvars.*"
fix 2 all colvars peptide.colvars
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
colvars: Creating proxy instance
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version 2018-11-16.
colvars: Please cite Fiorin et al, Mol Phys 2013:
colvars: https://doi.org/10.1080/00268976.2013.813594
colvars: in any publication based on this calculation.
colvars: SMP parallelism is available.
colvars: Using LAMMPS interface, version 2018-08-29.
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "peptide.colvars":
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 1
colvars: # colvarsRestartFrequency = 1000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "one"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "two"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables initialized, 2 in total.
colvars: ----------------------------------------------------------------------
colvars: Initializing a new "harmonic" instance.
colvars: # name = "h_pot"
colvars: # colvars = { one, two }
colvars: # outputEnergy = off [default]
colvars: # timeStepFactor = 1 [default]
colvars: # writeTISamples = off [default]
colvars: # writeTIPMF = off [default]
colvars: # centers = { 10, 10 }
colvars: # targetCenters = { 10, 10 } [default]
colvars: # outputCenters = off [default]
colvars: # forceConstant = 100
colvars: # targetForceConstant = -1 [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables biases initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Collective variables module (re)initialized.
colvars: ----------------------------------------------------------------------
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 1.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 1.
colvars: The restart output state file will be "rest.colvars.state".
colvars: The final output state file will be "out.colvars.state".
colvars: Writing to colvar trajectory file "out.colvars.traj".
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 12.011.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 12.011.
colvars: Performing analysis.
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 15.65 | 15.86 | 16.05 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta) on step 100
4 1.11098 8.97155e-05
6 0.996996 1.00568e-05
8 1.08 6.02345e-06
10 1.111 1.84253e-05
12 1.08 7.2713e-06
14 0.959996 0
18 0.957198 3.36079e-05
31 104.52 0.0030599
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
colvars: Saving collective variables state to "out.colvars.state".
Loop time of 0.614168 on 4 procs for 100 steps with 2004 atoms
Performance: 28.136 ns/day, 0.853 hours/ns, 162.822 timesteps/s
98.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.40413 | 0.41468 | 0.42573 | 1.4 | 67.52
Bond | 0.00056815 | 0.0011595 | 0.0017791 | 1.6 | 0.19
Kspace | 0.056367 | 0.066512 | 0.076213 | 3.3 | 10.83
Neigh | 0.095025 | 0.09507 | 0.095124 | 0.0 | 15.48
Comm | 0.015385 | 0.015831 | 0.01623 | 0.2 | 2.58
Output | 0.00026512 | 0.00034493 | 0.00057554 | 0.0 | 0.06
Modify | 0.01938 | 0.019431 | 0.019474 | 0.0 | 3.16
Other | | 0.001141 | | | 0.19
Nlocal: 501 ave 513 max 489 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 6563.25 ave 6596 max 6519 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177059 ave 181742 max 172942 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Total # of neighbors = 708237
Ave neighs/atom = 353.412
Ave special neighs/atom = 2.34032
Neighbor list builds = 12
Dangerous builds = 2
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 12.011.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 12.011.
SHAKE stats (type/ave/delta) on step 100
4 1.11098 8.97155e-05
6 0.996996 1.00568e-05
8 1.08 6.02345e-06
10 1.111 1.84253e-05
12 1.08 7.2713e-06
14 0.959996 0
18 0.957198 3.36079e-05
31 104.52 0.0030599
Per MPI rank memory allocation (min/avg/max) = 15.66 | 15.86 | 16.06 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
110 266.26438 -5341.1991 -6412.4073 1071.2082 -6552.7551 33.573173 1.9229657
120 262.66604 -5386.2387 -6442.9704 1056.7317 -6587.5483 29.859587 2.7124812
130 252.83379 -5422.5401 -6439.7157 1017.1756 -6580.4703 25.979343 1.2031592
140 253.85111 -5452.1838 -6473.4521 1021.2684 -6609.4826 26.071651 0.30585517
150 261.31816 -5490.4726 -6541.7817 1051.3091 -6646.6075 16.258823 6.9051008
160 255.7352 -5521.5941 -6550.4423 1028.8483 -6658.1373 19.717399 12.339679
170 253.42527 -5540.0941 -6559.6493 1019.5552 -6656.6677 23.293812 10.290217
180 248.51161 -5550.3253 -6550.1124 999.78704 -6661.4235 26.200127 3.4336037
190 250.80862 -5555.2553 -6564.2834 1009.0282 -6666.1638 25.53634 3.3494287
SHAKE stats (type/ave/delta) on step 200
4 1.111 1.81266e-06
6 0.997 7.79424e-07
8 1.08 1.08903e-06
10 1.111 2.96503e-07
12 1.08 4.69038e-07
14 0.960001 0
18 0.957201 3.76471e-06
31 104.52 0.000411055
200 251.50475 -5557.4251 -6569.2539 1011.8288 -6674.0845 24.804905 7.1387572
colvars: Saving collective variables state to "out.colvars.state".
Loop time of 0.569733 on 4 procs for 100 steps with 2004 atoms
Performance: 30.330 ns/day, 0.791 hours/ns, 175.521 timesteps/s
98.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.40512 | 0.41306 | 0.42363 | 1.3 | 72.50
Bond | 0.00061107 | 0.001151 | 0.0017512 | 1.4 | 0.20
Kspace | 0.054393 | 0.063988 | 0.07198 | 3.0 | 11.23
Neigh | 0.056063 | 0.056079 | 0.05609 | 0.0 | 9.84
Comm | 0.013584 | 0.014145 | 0.014649 | 0.3 | 2.48
Output | 0.00026965 | 0.00042897 | 0.00090265 | 0.0 | 0.08
Modify | 0.019253 | 0.019257 | 0.01926 | 0.0 | 3.38
Other | | 0.001623 | | | 0.28
Nlocal: 501 ave 513 max 481 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 6556.5 ave 6608 max 6514 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Neighs: 177021 ave 182259 max 172089 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 708083
Ave neighs/atom = 353.335
Ave special neighs/atom = 2.34032
Neighbor list builds = 7
Dangerous builds = 0
fix 2 all colvars peptide.colvars input out.colvars.state output out2
colvars: Resetting the Collective Variables module.
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
colvars: Creating proxy instance
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version 2018-11-16.
colvars: Please cite Fiorin et al, Mol Phys 2013:
colvars: https://doi.org/10.1080/00268976.2013.813594
colvars: in any publication based on this calculation.
colvars: SMP parallelism is available.
colvars: Using LAMMPS interface, version 2018-08-29.
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "peptide.colvars":
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 1
colvars: # colvarsRestartFrequency = 1000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "one"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "two"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 1 atoms initialized: total mass = 1, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables initialized, 2 in total.
colvars: ----------------------------------------------------------------------
colvars: Initializing a new "harmonic" instance.
colvars: # name = "h_pot"
colvars: # colvars = { one, two }
colvars: # outputEnergy = off [default]
colvars: # timeStepFactor = 1 [default]
colvars: # writeTISamples = off [default]
colvars: # writeTIPMF = off [default]
colvars: # centers = { 10, 10 }
colvars: # targetCenters = { 10, 10 } [default]
colvars: # outputCenters = off [default]
colvars: # forceConstant = 100
colvars: # targetForceConstant = -1 [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables biases initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Collective variables module (re)initialized.
colvars: ----------------------------------------------------------------------
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 1.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 1.
colvars: ----------------------------------------------------------------------
colvars: Restarting from file "out.colvars.state".
colvars: Restarting collective variable "one" from value: 10.0128
colvars: Restarting collective variable "two" from value: 9.62236
colvars: ----------------------------------------------------------------------
colvars: The restart output state file will be "rest.colvars.state".
colvars: The final output state file will be "out2.colvars.state".
colvars: Writing to colvar trajectory file "out2.colvars.traj".
colvars: Setting initial step number from LAMMPS: 200
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 1 atoms: total mass = 12.011.
colvars: Re-initialized atom group two:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group two:0/1. 1 atoms: total mass = 12.011.
colvars: Performing analysis.
SHAKE stats (type/ave/delta) on step 200
4 1.111 1.81266e-06
6 0.997 7.79424e-07
8 1.08 1.08903e-06
10 1.111 2.96503e-07
12 1.08 4.69038e-07
14 0.960001 0
18 0.957201 3.76471e-06
31 104.52 0.000411055
Per MPI rank memory allocation (min/avg/max) = 15.66 | 15.86 | 16.06 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
200 251.50475 -5557.4251 -6569.2539 1011.8288 -6674.0845 24.804905 7.1387572
210 253.15304 -5538.5615 -6557.0215 1018.46 -6672.0498 37.676621 0.61219486
220 245.19621 -5522.5189 -6508.9678 986.44888 -6628.1898 36.657688 0.048643368
230 258.69885 -5495.7276 -6536.4989 1040.7713 -6658.2887 34.857911 0.22092541
240 260.79635 -5469.8677 -6519.0775 1049.2098 -6624.18 31.576952 3.7574818
250 269.07527 -5438.3947 -6520.9115 1082.5167 -6616.4384 25.447674 8.6600013
260 266.0105 -5397.3486 -6467.5354 1070.1868 -6580.2898 26.871917 8.3323096
270 272.81314 -5350.8819 -6448.4364 1097.5545 -6563.823 23.114195 10.973131
280 279.42263 -5307.9799 -6432.125 1124.1452 -6557.3367 33.644027 8.5490488
290 286.8517 -5260.8409 -6414.874 1154.0331 -6515.6797 28.574839 5.9100135
SHAKE stats (type/ave/delta) on step 300
4 1.111 1.79792e-05
6 0.997005 1.02512e-05
8 1.08 1.85102e-05
10 1.111 9.98838e-06
12 1.08 8.84113e-06
14 0.960008 0
18 0.957203 1.8445e-05
31 104.52 0.00168382
300 291.52794 -5216.2881 -6389.1342 1172.846 -6503.1276 27.889153 2.248246
colvars: Saving collective variables state to "out2.colvars.state".
Loop time of 0.584942 on 4 procs for 100 steps with 2004 atoms
Performance: 29.541 ns/day, 0.812 hours/ns, 170.957 timesteps/s
99.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.41044 | 0.41882 | 0.42773 | 1.1 | 71.60
Bond | 0.00056911 | 0.0011486 | 0.0018017 | 1.4 | 0.20
Kspace | 0.056211 | 0.064277 | 0.072168 | 2.7 | 10.99
Neigh | 0.064606 | 0.064613 | 0.064617 | 0.0 | 11.05
Comm | 0.013311 | 0.013966 | 0.015175 | 0.6 | 2.39
Output | 0.00027871 | 0.00051689 | 0.0012221 | 0.0 | 0.09
Modify | 0.019776 | 0.0199 | 0.020015 | 0.1 | 3.40
Other | | 0.001705 | | | 0.29
Nlocal: 501 ave 513 max 472 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Nghost: 6612.75 ave 6681 max 6561 min
Histogram: 1 1 0 0 0 1 0 0 0 1
Neighs: 177038 ave 180136 max 170218 min
Histogram: 1 0 0 0 0 0 0 1 0 2
Total # of neighbors = 708152
Ave neighs/atom = 353.369
Ave special neighs/atom = 2.34032
Neighbor list builds = 8
Dangerous builds = 0
colvars: Resetting the Collective Variables module.
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:01

View File

@ -1,260 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f peptide2.colvars.*"
fix 2 all colvars peptide.colvars2 output peptide2
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.colvar2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
colvars: Creating proxy instance
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version 2018-11-16.
colvars: Please cite Fiorin et al, Mol Phys 2013:
colvars: https://doi.org/10.1080/00268976.2013.813594
colvars: in any publication based on this calculation.
colvars: SMP parallelism is available.
colvars: Using LAMMPS interface, version 2018-08-29.
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "peptide.colvars2":
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 1
colvars: # colvarsRestartFrequency = 1000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "one"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Initializing a new "harmonic" instance.
colvars: # name = "h_pot"
colvars: # colvars = { one }
colvars: # outputEnergy = off [default]
colvars: # timeStepFactor = 1 [default]
colvars: # writeTISamples = off [default]
colvars: # writeTIPMF = off [default]
colvars: # centers = { 10 }
colvars: # targetCenters = { 10 } [default]
colvars: # outputCenters = off [default]
colvars: # forceConstant = 100
colvars: # targetForceConstant = -1 [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables biases initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Collective variables module (re)initialized.
colvars: ----------------------------------------------------------------------
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group one:0/1. 4 atoms: total mass = 4.
colvars: The restart output state file will be "rest.colvars.state".
colvars: The final output state file will be "peptide2.colvars.state".
colvars: Writing to colvar trajectory file "peptide2.colvars.traj".
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 4 atoms: total mass = 15.035.
colvars: Performing analysis.
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 18.7 | 18.7 | 18.7 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta) on step 100
4 1.11096 0.000191462
6 0.996989 3.55508e-05
8 1.08 9.0997e-06
10 1.111 1.58544e-05
12 1.08 5.80604e-06
14 0.959997 0
18 0.957198 2.92445e-05
31 104.52 0.00239923
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
colvars: Saving collective variables state to "peptide2.colvars.state".
Loop time of 2.25958 on 1 procs for 100 steps with 2004 atoms
Performance: 7.647 ns/day, 3.138 hours/ns, 44.256 timesteps/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.6373 | 1.6373 | 1.6373 | 0.0 | 72.46
Bond | 0.0031531 | 0.0031531 | 0.0031531 | 0.0 | 0.14
Kspace | 0.17439 | 0.17439 | 0.17439 | 0.0 | 7.72
Neigh | 0.40442 | 0.40442 | 0.40442 | 0.0 | 17.90
Comm | 0.014091 | 0.014091 | 0.014091 | 0.0 | 0.62
Output | 0.00027752 | 0.00027752 | 0.00027752 | 0.0 | 0.01
Modify | 0.024481 | 0.024481 | 0.024481 | 0.0 | 1.08
Other | | 0.001465 | | | 0.06
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11143 ave 11143 max 11143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708234 ave 708234 max 708234 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708234
Ave neighs/atom = 353.41
Ave special neighs/atom = 2.34032
Neighbor list builds = 13
Dangerous builds = 1
colvars: Resetting the Collective Variables module.
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:02

View File

@ -1,260 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f peptide2.colvars.*"
fix 2 all colvars peptide.colvars2 output peptide2
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.colvar2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
colvars: Creating proxy instance
colvars: ----------------------------------------------------------------------
colvars: Initializing the collective variables module, version 2018-11-16.
colvars: Please cite Fiorin et al, Mol Phys 2013:
colvars: https://doi.org/10.1080/00268976.2013.813594
colvars: in any publication based on this calculation.
colvars: SMP parallelism is available.
colvars: Using LAMMPS interface, version 2018-08-29.
colvars: ----------------------------------------------------------------------
colvars: Reading new configuration from file "peptide.colvars2":
colvars: # smp = on [default]
colvars: # colvarsTrajFrequency = 1
colvars: # colvarsRestartFrequency = 1000
colvars: # scriptedColvarForces = off [default]
colvars: # scriptingAfterBiases = off [default]
colvars: ----------------------------------------------------------------------
colvars: Initializing a new collective variable.
colvars: # name = "one"
colvars: Initializing a new "distance" component.
colvars: # name = "" [default]
colvars: # componentCoeff = 1 [default]
colvars: # componentExp = 1 [default]
colvars: # period = 0 [default]
colvars: # wrapAround = 0 [default]
colvars: # forceNoPBC = off [default]
colvars: # scalable = on [default]
colvars: Initializing atom group "group1".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group1" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: Initializing atom group "group2".
colvars: # name = "" [default]
colvars: # centerReference = off [default]
colvars: # rotateReference = off [default]
colvars: # atomsOfGroup = "" [default]
colvars: # indexGroup = "" [default]
colvars: # psfSegID = [default]
colvars: # atomsFile = "" [default]
colvars: # dummyAtom = ( 0 , 0 , 0 ) [default]
colvars: # enableForces = on [default]
colvars: # enableFitGradients = on [default]
colvars: # printAtomIDs = off [default]
colvars: Atom group "group2" defined, 4 atoms initialized: total mass = 4, total charge = 0.
colvars: # oneSiteSystemForce = off [default]
colvars: # oneSiteTotalForce = off [default]
colvars: All components initialized.
colvars: # timeStepFactor = 1 [default]
colvars: # width = 1 [default]
colvars: # lowerBoundary = 0 [default]
colvars: # upperBoundary = 0 [default]
colvars: # expandBoundaries = off [default]
colvars: # extendedLagrangian = off [default]
colvars: # outputValue = on [default]
colvars: # outputVelocity = off [default]
colvars: # outputTotalForce = off [default]
colvars: # outputAppliedForce = off [default]
colvars: # subtractAppliedForce = off [default]
colvars: # runAve = off [default]
colvars: # corrFunc = off [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Initializing a new "harmonic" instance.
colvars: # name = "h_pot"
colvars: # colvars = { one }
colvars: # outputEnergy = off [default]
colvars: # timeStepFactor = 1 [default]
colvars: # writeTISamples = off [default]
colvars: # writeTIPMF = off [default]
colvars: # centers = { 10 }
colvars: # targetCenters = { 10 } [default]
colvars: # outputCenters = off [default]
colvars: # forceConstant = 100
colvars: # targetForceConstant = -1 [default]
colvars: ----------------------------------------------------------------------
colvars: Collective variables biases initialized, 1 in total.
colvars: ----------------------------------------------------------------------
colvars: Collective variables module (re)initialized.
colvars: ----------------------------------------------------------------------
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 4.
colvars: Re-initialized atom group one:0/1. 4 atoms: total mass = 4.
colvars: The restart output state file will be "rest.colvars.state".
colvars: The final output state file will be "peptide2.colvars.state".
colvars: Writing to colvar trajectory file "peptide2.colvars.traj".
colvars: Re-initialized atom group one:0/0. 4 atoms: total mass = 15.035.
colvars: Re-initialized atom group one:0/1. 4 atoms: total mass = 15.035.
colvars: Performing analysis.
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 15.65 | 15.86 | 16.05 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta) on step 100
4 1.11096 0.000191462
6 0.996989 3.55508e-05
8 1.08 9.0997e-06
10 1.111 1.58544e-05
12 1.08 5.80604e-06
14 0.959997 0
18 0.957198 2.92445e-05
31 104.52 0.00239923
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
colvars: Saving collective variables state to "peptide2.colvars.state".
Loop time of 0.629325 on 4 procs for 100 steps with 2004 atoms
Performance: 27.458 ns/day, 0.874 hours/ns, 158.900 timesteps/s
99.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.4012 | 0.41532 | 0.42829 | 1.9 | 65.99
Bond | 0.0005219 | 0.0011545 | 0.0018291 | 1.8 | 0.18
Kspace | 0.059271 | 0.071301 | 0.084393 | 4.4 | 11.33
Neigh | 0.10416 | 0.10419 | 0.10424 | 0.0 | 16.56
Comm | 0.015643 | 0.016628 | 0.017256 | 0.5 | 2.64
Output | 0.00025177 | 0.00033599 | 0.00058722 | 0.0 | 0.05
Modify | 0.01912 | 0.019129 | 0.019141 | 0.0 | 3.04
Other | | 0.001264 | | | 0.20
Nlocal: 501 ave 513 max 494 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Nghost: 6572.5 ave 6593 max 6548 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177058 ave 181778 max 174301 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 708234
Ave neighs/atom = 353.41
Ave special neighs/atom = 2.34032
Neighbor list builds = 13
Dangerous builds = 1
colvars: Resetting the Collective Variables module.
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -1,163 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3a one spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 3b two spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.spring.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
variable sp equal f_3a+f_3b
thermo_style custom step temp etotal pe ke epair ebond v_sp
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 18.7 | 18.7 | 18.7 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond v_sp
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta) on step 100
4 1.11098 8.97155e-05
6 0.996996 1.00568e-05
8 1.08 6.02345e-06
10 1.111 1.84253e-05
12 1.08 7.2713e-06
14 0.959996 0
18 0.957198 3.36079e-05
31 104.52 0.0030599
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
Loop time of 2.21146 on 1 procs for 100 steps with 2004 atoms
Performance: 7.814 ns/day, 3.071 hours/ns, 45.219 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.6195 | 1.6195 | 1.6195 | 0.0 | 73.23
Bond | 0.0033534 | 0.0033534 | 0.0033534 | 0.0 | 0.15
Kspace | 0.17464 | 0.17464 | 0.17464 | 0.0 | 7.90
Neigh | 0.37337 | 0.37337 | 0.37337 | 0.0 | 16.88
Comm | 0.013891 | 0.013891 | 0.013891 | 0.0 | 0.63
Output | 0.00037336 | 0.00037336 | 0.00037336 | 0.0 | 0.02
Modify | 0.024753 | 0.024753 | 0.024753 | 0.0 | 1.12
Other | | 0.001613 | | | 0.07
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11124 ave 11124 max 11124 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708237 ave 708237 max 708237 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708237
Ave neighs/atom = 353.412
Ave special neighs/atom = 2.34032
Neighbor list builds = 12
Dangerous builds = 2
Total wall time: 0:00:02

View File

@ -1,163 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3a one spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 3b two spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.spring.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
variable sp equal f_3a+f_3b
thermo_style custom step temp etotal pe ke epair ebond v_sp
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 15.65 | 15.86 | 16.05 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond v_sp
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta) on step 100
4 1.11098 8.97155e-05
6 0.996996 1.00568e-05
8 1.08 6.02345e-06
10 1.111 1.84253e-05
12 1.08 7.2713e-06
14 0.959996 0
18 0.957198 3.36079e-05
31 104.52 0.0030599
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
Loop time of 0.620672 on 4 procs for 100 steps with 2004 atoms
Performance: 27.841 ns/day, 0.862 hours/ns, 161.116 timesteps/s
99.1% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.4029 | 0.41752 | 0.4307 | 1.7 | 67.27
Bond | 0.00054789 | 0.0011698 | 0.0018225 | 1.8 | 0.19
Kspace | 0.055853 | 0.069798 | 0.083975 | 4.3 | 11.25
Neigh | 0.096553 | 0.096622 | 0.096707 | 0.0 | 15.57
Comm | 0.015383 | 0.016022 | 0.01632 | 0.3 | 2.58
Output | 0.00033116 | 0.00057495 | 0.0012989 | 0.0 | 0.09
Modify | 0.017549 | 0.017693 | 0.017826 | 0.1 | 2.85
Other | | 0.001274 | | | 0.21
Nlocal: 501 ave 513 max 489 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 6563.25 ave 6596 max 6519 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177059 ave 181742 max 172942 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Total # of neighbors = 708237
Ave neighs/atom = 353.412
Ave special neighs/atom = 2.34032
Neighbor list builds = 12
Dangerous builds = 2
Total wall time: 0:00:00

View File

@ -1,158 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3 one spring couple two 100.0 0.0 0.0 0.0 10.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.spring2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_3
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 10648 3375
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 18.7 | 18.7 | 18.7 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_3
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta) on step 100
4 1.11096 0.000191462
6 0.996989 3.55508e-05
8 1.08 9.0997e-06
10 1.111 1.58544e-05
12 1.08 5.80604e-06
14 0.959997 0
18 0.957198 2.92445e-05
31 104.52 0.00239923
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
Loop time of 2.2037 on 1 procs for 100 steps with 2004 atoms
Performance: 7.841 ns/day, 3.061 hours/ns, 45.378 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.5852 | 1.5852 | 1.5852 | 0.0 | 71.93
Bond | 0.0032725 | 0.0032725 | 0.0032725 | 0.0 | 0.15
Kspace | 0.17308 | 0.17308 | 0.17308 | 0.0 | 7.85
Neigh | 0.4027 | 0.4027 | 0.4027 | 0.0 | 18.27
Comm | 0.014041 | 0.014041 | 0.014041 | 0.0 | 0.64
Output | 0.00032306 | 0.00032306 | 0.00032306 | 0.0 | 0.01
Modify | 0.023546 | 0.023546 | 0.023546 | 0.0 | 1.07
Other | | 0.001546 | | | 0.07
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11143 ave 11143 max 11143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708234 ave 708234 max 708234 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708234
Ave neighs/atom = 353.41
Ave special neighs/atom = 2.34032
Neighbor list builds = 13
Dangerous builds = 1
Total wall time: 0:00:02

View File

@ -1,158 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
orthogonal box = (36.8402 41.0137 29.7681) to (64.2116 68.3851 57.1395)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3 one spring couple two 100.0 0.0 0.0 0.0 10.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
#dump 1 colvar custom 1 dump.spring2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_3
thermo 10
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.268725
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.0228209
estimated relative force accuracy = 6.87243e-05
using double precision FFTs
3d grid and FFT values/proc = 4312 960
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
SHAKE stats (type/ave/delta) on step 0
4 1.111 1.44264e-05
6 0.996998 7.26967e-06
8 1.08 1.32536e-05
10 1.111 1.22749e-05
12 1.08 1.11767e-05
14 0.96 0
18 0.957206 4.37979e-05
31 104.519 0.00396029
Per MPI rank memory allocation (min/avg/max) = 15.65 | 15.86 | 16.05 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_3
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta) on step 100
4 1.11096 0.000191462
6 0.996989 3.55508e-05
8 1.08 9.0997e-06
10 1.111 1.58544e-05
12 1.08 5.80604e-06
14 0.959997 0
18 0.957198 2.92445e-05
31 104.52 0.00239923
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
Loop time of 0.616036 on 4 procs for 100 steps with 2004 atoms
Performance: 28.050 ns/day, 0.856 hours/ns, 162.328 timesteps/s
99.1% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.40372 | 0.41244 | 0.41714 | 0.8 | 66.95
Bond | 0.00053573 | 0.0011384 | 0.0017946 | 1.8 | 0.18
Kspace | 0.060087 | 0.063993 | 0.07306 | 2.1 | 10.39
Neigh | 0.1033 | 0.10349 | 0.1036 | 0.0 | 16.80
Comm | 0.01568 | 0.016453 | 0.017178 | 0.5 | 2.67
Output | 0.00028253 | 0.00032026 | 0.00043178 | 0.0 | 0.05
Modify | 0.016238 | 0.016955 | 0.017704 | 0.5 | 2.75
Other | | 0.001239 | | | 0.20
Nlocal: 501 ave 513 max 494 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Nghost: 6572.5 ave 6593 max 6548 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177058 ave 181778 max 174301 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 708234
Ave neighs/atom = 353.41
Ave special neighs/atom = 2.34032
Neighbor list builds = 13
Dangerous builds = 1
Total wall time: 0:00:00

View File

@ -0,0 +1,732 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.012 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f out*.colvars.*"
fix 2 all colvars peptide.colvars
----------------------------------------------------------------------
Initializing the collective variables module, version 2024-06-04.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
This version was built with the C++11 standard or higher.
Summary of compile-time features available in this build:
- SMP parallelism: enabled (num. threads = 1)
- Lepton custom functions: available
- Tcl interpreter: not available
Using LAMMPS interface, version "2024-07-05".
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 10648 3375
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
----------------------------------------------------------------------
Reading new configuration from file "peptide.colvars":
# units = "" [default]
# smp = on [default]
# colvarsTrajFrequency = 1
# colvarsRestartFrequency = 1000
# scriptedColvarForces = off [default]
# scriptingAfterBiases = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "one"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "two"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Collective variables initialized, 2 in total.
----------------------------------------------------------------------
Initializing a new "harmonic" instance.
# name = "h_pot"
# colvars = { one, two }
# stepZeroData = off [default]
# outputEnergy = off [default]
# outputFreq = 1000 [default]
# timeStepFactor = 1 [default]
# writeTISamples = off [default]
# writeTIPMF = off [default]
# centers = { 10, 10 }
# targetCenters = { 10, 10 } [default]
# outputCenters = off [default]
# forceConstant = 100
# decoupling = off [default]
# targetForceConstant = -1 [default]
The force constant for colvar "one" will be rescaled to 100 according to the specified width (1).
The force constant for colvar "two" will be rescaled to 100 according to the specified width (1).
----------------------------------------------------------------------
Collective variables biases initialized, 1 in total.
----------------------------------------------------------------------
Collective variables module (re)initialized.
----------------------------------------------------------------------
Current simulation parameters: initial step = 0, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16.
Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
The final output state file will be "out.colvars.state".
Synchronizing (emptying the buffer of) trajectory file "out.colvars.traj".
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11098 8.97155e-05 9
Bond: 6 0.996996 1.00568e-05 6
Bond: 8 1.08 6.02345e-06 7
Bond: 10 1.111 1.84253e-05 8
Bond: 12 1.08 7.2713e-06 9
Bond: 14 0.959996 0 1
Bond: 18 0.957198 3.36079e-05 1280
Angle: 31 104.52 0.0030599 640
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
Saving collective variables state to "out.colvars.state".
Loop time of 0.897199 on 1 procs for 100 steps with 2004 atoms
Performance: 19.260 ns/day, 1.246 hours/ns, 111.458 timesteps/s, 223.362 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.71298 | 0.71298 | 0.71298 | 0.0 | 79.47
Bond | 0.001284 | 0.001284 | 0.001284 | 0.0 | 0.14
Kspace | 0.041232 | 0.041232 | 0.041232 | 0.0 | 4.60
Neigh | 0.1277 | 0.1277 | 0.1277 | 0.0 | 14.23
Comm | 0.0033285 | 0.0033285 | 0.0033285 | 0.0 | 0.37
Output | 0.00017467 | 0.00017467 | 0.00017467 | 0.0 | 0.02
Modify | 0.010003 | 0.010003 | 0.010003 | 0.0 | 1.11
Other | | 0.0004941 | | | 0.06
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11124 ave 11124 max 11124 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708237 ave 708237 max 708237 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708237
Ave neighs/atom = 353.41168
Ave special neighs/atom = 2.3403194
Neighbor list builds = 12
Dangerous builds = 2
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Colvars module (Fiorin2013, plus other works listed for specific features)
% Colvars module:
% Colvars-LAMMPS interface:
% Harmonic colvar bias implementation:
% Optimal rotation via flexible fitting:
% distance colvar component:
@article{Fiorin2013,
author = {Fiorin, Giacomo and Klein, Michael L.{} and H\'enin, J\'er\^ome},
title = {Using collective variables to drive molecular dynamics simulations},
journal = {Mol. Phys.},
year = {2013},
volume = {111},
number = {22-23},
pages = {3345--3362},
publisher = {Taylor & Francis},
doi = {10.1080/00268976.2013.813594},
url = {https://doi.org/10.1080/00268976.2013.813594}
}
% LAMMPS engine:
@article{Thompson2022,
title = {{LAMMPS} - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales},
author = {Thompson, Aidan P. and Aktulga, H. Metin and Berger, Richard and Bolintineanu, Dan S. and Brown, W. Michael and Crozier, Paul S. and {in't Veld}, Pieter J. and Kohlmeyer, Axel and Moore, Stan G. and Nguyen, Trung Dac and Shan, Ray and Stevens, Mark J. and Tranchida, Julien and Trott, Christian and Plimpton, Steven J.},
journal = {Comp. Phys. Comm.},
volume = {271},
pages = {108171},
year = {2022},
doi = {10.1016/j.cpc.2021.108171},
url = {https://doi.org/10.1016/j.cpc.2021.108171}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 10648 3375
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Current simulation parameters: initial step = 100, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16.
Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11098 8.97155e-05 9
Bond: 6 0.996996 1.00568e-05 6
Bond: 8 1.08 6.02345e-06 7
Bond: 10 1.111 1.84253e-05 8
Bond: 12 1.08 7.2713e-06 9
Bond: 14 0.959996 0 1
Bond: 18 0.957198 3.36079e-05 1280
Angle: 31 104.52 0.0030599 640
Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
110 266.26438 -5341.1991 -6412.4073 1071.2082 -6552.7551 33.573173 1.9229657
120 262.66604 -5386.2387 -6442.9704 1056.7317 -6587.5483 29.859587 2.7124812
130 252.83379 -5422.5401 -6439.7157 1017.1756 -6580.4703 25.979343 1.2031591
140 253.85111 -5452.1838 -6473.4521 1021.2684 -6609.4826 26.071651 0.30585517
150 261.31816 -5490.4726 -6541.7817 1051.3091 -6646.6075 16.258823 6.9051008
160 255.7352 -5521.5941 -6550.4423 1028.8483 -6658.1372 19.717399 12.339679
170 253.42527 -5540.0942 -6559.6494 1019.5552 -6656.6678 23.293812 10.290217
180 248.51161 -5550.3254 -6550.1125 999.78704 -6661.4236 26.200127 3.4336037
190 250.80862 -5555.2554 -6564.2836 1009.0281 -6666.164 25.53634 3.3494286
SHAKE stats (type/ave/delta/count) on step 200
Bond: 4 1.111 1.81266e-06 9
Bond: 6 0.997 7.79424e-07 6
Bond: 8 1.08 1.08903e-06 7
Bond: 10 1.111 2.96503e-07 8
Bond: 12 1.08 4.69038e-07 9
Bond: 14 0.960001 0 1
Bond: 18 0.957201 3.76471e-06 1280
Angle: 31 104.52 0.000411055 640
200 251.50475 -5557.4251 -6569.2538 1011.8288 -6674.0845 24.804906 7.1387572
Saving collective variables state to "out.colvars.state".
Loop time of 0.855092 on 1 procs for 100 steps with 2004 atoms
Performance: 20.208 ns/day, 1.188 hours/ns, 116.946 timesteps/s, 234.361 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.71954 | 0.71954 | 0.71954 | 0.0 | 84.15
Bond | 0.0012655 | 0.0012655 | 0.0012655 | 0.0 | 0.15
Kspace | 0.042826 | 0.042826 | 0.042826 | 0.0 | 5.01
Neigh | 0.078128 | 0.078128 | 0.078128 | 0.0 | 9.14
Comm | 0.0029003 | 0.0029003 | 0.0029003 | 0.0 | 0.34
Output | 0.00016605 | 0.00016605 | 0.00016605 | 0.0 | 0.02
Modify | 0.0097753 | 0.0097753 | 0.0097753 | 0.0 | 1.14
Other | | 0.0004882 | | | 0.06
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11159 ave 11159 max 11159 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708083 ave 708083 max 708083 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708083
Ave neighs/atom = 353.33483
Ave special neighs/atom = 2.3403194
Neighbor list builds = 7
Dangerous builds = 0
fix 2 all colvars peptide.colvars input out.colvars.state output out2
----------------------------------------------------------------------
Initializing the collective variables module, version 2024-06-04.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
This version was built with the C++11 standard or higher.
Summary of compile-time features available in this build:
- SMP parallelism: enabled (num. threads = 1)
- Lepton custom functions: available
- Tcl interpreter: not available
Using LAMMPS interface, version "2024-07-05".
Setting initial step number from MD engine: 200
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 10648 3375
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Will read input state from file "out.colvars.state"----------------------------------------------------------------------
Reading new configuration from file "peptide.colvars":
# units = "" [default]
# smp = on [default]
# colvarsTrajFrequency = 1
# colvarsRestartFrequency = 1000
# scriptedColvarForces = off [default]
# scriptingAfterBiases = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "one"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "two"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Collective variables initialized, 2 in total.
----------------------------------------------------------------------
Initializing a new "harmonic" instance.
# name = "h_pot"
# colvars = { one, two }
# stepZeroData = off [default]
# outputEnergy = off [default]
# outputFreq = 1000 [default]
# timeStepFactor = 1 [default]
# writeTISamples = off [default]
# writeTIPMF = off [default]
# centers = { 10, 10 }
# targetCenters = { 10, 10 } [default]
# outputCenters = off [default]
# forceConstant = 100
# decoupling = off [default]
# targetForceConstant = -1 [default]
The force constant for colvar "one" will be rescaled to 100 according to the specified width (1).
The force constant for colvar "two" will be rescaled to 100 according to the specified width (1).
----------------------------------------------------------------------
Collective variables biases initialized, 1 in total.
----------------------------------------------------------------------
Collective variables module (re)initialized.
----------------------------------------------------------------------
Current simulation parameters: initial step = 200, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16.
Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
----------------------------------------------------------------------
Loading state from text file "out.colvars.state".
Restarting collective variable "one" from value: 10.0128
Restarting collective variable "two" from value: 9.62236
Restarted harmonic bias "h_pot" with step number 200.
----------------------------------------------------------------------
The final output state file will be "out2.colvars.state".
SHAKE stats (type/ave/delta/count) on step 200
Bond: 4 1.111 1.81266e-06 9
Bond: 6 0.997 7.79424e-07 6
Bond: 8 1.08 1.08903e-06 7
Bond: 10 1.111 2.96503e-07 8
Bond: 12 1.08 4.69038e-07 9
Bond: 14 0.960001 0 1
Bond: 18 0.957201 3.76471e-06 1280
Angle: 31 104.52 0.000411055 640
Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
200 251.50475 -5557.4251 -6569.2538 1011.8288 -6674.0845 24.804906 7.1387572
210 253.15302 -5538.5614 -6557.0213 1018.4599 -6672.0496 37.676621 0.61219488
220 245.19621 -5522.5192 -6508.9681 986.44887 -6628.19 36.657688 0.048643387
230 258.69885 -5495.7277 -6536.499 1040.7713 -6658.2888 34.857911 0.2209256
240 260.79633 -5469.8678 -6519.0775 1049.2097 -6624.1799 31.576952 3.7574815
250 269.07527 -5438.3947 -6520.9114 1082.5167 -6616.4383 25.447674 8.6600023
260 266.01046 -5397.3484 -6467.5351 1070.1867 -6580.2895 26.871919 8.3323102
270 272.81307 -5350.882 -6448.4362 1097.5543 -6563.8228 23.114196 10.973132
280 279.42264 -5307.9798 -6432.125 1124.1452 -6557.3367 33.644021 8.5490492
290 286.85168 -5260.8411 -6414.874 1154.033 -6515.6797 28.574838 5.9100104
SHAKE stats (type/ave/delta/count) on step 300
Bond: 4 1.111 1.79793e-05 9
Bond: 6 0.997005 1.02512e-05 6
Bond: 8 1.08 1.85103e-05 7
Bond: 10 1.111 9.9884e-06 8
Bond: 12 1.08 8.84114e-06 9
Bond: 14 0.960008 0 1
Bond: 18 0.957203 1.8445e-05 1280
Angle: 31 104.52 0.00168383 640
300 291.52794 -5216.288 -6389.1341 1172.846 -6503.1276 27.889149 2.2482427
Saving collective variables state to "out2.colvars.state".
Loop time of 0.86889 on 1 procs for 100 steps with 2004 atoms
Performance: 19.887 ns/day, 1.207 hours/ns, 115.089 timesteps/s, 230.639 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.72728 | 0.72728 | 0.72728 | 0.0 | 83.70
Bond | 0.0012755 | 0.0012755 | 0.0012755 | 0.0 | 0.15
Kspace | 0.041631 | 0.041631 | 0.041631 | 0.0 | 4.79
Neigh | 0.085283 | 0.085283 | 0.085283 | 0.0 | 9.82
Comm | 0.0029986 | 0.0029986 | 0.0029986 | 0.0 | 0.35
Output | 0.00013272 | 0.00013272 | 0.00013272 | 0.0 | 0.02
Modify | 0.0097972 | 0.0097972 | 0.0097972 | 0.0 | 1.13
Other | | 0.0004882 | | | 0.06
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11296 ave 11296 max 11296 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708152 ave 708152 max 708152 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708152
Ave neighs/atom = 353.36926
Ave special neighs/atom = 2.3403194
Neighbor list builds = 8
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,732 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.011 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f out*.colvars.*"
fix 2 all colvars peptide.colvars
----------------------------------------------------------------------
Initializing the collective variables module, version 2024-06-04.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
This version was built with the C++11 standard or higher.
Summary of compile-time features available in this build:
- SMP parallelism: enabled (num. threads = 1)
- Lepton custom functions: available
- Tcl interpreter: not available
Using LAMMPS interface, version "2024-07-05".
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.colvar.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 4312 960
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
----------------------------------------------------------------------
Reading new configuration from file "peptide.colvars":
# units = "" [default]
# smp = on [default]
# colvarsTrajFrequency = 1
# colvarsRestartFrequency = 1000
# scriptedColvarForces = off [default]
# scriptingAfterBiases = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "one"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "two"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Collective variables initialized, 2 in total.
----------------------------------------------------------------------
Initializing a new "harmonic" instance.
# name = "h_pot"
# colvars = { one, two }
# stepZeroData = off [default]
# outputEnergy = off [default]
# outputFreq = 1000 [default]
# timeStepFactor = 1 [default]
# writeTISamples = off [default]
# writeTIPMF = off [default]
# centers = { 10, 10 }
# targetCenters = { 10, 10 } [default]
# outputCenters = off [default]
# forceConstant = 100
# decoupling = off [default]
# targetForceConstant = -1 [default]
The force constant for colvar "one" will be rescaled to 100 according to the specified width (1).
The force constant for colvar "two" will be rescaled to 100 according to the specified width (1).
----------------------------------------------------------------------
Collective variables biases initialized, 1 in total.
----------------------------------------------------------------------
Collective variables module (re)initialized.
----------------------------------------------------------------------
Current simulation parameters: initial step = 0, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16.
Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
The final output state file will be "out.colvars.state".
Synchronizing (emptying the buffer of) trajectory file "out.colvars.traj".
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11098 8.97155e-05 9
Bond: 6 0.996996 1.00568e-05 6
Bond: 8 1.08 6.02345e-06 7
Bond: 10 1.111 1.84253e-05 8
Bond: 12 1.08 7.2713e-06 9
Bond: 14 0.959996 0 1
Bond: 18 0.957198 3.36079e-05 1280
Angle: 31 104.52 0.0030599 640
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
Saving collective variables state to "out.colvars.state".
Loop time of 0.246405 on 4 procs for 100 steps with 2004 atoms
Performance: 70.128 ns/day, 0.342 hours/ns, 405.836 timesteps/s, 813.295 katom-step/s
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.17765 | 0.18092 | 0.18373 | 0.6 | 73.42
Bond | 0.00021581 | 0.00045219 | 0.00069916 | 0.0 | 0.18
Kspace | 0.018035 | 0.020459 | 0.023812 | 1.7 | 8.30
Neigh | 0.032165 | 0.032193 | 0.032207 | 0.0 | 13.07
Comm | 0.00566 | 0.0058533 | 0.0060088 | 0.2 | 2.38
Output | 0.00012205 | 0.00014069 | 0.00019404 | 0.0 | 0.06
Modify | 0.0059979 | 0.0060225 | 0.0060368 | 0.0 | 2.44
Other | | 0.0003631 | | | 0.15
Nlocal: 501 ave 513 max 489 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 6563.25 ave 6596 max 6519 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177059 ave 181742 max 172942 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Total # of neighbors = 708237
Ave neighs/atom = 353.41168
Ave special neighs/atom = 2.3403194
Neighbor list builds = 12
Dangerous builds = 2
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Colvars module (Fiorin2013, plus other works listed for specific features)
% Colvars module:
% Colvars-LAMMPS interface:
% Harmonic colvar bias implementation:
% Optimal rotation via flexible fitting:
% distance colvar component:
@article{Fiorin2013,
author = {Fiorin, Giacomo and Klein, Michael L.{} and H\'enin, J\'er\^ome},
title = {Using collective variables to drive molecular dynamics simulations},
journal = {Mol. Phys.},
year = {2013},
volume = {111},
number = {22-23},
pages = {3345--3362},
publisher = {Taylor & Francis},
doi = {10.1080/00268976.2013.813594},
url = {https://doi.org/10.1080/00268976.2013.813594}
}
% LAMMPS engine:
@article{Thompson2022,
title = {{LAMMPS} - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales},
author = {Thompson, Aidan P. and Aktulga, H. Metin and Berger, Richard and Bolintineanu, Dan S. and Brown, W. Michael and Crozier, Paul S. and {in't Veld}, Pieter J. and Kohlmeyer, Axel and Moore, Stan G. and Nguyen, Trung Dac and Shan, Ray and Stevens, Mark J. and Tranchida, Julien and Trott, Christian and Plimpton, Steven J.},
journal = {Comp. Phys. Comm.},
volume = {271},
pages = {108171},
year = {2022},
doi = {10.1016/j.cpc.2021.108171},
url = {https://doi.org/10.1016/j.cpc.2021.108171}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 4312 960
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Current simulation parameters: initial step = 100, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16.
Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11098 8.97155e-05 9
Bond: 6 0.996996 1.00568e-05 6
Bond: 8 1.08 6.02345e-06 7
Bond: 10 1.111 1.84253e-05 8
Bond: 12 1.08 7.2713e-06 9
Bond: 14 0.959996 0 1
Bond: 18 0.957198 3.36079e-05 1280
Angle: 31 104.52 0.0030599 640
Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
110 266.26438 -5341.1991 -6412.4073 1071.2082 -6552.7551 33.573173 1.9229657
120 262.66604 -5386.2387 -6442.9704 1056.7317 -6587.5483 29.859587 2.7124812
130 252.83379 -5422.5401 -6439.7157 1017.1756 -6580.4703 25.979343 1.2031591
140 253.85111 -5452.1837 -6473.4521 1021.2684 -6609.4826 26.071651 0.30585517
150 261.31816 -5490.4726 -6541.7816 1051.3091 -6646.6075 16.258823 6.9051008
160 255.7352 -5521.5941 -6550.4423 1028.8483 -6658.1373 19.717399 12.339679
170 253.42527 -5540.0942 -6559.6494 1019.5552 -6656.6678 23.293812 10.290217
180 248.51161 -5550.3254 -6550.1125 999.78704 -6661.4235 26.200127 3.4336036
190 250.80862 -5555.2555 -6564.2836 1009.0281 -6666.164 25.53634 3.3494286
SHAKE stats (type/ave/delta/count) on step 200
Bond: 4 1.111 1.81266e-06 9
Bond: 6 0.997 7.79424e-07 6
Bond: 8 1.08 1.08903e-06 7
Bond: 10 1.111 2.96503e-07 8
Bond: 12 1.08 4.69038e-07 9
Bond: 14 0.960001 0 1
Bond: 18 0.957201 3.76471e-06 1280
Angle: 31 104.52 0.000411055 640
200 251.50475 -5557.4252 -6569.2539 1011.8288 -6674.0846 24.804906 7.1387572
Saving collective variables state to "out.colvars.state".
Loop time of 0.238087 on 4 procs for 100 steps with 2004 atoms
Performance: 72.578 ns/day, 0.331 hours/ns, 420.014 timesteps/s, 841.709 katom-step/s
99.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.17913 | 0.18408 | 0.19082 | 1.1 | 77.32
Bond | 0.00019617 | 0.00044139 | 0.00071286 | 0.0 | 0.19
Kspace | 0.016186 | 0.022449 | 0.02737 | 3.0 | 9.43
Neigh | 0.018728 | 0.018753 | 0.018777 | 0.0 | 7.88
Comm | 0.0052171 | 0.0055397 | 0.0058422 | 0.3 | 2.33
Output | 0.00012326 | 0.00014453 | 0.00020506 | 0.0 | 0.06
Modify | 0.0062505 | 0.0062725 | 0.0062944 | 0.0 | 2.63
Other | | 0.0004069 | | | 0.17
Nlocal: 501 ave 513 max 481 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 6556.5 ave 6608 max 6514 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Neighs: 177021 ave 182259 max 172089 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 708083
Ave neighs/atom = 353.33483
Ave special neighs/atom = 2.3403194
Neighbor list builds = 7
Dangerous builds = 0
fix 2 all colvars peptide.colvars input out.colvars.state output out2
----------------------------------------------------------------------
Initializing the collective variables module, version 2024-06-04.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
This version was built with the C++11 standard or higher.
Summary of compile-time features available in this build:
- SMP parallelism: enabled (num. threads = 1)
- Lepton custom functions: available
- Tcl interpreter: not available
Using LAMMPS interface, version "2024-07-05".
Setting initial step number from MD engine: 200
run 100
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 4312 960
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Will read input state from file "out.colvars.state"----------------------------------------------------------------------
Reading new configuration from file "peptide.colvars":
# units = "" [default]
# smp = on [default]
# colvarsTrajFrequency = 1
# colvarsRestartFrequency = 1000
# scriptedColvarForces = off [default]
# scriptingAfterBiases = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "one"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "two"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 1 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Collective variables initialized, 2 in total.
----------------------------------------------------------------------
Initializing a new "harmonic" instance.
# name = "h_pot"
# colvars = { one, two }
# stepZeroData = off [default]
# outputEnergy = off [default]
# outputFreq = 1000 [default]
# timeStepFactor = 1 [default]
# writeTISamples = off [default]
# writeTIPMF = off [default]
# centers = { 10, 10 }
# targetCenters = { 10, 10 } [default]
# outputCenters = off [default]
# forceConstant = 100
# decoupling = off [default]
# targetForceConstant = -1 [default]
The force constant for colvar "one" will be rescaled to 100 according to the specified width (1).
The force constant for colvar "two" will be rescaled to 100 according to the specified width (1).
----------------------------------------------------------------------
Collective variables biases initialized, 1 in total.
----------------------------------------------------------------------
Collective variables module (re)initialized.
----------------------------------------------------------------------
Current simulation parameters: initial step = 200, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
Re-initialized atom group for variable "two":0/0. 4 atoms: total mass = 15.035, total charge = 0.16.
Re-initialized atom group for variable "two":0/1. 1 atoms: total mass = 12.011, total charge = 0.51.
----------------------------------------------------------------------
Loading state from text file "out.colvars.state".
Restarting collective variable "one" from value: 10.0128
Restarting collective variable "two" from value: 9.62236
Restarted harmonic bias "h_pot" with step number 200.
----------------------------------------------------------------------
The final output state file will be "out2.colvars.state".
SHAKE stats (type/ave/delta/count) on step 200
Bond: 4 1.111 1.81266e-06 9
Bond: 6 0.997 7.79424e-07 6
Bond: 8 1.08 1.08903e-06 7
Bond: 10 1.111 2.96503e-07 8
Bond: 12 1.08 4.69038e-07 9
Bond: 14 0.960001 0 1
Bond: 18 0.957201 3.76471e-06 1280
Angle: 31 104.52 0.000411055 640
Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
200 251.50475 -5557.4252 -6569.2539 1011.8288 -6674.0846 24.804906 7.1387572
210 253.15302 -5538.5615 -6557.0215 1018.4599 -6672.0498 37.676621 0.61219488
220 245.19621 -5522.5191 -6508.9679 986.44887 -6628.1899 36.657688 0.048643387
230 258.69885 -5495.7275 -6536.4989 1040.7713 -6658.2886 34.857911 0.22092559
240 260.79633 -5469.8678 -6519.0775 1049.2097 -6624.18 31.576952 3.7574815
250 269.07527 -5438.3946 -6520.9113 1082.5167 -6616.4382 25.447675 8.6600023
260 266.01046 -5397.3485 -6467.5352 1070.1867 -6580.2896 26.871919 8.3323104
270 272.81307 -5350.8819 -6448.4362 1097.5543 -6563.8228 23.114196 10.973132
280 279.42265 -5307.9799 -6432.1251 1124.1452 -6557.3368 33.644022 8.5490489
290 286.85168 -5260.841 -6414.874 1154.033 -6515.6797 28.574838 5.9100102
SHAKE stats (type/ave/delta/count) on step 300
Bond: 4 1.111 1.79793e-05 9
Bond: 6 0.997005 1.02512e-05 6
Bond: 8 1.08 1.85103e-05 7
Bond: 10 1.111 9.9884e-06 8
Bond: 12 1.08 8.84114e-06 9
Bond: 14 0.960008 0 1
Bond: 18 0.957203 1.8445e-05 1280
Angle: 31 104.52 0.00168383 640
300 291.52793 -5216.288 -6389.1341 1172.846 -6503.1275 27.88915 2.2482428
Saving collective variables state to "out2.colvars.state".
Loop time of 0.245933 on 4 procs for 100 steps with 2004 atoms
Performance: 70.263 ns/day, 0.342 hours/ns, 406.614 timesteps/s, 814.854 katom-step/s
99.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.17862 | 0.18666 | 0.19126 | 1.2 | 75.90
Bond | 0.00021974 | 0.00048505 | 0.00077708 | 0.0 | 0.20
Kspace | 0.018338 | 0.02317 | 0.031148 | 3.4 | 9.42
Neigh | 0.022128 | 0.022183 | 0.022222 | 0.0 | 9.02
Comm | 0.0059137 | 0.0060593 | 0.0064247 | 0.3 | 2.46
Output | 0.00014648 | 0.00015946 | 0.00019596 | 0.0 | 0.06
Modify | 0.0067012 | 0.00674 | 0.0067814 | 0.0 | 2.74
Other | | 0.0004738 | | | 0.19
Nlocal: 501 ave 513 max 472 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Nghost: 6612.75 ave 6681 max 6561 min
Histogram: 1 1 0 0 0 1 0 0 0 1
Neighs: 177038 ave 180136 max 170218 min
Histogram: 1 0 0 0 0 0 0 1 0 2
Total # of neighbors = 708152
Ave neighs/atom = 353.36926
Ave special neighs/atom = 2.3403194
Neighbor list builds = 8
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,344 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.012 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f peptide2.colvars.*"
fix 2 all colvars peptide.colvars2 output peptide2
----------------------------------------------------------------------
Initializing the collective variables module, version 2024-06-04.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
This version was built with the C++11 standard or higher.
Summary of compile-time features available in this build:
- SMP parallelism: enabled (num. threads = 1)
- Lepton custom functions: available
- Tcl interpreter: not available
Using LAMMPS interface, version "2024-07-05".
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.colvar2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 10648 3375
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
----------------------------------------------------------------------
Reading new configuration from file "peptide.colvars2":
# units = "" [default]
# smp = on [default]
# colvarsTrajFrequency = 1
# colvarsRestartFrequency = 1000
# scriptedColvarForces = off [default]
# scriptingAfterBiases = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "one"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 4 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Collective variables initialized, 1 in total.
----------------------------------------------------------------------
Initializing a new "harmonic" instance.
# name = "h_pot"
# colvars = { one }
# stepZeroData = off [default]
# outputEnergy = off [default]
# outputFreq = 1000 [default]
# timeStepFactor = 1 [default]
# writeTISamples = off [default]
# writeTIPMF = off [default]
# centers = { 10 }
# targetCenters = { 10 } [default]
# outputCenters = off [default]
# forceConstant = 100
# decoupling = off [default]
# targetForceConstant = -1 [default]
The force constant for colvar "one" will be rescaled to 100 according to the specified width (1).
----------------------------------------------------------------------
Collective variables biases initialized, 1 in total.
----------------------------------------------------------------------
Collective variables module (re)initialized.
----------------------------------------------------------------------
Current simulation parameters: initial step = 0, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 4 atoms: total mass = 15.035, total charge = 0.16.
The final output state file will be "peptide2.colvars.state".
Synchronizing (emptying the buffer of) trajectory file "peptide2.colvars.traj".
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11096 0.000191462 9
Bond: 6 0.996989 3.55508e-05 6
Bond: 8 1.08 9.0997e-06 7
Bond: 10 1.111 1.58544e-05 8
Bond: 12 1.08 5.80604e-06 9
Bond: 14 0.959997 0 1
Bond: 18 0.957198 2.92445e-05 1280
Angle: 31 104.52 0.00239923 640
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
Saving collective variables state to "peptide2.colvars.state".
Loop time of 0.907882 on 1 procs for 100 steps with 2004 atoms
Performance: 19.033 ns/day, 1.261 hours/ns, 110.146 timesteps/s, 220.734 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.71563 | 0.71563 | 0.71563 | 0.0 | 78.82
Bond | 0.0013267 | 0.0013267 | 0.0013267 | 0.0 | 0.15
Kspace | 0.042157 | 0.042157 | 0.042157 | 0.0 | 4.64
Neigh | 0.13452 | 0.13452 | 0.13452 | 0.0 | 14.82
Comm | 0.0034995 | 0.0034995 | 0.0034995 | 0.0 | 0.39
Output | 0.00014584 | 0.00014584 | 0.00014584 | 0.0 | 0.02
Modify | 0.010115 | 0.010115 | 0.010115 | 0.0 | 1.11
Other | | 0.0004888 | | | 0.05
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11143 ave 11143 max 11143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708234 ave 708234 max 708234 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708234
Ave neighs/atom = 353.41018
Ave special neighs/atom = 2.3403194
Neighbor list builds = 13
Dangerous builds = 1
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Colvars module (Fiorin2013, plus other works listed for specific features)
% Colvars module:
% Colvars-LAMMPS interface:
% Harmonic colvar bias implementation:
% Optimal rotation via flexible fitting:
% distance colvar component:
@article{Fiorin2013,
author = {Fiorin, Giacomo and Klein, Michael L.{} and H\'enin, J\'er\^ome},
title = {Using collective variables to drive molecular dynamics simulations},
journal = {Mol. Phys.},
year = {2013},
volume = {111},
number = {22-23},
pages = {3345--3362},
publisher = {Taylor & Francis},
doi = {10.1080/00268976.2013.813594},
url = {https://doi.org/10.1080/00268976.2013.813594}
}
% LAMMPS engine:
@article{Thompson2022,
title = {{LAMMPS} - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales},
author = {Thompson, Aidan P. and Aktulga, H. Metin and Berger, Richard and Bolintineanu, Dan S. and Brown, W. Michael and Crozier, Paul S. and {in't Veld}, Pieter J. and Kohlmeyer, Axel and Moore, Stan G. and Nguyen, Trung Dac and Shan, Ray and Stevens, Mark J. and Tranchida, Julien and Trott, Christian and Plimpton, Steven J.},
journal = {Comp. Phys. Comm.},
volume = {271},
pages = {108171},
year = {2022},
doi = {10.1016/j.cpc.2021.108171},
url = {https://doi.org/10.1016/j.cpc.2021.108171}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Total wall time: 0:00:00

View File

@ -0,0 +1,344 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.011 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
shell "rm -f peptide2.colvars.*"
fix 2 all colvars peptide.colvars2 output peptide2
----------------------------------------------------------------------
Initializing the collective variables module, version 2024-06-04.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
Please cite Fiorin et al, Mol Phys 2013:
https://doi.org/10.1080/00268976.2013.813594
as well as all other papers listed below for individual features used.
This version was built with the C++11 standard or higher.
Summary of compile-time features available in this build:
- SMP parallelism: enabled (num. threads = 1)
- Lepton custom functions: available
- Tcl interpreter: not available
Using LAMMPS interface, version "2024-07-05".
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.colvar2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_2
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 4312 960
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
----------------------------------------------------------------------
Reading new configuration from file "peptide.colvars2":
# units = "" [default]
# smp = on [default]
# colvarsTrajFrequency = 1
# colvarsRestartFrequency = 1000
# scriptedColvarForces = off [default]
# scriptingAfterBiases = off [default]
----------------------------------------------------------------------
Initializing a new collective variable.
# name = "one"
Initializing a new "distance" component.
# name = "" [default]
# componentCoeff = 1 [default]
# componentExp = 1 [default]
# period = 0 [default]
# wrapAround = 0 [default]
# forceNoPBC = off [default]
# scalable = on [default]
Initializing atom group "group1".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group1" defined with 4 atoms requested.
Initializing atom group "group2".
# name = "" [default]
# centerToOrigin = off [default]
# centerToReference = off [default]
# rotateToReference = off [default]
# atomsOfGroup = "" [default]
# indexGroup = "" [default]
# psfSegID = [default]
# atomsFile = "" [default]
# dummyAtom = ( 0 , 0 , 0 ) [default]
# enableFitGradients = on [default]
# printAtomIDs = off [default]
Atom group "group2" defined with 4 atoms requested.
# oneSiteSystemForce = off [default]
# oneSiteTotalForce = off [default]
All components initialized.
# timeStepFactor = 1 [default]
# width = 1 [default]
# lowerBoundary = 0 [default]
# upperBoundary = 1 [default]
# hardLowerBoundary = on [default]
# hardUpperBoundary = off [default]
# expandBoundaries = off [default]
# extendedLagrangian = off [default]
# outputValue = on [default]
# outputVelocity = off [default]
# outputTotalForce = off [default]
# outputAppliedForce = off [default]
# subtractAppliedForce = off [default]
# runAve = off [default]
# corrFunc = off [default]
----------------------------------------------------------------------
Collective variables initialized, 1 in total.
----------------------------------------------------------------------
Initializing a new "harmonic" instance.
# name = "h_pot"
# colvars = { one }
# stepZeroData = off [default]
# outputEnergy = off [default]
# outputFreq = 1000 [default]
# timeStepFactor = 1 [default]
# writeTISamples = off [default]
# writeTIPMF = off [default]
# centers = { 10 }
# targetCenters = { 10 } [default]
# outputCenters = off [default]
# forceConstant = 100
# decoupling = off [default]
# targetForceConstant = -1 [default]
The force constant for colvar "one" will be rescaled to 100 according to the specified width (1).
----------------------------------------------------------------------
Collective variables biases initialized, 1 in total.
----------------------------------------------------------------------
Collective variables module (re)initialized.
----------------------------------------------------------------------
Current simulation parameters: initial step = 0, integration timestep = 2
Updating atomic parameters (masses, charges, etc).
Re-initialized atom group for variable "one":0/0. 4 atoms: total mass = 15.035, total charge = -2.77556e-17.
Re-initialized atom group for variable "one":0/1. 4 atoms: total mass = 15.035, total charge = 0.16.
The final output state file will be "peptide2.colvars.state".
Synchronizing (emptying the buffer of) trajectory file "peptide2.colvars.traj".
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 16.02 | 16.22 | 16.41 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_2
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11096 0.000191462 9
Bond: 6 0.996989 3.55508e-05 6
Bond: 8 1.08 9.0997e-06 7
Bond: 10 1.111 1.58544e-05 8
Bond: 12 1.08 5.80604e-06 9
Bond: 14 0.959997 0 1
Bond: 18 0.957198 2.92445e-05 1280
Angle: 31 104.52 0.00239923 640
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
Saving collective variables state to "peptide2.colvars.state".
Loop time of 0.253421 on 4 procs for 100 steps with 2004 atoms
Performance: 68.187 ns/day, 0.352 hours/ns, 394.600 timesteps/s, 790.779 katom-step/s
99.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.1771 | 0.18185 | 0.18625 | 0.8 | 71.76
Bond | 0.00028771 | 0.00056007 | 0.00087366 | 0.0 | 0.22
Kspace | 0.017434 | 0.021451 | 0.026345 | 2.4 | 8.46
Neigh | 0.035481 | 0.035495 | 0.035512 | 0.0 | 14.01
Comm | 0.0064003 | 0.0065098 | 0.0065994 | 0.1 | 2.57
Output | 0.00012417 | 0.00013888 | 0.00018109 | 0.0 | 0.05
Modify | 0.0069389 | 0.0069521 | 0.0069617 | 0.0 | 2.74
Other | | 0.0004667 | | | 0.18
Nlocal: 501 ave 513 max 494 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Nghost: 6572.5 ave 6593 max 6548 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177058 ave 181778 max 174301 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 708234
Ave neighs/atom = 353.41018
Ave special neighs/atom = 2.3403194
Neighbor list builds = 13
Dangerous builds = 1
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Colvars module (Fiorin2013, plus other works listed for specific features)
% Colvars module:
% Colvars-LAMMPS interface:
% Harmonic colvar bias implementation:
% Optimal rotation via flexible fitting:
% distance colvar component:
@article{Fiorin2013,
author = {Fiorin, Giacomo and Klein, Michael L.{} and H\'enin, J\'er\^ome},
title = {Using collective variables to drive molecular dynamics simulations},
journal = {Mol. Phys.},
year = {2013},
volume = {111},
number = {22-23},
pages = {3345--3362},
publisher = {Taylor & Francis},
doi = {10.1080/00268976.2013.813594},
url = {https://doi.org/10.1080/00268976.2013.813594}
}
% LAMMPS engine:
@article{Thompson2022,
title = {{LAMMPS} - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales},
author = {Thompson, Aidan P. and Aktulga, H. Metin and Berger, Richard and Bolintineanu, Dan S. and Brown, W. Michael and Crozier, Paul S. and {in't Veld}, Pieter J. and Kohlmeyer, Axel and Moore, Stan G. and Nguyen, Trung Dac and Shan, Ray and Stevens, Mark J. and Tranchida, Julien and Trott, Christian and Plimpton, Steven J.},
journal = {Comp. Phys. Comm.},
volume = {271},
pages = {108171},
year = {2022},
doi = {10.1016/j.cpc.2021.108171},
url = {https://doi.org/10.1016/j.cpc.2021.108171}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Total wall time: 0:00:00

View File

@ -0,0 +1,194 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.012 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3a one spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 3b two spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.spring.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
variable sp equal f_3a+f_3b
thermo_style custom step temp etotal pe ke epair ebond v_sp
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 10648 3375
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond v_sp
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11098 8.97155e-05 9
Bond: 6 0.996996 1.00568e-05 6
Bond: 8 1.08 6.02345e-06 7
Bond: 10 1.111 1.84253e-05 8
Bond: 12 1.08 7.2713e-06 9
Bond: 14 0.959996 0 1
Bond: 18 0.957198 3.36079e-05 1280
Angle: 31 104.52 0.0030599 640
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
Loop time of 0.893963 on 1 procs for 100 steps with 2004 atoms
Performance: 19.330 ns/day, 1.242 hours/ns, 111.861 timesteps/s, 224.170 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.7114 | 0.7114 | 0.7114 | 0.0 | 79.58
Bond | 0.0012663 | 0.0012663 | 0.0012663 | 0.0 | 0.14
Kspace | 0.041962 | 0.041962 | 0.041962 | 0.0 | 4.69
Neigh | 0.12542 | 0.12542 | 0.12542 | 0.0 | 14.03
Comm | 0.0033466 | 0.0033466 | 0.0033466 | 0.0 | 0.37
Output | 0.00017765 | 0.00017765 | 0.00017765 | 0.0 | 0.02
Modify | 0.0098927 | 0.0098927 | 0.0098927 | 0.0 | 1.11
Other | | 0.0005014 | | | 0.06
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11124 ave 11124 max 11124 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708237 ave 708237 max 708237 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708237
Ave neighs/atom = 353.41168
Ave special neighs/atom = 2.3403194
Neighbor list builds = 12
Dangerous builds = 2
Total wall time: 0:00:00

View File

@ -0,0 +1,194 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.010 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3a one spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 3b two spring couple ref 100.0 0.0 0.0 0.0 10.0
fix 2a ref setforce 0.0 0.0 0.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.spring.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
variable sp equal f_3a+f_3b
thermo_style custom step temp etotal pe ke epair ebond v_sp
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 4312 960
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 16.01 | 16.22 | 16.41 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond v_sp
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 292.14604
10 305.06149 -5058.8972 -6286.1901 1227.2929 -6413.1021 58.8499 103.38345
20 311.00516 -4999.0612 -6250.266 1251.2048 -6417.1021 47.695297 36.699695
30 314.22337 -4993.7012 -6257.8532 1264.152 -6421.9679 35.344144 10.563933
40 297.87491 -5020.8378 -6219.2184 1198.3805 -6389.8528 27.723133 3.8354517
50 304.02071 -5056.2576 -6279.3633 1223.1057 -6456.8214 55.459505 0.20678217
60 285.92576 -5104.0461 -6254.354 1150.3079 -6435.5814 32.767229 0.69352945
70 277.83519 -5163.9758 -6281.7345 1117.7587 -6447.7033 39.627168 11.433603
80 267.51495 -5206.4046 -6282.644 1076.2394 -6456.6369 31.611883 6.3554178
90 278.15579 -5245.3824 -6364.431 1119.0485 -6499.8063 28.849773 0.36941576
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11098 8.97155e-05 9
Bond: 6 0.996996 1.00568e-05 6
Bond: 8 1.08 6.02345e-06 7
Bond: 10 1.111 1.84253e-05 8
Bond: 12 1.08 7.2713e-06 9
Bond: 14 0.959996 0 1
Bond: 18 0.957198 3.36079e-05 1280
Angle: 31 104.52 0.0030599 640
100 260.10613 -5292.6885 -6339.1215 1046.433 -6471.6734 25.362042 0.21987323
Loop time of 0.247541 on 4 procs for 100 steps with 2004 atoms
Performance: 69.806 ns/day, 0.344 hours/ns, 403.973 timesteps/s, 809.561 katom-step/s
99.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.17778 | 0.18129 | 0.18529 | 0.8 | 73.24
Bond | 0.00024025 | 0.00049912 | 0.00080235 | 0.0 | 0.20
Kspace | 0.016204 | 0.0204 | 0.023648 | 2.3 | 8.24
Neigh | 0.032425 | 0.032462 | 0.032496 | 0.0 | 13.11
Comm | 0.0063955 | 0.0065509 | 0.0067449 | 0.2 | 2.65
Output | 0.0001675 | 0.00018071 | 0.00021385 | 0.0 | 0.07
Modify | 0.0057027 | 0.0057304 | 0.0057568 | 0.0 | 2.31
Other | | 0.0004289 | | | 0.17
Nlocal: 501 ave 513 max 489 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 6563.25 ave 6596 max 6519 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177059 ave 181742 max 172942 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Total # of neighbors = 708237
Ave neighs/atom = 353.41168
Ave special neighs/atom = 2.3403194
Neighbor list builds = 12
Dangerous builds = 2
Total wall time: 0:00:00

View File

@ -0,0 +1,189 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 1 by 1 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.012 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3 one spring couple two 100.0 0.0 0.0 0.0 10.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.spring2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_3
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 10648 3375
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 19.03 | 19.03 | 19.03 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_3
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11096 0.000191462 9
Bond: 6 0.996989 3.55508e-05 6
Bond: 8 1.08 9.0997e-06 7
Bond: 10 1.111 1.58544e-05 8
Bond: 12 1.08 5.80604e-06 9
Bond: 14 0.959997 0 1
Bond: 18 0.957198 2.92445e-05 1280
Angle: 31 104.52 0.00239923 640
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
Loop time of 0.910778 on 1 procs for 100 steps with 2004 atoms
Performance: 18.973 ns/day, 1.265 hours/ns, 109.796 timesteps/s, 220.032 katom-step/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.71746 | 0.71746 | 0.71746 | 0.0 | 78.77
Bond | 0.0012756 | 0.0012756 | 0.0012756 | 0.0 | 0.14
Kspace | 0.042462 | 0.042462 | 0.042462 | 0.0 | 4.66
Neigh | 0.13497 | 0.13497 | 0.13497 | 0.0 | 14.82
Comm | 0.0036247 | 0.0036247 | 0.0036247 | 0.0 | 0.40
Output | 0.00016145 | 0.00016145 | 0.00016145 | 0.0 | 0.02
Modify | 0.010258 | 0.010258 | 0.010258 | 0.0 | 1.13
Other | | 0.0005695 | | | 0.06
Nlocal: 2004 ave 2004 max 2004 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11143 ave 11143 max 11143 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 708234 ave 708234 max 708234 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 708234
Ave neighs/atom = 353.41018
Ave special neighs/atom = 2.3403194
Neighbor list builds = 13
Dangerous builds = 1
Total wall time: 0:00:00

View File

@ -0,0 +1,189 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Solvated 5-mer peptide
units real
atom_style full
pair_style lj/charmm/coul/long 8.0 10.0 10.0
bond_style harmonic
angle_style charmm
dihedral_style charmm
improper_style harmonic
kspace_style pppm 0.0001
read_data data.peptide
Reading data file ...
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading atoms ...
2004 atoms
reading velocities ...
2004 velocities
scanning bonds ...
3 = max bonds/atom
scanning angles ...
6 = max angles/atom
scanning dihedrals ...
14 = max dihedrals/atom
scanning impropers ...
1 = max impropers/atom
orthogonal box = (36.840194 41.013691 29.768095) to (64.21156 68.385058 57.139462)
1 by 2 by 2 MPI processor grid
reading bonds ...
1365 bonds
reading angles ...
786 angles
reading dihedrals ...
207 dihedrals
reading impropers ...
12 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
7 = max # of 1-3 neighbors
14 = max # of 1-4 neighbors
18 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_data CPU = 0.011 seconds
neighbor 2.0 bin
neigh_modify delay 5
timestep 2.0
group peptide type <= 12
84 atoms in group peptide
group one id 2 4 5 6
4 atoms in group one
group two id 80 82 83 84
4 atoms in group two
group ref id 37
1 atoms in group ref
group colvar union one two ref
9 atoms in group colvar
fix 1 all nvt temp 275.0 275.0 100.0 tchain 1
fix 3 one spring couple two 100.0 0.0 0.0 0.0 10.0
fix 4 all shake 0.0001 10 100 b 4 6 8 10 12 14 18 a 31
Finding SHAKE clusters ...
19 = # of size 2 clusters
6 = # of size 3 clusters
3 = # of size 4 clusters
640 = # of frozen angles
find clusters CPU = 0.000 seconds
#dump 1 colvar custom 1 dump.spring2.lammpstrj id xu yu zu fx fy fz
#dump_modify 1 sort id
thermo_style custom step temp etotal pe ke epair ebond f_3
thermo 10
run 100
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:342)
G vector (1/distance) = 0.26872465
grid = 15 15 15
stencil order = 5
estimated absolute RMS force accuracy = 0.022820853
estimated relative force accuracy = 6.872432e-05
using double precision FFTW3
3d grid and FFT values/proc = 4312 960
Generated 91 of 91 mixed pair_coeff terms from arithmetic mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 5 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 12
binsize = 6, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/charmm/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
SHAKE stats (type/ave/delta/count) on step 0
Bond: 4 1.111 1.44264e-05 9
Bond: 6 0.996998 7.26967e-06 6
Bond: 8 1.08 1.32536e-05 7
Bond: 10 1.111 1.22749e-05 8
Bond: 12 1.08 1.11767e-05 9
Bond: 14 0.96 0 1
Bond: 18 0.957206 4.37979e-05 1280
Angle: 31 104.519 0.00396029 640
Per MPI rank memory allocation (min/avg/max) = 16.01 | 16.22 | 16.41 Mbytes
Step Temp TotEng PotEng KinEng E_pair E_bond f_3
0 282.10052 -5237.458 -6372.3766 1134.9186 -6442.768 16.557152 273.74323
10 333.47919 -4982.3968 -6324.0169 1341.6201 -6400.4223 21.367762 12.393263
20 309.56902 -4999.4978 -6244.9249 1245.4271 -6401.6981 43.59542 13.004314
30 316.9763 -5025.5662 -6300.7935 1275.2273 -6422.5375 27.323196 6.7589585
40 297.55779 -5088.2204 -6285.3252 1197.1047 -6395.375 13.6769 25.625024
50 296.79994 -5117.2966 -6311.3525 1194.0558 -6451.8309 30.631241 5.3320863
60 281.72778 -5188.4969 -6321.9159 1133.419 -6427.8856 26.287723 20.574037
70 277.26053 -5224.8434 -6340.2902 1115.4468 -6447.8521 27.742893 0.69420283
80 268.01484 -5281.8509 -6360.1014 1078.2505 -6496.6086 20.300754 5.2607186
90 270.43472 -5334.0835 -6422.0694 1087.9859 -6563.2511 39.846095 1.1832272
SHAKE stats (type/ave/delta/count) on step 100
Bond: 4 1.11096 0.000191462 9
Bond: 6 0.996989 3.55508e-05 6
Bond: 8 1.08 9.0997e-06 7
Bond: 10 1.111 1.58544e-05 8
Bond: 12 1.08 5.80604e-06 9
Bond: 14 0.959997 0 1
Bond: 18 0.957198 2.92445e-05 1280
Angle: 31 104.52 0.00239923 640
100 260.35636 -5387.2284 -6434.6681 1047.4397 -6534.1956 20.246866 0.075048487
Loop time of 0.248812 on 4 procs for 100 steps with 2004 atoms
Performance: 69.450 ns/day, 0.346 hours/ns, 401.910 timesteps/s, 805.428 katom-step/s
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.17522 | 0.18002 | 0.18454 | 1.0 | 72.35
Bond | 0.00020312 | 0.00044793 | 0.00074786 | 0.0 | 0.18
Kspace | 0.016556 | 0.021002 | 0.026079 | 3.0 | 8.44
Neigh | 0.035695 | 0.03571 | 0.03572 | 0.0 | 14.35
Comm | 0.0057324 | 0.0058127 | 0.005874 | 0.1 | 2.34
Output | 0.00013005 | 0.00013946 | 0.00016548 | 0.0 | 0.06
Modify | 0.00526 | 0.0052645 | 0.005272 | 0.0 | 2.12
Other | | 0.0004197 | | | 0.17
Nlocal: 501 ave 513 max 494 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Nghost: 6572.5 ave 6593 max 6548 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 177058 ave 181778 max 174301 min
Histogram: 2 0 0 0 1 0 0 0 0 1
Total # of neighbors = 708234
Ave neighs/atom = 353.41018
Ave special neighs/atom = 2.3403194
Neighbor list builds = 13
Dangerous builds = 1
Total wall time: 0:00:00

View File

@ -1,17 +1,17 @@
configuration { configuration {
step 200 step 200
dt 2.000000e+00 dt 2.000000e+00
version 2020-07-07 version 2024-06-04
} }
colvar { colvar {
name one name one
x 1.00127732034965e+01 x 10.012773203962
} }
colvar { colvar {
name two name two
x 9.62235997490241e+00 x 9.6223599748448
} }
restraint { restraint {

View File

@ -1,17 +1,17 @@
configuration { configuration {
step 100 step 100
dt 2.000000e+00 dt 2.000000e+00
version 2020-07-07 version 2024-06-04
} }
colvar { colvar {
name one name one
x 1.00136989326255e+01 x 10.013698932648
} }
colvar { colvar {
name two name two
x 1.00648830006091e+01 x 10.064883000604
} }
restraint { restraint {

View File

@ -13,191 +13,191 @@
11 1.01744058364969e+01 8.66916428851601e+00 11 1.01744058364969e+01 8.66916428851601e+00
12 1.01894584969823e+01 8.75011341291751e+00 12 1.01894584969823e+01 8.75011341291751e+00
13 1.02015949657517e+01 8.81261373358815e+00 13 1.02015949657517e+01 8.81261373358815e+00
14 1.02107634786499e+01 8.86010572643564e+00 14 1.02107634786498e+01 8.86010572643564e+00
15 1.02172802335367e+01 8.89996164389908e+00 15 1.02172802335367e+01 8.89996164389908e+00
16 1.02217586687617e+01 8.94046117354318e+00 16 1.02217586687617e+01 8.94046117354318e+00
17 1.02249400729821e+01 8.98764357480963e+00 17 1.02249400729821e+01 8.98764357480963e+00
18 1.02274821194763e+01 9.04385418276306e+00 18 1.02274821194763e+01 9.04385418276306e+00
19 1.02297694921722e+01 9.10767828090644e+00 19 1.02297694921722e+01 9.10767828090644e+00
20 1.02317948794015e+01 9.17521818721732e+00 20 1.02317948794015e+01 9.17521818721733e+00
21 1.02331324174422e+01 9.24256921345538e+00 21 1.02331324174422e+01 9.24256921345538e+00
22 1.02330115052436e+01 9.30670040650459e+00 22 1.02330115052436e+01 9.30670040650458e+00
23 1.02304888847637e+01 9.36477739916766e+00 23 1.02304888847637e+01 9.36477739916766e+00
24 1.02246905091409e+01 9.41471338314027e+00 24 1.02246905091409e+01 9.41471338314027e+00
25 1.02150557312054e+01 9.45578119421866e+00 25 1.02150557312054e+01 9.45578119421866e+00
26 1.02015018849614e+01 9.48855148434622e+00 26 1.02015018849613e+01 9.48855148434622e+00
27 1.01844563445019e+01 9.51414398880334e+00 27 1.01844563445019e+01 9.51414398880333e+00
28 1.01647618536435e+01 9.53348342780342e+00 28 1.01647618536435e+01 9.53348342780342e+00
29 1.01435075836914e+01 9.54736918677922e+00 29 1.01435075836914e+01 9.54736918677922e+00
30 1.01218448127414e+01 9.55679294480281e+00 30 1.01218448127414e+01 9.55679294480282e+00
31 1.01008234685872e+01 9.56289707955055e+00 31 1.01008234685872e+01 9.56289707955055e+00
32 1.00812605992407e+01 9.56689852729787e+00 32 1.00812605992407e+01 9.56689852729789e+00
33 1.00636482078211e+01 9.57008522470066e+00 33 1.00636482078211e+01 9.57008522470067e+00
34 1.00481219532447e+01 9.57404682801174e+00 34 1.00481219532447e+01 9.57404682801176e+00
35 1.00345149123742e+01 9.58097344406653e+00 35 1.00345149123742e+01 9.58097344406654e+00
36 1.00224896192326e+01 9.59352147402459e+00 36 1.00224896192326e+01 9.59352147402459e+00
37 1.00117065902086e+01 9.61412496221624e+00 37 1.00117065902086e+01 9.61412496221624e+00
38 1.00019625883763e+01 9.64369256665448e+00 38 1.00019625883763e+01 9.64369256665448e+00
39 9.99324045988116e+00 9.68100279483232e+00 39 9.99324045988117e+00 9.68100279483232e+00
40 9.98566198277188e+00 9.72340741886406e+00 40 9.98566198277187e+00 9.72340741886405e+00
41 9.97939087537504e+00 9.76737558060000e+00 41 9.97939087537503e+00 9.76737558059998e+00
42 9.97455220189940e+00 9.80830263552738e+00 42 9.97455220189941e+00 9.80830263552736e+00
43 9.97120052013341e+00 9.84185625268822e+00 43 9.97120052013341e+00 9.84185625268820e+00
44 9.96933202180119e+00 9.86623764187619e+00 44 9.96933202180119e+00 9.86623764187617e+00
45 9.96891976615505e+00 9.88235950966856e+00 45 9.96891976615505e+00 9.88235950966853e+00
46 9.96994868341340e+00 9.89287033859050e+00 46 9.96994868341340e+00 9.89287033859049e+00
47 9.97242707411381e+00 9.90111363064262e+00 47 9.97242707411382e+00 9.90111363064261e+00
48 9.97636549450466e+00 9.91016536955268e+00 48 9.97636549450467e+00 9.91016536955268e+00
49 9.98173560597232e+00 9.92197275407224e+00 49 9.98173560597233e+00 9.92197275407223e+00
50 9.98843048433684e+00 9.93674029911159e+00 50 9.98843048433685e+00 9.93674029911158e+00
51 9.99624064138588e+00 9.95286099036568e+00 51 9.99624064138588e+00 9.95286099036568e+00
52 1.00048525916104e+01 9.96759873289121e+00 52 1.00048525916104e+01 9.96759873289121e+00
53 1.00138780764319e+01 9.97821328789638e+00 53 1.00138780764319e+01 9.97821328789637e+00
54 1.00229204333232e+01 9.98289434996108e+00 54 1.00229204333232e+01 9.98289434996108e+00
55 1.00316676518615e+01 9.98113328544968e+00 55 1.00316676518615e+01 9.98113328544968e+00
56 1.00399758142293e+01 9.97358294450079e+00 56 1.00399758142293e+01 9.97358294450078e+00
57 1.00479031641095e+01 9.96154574170506e+00 57 1.00479031641095e+01 9.96154574170507e+00
58 1.00556838347250e+01 9.94624156425743e+00 58 1.00556838347250e+01 9.94624156425742e+00
59 1.00636555959318e+01 9.92816580065099e+00 59 1.00636555959318e+01 9.92816580065100e+00
60 1.00721640105110e+01 9.90692505955277e+00 60 1.00721640105110e+01 9.90692505955279e+00
61 1.00814536313753e+01 9.88155118527262e+00 61 1.00814536313753e+01 9.88155118527262e+00
62 1.00915547252798e+01 9.85098082230735e+00 62 1.00915547252798e+01 9.85098082230737e+00
63 1.01021918256653e+01 9.81456141006142e+00 63 1.01021918256653e+01 9.81456141006145e+00
64 1.01127650365675e+01 9.77251908261309e+00 64 1.01127650365675e+01 9.77251908261310e+00
65 1.01224426616504e+01 9.72626626484817e+00 65 1.01224426616504e+01 9.72626626484817e+00
66 1.01303500341168e+01 9.67844790721581e+00 66 1.01303500341168e+01 9.67844790721582e+00
67 1.01357827497794e+01 9.63264342158540e+00 67 1.01357827497794e+01 9.63264342158540e+00
68 1.01383594707679e+01 9.59267551611127e+00 68 1.01383594707679e+01 9.59267551611128e+00
69 1.01380701059532e+01 9.56168371312923e+00 69 1.01380701059532e+01 9.56168371312924e+00
70 1.01352290156399e+01 9.54132235576289e+00 70 1.01352290156399e+01 9.54132235576292e+00
71 1.01303782422632e+01 9.53145207033862e+00 71 1.01303782422632e+01 9.53145207033865e+00
72 1.01241807468998e+01 9.53052072472080e+00 72 1.01241807468998e+01 9.53052072472082e+00
73 1.01173118912092e+01 9.53632715678295e+00 73 1.01173118912091e+01 9.53632715678298e+00
74 1.01103471939659e+01 9.54668992740772e+00 74 1.01103471939659e+01 9.54668992740775e+00
75 1.01036629090248e+01 9.55984803752009e+00 75 1.01036629090248e+01 9.55984803752012e+00
76 1.00973931139318e+01 9.57467381743772e+00 76 1.00973931139318e+01 9.57467381743775e+00
77 1.00914805900150e+01 9.59078681449290e+00 77 1.00914805900150e+01 9.59078681449293e+00
78 1.00857806923796e+01 9.60849062320413e+00 78 1.00857806923796e+01 9.60849062320414e+00
79 1.00801732463746e+01 9.62847591791803e+00 79 1.00801732463746e+01 9.62847591791801e+00
80 1.00746211947647e+01 9.65137407697197e+00 80 1.00746211947646e+01 9.65137407697184e+00
81 1.00691682828698e+01 9.67731006831009e+00 81 1.00691682828698e+01 9.67731006830983e+00
82 1.00638992393184e+01 9.70564969348618e+00 82 1.00638992393183e+01 9.70564969348716e+00
83 1.00589006124327e+01 9.73510953407921e+00 83 1.00589006124326e+01 9.73510953408138e+00
84 1.00542402131510e+01 9.76420390471647e+00 84 1.00542402131508e+01 9.76420390471977e+00
85 1.00499602946160e+01 9.79180385249033e+00 85 1.00499602946157e+01 9.79180385249472e+00
86 1.00460706235439e+01 9.81755460563928e+00 86 1.00460706235435e+01 9.81755460564468e+00
87 1.00425414168408e+01 9.84200765912343e+00 87 1.00425414168399e+01 9.84200765912968e+00
88 1.00393046004480e+01 9.86642899323320e+00 88 1.00393046004464e+01 9.86642899324013e+00
89 1.00362677210398e+01 9.89232615597538e+00 89 1.00362677210369e+01 9.89232615598293e+00
90 1.00333326702222e+01 9.92077091295346e+00 90 1.00333326702175e+01 9.92077091296133e+00
91 1.00304190984417e+01 9.95163431119817e+00 91 1.00304190984349e+01 9.95163431120606e+00
92 1.00274924302484e+01 9.98320614724761e+00 92 1.00274924302394e+01 9.98320614725514e+00
93 1.00245832030580e+01 1.00126809229005e+01 93 1.00245832030468e+01 1.00126809229072e+01
94 1.00217818712298e+01 1.00372157022896e+01 94 1.00217818712178e+01 1.00372157022924e+01
95 1.00192174478224e+01 1.00549229065348e+01 95 1.00192174478128e+01 1.00549229065339e+01
96 1.00170334876474e+01 1.00654011519876e+01 96 1.00170334876423e+01 1.00654011519831e+01
97 1.00153609154724e+01 1.00697015600771e+01 97 1.00153609154726e+01 1.00697015600704e+01
98 1.00142801210350e+01 1.00698014812365e+01 98 1.00142801210419e+01 1.00698014812268e+01
99 1.00137749686339e+01 1.00677656407202e+01 99 1.00137749686484e+01 1.00677656407098e+01
100 1.00136989326255e+01 1.00648830006091e+01 100 1.00136989326479e+01 1.00648830006035e+01
100 1.00136989326255e+01 1.00648830006091e+01 100 1.00136989326479e+01 1.00648830006035e+01
101 1.00137674082083e+01 1.00611318434583e+01 101 1.00137674082404e+01 1.00611318434631e+01
102 1.00135836692120e+01 1.00551787890126e+01 102 1.00135836692638e+01 1.00551787890321e+01
103 1.00127001705469e+01 1.00448624179689e+01 103 1.00127001706252e+01 1.00448624180052e+01
104 1.00107128955990e+01 1.00279896008852e+01 104 1.00107128957021e+01 1.00279896009381e+01
105 1.00073732210918e+01 1.00031581615939e+01 105 1.00073732212177e+01 1.00031581616613e+01
106 1.00026863896858e+01 9.97035446256176e+00 106 1.00026863898319e+01 9.97035446264584e+00
107 9.99696129324890e+00 9.93114647843641e+00 107 9.99696129340979e+00 9.93114647853474e+00
108 9.99078911556410e+00 9.88834547941894e+00 108 9.99078911574286e+00 9.88834547952885e+00
109 9.98495363939735e+00 9.84525289783234e+00 109 9.98495363959500e+00 9.84525289795163e+00
110 9.98029333636388e+00 9.80488218664815e+00 110 9.98029333657187e+00 9.80488218677250e+00
111 9.97754787492958e+00 9.76956483721087e+00 111 9.97754787513574e+00 9.76956483733739e+00
112 9.97722552172005e+00 9.74089998776836e+00 112 9.97722552190832e+00 9.74089998789470e+00
113 9.97952448720610e+00 9.71964869280979e+00 113 9.97952448737980e+00 9.71964869293034e+00
114 9.98432949668635e+00 9.70572109422863e+00 114 9.98432949682222e+00 9.70572109433721e+00
115 9.99128565538624e+00 9.69882579496975e+00 115 9.99128565545184e+00 9.69882579506424e+00
116 9.99992834152120e+00 9.69906594532193e+00 116 9.99992834150833e+00 9.69906594541022e+00
117 1.00098244901113e+01 9.70675942684906e+00 117 1.00098244900360e+01 9.70675942693532e+00
118 1.00206778548564e+01 9.72193838510829e+00 118 1.00206778547510e+01 9.72193838520098e+00
119 1.00323618718055e+01 9.74392916146852e+00 119 1.00323618716864e+01 9.74392916157914e+00
120 1.00448741144078e+01 9.77144817149792e+00 120 1.00448741142733e+01 9.77144817163477e+00
121 1.00582353428180e+01 9.80293643028548e+00 121 1.00582353426856e+01 9.80293643045616e+00
122 1.00723772537607e+01 9.83653980628752e+00 122 1.00723772536367e+01 9.83653980649396e+00
123 1.00870562810006e+01 9.86996874359296e+00 123 1.00870562808775e+01 9.86996874383092e+00
124 1.01018143847617e+01 9.90067377124461e+00 124 1.01018143846136e+01 9.90067377150288e+00
125 1.01159953973120e+01 9.92637526075002e+00 125 1.01159953971355e+01 9.92637526102012e+00
126 1.01288196652442e+01 9.94569135970445e+00 126 1.01288196650277e+01 9.94569135999291e+00
127 1.01395052692626e+01 9.95859533688896e+00 127 1.01395052689679e+01 9.95859533719747e+00
128 1.01474034953817e+01 9.96651718147533e+00 128 1.01474034950021e+01 9.96651718180170e+00
129 1.01521107193303e+01 9.97198512417321e+00 129 1.01521107188430e+01 9.97198512451327e+00
130 1.01535310646235e+01 9.97783256102044e+00 130 1.01535310640198e+01 9.97783256135978e+00
131 1.01518709230597e+01 9.98617497185904e+00 131 1.01518709223691e+01 9.98617497219244e+00
132 1.01475657142497e+01 9.99754506682891e+00 132 1.01475657134909e+01 9.99754506714391e+00
133 1.01411666167305e+01 1.00106710657684e+01 133 1.01411666159632e+01 1.00106710660677e+01
134 1.01332318751871e+01 1.00230220357698e+01 134 1.01332318744629e+01 1.00230220360430e+01
135 1.01242581986854e+01 1.00317166064461e+01 135 1.01242581980791e+01 1.00317166066961e+01
136 1.01146544066986e+01 1.00343612487317e+01 136 1.01146544061953e+01 1.00343612489597e+01
137 1.01047332554016e+01 1.00296420246780e+01 137 1.01047332550129e+01 1.00296420248946e+01
138 1.00947014667735e+01 1.00175763327172e+01 138 1.00947014664877e+01 1.00175763329223e+01
139 1.00846531387645e+01 9.99930494674974e+00 139 1.00846531385394e+01 9.99930494695532e+00
140 1.00745857366623e+01 9.97646128131491e+00 140 1.00745857364974e+01 9.97646128152161e+00
141 1.00644400706802e+01 9.95041823440337e+00 141 1.00644400705403e+01 9.95041823460627e+00
142 1.00541501159131e+01 9.92180857541951e+00 142 1.00541501157683e+01 9.92180857562118e+00
143 1.00436834569978e+01 9.89050941872713e+00 143 1.00436834568360e+01 9.89050941892251e+00
144 1.00330649757401e+01 9.85603943350860e+00 144 1.00330649755670e+01 9.85603943369589e+00
145 1.00223855042347e+01 9.81818968302844e+00 145 1.00223855041248e+01 9.81818968320503e+00
146 1.00118066120717e+01 9.77759398920638e+00 146 1.00118066120332e+01 9.77759398937178e+00
147 1.00015635423691e+01 9.73590632972306e+00 147 1.00015635424482e+01 9.73590632987673e+00
148 9.99195808427061e+00 9.69551862637489e+00 148 9.99195808450856e+00 9.69551862651774e+00
149 9.98332973799261e+00 9.65911623085002e+00 149 9.98332973840472e+00 9.65911623099469e+00
150 9.97599905761175e+00 9.62915505877515e+00 150 9.97599905822999e+00 9.62915505892649e+00
151 9.97019367767784e+00 9.60716909686955e+00 151 9.97019367845638e+00 9.60716909703526e+00
152 9.96598267281873e+00 9.59318709200410e+00 152 9.96598267372795e+00 9.59318709218540e+00
153 9.96324605944343e+00 9.58559881047527e+00 153 9.96324606044969e+00 9.58559881066392e+00
154 9.96169276126796e+00 9.58153758556819e+00 154 9.96169276237047e+00 9.58153758575953e+00
155 9.96092625032814e+00 9.57763829311044e+00 155 9.96092625152242e+00 9.57763829328116e+00
156 9.96054315607791e+00 9.57093750799266e+00 156 9.96054315740228e+00 9.57093750810941e+00
157 9.96023482227745e+00 9.55965895377840e+00 157 9.96023482376251e+00 9.55965895382487e+00
158 9.95985352165466e+00 9.54367776307569e+00 158 9.95985352333786e+00 9.54367776304373e+00
159 9.95942460039566e+00 9.52452561463833e+00 159 9.95942460236116e+00 9.52452561453112e+00
160 9.95911205589222e+00 9.50490226824346e+00 160 9.95911205820184e+00 9.50490226807002e+00
161 9.95914975443396e+00 9.48781410600212e+00 161 9.95914975712190e+00 9.48781410580017e+00
162 9.95975278911406e+00 9.47562429341561e+00 162 9.95975279219164e+00 9.47562429324685e+00
163 9.96103890040379e+00 9.46939719079233e+00 163 9.96103890394426e+00 9.46939719071147e+00
164 9.96299147170478e+00 9.46883821286236e+00 164 9.96299147570651e+00 9.46883821294305e+00
165 9.96547099380307e+00 9.47284423942468e+00 165 9.96547099819345e+00 9.47284423972085e+00
166 9.96826097146115e+00 9.48031949605208e+00 166 9.96826097616579e+00 9.48031949660299e+00
167 9.97113131026389e+00 9.49080246783928e+00 167 9.97113131520360e+00 9.49080246868345e+00
168 9.97390346515378e+00 9.50467508257787e+00 168 9.97390347029220e+00 9.50467508368792e+00
169 9.97650055807565e+00 9.52297045210046e+00 169 9.97650056337441e+00 9.52297045344289e+00
170 9.97896696852481e+00 9.54683120799382e+00 170 9.97896697398981e+00 9.54683120949238e+00
171 9.98144993167344e+00 9.57673108800475e+00 171 9.98144993724280e+00 9.57673108957231e+00
172 9.98414386605973e+00 9.61177309775590e+00 172 9.98414387172420e+00 9.61177309931033e+00
173 9.98721435874383e+00 9.64941604907962e+00 173 9.98721436449207e+00 9.64941605055506e+00
174 9.99072987081047e+00 9.68581828149366e+00 174 9.99072987660973e+00 9.68581828287900e+00
175 9.99462784290560e+00 9.71674849920838e+00 175 9.99462784873357e+00 9.71674850053884e+00
176 9.99872910050856e+00 9.73876571566039e+00 176 9.99872910630021e+00 9.73876571701760e+00
177 1.00027910094647e+01 9.75024496509227e+00 177 1.00027910151196e+01 9.75024496660445e+00
178 1.00065753933095e+01 9.75188677631197e+00 178 1.00065753987481e+01 9.75188677811518e+00
179 1.00099096736715e+01 9.74652424002240e+00 179 1.00099096788152e+01 9.74652424221370e+00
180 1.00127256239536e+01 9.73825559652692e+00 180 1.00127256286803e+01 9.73825559920752e+00
181 1.00150707323506e+01 9.73120003142692e+00 181 1.00150707365928e+01 9.73120003464725e+00
182 1.00170870650914e+01 9.72835138795971e+00 182 1.00170870688102e+01 9.72835139174119e+00
183 1.00189588719574e+01 9.73088542644806e+00 183 1.00189588750915e+01 9.73088543078432e+00
184 1.00208370553711e+01 9.73798855694274e+00 184 1.00208370578559e+01 9.73798856175907e+00
185 1.00227676206971e+01 9.74722630488312e+00 185 1.00227676225361e+01 9.74722631009118e+00
186 1.00246552838286e+01 9.75544013816019e+00 186 1.00246552850623e+01 9.75544014363497e+00
187 1.00262844434324e+01 9.75985859738447e+00 187 1.00262844441069e+01 9.75985860295140e+00
188 1.00273887691195e+01 9.75895345517658e+00 188 1.00273887692830e+01 9.75895346064793e+00
189 1.00277400472209e+01 9.75275536148299e+00 189 1.00277400469004e+01 9.75275536661271e+00
190 1.00272200725279e+01 9.74261382746486e+00 190 1.00272200717913e+01 9.74261383198996e+00
191 1.00258549688160e+01 9.73056754269459e+00 191 1.00258549677417e+01 9.73056754639127e+00
192 1.00238089567536e+01 9.71853980670345e+00 192 1.00238089554369e+01 9.71853980943337e+00
193 1.00213474465750e+01 9.70762043885231e+00 193 1.00213474450786e+01 9.70762044056817e+00
194 1.00187805230869e+01 9.69773175124558e+00 194 1.00187805216026e+01 9.69773175201182e+00
195 1.00164016154513e+01 9.68784935173366e+00 195 1.00164016141049e+01 9.68784935170505e+00
196 1.00144402674219e+01 9.67667427007303e+00 196 1.00144402663323e+01 9.67667426952134e+00
197 1.00130444574495e+01 9.66343938720852e+00 197 1.00130444566844e+01 9.66343938641739e+00
198 1.00122912607270e+01 9.64854739476250e+00 198 1.00122912603524e+01 9.64854739402150e+00
199 1.00122066750836e+01 9.63383866331536e+00 199 1.00122066751424e+01 9.63383866285097e+00
200 1.00127732034965e+01 9.62235997490241e+00 200 1.00127732039621e+01 9.62235997484479e+00

View File

@ -1,17 +1,17 @@
configuration { configuration {
step 300 step 300
dt 2.000000e+00 dt 2.000000e+00
version 2020-07-07 version 2024-06-04
} }
colvar { colvar {
name one name one
x 9.95315918568411e+00 x 9.9531592295885
} }
colvar { colvar {
name two name two
x 9.79318883680258e+00 x 9.7931889789213
} }
restraint { restraint {

View File

@ -1,102 +1,102 @@
# step one two # step one two
200 1.00127732034965e+01 9.62235997490241e+00 200 1.00127732039621e+01 9.62235997484479e+00
201 1.00139198864982e+01 9.61766167925624e+00 201 1.00139198873142e+01 9.61766167960114e+00
202 1.00155004339120e+01 9.62284272858813e+00 202 1.00155004349735e+01 9.62284272927993e+00
203 1.00172741972246e+01 9.63964899323068e+00 203 1.00172741984288e+01 9.63964899413135e+00
204 1.00189052021826e+01 9.66786718571673e+00 204 1.00189052034286e+01 9.66786718668113e+00
205 1.00199887119842e+01 9.70521202056400e+00 205 1.00199887131237e+01 9.70521202139326e+00
206 1.00201070660155e+01 9.74782380666112e+00 206 1.00201070669505e+01 9.74782380717117e+00
207 1.00189089093749e+01 9.79114913038349e+00 207 1.00189089099933e+01 9.79114913037297e+00
208 1.00162005540278e+01 9.83091553260188e+00 208 1.00162005542527e+01 9.83091553193592e+00
209 1.00120316562035e+01 9.86409994884863e+00 209 1.00120316559893e+01 9.86409994753053e+00
210 1.00067394529596e+01 9.88955328455197e+00 210 1.00067394522266e+01 9.88955328278264e+00
211 1.00009200584653e+01 9.90798080826055e+00 211 1.00009200570685e+01 9.90798080630807e+00
212 9.99531475905311e+00 9.92127385542524e+00 212 9.99531475670037e+00 9.92127385350745e+00
213 9.99063400342297e+00 9.93157198661852e+00 213 9.99063399978946e+00 9.93157198491364e+00
214 9.98737188807678e+00 9.94051482696048e+00 214 9.98737188290188e+00 9.94051482558046e+00
215 9.98567127567181e+00 9.94885527957784e+00 215 9.98567126870035e+00 9.94885527853167e+00
216 9.98528704043382e+00 9.95646746111755e+00 216 9.98528703143402e+00 9.95646746044078e+00
217 9.98565832937415e+00 9.96275739929720e+00 217 9.98565831825084e+00 9.96275739920543e+00
218 9.98606724184677e+00 9.96730423246689e+00 218 9.98606722850532e+00 9.96730423316541e+00
219 9.98583582550472e+00 9.97036378703713e+00 219 9.98583581006681e+00 9.97036378874527e+00
220 9.98451001643477e+00 9.97292736129215e+00 220 9.98450999905139e+00 9.97292736402649e+00
221 9.98198434901656e+00 9.97627439806637e+00 221 9.98198432974296e+00 9.97627440161597e+00
222 9.97853678731273e+00 9.98127100659218e+00 222 9.97853676608100e+00 9.98127101043889e+00
223 9.97475984191141e+00 9.98785371236258e+00 223 9.97475981847134e+00 9.98785371579891e+00
224 9.97140286510626e+00 9.99492286335624e+00 224 9.97140283904510e+00 9.99492286559338e+00
225 9.96917137580259e+00 1.00005443231922e+01 225 9.96917134637541e+00 1.00005443234936e+01
226 9.96854523900174e+00 1.00023222923235e+01 226 9.96854520536988e+00 1.00023222900809e+01
227 9.96967375964547e+00 9.99790273206806e+00 227 9.96967372102824e+00 9.99790272698630e+00
228 9.97237636771905e+00 9.98555960216881e+00 228 9.97237632329275e+00 9.98555959429830e+00
229 9.97624253505807e+00 9.96473792067690e+00 229 9.97624248419111e+00 9.96473791046628e+00
230 9.98078777310055e+00 9.93636511602182e+00 230 9.98078771543058e+00 9.93636510426670e+00
231 9.98560846780419e+00 9.90275990393703e+00 231 9.98560840329183e+00 9.90275989164257e+00
232 9.99048787217569e+00 9.86710855077386e+00 232 9.99048780094848e+00 9.86710853890991e+00
233 9.99543040822038e+00 9.83269539984149e+00 233 9.99543033063032e+00 9.83269538913306e+00
234 1.00006246021103e+01 9.80221208335553e+00 234 1.00006245185513e+01 9.80221207423406e+00
235 1.00063530848982e+01 9.77738136586701e+00 235 1.00063529959328e+01 9.77738135842695e+00
236 1.00128741709083e+01 9.75887400813685e+00 236 1.00128740773079e+01 9.75887400220566e+00
237 1.00203106975850e+01 9.74632163179798e+00 237 1.00203106003782e+01 9.74632162713091e+00
238 1.00285805371730e+01 9.73844350416337e+00 238 1.00285804376080e+01 9.73844350045589e+00
239 1.00373945897865e+01 9.73349215182819e+00 239 1.00373944894039e+01 9.73349214878674e+00
240 1.00463194539327e+01 9.72980720779576e+00 240 1.00463193546284e+01 9.72980720512224e+00
241 1.00548770491533e+01 9.72611599020063e+00 241 1.00548769529672e+01 9.72611598750665e+00
242 1.00626421174965e+01 9.72152572108181e+00 242 1.00626420263492e+01 9.72152571786963e+00
243 1.00693109823863e+01 9.71531423107737e+00 243 1.00693108979996e+01 9.71531422666390e+00
244 1.00747300690509e+01 9.70668632474813e+00 244 1.00747299927796e+01 9.70668631833486e+00
245 1.00788811512303e+01 9.69472082245661e+00 245 1.00788810840328e+01 9.69472081315003e+00
246 1.00818281591535e+01 9.67872530149764e+00 246 1.00818281015229e+01 9.67872528846535e+00
247 1.00836382918008e+01 9.65899116363609e+00 247 1.00836382438846e+01 9.65899114629446e+00
248 1.00843077585461e+01 9.63702967428387e+00 248 1.00843077202414e+01 9.63702965268533e+00
249 1.00837304601058e+01 9.61431312359133e+00 249 1.00837304312378e+01 9.61431309843794e+00
250 1.00817369874724e+01 9.59193249256670e+00 250 1.00817369677632e+01 9.59193246490958e+00
251 1.00781951382998e+01 9.57162234547176e+00 251 1.00781951275561e+01 9.57162231665577e+00
252 1.00731274409141e+01 9.55557274350384e+00 252 1.00731274389447e+01 9.55557271498134e+00
253 1.00667870632608e+01 9.54560001126946e+00 253 1.00667870699195e+01 9.54559998431332e+00
254 1.00596598859158e+01 9.54253147668434e+00 254 1.00596599010604e+01 9.54253145213164e+00
255 1.00523956909045e+01 9.54593692832520e+00 255 1.00523957143832e+01 9.54593690642836e+00
256 1.00457028282132e+01 9.55423082330650e+00 256 1.00457028598538e+01 9.55423080384305e+00
257 1.00402418669526e+01 9.56514761944992e+00 257 1.00402419064054e+01 9.56514760196478e+00
258 1.00365397691695e+01 9.57641296971103e+00 258 1.00365398159221e+01 9.57641295373454e+00
259 1.00349276270394e+01 9.58620624196598e+00 259 1.00349276804438e+01 9.58620622717253e+00
260 1.00355019919770e+01 9.59332346959128e+00 260 1.00355020510841e+01 9.59332345585722e+00
261 1.00381137097146e+01 9.59732188686984e+00 261 1.00381137733017e+01 9.59732187421620e+00
262 1.00423905760179e+01 9.59837618250971e+00 262 1.00423906427137e+01 9.59837617102817e+00
263 1.00477959188736e+01 9.59679324477687e+00 263 1.00477959872900e+01 9.59679323453788e+00
264 1.00537068007149e+01 9.59269523141530e+00 264 1.00537068694862e+01 9.59269522224878e+00
265 1.00594937260641e+01 9.58610120816249e+00 265 1.00594937939774e+01 9.58610119961332e+00
266 1.00645870781682e+01 9.57722117048002e+00 266 1.00645871442695e+01 9.57722116190429e+00
267 1.00685316571224e+01 9.56668493985151e+00 267 1.00685317208695e+01 9.56668493059359e+00
268 1.00710357823615e+01 9.55556251047062e+00 268 1.00710358435525e+01 9.55556250017823e+00
269 1.00720144042107e+01 9.54520978473172e+00 269 1.00720144628669e+01 9.54520977349603e+00
270 1.00716144493745e+01 9.53703781183182e+00 270 1.00716145056864e+01 9.53703780013997e+00
271 1.00701992199135e+01 9.53227489206590e+00 271 1.00701992741473e+01 9.53227488069496e+00
272 1.00682808706064e+01 9.53173333554826e+00 272 1.00682809229059e+01 9.53173332532930e+00
273 1.00663988075209e+01 9.53554943194497e+00 273 1.00663988579612e+01 9.53554942356440e+00
274 1.00649733063520e+01 9.54299862049767e+00 274 1.00649733547668e+01 9.54299861430164e+00
275 1.00641836485840e+01 9.55262143610080e+00 275 1.00641836945973e+01 9.55262143202964e+00
276 1.00639178664285e+01 9.56271517955029e+00 276 1.00639179095174e+01 9.56271517715327e+00
277 1.00638153921535e+01 9.57192148747872e+00 277 1.00638154316074e+01 9.57192148613520e+00
278 1.00633853985923e+01 9.57957875475062e+00 278 1.00633854335686e+01 9.57957875400668e+00
279 1.00621626720543e+01 9.58572327394556e+00 279 1.00621627016565e+01 9.58572327370357e+00
280 1.00598570838615e+01 9.59085686511578e+00 280 1.00598571070638e+01 9.59085686592320e+00
281 1.00564566071967e+01 9.59567423393283e+00 281 1.00564566229803e+01 9.59567423699651e+00
282 1.00522576614697e+01 9.60085550637412e+00 282 1.00522576689401e+01 9.60085551333600e+00
283 1.00478091897332e+01 9.60690040068280e+00 283 1.00478091881844e+01 9.60690041329352e+00
284 1.00437767664032e+01 9.61396708331890e+00 284 1.00437767554115e+01 9.61396710318380e+00
285 1.00407546813490e+01 9.62178118810825e+00 285 1.00407546608873e+01 9.62178121653831e+00
286 1.00390773261870e+01 9.62975547860500e+00 286 1.00390772967935e+01 9.62975551670189e+00
287 1.00386906040191e+01 9.63733595704590e+00 287 1.00386905666453e+01 9.63733600598964e+00
288 1.00391292740982e+01 9.64435229335154e+00 288 1.00391292301728e+01 9.64435235461356e+00
289 1.00396077171765e+01 9.65114124926381e+00 289 1.00396076684883e+01 9.65114132457984e+00
290 1.00391967746350e+01 9.65843904962787e+00 290 1.00391967232973e+01 9.65843914091158e+00
291 1.00370409303829e+01 9.66713735495098e+00 291 1.00370408787737e+01 9.66713746391752e+00
292 1.00325613495850e+01 9.67798035621834e+00 292 1.00325613002434e+01 9.67798048381559e+00
293 1.00255913568518e+01 9.69130440474672e+00 293 1.00255913122523e+01 9.69130455064462e+00
294 1.00164044158125e+01 9.70689841022156e+00 294 1.00164043783898e+01 9.70689857240811e+00
295 1.00056261321876e+01 9.72399810930261e+00 295 1.00056261042358e+01 9.72399828398139e+00
296 9.99406221883501e+00 9.74140402524052e+00 296 9.99406220236070e+00 9.74140420689973e+00
297 9.98250803362175e+00 9.75776438941627e+00 297 9.98250803047048e+00 9.75776457125789e+00
298 9.97160202027972e+00 9.77203069297329e+00 298 9.97160203186903e+00 9.77203086770013e+00
299 9.96175637151037e+00 9.78379375044905e+00 299 9.96175639897897e+00 9.78379391142304e+00
300 9.95315918568411e+00 9.79318883680258e+00 300 9.95315922958854e+00 9.79318897892133e+00

View File

@ -1,12 +1,12 @@
configuration { configuration {
step 100 step 100
dt 2.000000e+00 dt 2.000000e+00
version 2020-07-07 version 2024-06-04
} }
colvar { colvar {
name one name one
x 1.00387423506482e+01 x 10.038742350674
} }
restraint { restraint {

View File

@ -20,16 +20,16 @@
18 9.41602481112176e+00 18 9.41602481112176e+00
19 9.44413580740584e+00 19 9.44413580740584e+00
20 9.49001346044027e+00 20 9.49001346044027e+00
21 9.55036359015270e+00 21 9.55036359015271e+00
22 9.62258602486444e+00 22 9.62258602486445e+00
23 9.70460545744668e+00 23 9.70460545744666e+00
24 9.79475465622561e+00 24 9.79475465622561e+00
25 9.89135302429916e+00 25 9.89135302429913e+00
26 9.99213332770717e+00 26 9.99213332770716e+00
27 1.00938522423366e+01 27 1.00938522423366e+01
28 1.01925371414626e+01 28 1.01925371414626e+01
29 1.02845129002944e+01 29 1.02845129002944e+01
30 1.03676671987640e+01 30 1.03676671987639e+01
31 1.04416385355998e+01 31 1.04416385355998e+01
32 1.05071349561950e+01 32 1.05071349561950e+01
33 1.05650463398331e+01 33 1.05650463398331e+01
@ -41,39 +41,39 @@
39 1.07331870068021e+01 39 1.07331870068021e+01
40 1.07158913924701e+01 40 1.07158913924701e+01
41 1.06789115566470e+01 41 1.06789115566470e+01
42 1.06198840652253e+01 42 1.06198840652254e+01
43 1.05380097743725e+01 43 1.05380097743725e+01
44 1.04346581978275e+01 44 1.04346581978275e+01
45 1.03132910149185e+01 45 1.03132910149185e+01
46 1.01792819503691e+01 46 1.01792819503692e+01
47 1.00398949454818e+01 47 1.00398949454818e+01
48 9.90373650268307e+00 48 9.90373650268307e+00
49 9.77934647164350e+00 49 9.77934647164349e+00
50 9.67343955381284e+00 50 9.67343955381283e+00
51 9.58957255517495e+00 51 9.58957255517494e+00
52 9.52771577288560e+00 52 9.52771577288559e+00
53 9.48463495848957e+00 53 9.48463495848955e+00
54 9.45495747488851e+00 54 9.45495747488850e+00
55 9.43277083061229e+00 55 9.43277083061230e+00
56 9.41329510571902e+00 56 9.41329510571900e+00
57 9.39417852043035e+00 57 9.39417852043034e+00
58 9.37607916767444e+00 58 9.37607916767444e+00
59 9.36243879601093e+00 59 9.36243879601092e+00
60 9.35853234890725e+00 60 9.35853234890724e+00
61 9.36993739187210e+00 61 9.36993739187209e+00
62 9.40084256925489e+00 62 9.40084256925487e+00
63 9.45286356660258e+00 63 9.45286356660258e+00
64 9.52464585631223e+00 64 9.52464585631223e+00
65 9.61230948096192e+00 65 9.61230948096192e+00
66 9.71074418990813e+00 66 9.71074418990814e+00
67 9.81507236552599e+00 67 9.81507236552600e+00
68 9.92117974657176e+00 68 9.92117974657179e+00
69 1.00244259961919e+01 69 1.00244259961920e+01
70 1.01178306268727e+01 70 1.01178306268727e+01
71 1.01986985644537e+01 71 1.01986985644538e+01
72 1.02671003889995e+01 72 1.02671003889995e+01
73 1.03213098011429e+01 73 1.03213098011430e+01
74 1.03597236984298e+01 74 1.03597236984299e+01
75 1.03817789163109e+01 75 1.03817789163109e+01
76 1.03880650963390e+01 76 1.03880650963390e+01
77 1.03809140245635e+01 77 1.03809140245635e+01
@ -82,21 +82,21 @@
80 1.03243676495902e+01 80 1.03243676495902e+01
81 1.03082131278348e+01 81 1.03082131278348e+01
82 1.02961310659179e+01 82 1.02961310659179e+01
83 1.02862115513553e+01 83 1.02862115513552e+01
84 1.02756073299153e+01 84 1.02756073299153e+01
85 1.02618115461408e+01 85 1.02618115461408e+01
86 1.02435127550163e+01 86 1.02435127550163e+01
87 1.02212112849545e+01 87 1.02212112849545e+01
88 1.01972788307491e+01 88 1.01972788307491e+01
89 1.01743918261207e+01 89 1.01743918261206e+01
90 1.01538328424605e+01 90 1.01538328424605e+01
91 1.01363005552771e+01 91 1.01363005552771e+01
92 1.01223066231827e+01 92 1.01223066231826e+01
93 1.01118037967830e+01 93 1.01118037967829e+01
94 1.01038502876980e+01 94 1.01038502876980e+01
95 1.00967012947728e+01 95 1.00967012947726e+01
96 1.00885779123137e+01 96 1.00885779123133e+01
97 1.00784256309007e+01 97 1.00784256308996e+01
98 1.00661429612272e+01 98 1.00661429612359e+01
99 1.00524913461711e+01 99 1.00524913461887e+01
100 1.00387423506482e+01 100 1.00387423506735e+01

View File

@ -16,7 +16,7 @@ variable mass equal $a*$a*$a*${rho_0}
variable dt equal 1e-3 # timestep microseconds variable dt equal 1e-3 # timestep microseconds
variable skin equal 0.2*$h variable skin equal 0.2*$h
region box block -${Lb} ${Lb} -${Lb} ${Lb} 0 ${a} units box region box block -${Lb} ${Lb} -${Lb} ${Lb} -0.5 0.5 units box
create_box 4 box create_box 4 box
lattice sq $a lattice sq $a

View File

@ -14,7 +14,7 @@ variable mass equal $a*$a*$a*${rho_0}
variable dt equal 1e-3 # timestep microseconds variable dt equal 1e-3 # timestep microseconds
variable skin equal 0.2*$h variable skin equal 0.2*$h
region box block -$L $L -$L $L 0 $a units box region box block -$L $L -$L $L -0.5 0.5 units box
create_box 2 box create_box 2 box
lattice sq $a lattice sq $a

View File

@ -1,40 +1,40 @@
variable sname index ch4 variable sname index ch4
units electron units electron
newton on newton on
boundary f f f boundary f f f
atom_style electron atom_style electron
read_data data.${sname} read_data data.${sname}
pair_style eff/cut 100.0 pair_style eff/cut 100.0
pair_coeff * * pair_coeff * *
comm_modify vel yes comm_modify vel yes
# Minimize # Minimize
min_style cg min_style cg
compute 1 all property/atom spin eradius compute 1 all property/atom spin eradius
dump 1 all custom 1 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z #dump 1 all custom 1 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z
min_modify line quadratic dmax 0.1 min_modify line quadratic dmax 0.1
minimize 0 1.0e-6 1000 10000 minimize 0 1.0e-6 1000 10000
# Dynamics # Dynamics
compute effTemp all temp/eff compute effTemp all temp/eff
thermo 1000 thermo 1000
thermo_style custom step pe temp press thermo_style custom step pe temp press
thermo_modify temp effTemp thermo_modify temp effTemp
velocity all create 300.0 4928459 dist gaussian rot yes mom yes velocity all create 300.0 4928459 dist gaussian rot yes mom yes
timestep 0.005 timestep 0.005
fix 1 all nve/eff fix 1 all nve/eff
# the custom dump includes the radii # the custom dump includes the radii
dump 2 all custom 1000 ${sname}.nve.lammpstrj id type q c_1[1] c_1[2] x y z #dump 2 all custom 1000 ${sname}.nve.lammpstrj id type q c_1[1] c_1[2] x y z
dump 3 all xyz 1000 ${sname}.nve.xyz #dump 3 all xyz 1000 ${sname}.nve.xyz
run 100000 run 100000

View File

@ -1,17 +1,17 @@
variable sname index ch4 variable sname index ch4
units electron units electron
newton on newton on
boundary f f f boundary f f f
atom_style electron atom_style electron
read_data data.${sname} read_data data.${sname}
pair_style eff/cut 100.0 pair_style eff/cut 100.0
pair_coeff * * pair_coeff * *
comm_modify vel yes comm_modify vel yes
compute effTemp all temp/eff compute effTemp all temp/eff
@ -24,8 +24,8 @@ variable erres equal c_energies[4]
thermo 1 thermo 1
thermo_style custom step etotal pe ke v_eke v_epauli v_ecoul v_erres thermo_style custom step etotal pe ke v_eke v_epauli v_ecoul v_erres
min_style cg min_style cg
compute 1 all property/atom spin eradius erforce compute 1 all property/atom spin eradius erforce
dump 2 all custom 10 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3] #dump 2 all custom 10 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3]
minimize 0 1e-6 2000 4000 minimize 0 1e-6 2000 4000

View File

@ -1,17 +1,17 @@
variable sname index ch4_ionized variable sname index ch4_ionized
units electron units electron
newton on newton on
boundary f f f boundary f f f
atom_style electron atom_style electron
read_data data.${sname} read_data data.${sname}
pair_style eff/cut 5000.0 0 0 pair_style eff/cut 5000.0
pair_coeff * * pair_coeff * *
comm_modify vel yes comm_modify vel yes
# minimize # minimize
@ -20,23 +20,23 @@ min_modify line quadratic
minimize 0 1.0e-6 10000 100000 minimize 0 1.0e-6 10000 100000
# dynamics # dynamics
compute effTemp all temp/eff compute effTemp all temp/eff
thermo 100 thermo 100
thermo_style custom step etotal pe ke temp press thermo_style custom step etotal pe ke temp press
thermo_modify temp effTemp thermo_modify temp effTemp
# equilibrate # equilibrate
timestep 0.001 timestep 0.001
fix 1 all nvt/eff temp 300.0 300.0 0.1 fix 1 all nvt/eff temp 300.0 300.0 0.1
# the custom dump includes the radii # the custom dump includes the radii
compute 1 all property/atom spin eradius compute 1 all property/atom spin eradius
dump 1 all custom 100 ${sname}.nvt.lammpstrj id type x y z c_1[1] c_1[2] #dump 1 all custom 100 ${sname}.nvt.lammpstrj id type x y z c_1[1] c_1[2]
dump 2 all xyz 100 ${sname}.nvt.xyz #dump 2 all xyz 100 ${sname}.nvt.xyz
run 1000000 run 1000000
fix 2 all nve/eff fix 2 all nve/eff
run 1000000 run 1000000

View File

@ -0,0 +1,266 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
variable sname index ch4
units electron
newton on
boundary f f f
atom_style electron
read_data data.${sname}
read_data data.ch4
Reading data file ...
orthogonal box = (-500 -500 -500) to (500 500 500)
1 by 1 by 1 MPI processor grid
reading atoms ...
15 atoms
read_data CPU = 0.000 seconds
pair_style eff/cut 100.0
pair_coeff * *
comm_modify vel yes
# Minimize
min_style cg
compute 1 all property/atom spin eradius
dump 1 all custom 1 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z
dump 1 all custom 1 ch4.min.lammpstrj id type q c_1[1] c_1[2] x y z
min_modify line quadratic dmax 0.1
minimize 0 1.0e-6 1000 10000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- EFF package: doi:10.1002/jcc.21637
@Article{Jaramillo-Botero11,
author = {A. Jaramillo-Botero and J. Su and A. Qi and Goddard, III, W. A.},
title = {Large-Scale, Long-Term Nonadiabatic Electron Molecular Dynamics for Describing Material Properties and Phenomena in Extreme Environments},
journal = {J.~Comp.\ Chem.},
year = 2011,
volume = 32,
number = 3,
pages = {497--512}
}
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 102
ghost atom cutoff = 102
binsize = 51, bins = 20 20 20
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair eff/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.405 | 5.405 | 5.405 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -27.314082 0 -27.314082 -56588.53
1000 0 -34.07448 0 -34.07448 1.3464499
Loop time of 0.0308104 on 1 procs for 1000 steps with 15 atoms
88.9% CPU use with 1 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = max iterations
Energy initial, next-to-last, final =
-27.3140820331247 -34.0744796893375 -34.0744796893447
Force two-norm initial, final = 10.728716 0.00017815706
Force max component initial, final = 6.1727999 8.2675815e-05
Final line search alpha, max atom move = 1 8.2675815e-05
Iterations, force evaluations = 1000 1943
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.012522 | 0.012522 | 0.012522 | 0.0 | 40.64
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00012209 | 0.00012209 | 0.00012209 | 0.0 | 0.40
Output | 0.016563 | 0.016563 | 0.016563 | 0.0 | 53.76
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.001604 | | | 5.20
Nlocal: 15 ave 15 max 15 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 105 ave 105 max 105 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 105
Ave neighs/atom = 7
Neighbor list builds = 0
Dangerous builds = 0
# Dynamics
compute effTemp all temp/eff
thermo 1000
thermo_style custom step pe temp press
thermo_modify temp effTemp
velocity all create 300.0 4928459 dist gaussian rot yes mom yes
timestep 0.005
fix 1 all nve/eff
# the custom dump includes the radii
dump 2 all custom 1000 ${sname}.nve.lammpstrj id type q c_1[1] c_1[2] x y z
dump 2 all custom 1000 ch4.nve.lammpstrj id type q c_1[1] c_1[2] x y z
dump 3 all xyz 1000 ${sname}.nve.xyz
dump 3 all xyz 1000 ch4.nve.xyz
run 100000
Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 5.406 | 5.406 | 5.406 Mbytes
Step PotEng Temp Press
1000 -34.07448 1050 392.66426
2000 -34.065618 583.71716 -618.55027
3000 -34.063563 475.54605 661.95076
4000 -34.06119 350.76183 -449.64687
5000 -34.0652 561.71223 -131.2575
6000 -34.065798 593.21728 754.38406
7000 -34.067408 677.86019 -409.21139
8000 -34.065663 586.03411 446.32573
9000 -34.06294 442.71136 414.41408
10000 -34.060101 293.33406 -1203.0131
11000 -34.064946 548.39598 345.29601
12000 -34.067323 673.49043 444.55927
13000 -34.063275 460.43973 -854.83884
14000 -34.064666 533.57265 1542.0127
15000 -34.063343 463.97449 -778.73252
16000 -34.064462 522.77625 -1.5339614
17000 -34.061203 351.37068 -148.19163
18000 -34.066534 631.87837 -237.0746
19000 -34.065169 560.16772 1360.7348
20000 -34.063042 448.13104 -664.72128
21000 -34.060696 324.68723 -167.83333
22000 -34.065376 570.90279 -831.73853
23000 -34.063127 452.61143 766.59984
24000 -34.064572 528.62282 -107.80755
25000 -34.06584 595.42175 610.33075
26000 -34.066886 650.43579 -894.20521
27000 -34.062035 395.20224 1754.7666
28000 -34.060696 324.66878 -2622.013
29000 -34.066777 644.66282 1551.3147
30000 -34.066421 625.94614 -507.44173
31000 -34.066163 612.36658 610.11907
32000 -34.063109 451.70185 -47.463209
33000 -34.062833 437.16794 -607.25848
34000 -34.061657 375.30056 -158.28097
35000 -34.064937 547.86519 272.75585
36000 -34.067509 683.23088 359.91072
37000 -34.067582 686.96461 -384.97405
38000 -34.063213 457.13191 411.86349
39000 -34.06272 431.13187 -594.23723
40000 -34.062286 408.41212 456.09079
41000 -34.064078 502.64096 -1149.8496
42000 -34.066408 625.33334 1403.4937
43000 -34.065948 601.03876 -773.40678
44000 -34.064113 504.49498 179.93456
45000 -34.060573 318.11433 223.38679
46000 -34.063614 478.24588 -409.99081
47000 -34.064814 541.38544 614.25246
48000 -34.065602 582.87984 -743.92184
49000 -34.063923 494.52673 474.88127
50000 -34.064616 530.94533 288.81199
51000 -34.062038 395.2991 -480.07513
52000 -34.06497 549.5123 -305.53764
53000 -34.065578 581.59919 964.80956
54000 -34.06766 691.12707 -437.99603
55000 -34.064707 535.85658 1058.6734
56000 -34.062481 418.58003 -1011.5341
57000 -34.064997 551.06731 -32.91724
58000 -34.064281 513.25358 374.91628
59000 -34.066177 613.1188 -464.85124
60000 -34.064718 536.29803 1011.6698
61000 -34.065746 590.46955 -1057.9241
62000 -34.063253 459.23293 1526.2698
63000 -34.062261 407.08636 -1743.6652
64000 -34.063835 489.88286 761.60266
65000 -34.069569 791.614 323.26812
66000 -34.065557 580.45685 874.52459
67000 -34.064917 546.77223 -1349.3606
68000 -34.062963 443.96697 1178.4319
69000 -34.063063 449.26418 -1660.686
70000 -34.063597 477.39716 1323.13
71000 -34.065424 573.47914 -131.55428
72000 -34.065211 562.31067 -415.56361
73000 -34.06339 466.38097 724.92885
74000 -34.062286 408.34027 -1094.3845
75000 -34.065545 579.79767 587.58121
76000 -34.066774 644.61685 -357.22241
77000 -34.064479 523.74831 1545.6628
78000 -34.065506 577.88405 -1013.2409
79000 -34.062874 439.24856 240.66725
80000 -34.06306 449.09678 -799.14252
81000 -34.063338 463.66067 1528.3351
82000 -34.066812 646.52985 -1351.1758
83000 -34.064724 536.65114 1338.595
84000 -34.063774 486.67172 -876.0475
85000 -34.06156 370.19256 617.89915
86000 -34.063628 478.95398 -134.40164
87000 -34.065141 558.60424 -758.03942
88000 -34.066732 642.27865 1159.5992
89000 -34.067349 674.83453 -301.45201
90000 -34.063623 478.69626 386.87752
91000 -34.061885 387.30728 -774.32296
92000 -34.061363 359.77745 500.06117
93000 -34.065724 589.32209 -469.10399
94000 -34.065006 551.42796 818.92294
95000 -34.06541 572.75191 -677.20865
96000 -34.062331 410.64868 1383.8935
97000 -34.061499 366.95753 -1715.2058
98000 -34.061153 348.68703 353.63545
99000 -34.066217 615.27816 193.79593
100000 -34.067739 695.36238 205.35389
101000 -34.067314 672.94727 929.41223
Loop time of 2.23163 on 1 procs for 100000 steps with 15 atoms
Performance: 19358038.198 fs/day, 0.000 hours/fs, 44810.274 timesteps/s, 672.154 katom-step/s
85.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.59187 | 0.59187 | 0.59187 | 0.0 | 26.52
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0061524 | 0.0061524 | 0.0061524 | 0.0 | 0.28
Output | 1.5983 | 1.5983 | 1.5983 | 0.0 | 71.62
Modify | 0.017759 | 0.017759 | 0.017759 | 0.0 | 0.80
Other | | 0.01755 | | | 0.79
Nlocal: 15 ave 15 max 15 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 105 ave 105 max 105 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 105
Ave neighs/atom = 7
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:02

View File

@ -0,0 +1,266 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
variable sname index ch4
units electron
newton on
boundary f f f
atom_style electron
read_data data.${sname}
read_data data.ch4
Reading data file ...
orthogonal box = (-500 -500 -500) to (500 500 500)
1 by 2 by 2 MPI processor grid
reading atoms ...
15 atoms
read_data CPU = 0.000 seconds
pair_style eff/cut 100.0
pair_coeff * *
comm_modify vel yes
# Minimize
min_style cg
compute 1 all property/atom spin eradius
dump 1 all custom 1 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z
dump 1 all custom 1 ch4.min.lammpstrj id type q c_1[1] c_1[2] x y z
min_modify line quadratic dmax 0.1
minimize 0 1.0e-6 1000 10000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- EFF package: doi:10.1002/jcc.21637
@Article{Jaramillo-Botero11,
author = {A. Jaramillo-Botero and J. Su and A. Qi and Goddard, III, W. A.},
title = {Large-Scale, Long-Term Nonadiabatic Electron Molecular Dynamics for Describing Material Properties and Phenomena in Extreme Environments},
journal = {J.~Comp.\ Chem.},
year = 2011,
volume = 32,
number = 3,
pages = {497--512}
}
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 102
ghost atom cutoff = 102
binsize = 51, bins = 20 20 20
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair eff/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.385 | 5.385 | 5.385 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -27.314082 0 -27.314082 -56588.53
1000 0 -34.07448 0 -34.07448 0.39495391
Loop time of 0.0230482 on 4 procs for 1000 steps with 15 atoms
97.7% CPU use with 4 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = max iterations
Energy initial, next-to-last, final =
-27.3140820331249 -34.0744796901924 -34.0744796901707
Force two-norm initial, final = 10.728716 0.00024139276
Force max component initial, final = 6.1727999 0.00017091779
Final line search alpha, max atom move = 1 0.00017091779
Iterations, force evaluations = 1000 1946
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0015331 | 0.0032095 | 0.0046681 | 2.0 | 13.93
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0037211 | 0.0053887 | 0.0069902 | 1.6 | 23.38
Output | 0.0062087 | 0.0079064 | 0.011172 | 2.2 | 34.30
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.006544 | | | 28.39
Nlocal: 3.75 ave 6 max 3 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Nghost: 11.25 ave 12 max 9 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Neighs: 26.25 ave 39 max 12 min
Histogram: 1 0 0 0 1 0 1 0 0 1
Total # of neighbors = 105
Ave neighs/atom = 7
Neighbor list builds = 0
Dangerous builds = 0
# Dynamics
compute effTemp all temp/eff
thermo 1000
thermo_style custom step pe temp press
thermo_modify temp effTemp
velocity all create 300.0 4928459 dist gaussian rot yes mom yes
timestep 0.005
fix 1 all nve/eff
# the custom dump includes the radii
dump 2 all custom 1000 ${sname}.nve.lammpstrj id type q c_1[1] c_1[2] x y z
dump 2 all custom 1000 ch4.nve.lammpstrj id type q c_1[1] c_1[2] x y z
dump 3 all xyz 1000 ${sname}.nve.xyz
dump 3 all xyz 1000 ch4.nve.xyz
run 100000
Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 5.401 | 5.401 | 5.401 Mbytes
Step PotEng Temp Press
1000 -34.07448 1050 391.71277
2000 -34.065618 583.70724 -617.78946
3000 -34.063563 475.53779 661.75865
4000 -34.06119 350.74901 -449.8917
5000 -34.065201 561.76559 -130.73147
6000 -34.065798 593.21893 753.94281
7000 -34.067408 677.86552 -409.14034
8000 -34.065662 586.02658 446.74947
9000 -34.062939 442.6953 413.93386
10000 -34.060101 293.35262 -1202.4169
11000 -34.064946 548.37877 344.89658
12000 -34.067324 673.52389 444.40605
13000 -34.063275 460.44923 -854.41022
14000 -34.064667 533.59655 1541.2922
15000 -34.063344 464.01572 -777.83895
16000 -34.064461 522.76554 -2.2050586
17000 -34.061202 351.31261 -148.09486
18000 -34.066534 631.89021 -236.72076
19000 -34.065169 560.16576 1359.8928
20000 -34.063042 448.14707 -663.76152
21000 -34.060695 324.66945 -168.3252
22000 -34.065376 570.90677 -831.8481
23000 -34.063127 452.62391 767.31463
24000 -34.064572 528.62018 -108.63204
25000 -34.06584 595.41818 610.87995
26000 -34.066885 650.4263 -894.11862
27000 -34.062035 395.1876 1754.1737
28000 -34.060697 324.71187 -2621.333
29000 -34.066777 644.68166 1550.7046
30000 -34.066421 625.9368 -507.12512
31000 -34.066163 612.3605 610.12993
32000 -34.063108 451.66459 -48.049967
33000 -34.062834 437.21062 -606.58502
34000 -34.061656 375.26971 -158.76936
35000 -34.064938 547.90576 273.26572
36000 -34.067508 683.20936 360.05973
37000 -34.067582 686.96938 -385.62265
38000 -34.063213 457.13708 412.74004
39000 -34.06272 431.16474 -595.05437
40000 -34.062285 408.38247 456.29631
41000 -34.064078 502.65934 -1149.196
42000 -34.066408 625.33356 1402.5676
43000 -34.065948 601.04311 -772.96544
44000 -34.064113 504.47553 179.83988
45000 -34.060572 318.08821 222.85125
46000 -34.063614 478.25613 -409.06152
47000 -34.064813 541.37361 613.37159
48000 -34.065602 582.88704 -743.72019
49000 -34.063922 494.52189 475.22811
50000 -34.064616 530.95516 288.46302
51000 -34.062038 395.30091 -479.68548
52000 -34.06497 549.50477 -305.82851
53000 -34.065577 581.56927 964.95886
54000 -34.06766 691.14533 -437.95563
55000 -34.064707 535.85441 1058.0886
56000 -34.062481 418.62259 -1010.5517
57000 -34.064996 551.02074 -33.54291
58000 -34.064281 513.27818 375.07194
59000 -34.066177 613.11494 -464.71576
60000 -34.064718 536.306 1010.9545
61000 -34.065746 590.47317 -1056.9192
62000 -34.063252 459.22005 1525.6789
63000 -34.06226 407.05859 -1743.9974
64000 -34.063836 489.91026 762.61836
65000 -34.069569 791.63831 322.35333
66000 -34.065557 580.46799 875.11714
67000 -34.064916 546.74052 -1349.5741
68000 -34.062962 443.93438 1178.1978
69000 -34.063064 449.3052 -1659.8695
70000 -34.063596 477.36452 1322.0559
71000 -34.065424 573.49586 -131.11749
72000 -34.06521 562.24612 -415.25895
73000 -34.06339 466.38351 724.08642
74000 -34.062286 408.37673 -1093.6751
75000 -34.065545 579.81257 586.8907
76000 -34.066774 644.62609 -356.7044
77000 -34.064479 523.75235 1545.8498
78000 -34.065506 577.88123 -1014.0878
79000 -34.062875 439.30997 241.55748
80000 -34.06306 449.06553 -799.58139
81000 -34.063338 463.64261 1528.4412
82000 -34.066812 646.55603 -1350.9377
83000 -34.064724 536.63793 1338.2148
84000 -34.063774 486.717 -875.60363
85000 -34.06156 370.19433 617.85579
86000 -34.063628 478.9961 -135.13703
87000 -34.065141 558.62541 -756.91518
88000 -34.066732 642.27743 1158.5797
89000 -34.067351 674.92164 -300.79164
90000 -34.063624 478.70378 386.44004
91000 -34.061884 387.27577 -774.22945
92000 -34.061364 359.79856 500.36442
93000 -34.065723 589.31234 -469.57015
94000 -34.065006 551.46665 819.01826
95000 -34.065409 572.7351 -676.74519
96000 -34.06233 410.60509 1382.9732
97000 -34.0615 366.99019 -1714.2302
98000 -34.061152 348.67783 352.89211
99000 -34.066217 615.29222 193.8722
100000 -34.067739 695.32836 206.03841
101000 -34.067313 672.90918 928.0541
Loop time of 1.62544 on 4 procs for 100000 steps with 15 atoms
Performance: 26577371.575 fs/day, 0.000 hours/fs, 61521.693 timesteps/s, 922.825 katom-step/s
93.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.066581 | 0.15332 | 0.25928 | 21.7 | 9.43
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.18521 | 0.29733 | 0.3879 | 16.1 | 18.29
Output | 0.66513 | 0.81838 | 1.1333 | 20.4 | 50.35
Modify | 0.01285 | 0.014237 | 0.016092 | 1.0 | 0.88
Other | | 0.3422 | | | 21.05
Nlocal: 3.75 ave 5 max 3 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Nghost: 11.25 ave 12 max 10 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 26.25 ave 47 max 10 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Total # of neighbors = 105
Ave neighs/atom = 7
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,12 +3,11 @@
# General parameters # General parameters
variable sname index Si2H6 variable sname index Si2H6
log ${sname}.log
units electron units electron
newton on newton on
boundary f f f boundary f f f
atom_style electron atom_style electron
@ -23,7 +22,7 @@ variable epauli equal c_energies[2]
variable estatics equal c_energies[3] variable estatics equal c_energies[3]
variable errestrain equal c_energies[4] variable errestrain equal c_energies[4]
comm_modify vel yes comm_modify vel yes
compute peratom all stress/atom NULL compute peratom all stress/atom NULL
compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3] compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
@ -39,12 +38,12 @@ thermo_modify temp effTemp press effPress
# Minimization # Minimization
min_style cg min_style cg
dump 1 all xyz 2 ${sname}.min.xyz #dump 1 all xyz 2 ${sname}.min.xyz
compute 1 all property/atom spin eradius erforce compute 1 all property/atom spin eradius erforce
dump 2 all custom 2 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3] #dump 2 all custom 2 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3]
min_modify line quadratic min_modify line quadratic
minimize 0 1.0e-5 1000 10000 minimize 0 1.0e-5 1000 10000
undump 1 #undump 1
undump 2 #undump 2

View File

@ -3,18 +3,17 @@
# General parameters # General parameters
variable sname index Si2H6.ang variable sname index Si2H6.ang
log ${sname}.log
units real units real
newton on newton on
boundary f f f boundary f f f
atom_style electron atom_style electron
read_data data.${sname} read_data data.${sname}
pair_style eff/cut 529.177249 pair_style eff/cut 529.177249 ecp 1 Si
pair_coeff * * pair_coeff * *
compute energies all pair eff/cut compute energies all pair eff/cut
@ -23,7 +22,7 @@ variable epauli equal c_energies[2]
variable estatics equal c_energies[3] variable estatics equal c_energies[3]
variable errestrain equal c_energies[4] variable errestrain equal c_energies[4]
comm_modify vel yes comm_modify vel yes
compute peratom all stress/atom NULL compute peratom all stress/atom NULL
compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3] compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
@ -39,21 +38,21 @@ thermo_modify temp effTemp press effPress
# Minimization # Minimization
min_style cg min_style cg
dump 1 all xyz 10 ${sname}.min.xyz #dump 1 all xyz 10 ${sname}.min.xyz
compute 1 all property/atom spin eradius erforce compute 1 all property/atom spin eradius erforce
dump 2 all custom 10 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3] #dump 2 all custom 10 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3]
min_modify line quadratic min_modify line quadratic
minimize 0 1.0e-6 2000 10000 minimize 0 1.0e-6 2000 10000
undump 1 #undump 1
undump 2 #undump 2
# Equilibrate at 300K # Equilibrate at 300K
velocity all create 300.0 4928459 rot yes mom yes dist gaussian velocity all create 300.0 4928459 rot yes mom yes dist gaussian
timestep 0.001 timestep 0.001
dump 1 all custom 1000 ${sname}.nvt.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3] #dump 1 all custom 1000 ${sname}.nvt.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3]
#fix 0 all langevin/eff 300.0 300.0 0.1 #fix 0 all langevin/eff 300.0 300.0 0.1
fix 1 all nvt/eff temp 300.0 300.0 0.1 fix 1 all nvt/eff temp 300.0 300.0 0.1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,185 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Created 2011-01-07
# General parameters
variable sname index Si2H6
units electron
newton on
boundary f f f
atom_style electron
read_data data.${sname}
read_data data.Si2H6
Reading data file ...
orthogonal box = (-1000 -1000 -1000) to (1000 1000 1000)
1 by 1 by 1 MPI processor grid
reading atoms ...
22 atoms
read_data CPU = 0.000 seconds
pair_style eff/cut 1000.0 ecp 1 Si
pair_coeff * *
compute energies all pair eff/cut
variable eke equal c_energies[1]
variable epauli equal c_energies[2]
variable estatics equal c_energies[3]
variable errestrain equal c_energies[4]
comm_modify vel yes
compute peratom all stress/atom NULL
compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
variable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)
compute effTemp all temp/eff
compute effPress all pressure effTemp
thermo 2
thermo_style custom step etotal pe ke v_eke v_epauli v_estatics v_errestrain temp press v_press
thermo_modify temp effTemp press effPress
# Minimization
min_style cg
#dump 1 all xyz 2 ${sname}.min.xyz
compute 1 all property/atom spin eradius erforce
#dump 2 all custom 2 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3]
min_modify line quadratic
minimize 0 1.0e-5 1000 10000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- EFF package: doi:10.1002/jcc.21637
@Article{Jaramillo-Botero11,
author = {A. Jaramillo-Botero and J. Su and A. Qi and Goddard, III, W. A.},
title = {Large-Scale, Long-Term Nonadiabatic Electron Molecular Dynamics for Describing Material Properties and Phenomena in Extreme Environments},
journal = {J.~Comp.\ Chem.},
year = 2011,
volume = 32,
number = 3,
pages = {497--512}
}
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1002
ghost atom cutoff = 1002
binsize = 501, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair eff/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.098 | 6.098 | 6.098 Mbytes
Step TotEng PotEng KinEng v_eke v_epauli v_estatics v_errestrain Temp Press v_press
0 -8.5010994 -8.5010994 0 5.4885963 1.6463577 -15.636053 0 0 3948.0425 3948.0425
2 -8.67691 -8.67691 0 5.5258385 1.589403 -15.792152 0 0 3880.1721 3880.1721
4 -8.848848 -8.848848 0 5.5663359 1.5311327 -15.946317 0 0 3788.6697 3788.6697
6 -9.0177692 -9.0177692 0 5.6106795 1.4710658 -16.099514 0 0 3671.1737 3671.1737
8 -9.185303 -9.185303 0 5.6598348 1.4083124 -16.25345 0 0 3523.4287 3523.4287
10 -9.3547798 -9.3547798 0 5.7155927 1.3410774 -16.41145 0 0 3336.9891 3336.9891
12 -9.5342746 -9.5342746 0 5.7820671 1.2650232 -16.581365 0 0 3091.6153 3091.6153
14 -9.753773 -9.753773 0 5.8743943 1.1639 -16.792067 0 0 2711.1247 2711.1247
16 -10.097143 -10.097143 0 6.0386279 0.98467639 -17.120448 0 0 1912.0559 1912.0559
18 -10.206415 -10.206415 0 6.0972556 0.92111471 -17.224785 0 0 1604.9272 1604.9272
20 -10.28471 -10.28471 0 6.1543746 0.86786676 -17.306951 0 0 1325.3681 1325.3681
22 -10.343227 -10.343227 0 6.2122367 0.82042286 -17.375887 0 0 1062.6534 1062.6534
24 -10.386164 -10.386164 0 6.2699963 0.77763016 -17.43379 0 0 820.84479 820.84479
26 -10.416263 -10.416263 0 6.3255676 0.73934069 -17.481171 0 0 608.7375 608.7375
28 -10.436521 -10.436521 0 6.3761026 0.70612619 -17.51875 0 0 434.68899 434.68899
30 -10.450247 -10.450247 0 6.4147546 0.68147364 -17.546475 0 0 302.62232 302.62232
32 -10.456683 -10.456683 0 6.416721 0.67361461 -17.547019 0 0 223.07929 223.07929
34 -10.458069 -10.458069 0 6.3974543 0.66990042 -17.525424 0 0 164.78914 164.78914
36 -10.458558 -10.458558 0 6.3763802 0.66472241 -17.49966 0 0 100.618 100.618
38 -10.459231 -10.459231 0 6.3293189 0.66038284 -17.448933 0 0 -3.1075375 -3.1075375
40 -10.459346 -10.459346 0 6.3132377 0.65807627 -17.43066 0 0 -29.981737 -29.981737
42 -10.459366 -10.459366 0 6.3179452 0.65719131 -17.434503 0 0 -45.500522 -45.500522
44 -10.459413 -10.459413 0 6.2985544 0.66239121 -17.420359 0 0 14.638842 14.638842
46 -10.459499 -10.459499 0 6.3129457 0.65696218 -17.429407 0 0 -46.926115 -46.926115
48 -10.459522 -10.459522 0 6.3120038 0.65909539 -17.430621 0 0 -27.058486 -27.058486
50 -10.459532 -10.459532 0 6.3113769 0.65958039 -17.430489 0 0 -16.067028 -16.067028
52 -10.459536 -10.459536 0 6.3181474 0.65939215 -17.437076 0 0 -15.311526 -15.311526
54 -10.459539 -10.459539 0 6.3204818 0.66055005 -17.440571 0 0 -0.10049441 -0.10049441
56 -10.459539 -10.459539 0 6.320264 0.6605463 -17.440349 0 0 -0.12138433 -0.12138433
58 -10.459539 -10.459539 0 6.3204128 0.66045741 -17.440409 0 0 -1.2175181 -1.2175181
60 -10.459539 -10.459539 0 6.3201688 0.66048114 -17.440189 0 0 -0.80979907 -0.80979907
62 -10.459539 -10.459539 0 6.3201369 0.6605348 -17.440211 0 0 -0.85945578 -0.85945578
64 -10.459539 -10.459539 0 6.3201036 0.66047761 -17.44012 0 0 -0.95534716 -0.95534716
66 -10.459539 -10.459539 0 6.3201475 0.66049137 -17.440178 0 0 -0.89220676 -0.89220676
68 -10.459539 -10.459539 0 6.3201605 0.6605388 -17.440238 0 0 -0.44630696 -0.44630696
70 -10.459539 -10.459539 0 6.3202978 0.66049413 -17.440331 0 0 -0.72919073 -0.72919073
72 -10.459539 -10.459539 0 6.3202928 0.66056004 -17.440392 0 0 -0.049410442 -0.049410442
74 -10.459539 -10.459539 0 6.3204368 0.66055883 -17.440535 0 0 -0.025063323 -0.025063323
76 -10.459539 -10.459539 0 6.3204403 0.66054902 -17.440528 0 0 -0.010779864 -0.010779864
78 -10.459539 -10.459539 0 6.3203876 0.66056716 -17.440494 0 0 0.087251782 0.087251782
80 -10.459539 -10.459539 0 6.3203944 0.66054525 -17.440479 0 0 -0.13822668 -0.13822668
82 -10.459539 -10.459539 0 6.3203511 0.66055332 -17.440443 0 0 -0.043786214 -0.043786214
84 -10.459539 -10.459539 0 6.32037 0.66054938 -17.440458 0 0 -0.10833476 -0.10833476
86 -10.459539 -10.459539 0 6.3203586 0.66055472 -17.440452 0 0 -0.04772439 -0.04772439
88 -10.459539 -10.459539 0 6.3203709 0.66055294 -17.440463 0 0 -0.055815521 -0.055815521
Loop time of 0.00236996 on 1 procs for 88 steps with 22 atoms
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = force tolerance
Energy initial, next-to-last, final =
-8.50109938620961 -10.4595390706544 -10.459539070672
Force two-norm initial, final = 3.2945156 4.8001667e-06
Force max component initial, final = 1.8019385 2.1391495e-06
Final line search alpha, max atom move = 1 2.1391495e-06
Iterations, force evaluations = 88 127
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0019013 | 0.0019013 | 0.0019013 | 0.0 | 80.23
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 7.926e-06 | 7.926e-06 | 7.926e-06 | 0.0 | 0.33
Output | 0.00027587 | 0.00027587 | 0.00027587 | 0.0 | 11.64
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.0001848 | | | 7.80
Nlocal: 22 ave 22 max 22 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 231 ave 231 max 231 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 231
Ave neighs/atom = 10.5
Neighbor list builds = 0
Dangerous builds = 0
#undump 1
#undump 2
Total wall time: 0:00:00

View File

@ -0,0 +1,185 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Created 2011-01-07
# General parameters
variable sname index Si2H6
units electron
newton on
boundary f f f
atom_style electron
read_data data.${sname}
read_data data.Si2H6
Reading data file ...
orthogonal box = (-1000 -1000 -1000) to (1000 1000 1000)
1 by 2 by 2 MPI processor grid
reading atoms ...
22 atoms
read_data CPU = 0.001 seconds
pair_style eff/cut 1000.0 ecp 1 Si
pair_coeff * *
compute energies all pair eff/cut
variable eke equal c_energies[1]
variable epauli equal c_energies[2]
variable estatics equal c_energies[3]
variable errestrain equal c_energies[4]
comm_modify vel yes
compute peratom all stress/atom NULL
compute p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
variable press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)
compute effTemp all temp/eff
compute effPress all pressure effTemp
thermo 2
thermo_style custom step etotal pe ke v_eke v_epauli v_estatics v_errestrain temp press v_press
thermo_modify temp effTemp press effPress
# Minimization
min_style cg
#dump 1 all xyz 2 ${sname}.min.xyz
compute 1 all property/atom spin eradius erforce
#dump 2 all custom 2 ${sname}.min.lammpstrj id type q c_1[1] c_1[2] x y z fx fy fz c_1[3]
min_modify line quadratic
minimize 0 1.0e-5 1000 10000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- EFF package: doi:10.1002/jcc.21637
@Article{Jaramillo-Botero11,
author = {A. Jaramillo-Botero and J. Su and A. Qi and Goddard, III, W. A.},
title = {Large-Scale, Long-Term Nonadiabatic Electron Molecular Dynamics for Describing Material Properties and Phenomena in Extreme Environments},
journal = {J.~Comp.\ Chem.},
year = 2011,
volume = 32,
number = 3,
pages = {497--512}
}
- Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419
@Article{Gissinger24,
author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi, Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},
title = {Type Label Framework for Bonded Force Fields in LAMMPS},
journal = {J. Phys. Chem. B},
year = 2024,
volume = 128,
number = 13,
pages = {3282-3297}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1002
ghost atom cutoff = 1002
binsize = 501, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair eff/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.113 | 6.113 | 6.113 Mbytes
Step TotEng PotEng KinEng v_eke v_epauli v_estatics v_errestrain Temp Press v_press
0 -8.5010994 -8.5010994 0 5.4885963 1.6463577 -15.636053 0 0 3948.0425 3948.0425
2 -8.67691 -8.67691 0 5.5258385 1.589403 -15.792152 0 0 3880.1721 3880.1721
4 -8.848848 -8.848848 0 5.5663359 1.5311327 -15.946317 0 0 3788.6697 3788.6697
6 -9.0177692 -9.0177692 0 5.6106795 1.4710658 -16.099514 0 0 3671.1737 3671.1737
8 -9.185303 -9.185303 0 5.6598348 1.4083124 -16.25345 0 0 3523.4287 3523.4287
10 -9.3547798 -9.3547798 0 5.7155927 1.3410774 -16.41145 0 0 3336.9891 3336.9891
12 -9.5342746 -9.5342746 0 5.7820671 1.2650232 -16.581365 0 0 3091.6153 3091.6153
14 -9.753773 -9.753773 0 5.8743943 1.1639 -16.792067 0 0 2711.1247 2711.1247
16 -10.097143 -10.097143 0 6.0386279 0.98467639 -17.120448 0 0 1912.0559 1912.0559
18 -10.206415 -10.206415 0 6.0972556 0.92111471 -17.224785 0 0 1604.9272 1604.9272
20 -10.28471 -10.28471 0 6.1543746 0.86786676 -17.306951 0 0 1325.3681 1325.3681
22 -10.343227 -10.343227 0 6.2122367 0.82042286 -17.375887 0 0 1062.6534 1062.6534
24 -10.386164 -10.386164 0 6.2699963 0.77763016 -17.43379 0 0 820.84479 820.84479
26 -10.416263 -10.416263 0 6.3255676 0.73934069 -17.481171 0 0 608.7375 608.7375
28 -10.436521 -10.436521 0 6.3761026 0.70612619 -17.51875 0 0 434.68899 434.68899
30 -10.450247 -10.450247 0 6.4147546 0.68147364 -17.546475 0 0 302.62232 302.62232
32 -10.456683 -10.456683 0 6.416721 0.67361461 -17.547019 0 0 223.07929 223.07929
34 -10.458069 -10.458069 0 6.3974543 0.66990042 -17.525424 0 0 164.78914 164.78914
36 -10.458558 -10.458558 0 6.3763802 0.66472241 -17.49966 0 0 100.618 100.618
38 -10.459231 -10.459231 0 6.3293189 0.66038284 -17.448933 0 0 -3.1075375 -3.1075375
40 -10.459346 -10.459346 0 6.3132377 0.65807627 -17.43066 0 0 -29.981737 -29.981737
42 -10.459366 -10.459366 0 6.3179452 0.65719131 -17.434503 0 0 -45.500522 -45.500522
44 -10.459413 -10.459413 0 6.2985544 0.66239121 -17.420359 0 0 14.638842 14.638842
46 -10.459499 -10.459499 0 6.3129457 0.65696218 -17.429407 0 0 -46.926115 -46.926115
48 -10.459522 -10.459522 0 6.3120038 0.65909539 -17.430621 0 0 -27.058486 -27.058486
50 -10.459532 -10.459532 0 6.3113769 0.65958039 -17.430489 0 0 -16.067028 -16.067028
52 -10.459536 -10.459536 0 6.3181474 0.65939215 -17.437076 0 0 -15.311525 -15.311525
54 -10.459539 -10.459539 0 6.3204818 0.66055005 -17.440571 0 0 -0.1004938 -0.1004938
56 -10.459539 -10.459539 0 6.320264 0.6605463 -17.440349 0 0 -0.12138436 -0.12138436
58 -10.459539 -10.459539 0 6.3204128 0.66045741 -17.440409 0 0 -1.2175176 -1.2175176
60 -10.459539 -10.459539 0 6.3201688 0.66048114 -17.440189 0 0 -0.80979946 -0.80979946
62 -10.459539 -10.459539 0 6.3201369 0.6605348 -17.440211 0 0 -0.85945162 -0.85945162
64 -10.459539 -10.459539 0 6.3201036 0.66047761 -17.44012 0 0 -0.95534903 -0.95534903
66 -10.459539 -10.459539 0 6.3201475 0.66049137 -17.440178 0 0 -0.89220297 -0.89220297
68 -10.459539 -10.459539 0 6.3201605 0.6605388 -17.440238 0 0 -0.44631358 -0.44631358
70 -10.459539 -10.459539 0 6.3202978 0.66049413 -17.440331 0 0 -0.72919322 -0.72919322
72 -10.459539 -10.459539 0 6.3202928 0.66056005 -17.440392 0 0 -0.049401694 -0.049401694
74 -10.459539 -10.459539 0 6.3204368 0.66055883 -17.440535 0 0 -0.025056381 -0.025056381
76 -10.459539 -10.459539 0 6.3204403 0.66054902 -17.440528 0 0 -0.010774653 -0.010774653
78 -10.459539 -10.459539 0 6.3203876 0.66056716 -17.440494 0 0 0.087250755 0.087250755
80 -10.459539 -10.459539 0 6.3203944 0.66054525 -17.440479 0 0 -0.13822694 -0.13822694
82 -10.459539 -10.459539 0 6.3203511 0.66055332 -17.440443 0 0 -0.043784806 -0.043784806
84 -10.459539 -10.459539 0 6.32037 0.66054937 -17.440458 0 0 -0.10833935 -0.10833935
86 -10.459539 -10.459539 0 6.3203586 0.66055472 -17.440452 0 0 -0.047719128 -0.047719128
88 -10.459539 -10.459539 0 6.3203709 0.66055294 -17.440463 0 0 -0.055818341 -0.055818341
Loop time of 0.00213866 on 4 procs for 88 steps with 22 atoms
95.0% CPU use with 4 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = force tolerance
Energy initial, next-to-last, final =
-8.50109938620958 -10.4595390706543 -10.459539070672
Force two-norm initial, final = 3.2945156 4.7997573e-06
Force max component initial, final = 1.8019385 2.1386971e-06
Final line search alpha, max atom move = 1 2.1386971e-06
Iterations, force evaluations = 88 127
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.00027642 | 0.00052972 | 0.00096856 | 0.0 | 24.77
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00035997 | 0.00081245 | 0.0010746 | 0.0 | 37.99
Output | 0.00037064 | 0.00039193 | 0.00045231 | 0.0 | 18.33
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.0004046 | | | 18.92
Nlocal: 5.5 ave 7 max 3 min
Histogram: 1 0 0 0 0 0 0 2 0 1
Nghost: 16.5 ave 19 max 15 min
Histogram: 1 0 2 0 0 0 0 0 0 1
Neighs: 57.75 ave 109 max 29 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Total # of neighbors = 231
Ave neighs/atom = 10.5
Neighbor list builds = 0
Dangerous builds = 0
#undump 1
#undump 2
Total wall time: 0:00:00

View File

@ -0,0 +1 @@
../../../potentials/AlCu.eam.alloy

View File

@ -0,0 +1 @@
../../../potentials/SiC.tersoff.zbl

View File

@ -12,8 +12,8 @@ region box block -10 10 -10 10 -10 10
create_box 2 box create_box 2 box
create_atoms 1 box create_atoms 1 box
pair_style eam/alloy pair_style eam/alloy
pair_coeff * * ../../../../potentials/AlCu.eam.alloy Al Cu pair_coeff * * AlCu.eam.alloy Al Cu
mass 1 26.982 mass 1 26.982
mass 2 63.546 mass 2 63.546

View File

@ -13,7 +13,7 @@ create_box 1 box
create_atoms 1 box create_atoms 1 box
pair_style tersoff/zbl pair_style tersoff/zbl
pair_coeff * * ../../../../potentials/SiC.tersoff.zbl Si pair_coeff * * SiC.tersoff.zbl Si
mass 1 28.0855 mass 1 28.0855

View File

@ -0,0 +1 @@
../../../../potentials/COH.DMC.aip.water.2dm

View File

@ -4,26 +4,26 @@ boundary p p p
atom_style full atom_style full
processors * * 1 # domain decomposition over x and y processors * * 1 # domain decomposition over x and y
read_data ./gra_water.data read_data ./gra_water.data
mass 1 12.0107 # carbon mass (g/mole) mass 1 12.0107 # carbon mass (g/mole)
mass 2 15.9994 # oxygen mass (g/mole) mass 2 15.9994 # oxygen mass (g/mole)
mass 3 1.008 # hydrogen mass (g/mole) mass 3 1.008 # hydrogen mass (g/mole)
# Separate atom groups # Separate atom groups
group gr molecule 1 group gr molecule 1
group water molecule 2 group water molecule 2
######################## Potential defition ############################## ######################## Potential defition ##############################
# Interlayer potential # Interlayer potential
pair_style hybrid/overlay aip/water/2dm 16.0 lj/cut/tip4p/long 2 3 1 1 0.1546 10 8.5 pair_style hybrid/overlay aip/water/2dm 16.0 lj/cut/tip4p/long 2 3 1 1 0.1546 10 8.5
#################################################################### ####################################################################
pair_coeff 1 1 none pair_coeff 1 1 none
pair_coeff 2 2 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O pair_coeff 2 2 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O
pair_coeff 2 3 lj/cut/tip4p/long 0.0 0.0 # O-H pair_coeff 2 3 lj/cut/tip4p/long 0.0 0.0 # O-H
pair_coeff 3 3 lj/cut/tip4p/long 0.0 0.0 # H-H pair_coeff 3 3 lj/cut/tip4p/long 0.0 0.0 # H-H
pair_coeff * * aip/water/2dm COH.aip.water.2dm C Ow Hw # C-H2O pair_coeff * * aip/water/2dm COH.DMC.aip.water.2dm C Ow Hw # C-H2O
# bond and angle # bond and angle
bond_style harmonic bond_style harmonic
bond_coeff 1 0.0 0.9572 bond_coeff 1 0.0 0.9572
angle_style harmonic angle_style harmonic
angle_coeff 1 0.0 104.52 angle_coeff 1 0.0 104.52
# define kspace calculation # define kspace calculation
kspace_style pppm/tip4p 1E-5 kspace_style pppm/tip4p 1E-5
# Neighbor update settings # Neighbor update settings
@ -31,21 +31,21 @@ neighbor 2.0 bin
neigh_modify every 1 delay 5 check yes page 1000000 one 100000 neigh_modify every 1 delay 5 check yes page 1000000 one 100000
#################################################################### ####################################################################
# Calculate pair energy # Calculate pair energy
compute 1 all pair lj/cut/tip4p/long compute 1 all pair lj/cut/tip4p/long
compute 2 all pair aip/water/2dm compute 2 all pair aip/water/2dm
compute wt water temp compute wt water temp
variable TIP4P equal c_1 variable TIP4P equal c_1
variable EILP equal c_2 # total interlayer energy variable EILP equal c_2 # total interlayer energy
variable temp_wt equal c_wt variable temp_wt equal c_wt
############# Output ############## ############# Output ##############
thermo_style custom step etotal pe ke v_TIP4P v_EILP v_temp_wt thermo_style custom step etotal pe ke v_TIP4P v_EILP v_temp_wt
thermo 100 thermo 100
thermo_modify lost error thermo_modify lost error
fix subf gr setforce 0.0 0.0 0.0 fix subf gr setforce 0.0 0.0 0.0
fix 1 water shake 0.0001 20 100 b 1 a 1 fix 1 water shake 0.0001 20 100 b 1 a 1
timestep 1e-3 timestep 1e-3
velocity water create 300.0 12345 dist gaussian mom yes rot yes velocity water create 300.0 12345 dist gaussian mom yes rot yes
fix 2 water nve fix 2 water nve
run 1000 run 1000

View File

@ -4,26 +4,26 @@ boundary p p p
atom_style full atom_style full
processors * * 1 # domain decomposition over x and y processors * * 1 # domain decomposition over x and y
read_data ./gra_water.data read_data ./gra_water.data
mass 1 12.0107 # carbon mass (g/mole) mass 1 12.0107 # carbon mass (g/mole)
mass 2 15.9994 # oxygen mass (g/mole) mass 2 15.9994 # oxygen mass (g/mole)
mass 3 1.008 # hydrogen mass (g/mole) mass 3 1.008 # hydrogen mass (g/mole)
# Separate atom groups # Separate atom groups
group gr molecule 1 group gr molecule 1
group water molecule 2 group water molecule 2
######################## Potential defition ############################## ######################## Potential defition ##############################
# Interlayer potential # Interlayer potential
pair_style hybrid/overlay aip/water/2dm/opt 16.0 lj/cut/tip4p/long 2 3 1 1 0.1546 10 8.5 pair_style hybrid/overlay aip/water/2dm/opt 16.0 lj/cut/tip4p/long 2 3 1 1 0.1546 10 8.5
#################################################################### ####################################################################
pair_coeff 1 1 none pair_coeff 1 1 none
pair_coeff 2 2 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O pair_coeff 2 2 lj/cut/tip4p/long 8.0313e-3 3.1589 # O-O
pair_coeff 2 3 lj/cut/tip4p/long 0.0 0.0 # O-H pair_coeff 2 3 lj/cut/tip4p/long 0.0 0.0 # O-H
pair_coeff 3 3 lj/cut/tip4p/long 0.0 0.0 # H-H pair_coeff 3 3 lj/cut/tip4p/long 0.0 0.0 # H-H
pair_coeff * * aip/water/2dm/opt COH.aip.water.2dm C Ow Hw # C-H2O pair_coeff * * aip/water/2dm/opt COH.DMC.aip.water.2dm C Ow Hw # C-H2O
# bond and angle # bond and angle
bond_style harmonic bond_style harmonic
bond_coeff 1 0.0 0.9572 bond_coeff 1 0.0 0.9572
angle_style harmonic angle_style harmonic
angle_coeff 1 0.0 104.52 angle_coeff 1 0.0 104.52
# define kspace calculation # define kspace calculation
kspace_style pppm/tip4p 1E-5 kspace_style pppm/tip4p 1E-5
# Neighbor update settings # Neighbor update settings
@ -31,21 +31,21 @@ neighbor 2.0 bin
neigh_modify every 1 delay 5 check yes page 1000000 one 100000 neigh_modify every 1 delay 5 check yes page 1000000 one 100000
#################################################################### ####################################################################
# Calculate pair energy # Calculate pair energy
compute 1 all pair lj/cut/tip4p/long compute 1 all pair lj/cut/tip4p/long
compute 2 all pair aip/water/2dm/opt compute 2 all pair aip/water/2dm/opt
compute wt water temp compute wt water temp
variable TIP4P equal c_1 variable TIP4P equal c_1
variable EILP equal c_2 # total interlayer energy variable EILP equal c_2 # total interlayer energy
variable temp_wt equal c_wt variable temp_wt equal c_wt
############# Output ############## ############# Output ##############
thermo_style custom step etotal pe ke v_TIP4P v_EILP v_temp_wt thermo_style custom step etotal pe ke v_TIP4P v_EILP v_temp_wt
thermo 100 thermo 100
thermo_modify lost error thermo_modify lost error
fix subf gr setforce 0.0 0.0 0.0 fix subf gr setforce 0.0 0.0 0.0
fix 1 water shake 0.0001 20 100 b 1 a 1 fix 1 water shake 0.0001 20 100 b 1 a 1
timestep 1e-3 timestep 1e-3
velocity water create 300.0 12345 dist gaussian mom yes rot yes velocity water create 300.0 12345 dist gaussian mom yes rot yes
fix 2 water nve fix 2 water nve
run 1000 run 1000

View File

@ -0,0 +1 @@
../../../potentials/Fe_mm.eam.fs

View File

@ -0,0 +1 @@
../../../potentials/Cu_mishin1.eam.alloy

View File

@ -5,7 +5,7 @@ LAMMPS data file via write_data, version 24 Dec 2020, timestep = 400000
9.95143358025075 331.8139610404791 xlo xhi 9.95143358025075 331.8139610404791 xlo xhi
9.95143358025075 331.8139610404791 ylo yhi 9.95143358025075 331.8139610404791 ylo yhi
0 1 zlo zhi -0.5 0.5 zlo zhi
0 0 0 xy xz yz 0 0 0 xy xz yz
Atoms # sphere Atoms # sphere

View File

@ -1,6 +1,12 @@
# demo for atom style template simulating a cyclohexane methane mixture # demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file # part 3: continuing from restart file
# run the first part and write out restart
include in.molecular-mix
write_restart molecular-mix.restart
# now restart
clear
molecule cychex cyclohexane.mol molecule cychex cyclohexane.mol
read_restart molecular-mix.restart read_restart molecular-mix.restart
@ -9,3 +15,6 @@ thermo 100
fix 1 all nvt temp 300.0 300.0 1.0 fix 1 all nvt temp 300.0 300.0 1.0
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu # dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000 run 2000
# clean up
shell rm molecular-mix.restart

View File

@ -1,6 +1,12 @@
# demo for atom style template simulating a cyclohexane methane mixture # demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file # part 3: continuing from restart file
# run the first part and write out restart
include in.template-mix
write_restart template-mix.restart
# now restart
clear
molecule cychex cyclohexane.mol molecule cychex cyclohexane.mol
read_restart template-mix.restart read_restart template-mix.restart
@ -9,3 +15,6 @@ thermo 100
fix 1 all nvt temp 300.0 300.0 1.0 fix 1 all nvt temp 300.0 300.0 1.0
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu # dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000 run 2000
# clean up
shell rm template-mix.restart

View File

@ -0,0 +1,302 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
# run the first part and write out restart
include in.molecular-mix
# demo for atom style template simulating a cyclohexane methane mixture
units real
boundary p p p
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
atom_style molecular
pair_style lj/cut 12.0
pair_modify mix geometric tail yes
bond_style harmonic
angle_style harmonic
dihedral_style harmonic
lattice sc 6.0
Lattice spacing in x,y,z = 6 6 6
variable boxlen index 4.0
region box block -${boxlen} ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 4.0 units lattice
create_box 2 box bond/types 1 angle/types 1 dihedral/types 1 extra/special/per/atom 6 extra/bond/per/atom 2 extra/angle/per/atom 2 extra/dihedral/per/atom 2
Created orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 1 by 1 MPI processor grid
create_atoms 0 box mol cychex 734594
Created 3072 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.004 seconds
create_atoms 2 random 800 495437 box
Created 800 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.000 seconds
mass 1 14.027
mass 2 16.043
pair_coeff 1 1 0.1180 3.905
pair_coeff 2 2 0.2940 3.730
bond_coeff 1 260.00 1.5260
angle_coeff 1 63.0 112.40
dihedral_coeff 1 2.0 1 3
thermo 100
minimize 0.001 0.001 500 1000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.28 | 12.28 | 12.28 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 4.3897851e+13 341.92144 4.3897851e+13 1.0886888e+14
100 0 -4351.8383 516.49891 -3835.3394 11635.037
190 0 -6191.8196 457.61266 -5734.2069 4365.4279
Loop time of 2.5667 on 1 procs for 190 steps with 3872 atoms
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
43897850768892.8 -5729.17409504969 -5734.20694761353
Force two-norm initial, final = 1.1080994e+15 72.745546
Force max component initial, final = 4.6607099e+14 17.390179
Final line search alpha, max atom move = 0.0041638487 0.072410076
Iterations, force evaluations = 190 297
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.2379 | 2.2379 | 2.2379 | 0.0 | 87.19
Bond | 0.070658 | 0.070658 | 0.070658 | 0.0 | 2.75
Neigh | 0.21093 | 0.21093 | 0.21093 | 0.0 | 8.22
Comm | 0.012111 | 0.012111 | 0.012111 | 0.0 | 0.47
Output | 3.0458e-05 | 3.0458e-05 | 3.0458e-05 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.03504 | | | 1.37
Nlocal: 3872 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12122 ave 12122 max 12122 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 774375 ave 774375 max 774375 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 774375
Ave neighs/atom = 199.99354
Ave special neighs/atom = 3.9669421
Neighbor list builds = 14
Dangerous builds = 0
reset_timestep 0
velocity all create 100.0 6234235
fix 1 all nvt temp 100.0 300.0 1.0
# dump 1 all custom 100 cychex-methane.lammpstrj id xu yu zu
run 2500
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 11.16 | 11.16 | 11.16 Mbytes
Step Temp E_pair E_mol TotEng Press
0 100 -6191.8196 457.61266 -4580.3354 4842.371
100 106.81292 -5670.2785 921.2043 -3516.5903 5959.4321
200 119.24063 -5701.0127 1040.0231 -3285.1059 6755.2619
300 127.28216 -5706.3887 1026.2838 -3211.4322 6076.6123
400 133.79038 -5734.0279 1113.6088 -3076.65 6583.9393
500 138.77685 -5756.2532 1192.1349 -2962.8117 6436.3524
600 149.39857 -5730.563 1206.6372 -2800.0582 6357.5889
700 155.5825 -5671.0161 929.50406 -2946.2899 7697.5164
800 161.24677 -5628.3833 1186.5533 -2581.2493 5840.6503
900 172.81747 -5638.6453 1148.683 -2495.8707 8169.3352
1000 182.2048 -5579.5767 909.90783 -2567.2594 6270.7354
1100 188.95766 -5548.999 1183.6644 -2185.0058 7711.9244
1200 195.22147 -5511.6798 1111.3361 -2147.7386 7656.4439
1300 205.15867 -5431.6966 1195.8143 -1868.6148 7021.8716
1400 211.44641 -5410.5687 1299.0501 -1671.6986 8903.0061
1500 223.70124 -5359.4567 1388.4189 -1389.8128 6919.2408
1600 231.75318 -5288.3343 1348.829 -1265.3712 9409.2728
1700 229.61746 -5259.4318 1194.5663 -1415.375 7387.4923
1800 245.62483 -5281.0755 1389.3362 -1057.5441 9421.7241
1900 250.69445 -5158.7006 1236.5167 -1029.4919 8649.4835
2000 259.50657 -5148.4153 1485.1392 -668.90355 9130.4701
2100 270.77108 -5092.6634 1418.7937 -549.51913 9666.5632
2200 272.30152 -5079.7585 1514.5708 -423.17779 8568.2546
2300 285.20945 -5085.6197 1492.5671 -302.10191 10281.574
2400 286.95799 -4979.8608 1544.6159 -124.11819 8797.7435
2500 296.10218 -4928.5152 1698.282 186.40572 10946.864
Loop time of 17.2353 on 1 procs for 2500 steps with 3872 atoms
Performance: 12.532 ns/day, 1.915 hours/ns, 145.052 timesteps/s, 561.639 katom-step/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 15.936 | 15.936 | 15.936 | 0.0 | 92.46
Bond | 0.5636 | 0.5636 | 0.5636 | 0.0 | 3.27
Neigh | 0.51213 | 0.51213 | 0.51213 | 0.0 | 2.97
Comm | 0.098127 | 0.098127 | 0.098127 | 0.0 | 0.57
Output | 0.00072478 | 0.00072478 | 0.00072478 | 0.0 | 0.00
Modify | 0.10177 | 0.10177 | 0.10177 | 0.0 | 0.59
Other | | 0.02248 | | | 0.13
Nlocal: 3872 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11821 ave 11821 max 11821 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 770416 ave 770416 max 770416 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 770416
Ave neighs/atom = 198.97107
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
#write_data molecular-mix.data
#write_restart molecular-mix.restart
write_restart molecular-mix.restart
System init for write_restart ...
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
# now restart
clear
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart molecular-mix.restart
Reading restart file ...
restart file = 27 Jun 2024, LAMMPS = 27 Jun 2024
restoring atom style molecular from restart
orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 1 by 1 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 bonds
3072 angles
3072 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_restart CPU = 0.003 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
Resetting global fix info from restart file:
fix style: nvt, fix ID: 1
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
All restart file global fix info was re-assigned
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.12 | 11.12 | 11.12 Mbytes
Step Temp E_pair E_mol TotEng Press
2500 296.10218 -4928.5152 1698.282 186.40572 10946.864
2600 302.98473 -4910.6997 1585.9276 171.28257 9066.357
2700 300.75989 -4935.1005 1723.6514 258.9337 10755.67
2800 294.26086 -4904.3072 1594.9394 86.02469 9420.9997
2900 296.15059 -4961.5041 1594.1004 49.793724 10129.823
3000 296.65334 -4934.6622 1596.9704 85.306731 10112.636
3100 301.62361 -4975.5261 1671.8512 176.67422 9500.7576
3200 297.34385 -5017.986 1603.4388 16.419054 10451.2
3300 297.01108 -4882.1137 1651.6426 196.65525 9124.096
3400 298.13642 -4983.4532 1742.3589 199.01715 10808.599
3500 315.91146 -4952.209 1651.2231 344.22669 8677.2632
3600 295.12433 -4950.6158 1721.3273 176.06725 10904.222
3700 300.65909 -4967.4001 1770.4243 272.244 9230.4292
3800 302.15034 -4991.9549 1644.8366 139.30847 10154.524
3900 302.16277 -5017.0117 1672.2353 141.79397 9705.6697
4000 303.1458 -4946.2517 1679.8498 231.51137 9527.8793
4100 303.54737 -5003.8276 1639.7221 138.44129 10406.442
4200 291.62491 -5009.3438 1707.6 63.233087 8645.4116
4300 306.17115 -5084.7139 1727.9528 176.0607 10563.216
4400 302.65581 -5004.4302 1747.5309 235.36003 8717.1253
4500 296.42334 -5014.9791 1723.2084 128.57389 10492.246
Loop time of 13.288 on 1 procs for 2000 steps with 3872 atoms
Performance: 13.004 ns/day, 1.846 hours/ns, 150.512 timesteps/s, 582.781 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 12.191 | 12.191 | 12.191 | 0.0 | 91.74
Bond | 0.4224 | 0.4224 | 0.4224 | 0.0 | 3.18
Neigh | 0.50894 | 0.50894 | 0.50894 | 0.0 | 3.83
Comm | 0.07309 | 0.07309 | 0.07309 | 0.0 | 0.55
Output | 0.00057158 | 0.00057158 | 0.00057158 | 0.0 | 0.00
Modify | 0.077778 | 0.077778 | 0.077778 | 0.0 | 0.59
Other | | 0.01451 | | | 0.11
Nlocal: 3872 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11685 ave 11685 max 11685 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 770346 ave 770346 max 770346 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 770346
Ave neighs/atom = 198.953
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
# clean up
shell rm molecular-mix.restart
Total wall time: 0:00:33

View File

@ -0,0 +1,303 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
# run the first part and write out restart
include in.molecular-mix
# demo for atom style template simulating a cyclohexane methane mixture
units real
boundary p p p
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
atom_style molecular
pair_style lj/cut 12.0
pair_modify mix geometric tail yes
bond_style harmonic
angle_style harmonic
dihedral_style harmonic
lattice sc 6.0
Lattice spacing in x,y,z = 6 6 6
variable boxlen index 4.0
region box block -${boxlen} ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 4.0 units lattice
create_box 2 box bond/types 1 angle/types 1 dihedral/types 1 extra/special/per/atom 6 extra/bond/per/atom 2 extra/angle/per/atom 2 extra/dihedral/per/atom 2
Created orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 2 by 2 MPI processor grid
create_atoms 0 box mol cychex 734594
Created 3072 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.002 seconds
create_atoms 2 random 800 495437 box
Created 800 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.000 seconds
mass 1 14.027
mass 2 16.043
pair_coeff 1 1 0.1180 3.905
pair_coeff 2 2 0.2940 3.730
bond_coeff 1 260.00 1.5260
angle_coeff 1 63.0 112.40
dihedral_coeff 1 2.0 1 3
thermo 100
minimize 0.001 0.001 500 1000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 9.623 | 9.719 | 10.01 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 7.5430044e+16 341.92144 7.5430044e+16 1.8707026e+17
100 0 -3410.6986 572.28283 -2838.4158 14603.831
200 0 -6109.2306 483.67771 -5625.5529 5069.1821
204 0 -6137.0238 483.1464 -5653.8774 4952.4083
Loop time of 0.719327 on 4 procs for 204 steps with 3872 atoms
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
7.54300441078755e+16 -5648.75822666276 -5653.87742467986
Force two-norm initial, final = 8.7430661e+18 74.636836
Force max component initial, final = 4.1468626e+18 8.680078
Final line search alpha, max atom move = 0.0032186724 0.027938327
Iterations, force evaluations = 204 328
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.60273 | 0.60882 | 0.61181 | 0.5 | 84.64
Bond | 0.018965 | 0.019154 | 0.019363 | 0.1 | 2.66
Neigh | 0.054004 | 0.054008 | 0.054012 | 0.0 | 7.51
Comm | 0.022945 | 0.026108 | 0.032071 | 2.2 | 3.63
Output | 3.4085e-05 | 3.6968e-05 | 4.5055e-05 | 0.0 | 0.01
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.0112 | | | 1.56
Nlocal: 968 ave 980 max 954 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Nghost: 6630 ave 6644 max 6616 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 193550 ave 195957 max 191376 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 774200
Ave neighs/atom = 199.94835
Ave special neighs/atom = 3.9669421
Neighbor list builds = 14
Dangerous builds = 0
reset_timestep 0
velocity all create 100.0 6234235
fix 1 all nvt temp 100.0 300.0 1.0
# dump 1 all custom 100 cychex-methane.lammpstrj id xu yu zu
run 2500
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 8.498 | 8.785 | 8.881 Mbytes
Step Temp E_pair E_mol TotEng Press
0 100 -6137.0238 483.1464 -4500.0059 5429.3515
100 107.18608 -5623.5468 925.13787 -3461.6193 5640.5922
200 119.37771 -5671.054 1050.9081 -3242.6804 7494.8576
300 127.21216 -5646.3171 1053.2825 -3125.1696 5661.5841
400 133.87894 -5674.4359 1139.3079 -2990.337 7202.7
500 138.76354 -5679.3297 1234.4508 -2843.7258 6745.1519
600 150.51628 -5665.2143 1210.3078 -2718.142 6301.1312
700 152.13291 -5680.6166 979.71444 -2945.4837 8424.0062
800 161.60449 -5579.521 1209.1388 -2505.674 5226.3319
900 177.80597 -5626.7406 1125.8767 -2449.2113 9035.9218
1000 181.98782 -5509.1736 924.24027 -2485.0276 5775.8317
1100 189.93412 -5534.8176 1169.5911 -2173.6307 8072.3434
1200 194.04459 -5508.0919 1169.0571 -2100.0095 7766.2625
1300 203.40621 -5400.0439 1229.5897 -1823.4077 6533.8169
1400 211.36099 -5362.2808 1318.5794 -1604.867 9789.8496
1500 221.24251 -5263.1861 1410.6972 -1299.6344 6407.5052
1600 234.83277 -5316.3854 1299.4287 -1307.2882 10199.28
1700 233.61193 -5187.0022 1246.0158 -1245.4048 7482.5096
1800 247.00713 -5193.2051 1451.1363 -891.92372 9836.6864
1900 250.10386 -5165.7314 1259.876 -1019.978 8648.7513
2000 257.7022 -5083.7142 1486.9813 -623.18058 9076.3674
2100 273.9293 -5061.7945 1463.3978 -437.60445 10039.49
2200 276.40166 -4948.9281 1538.5962 -221.01165 9013.3961
2300 287.28669 -5039.6841 1535.7768 -188.98782 10739.853
2400 290.35344 -4947.2095 1615.8983 18.994602 8326.4501
2500 305.29351 -4925.5822 1669.8823 266.99522 11465.135
Loop time of 4.32954 on 4 procs for 2500 steps with 3872 atoms
Performance: 49.890 ns/day, 0.481 hours/ns, 577.429 timesteps/s, 2.236 Matom-step/s
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.8113 | 3.8529 | 3.8893 | 1.7 | 88.99
Bond | 0.13153 | 0.13433 | 0.13718 | 0.7 | 3.10
Neigh | 0.13036 | 0.13039 | 0.13042 | 0.0 | 3.01
Comm | 0.13688 | 0.1751 | 0.21857 | 8.4 | 4.04
Output | 0.00032606 | 0.00035873 | 0.00045009 | 0.0 | 0.01
Modify | 0.027754 | 0.028116 | 0.028735 | 0.2 | 0.65
Other | | 0.008382 | | | 0.19
Nlocal: 968 ave 986 max 944 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Nghost: 6379.75 ave 6407 max 6352 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 192584 ave 196718 max 188693 min
Histogram: 1 1 0 0 0 0 0 1 0 1
Total # of neighbors = 770338
Ave neighs/atom = 198.95093
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
#write_data molecular-mix.data
#write_restart molecular-mix.restart
write_restart molecular-mix.restart
System init for write_restart ...
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
# now restart
clear
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart molecular-mix.restart
Reading restart file ...
restart file = 27 Jun 2024, LAMMPS = 27 Jun 2024
restoring atom style molecular from restart
orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 2 by 2 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 bonds
3072 angles
3072 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
7 = max # of special neighbors
special bonds CPU = 0.000 seconds
read_restart CPU = 0.004 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
Resetting global fix info from restart file:
fix style: nvt, fix ID: 1
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
All restart file global fix info was re-assigned
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 8.475 | 8.571 | 8.857 Mbytes
Step Temp E_pair E_mol TotEng Press
2500 305.29351 -4925.5822 1669.8823 266.99522 11465.135
2600 296.63161 -4937.8377 1616.2295 101.13964 8654.8533
2700 303.79396 -4951.8442 1732.7298 286.27771 11140.127
2800 297.39677 -4879.1242 1642.1355 194.58806 8993.2494
2900 299.13542 -4888.1435 1660.1105 223.60558 10716.3
3000 298.07888 -4928.2353 1650.6616 161.87369 10088.459
3100 304.09536 -4901.4853 1614.3116 221.69625 9505.2057
3200 301.51357 -4930.5129 1628.4386 177.00496 11411.933
3300 297.45744 -4923.6217 1700.537 209.19205 8189.571
3400 298.52831 -5012.7313 1736.6929 168.59495 11673.119
3500 295.66767 -4947.4296 1700.0072 164.20283 8222.3067
3600 296.7267 -5112.3707 1727.4319 38.906285 10608.481
3700 302.92855 -4994.4012 1789.7274 290.73255 8829.4479
3800 296.77191 -5034.2589 1657.2635 47.371248 9968.3521
3900 299.86962 -4972.7385 1744.2808 231.65266 10076.37
4000 304.89527 -5011.2464 1664.6779 171.53137 8926.0386
4100 296.81738 -5013.2169 1727.5801 139.25455 10898.733
4200 300.67532 -4988.3547 1782.1574 263.20975 8164.1158
4300 297.74901 -5023.3433 1784.7361 197.03396 11344.862
4400 302.0571 -5033.3547 1723.2662 175.26243 8016.975
4500 305.31958 -5062.5597 1767.0048 227.44095 10827.294
Loop time of 3.58588 on 4 procs for 2000 steps with 3872 atoms
Performance: 48.189 ns/day, 0.498 hours/ns, 557.743 timesteps/s, 2.160 Matom-step/s
99.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.0873 | 3.1383 | 3.2136 | 2.7 | 87.52
Bond | 0.10381 | 0.10769 | 0.11168 | 0.9 | 3.00
Neigh | 0.13651 | 0.13652 | 0.13654 | 0.0 | 3.81
Comm | 0.094882 | 0.1741 | 0.22894 | 12.3 | 4.86
Output | 0.00024683 | 0.00028387 | 0.00038642 | 0.0 | 0.01
Modify | 0.021974 | 0.022331 | 0.022623 | 0.2 | 0.62
Other | | 0.006685 | | | 0.19
Nlocal: 968 ave 984 max 948 min
Histogram: 1 0 0 1 0 0 0 0 1 1
Nghost: 6349.5 ave 6370 max 6330 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 192457 ave 196654 max 187154 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Total # of neighbors = 769828
Ave neighs/atom = 198.81921
Ave special neighs/atom = 3.9669421
Neighbor list builds = 35
Dangerous builds = 0
# clean up
shell rm molecular-mix.restart
Total wall time: 0:00:08

View File

@ -0,0 +1,295 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
# run the first part and write out restart
include in.template-mix
# demo for atom style template simulating a cyclohexane methane mixture
# part 1: creating system with create_atoms
units real
boundary p p p
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
atom_style template cychex
pair_style lj/cut 12.0
pair_modify mix geometric tail yes
bond_style harmonic
angle_style harmonic
dihedral_style harmonic
lattice sc 6.0
Lattice spacing in x,y,z = 6 6 6
variable boxlen index 4.0
region box block -${boxlen} ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 4.0 units lattice
create_box 2 box bond/types 1 angle/types 1 dihedral/types 1
Created orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 1 by 1 MPI processor grid
create_atoms 0 box mol cychex 734594
Created 3072 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.000 seconds
create_atoms 2 random 800 495437 box
Created 800 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.000 seconds
mass 1 14.027
mass 2 16.043
pair_coeff 1 1 0.1180 3.905
pair_coeff 2 2 0.2940 3.730
bond_coeff 1 260.00 1.5260
angle_coeff 1 63.0 112.40
dihedral_coeff 1 2.0 1 3
thermo 100
minimize 0.001 0.001 500 1000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 8.05 | 8.05 | 8.05 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 4.3897851e+13 341.92144 4.3897851e+13 1.0886888e+14
100 0 -4351.8383 516.49891 -3835.3394 11635.037
190 0 -6191.8196 457.61266 -5734.2069 4365.4279
Loop time of 2.46574 on 1 procs for 190 steps with 3872 atoms
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
43897850768892.8 -5729.17409504969 -5734.20694761353
Force two-norm initial, final = 1.1080994e+15 72.745546
Force max component initial, final = 4.6607099e+14 17.390179
Final line search alpha, max atom move = 0.0041638487 0.072410076
Iterations, force evaluations = 190 297
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.1376 | 2.1376 | 2.1376 | 0.0 | 86.69
Bond | 0.068456 | 0.068456 | 0.068456 | 0.0 | 2.78
Neigh | 0.21212 | 0.21212 | 0.21212 | 0.0 | 8.60
Comm | 0.012436 | 0.012436 | 0.012436 | 0.0 | 0.50
Output | 2.9907e-05 | 2.9907e-05 | 2.9907e-05 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.03511 | | | 1.42
Nlocal: 3872 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 12122 ave 12122 max 12122 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 774375 ave 774375 max 774375 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 774375
Ave neighs/atom = 199.99354
Ave special neighs/atom = 3.9669421
Neighbor list builds = 14
Dangerous builds = 0
reset_timestep 0
velocity all create 100.0 6234235
fix 1 all nvt temp 100.0 300.0 1.0
# dump 1 all custom 100 cychex-methane.lammpstrj id xu yu zu
run 2500
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 6.925 | 6.925 | 6.925 Mbytes
Step Temp E_pair E_mol TotEng Press
0 100 -6191.8196 457.61266 -4580.3354 4842.371
100 106.81292 -5670.2785 921.2043 -3516.5903 5959.4321
200 119.24063 -5701.0127 1040.0231 -3285.1059 6755.2619
300 127.28216 -5706.3887 1026.2838 -3211.4322 6076.6123
400 133.79038 -5734.0279 1113.6088 -3076.65 6583.9393
500 138.77685 -5756.2532 1192.1349 -2962.8117 6436.3524
600 149.39857 -5730.563 1206.6372 -2800.0582 6357.5889
700 155.5825 -5671.0161 929.50406 -2946.2899 7697.5164
800 161.24677 -5628.3833 1186.5533 -2581.2493 5840.6503
900 172.81747 -5638.6453 1148.683 -2495.8707 8169.3352
1000 182.2048 -5579.5767 909.90783 -2567.2594 6270.7354
1100 188.95766 -5548.999 1183.6644 -2185.0058 7711.9244
1200 195.22147 -5511.6798 1111.3361 -2147.7386 7656.4439
1300 205.15867 -5431.6966 1195.8143 -1868.6148 7021.8716
1400 211.44641 -5410.5687 1299.0501 -1671.6986 8903.0061
1500 223.70124 -5359.4567 1388.4189 -1389.8128 6919.2408
1600 231.75318 -5288.3343 1348.829 -1265.3712 9409.2728
1700 229.61746 -5259.4318 1194.5663 -1415.375 7387.4923
1800 245.62483 -5281.0755 1389.3362 -1057.5441 9421.7241
1900 250.69445 -5158.7006 1236.5167 -1029.4919 8649.4835
2000 259.50657 -5148.4153 1485.1392 -668.90355 9130.4701
2100 270.77108 -5092.6634 1418.7937 -549.51913 9666.5632
2200 272.30152 -5079.7585 1514.5708 -423.17779 8568.2546
2300 285.20945 -5085.6197 1492.5671 -302.10191 10281.574
2400 286.95799 -4979.8608 1544.6159 -124.11819 8797.7435
2500 296.10218 -4928.5152 1698.282 186.40572 10946.864
Loop time of 16.1773 on 1 procs for 2500 steps with 3872 atoms
Performance: 13.352 ns/day, 1.797 hours/ns, 154.537 timesteps/s, 598.368 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 14.927 | 14.927 | 14.927 | 0.0 | 92.27
Bond | 0.52161 | 0.52161 | 0.52161 | 0.0 | 3.22
Neigh | 0.52299 | 0.52299 | 0.52299 | 0.0 | 3.23
Comm | 0.090871 | 0.090871 | 0.090871 | 0.0 | 0.56
Output | 0.00059782 | 0.00059782 | 0.00059782 | 0.0 | 0.00
Modify | 0.096104 | 0.096104 | 0.096104 | 0.0 | 0.59
Other | | 0.01791 | | | 0.11
Nlocal: 3872 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11821 ave 11821 max 11821 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 770416 ave 770416 max 770416 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 770416
Ave neighs/atom = 198.97107
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
#write_data template-mix.data
#write_restart template-mix.restart
write_restart template-mix.restart
System init for write_restart ...
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
# now restart
clear
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart template-mix.restart
Reading restart file ...
restart file = 27 Jun 2024, LAMMPS = 27 Jun 2024
restoring atom style template from restart
orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 1 by 1 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 template bonds
3072 template angles
3072 template dihedrals
read_restart CPU = 0.001 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
Resetting global fix info from restart file:
fix style: nvt, fix ID: 1
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
All restart file global fix info was re-assigned
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.88 | 6.88 | 6.88 Mbytes
Step Temp E_pair E_mol TotEng Press
2500 296.10218 -4928.5152 1698.282 186.40572 10946.864
2600 302.98473 -4910.6997 1585.9276 171.28257 9066.357
2700 300.75989 -4935.1005 1723.6514 258.9337 10755.67
2800 294.26086 -4904.3072 1594.9394 86.02469 9420.9997
2900 296.15059 -4961.5041 1594.1004 49.793724 10129.823
3000 296.65334 -4934.6622 1596.9704 85.306731 10112.636
3100 301.62361 -4975.5261 1671.8512 176.67422 9500.7576
3200 297.34385 -5017.986 1603.4388 16.419054 10451.2
3300 297.01108 -4882.1137 1651.6426 196.65525 9124.096
3400 298.13642 -4983.4532 1742.3589 199.01715 10808.599
3500 315.91146 -4952.209 1651.2231 344.22669 8677.2632
3600 295.12433 -4950.6158 1721.3273 176.06725 10904.222
3700 300.65909 -4967.4001 1770.4243 272.244 9230.4292
3800 302.15034 -4991.9549 1644.8366 139.30847 10154.524
3900 302.16277 -5017.0117 1672.2353 141.79397 9705.6697
4000 303.1458 -4946.2517 1679.8498 231.51137 9527.8793
4100 303.54737 -5003.8276 1639.7221 138.44129 10406.442
4200 291.62491 -5009.3438 1707.6 63.233087 8645.4116
4300 306.17115 -5084.7139 1727.9528 176.0607 10563.216
4400 302.65581 -5004.4302 1747.5309 235.36003 8717.1253
4500 296.42334 -5014.9791 1723.2084 128.57389 10492.246
Loop time of 13.2399 on 1 procs for 2000 steps with 3872 atoms
Performance: 13.051 ns/day, 1.839 hours/ns, 151.058 timesteps/s, 584.898 katom-step/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 12.13 | 12.13 | 12.13 | 0.0 | 91.61
Bond | 0.42044 | 0.42044 | 0.42044 | 0.0 | 3.18
Neigh | 0.52469 | 0.52469 | 0.52469 | 0.0 | 3.96
Comm | 0.072857 | 0.072857 | 0.072857 | 0.0 | 0.55
Output | 0.00053188 | 0.00053188 | 0.00053188 | 0.0 | 0.00
Modify | 0.076918 | 0.076918 | 0.076918 | 0.0 | 0.58
Other | | 0.0148 | | | 0.11
Nlocal: 3872 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11685 ave 11685 max 11685 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 770346 ave 770346 max 770346 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 770346
Ave neighs/atom = 198.953
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
# clean up
shell rm template-mix.restart
Total wall time: 0:00:31

View File

@ -0,0 +1,296 @@
LAMMPS (27 Jun 2024)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
# run the first part and write out restart
include in.template-mix
# demo for atom style template simulating a cyclohexane methane mixture
# part 1: creating system with create_atoms
units real
boundary p p p
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
atom_style template cychex
pair_style lj/cut 12.0
pair_modify mix geometric tail yes
bond_style harmonic
angle_style harmonic
dihedral_style harmonic
lattice sc 6.0
Lattice spacing in x,y,z = 6 6 6
variable boxlen index 4.0
region box block -${boxlen} ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 ${boxlen} -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -${boxlen} ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 ${boxlen} -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -${boxlen} ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 ${boxlen} units lattice
region box block -4.0 4.0 -4.0 4.0 -4.0 4.0 units lattice
create_box 2 box bond/types 1 angle/types 1 dihedral/types 1
Created orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 2 by 2 MPI processor grid
create_atoms 0 box mol cychex 734594
Created 3072 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.001 seconds
create_atoms 2 random 800 495437 box
Created 800 atoms
using lattice units in orthogonal box = (-24 -24 -24) to (24 24 24)
create_atoms CPU = 0.000 seconds
mass 1 14.027
mass 2 16.043
pair_coeff 1 1 0.1180 3.905
pair_coeff 2 2 0.2940 3.730
bond_coeff 1 260.00 1.5260
angle_coeff 1 63.0 112.40
dihedral_coeff 1 2.0 1 3
thermo 100
minimize 0.001 0.001 500 1000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.345 | 5.441 | 5.728 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 7.5430044e+16 341.92144 7.5430044e+16 1.8707026e+17
100 0 -3410.6986 572.28283 -2838.4158 14603.831
200 0 -6109.2306 483.67771 -5625.5529 5069.1821
204 0 -6137.0238 483.1464 -5653.8774 4952.4083
Loop time of 0.719475 on 4 procs for 204 steps with 3872 atoms
99.6% CPU use with 4 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
7.54300441078755e+16 -5648.75822666276 -5653.87742467986
Force two-norm initial, final = 8.7430661e+18 74.636836
Force max component initial, final = 4.1468626e+18 8.680078
Final line search alpha, max atom move = 0.0032186724 0.027938327
Iterations, force evaluations = 204 328
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.59281 | 0.6027 | 0.60956 | 0.8 | 83.77
Bond | 0.018776 | 0.020785 | 0.026388 | 2.2 | 2.89
Neigh | 0.054209 | 0.054242 | 0.054273 | 0.0 | 7.54
Comm | 0.018189 | 0.03064 | 0.042206 | 4.9 | 4.26
Output | 3.3034e-05 | 3.5624e-05 | 4.3263e-05 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 0.01107 | | | 1.54
Nlocal: 968 ave 980 max 954 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Nghost: 6630 ave 6644 max 6616 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 193550 ave 195957 max 191376 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 774200
Ave neighs/atom = 199.94835
Ave special neighs/atom = 3.9669421
Neighbor list builds = 14
Dangerous builds = 0
reset_timestep 0
velocity all create 100.0 6234235
fix 1 all nvt temp 100.0 300.0 1.0
# dump 1 all custom 100 cychex-methane.lammpstrj id xu yu zu
run 2500
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 4.22 | 4.507 | 4.603 Mbytes
Step Temp E_pair E_mol TotEng Press
0 100 -6137.0238 483.1464 -4500.0059 5429.3515
100 107.18608 -5623.5468 925.13787 -3461.6193 5640.5922
200 119.37771 -5671.054 1050.9081 -3242.6804 7494.8576
300 127.21216 -5646.3171 1053.2825 -3125.1696 5661.5841
400 133.87894 -5674.4359 1139.3079 -2990.337 7202.7
500 138.76354 -5679.3297 1234.4508 -2843.7258 6745.1519
600 150.51628 -5665.2143 1210.3078 -2718.142 6301.1312
700 152.13291 -5680.6166 979.71444 -2945.4837 8424.0062
800 161.60449 -5579.521 1209.1388 -2505.674 5226.3319
900 177.80597 -5626.7406 1125.8767 -2449.2113 9035.9218
1000 181.98782 -5509.1736 924.24027 -2485.0276 5775.8317
1100 189.93412 -5534.8176 1169.5911 -2173.6307 8072.3434
1200 194.04459 -5508.0919 1169.0571 -2100.0095 7766.2625
1300 203.40621 -5400.0439 1229.5897 -1823.4077 6533.8169
1400 211.36099 -5362.2808 1318.5794 -1604.867 9789.8496
1500 221.24251 -5263.1861 1410.6972 -1299.6344 6407.5052
1600 234.83277 -5316.3854 1299.4287 -1307.2882 10199.28
1700 233.61193 -5187.0022 1246.0158 -1245.4048 7482.5096
1800 247.00713 -5193.2051 1451.1363 -891.92372 9836.6864
1900 250.10386 -5165.7314 1259.876 -1019.978 8648.7513
2000 257.7022 -5083.7142 1486.9813 -623.18058 9076.3674
2100 273.9293 -5061.7945 1463.3978 -437.60445 10039.49
2200 276.40166 -4948.9281 1538.5962 -221.01165 9013.3961
2300 287.28669 -5039.6841 1535.7768 -188.98782 10739.853
2400 290.35344 -4947.2095 1615.8983 18.994602 8326.4501
2500 305.29351 -4925.5822 1669.8823 266.99522 11465.135
Loop time of 4.32742 on 4 procs for 2500 steps with 3872 atoms
Performance: 49.914 ns/day, 0.481 hours/ns, 577.711 timesteps/s, 2.237 Matom-step/s
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.7864 | 3.836 | 3.8948 | 2.2 | 88.64
Bond | 0.13058 | 0.13362 | 0.13735 | 0.8 | 3.09
Neigh | 0.13597 | 0.13601 | 0.13605 | 0.0 | 3.14
Comm | 0.12304 | 0.18542 | 0.23763 | 10.5 | 4.28
Output | 0.00033524 | 0.00036705 | 0.00045513 | 0.0 | 0.01
Modify | 0.027504 | 0.027917 | 0.028571 | 0.3 | 0.65
Other | | 0.008118 | | | 0.19
Nlocal: 968 ave 986 max 944 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Nghost: 6379.75 ave 6407 max 6352 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 192584 ave 196718 max 188693 min
Histogram: 1 1 0 0 0 0 0 1 0 1
Total # of neighbors = 770338
Ave neighs/atom = 198.95093
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
#write_data template-mix.data
#write_restart template-mix.restart
write_restart template-mix.restart
System init for write_restart ...
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
# now restart
clear
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
molecule cychex cyclohexane.mol
Read molecule template cychex:
LAMMPS molecule file. Cyclohexane(UA)
1 molecules
0 fragments
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart template-mix.restart
Reading restart file ...
restart file = 27 Jun 2024, LAMMPS = 27 Jun 2024
restoring atom style template from restart
orthogonal box = (-24 -24 -24) to (24 24 24)
1 by 2 by 2 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 template bonds
3072 template angles
3072 template dihedrals
read_restart CPU = 0.001 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
Resetting global fix info from restart file:
fix style: nvt, fix ID: 1
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
Generated 1 of 1 mixed pair_coeff terms from geometric mixing rule
All restart file global fix info was re-assigned
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.192 | 4.288 | 4.574 Mbytes
Step Temp E_pair E_mol TotEng Press
2500 305.29351 -4925.5822 1669.8823 266.99522 11465.135
2600 296.63161 -4937.8377 1616.2295 101.13964 8654.8533
2700 303.79396 -4951.8442 1732.7298 286.27771 11140.127
2800 297.39677 -4879.1242 1642.1355 194.58806 8993.2494
2900 299.13542 -4888.1435 1660.1105 223.60558 10716.3
3000 298.07888 -4928.2353 1650.6616 161.87369 10088.459
3100 304.09536 -4901.4853 1614.3116 221.69625 9505.2057
3200 301.51357 -4930.5129 1628.4386 177.00496 11411.933
3300 297.45744 -4923.6217 1700.537 209.19205 8189.571
3400 298.52831 -5012.7313 1736.6929 168.59495 11673.119
3500 295.66767 -4947.4296 1700.0072 164.20283 8222.3067
3600 296.7267 -5112.3707 1727.4319 38.906285 10608.481
3700 302.92855 -4994.4012 1789.7274 290.73255 8829.4479
3800 296.77191 -5034.2589 1657.2635 47.371248 9968.3521
3900 299.86962 -4972.7385 1744.2808 231.65266 10076.37
4000 304.89527 -5011.2464 1664.6779 171.53137 8926.0386
4100 296.81738 -5013.2169 1727.5801 139.25455 10898.733
4200 300.67532 -4988.3547 1782.1574 263.20975 8164.1158
4300 297.74901 -5023.3433 1784.7361 197.03396 11344.862
4400 302.0571 -5033.3547 1723.2662 175.26243 8016.975
4500 305.31958 -5062.5597 1767.0048 227.44095 10827.294
Loop time of 3.5798 on 4 procs for 2000 steps with 3872 atoms
Performance: 48.271 ns/day, 0.497 hours/ns, 558.691 timesteps/s, 2.163 Matom-step/s
99.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.0514 | 3.1162 | 3.2058 | 3.3 | 87.05
Bond | 0.10377 | 0.10776 | 0.11194 | 1.0 | 3.01
Neigh | 0.14121 | 0.14125 | 0.1413 | 0.0 | 3.95
Comm | 0.092144 | 0.18542 | 0.25437 | 14.1 | 5.18
Output | 0.00025632 | 0.00028151 | 0.00035298 | 0.0 | 0.01
Modify | 0.02193 | 0.022227 | 0.022584 | 0.2 | 0.62
Other | | 0.006618 | | | 0.18
Nlocal: 968 ave 984 max 948 min
Histogram: 1 0 0 1 0 0 0 0 1 1
Nghost: 6349.5 ave 6370 max 6330 min
Histogram: 1 0 1 0 0 0 0 1 0 1
Neighs: 192457 ave 196654 max 187154 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Total # of neighbors = 769828
Ave neighs/atom = 198.81921
Ave special neighs/atom = 3.9669421
Neighbor list builds = 35
Dangerous builds = 0
# clean up
shell rm template-mix.restart
Total wall time: 0:00:08

View File

@ -1,106 +0,0 @@
LAMMPS (22 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
molecule cychex cyclohexane.mol
Read molecule template cychex:
1 molecules
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart molecular-mix.restart
Reading restart file ...
restart file = 22 Oct 2020, LAMMPS = 22 Oct 2020
restoring atom style molecular from restart
orthogonal box = (-24.000000 -24.000000 -24.000000) to (24.000000 24.000000 24.000000)
1 by 1 by 1 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 bonds
3072 angles
3072 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0.0 0.0 0.0
special bond factors coul: 0.0 0.0 0.0
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
5 = max # of special neighbors
special bonds CPU = 0.002 seconds
read_restart CPU = 0.008 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 10.74 | 10.74 | 10.74 Mbytes
Step Temp E_pair E_mol TotEng Press
0 297.79426 -4928.7403 1686.5107 193.93377 11481.089
100 298.75004 -4870.5672 1619.1613 195.7859 8813.1304
200 296.49886 -4884.3039 1747.4798 284.39198 11537.322
300 295.24937 -4850.2788 1642.4584 198.97822 9160.666
400 297.73321 -4952.9967 1660.6439 143.10604 10751.859
500 293.58308 -4984.2337 1625.8355 29.173529 9530.8826
600 299.50756 -4999.965 1588.0327 44.000269 9233.8621
700 295.64728 -4958.2253 1646.2011 99.365838 11089.418
800 303.5841 -4895.0575 1719.7373 327.65045 8451.8685
900 300.80754 -5033.4853 1727.4591 164.90648 11497.526
1000 300.66472 -4887.4356 1763.3231 345.17233 8454.9551
1100 300.94922 -5003.5731 1766.1276 235.12197 11176.28
1200 299.81632 -4944.4257 1705.2357 220.30525 8879.3201
1300 299.95466 -5009.4367 1637.1947 88.849661 10379.762
1400 300.32601 -4999.539 1735.8132 201.65057 9698.2178
1500 304.10398 -4997.213 1627.5651 139.32157 9299.5337
1600 299.2676 -4960.8958 1746.7172 238.98516 10914.415
1700 293.13408 -5034.7742 1742.2452 89.861851 8213.6882
1800 301.9386 -5068.1221 1755.577 171.43863 11229.315
1900 297.67412 -5012.48 1734.5634 156.86041 8116.1348
2000 296.14819 -5089.1034 1774.3987 102.46517 10858.209
Loop time of 15.5879 on 1 procs for 2000 steps with 3872 atoms
Performance: 11.086 ns/day, 2.165 hours/ns, 128.305 timesteps/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 14.116 | 14.116 | 14.116 | 0.0 | 90.56
Bond | 0.58742 | 0.58742 | 0.58742 | 0.0 | 3.77
Neigh | 0.68543 | 0.68543 | 0.68543 | 0.0 | 4.40
Comm | 0.082574 | 0.082574 | 0.082574 | 0.0 | 0.53
Output | 0.00054698 | 0.00054698 | 0.00054698 | 0.0 | 0.00
Modify | 0.078446 | 0.078446 | 0.078446 | 0.0 | 0.50
Other | | 0.03761 | | | 0.24
Nlocal: 3872.00 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11633.0 ave 11633 max 11633 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 770365.0 ave 770365 max 770365 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 770365
Ave neighs/atom = 198.95790
Ave special neighs/atom = 3.9669421
Neighbor list builds = 35
Dangerous builds = 0
Total wall time: 0:00:15

View File

@ -1,107 +0,0 @@
LAMMPS (22 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
molecule cychex cyclohexane.mol
Read molecule template cychex:
1 molecules
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart molecular-mix.restart
Reading restart file ...
restart file = 22 Oct 2020, LAMMPS = 22 Oct 2020
WARNING: Restart file used different # of processors: 1 vs. 4 (src/read_restart.cpp:697)
restoring atom style molecular from restart
orthogonal box = (-24.000000 -24.000000 -24.000000) to (24.000000 24.000000 24.000000)
1 by 2 by 2 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 bonds
3072 angles
3072 dihedrals
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0.0 0.0 0.0
special bond factors coul: 0.0 0.0 0.0
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
5 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_restart CPU = 0.031 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 8.101 | 8.197 | 8.483 Mbytes
Step Temp E_pair E_mol TotEng Press
0 297.79426 -4928.7403 1686.5107 193.93377 11481.089
100 298.75001 -4870.5672 1619.1613 195.78563 8813.1303
200 301.9265 -4884.8594 1745.0359 344.02042 11561.79
300 298.78957 -4854.0769 1638.3567 231.92774 9180.5245
400 302 -4951.4895 1664.5419 197.74463 10784.638
500 299.17946 -4983.7996 1615.0068 83.354011 9578.745
600 294.32777 -5000.7554 1591.1992 -13.391775 9181.3926
700 300.90925 -4959.9309 1653.6347 165.81003 11121.514
800 293.14833 -4895.5912 1707.8754 194.83943 8397.927
900 299.0508 -5032.8395 1726.0885 143.91128 11478.847
1000 295.15206 -4888.4533 1777.4719 294.69437 8388.738
1100 301.13534 -5004.2113 1761.645 232.14877 11246.198
1200 296.93159 -4944.3223 1703.1744 185.06123 8808.4178
1300 300.79377 -5011.7826 1642.093 101.08422 10390.705
1400 295.85952 -4987.9927 1708.8415 134.68768 9680.88
1500 296.37146 -5009.887 1637.2239 47.082942 9235.3487
1600 298.68972 -4962.1273 1747.402 231.77054 10941.114
1700 299.03141 -5022.0046 1755.8881 184.32195 8248.312
1800 297.26645 -5023.9459 1740.9512 147.07837 11357.02
1900 293.16007 -5023.8887 1754.1333 112.93534 7969.1102
2000 307.66497 -5046.5928 1803.9999 307.46576 11249.704
Loop time of 5.2142 on 4 procs for 2000 steps with 3872 atoms
Performance: 33.140 ns/day, 0.724 hours/ns, 383.568 timesteps/s
94.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.5706 | 3.6724 | 3.7809 | 4.9 | 70.43
Bond | 0.14654 | 0.1524 | 0.15708 | 1.2 | 2.92
Neigh | 0.18217 | 0.1822 | 0.18221 | 0.0 | 3.49
Comm | 0.74346 | 0.8715 | 0.9808 | 10.9 | 16.71
Output | 0.00034776 | 0.00084716 | 0.0023413 | 0.0 | 0.02
Modify | 0.12457 | 0.18985 | 0.31013 | 17.4 | 3.64
Other | | 0.145 | | | 2.78
Nlocal: 968.000 ave 979 max 948 min
Histogram: 1 0 0 0 0 0 0 1 1 1
Nghost: 6321.25 ave 6336 max 6309 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Neighs: 192540.0 ave 195406 max 187182 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Total # of neighbors = 770161
Ave neighs/atom = 198.90522
Ave special neighs/atom = 3.9669421
Neighbor list builds = 35
Dangerous builds = 0
Total wall time: 0:00:05

View File

@ -1,102 +0,0 @@
LAMMPS (22 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
molecule cychex cyclohexane.mol
Read molecule template cychex:
1 molecules
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart template-mix.restart
Reading restart file ...
restart file = 22 Oct 2020, LAMMPS = 22 Oct 2020
WARNING: Restart file used different # of processors: 4 vs. 1 (src/read_restart.cpp:697)
restoring atom style template from restart
orthogonal box = (-24.000000 -24.000000 -24.000000) to (24.000000 24.000000 24.000000)
1 by 1 by 1 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 template bonds
3072 template angles
3072 template dihedrals
read_restart CPU = 0.002 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
Resetting global fix info from restart file:
fix style: nvt, fix ID: 1
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.879 | 6.879 | 6.879 Mbytes
Step Temp E_pair E_mol TotEng Press
2500 297.79426 -4928.7403 1686.5107 193.93377 11481.089
2600 303.69861 -4872.1658 1620.5986 252.72467 8824.1501
2700 304.64827 -4885.5903 1747.1956 376.85504 11560.748
2800 298.79617 -4851.2752 1644.5913 241.04014 9198.1133
2900 302.323 -4949.4247 1661.0637 200.05824 10788.039
3000 302.8192 -4983.7441 1617.1412 127.5418 9606.2027
3100 305.27495 -4999.5335 1589.7081 112.65547 9258.8096
3200 294.9932 -4960.8253 1650.5396 93.556955 11103.25
3300 299.8705 -4896.6757 1711.6029 275.0477 8404.2758
3400 308.43113 -5035.583 1732.7837 256.09989 11520.651
3500 302.54 -4887.2016 1770.4336 374.15506 8359.8351
3600 294.00064 -5011.409 1768.0298 149.01058 11257.53
3700 303.26654 -4942.0636 1690.4493 247.69209 8749.4281
3800 294.7064 -5009.5839 1638.6276 29.577045 10460.396
3900 300.34826 -5011.778 1699.4384 153.29355 9558.3891
4000 298.76709 -5014.8089 1613.1902 45.769836 9254.1067
4100 297.77294 -4978.3228 1736.8967 194.49122 10810.757
4200 302.14768 -5049.4356 1713.0187 149.97929 8258.5093
4300 295.1467 -5094.2287 1757.8215 69.206733 11022.023
4400 305.24677 -4967.1951 1762.3252 317.28577 8423.2256
4500 305.53119 -5047.7285 1775.2795 252.98852 11178.338
Loop time of 15.3536 on 1 procs for 2000 steps with 3872 atoms
Performance: 11.255 ns/day, 2.132 hours/ns, 130.263 timesteps/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 13.88 | 13.88 | 13.88 | 0.0 | 90.40
Bond | 0.58065 | 0.58065 | 0.58065 | 0.0 | 3.78
Neigh | 0.69518 | 0.69518 | 0.69518 | 0.0 | 4.53
Comm | 0.0826 | 0.0826 | 0.0826 | 0.0 | 0.54
Output | 0.00053438 | 0.00053438 | 0.00053438 | 0.0 | 0.00
Modify | 0.07779 | 0.07779 | 0.07779 | 0.0 | 0.51
Other | | 0.03687 | | | 0.24
Nlocal: 3872.00 ave 3872 max 3872 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 11670.0 ave 11670 max 11670 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 770032.0 ave 770032 max 770032 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 770032
Ave neighs/atom = 198.87190
Ave special neighs/atom = 3.9669421
Neighbor list builds = 35
Dangerous builds = 0
Total wall time: 0:00:15

View File

@ -1,101 +0,0 @@
LAMMPS (22 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# demo for atom style template simulating a cyclohexane methane mixture
# part 3: continuing from restart file
molecule cychex cyclohexane.mol
Read molecule template cychex:
1 molecules
6 atoms with max type 1
6 bonds with max type 1
6 angles with max type 1
6 dihedrals with max type 1
0 impropers with max type 0
read_restart template-mix.restart
Reading restart file ...
restart file = 22 Oct 2020, LAMMPS = 22 Oct 2020
restoring atom style template from restart
orthogonal box = (-24.000000 -24.000000 -24.000000) to (24.000000 24.000000 24.000000)
1 by 2 by 2 MPI processor grid
restoring pair style lj/cut from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style harmonic from restart
3872 atoms
3072 template bonds
3072 template angles
3072 template dihedrals
read_restart CPU = 0.006 seconds
thermo 100
fix 1 all nvt temp 300.0 300.0 1.0
Resetting global fix info from restart file:
fix style: nvt, fix ID: 1
# dump 1 all custom 100 custom template-mix.lammpstrj id xu yu zu
run 2000
All restart file global fix info was re-assigned
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.193 | 4.289 | 4.575 Mbytes
Step Temp E_pair E_mol TotEng Press
2500 297.79426 -4928.7403 1686.5107 193.93377 11481.089
2600 303.6986 -4872.1658 1620.5986 252.72458 8824.1501
2700 296.80713 -4884.3012 1753.5243 293.99628 11523.482
2800 298.88856 -4849.1995 1639.5709 239.1615 9214.1261
2900 297.12578 -4949.9958 1657.7582 136.2123 10727.69
3000 298.19234 -4984.9797 1618.0356 73.812582 9576.9074
3100 301.54182 -4999.9775 1588.997 68.424766 9225.9502
3200 294.07259 -4962.8351 1646.3012 76.686125 11080.923
3300 303.55697 -4900.0696 1721.4077 323.99573 8433.7992
3400 297.80636 -5036.3758 1735.0734 135.00054 11440.101
3500 303.96121 -4882.4297 1757.4268 382.31908 8497.7685
3600 298.21153 -5006.6599 1759.9584 194.27658 11184.938
3700 300.77921 -4941.495 1688.3988 217.50964 8820.5666
3800 294.33206 -5011.7746 1653.7511 38.190478 10418.208
3900 304.38175 -5004.4071 1719.9139 227.68132 9632.0557
4000 302.44152 -5029.0544 1610.1577 70.889929 9237.6379
4100 298.82638 -4971.4109 1755.8272 232.48883 10814.056
4200 297.77273 -5040.0028 1718.5112 114.42322 8287.605
4300 300.50984 -5082.4128 1742.354 127.43881 11003.298
4400 310.02885 -4971.4191 1749.1209 355.03646 8502.7004
4500 302.62639 -5033.3284 1753.488 212.07956 11150.514
Loop time of 4.39645 on 4 procs for 2000 steps with 3872 atoms
Performance: 39.304 ns/day, 0.611 hours/ns, 454.913 timesteps/s
98.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.6185 | 3.6709 | 3.7028 | 1.7 | 83.50
Bond | 0.14772 | 0.15338 | 0.1621 | 1.5 | 3.49
Neigh | 0.17739 | 0.17747 | 0.17756 | 0.0 | 4.04
Comm | 0.29637 | 0.33265 | 0.39131 | 6.7 | 7.57
Output | 0.00034028 | 0.0006627 | 0.0016284 | 0.0 | 0.02
Modify | 0.039076 | 0.041988 | 0.043469 | 0.9 | 0.96
Other | | 0.01937 | | | 0.44
Nlocal: 968.000 ave 977 max 956 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Nghost: 6322.75 ave 6345 max 6308 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Neighs: 192555.0 ave 195249 max 188636 min
Histogram: 1 0 0 0 0 1 0 0 1 1
Total # of neighbors = 770221
Ave neighs/atom = 198.92071
Ave special neighs/atom = 3.9669421
Neighbor list builds = 34
Dangerous builds = 0
Total wall time: 0:00:04

View File

@ -196,6 +196,7 @@ MODULE LIBLAMMPS
PROCEDURE, NOPASS :: config_has_jpeg_support => lmp_config_has_jpeg_support PROCEDURE, NOPASS :: config_has_jpeg_support => lmp_config_has_jpeg_support
PROCEDURE, NOPASS :: config_has_ffmpeg_support & PROCEDURE, NOPASS :: config_has_ffmpeg_support &
=> lmp_config_has_ffmpeg_support => lmp_config_has_ffmpeg_support
PROCEDURE, NOPASS :: config_has_curl_support => lmp_config_has_curl_support
PROCEDURE, NOPASS :: config_has_exceptions => lmp_config_has_exceptions PROCEDURE, NOPASS :: config_has_exceptions => lmp_config_has_exceptions
PROCEDURE, NOPASS :: config_has_package => lmp_config_has_package PROCEDURE, NOPASS :: config_has_package => lmp_config_has_package
PROCEDURE, NOPASS :: config_package_count => lammps_config_package_count PROCEDURE, NOPASS :: config_package_count => lammps_config_package_count
@ -793,6 +794,12 @@ MODULE LIBLAMMPS
INTEGER(c_int) :: lammps_config_has_ffmpeg_support INTEGER(c_int) :: lammps_config_has_ffmpeg_support
END FUNCTION lammps_config_has_ffmpeg_support END FUNCTION lammps_config_has_ffmpeg_support
FUNCTION lammps_config_has_curl_support() BIND(C)
IMPORT :: c_int
IMPLICIT NONE
INTEGER(c_int) :: lammps_config_has_curl_support
END FUNCTION lammps_config_has_curl_support
FUNCTION lammps_config_has_exceptions() BIND(C) FUNCTION lammps_config_has_exceptions() BIND(C)
IMPORT :: c_int IMPORT :: c_int
IMPLICIT NONE IMPLICIT NONE
@ -2881,6 +2888,14 @@ CONTAINS
lmp_config_has_ffmpeg_support = (has_ffmpeg_support /= 0_c_int) lmp_config_has_ffmpeg_support = (has_ffmpeg_support /= 0_c_int)
END FUNCTION lmp_config_has_ffmpeg_support END FUNCTION lmp_config_has_ffmpeg_support
! equivalent function to lammps_config_has_curl_support
LOGICAL FUNCTION lmp_config_has_curl_support()
INTEGER(c_int) :: has_curl_support
has_curl_support = lammps_config_has_curl_support()
lmp_config_has_curl_support = (has_curl_support /= 0_c_int)
END FUNCTION lmp_config_has_curl_support
! equivalent function to lammps_config_has_exceptions ! equivalent function to lammps_config_has_exceptions
LOGICAL FUNCTION lmp_config_has_exceptions() LOGICAL FUNCTION lmp_config_has_exceptions()
INTEGER(c_int) :: has_exceptions INTEGER(c_int) :: has_exceptions

View File

@ -25,6 +25,7 @@ COLVARS_INCFLAGS = -DCOLVARS_LAMMPS $(COLVARS_DEBUG_INCFLAGS) $(COLVARS_PYTHON_I
COLVARS_SRCS = \ COLVARS_SRCS = \
colvaratoms.cpp \ colvaratoms.cpp \
colvarbias_abf.cpp \ colvarbias_abf.cpp \
colvarbias_abmd.cpp \
colvarbias_alb.cpp \ colvarbias_alb.cpp \
colvarbias.cpp \ colvarbias.cpp \
colvarbias_histogram.cpp \ colvarbias_histogram.cpp \
@ -59,6 +60,7 @@ COLVARS_SRCS = \
colvarscript_commands.cpp \ colvarscript_commands.cpp \
colvarscript_commands_bias.cpp \ colvarscript_commands_bias.cpp \
colvarscript_commands_colvar.cpp \ colvarscript_commands_colvar.cpp \
colvars_memstream.cpp \
colvartypes.cpp \ colvartypes.cpp \
colvarvalue.cpp \ colvarvalue.cpp \
colvar_neuralnetworkcompute.cpp colvar_neuralnetworkcompute.cpp

View File

@ -1,201 +1,230 @@
$(COLVARS_OBJ_DIR)colvaratoms.o: colvaratoms.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvaratoms.o: colvaratoms.cpp colvardeps.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \ colvarmodule.h colvars_version.h colvarparse.h colvarvalue.h \
colvartypes.h ../../src/math_eigen_impl.h colvarparams.h colvarproxy.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvarparse.h colvarparams.h colvaratoms.h \ colvarproxy_volmaps.h colvaratoms.h colvar_rotation_derivative.h
colvardeps.h
$(COLVARS_OBJ_DIR)colvarbias_abf.o: colvarbias_abf.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarbias_abf.o: colvarbias_abf.cpp colvarmodule.h \
colvars_version.h colvar.h colvarvalue.h colvartypes.h colvarparse.h \ colvars_version.h colvar.h colvarvalue.h colvartypes.h \
colvarparams.h colvardeps.h colvarbias_abf.h colvarproxy.h \ ../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvardeps.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvarbias_abf.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvarbias.h colvargrid.h colvar_UIestimator.h colvarproxy_tcl.h colvarproxy_volmaps.h colvarbias.h colvargrid.h \
colvar_UIestimator.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarbias_abmd.o: colvarbias_abmd.cpp \
colvarbias_abmd.h colvarbias_restraint.h colvarbias.h colvar.h \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvardeps.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h
$(COLVARS_OBJ_DIR)colvarbias_alb.o: colvarbias_alb.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarbias_alb.o: colvarbias_alb.cpp colvarmodule.h \
colvars_version.h colvarbias.h colvar.h colvarvalue.h colvartypes.h \ colvars_version.h colvarproxy.h colvartypes.h \
colvarparse.h colvarparams.h colvardeps.h colvarbias_alb.h ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvarbias.h colvar.h \
colvarvalue.h colvarparse.h colvarparams.h colvardeps.h colvarbias_alb.h
$(COLVARS_OBJ_DIR)colvarbias.o: colvarbias.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarbias.o: colvarbias.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \ colvars_version.h colvarproxy.h colvartypes.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvarbias.h colvar.h colvarparse.h colvarparams.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvarvalue.h colvarbias.h \
colvardeps.h colvargrid.h colvar.h colvarparse.h colvarparams.h colvardeps.h colvargrid.h \
colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarbias_histogram.o: colvarbias_histogram.cpp \ $(COLVARS_OBJ_DIR)colvarbias_histogram.o: colvarbias_histogram.cpp \
colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \ colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \
colvarvalue.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvar.h colvarparse.h colvarparams.h colvardeps.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvar.h colvarvalue.h \
colvarbias_histogram.h colvarbias.h colvargrid.h colvarparse.h colvarparams.h colvardeps.h colvarbias_histogram.h \
colvarbias.h colvargrid.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarbias_histogram_reweight_amd.o: \ $(COLVARS_OBJ_DIR)colvarbias_histogram_reweight_amd.o: \
colvarbias_histogram_reweight_amd.cpp \ colvarbias_histogram_reweight_amd.cpp \
colvarbias_histogram_reweight_amd.h colvarbias_histogram.h colvarbias.h \ colvarbias_histogram_reweight_amd.h colvarbias_histogram.h colvarbias.h \
colvar.h colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ colvar.h colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvardeps.h colvargrid.h colvarproxy.h \ ../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvardeps.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvargrid.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvarproxy_tcl.h colvarproxy_volmaps.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarbias_meta.o: colvarbias_meta.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarbias_meta.o: colvarbias_meta.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \ colvars_version.h colvarproxy.h colvartypes.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvar.h colvarparse.h colvarparams.h colvardeps.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvar.h colvarvalue.h \
colvarbias_meta.h colvarbias.h colvargrid.h colvarparse.h colvarparams.h colvardeps.h colvarbias_meta.h colvarbias.h \
colvargrid.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarbias_restraint.o: colvarbias_restraint.cpp \ $(COLVARS_OBJ_DIR)colvarbias_restraint.o: colvarbias_restraint.cpp \
colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \ colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \
colvarvalue.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvarbias_restraint.h colvarbias.h colvar.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvarvalue.h \
colvarparse.h colvarparams.h colvardeps.h colvarbias_restraint.h colvarbias.h colvar.h colvarparse.h \
colvarparams.h colvardeps.h
$(COLVARS_OBJ_DIR)colvarcomp_alchlambda.o: colvarcomp_alchlambda.cpp \ $(COLVARS_OBJ_DIR)colvarcomp_alchlambda.o: colvarcomp_alchlambda.cpp \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvar.h colvardeps.h colvarcomp.h \ ../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvaratoms.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \ colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar_arithmeticpath.h \ colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_geometricpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_angles.o: colvarcomp_angles.cpp \ $(COLVARS_OBJ_DIR)colvarcomp_angles.o: colvarcomp_angles.cpp \
colvarmodule.h colvars_version.h colvar.h colvarvalue.h colvartypes.h \ colvarmodule.h colvars_version.h colvar.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvardeps.h colvarcomp.h colvaratoms.h \ ../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvardeps.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
$(COLVARS_OBJ_DIR)colvarcomp_apath.o: colvarcomp_apath.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparse.h \
colvarparams.h colvar.h colvardeps.h colvarcomp.h colvaratoms.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_coordnums.o: colvarcomp_coordnums.cpp \
colvarmodule.h colvars_version.h colvarparse.h colvarvalue.h \
colvartypes.h colvarparams.h colvaratoms.h colvarproxy.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvardeps.h colvar.h colvarcomp.h \
colvar_arithmeticpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp.o: colvarcomp.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvar.h colvarparse.h \
colvarparams.h colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_distances.o: colvarcomp_distances.cpp \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvar.h colvardeps.h colvarcomp.h \
colvaratoms.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar_arithmeticpath.h \
colvar_geometricpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_gpath.o: colvarcomp_gpath.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarcomp_apath.o: colvarcomp_apath.cpp colvarvalue.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparse.h \ colvarmodule.h colvars_version.h colvartypes.h \
colvarparams.h colvar.h colvardeps.h colvarcomp.h colvaratoms.h \ ../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_neuralnetwork.o: \
colvarcomp_neuralnetwork.cpp colvarmodule.h colvars_version.h \
colvarvalue.h colvartypes.h colvarparse.h colvarparams.h colvar.h \
colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \ colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \ colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_arithmeticpath.h colvar_geometricpath.h \ colvar_geometricpath.h colvar_arithmeticpath.h
$(COLVARS_OBJ_DIR)colvarcomp_coordnums.o: colvarcomp_coordnums.cpp \
colvarmodule.h colvars_version.h colvaratoms.h colvarproxy.h \
colvartypes.h ../../src/math_eigen_impl.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvarparse.h colvarvalue.h colvarparams.h colvardeps.h colvar.h \
colvarcomp.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp.o: colvarcomp.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_distances.o: colvarcomp_distances.cpp \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_geometricpath.h colvar_rotation_derivative.h
$(COLVARS_OBJ_DIR)colvarcomp_gpath.o: colvarcomp_gpath.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_neuralnetwork.o: \
colvarcomp_neuralnetwork.cpp colvarmodule.h colvars_version.h \
colvarvalue.h colvartypes.h ../../src/math_eigen_impl.h colvar.h \
colvarparse.h colvarparams.h colvardeps.h colvarcomp.h colvaratoms.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvar_geometricpath.h \
colvar_neuralnetworkcompute.h colvar_neuralnetworkcompute.h
$(COLVARS_OBJ_DIR)colvarcomp_combination.o: colvarcomp_combination.cpp \ $(COLVARS_OBJ_DIR)colvarcomp_combination.o: colvarcomp_combination.cpp \
colvarcomp.h colvarmodule.h colvars_version.h colvar.h colvarvalue.h \ colvarcomp.h colvarmodule.h colvars_version.h colvaratoms.h \
colvartypes.h colvarparse.h colvarparams.h colvardeps.h colvaratoms.h \ colvarproxy.h colvartypes.h ../../src/math_eigen_impl.h colvarproxy_io.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h colvarparse.h colvarvalue.h colvarparams.h colvardeps.h colvar.h \
colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_protein.o: colvarcomp_protein.cpp \ $(COLVARS_OBJ_DIR)colvarcomp_protein.o: colvarcomp_protein.cpp \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvar.h colvardeps.h colvarcomp.h \ ../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvaratoms.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \ colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar_arithmeticpath.h \ colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_geometricpath.h colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_rotations.o: colvarcomp_rotations.cpp \ $(COLVARS_OBJ_DIR)colvarcomp_rotations.o: colvarcomp_rotations.cpp \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvar.h colvardeps.h colvarcomp.h \ ../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvaratoms.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar_arithmeticpath.h \
colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvarcomp_volmaps.o: colvarcomp_volmaps.cpp \
colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarparse.h colvarparams.h colvar.h colvardeps.h colvarcomp.h \
colvaratoms.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar_arithmeticpath.h \
colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvar.o: colvar.cpp colvarmodule.h colvars_version.h \
colvarvalue.h colvartypes.h colvarparse.h colvarparams.h colvar.h \
colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \ colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \ colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_arithmeticpath.h colvar_geometricpath.h colvarscript.h \ colvar_geometricpath.h colvar_rotation_derivative.h
colvarbias.h colvarscript_commands.h colvarscript_commands_colvar.h \ $(COLVARS_OBJ_DIR)colvarcomp_volmaps.o: colvarcomp_volmaps.cpp \
colvarscript_commands_bias.h colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \
colvardeps.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvar_geometricpath.h
$(COLVARS_OBJ_DIR)colvar.o: colvar.cpp colvarmodule.h colvars_version.h \
colvarvalue.h colvartypes.h ../../src/math_eigen_impl.h colvarparse.h \
colvarparams.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \
colvardeps.h colvar.h colvar_geometricpath.h colvarbias.h \
colvars_memstream.h
$(COLVARS_OBJ_DIR)colvardeps.o: colvardeps.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvardeps.o: colvardeps.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \ colvars_version.h colvarproxy.h colvartypes.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvardeps.h colvarparse.h colvarparams.h colvarproxy_tcl.h colvarproxy_volmaps.h colvardeps.h colvarparse.h \
colvarvalue.h colvarparams.h
$(COLVARS_OBJ_DIR)colvargrid.o: colvargrid.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvargrid.o: colvargrid.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparse.h \ colvars_version.h colvarvalue.h colvartypes.h \
colvarparams.h colvar.h colvardeps.h colvarcomp.h colvaratoms.h \ ../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvar.h \
colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvardeps.h colvargrid.h colvargrid_def.h colvarproxy.h \
colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h \ colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvargrid.h colvargrid_def.h colvarproxy_volmaps.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarmodule.o: colvarmodule.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarmodule.o: colvarmodule.cpp colvarmodule.h \
colvars_version.h colvarparse.h colvarvalue.h colvartypes.h \ colvars_version.h colvarparse.h colvarvalue.h colvartypes.h \
colvarparams.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \ ../../src/math_eigen_impl.h colvarparams.h colvarproxy.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar.h colvardeps.h \
colvarbias.h colvarbias_abf.h colvargrid.h colvar_UIestimator.h \
colvarbias_alb.h colvarbias_histogram.h \
colvarbias_histogram_reweight_amd.h colvarbias_meta.h \
colvarbias_restraint.h colvarscript.h colvarscript_commands.h \
colvarscript_commands_colvar.h colvarscript_commands_bias.h \
colvaratoms.h colvarcomp.h colvar_arithmeticpath.h \
colvar_geometricpath.h colvarmodule_refs.h
$(COLVARS_OBJ_DIR)colvarparams.o: colvarparams.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparams.h
$(COLVARS_OBJ_DIR)colvarparse.o: colvarparse.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparse.h \
colvarparams.h
$(COLVARS_OBJ_DIR)colvarproxy.o: colvarproxy.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h colvarscript.h colvarbias.h colvar.h colvarparse.h \ colvarproxy_volmaps.h colvar.h colvardeps.h colvarbias.h \
colvarparams.h colvardeps.h colvarscript_commands.h \ colvarbias_abf.h colvargrid.h colvar_UIestimator.h colvarbias_abmd.h \
colvarscript_commands_colvar.h colvarscript_commands_bias.h \ colvarbias_restraint.h colvarbias_alb.h colvarbias_histogram.h \
colvaratoms.h colvarmodule_utils.h colvarbias_histogram_reweight_amd.h colvarbias_meta.h colvarscript.h \
colvarscript_commands.h colvarscript_commands_colvar.h \
colvarscript_commands_bias.h colvaratoms.h colvarcomp.h \
colvar_geometricpath.h colvars_memstream.h colvarmodule_refs.h
$(COLVARS_OBJ_DIR)colvarparams.o: colvarparams.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvarparams.h
$(COLVARS_OBJ_DIR)colvarparse.o: colvarparse.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvarparse.h colvarparams.h \
colvars_memstream.h
$(COLVARS_OBJ_DIR)colvarproxy.o: colvarproxy.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvartypes.h \
../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvar.h colvarvalue.h \
colvarparse.h colvarparams.h colvardeps.h colvarbias.h colvarscript.h \
colvarscript_commands.h colvarscript_commands_colvar.h \
colvarscript_commands_bias.h colvarmodule_utils.h
$(COLVARS_OBJ_DIR)colvarproxy_io.o: colvarproxy_io.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarproxy_io.o: colvarproxy_io.cpp colvarmodule.h \
colvars_version.h colvarproxy_io.h colvars_version.h colvarproxy_io.h
$(COLVARS_OBJ_DIR)colvarproxy_replicas.o: colvarproxy_replicas.cpp \ $(COLVARS_OBJ_DIR)colvarproxy_replicas.o: colvarproxy_replicas.cpp \
colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \ colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \
colvarvalue.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvarproxy_tcl.h colvarproxy_volmaps.h
$(COLVARS_OBJ_DIR)colvarproxy_system.o: colvarproxy_system.cpp \ $(COLVARS_OBJ_DIR)colvarproxy_system.o: colvarproxy_system.cpp \
colvarmodule.h colvars_version.h colvartypes.h colvarproxy_system.h colvarmodule.h colvars_version.h colvartypes.h \
../../src/math_eigen_impl.h colvarproxy_system.h
$(COLVARS_OBJ_DIR)colvarproxy_tcl.o: colvarproxy_tcl.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarproxy_tcl.o: colvarproxy_tcl.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \ colvars_version.h colvarproxy.h colvartypes.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvaratoms.h colvarparse.h colvarparams.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvaratoms.h colvarparse.h \
colvardeps.h colvarvalue.h colvarparams.h colvardeps.h
$(COLVARS_OBJ_DIR)colvarproxy_volmaps.o: colvarproxy_volmaps.cpp \ $(COLVARS_OBJ_DIR)colvarproxy_volmaps.o: colvarproxy_volmaps.cpp \
colvarmodule.h colvars_version.h colvarproxy_volmaps.h \ colvarmodule.h colvars_version.h colvarproxy_volmaps.h \
colvarmodule_utils.h colvarmodule_utils.h
$(COLVARS_OBJ_DIR)colvarscript.o: colvarscript.cpp colvarproxy.h \ $(COLVARS_OBJ_DIR)colvarscript.o: colvarscript.cpp colvarproxy.h \
colvarmodule.h colvars_version.h colvartypes.h colvarvalue.h \ colvarmodule.h colvars_version.h colvartypes.h \
colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_volmaps.h colvardeps.h colvarparse.h colvarparams.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvardeps.h colvarparse.h \
colvarscript.h colvarbias.h colvar.h colvarscript_commands.h \ colvarvalue.h colvarparams.h colvarscript.h colvarscript_commands.h \
colvarscript_commands_colvar.h colvarscript_commands_bias.h colvarscript_commands_colvar.h colvarscript_commands_bias.h
$(COLVARS_OBJ_DIR)colvarscript_commands.o: colvarscript_commands.cpp \ $(COLVARS_OBJ_DIR)colvarscript_commands.o: colvarscript_commands.cpp \
colvarproxy.h colvarmodule.h colvars_version.h colvartypes.h \ colvar.h colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \
colvarvalue.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ ../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvardeps.h \
colvarproxy_volmaps.h colvardeps.h colvarparse.h colvarparams.h \ colvarbias.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarscript.h colvarbias.h colvar.h colvarscript_commands.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvarscript.h \
colvarscript_commands_colvar.h colvarscript_commands_bias.h colvarscript_commands.h colvarscript_commands_colvar.h \
colvarscript_commands_bias.h
$(COLVARS_OBJ_DIR)colvarscript_commands_bias.o: \ $(COLVARS_OBJ_DIR)colvarscript_commands_bias.o: \
colvarscript_commands_bias.cpp colvarproxy.h colvarmodule.h \ colvarscript_commands_bias.cpp colvarproxy.h colvarmodule.h \
colvars_version.h colvartypes.h colvarvalue.h colvarproxy_io.h \ colvars_version.h colvartypes.h ../../src/math_eigen_impl.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \ colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvardeps.h colvarparse.h colvarparams.h colvarscript.h colvarbias.h \ colvarproxy_volmaps.h colvarbias.h colvar.h colvarvalue.h colvarparse.h \
colvar.h colvarscript_commands.h colvarscript_commands_colvar.h \ colvarparams.h colvardeps.h colvarscript.h colvarscript_commands.h \
colvarscript_commands_bias.h colvarscript_commands_colvar.h colvarscript_commands_bias.h
$(COLVARS_OBJ_DIR)colvarscript_commands_colvar.o: \ $(COLVARS_OBJ_DIR)colvarscript_commands_colvar.o: \
colvarscript_commands_colvar.cpp colvarproxy.h colvarmodule.h \ colvarscript_commands_colvar.cpp colvar.h colvarmodule.h \
colvars_version.h colvartypes.h colvarvalue.h colvarproxy_io.h \ colvars_version.h colvarvalue.h colvartypes.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \ ../../src/math_eigen_impl.h colvarparse.h colvarparams.h colvardeps.h \
colvardeps.h colvarparse.h colvarparams.h colvarscript.h colvarbias.h \ colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvar.h colvarscript_commands.h colvarscript_commands_colvar.h \ colvarproxy_volmaps.h colvarscript.h colvarscript_commands.h \
colvarscript_commands_bias.h colvarscript_commands_colvar.h colvarscript_commands_bias.h
$(COLVARS_OBJ_DIR)colvars_memstream.o: colvars_memstream.cpp \
colvarmodule.h colvars_version.h colvartypes.h \
../../src/math_eigen_impl.h colvarvalue.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvartypes.o: colvartypes.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvartypes.o: colvartypes.cpp colvarmodule.h \
colvars_version.h colvartypes.h colvarparse.h colvarvalue.h \ colvars_version.h colvartypes.h ../../src/math_eigen_impl.h \
colvarparams.h ../../src/math_eigen_impl.h colvaratoms.h colvarproxy.h colvarproxy_io.h colvarproxy_system.h \
colvarproxy_tcl.h colvarproxy_volmaps.h colvarparse.h colvarvalue.h \
colvarparams.h colvardeps.h colvar_rotation_derivative.h
$(COLVARS_OBJ_DIR)colvarvalue.o: colvarvalue.cpp colvarmodule.h \ $(COLVARS_OBJ_DIR)colvarvalue.o: colvarvalue.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvars_version.h colvarvalue.h colvartypes.h \
../../src/math_eigen_impl.h colvars_memstream.h
$(COLVARS_OBJ_DIR)colvar_neuralnetworkcompute.o: \ $(COLVARS_OBJ_DIR)colvar_neuralnetworkcompute.o: \
colvar_neuralnetworkcompute.cpp colvar_neuralnetworkcompute.h \ colvar_neuralnetworkcompute.cpp colvar_neuralnetworkcompute.h \
colvarparse.h colvarmodule.h colvars_version.h colvarvalue.h \ colvarparse.h colvarmodule.h colvars_version.h colvarvalue.h \
colvartypes.h colvarparams.h colvarproxy.h colvarproxy_io.h \ colvartypes.h ../../src/math_eigen_impl.h colvarparams.h colvarproxy.h \
colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \
colvarproxy_volmaps.h

View File

@ -16,13 +16,18 @@
#include "colvarmodule.h" #include "colvarmodule.h"
#include "colvarvalue.h" #include "colvarvalue.h"
#include "colvarparse.h" #include "colvarparse.h"
#include "colvar.h"
#include "colvarcomp.h" #include "colvarcomp.h"
#include "colvarscript.h" #include "colvar.h"
#include "colvarbias.h"
#include "colvars_memstream.h"
std::map<std::string, std::function<colvar::cvc *()>> colvar::global_cvc_map =
std::map<std::string, std::function<colvar::cvc *()>>();
std::map<std::string, std::string> colvar::global_cvc_desc_map =
std::map<std::string, std::string>();
#if (__cplusplus >= 201103L)
std::map<std::string, std::function<colvar::cvc* (const std::string& subcv_conf)>> colvar::global_cvc_map = std::map<std::string, std::function<colvar::cvc* (const std::string& subcv_conf)>>();
#endif
colvar::colvar() colvar::colvar()
{ {
@ -36,6 +41,8 @@ colvar::colvar()
dev_null = 0.0; dev_null = 0.0;
#endif #endif
matching_state = false;
expand_boundaries = false; expand_boundaries = false;
description = "uninitialized colvar"; description = "uninitialized colvar";
@ -131,7 +138,14 @@ int colvar::init(std::string const &conf)
// Sort array of cvcs based on their names // Sort array of cvcs based on their names
// Note: default CVC names are in input order for same type of CVC // Note: default CVC names are in input order for same type of CVC
std::sort(cvcs.begin(), cvcs.end(), colvar::compare_cvc); std::sort(cvcs.begin(), cvcs.end(),
[](std::shared_ptr<colvar::cvc> const &cvc1,
std::shared_ptr<colvar::cvc> const &cvc2) -> bool {
if (cvc1 && cvc2) {
return cvc1->name < cvc2->name;
}
return false;
});
if(cvcs.size() > 1) { if(cvcs.size() > 1) {
cvm::log("Sorted list of components for this scripted colvar:\n"); cvm::log("Sorted list of components for this scripted colvar:\n");
@ -186,9 +200,9 @@ int colvar::init(std::string const &conf)
if ((cvcs[i])->sup_np < 0) { if ((cvcs[i])->sup_np < 0) {
cvm::log("Warning: you chose a negative exponent in the combination; " cvm::log("Warning: you chose a negative exponent in the combination; "
"if you apply forces, the simulation may become unstable " "if you apply forces, the simulation may become unstable "
"when the component \""+ "when the component \""+
(cvcs[i])->function_type+"\" approaches zero.\n"); (cvcs[i])->function_type()+"\" approaches zero.\n");
} }
} }
} }
@ -295,7 +309,7 @@ int colvar::init(std::string const &conf)
error_code |= init_grid_parameters(conf); error_code |= init_grid_parameters(conf);
// Detect if we have a single component that is an alchemical lambda // Detect if we have a single component that is an alchemical lambda
if (is_enabled(f_cv_single_cvc) && cvcs[0]->function_type == "alchLambda") { if (is_enabled(f_cv_single_cvc) && cvcs[0]->function_type() == "alchLambda") {
enable(f_cv_external); enable(f_cv_external);
} }
@ -468,13 +482,6 @@ int colvar::init_custom_function(std::string const &conf)
size_t pos = 0; size_t pos = 0;
if (key_lookup(conf, "customFunction", &expr, &pos)) { if (key_lookup(conf, "customFunction", &expr, &pos)) {
std::string msg("Error: customFunction requires the Lepton library."); std::string msg("Error: customFunction requires the Lepton library.");
#if (__cplusplus < 201103L)
// NOTE: this is not ideal; testing for the Lepton library's version would
// be more accurate, but also less portable
msg +=
std::string(" Note also that recent versions of Lepton require C++11: "
"please see https://colvars.github.io/README-c++11.html.");
#endif
return cvm::error(msg, COLVARS_NOT_IMPLEMENTED); return cvm::error(msg, COLVARS_NOT_IMPLEMENTED);
} }
@ -697,9 +704,14 @@ int colvar::init_extended_Lagrangian(std::string const &conf)
} }
if (ext_gamma != 0.0) { if (ext_gamma != 0.0) {
enable(f_cv_Langevin); enable(f_cv_Langevin);
cvm::main()->cite_feature("BAOA integrator");
ext_gamma *= 1.0e-3; // correct as long as input is required in ps-1 and cvm::dt() is in fs ext_gamma *= 1.0e-3; // correct as long as input is required in ps-1 and cvm::dt() is in fs
// Adjust Langevin sigma for slow time step if time_step_factor != 1 // Adjust Langevin sigma for slow time step if time_step_factor != 1
ext_sigma = cvm::sqrt(2.0 * proxy->boltzmann() * temp * ext_gamma * ext_mass / (cvm::dt() * cvm::real(time_step_factor))); // Eq. (6a) in https://doi.org/10.1021/acs.jctc.2c00585
ext_sigma = cvm::sqrt((1.0 - cvm::exp(-2.0 * ext_gamma * cvm::dt() * cvm::real(time_step_factor)))
* ext_mass * proxy->boltzmann() * temp);
} else {
ext_sigma = 0.0;
} }
get_keyval_feature(this, conf, "reflectingLowerBoundary", f_cv_reflecting_lower_boundary, false); get_keyval_feature(this, conf, "reflectingLowerBoundary", f_cv_reflecting_lower_boundary, false);
@ -744,75 +756,56 @@ int colvar::init_output_flags(std::string const &conf)
return COLVARS_OK; return COLVARS_OK;
} }
#if (__cplusplus >= 201103L)
// C++11 template <typename def_class_name>
template<typename def_class_name> int colvar::init_components_type(std::string const &, void colvar::add_component_type(char const *def_description, char const *def_config_key)
char const * /* def_desc */, {
char const *def_config_key) { if (global_cvc_map.count(def_config_key) == 0) {
// global_cvc_map is only supported in the C++11 case global_cvc_map[def_config_key] = []() {
global_cvc_map[def_config_key] = [](const std::string& cvc_conf){return new def_class_name(cvc_conf);}; return new def_class_name();
// TODO: maybe it is better to do more check to avoid duplication in the map? };
return COLVARS_OK; global_cvc_desc_map[def_config_key] = std::string(def_description);
}
} }
int colvar::init_components_type_from_global_map(const std::string& conf,
const char* def_config_key) { int colvar::init_components_type(const std::string& conf, const char* def_config_key) {
#else
template<typename def_class_name> int colvar::init_components_type(std::string const & conf,
char const * /* def_desc */,
char const *def_config_key) {
#endif
size_t def_count = 0; size_t def_count = 0;
std::string def_conf = ""; std::string def_conf = "";
size_t pos = 0; size_t pos = 0;
int error_code = COLVARS_OK;
while ( this->key_lookup(conf, while ( this->key_lookup(conf,
def_config_key, def_config_key,
&def_conf, &def_conf,
&pos) ) { &pos) ) {
if (!def_conf.size()) continue;
cvm::log("Initializing " cvm::log("Initializing "
"a new \""+std::string(def_config_key)+"\" component"+ "a new \""+std::string(def_config_key)+"\" component"+
(cvm::debug() ? ", with configuration:\n"+def_conf (cvm::debug() ? ", with configuration:\n"+def_conf
: ".\n")); : ".\n"));
cvc *cvcp = global_cvc_map[def_config_key]();
if (!cvcp) {
return cvm::error("Error: in creating object of type \"" + std::string(def_config_key) +
"\".\n",
COLVARS_MEMORY_ERROR);
}
cvcs.push_back(std::shared_ptr<colvar::cvc>(cvcp));
cvm::increase_depth(); cvm::increase_depth();
// only the following line is different from init_components_type int error_code_this = cvcp->init(def_conf);
// in the non-C++11 case if (error_code_this == COLVARS_OK) {
#if (__cplusplus >= 201103L) // Checking for invalid keywords only if the parsing was successful, otherwise any
cvc *cvcp = global_cvc_map.at(def_config_key)(def_conf); // early-returns due to errors would raise false positives
#else error_code_this |= cvcp->check_keywords(def_conf, def_config_key);
cvc *cvcp = new def_class_name(def_conf); }
#endif cvm::decrease_depth();
if (cvcp != NULL) { if (error_code_this != COLVARS_OK) {
cvcs.push_back(cvcp); error_code |=
cvcp->check_keywords(def_conf, def_config_key); cvm::error("Error: in setting up component \"" + std::string(def_config_key) + "\".\n",
cvcp->set_function_type(def_config_key); COLVARS_INPUT_ERROR);
if (cvm::get_error()) {
cvm::error("Error: in setting up component \""+
std::string(def_config_key)+"\".\n", COLVARS_INPUT_ERROR);
return COLVARS_INPUT_ERROR;
}
cvm::decrease_depth();
} else {
cvm::decrease_depth();
cvm::error("Error: in allocating component \""+
std::string(def_config_key)+"\".\n",
COLVARS_MEMORY_ERROR);
return COLVARS_MEMORY_ERROR;
}
if ( (cvcp->period != 0.0) || (cvcp->wrap_center != 0.0) ) {
if (! cvcp->is_enabled(f_cvc_periodic)) {
cvm::error("Error: invalid use of period and/or "
"wrapAround in a \""+
std::string(def_config_key)+
"\" component.\n"+
"Period: "+cvm::to_str(cvcp->period) +
" wrapAround: "+cvm::to_str(cvcp->wrap_center),
COLVARS_INPUT_ERROR);
return COLVARS_INPUT_ERROR;
}
} }
// Set default name if it doesn't have one
if ( ! cvcs.back()->name.size()) { if ( ! cvcs.back()->name.size()) {
std::ostringstream s; std::ostringstream s;
s << def_config_key << std::setfill('0') << std::setw(4) << ++def_count; s << def_config_key << std::setfill('0') << std::setw(4) << ++def_count;
@ -822,135 +815,138 @@ template<typename def_class_name> int colvar::init_components_type(std::string c
cvcs.back()->setup(); cvcs.back()->setup();
if (cvm::debug()) { if (cvm::debug()) {
cvm::log("Done initializing a \""+ cvm::log("Done initializing a \"" + std::string(def_config_key) + "\" component" +
std::string(def_config_key)+ (cvm::debug() ? ", named \"" + cvcs.back()->name + "\"" : "") + ".\n");
"\" component"+
(cvm::debug() ?
", named \""+cvcs.back()->name+"\""
: "")+".\n");
} }
def_conf = ""; def_conf = "";
if (cvm::debug()) { if (cvm::debug()) {
cvm::log("Parsed "+cvm::to_str(cvcs.size())+ cvm::log("Parsed " + cvm::to_str(cvcs.size()) + " components at this time.\n");
" components at this time.\n");
} }
} }
return COLVARS_OK; return error_code;
} }
void colvar::define_component_types()
{
colvarproxy *proxy = cvm::main()->proxy;
add_component_type<distance>("distance", "distance");
add_component_type<distance_vec>("distance vector", "distanceVec");
add_component_type<cartesian>("Cartesian coordinates", "cartesian");
add_component_type<distance_dir>("distance vector direction", "distanceDir");
add_component_type<distance_z>("distance projection on an axis", "distanceZ");
add_component_type<distance_xy>("distance projection on a plane", "distanceXY");
add_component_type<polar_theta>("spherical polar angle theta", "polarTheta");
add_component_type<polar_phi>("spherical azimuthal angle phi", "polarPhi");
add_component_type<distance_inv>("average distance weighted by inverse power", "distanceInv");
add_component_type<distance_pairs>("N1xN2-long vector of pairwise distances", "distancePairs");
add_component_type<dipole_magnitude>("dipole magnitude", "dipoleMagnitude");
add_component_type<coordnum>("coordination number", "coordNum");
add_component_type<selfcoordnum>("self-coordination number", "selfCoordNum");
add_component_type<groupcoordnum>("group-coordination number", "groupCoord");
add_component_type<angle>("angle", "angle");
add_component_type<dipole_angle>("dipole angle", "dipoleAngle");
add_component_type<dihedral>("dihedral", "dihedral");
add_component_type<h_bond>("hydrogen bond", "hBond");
if (proxy->check_atom_name_selections_available() == COLVARS_OK) {
add_component_type<alpha_angles>("alpha helix", "alpha");
add_component_type<dihedPC>("dihedral principal component", "dihedralPC");
}
add_component_type<orientation>("orientation", "orientation");
add_component_type<orientation_angle>("orientation angle", "orientationAngle");
add_component_type<orientation_proj>("orientation projection", "orientationProj");
add_component_type<tilt>("tilt", "tilt");
add_component_type<spin_angle>("spin angle", "spinAngle");
add_component_type<rmsd>("RMSD", "rmsd");
add_component_type<gyration>("radius of gyration", "gyration");
add_component_type<inertia>("moment of inertia", "inertia");
add_component_type<inertia_z>("moment of inertia around an axis", "inertiaZ");
add_component_type<eigenvector>("eigenvector", "eigenvector");
add_component_type<alch_lambda>("alchemical coupling parameter", "alchLambda");
add_component_type<alch_Flambda>("force on alchemical coupling parameter", "alchFLambda");
add_component_type<aspath>("arithmetic path collective variables (s)", "aspath");
add_component_type<azpath>("arithmetic path collective variables (z)", "azpath");
add_component_type<gspath>("geometrical path collective variables (s)", "gspath");
add_component_type<gzpath>("geometrical path collective variables (z)", "gzpath");
add_component_type<linearCombination>("linear combination of other collective variables", "linearCombination");
add_component_type<gspathCV>("geometrical path collective variables (s) for other CVs", "gspathCV");
add_component_type<gzpathCV>("geometrical path collective variables (z) for other CVs", "gzpathCV");
add_component_type<aspathCV>("arithmetic path collective variables (s) for other CVs", "aspathCV");
add_component_type<azpathCV>("arithmetic path collective variables (s) for other CVs", "azpathCV");
add_component_type<euler_phi>("euler phi angle of the optimal orientation", "eulerPhi");
add_component_type<euler_psi>("euler psi angle of the optimal orientation", "eulerPsi");
add_component_type<euler_theta>("euler theta angle of the optimal orientation", "eulerTheta");
#ifdef LEPTON
add_component_type<customColvar>("CV with support of the Lepton custom function", "customColvar");
#endif
add_component_type<neuralNetwork>("neural network CV for other CVs", "neuralNetwork");
if (proxy->check_volmaps_available() == COLVARS_OK) {
add_component_type<map_total>("total value of atomic map", "mapTotal");
}
}
int colvar::init_components(std::string const &conf) int colvar::init_components(std::string const &conf)
{ {
int error_code = COLVARS_OK; int error_code = COLVARS_OK;
size_t i = 0, j = 0; size_t i = 0, j = 0;
// in the non-C++11 case, the components are initialized directly by init_components_type; if (global_cvc_map.empty()) {
// in the C++11 case, the components are stored in the global_cvc_map at first define_component_types();
// by init_components_type, and then the map is iterated to initialize all components. }
error_code |= init_components_type<distance>(conf, "distance", "distance");
error_code |= init_components_type<distance_vec>(conf, "distance vector", "distanceVec");
error_code |= init_components_type<cartesian>(conf, "Cartesian coordinates", "cartesian");
error_code |= init_components_type<distance_dir>(conf, "distance vector "
"direction", "distanceDir");
error_code |= init_components_type<distance_z>(conf, "distance projection "
"on an axis", "distanceZ");
error_code |= init_components_type<distance_xy>(conf, "distance projection "
"on a plane", "distanceXY");
error_code |= init_components_type<polar_theta>(conf, "spherical polar angle theta",
"polarTheta");
error_code |= init_components_type<polar_phi>(conf, "spherical azimuthal angle phi",
"polarPhi");
error_code |= init_components_type<distance_inv>(conf, "average distance "
"weighted by inverse power", "distanceInv");
error_code |= init_components_type<distance_pairs>(conf, "N1xN2-long vector "
"of pairwise distances", "distancePairs");
error_code |= init_components_type<dipole_magnitude>(conf, "dipole magnitude",
"dipoleMagnitude");
error_code |= init_components_type<coordnum>(conf, "coordination "
"number", "coordNum");
error_code |= init_components_type<selfcoordnum>(conf, "self-coordination "
"number", "selfCoordNum");
error_code |= init_components_type<groupcoordnum>(conf, "group-coordination "
"number", "groupCoord");
error_code |= init_components_type<angle>(conf, "angle", "angle");
error_code |= init_components_type<dipole_angle>(conf, "dipole angle", "dipoleAngle");
error_code |= init_components_type<dihedral>(conf, "dihedral", "dihedral");
error_code |= init_components_type<h_bond>(conf, "hydrogen bond", "hBond");
error_code |= init_components_type<alpha_angles>(conf, "alpha helix", "alpha");
error_code |= init_components_type<dihedPC>(conf, "dihedral "
"principal component", "dihedralPC");
error_code |= init_components_type<orientation>(conf, "orientation", "orientation");
error_code |= init_components_type<orientation_angle>(conf, "orientation "
"angle", "orientationAngle");
error_code |= init_components_type<orientation_proj>(conf, "orientation "
"projection", "orientationProj");
error_code |= init_components_type<tilt>(conf, "tilt", "tilt");
error_code |= init_components_type<spin_angle>(conf, "spin angle", "spinAngle");
error_code |= init_components_type<rmsd>(conf, "RMSD", "rmsd");
error_code |= init_components_type<gyration>(conf, "radius of "
"gyration", "gyration");
error_code |= init_components_type<inertia>(conf, "moment of "
"inertia", "inertia");
error_code |= init_components_type<inertia_z>(conf, "moment of inertia around an axis", "inertiaZ");
error_code |= init_components_type<eigenvector>(conf, "eigenvector", "eigenvector");
error_code |= init_components_type<alch_lambda>(conf, "alchemical coupling parameter", "alchLambda");
error_code |= init_components_type<alch_Flambda>(conf, "force on alchemical coupling parameter", "alchFLambda");
error_code |= init_components_type<gspath>(conf, "geometrical path collective variables (s)", "gspath");
error_code |= init_components_type<gzpath>(conf, "geometrical path collective variables (z)", "gzpath");
error_code |= init_components_type<linearCombination>(conf, "linear combination of other collective variables", "linearCombination");
error_code |= init_components_type<gspathCV>(conf, "geometrical path collective variables (s) for other CVs", "gspathCV");
error_code |= init_components_type<gzpathCV>(conf, "geometrical path collective variables (z) for other CVs", "gzpathCV");
error_code |= init_components_type<aspathCV>(conf, "arithmetic path collective variables (s) for other CVs", "aspathCV");
error_code |= init_components_type<azpathCV>(conf, "arithmetic path collective variables (s) for other CVs", "azpathCV");
error_code |= init_components_type<euler_phi>(conf, "euler phi angle of the optimal orientation", "eulerPhi");
error_code |= init_components_type<euler_psi>(conf, "euler psi angle of the optimal orientation", "eulerPsi");
error_code |= init_components_type<euler_theta>(conf, "euler theta angle of the optimal orientation", "eulerTheta");
#ifdef LEPTON
error_code |= init_components_type<customColvar>(conf, "CV with support of the lepton custom function", "customColvar");
#endif
error_code |= init_components_type<neuralNetwork>(conf, "neural network CV for other CVs", "NeuralNetwork");
error_code |= init_components_type<map_total>(conf, "total value of atomic map", "mapTotal");
#if (__cplusplus >= 201103L)
// iterate over all available CVC in the map // iterate over all available CVC in the map
for (auto it = global_cvc_map.begin(); it != global_cvc_map.end(); ++it) { for (auto it = global_cvc_map.begin(); it != global_cvc_map.end(); ++it) {
error_code |= init_components_type_from_global_map(conf, it->first.c_str()); error_code |= init_components_type(conf, it->first.c_str());
// TODO: is it better to check the error code here? // TODO: is it better to check the error code here?
if (error_code != COLVARS_OK) { if (error_code != COLVARS_OK) {
cvm::log("Failed to initialize " + it->first + " with the following configuration:\n"); cvm::log("Failed to initialize " + it->first + " with the following configuration:\n");
cvm::log(conf); cvm::log(conf);
// TODO: should it stop here? // TODO: should it stop here?
break;
} }
} }
#endif
if (!cvcs.size() || (error_code != COLVARS_OK)) { if (!cvcs.size()) {
cvm::error("Error: no valid components were provided " std::string msg("Error: no valid components were provided for this collective variable.\n");
"for this collective variable.\n", msg += "Currently available component types are: \n";
COLVARS_INPUT_ERROR); for (auto it = global_cvc_desc_map.begin(); it != global_cvc_desc_map.end(); ++it) {
return COLVARS_INPUT_ERROR; msg += " " + it->first + " -- " + it->second + "\n";
}
msg += "\nPlease note that some of the above types may still be unavailable, irrespective of this error.\n";
error_code |= cvm::error(msg, COLVARS_INPUT_ERROR);
} }
// Check for uniqueness of CVC names (esp. if user-provided) // Check for uniqueness of CVC names (esp. if user-provided)
for (i = 0; i < cvcs.size(); i++) { for (i = 0; i < cvcs.size(); i++) {
for (j = i+1; j < cvcs.size(); j++) { for (j = i + 1; j < cvcs.size(); j++) {
if (cvcs[i]->name == cvcs[j]->name) { if (cvcs[i]->name == cvcs[j]->name) {
cvm::error("Components " + cvm::to_str(i) + " and " + cvm::to_str(j) +\ error_code |= cvm::error("Components " + cvm::to_str(i) + " and " + cvm::to_str(j) +
" cannot have the same name \"" + cvcs[i]->name+ "\".\n", COLVARS_INPUT_ERROR); " cannot have the same name \"" + cvcs[i]->name + "\".\n",
return COLVARS_INPUT_ERROR; COLVARS_INPUT_ERROR);
} }
} }
} }
n_active_cvcs = cvcs.size(); if (error_code == COLVARS_OK) {
// Store list of children cvcs for dependency checking purposes
// Store list of children cvcs for dependency checking purposes for (i = 0; i < cvcs.size(); i++) {
for (i = 0; i < cvcs.size(); i++) { add_child(cvcs[i].get());
add_child(cvcs[i]); }
// By default all CVCs are active at the start
n_active_cvcs = cvcs.size();
cvm::log("All components initialized.\n");
} }
cvm::log("All components initialized.\n"); return error_code;
return COLVARS_OK;
} }
@ -1220,7 +1216,7 @@ int colvar::init_dependencies() {
// Initialize feature_states for each instance // Initialize feature_states for each instance
feature_states.reserve(f_cv_ntot); feature_states.reserve(f_cv_ntot);
for (i = 0; i < f_cv_ntot; i++) { for (i = feature_states.size(); i < f_cv_ntot; i++) {
feature_states.push_back(feature_state(true, false)); feature_states.push_back(feature_state(true, false));
// Most features are available, so we set them so // Most features are available, so we set them so
// and list exceptions below // and list exceptions below
@ -1283,14 +1279,10 @@ colvar::~colvar()
// for dependency purposes // for dependency purposes
remove_all_children(); remove_all_children();
for (std::vector<cvc *>::reverse_iterator ci = cvcs.rbegin(); for (auto ci = cvcs.rbegin(); ci != cvcs.rend(); ++ci) {
ci != cvcs.rend(); // Clear all children of this cvc (i.e. its atom groups), because the cvc base class destructor
++ci) { // can't do it early enough and we don't want to have each cvc derived class do it separately
// clear all children of this cvc (i.e. its atom groups)
// because the cvc base class destructor can't do it early enough
// and we don't want to have each cvc derived class do it separately
(*ci)->remove_all_children(); (*ci)->remove_all_children();
delete *ci;
} }
cvcs.clear(); cvcs.clear();
@ -1512,6 +1504,7 @@ int colvar::collect_cvc_values()
cvm::to_str(x, cvm::cv_width, cvm::cv_prec)+".\n"); cvm::to_str(x, cvm::cv_width, cvm::cv_prec)+".\n");
if (after_restart) { if (after_restart) {
x_old = x_restart;
if (cvm::proxy->simulation_running()) { if (cvm::proxy->simulation_running()) {
cvm::real const jump2 = dist2(x, x_restart) / (width*width); cvm::real const jump2 = dist2(x, x_restart) / (width*width);
if (jump2 > 0.25) { if (jump2 > 0.25) {
@ -1555,12 +1548,12 @@ int colvar::calc_cvc_gradients(int first_cvc, size_t num_cvcs)
(cvcs[i])->debug_gradients(); (cvcs[i])->debug_gradients();
} }
cvm::decrease_depth();
if (cvm::debug()) if (cvm::debug())
cvm::log("Done calculating gradients of colvar \""+this->name+"\".\n"); cvm::log("Done calculating gradients of colvar \""+this->name+"\".\n");
} }
cvm::decrease_depth();
return COLVARS_OK; return COLVARS_OK;
} }
@ -1706,12 +1699,13 @@ int colvar::calc_colvar_properties()
// Do the same if no simulation is running (eg. VMD postprocessing) // Do the same if no simulation is running (eg. VMD postprocessing)
if ((cvm::step_relative() == 0 && !after_restart) || x_ext.type() == colvarvalue::type_notset || !cvm::proxy->simulation_running()) { if ((cvm::step_relative() == 0 && !after_restart) || x_ext.type() == colvarvalue::type_notset || !cvm::proxy->simulation_running()) {
x_ext = x; x_ext = x;
cvm::log("Initializing extended coordinate to colvar value.\n");
if (is_enabled(f_cv_reflecting_lower_boundary) && x_ext < lower_boundary) { if (is_enabled(f_cv_reflecting_lower_boundary) && x_ext < lower_boundary) {
cvm::log("Warning: initializing extended coordinate to reflective lower boundary, as colvar value is below."); cvm::log("Warning: initializing extended coordinate to reflective lower boundary, as colvar value is below.\n");
x_ext = lower_boundary; x_ext = lower_boundary;
} }
if (is_enabled(f_cv_reflecting_upper_boundary) && x_ext > upper_boundary) { if (is_enabled(f_cv_reflecting_upper_boundary) && x_ext > upper_boundary) {
cvm::log("Warning: initializing extended coordinate to reflective upper boundary, as colvar value is above."); cvm::log("Warning: initializing extended coordinate to reflective upper boundary, as colvar value is above.\n");
x_ext = upper_boundary; x_ext = upper_boundary;
} }
@ -1721,8 +1715,18 @@ int colvar::calc_colvar_properties()
// Special case of a repeated timestep (eg. multiple NAMD "run" statements) // Special case of a repeated timestep (eg. multiple NAMD "run" statements)
// revert values of the extended coordinate and velocity prior to latest integration // revert values of the extended coordinate and velocity prior to latest integration
if (cvm::proxy->simulation_running() && cvm::step_relative() == prev_timestep) { if (cvm::proxy->simulation_running() && cvm::step_relative() == prev_timestep) {
x_ext = prev_x_ext; // Detect jumps due to discrete changes in coordinates (eg. in replica exchange schemes)
v_ext = prev_v_ext; cvm::real const jump2 = dist2(x, x_old) / (width*width);
if (jump2 > 0.25) {
cvm::log("Detected discrete jump in colvar value from "
+ cvm::to_str(x_old) + " to " + cvm::to_str(x) + ".\n");
cvm::log("Reinitializing extended coordinate to colvar value.\n");
x_ext = x;
} else {
cvm::log("Reinitializing extended coordinate to last value.\n");
x_ext = prev_x_ext;
v_ext = prev_v_ext;
}
} }
// report the restraint center as "value" // report the restraint center as "value"
// These position and velocities come from integration at the _previous timestep_ in update_forces_energy() // These position and velocities come from integration at the _previous timestep_ in update_forces_energy()
@ -1830,9 +1834,11 @@ void colvar::update_extended_Lagrangian()
f += fb_actual; f += fb_actual;
} }
fr = f; // fr: bias force on extended variable (without harmonic spring), for output in trajectory
// External force has been scaled for a 1-timestep impulse, scale it back because we will fr = f;
// integrate it with the colvar's own timestep factor
// External force has been scaled for an inner-timestep impulse (for the back-end integrator)
// here we scale it back because this integrator uses only the outer (long) timestep
f_ext = f / cvm::real(time_step_factor); f_ext = f / cvm::real(time_step_factor);
colvarvalue f_system(fr.type()); // force exterted by the system on the extended DOF colvarvalue f_system(fr.type()); // force exterted by the system on the extended DOF
@ -1845,15 +1851,14 @@ void colvar::update_extended_Lagrangian()
} else { } else {
// the total force is applied to the fictitious mass, while the // the total force is applied to the fictitious mass, while the
// atoms only feel the harmonic force + wall force // atoms only feel the harmonic force + wall force
// fr: bias force on extended variable (without harmonic spring), for output in trajectory
// f_ext: total force on extended variable (including harmonic spring) // f_ext: total force on extended variable (including harmonic spring)
// f: - initially, external biasing force // f: - initially, external biasing force
// - after this code block, colvar force to be applied to atomic coordinates // - after this code block, colvar force to be applied to atomic coordinates
// ie. spring force (fb_actual will be added just below) // ie. spring force (fb_actual will be added just below)
f_system = (-0.5 * ext_force_k) * this->dist2_lgrad(x_ext, x); f_system = (-0.5 * ext_force_k) * this->dist2_lgrad(x_ext, x);
f = -1.0 * f_system; f = -1.0 * f_system;
// Coupling force is a slow force, to be applied to atomic coords impulse-style // Coupling force will be applied to atomic coords impulse-style
// over a single MD timestep // over an inner timestep of the back-end integrator
f *= cvm::real(time_step_factor); f *= cvm::real(time_step_factor);
} }
f_ext += f_system; f_ext += f_system;
@ -1873,34 +1878,57 @@ void colvar::update_extended_Lagrangian()
prev_x_ext = x_ext; prev_x_ext = x_ext;
prev_v_ext = v_ext; prev_v_ext = v_ext;
// leapfrog: starting from x_i, f_i, v_(i-1/2) // BAOA (GSD) integrator as formulated in https://doi.org/10.1021/acs.jctc.2c00585
v_ext += (0.5 * dt) * f_ext / ext_mass; // starting from x_t, f_t, v_(t-1/2)
// Because of leapfrog, kinetic energy at time i is approximate // Variation: the velocity step is split in two to estimate the kinetic energy at time t
// so this is more of a "BBAOA" scheme: a rearranged BAOAB where the second B is deferred
// to the next time step for implementation reasons (waiting for the force calculation)
// [B] Eq. (10a) split into two half-steps
// would reduce to leapfrog when gamma = 0 if this was the reported velocity
v_ext += 0.5 * dt * f_ext / ext_mass;
// Kinetic energy at t
kinetic_energy = 0.5 * ext_mass * v_ext * v_ext; kinetic_energy = 0.5 * ext_mass * v_ext * v_ext;
// Potential energy at t
potential_energy = 0.5 * ext_force_k * this->dist2(x_ext, x); potential_energy = 0.5 * ext_force_k * this->dist2(x_ext, x);
// leap to v_(i+1/2)
// Total energy will lag behind position by one timestep
// (current kinetic energy is not accessible before the next force calculation)
v_ext += 0.5 * dt * f_ext / ext_mass;
// Final v_ext lags behind x_ext by half a timestep
// [A] Half step in position (10b)
x_ext += dt * v_ext / 2.0;
// [O] leap to v_(i+1/2) (10c)
if (is_enabled(f_cv_Langevin)) { if (is_enabled(f_cv_Langevin)) {
v_ext -= dt * ext_gamma * v_ext;
colvarvalue rnd(x); colvarvalue rnd(x);
rnd.set_random(); rnd.set_random();
v_ext += dt * ext_sigma * rnd / ext_mass; // ext_sigma has been computed at init time according to (10c)
v_ext = cvm::exp(- 1.0 * dt * ext_gamma) * v_ext + ext_sigma * rnd / ext_mass;
} }
v_ext += (0.5 * dt) * f_ext / ext_mass; // [A] Second half step in position (10d)
x_ext += dt * v_ext; x_ext += dt * v_ext / 2.0;
cvm::real delta = 0; // Length of overshoot past either reflecting boundary cvm::real delta = 0; // Length of overshoot past either reflecting boundary
if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) || if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) ||
(is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) { (is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) {
// Reflect arrival position
x_ext -= 2.0 * delta; x_ext -= 2.0 * delta;
v_ext *= -1.0; // Bounce happened on average at t+1/2 -> reflect velocity at t+1/2
if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) || v_ext = -0.5 * (prev_v_ext + v_ext);
(is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) { if ((is_enabled(f_cv_reflecting_lower_boundary) && (x_ext - lower_boundary) < 0.0) ||
(is_enabled(f_cv_reflecting_upper_boundary) && (x_ext - upper_boundary) > 0.0)) {
cvm::error("Error: extended coordinate value " + cvm::to_str(x_ext) + " is still outside boundaries after reflection.\n"); cvm::error("Error: extended coordinate value " + cvm::to_str(x_ext) + " is still outside boundaries after reflection.\n");
} }
} }
x_ext.apply_constraints(); x_ext.apply_constraints();
this->wrap(x_ext); this->wrap(x_ext);
if (is_enabled(f_cv_external)) { if (is_enabled(f_cv_external)) {
// Colvar value is constrained to the extended value // Colvar value is constrained to the extended value
x = x_ext; x = x_ext;
@ -1914,9 +1942,8 @@ int colvar::end_of_step()
if (cvm::debug()) if (cvm::debug())
cvm::log("End of step for colvar \""+this->name+"\".\n"); cvm::log("End of step for colvar \""+this->name+"\".\n");
if (is_enabled(f_cv_fdiff_velocity)) { // Used for fdiff_velocity and for detecting jumps for extended Lagrangian colvars
x_old = x; x_old = x;
}
if (is_enabled(f_cv_subtract_applied_force)) { if (is_enabled(f_cv_subtract_applied_force)) {
f_old = f; f_old = f;
@ -2256,44 +2283,65 @@ void colvar::wrap(colvarvalue &x_unwrapped) const
std::istream & colvar::read_state(std::istream &is) std::istream & colvar::read_state(std::istream &is)
{ {
std::streampos const start_pos = is.tellg(); auto const start_pos = is.tellg();
std::string conf; std::string conf;
if ( !(is >> colvarparse::read_block("colvar", &conf)) ) { if ( !(is >> colvarparse::read_block("colvar", &conf)) ||
(check_matching_state(conf) != COLVARS_OK) ) {
// this is not a colvar block // this is not a colvar block
is.clear(); is.clear();
is.seekg(start_pos, std::ios::beg); is.seekg(start_pos);
is.setstate(std::ios::failbit); is.setstate(std::ios::failbit);
return is; return is;
} }
{ if (!matching_state) {
std::string check_name = ""; // No errors reading, but this state is not for this colvar; rewind
get_keyval(conf, "name", check_name, is.seekg(start_pos);
std::string(""), colvarparse::parse_silent); return is;
if (check_name.size() == 0) {
cvm::error("Error: Collective variable in the "
"restart file without any identifier.\n", COLVARS_INPUT_ERROR);
is.clear();
is.seekg(start_pos, std::ios::beg);
is.setstate(std::ios::failbit);
return is;
}
if (check_name != name) {
if (cvm::debug()) {
cvm::log("Ignoring state of colvar \""+check_name+
"\": this colvar is named \""+name+"\".\n");
}
is.seekg(start_pos, std::ios::beg);
return is;
}
} }
if (set_state_params(conf) != COLVARS_OK) {
is.clear();
is.seekg(start_pos);
is.setstate(std::ios::failbit);
}
return is;
}
int colvar::check_matching_state(std::string const &conf)
{
std::string check_name = "";
get_keyval(conf, "name", check_name, std::string(""), colvarparse::parse_silent);
if (check_name.size() == 0) {
return cvm::error("Error: Collective variable in the "
"state file without any identifier.\n", COLVARS_INPUT_ERROR);
}
if (check_name != name) {
if (cvm::debug()) {
cvm::log("Ignoring state of colvar \""+check_name+
"\": this colvar is named \""+name+"\".\n");
}
matching_state = false;
} else {
matching_state = true;
}
return COLVARS_OK;
}
int colvar::set_state_params(std::string const &conf)
{
int error_code = COLVARS_OK;
if ( !(get_keyval(conf, "x", x, x, colvarparse::parse_silent)) ) { if ( !(get_keyval(conf, "x", x, x, colvarparse::parse_silent)) ) {
cvm::log("Error: restart file does not contain " error_code |= cvm::error("Error: restart file does not contain "
"the value of the colvar \""+ "the value of the colvar \""+
name+"\" .\n"); name+"\" .\n", COLVARS_INPUT_ERROR);
} else { } else {
cvm::log("Restarting collective variable \""+name+"\" from value: "+ cvm::log("Restarting collective variable \""+name+"\" from value: "+
cvm::to_str(x)+"\n"); cvm::to_str(x)+"\n");
@ -2306,9 +2354,10 @@ std::istream & colvar::read_state(std::istream &is)
colvarvalue(x.type()), colvarparse::parse_silent)) || colvarvalue(x.type()), colvarparse::parse_silent)) ||
!(get_keyval(conf, "extended_v", v_ext, !(get_keyval(conf, "extended_v", v_ext,
colvarvalue(x.type()), colvarparse::parse_silent)) ) { colvarvalue(x.type()), colvarparse::parse_silent)) ) {
cvm::log("Error: restart file does not contain " error_code |= cvm::error("Error: restart file does not contain "
"\"extended_x\" or \"extended_v\" for the colvar \""+ "\"extended_x\" or \"extended_v\" for the colvar \""+
name+"\", but you requested \"extendedLagrangian\".\n"); name+"\", but you requested \"extendedLagrangian\".\n",
COLVARS_INPUT_ERROR);
} }
x_reported = x_ext; x_reported = x_ext;
} else { } else {
@ -2319,9 +2368,10 @@ std::istream & colvar::read_state(std::istream &is)
if ( !(get_keyval(conf, "v", v_fdiff, if ( !(get_keyval(conf, "v", v_fdiff,
colvarvalue(x.type()), colvarparse::parse_silent)) ) { colvarvalue(x.type()), colvarparse::parse_silent)) ) {
cvm::log("Error: restart file does not contain " error_code |= cvm::error("Error: restart file does not contain "
"the velocity for the colvar \""+ "the velocity for the colvar \""+
name+"\", but you requested \"outputVelocity\".\n"); name+"\", but you requested \"outputVelocity\".\n",
COLVARS_INPUT_ERROR);
} }
if (is_enabled(f_cv_extended_Lagrangian)) { if (is_enabled(f_cv_extended_Lagrangian)) {
@ -2331,6 +2381,41 @@ std::istream & colvar::read_state(std::istream &is)
} }
} }
return error_code;
}
cvm::memory_stream &colvar::read_state(cvm::memory_stream &is)
{
auto const start_pos = is.tellg();
std::string key, data;
if (is >> key) {
if (key == "colvar") {
// Read a formatted config string, then read the state parameters from it
if (is >> data) {
if (set_state_params(data) == COLVARS_OK) {
return is;
}
}
}
}
auto const error_pos = is.tellg();
is.clear();
is.seekg(start_pos);
is.setstate(std::ios::failbit);
std::string error_msg("Error: in reading state data for colvar \"" + name + " at position " +
cvm::to_str(error_pos) + " in unformatted stream.\n");
if (key.size() && key != "colvar") {
error_msg += "; the keyword read was \"" + key + "\", but \"colvar\" was expected";
}
if (data.size()) {
error_msg += "; the configuration string read was not recognized";
}
error_msg += ".\n";
cvm::error(error_msg, COLVARS_INPUT_ERROR);
return is; return is;
} }
@ -2345,7 +2430,7 @@ std::istream & colvar::read_traj(std::istream &is)
cvm::log("Error: in reading the value of colvar \""+ cvm::log("Error: in reading the value of colvar \""+
this->name+"\" from trajectory.\n"); this->name+"\" from trajectory.\n");
is.clear(); is.clear();
is.seekg(start_pos, std::ios::beg); is.seekg(start_pos);
is.setstate(std::ios::failbit); is.setstate(std::ios::failbit);
return is; return is;
} }
@ -2385,10 +2470,23 @@ std::istream & colvar::read_traj(std::istream &is)
// ******************** OUTPUT FUNCTIONS ******************** // ******************** OUTPUT FUNCTIONS ********************
std::ostream & colvar::write_state(std::ostream &os) { std::ostream & colvar::write_state(std::ostream &os) const
{
os << "colvar {\n" << get_state_params() << "}\n\n";
os << "colvar {\n" if (runave_outfile.size() > 0) {
<< " name " << name << "\n" cvm::main()->proxy->flush_output_stream(runave_outfile);
}
return os;
}
std::string const colvar::get_state_params() const
{
std::ostringstream os;
os << " name " << name << "\n"
<< " x " << " x "
<< std::setprecision(cvm::cv_prec) << std::setprecision(cvm::cv_prec)
<< std::setw(cvm::cv_width) << std::setw(cvm::cv_width)
@ -2412,7 +2510,13 @@ std::ostream & colvar::write_state(std::ostream &os) {
<< v_reported << "\n"; << v_reported << "\n";
} }
os << "}\n\n"; return os.str();
}
cvm::memory_stream & colvar::write_state(cvm::memory_stream &os) const
{
os << std::string("colvar") << get_state_params();
if (runave_outfile.size() > 0) { if (runave_outfile.size() > 0) {
cvm::main()->proxy->flush_output_stream(runave_outfile); cvm::main()->proxy->flush_output_stream(runave_outfile);
@ -2875,14 +2979,11 @@ int colvar::calc_runave()
runave_variance *= 1.0 / cvm::real(runave_length-1); runave_variance *= 1.0 / cvm::real(runave_length-1);
if (runave_outfile.size() > 0) { if (runave_outfile.size() > 0) {
std::ostream &runave_os = proxy->output_stream(runave_outfile); std::ostream &runave_os =
runave_os << std::setw(cvm::it_width) << cvm::step_relative() proxy->output_stream(runave_outfile, "running average output file");
<< " " runave_os << std::setw(cvm::it_width) << cvm::step_relative() << " "
<< std::setprecision(cvm::cv_prec) << std::setprecision(cvm::cv_prec) << std::setw(cvm::cv_width) << runave << " "
<< std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << std::setw(cvm::cv_width)
<< runave << " "
<< std::setprecision(cvm::cv_prec)
<< std::setw(cvm::cv_width)
<< cvm::sqrt(runave_variance) << "\n"; << cvm::sqrt(runave_variance) << "\n";
} }
} }

View File

@ -10,12 +10,11 @@
#ifndef COLVAR_H #ifndef COLVAR_H
#define COLVAR_H #define COLVAR_H
#include <iostream>
#if (__cplusplus >= 201103L)
#include <map>
#include <functional> #include <functional>
#endif #include <list>
#include <iosfwd>
#include <map>
#include <memory>
#include "colvarmodule.h" #include "colvarmodule.h"
#include "colvarvalue.h" #include "colvarvalue.h"
@ -91,7 +90,7 @@ public:
/// calculations, \link colvarbias_abf \endlink, it is used to /// calculations, \link colvarbias_abf \endlink, it is used to
/// calculate the grid spacing in the direction of this collective /// calculate the grid spacing in the direction of this collective
/// variable. /// variable.
cvm::real width; cvm::real width = 1.0;
/// \brief Implementation of the feature list for colvar /// \brief Implementation of the feature list for colvar
static std::vector<feature *> cv_features; static std::vector<feature *> cv_features;
@ -184,13 +183,13 @@ protected:
/// Previous velocity of the restraint center /// Previous velocity of the restraint center
colvarvalue prev_v_ext; colvarvalue prev_v_ext;
/// Mass of the restraint center /// Mass of the restraint center
cvm::real ext_mass; cvm::real ext_mass = 0.0;
/// Restraint force constant /// Restraint force constant
cvm::real ext_force_k; cvm::real ext_force_k = 0.0;
/// Friction coefficient for Langevin extended dynamics /// Friction coefficient for Langevin extended dynamics
cvm::real ext_gamma; cvm::real ext_gamma = 0.0;
/// Amplitude of Gaussian white noise for Langevin extended dynamics /// Amplitude of Gaussian white noise for Langevin extended dynamics
cvm::real ext_sigma; cvm::real ext_sigma = 0.0;
/// \brief Applied force on extended DOF, for output (unscaled if using MTS) /// \brief Applied force on extended DOF, for output (unscaled if using MTS)
colvarvalue fr; colvarvalue fr;
@ -224,14 +223,14 @@ public:
colvarvalue ft; colvarvalue ft;
/// Period, if this variable is periodic /// Period, if this variable is periodic
cvm::real period; cvm::real period = 0.0;
/// Center of wrapping, if this variable is periodic /// Center of wrapping, if this variable is periodic
cvm::real wrap_center; cvm::real wrap_center = 0.0;
/// \brief Expand the boundaries of multiples of width, to keep the /// \brief Expand the boundaries of multiples of width, to keep the
/// value always within range /// value always within range
bool expand_boundaries; bool expand_boundaries = false;
/// \brief Location of the lower boundary /// \brief Location of the lower boundary
colvarvalue lower_boundary; colvarvalue lower_boundary;
@ -252,6 +251,9 @@ public:
/// Main init function /// Main init function
int init(std::string const &conf); int init(std::string const &conf);
/// Populate the map of available CVC types
void define_component_types();
/// Parse the CVC configuration and allocate their data /// Parse the CVC configuration and allocate their data
int init_components(std::string const &conf); int init_components(std::string const &conf);
@ -271,17 +273,13 @@ public:
virtual int init_dependencies(); virtual int init_dependencies();
private: private:
/// Parse the CVC configuration for all components of a certain type
template<typename def_class_name> int init_components_type(std::string const & conf, /// Declare an available CVC type and its description, register them in the global map
char const *def_desc, template <typename def_class_name>
char const *def_config_key); void add_component_type(char const *description, char const *config_key);
#if (__cplusplus >= 201103L)
/// For the C++11 case, the names of all available components are /// Initialize any CVC objects matching the given key
/// registered in the global map at first, and then the CVC configuration int init_components_type(const std::string &conf, const char *config_key);
/// is parsed by this function
int init_components_type_from_global_map(const std::string& conf,
const char* def_config_key);
#endif
public: public:
@ -387,10 +385,10 @@ public:
protected: protected:
/// \brief Number of CVC objects with an active flag /// \brief Number of CVC objects with an active flag
size_t n_active_cvcs; size_t n_active_cvcs = 0;
/// Sum of square coefficients for active cvcs /// Sum of square coefficients for active cvcs
cvm::real active_cvc_square_norm; cvm::real active_cvc_square_norm = 0.0;
/// Update the sum of square coefficients for active cvcs /// Update the sum of square coefficients for active cvcs
void update_active_cvc_square_norm(); void update_active_cvc_square_norm();
@ -460,16 +458,35 @@ public:
/// Write a label to the trajectory file (comment line) /// Write a label to the trajectory file (comment line)
std::ostream & write_traj_label(std::ostream &os); std::ostream & write_traj_label(std::ostream &os);
/// Read the collective variable from a restart file /// Read the colvar's state from a formatted input stream
std::istream & read_state(std::istream &is); std::istream & read_state(std::istream &is);
/// Write the collective variable to a restart file
std::ostream & write_state(std::ostream &os); /// Read the colvar's state from an unformatted input stream
cvm::memory_stream & read_state(cvm::memory_stream &is);
/// Check the name of the bias vs. the given string, set the matching_state flag accordingly
int check_matching_state(std::string const &state_conf);
/// Read the values of colvar mutable data from a string (used by both versions of read_state())
int set_state_params(std::string const &state_conf);
/// Write the state information of this colvar in a block of text, suitable for later parsing
std::string const get_state_params() const;
/// Write the colvar's state to a formatted output stream
std::ostream & write_state(std::ostream &os) const;
/// Write the colvar's state to an unformatted output stream
cvm::memory_stream & write_state(cvm::memory_stream &os) const;
/// Write output files (if defined, e.g. in analysis mode) /// Write output files (if defined, e.g. in analysis mode)
int write_output_files(); int write_output_files();
protected: protected:
/// Flag used to tell if the state string being read is for this colvar
bool matching_state;
/// Previous value (to calculate velocities during analysis) /// Previous value (to calculate velocities during analysis)
colvarvalue x_old; colvarvalue x_old;
@ -554,15 +571,15 @@ protected:
/// Current value of the running average /// Current value of the running average
colvarvalue runave; colvarvalue runave;
/// Current value of the square deviation from the running average /// Current value of the square deviation from the running average
cvm::real runave_variance; cvm::real runave_variance = 0.0;
/// Calculate the running average and its standard deviation /// Calculate the running average and its standard deviation
int calc_runave(); int calc_runave();
/// If extended Lagrangian active: colvar kinetic energy /// If extended Lagrangian active: colvar kinetic energy
cvm::real kinetic_energy; cvm::real kinetic_energy = 0.0;
/// If extended Lagrangian active: colvar harmonic potential /// If extended Lagrangian active: colvar harmonic potential
cvm::real potential_energy; cvm::real potential_energy = 0.0;
public: public:
@ -601,8 +618,9 @@ public:
class dihedPC; class dihedPC;
class alch_lambda; class alch_lambda;
class alch_Flambda; class alch_Flambda;
class componentDisabled;
class CartesianBasedPath; class CartesianBasedPath;
class aspath;
class azpath;
class gspath; class gspath;
class gzpath; class gzpath;
class linearCombination; class linearCombination;
@ -626,21 +644,19 @@ public:
// components that do not handle any atoms directly // components that do not handle any atoms directly
class map_total; class map_total;
/// getter of the global cvc map
#if (__cplusplus >= 201103L)
/// A global mapping of cvc names to the cvc constructors /// A global mapping of cvc names to the cvc constructors
static const std::map<std::string, std::function<colvar::cvc* (const std::string& subcv_conf)>>& get_global_cvc_map() { static const std::map<std::string, std::function<colvar::cvc *()>> &get_global_cvc_map()
return global_cvc_map; {
return global_cvc_map;
} }
#endif
/// \brief function for sorting cvcs by their names /// \brief function for sorting cvcs by their names
static bool compare_cvc(const colvar::cvc* const i, const colvar::cvc* const j); static bool compare_cvc(const colvar::cvc* const i, const colvar::cvc* const j);
protected: protected:
/// \brief Array of \link colvar::cvc \endlink objects /// Array of components objects
std::vector<cvc *> cvcs; std::vector<std::shared_ptr<colvar::cvc>> cvcs;
/// \brief Flags to enable or disable cvcs at next colvar evaluation /// \brief Flags to enable or disable cvcs at next colvar evaluation
std::vector<bool> cvc_flags; std::vector<bool> cvc_flags;
@ -671,10 +687,11 @@ protected:
double dev_null; double dev_null;
#endif #endif
#if (__cplusplus >= 201103L)
/// A global mapping of cvc names to the cvc constructors /// A global mapping of cvc names to the cvc constructors
static std::map<std::string, std::function<colvar::cvc* (const std::string& subcv_conf)>> global_cvc_map; static std::map<std::string, std::function<colvar::cvc *()>> global_cvc_map;
#endif
/// A global mapping of cvc names to the corresponding descriptions
static std::map<std::string, std::string> global_cvc_desc_map;
/// Volmap numeric IDs, one for each CVC (-1 if not available) /// Volmap numeric IDs, one for each CVC (-1 if not available)
std::vector<int> volmap_ids_; std::vector<int> volmap_ids_;
@ -762,4 +779,3 @@ inline void colvar::reset_bias_force() {
} }
#endif #endif

View File

@ -7,126 +7,84 @@
#include <cmath> #include <cmath>
#include <limits> #include <limits>
#include <string> #include <string>
#include <algorithm>
namespace ArithmeticPathCV { namespace ArithmeticPathCV {
using std::vector; using std::vector;
enum path_sz {S, Z}; template <typename scalar_type>
template <typename element_type, typename scalar_type, path_sz path_type>
class ArithmeticPathBase { class ArithmeticPathBase {
public: public:
ArithmeticPathBase() {} ArithmeticPathBase() {}
virtual ~ArithmeticPathBase() {} ~ArithmeticPathBase() {}
virtual void initialize(size_t p_num_elements, size_t p_total_frames, double p_lambda, const vector<element_type>& p_element, const vector<double>& p_weights); void initialize(size_t p_num_elements, size_t p_total_frames, scalar_type p_lambda, const vector<scalar_type>& p_weights);
virtual void updateDistanceToReferenceFrames() = 0; void reComputeLambda(const vector<scalar_type>& rmsd_between_refs);
virtual void computeValue(); template <typename element_type>
virtual void computeDerivatives(); void computeValue(const vector<vector<element_type>>& frame_element_distances, scalar_type *s = nullptr, scalar_type *z = nullptr);
virtual void compute(); // can only be called after computeValue() for element-wise derivatives and store derivatives of i-th frame to dsdx and dzdx
virtual void reComputeLambda(const vector<scalar_type>& rmsd_between_refs); template <typename element_type>
void computeDerivatives(const vector<vector<element_type>>& frame_element_distances, vector<vector<element_type>> *dsdx = nullptr, vector<vector<element_type>> *dzdx = nullptr);
protected: protected:
scalar_type lambda; scalar_type lambda;
vector<scalar_type> weights; vector<scalar_type> squared_weights;
size_t num_elements; size_t num_elements;
size_t total_frames; size_t total_frames;
vector< vector<element_type> > frame_element_distances; vector<scalar_type> exponents;
scalar_type s; scalar_type max_exponent;
scalar_type z; scalar_type saved_exponent_sum;
vector<element_type> dsdx;
vector<element_type> dzdx;
private:
// intermediate variables
vector<scalar_type> s_numerator_frame;
vector<scalar_type> s_denominator_frame;
scalar_type numerator_s;
scalar_type denominator_s;
scalar_type normalization_factor; scalar_type normalization_factor;
scalar_type saved_s;
}; };
template <typename element_type, typename scalar_type, path_sz path_type> template <typename scalar_type>
void ArithmeticPathBase<element_type, scalar_type, path_type>::initialize(size_t p_num_elements, size_t p_total_frames, double p_lambda, const vector<element_type>& p_element, const vector<double>& p_weights) { void ArithmeticPathBase<scalar_type>::initialize(size_t p_num_elements, size_t p_total_frames, scalar_type p_lambda, const vector<scalar_type>& p_weights) {
lambda = p_lambda; lambda = p_lambda;
weights = p_weights; for (size_t i = 0; i < p_weights.size(); ++i) squared_weights.push_back(p_weights[i] * p_weights[i]);
num_elements = p_num_elements; num_elements = p_num_elements;
total_frames = p_total_frames; total_frames = p_total_frames;
frame_element_distances.resize(total_frames, p_element); exponents.resize(total_frames);
for (size_t i_frame = 0; i_frame < frame_element_distances.size(); ++i_frame) {
for (size_t j_elem = 0; j_elem < num_elements; ++j_elem) {
frame_element_distances[i_frame][j_elem].reset();
}
}
s = scalar_type(0);
z = scalar_type(0);
dsdx = p_element;
dzdx = p_element;
s_numerator_frame.resize(total_frames, scalar_type(0));
s_denominator_frame.resize(total_frames, scalar_type(0));
numerator_s = scalar_type(0);
denominator_s = scalar_type(0);
normalization_factor = 1.0 / static_cast<scalar_type>(total_frames - 1); normalization_factor = 1.0 / static_cast<scalar_type>(total_frames - 1);
saved_s = scalar_type();
saved_exponent_sum = scalar_type();
max_exponent = scalar_type();
} }
template <typename element_type, typename scalar_type, path_sz path_type> template <typename scalar_type>
void ArithmeticPathBase<element_type, scalar_type, path_type>::computeValue() { template <typename element_type>
updateDistanceToReferenceFrames(); void ArithmeticPathBase<scalar_type>::computeValue(
numerator_s = scalar_type(0); const vector<vector<element_type>>& frame_element_distances,
denominator_s = scalar_type(0); scalar_type *s, scalar_type *z)
for (size_t i_frame = 0; i_frame < frame_element_distances.size(); ++i_frame) { {
scalar_type exponent_tmp = scalar_type(0); for (size_t i_frame = 0; i_frame < total_frames; ++i_frame) {
scalar_type exponent_tmp = scalar_type();
for (size_t j_elem = 0; j_elem < num_elements; ++j_elem) { for (size_t j_elem = 0; j_elem < num_elements; ++j_elem) {
exponent_tmp += weights[j_elem] * frame_element_distances[i_frame][j_elem] * weights[j_elem] * frame_element_distances[i_frame][j_elem]; exponent_tmp += squared_weights[j_elem] * frame_element_distances[i_frame][j_elem] * frame_element_distances[i_frame][j_elem];
} }
exponent_tmp = exponent_tmp * -1.0 * lambda; exponents[i_frame] = exponent_tmp * -1.0 * lambda;
// prevent underflow if the argument of cvm::exp is less than -708.4 if (i_frame == 0 || exponents[i_frame] > max_exponent) max_exponent = exponents[i_frame];
if (exponent_tmp > -708.4) {
exponent_tmp = cvm::exp(exponent_tmp);
} else {
exponent_tmp = 0;
}
numerator_s += static_cast<scalar_type>(i_frame) * exponent_tmp;
denominator_s += exponent_tmp;
s_numerator_frame[i_frame] = static_cast<scalar_type>(i_frame) * exponent_tmp;
s_denominator_frame[i_frame] = exponent_tmp;
} }
s = numerator_s / denominator_s * normalization_factor; scalar_type log_sum_exp_0 = scalar_type();
z = -1.0 / lambda * cvm::logn(denominator_s); scalar_type log_sum_exp_1 = scalar_type();
} for (size_t i_frame = 0; i_frame < total_frames; ++i_frame) {
exponents[i_frame] = cvm::exp(exponents[i_frame] - max_exponent);
template <typename element_type, typename scalar_type, path_sz path_type> log_sum_exp_0 += exponents[i_frame];
void ArithmeticPathBase<element_type, scalar_type, path_type>::compute() { log_sum_exp_1 += i_frame * exponents[i_frame];
computeValue(); }
computeDerivatives(); saved_exponent_sum = log_sum_exp_0;
} log_sum_exp_0 = max_exponent + cvm::logn(log_sum_exp_0);
log_sum_exp_1 = max_exponent + cvm::logn(log_sum_exp_1);
template <typename element_type, typename scalar_type, path_sz path_type> saved_s = normalization_factor * cvm::exp(log_sum_exp_1 - log_sum_exp_0);
void ArithmeticPathBase<element_type, scalar_type, path_type>::computeDerivatives() { if (s != nullptr) {
for (size_t j_elem = 0; j_elem < num_elements; ++j_elem) { *s = saved_s;
element_type dsdxj_numerator_part1(dsdx[j_elem]); }
element_type dsdxj_numerator_part2(dsdx[j_elem]); if (z != nullptr) {
element_type dzdxj_numerator(dsdx[j_elem]); *z = -1.0 / lambda * log_sum_exp_0;
dsdxj_numerator_part1.reset();
dsdxj_numerator_part2.reset();
dzdxj_numerator.reset();
for (size_t i_frame = 0; i_frame < frame_element_distances.size(); ++i_frame) {
element_type derivative_tmp = -2.0 * lambda * weights[j_elem] * weights[j_elem] * frame_element_distances[i_frame][j_elem];
dsdxj_numerator_part1 += s_numerator_frame[i_frame] * derivative_tmp;
dsdxj_numerator_part2 += s_denominator_frame[i_frame] * derivative_tmp;
dzdxj_numerator += s_denominator_frame[i_frame] * derivative_tmp;
}
dsdxj_numerator_part1 *= denominator_s;
dsdxj_numerator_part2 *= numerator_s;
if ((dsdxj_numerator_part1 - dsdxj_numerator_part2).norm() < std::numeric_limits<scalar_type>::min()) {
dsdx[j_elem] = 0;
} else {
dsdx[j_elem] = (dsdxj_numerator_part1 - dsdxj_numerator_part2) / (denominator_s * denominator_s) * normalization_factor;
}
dzdx[j_elem] = -1.0 / lambda * dzdxj_numerator / denominator_s;
} }
} }
template <typename element_type, typename scalar_type, path_sz path_type> template <typename scalar_type>
void ArithmeticPathBase<element_type, scalar_type, path_type>::reComputeLambda(const vector<scalar_type>& rmsd_between_refs) { void ArithmeticPathBase<scalar_type>::reComputeLambda(const vector<scalar_type>& rmsd_between_refs) {
scalar_type mean_square_displacements = 0.0; scalar_type mean_square_displacements = 0.0;
for (size_t i_frame = 1; i_frame < total_frames; ++i_frame) { for (size_t i_frame = 1; i_frame < total_frames; ++i_frame) {
cvm::log(std::string("Distance between frame ") + cvm::to_str(i_frame) + " and " + cvm::to_str(i_frame + 1) + " is " + cvm::to_str(rmsd_between_refs[i_frame - 1]) + std::string("\n")); cvm::log(std::string("Distance between frame ") + cvm::to_str(i_frame) + " and " + cvm::to_str(i_frame + 1) + " is " + cvm::to_str(rmsd_between_refs[i_frame - 1]) + std::string("\n"));
@ -135,6 +93,45 @@ void ArithmeticPathBase<element_type, scalar_type, path_type>::reComputeLambda(c
mean_square_displacements /= scalar_type(total_frames - 1); mean_square_displacements /= scalar_type(total_frames - 1);
lambda = 1.0 / mean_square_displacements; lambda = 1.0 / mean_square_displacements;
} }
// frame-wise derivatives for frames using optimal rotation
template <typename scalar_type>
template <typename element_type>
void ArithmeticPathBase<scalar_type>::computeDerivatives(
const vector<vector<element_type>>& frame_element_distances,
vector<vector<element_type>> *dsdx,
vector<vector<element_type>> *dzdx)
{
vector<scalar_type> softmax_out, tmps;
softmax_out.reserve(total_frames);
tmps.reserve(total_frames);
for (size_t i_frame = 0; i_frame < total_frames; ++i_frame) {
softmax_out.push_back(exponents[i_frame] / saved_exponent_sum);
tmps.push_back(
(static_cast<scalar_type>(i_frame) -
static_cast<scalar_type>(total_frames - 1) * saved_s) *
normalization_factor);
}
if (dsdx != nullptr) {
for (size_t i_frame = 0; i_frame < total_frames; ++i_frame) {
for (size_t j_elem = 0; j_elem < num_elements; ++j_elem) {
(*dsdx)[i_frame][j_elem] =
-2.0 * squared_weights[j_elem] * lambda *
frame_element_distances[i_frame][j_elem] *
softmax_out[i_frame] * tmps[i_frame];
}
}
}
if (dzdx != nullptr) {
for (size_t i_frame = 0; i_frame < total_frames; ++i_frame) {
for (size_t j_elem = 0; j_elem < num_elements; ++j_elem) {
(*dzdx)[i_frame][j_elem] =
2.0 * squared_weights[j_elem] * softmax_out[i_frame] *
frame_element_distances[i_frame][j_elem];
}
}
}
}
} }
#endif // ARITHMETICPATHCV_H #endif // ARITHMETICPATHCV_H

View File

@ -8,12 +8,13 @@
// Colvars repository at GitHub. // Colvars repository at GitHub.
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include "colvarmodule.h" #include "colvarmodule.h"
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
namespace GeometricPathCV { namespace GeometricPathCV {
@ -171,10 +172,14 @@ void GeometricPathBase<element_type, scalar_type, path_type>::determineClosestFr
sign = -1; sign = -1;
} }
if (cvm::fabs(static_cast<long>(frame_index[0]) - static_cast<long>(frame_index[1])) > 1) { if (cvm::fabs(static_cast<long>(frame_index[0]) - static_cast<long>(frame_index[1])) > 1) {
std::cout << "Warning: Geometrical pathCV relies on the assumption that the second closest frame is the neighbouring frame\n"; std::string message(
std::cout << " Please check your configuration or increase restraint on z(σ)\n"; "Warning: Geometrical pathCV relies on the assumption that the second closest frame is "
"the neighbouring frame\n"
" Please check your configuration or increase restraint on z(σ)\n");
for (size_t i_frame = 0; i_frame < frame_index.size(); ++i_frame) { for (size_t i_frame = 0; i_frame < frame_index.size(); ++i_frame) {
std::cout << "Frame index: " << frame_index[i_frame] << " ; optimal RMSD = " << frame_distances[frame_index[i_frame]] << "\n"; message += "Frame index: " + cvm::to_str(frame_index[i_frame]) +
" ; optimal RMSD = " + cvm::to_str(frame_distances[frame_index[i_frame]]) +
"\n";
} }
} }
min_frame_index_1 = frame_index[0]; // s_m min_frame_index_1 = frame_index[0]; // s_m

View File

@ -10,7 +10,6 @@
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#if (__cplusplus >= 201103L)
#include "colvar_neuralnetworkcompute.h" #include "colvar_neuralnetworkcompute.h"
#include "colvarparse.h" #include "colvarparse.h"
#include "colvarproxy.h" #include "colvarproxy.h"
@ -272,9 +271,12 @@ std::vector<std::vector<double>> neuralNetworkCompute::multiply_matrix(const std
const size_t t = B[0].size(); const size_t t = B[0].size();
std::vector<std::vector<double>> C(m, std::vector<double>(t, 0.0)); std::vector<std::vector<double>> C(m, std::vector<double>(t, 0.0));
for (size_t i = 0; i < m; ++i) { for (size_t i = 0; i < m; ++i) {
for (size_t j = 0; j < t; ++j) { for (size_t k = 0; k < n; ++k) {
for (size_t k = 0; k < n; ++k) { const auto tmp = A[i][k];
C[i][j] += A[i][k] * B[k][j]; auto& C_i = C[i];
auto& B_k = B[k];
for (size_t j = 0; j < t; ++j) {
C_i[j] += tmp * B_k[j];
} }
} }
} }
@ -306,5 +308,3 @@ void neuralNetworkCompute::compute() {
} }
} }
} }
#endif

View File

@ -7,7 +7,6 @@
// If you wish to distribute your changes, please submit them to the // If you wish to distribute your changes, please submit them to the
// Colvars repository at GitHub. // Colvars repository at GitHub.
#if (__cplusplus >= 201103L)
#ifndef NEURALNETWORKCOMPUTE_H #ifndef NEURALNETWORKCOMPUTE_H
#define NEURALNETWORKCOMPUTE_H #define NEURALNETWORKCOMPUTE_H
@ -145,4 +144,3 @@ public:
} }
#endif #endif
#endif

View File

@ -0,0 +1,627 @@
#ifndef COLVAR_ROTATION_DERIVATIVE
#define COLVAR_ROTATION_DERIVATIVE
#include "colvartypes.h"
#include <type_traits>
#include <cstring>
/// \brief Helper function for loading the ia-th atom in the vector pos to x, y and z (C++11 SFINAE is used)
template <typename T, typename std::enable_if<std::is_same<T, cvm::atom_pos>::value, bool>::type = true>
inline void read_atom_coord(
size_t ia, const std::vector<T>& pos,
cvm::real* x, cvm::real* y, cvm::real* z) {
*x = pos[ia].x;
*y = pos[ia].y;
*z = pos[ia].z;
}
template <typename T, typename std::enable_if<std::is_same<T, cvm::atom>::value, bool>::type = true>
inline void read_atom_coord(
size_t ia, const std::vector<T>& pos,
cvm::real* x, cvm::real* y, cvm::real* z) {
*x = pos[ia].pos.x;
*y = pos[ia].pos.y;
*z = pos[ia].pos.z;
}
/// \brief Helper enum class for specifying options in rotation_derivative::prepare_derivative
enum class rotation_derivative_dldq {
/// Require the derivative of the leading eigenvalue with respect to the atom coordinats
use_dl = 1 << 0,
/// Require the derivative of the leading eigenvector with respect to the atom coordinats
use_dq = 1 << 1
};
inline constexpr rotation_derivative_dldq operator|(rotation_derivative_dldq Lhs, rotation_derivative_dldq Rhs) {
return static_cast<rotation_derivative_dldq>(
static_cast<std::underlying_type<rotation_derivative_dldq>::type>(Lhs) |
static_cast<std::underlying_type<rotation_derivative_dldq>::type>(Rhs));
}
inline constexpr bool operator&(rotation_derivative_dldq Lhs, rotation_derivative_dldq Rhs)
{
return (static_cast<std::underlying_type<rotation_derivative_dldq>::type>(Lhs) &
static_cast<std::underlying_type<rotation_derivative_dldq>::type>(Rhs));
}
/// \brief Helper class for calculating the derivative of rotation
template <typename T1, typename T2>
struct rotation_derivative {
static_assert(std::is_same<T1, cvm::atom_pos>::value || std::is_same<T1, cvm::atom>::value,
"class template rotation_derivative only supports cvm::atom_pos or cvm::atom types.");
static_assert(std::is_same<T2, cvm::atom_pos>::value || std::is_same<T2, cvm::atom>::value,
"class template rotation_derivative only supports cvm::atom_pos or cvm::atom types.");
/// \brief Reference to the rotation
const cvm::rotation &m_rot;
/// \brief Reference to the atom positions of group 1
const std::vector<T1> &m_pos1;
/// \brief Reference to the atom positions of group 2
const std::vector<T2> &m_pos2;
/// \brief Temporary variable that will be updated if prepare_derivative called
cvm::real tmp_Q0Q0[4][4];
cvm::real tmp_Q0Q0_L[4][4][4];
/*! @brief Constructor of the cvm::rotation::derivative class
* @param[in] rot The cvm::rotation object (must have called
* `calc_optimal_rotation` before calling
* `calc_derivative_wrt_group1` and
* `calc_derivative_wrt_group2`)
* @param[in] pos1 The atom positions of group 1
* @param[in] pos2 The atom positions of group 2
*/
rotation_derivative(
const cvm::rotation &rot,
const std::vector<T1> &pos1,
const std::vector<T2> &pos2):
m_rot(rot), m_pos1(pos1), m_pos2(pos2) {};
/*! @brief This function must be called before `calc_derivative_wrt_group1`
* and `calc_derivative_wrt_group2` in order to prepare the tmp_Q0Q0
* and tmp_Q0Q0_L.
* @param[in] require_dl_dq Require the calculation of the derivatives of L or/and Q
* with respect to atoms.
*/
void prepare_derivative(rotation_derivative_dldq require_dl_dq) {
if (require_dl_dq & rotation_derivative_dldq::use_dl) {
const auto &Q0 = m_rot.S_eigvec[0];
tmp_Q0Q0[0][0] = Q0[0] * Q0[0];
tmp_Q0Q0[0][1] = Q0[0] * Q0[1];
tmp_Q0Q0[0][2] = Q0[0] * Q0[2];
tmp_Q0Q0[0][3] = Q0[0] * Q0[3];
tmp_Q0Q0[1][0] = Q0[1] * Q0[0];
tmp_Q0Q0[1][1] = Q0[1] * Q0[1];
tmp_Q0Q0[1][2] = Q0[1] * Q0[2];
tmp_Q0Q0[1][3] = Q0[1] * Q0[3];
tmp_Q0Q0[2][0] = Q0[2] * Q0[0];
tmp_Q0Q0[2][1] = Q0[2] * Q0[1];
tmp_Q0Q0[2][2] = Q0[2] * Q0[2];
tmp_Q0Q0[2][3] = Q0[2] * Q0[3];
tmp_Q0Q0[3][0] = Q0[3] * Q0[0];
tmp_Q0Q0[3][1] = Q0[3] * Q0[1];
tmp_Q0Q0[3][2] = Q0[3] * Q0[2];
tmp_Q0Q0[3][3] = Q0[3] * Q0[3];
}
if (require_dl_dq & rotation_derivative_dldq::use_dq) {
const auto &Q0 = m_rot.S_eigvec[0];
const auto &Q1 = m_rot.S_eigvec[1];
const auto &Q2 = m_rot.S_eigvec[2];
const auto &Q3 = m_rot.S_eigvec[3];
cvm::real const L0 = m_rot.S_eigval[0];
cvm::real const L1 = m_rot.S_eigval[1];
cvm::real const L2 = m_rot.S_eigval[2];
cvm::real const L3 = m_rot.S_eigval[3];
tmp_Q0Q0_L[0][0][0] = (Q1[0] * Q0[0]) / (L0-L1) * Q1[0] +
(Q2[0] * Q0[0]) / (L0-L2) * Q2[0] +
(Q3[0] * Q0[0]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][0][0] = (Q1[0] * Q0[0]) / (L0-L1) * Q1[1] +
(Q2[0] * Q0[0]) / (L0-L2) * Q2[1] +
(Q3[0] * Q0[0]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][0][0] = (Q1[0] * Q0[0]) / (L0-L1) * Q1[2] +
(Q2[0] * Q0[0]) / (L0-L2) * Q2[2] +
(Q3[0] * Q0[0]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][0][0] = (Q1[0] * Q0[0]) / (L0-L1) * Q1[3] +
(Q2[0] * Q0[0]) / (L0-L2) * Q2[3] +
(Q3[0] * Q0[0]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][0][1] = (Q1[0] * Q0[1]) / (L0-L1) * Q1[0] +
(Q2[0] * Q0[1]) / (L0-L2) * Q2[0] +
(Q3[0] * Q0[1]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][0][1] = (Q1[0] * Q0[1]) / (L0-L1) * Q1[1] +
(Q2[0] * Q0[1]) / (L0-L2) * Q2[1] +
(Q3[0] * Q0[1]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][0][1] = (Q1[0] * Q0[1]) / (L0-L1) * Q1[2] +
(Q2[0] * Q0[1]) / (L0-L2) * Q2[2] +
(Q3[0] * Q0[1]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][0][1] = (Q1[0] * Q0[1]) / (L0-L1) * Q1[3] +
(Q2[0] * Q0[1]) / (L0-L2) * Q2[3] +
(Q3[0] * Q0[1]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][0][2] = (Q1[0] * Q0[2]) / (L0-L1) * Q1[0] +
(Q2[0] * Q0[2]) / (L0-L2) * Q2[0] +
(Q3[0] * Q0[2]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][0][2] = (Q1[0] * Q0[2]) / (L0-L1) * Q1[1] +
(Q2[0] * Q0[2]) / (L0-L2) * Q2[1] +
(Q3[0] * Q0[2]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][0][2] = (Q1[0] * Q0[2]) / (L0-L1) * Q1[2] +
(Q2[0] * Q0[2]) / (L0-L2) * Q2[2] +
(Q3[0] * Q0[2]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][0][2] = (Q1[0] * Q0[2]) / (L0-L1) * Q1[3] +
(Q2[0] * Q0[2]) / (L0-L2) * Q2[3] +
(Q3[0] * Q0[2]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][0][3] = (Q1[0] * Q0[3]) / (L0-L1) * Q1[0] +
(Q2[0] * Q0[3]) / (L0-L2) * Q2[0] +
(Q3[0] * Q0[3]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][0][3] = (Q1[0] * Q0[3]) / (L0-L1) * Q1[1] +
(Q2[0] * Q0[3]) / (L0-L2) * Q2[1] +
(Q3[0] * Q0[3]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][0][3] = (Q1[0] * Q0[3]) / (L0-L1) * Q1[2] +
(Q2[0] * Q0[3]) / (L0-L2) * Q2[2] +
(Q3[0] * Q0[3]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][0][3] = (Q1[0] * Q0[3]) / (L0-L1) * Q1[3] +
(Q2[0] * Q0[3]) / (L0-L2) * Q2[3] +
(Q3[0] * Q0[3]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][1][0] = (Q1[1] * Q0[0]) / (L0-L1) * Q1[0] +
(Q2[1] * Q0[0]) / (L0-L2) * Q2[0] +
(Q3[1] * Q0[0]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][1][0] = (Q1[1] * Q0[0]) / (L0-L1) * Q1[1] +
(Q2[1] * Q0[0]) / (L0-L2) * Q2[1] +
(Q3[1] * Q0[0]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][1][0] = (Q1[1] * Q0[0]) / (L0-L1) * Q1[2] +
(Q2[1] * Q0[0]) / (L0-L2) * Q2[2] +
(Q3[1] * Q0[0]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][1][0] = (Q1[1] * Q0[0]) / (L0-L1) * Q1[3] +
(Q2[1] * Q0[0]) / (L0-L2) * Q2[3] +
(Q3[1] * Q0[0]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][1][1] = (Q1[1] * Q0[1]) / (L0-L1) * Q1[0] +
(Q2[1] * Q0[1]) / (L0-L2) * Q2[0] +
(Q3[1] * Q0[1]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][1][1] = (Q1[1] * Q0[1]) / (L0-L1) * Q1[1] +
(Q2[1] * Q0[1]) / (L0-L2) * Q2[1] +
(Q3[1] * Q0[1]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][1][1] = (Q1[1] * Q0[1]) / (L0-L1) * Q1[2] +
(Q2[1] * Q0[1]) / (L0-L2) * Q2[2] +
(Q3[1] * Q0[1]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][1][1] = (Q1[1] * Q0[1]) / (L0-L1) * Q1[3] +
(Q2[1] * Q0[1]) / (L0-L2) * Q2[3] +
(Q3[1] * Q0[1]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][1][2] = (Q1[1] * Q0[2]) / (L0-L1) * Q1[0] +
(Q2[1] * Q0[2]) / (L0-L2) * Q2[0] +
(Q3[1] * Q0[2]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][1][2] = (Q1[1] * Q0[2]) / (L0-L1) * Q1[1] +
(Q2[1] * Q0[2]) / (L0-L2) * Q2[1] +
(Q3[1] * Q0[2]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][1][2] = (Q1[1] * Q0[2]) / (L0-L1) * Q1[2] +
(Q2[1] * Q0[2]) / (L0-L2) * Q2[2] +
(Q3[1] * Q0[2]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][1][2] = (Q1[1] * Q0[2]) / (L0-L1) * Q1[3] +
(Q2[1] * Q0[2]) / (L0-L2) * Q2[3] +
(Q3[1] * Q0[2]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][1][3] = (Q1[1] * Q0[3]) / (L0-L1) * Q1[0] +
(Q2[1] * Q0[3]) / (L0-L2) * Q2[0] +
(Q3[1] * Q0[3]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][1][3] = (Q1[1] * Q0[3]) / (L0-L1) * Q1[1] +
(Q2[1] * Q0[3]) / (L0-L2) * Q2[1] +
(Q3[1] * Q0[3]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][1][3] = (Q1[1] * Q0[3]) / (L0-L1) * Q1[2] +
(Q2[1] * Q0[3]) / (L0-L2) * Q2[2] +
(Q3[1] * Q0[3]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][1][3] = (Q1[1] * Q0[3]) / (L0-L1) * Q1[3] +
(Q2[1] * Q0[3]) / (L0-L2) * Q2[3] +
(Q3[1] * Q0[3]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][2][0] = (Q1[2] * Q0[0]) / (L0-L1) * Q1[0] +
(Q2[2] * Q0[0]) / (L0-L2) * Q2[0] +
(Q3[2] * Q0[0]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][2][0] = (Q1[2] * Q0[0]) / (L0-L1) * Q1[1] +
(Q2[2] * Q0[0]) / (L0-L2) * Q2[1] +
(Q3[2] * Q0[0]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][2][0] = (Q1[2] * Q0[0]) / (L0-L1) * Q1[2] +
(Q2[2] * Q0[0]) / (L0-L2) * Q2[2] +
(Q3[2] * Q0[0]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][2][0] = (Q1[2] * Q0[0]) / (L0-L1) * Q1[3] +
(Q2[2] * Q0[0]) / (L0-L2) * Q2[3] +
(Q3[2] * Q0[0]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][2][1] = (Q1[2] * Q0[1]) / (L0-L1) * Q1[0] +
(Q2[2] * Q0[1]) / (L0-L2) * Q2[0] +
(Q3[2] * Q0[1]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][2][1] = (Q1[2] * Q0[1]) / (L0-L1) * Q1[1] +
(Q2[2] * Q0[1]) / (L0-L2) * Q2[1] +
(Q3[2] * Q0[1]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][2][1] = (Q1[2] * Q0[1]) / (L0-L1) * Q1[2] +
(Q2[2] * Q0[1]) / (L0-L2) * Q2[2] +
(Q3[2] * Q0[1]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][2][1] = (Q1[2] * Q0[1]) / (L0-L1) * Q1[3] +
(Q2[2] * Q0[1]) / (L0-L2) * Q2[3] +
(Q3[2] * Q0[1]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][2][2] = (Q1[2] * Q0[2]) / (L0-L1) * Q1[0] +
(Q2[2] * Q0[2]) / (L0-L2) * Q2[0] +
(Q3[2] * Q0[2]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][2][2] = (Q1[2] * Q0[2]) / (L0-L1) * Q1[1] +
(Q2[2] * Q0[2]) / (L0-L2) * Q2[1] +
(Q3[2] * Q0[2]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][2][2] = (Q1[2] * Q0[2]) / (L0-L1) * Q1[2] +
(Q2[2] * Q0[2]) / (L0-L2) * Q2[2] +
(Q3[2] * Q0[2]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][2][2] = (Q1[2] * Q0[2]) / (L0-L1) * Q1[3] +
(Q2[2] * Q0[2]) / (L0-L2) * Q2[3] +
(Q3[2] * Q0[2]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][2][3] = (Q1[2] * Q0[3]) / (L0-L1) * Q1[0] +
(Q2[2] * Q0[3]) / (L0-L2) * Q2[0] +
(Q3[2] * Q0[3]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][2][3] = (Q1[2] * Q0[3]) / (L0-L1) * Q1[1] +
(Q2[2] * Q0[3]) / (L0-L2) * Q2[1] +
(Q3[2] * Q0[3]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][2][3] = (Q1[2] * Q0[3]) / (L0-L1) * Q1[2] +
(Q2[2] * Q0[3]) / (L0-L2) * Q2[2] +
(Q3[2] * Q0[3]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][2][3] = (Q1[2] * Q0[3]) / (L0-L1) * Q1[3] +
(Q2[2] * Q0[3]) / (L0-L2) * Q2[3] +
(Q3[2] * Q0[3]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][3][0] = (Q1[3] * Q0[0]) / (L0-L1) * Q1[0] +
(Q2[3] * Q0[0]) / (L0-L2) * Q2[0] +
(Q3[3] * Q0[0]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][3][0] = (Q1[3] * Q0[0]) / (L0-L1) * Q1[1] +
(Q2[3] * Q0[0]) / (L0-L2) * Q2[1] +
(Q3[3] * Q0[0]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][3][0] = (Q1[3] * Q0[0]) / (L0-L1) * Q1[2] +
(Q2[3] * Q0[0]) / (L0-L2) * Q2[2] +
(Q3[3] * Q0[0]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][3][0] = (Q1[3] * Q0[0]) / (L0-L1) * Q1[3] +
(Q2[3] * Q0[0]) / (L0-L2) * Q2[3] +
(Q3[3] * Q0[0]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][3][1] = (Q1[3] * Q0[1]) / (L0-L1) * Q1[0] +
(Q2[3] * Q0[1]) / (L0-L2) * Q2[0] +
(Q3[3] * Q0[1]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][3][1] = (Q1[3] * Q0[1]) / (L0-L1) * Q1[1] +
(Q2[3] * Q0[1]) / (L0-L2) * Q2[1] +
(Q3[3] * Q0[1]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][3][1] = (Q1[3] * Q0[1]) / (L0-L1) * Q1[2] +
(Q2[3] * Q0[1]) / (L0-L2) * Q2[2] +
(Q3[3] * Q0[1]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][3][1] = (Q1[3] * Q0[1]) / (L0-L1) * Q1[3] +
(Q2[3] * Q0[1]) / (L0-L2) * Q2[3] +
(Q3[3] * Q0[1]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][3][2] = (Q1[3] * Q0[2]) / (L0-L1) * Q1[0] +
(Q2[3] * Q0[2]) / (L0-L2) * Q2[0] +
(Q3[3] * Q0[2]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][3][2] = (Q1[3] * Q0[2]) / (L0-L1) * Q1[1] +
(Q2[3] * Q0[2]) / (L0-L2) * Q2[1] +
(Q3[3] * Q0[2]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][3][2] = (Q1[3] * Q0[2]) / (L0-L1) * Q1[2] +
(Q2[3] * Q0[2]) / (L0-L2) * Q2[2] +
(Q3[3] * Q0[2]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][3][2] = (Q1[3] * Q0[2]) / (L0-L1) * Q1[3] +
(Q2[3] * Q0[2]) / (L0-L2) * Q2[3] +
(Q3[3] * Q0[2]) / (L0-L3) * Q3[3];
tmp_Q0Q0_L[0][3][3] = (Q1[3] * Q0[3]) / (L0-L1) * Q1[0] +
(Q2[3] * Q0[3]) / (L0-L2) * Q2[0] +
(Q3[3] * Q0[3]) / (L0-L3) * Q3[0];
tmp_Q0Q0_L[1][3][3] = (Q1[3] * Q0[3]) / (L0-L1) * Q1[1] +
(Q2[3] * Q0[3]) / (L0-L2) * Q2[1] +
(Q3[3] * Q0[3]) / (L0-L3) * Q3[1];
tmp_Q0Q0_L[2][3][3] = (Q1[3] * Q0[3]) / (L0-L1) * Q1[2] +
(Q2[3] * Q0[3]) / (L0-L2) * Q2[2] +
(Q3[3] * Q0[3]) / (L0-L3) * Q3[2];
tmp_Q0Q0_L[3][3][3] = (Q1[3] * Q0[3]) / (L0-L1) * Q1[3] +
(Q2[3] * Q0[3]) / (L0-L2) * Q2[3] +
(Q3[3] * Q0[3]) / (L0-L3) * Q3[3];
}
}
/*! @brief Actual implementation of the derivative calculation
* @param[in] ds The derivative of matrix S with respect to an atom of
* either group 1 or group 2
* @param[out] dl0_out The output of derivative of L
* @param[out] dq0_out The output of derivative of Q
* @param[out] ds_out The output of derivative of overlap matrix S
*/
void calc_derivative_impl(
const cvm::rvector (&ds)[4][4],
cvm::rvector* const dl0_out,
cvm::vector1d<cvm::rvector>* const dq0_out,
cvm::matrix2d<cvm::rvector>* const ds_out) const {
if (ds_out != nullptr) {
// this code path is for debug_gradients, so not necessary to unroll the loop
*ds_out = cvm::matrix2d<cvm::rvector>(4, 4);
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 4; ++j) {
(*ds_out)[i][j] = ds[i][j];
}
}
}
if (dl0_out != nullptr) {
/* manually loop unrolling of the following loop:
dl0_1.reset();
for (size_t i = 0; i < 4; i++) {
for (size_t j = 0; j < 4; j++) {
dl0_1 += Q0[i] * ds_1[i][j] * Q0[j];
}
}
*/
*dl0_out = tmp_Q0Q0[0][0] * ds[0][0] +
tmp_Q0Q0[0][1] * ds[0][1] +
tmp_Q0Q0[0][2] * ds[0][2] +
tmp_Q0Q0[0][3] * ds[0][3] +
tmp_Q0Q0[1][0] * ds[1][0] +
tmp_Q0Q0[1][1] * ds[1][1] +
tmp_Q0Q0[1][2] * ds[1][2] +
tmp_Q0Q0[1][3] * ds[1][3] +
tmp_Q0Q0[2][0] * ds[2][0] +
tmp_Q0Q0[2][1] * ds[2][1] +
tmp_Q0Q0[2][2] * ds[2][2] +
tmp_Q0Q0[2][3] * ds[2][3] +
tmp_Q0Q0[3][0] * ds[3][0] +
tmp_Q0Q0[3][1] * ds[3][1] +
tmp_Q0Q0[3][2] * ds[3][2] +
tmp_Q0Q0[3][3] * ds[3][3];
}
if (dq0_out != nullptr) {
// we can skip this check if a fixed-size array is used
if (dq0_out->size() != 4) dq0_out->resize(4);
/* manually loop unrolling of the following loop:
dq0_1.reset();
for (size_t p = 0; p < 4; p++) {
for (size_t i = 0; i < 4; i++) {
for (size_t j = 0; j < 4; j++) {
dq0_1[p] +=
(Q1[i] * ds_1[i][j] * Q0[j]) / (L0-L1) * Q1[p] +
(Q2[i] * ds_1[i][j] * Q0[j]) / (L0-L2) * Q2[p] +
(Q3[i] * ds_1[i][j] * Q0[j]) / (L0-L3) * Q3[p];
}
}
}
*/
(*dq0_out)[0] = tmp_Q0Q0_L[0][0][0] * ds[0][0] +
tmp_Q0Q0_L[0][0][1] * ds[0][1] +
tmp_Q0Q0_L[0][0][2] * ds[0][2] +
tmp_Q0Q0_L[0][0][3] * ds[0][3] +
tmp_Q0Q0_L[0][1][0] * ds[1][0] +
tmp_Q0Q0_L[0][1][1] * ds[1][1] +
tmp_Q0Q0_L[0][1][2] * ds[1][2] +
tmp_Q0Q0_L[0][1][3] * ds[1][3] +
tmp_Q0Q0_L[0][2][0] * ds[2][0] +
tmp_Q0Q0_L[0][2][1] * ds[2][1] +
tmp_Q0Q0_L[0][2][2] * ds[2][2] +
tmp_Q0Q0_L[0][2][3] * ds[2][3] +
tmp_Q0Q0_L[0][3][0] * ds[3][0] +
tmp_Q0Q0_L[0][3][1] * ds[3][1] +
tmp_Q0Q0_L[0][3][2] * ds[3][2] +
tmp_Q0Q0_L[0][3][3] * ds[3][3];
(*dq0_out)[1] = tmp_Q0Q0_L[1][0][0] * ds[0][0] +
tmp_Q0Q0_L[1][0][1] * ds[0][1] +
tmp_Q0Q0_L[1][0][2] * ds[0][2] +
tmp_Q0Q0_L[1][0][3] * ds[0][3] +
tmp_Q0Q0_L[1][1][0] * ds[1][0] +
tmp_Q0Q0_L[1][1][1] * ds[1][1] +
tmp_Q0Q0_L[1][1][2] * ds[1][2] +
tmp_Q0Q0_L[1][1][3] * ds[1][3] +
tmp_Q0Q0_L[1][2][0] * ds[2][0] +
tmp_Q0Q0_L[1][2][1] * ds[2][1] +
tmp_Q0Q0_L[1][2][2] * ds[2][2] +
tmp_Q0Q0_L[1][2][3] * ds[2][3] +
tmp_Q0Q0_L[1][3][0] * ds[3][0] +
tmp_Q0Q0_L[1][3][1] * ds[3][1] +
tmp_Q0Q0_L[1][3][2] * ds[3][2] +
tmp_Q0Q0_L[1][3][3] * ds[3][3];
(*dq0_out)[2] = tmp_Q0Q0_L[2][0][0] * ds[0][0] +
tmp_Q0Q0_L[2][0][1] * ds[0][1] +
tmp_Q0Q0_L[2][0][2] * ds[0][2] +
tmp_Q0Q0_L[2][0][3] * ds[0][3] +
tmp_Q0Q0_L[2][1][0] * ds[1][0] +
tmp_Q0Q0_L[2][1][1] * ds[1][1] +
tmp_Q0Q0_L[2][1][2] * ds[1][2] +
tmp_Q0Q0_L[2][1][3] * ds[1][3] +
tmp_Q0Q0_L[2][2][0] * ds[2][0] +
tmp_Q0Q0_L[2][2][1] * ds[2][1] +
tmp_Q0Q0_L[2][2][2] * ds[2][2] +
tmp_Q0Q0_L[2][2][3] * ds[2][3] +
tmp_Q0Q0_L[2][3][0] * ds[3][0] +
tmp_Q0Q0_L[2][3][1] * ds[3][1] +
tmp_Q0Q0_L[2][3][2] * ds[3][2] +
tmp_Q0Q0_L[2][3][3] * ds[3][3];
(*dq0_out)[3] = tmp_Q0Q0_L[3][0][0] * ds[0][0] +
tmp_Q0Q0_L[3][0][1] * ds[0][1] +
tmp_Q0Q0_L[3][0][2] * ds[0][2] +
tmp_Q0Q0_L[3][0][3] * ds[0][3] +
tmp_Q0Q0_L[3][1][0] * ds[1][0] +
tmp_Q0Q0_L[3][1][1] * ds[1][1] +
tmp_Q0Q0_L[3][1][2] * ds[1][2] +
tmp_Q0Q0_L[3][1][3] * ds[1][3] +
tmp_Q0Q0_L[3][2][0] * ds[2][0] +
tmp_Q0Q0_L[3][2][1] * ds[2][1] +
tmp_Q0Q0_L[3][2][2] * ds[2][2] +
tmp_Q0Q0_L[3][2][3] * ds[2][3] +
tmp_Q0Q0_L[3][3][0] * ds[3][0] +
tmp_Q0Q0_L[3][3][1] * ds[3][1] +
tmp_Q0Q0_L[3][3][2] * ds[3][2] +
tmp_Q0Q0_L[3][3][3] * ds[3][3];
}
}
/*! @brief Calculate the derivatives of S, the leading eigenvalue L and
* the leading eigenvector Q with respect to `m_pos1`
* @param[in] ia The index the of atom
* @param[out] dl0_1_out The output of derivative of L with respect to
* ia-th atom of group 1
* @param[out] dq0_1_out The output of derivative of Q with respect to
* ia-th atom of group 1
* @param[out] ds_1_out The output of derivative of overlap matrix S with
* respect to ia-th atom of group 1
*/
void calc_derivative_wrt_group1(
size_t ia, cvm::rvector* const dl0_1_out = nullptr,
cvm::vector1d<cvm::rvector>* const dq0_1_out = nullptr,
cvm::matrix2d<cvm::rvector>* const ds_1_out = nullptr) const {
if (dl0_1_out == nullptr && dq0_1_out == nullptr) return;
cvm::real a2x, a2y, a2z;
// we can get rid of the helper function read_atom_coord if C++17 (constexpr) is available
read_atom_coord(ia, m_pos2, &a2x, &a2y, &a2z);
cvm::rvector ds_1[4][4];
ds_1[0][0].set( a2x, a2y, a2z);
ds_1[1][0].set( 0.0, a2z, -a2y);
ds_1[0][1] = ds_1[1][0];
ds_1[2][0].set(-a2z, 0.0, a2x);
ds_1[0][2] = ds_1[2][0];
ds_1[3][0].set( a2y, -a2x, 0.0);
ds_1[0][3] = ds_1[3][0];
ds_1[1][1].set( a2x, -a2y, -a2z);
ds_1[2][1].set( a2y, a2x, 0.0);
ds_1[1][2] = ds_1[2][1];
ds_1[3][1].set( a2z, 0.0, a2x);
ds_1[1][3] = ds_1[3][1];
ds_1[2][2].set(-a2x, a2y, -a2z);
ds_1[3][2].set( 0.0, a2z, a2y);
ds_1[2][3] = ds_1[3][2];
ds_1[3][3].set(-a2x, -a2y, a2z);
calc_derivative_impl(ds_1, dl0_1_out, dq0_1_out, ds_1_out);
}
/*! @brief Calculate the derivatives of S, the leading eigenvalue L and
* the leading eigenvector Q with respect to `m_pos2`
* @param[in] ia The index the of atom
* @param[out] dl0_2_out The output of derivative of L with respect to
* ia-th atom of group 2
* @param[out] dq0_2_out The output of derivative of Q with respect to
* ia-th atom of group 2
* @param[out] ds_2_out The output of derivative of overlap matrix S with
* respect to ia-th atom of group 2
*/
void calc_derivative_wrt_group2(
size_t ia, cvm::rvector* const dl0_2_out = nullptr,
cvm::vector1d<cvm::rvector>* const dq0_2_out = nullptr,
cvm::matrix2d<cvm::rvector>* const ds_2_out = nullptr) const {
if (dl0_2_out == nullptr && dq0_2_out == nullptr) return;
cvm::real a1x, a1y, a1z;
// we can get rid of the helper function read_atom_coord if C++17 (constexpr) is available
read_atom_coord(ia, m_pos1, &a1x, &a1y, &a1z);
cvm::rvector ds_2[4][4];
ds_2[0][0].set( a1x, a1y, a1z);
ds_2[1][0].set( 0.0, -a1z, a1y);
ds_2[0][1] = ds_2[1][0];
ds_2[2][0].set( a1z, 0.0, -a1x);
ds_2[0][2] = ds_2[2][0];
ds_2[3][0].set(-a1y, a1x, 0.0);
ds_2[0][3] = ds_2[3][0];
ds_2[1][1].set( a1x, -a1y, -a1z);
ds_2[2][1].set( a1y, a1x, 0.0);
ds_2[1][2] = ds_2[2][1];
ds_2[3][1].set( a1z, 0.0, a1x);
ds_2[1][3] = ds_2[3][1];
ds_2[2][2].set(-a1x, a1y, -a1z);
ds_2[3][2].set( 0.0, a1z, a1y);
ds_2[2][3] = ds_2[3][2];
ds_2[3][3].set(-a1x, -a1y, a1z);
calc_derivative_impl(ds_2, dl0_2_out, dq0_2_out, ds_2_out);
}
};
/*! @brief Function for debugging gradients (allow using either
* std::vector<cvm::atom_pos> or std::vector<cvm::atom> for
* pos1 and pos2)
* @param[in] pos1 Atom positions of group 1
* @param[in] pos2 Atom positions of group 2
*/
template<typename T1, typename T2>
void debug_gradients(
cvm::rotation &rot,
const std::vector<T1> &pos1,
const std::vector<T2> &pos2) {
static_assert(std::is_same<T1, cvm::atom_pos>::value || std::is_same<T1, cvm::atom>::value, "");
static_assert(std::is_same<T2, cvm::atom_pos>::value || std::is_same<T2, cvm::atom>::value, "");
// eigenvalues and eigenvectors
cvm::real const L0 = rot.S_eigval[0];
cvm::real const L1 = rot.S_eigval[1];
cvm::real const L2 = rot.S_eigval[2];
cvm::real const L3 = rot.S_eigval[3];
cvm::quaternion const Q0(rot.S_eigvec[0]);
cvm::quaternion const Q1(rot.S_eigvec[1]);
cvm::quaternion const Q2(rot.S_eigvec[2]);
cvm::quaternion const Q3(rot.S_eigvec[3]);
cvm::log("L0 = "+cvm::to_str(L0, cvm::cv_width, cvm::cv_prec)+
", Q0 = "+cvm::to_str(Q0, cvm::cv_width, cvm::cv_prec)+
", Q0*Q0 = "+cvm::to_str(Q0.inner(Q0), cvm::cv_width, cvm::cv_prec)+
"\n");
cvm::log("L1 = "+cvm::to_str(L1, cvm::cv_width, cvm::cv_prec)+
", Q1 = "+cvm::to_str(Q1, cvm::cv_width, cvm::cv_prec)+
", Q0*Q1 = "+cvm::to_str(Q0.inner(Q1), cvm::cv_width, cvm::cv_prec)+
"\n");
cvm::log("L2 = "+cvm::to_str(L2, cvm::cv_width, cvm::cv_prec)+
", Q2 = "+cvm::to_str(Q2, cvm::cv_width, cvm::cv_prec)+
", Q0*Q2 = "+cvm::to_str(Q0.inner(Q2), cvm::cv_width, cvm::cv_prec)+
"\n");
cvm::log("L3 = "+cvm::to_str(L3, cvm::cv_width, cvm::cv_prec)+
", Q3 = "+cvm::to_str(Q3, cvm::cv_width, cvm::cv_prec)+
", Q0*Q3 = "+cvm::to_str(Q0.inner(Q3), cvm::cv_width, cvm::cv_prec)+
"\n");
rotation_derivative<T1, T2> deriv(rot, pos1, pos2);
cvm::rvector dl0_2;
cvm::vector1d<cvm::rvector> dq0_2(4);
cvm::matrix2d<cvm::rvector> ds_2;
#ifdef COLVARS_LAMMPS
MathEigen::Jacobi<cvm::real,
cvm::real[4],
cvm::real[4][4]> *ecalc =
reinterpret_cast<MathEigen::Jacobi<cvm::real,
cvm::real[4],
cvm::real[4][4]> *>(rot.jacobi);
#endif
deriv.prepare_derivative(rotation_derivative_dldq::use_dl | rotation_derivative_dldq::use_dq);
cvm::real S_new[4][4];
cvm::real S_new_eigval[4];
cvm::real S_new_eigvec[4][4];
for (size_t ia = 0; ia < pos2.size(); ++ia) {
// cvm::real const &a1x = pos1[ia].x;
// cvm::real const &a1y = pos1[ia].y;
// cvm::real const &a1z = pos1[ia].z;
deriv.calc_derivative_wrt_group2(ia, &dl0_2, &dq0_2, &ds_2);
// make an infitesimal move along each cartesian coordinate of
// this atom, and solve again the eigenvector problem
for (size_t comp = 0; comp < 3; comp++) {
std::memcpy(S_new, rot.S_backup, sizeof(cvm::real) * 4 * 4);
std::memset(S_new_eigval, 0, sizeof(cvm::real) * 4);
std::memset(S_new_eigvec, 0, sizeof(cvm::real) * 4 * 4);
for (size_t i = 0; i < 4; i++) {
for (size_t j = 0; j < 4; j++) {
S_new[i][j] +=
colvarmodule::debug_gradients_step_size * ds_2[i][j][comp];
}
}
#ifdef COLVARS_LAMMPS
ecalc->Diagonalize(S_new, S_new_eigval, S_new_eigvec);
#else
NR::diagonalize_matrix(S_new, S_new_eigval, S_new_eigvec);
#endif
cvm::real const &L0_new = S_new_eigval[0];
cvm::quaternion const Q0_new(S_new_eigvec[0]);
cvm::real const DL0 = (dl0_2[comp]) * colvarmodule::debug_gradients_step_size;
cvm::quaternion const DQ0(dq0_2[0][comp] * colvarmodule::debug_gradients_step_size,
dq0_2[1][comp] * colvarmodule::debug_gradients_step_size,
dq0_2[2][comp] * colvarmodule::debug_gradients_step_size,
dq0_2[3][comp] * colvarmodule::debug_gradients_step_size);
cvm::log( "|(l_0+dl_0) - l_0^new|/l_0 = "+
cvm::to_str(cvm::fabs(L0+DL0 - L0_new)/L0, cvm::cv_width, cvm::cv_prec)+
", |(q_0+dq_0) - q_0^new| = "+
cvm::to_str((Q0+DQ0 - Q0_new).norm(), cvm::cv_width, cvm::cv_prec)+
"\n");
}
}
}
#endif // COLVAR_ROTATION_DERIVATIVE

View File

@ -13,10 +13,12 @@
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>
#include "colvardeps.h"
#include "colvarmodule.h" #include "colvarmodule.h"
#include "colvarproxy.h" #include "colvarproxy.h"
#include "colvarparse.h" #include "colvarparse.h"
#include "colvaratoms.h" #include "colvaratoms.h"
#include "colvar_rotation_derivative.h"
cvm::atom::atom() cvm::atom::atom()
@ -118,6 +120,11 @@ cvm::atom_group::~atom_group()
fitting_group = NULL; fitting_group = NULL;
} }
if (rot_deriv != nullptr) {
delete rot_deriv;
rot_deriv = nullptr;
}
cvm::main()->unregister_named_atom_group(this); cvm::main()->unregister_named_atom_group(this);
} }
@ -226,6 +233,7 @@ int cvm::atom_group::init()
b_dummy = false; b_dummy = false;
b_user_defined_fit = false; b_user_defined_fit = false;
fitting_group = NULL; fitting_group = NULL;
rot_deriv = nullptr;
noforce = false; noforce = false;
@ -278,7 +286,7 @@ int cvm::atom_group::init_dependencies() {
// Initialize feature_states for each instance // Initialize feature_states for each instance
// default as unavailable, not enabled // default as unavailable, not enabled
feature_states.reserve(f_ag_ntot); feature_states.reserve(f_ag_ntot);
for (i = 0; i < colvardeps::f_ag_ntot; i++) { for (i = feature_states.size(); i < colvardeps::f_ag_ntot; i++) {
feature_states.push_back(feature_state(false, false)); feature_states.push_back(feature_state(false, false));
} }
@ -317,6 +325,13 @@ int cvm::atom_group::setup()
return COLVARS_OK; return COLVARS_OK;
} }
void cvm::atom_group::setup_rotation_derivative() {
if (rot_deriv != nullptr) delete rot_deriv;
rot_deriv = new rotation_derivative<cvm::atom, cvm::atom_pos>(
rot, fitting_group ? fitting_group->atoms : this->atoms, ref_pos
);
}
void cvm::atom_group::update_total_mass() void cvm::atom_group::update_total_mass()
{ {
@ -383,7 +398,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
// } // }
// colvarparse::Parse_Mode mode = parse_normal; // colvarparse::Parse_Mode mode = parse_normal;
int parse_error = COLVARS_OK; int error_code = COLVARS_OK;
// Optional group name will let other groups reuse atom definition // Optional group name will let other groups reuse atom definition
if (get_keyval(group_conf, "name", name)) { if (get_keyval(group_conf, "name", name)) {
@ -433,7 +448,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
cvm::error("Error: cannot find atom group with name " + atoms_of + ".\n"); cvm::error("Error: cannot find atom group with name " + atoms_of + ".\n");
return COLVARS_ERROR; return COLVARS_ERROR;
} }
parse_error |= add_atoms_of_group(ag); error_code |= add_atoms_of_group(ag);
} }
} }
@ -447,7 +462,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
std::string numbers_conf = ""; std::string numbers_conf = "";
size_t pos = 0; size_t pos = 0;
while (key_lookup(group_conf, "atomNumbers", &numbers_conf, &pos)) { while (key_lookup(group_conf, "atomNumbers", &numbers_conf, &pos)) {
parse_error |= add_atom_numbers(numbers_conf); error_code |= add_atom_numbers(numbers_conf);
numbers_conf = ""; numbers_conf = "";
} }
} }
@ -456,7 +471,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
std::string index_group_name; std::string index_group_name;
if (get_keyval(group_conf, "indexGroup", index_group_name)) { if (get_keyval(group_conf, "indexGroup", index_group_name)) {
// use an index group from the index file read globally // use an index group from the index file read globally
parse_error |= add_index_group(index_group_name); error_code |= add_index_group(index_group_name);
} }
} }
@ -465,7 +480,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
size_t pos = 0; size_t pos = 0;
while (key_lookup(group_conf, "atomNumbersRange", while (key_lookup(group_conf, "atomNumbersRange",
&range_conf, &pos)) { &range_conf, &pos)) {
parse_error |= add_atom_numbers_range(range_conf); error_code |= add_atom_numbers_range(range_conf);
range_conf = ""; range_conf = "";
} }
} }
@ -492,7 +507,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
cvm::error("Error: more instances of \"atomNameResidueRange\" than " cvm::error("Error: more instances of \"atomNameResidueRange\" than "
"values of \"psfSegID\".\n", COLVARS_INPUT_ERROR); "values of \"psfSegID\".\n", COLVARS_INPUT_ERROR);
} else { } else {
parse_error |= add_atom_name_residue_range(psf_segids.size() ? error_code |= add_atom_name_residue_range(psf_segids.size() ?
*psii : std::string(""), range_conf); *psii : std::string(""), range_conf);
if (psf_segids.size()) psii++; if (psf_segids.size()) psii++;
} }
@ -517,26 +532,26 @@ int cvm::atom_group::parse(std::string const &group_conf)
cvm::error("Error: atomsColValue, if provided, must be non-zero.\n", COLVARS_INPUT_ERROR); cvm::error("Error: atomsColValue, if provided, must be non-zero.\n", COLVARS_INPUT_ERROR);
} }
// NOTE: calls to add_atom() and/or add_atom_id() are in the proxy-implemented function error_code |= cvm::main()->proxy->load_atoms_pdb(atoms_file_name.c_str(), *this, atoms_col,
parse_error |= cvm::load_atoms(atoms_file_name.c_str(), *this, atoms_col, atoms_col_value); atoms_col_value);
} }
} }
// Catch any errors from all the initialization steps above // Catch any errors from all the initialization steps above
if (parse_error || cvm::get_error()) return (parse_error || cvm::get_error()); if (error_code || cvm::get_error()) return (error_code || cvm::get_error());
// checks of doubly-counted atoms have been handled by add_atom() already // checks of doubly-counted atoms have been handled by add_atom() already
if (get_keyval(group_conf, "dummyAtom", dummy_atom_pos, cvm::atom_pos())) { if (get_keyval(group_conf, "dummyAtom", dummy_atom_pos, cvm::atom_pos())) {
parse_error |= set_dummy(); error_code |= set_dummy();
parse_error |= set_dummy_pos(dummy_atom_pos); error_code |= set_dummy_pos(dummy_atom_pos);
} else { } else {
if (!(atoms_ids.size())) { if (!(atoms_ids.size())) {
parse_error |= cvm::error("Error: no atoms defined for atom group \""+ error_code |= cvm::error("Error: no atoms defined for atom group \"" + key + "\".\n",
key+"\".\n", COLVARS_INPUT_ERROR); COLVARS_INPUT_ERROR);
} }
// whether these atoms will ever receive forces or not // whether these atoms will ever receive forces or not
@ -546,7 +561,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
} }
// Now that atoms are defined we can parse the detailed fitting options // Now that atoms are defined we can parse the detailed fitting options
parse_error |= parse_fitting_options(group_conf); error_code |= parse_fitting_options(group_conf);
if (is_enabled(f_ag_scalable) && !b_dummy) { if (is_enabled(f_ag_scalable) && !b_dummy) {
cvm::log("Enabling scalable calculation for group \""+this->key+"\".\n"); cvm::log("Enabling scalable calculation for group \""+this->key+"\".\n");
@ -583,7 +598,9 @@ int cvm::atom_group::parse(std::string const &group_conf)
cvm::log(print_atom_ids()); cvm::log(print_atom_ids());
} }
return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); if (is_enabled(f_ag_rotate)) setup_rotation_derivative();
return error_code;
} }
@ -883,8 +900,6 @@ int cvm::atom_group::parse_fitting_options(std::string const &group_conf)
"to its radius of gyration), the optimal rotation and its gradients may become discontinuous. " "to its radius of gyration), the optimal rotation and its gradients may become discontinuous. "
"If that happens, use fittingGroup (or a different definition for it if already defined) " "If that happens, use fittingGroup (or a different definition for it if already defined) "
"to align the coordinates.\n"); "to align the coordinates.\n");
// initialize rot member data
rot.request_group1_gradients(group_for_fit->size());
} }
} }
@ -912,7 +927,6 @@ void cvm::atom_group::do_feature_side_effects(int id)
if (is_enabled(f_ag_center) || is_enabled(f_ag_rotate)) { if (is_enabled(f_ag_center) || is_enabled(f_ag_rotate)) {
atom_group *group_for_fit = fitting_group ? fitting_group : this; atom_group *group_for_fit = fitting_group ? fitting_group : this;
group_for_fit->fit_gradients.assign(group_for_fit->size(), cvm::atom_pos(0.0, 0.0, 0.0)); group_for_fit->fit_gradients.assign(group_for_fit->size(), cvm::atom_pos(0.0, 0.0, 0.0));
rot.request_group1_gradients(group_for_fit->size());
} }
break; break;
} }
@ -1045,17 +1059,18 @@ void cvm::atom_group::calc_apply_roto_translation()
// rotate the group (around the center of geometry if f_ag_center is // rotate the group (around the center of geometry if f_ag_center is
// enabled, around the origin otherwise) // enabled, around the origin otherwise)
rot.calc_optimal_rotation(fitting_group ? rot.calc_optimal_rotation(fitting_group ?
fitting_group->positions() : fitting_group->atoms:
this->positions(), this->atoms,
ref_pos); ref_pos);
const auto rot_mat = rot.matrix();
cvm::atom_iter ai; cvm::atom_iter ai;
for (ai = this->begin(); ai != this->end(); ai++) { for (ai = this->begin(); ai != this->end(); ai++) {
ai->pos = rot.rotate(ai->pos); ai->pos = rot_mat * ai->pos;
} }
if (fitting_group) { if (fitting_group) {
for (ai = fitting_group->begin(); ai != fitting_group->end(); ai++) { for (ai = fitting_group->begin(); ai != fitting_group->end(); ai++) {
ai->pos = rot.rotate(ai->pos); ai->pos = rot_mat * ai->pos;
} }
} }
} }
@ -1095,9 +1110,10 @@ void cvm::atom_group::read_velocities()
if (is_enabled(f_ag_rotate)) { if (is_enabled(f_ag_rotate)) {
const auto rot_mat = rot.matrix();
for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) {
ai->read_velocity(); ai->read_velocity();
ai->vel = rot.rotate(ai->vel); ai->vel = rot_mat * ai->vel;
} }
} else { } else {
@ -1116,9 +1132,10 @@ void cvm::atom_group::read_total_forces()
if (is_enabled(f_ag_rotate)) { if (is_enabled(f_ag_rotate)) {
const auto rot_mat = rot.matrix();
for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) {
ai->read_total_force(); ai->read_total_force();
ai->total_force = rot.rotate(ai->total_force); ai->total_force = rot_mat * ai->total_force;
} }
} else { } else {
@ -1200,52 +1217,71 @@ void cvm::atom_group::calc_fit_gradients()
if (cvm::debug()) if (cvm::debug())
cvm::log("Calculating fit gradients.\n"); cvm::log("Calculating fit gradients.\n");
cvm::atom_group *group_for_fit = fitting_group ? fitting_group : this; if (is_enabled(f_ag_center) && is_enabled(f_ag_rotate))
calc_fit_gradients_impl<true, true>();
if (is_enabled(f_ag_center)) { if (is_enabled(f_ag_center) && !is_enabled(f_ag_rotate))
// add the center of geometry contribution to the gradients calc_fit_gradients_impl<true, false>();
cvm::rvector atom_grad; if (!is_enabled(f_ag_center) && is_enabled(f_ag_rotate))
calc_fit_gradients_impl<false, true>();
for (size_t i = 0; i < this->size(); i++) { if (!is_enabled(f_ag_center) && !is_enabled(f_ag_rotate))
atom_grad += atoms[i].grad; calc_fit_gradients_impl<false, false>();
}
if (is_enabled(f_ag_rotate)) atom_grad = (rot.inverse()).rotate(atom_grad);
atom_grad *= (-1.0)/(cvm::real(group_for_fit->size()));
for (size_t j = 0; j < group_for_fit->size(); j++) {
group_for_fit->fit_gradients[j] = atom_grad;
}
}
if (is_enabled(f_ag_rotate)) {
// add the rotation matrix contribution to the gradients
cvm::rotation const rot_inv = rot.inverse();
for (size_t i = 0; i < this->size(); i++) {
// compute centered, unrotated position
cvm::atom_pos const pos_orig =
rot_inv.rotate((is_enabled(f_ag_center) ? (atoms[i].pos - ref_pos_cog) : (atoms[i].pos)));
// calculate \partial(R(q) \vec{x}_i)/\partial q) \cdot \partial\xi/\partial\vec{x}_i
cvm::quaternion const dxdq =
rot.q.position_derivative_inner(pos_orig, atoms[i].grad);
for (size_t j = 0; j < group_for_fit->size(); j++) {
// multiply by {\partial q}/\partial\vec{x}_j and add it to the fit gradients
for (size_t iq = 0; iq < 4; iq++) {
group_for_fit->fit_gradients[j] += dxdq[iq] * rot.dQ0_1[j][iq];
}
}
}
}
if (cvm::debug()) if (cvm::debug())
cvm::log("Done calculating fit gradients.\n"); cvm::log("Done calculating fit gradients.\n");
} }
template <bool B_ag_center, bool B_ag_rotate>
void cvm::atom_group::calc_fit_gradients_impl() {
cvm::atom_group *group_for_fit = fitting_group ? fitting_group : this;
// the center of geometry contribution to the gradients
cvm::rvector atom_grad;
// the rotation matrix contribution to the gradients
const auto rot_inv = rot.inverse().matrix();
// temporary variables for computing and summing derivatives
cvm::real sum_dxdq[4] = {0, 0, 0, 0};
cvm::vector1d<cvm::rvector> dq0_1(4);
// loop 1: iterate over the current atom group
for (size_t i = 0; i < size(); i++) {
cvm::atom_pos pos_orig;
if (B_ag_center) {
atom_grad += atoms[i].grad;
if (B_ag_rotate) pos_orig = rot_inv * (atoms[i].pos - ref_pos_cog);
} else {
if (B_ag_rotate) pos_orig = atoms[i].pos;
}
if (B_ag_rotate) {
// calculate \partial(R(q) \vec{x}_i)/\partial q) \cdot \partial\xi/\partial\vec{x}_i
cvm::quaternion const dxdq =
rot.q.position_derivative_inner(pos_orig, atoms[i].grad);
sum_dxdq[0] += dxdq[0];
sum_dxdq[1] += dxdq[1];
sum_dxdq[2] += dxdq[2];
sum_dxdq[3] += dxdq[3];
}
}
if (B_ag_center) {
if (B_ag_rotate) atom_grad = rot.inverse().matrix() * atom_grad;
atom_grad *= (-1.0)/(cvm::real(group_for_fit->size()));
}
// loop 2: iterate over the fitting group
if (B_ag_rotate) rot_deriv->prepare_derivative(rotation_derivative_dldq::use_dq);
for (size_t j = 0; j < group_for_fit->size(); j++) {
if (B_ag_center) {
group_for_fit->fit_gradients[j] = atom_grad;
}
if (B_ag_rotate) {
rot_deriv->calc_derivative_wrt_group1(j, nullptr, &dq0_1);
// multiply by {\partial q}/\partial\vec{x}_j and add it to the fit gradients
group_for_fit->fit_gradients[j] += sum_dxdq[0] * dq0_1[0] +
sum_dxdq[1] * dq0_1[1] +
sum_dxdq[2] * dq0_1[2] +
sum_dxdq[3] * dq0_1[3];
}
}
}
std::vector<cvm::atom_pos> cvm::atom_group::positions() const std::vector<cvm::atom_pos> cvm::atom_group::positions() const
{ {
if (b_dummy) { if (b_dummy) {
@ -1373,9 +1409,9 @@ void cvm::atom_group::apply_colvar_force(cvm::real const &force)
if (is_enabled(f_ag_rotate)) { if (is_enabled(f_ag_rotate)) {
// rotate forces back to the original frame // rotate forces back to the original frame
cvm::rotation const rot_inv = rot.inverse(); const auto rot_inv = rot.inverse().matrix();
for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) {
ai->apply_force(rot_inv.rotate(force * ai->grad)); ai->apply_force(rot_inv * (force * ai->grad));
} }
} else { } else {
@ -1418,9 +1454,9 @@ void cvm::atom_group::apply_force(cvm::rvector const &force)
if (is_enabled(f_ag_rotate)) { if (is_enabled(f_ag_rotate)) {
cvm::rotation const rot_inv = rot.inverse(); const auto rot_inv = rot.inverse().matrix();
for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) {
ai->apply_force(rot_inv.rotate((ai->mass/total_mass) * force)); ai->apply_force(rot_inv * ((ai->mass/total_mass) * force));
} }
} else { } else {

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