Merge remote-tracking branch 'official/fix-pair-dump-skip' into feature/pace-al
This commit is contained in:
@ -154,6 +154,19 @@ endif()
|
||||
########################################################################
|
||||
# User input options #
|
||||
########################################################################
|
||||
# set path to python interpreter and thus enforcing python version if
|
||||
# when in a virtual environment and PYTHON_EXECUTABLE is not set on command line
|
||||
if(DEFINED ENV{VIRTUAL_ENV} AND NOT PYTHON_EXECUTABLE)
|
||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(PYTHON_EXECUTABLE "$ENV{VIRTUAL_ENV}/Scripts/python.exe")
|
||||
else()
|
||||
set(PYTHON_EXECUTABLE "$ENV{VIRTUAL_ENV}/bin/python")
|
||||
endif()
|
||||
set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}")
|
||||
message(STATUS "Running in virtual environment: $ENV{VIRTUAL_ENV}\n"
|
||||
" Setting Python interpreter to: ${PYTHON_EXECUTABLE}")
|
||||
endif()
|
||||
|
||||
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically")
|
||||
mark_as_advanced(LAMMPS_MACHINE)
|
||||
if(LAMMPS_MACHINE)
|
||||
@ -194,6 +207,7 @@ option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
|
||||
|
||||
set(STANDARD_PACKAGES
|
||||
ADIOS
|
||||
AMOEBA
|
||||
ASPHERE
|
||||
ATC
|
||||
AWPMD
|
||||
@ -202,7 +216,7 @@ set(STANDARD_PACKAGES
|
||||
BPM
|
||||
BROWNIAN
|
||||
CG-DNA
|
||||
CG-SDK
|
||||
CG-SPICA
|
||||
CLASS2
|
||||
COLLOID
|
||||
COLVARS
|
||||
@ -358,6 +372,7 @@ pkg_depends(MPIIO MPI)
|
||||
pkg_depends(ATC MANYBODY)
|
||||
pkg_depends(LATBOLTZ MPI)
|
||||
pkg_depends(SCAFACOS MPI)
|
||||
pkg_depends(AMOEBA KSPACE)
|
||||
pkg_depends(DIELECTRIC KSPACE)
|
||||
pkg_depends(DIELECTRIC EXTRA-PAIR)
|
||||
pkg_depends(CG-DNA MOLECULE)
|
||||
@ -402,9 +417,11 @@ endif()
|
||||
|
||||
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_LATTE OR PKG_ELECTRODE)
|
||||
enable_language(C)
|
||||
if (NOT USE_INTERNAL_LINALG)
|
||||
find_package(LAPACK)
|
||||
find_package(BLAS)
|
||||
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
|
||||
endif()
|
||||
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND OR USE_INTERNAL_LINALG)
|
||||
include(CheckGeneratorSupport)
|
||||
if(NOT CMAKE_GENERATOR_SUPPORT_FORTRAN)
|
||||
status(FATAL_ERROR "Cannot build internal linear algebra library as CMake build tool lacks Fortran support")
|
||||
@ -633,7 +650,7 @@ endif()
|
||||
# packages which selectively include variants based on enabled styles
|
||||
# e.g. accelerator packages
|
||||
######################################################################
|
||||
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
|
||||
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
|
||||
if(PKG_${PKG_WITH_INCL})
|
||||
include(Packages/${PKG_WITH_INCL})
|
||||
endif()
|
||||
@ -783,6 +800,10 @@ if(BUILD_SHARED_LIBS)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
else()
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
endif()
|
||||
if(BUILD_IS_MULTI_CONFIG)
|
||||
@ -815,11 +836,17 @@ endif()
|
||||
###############################################################################
|
||||
if(BUILD_SHARED_LIBS OR PKG_PYTHON)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
# adjust so we find Python 3 versions before Python 2 on old systems with old CMake
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
else()
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
endif()
|
||||
if(Python_EXECUTABLE)
|
||||
|
||||
@ -23,8 +23,9 @@ if(DOWNLOAD_LATTE)
|
||||
# CMake cannot pass BLAS or LAPACK library variable to external project if they are a list
|
||||
list(LENGTH BLAS_LIBRARIES} NUM_BLAS)
|
||||
list(LENGTH LAPACK_LIBRARIES NUM_LAPACK)
|
||||
if((NUM_BLAS GREATER 1) OR (NUM_LAPACK GREATER 1))
|
||||
message(FATAL_ERROR "Cannot compile downloaded LATTE library due to a technical limitation")
|
||||
if((NUM_BLAS GREATER 1) OR (NUM_LAPACK GREATER 1) AND NOT USE_INTERNAL_LINALG)
|
||||
message(FATAL_ERROR "Cannot compile downloaded LATTE library due to a technical limitation. "
|
||||
"Try to configure LAMMPS with '-D USE_INTERNAL_LINALG=on' added as a workaround.")
|
||||
endif()
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
@ -26,8 +26,21 @@ if(DOWNLOAD_MDI)
|
||||
# detect if we have python development support and thus can enable python plugins
|
||||
set(MDI_USE_PYTHON_PLUGINS OFF)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
if(NOT PYTHON_VERSION_STRING)
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
# search for interpreter first, so we have a consistent library
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
endif()
|
||||
# search for the library matching the selected interpreter
|
||||
set(Python_ADDITIONAL_VERSIONS ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||
find_package(PythonLibs QUIET) # Deprecated since version 3.12
|
||||
if(PYTHONLIBS_FOUND)
|
||||
if(NOT (PYTHON_VERSION_STRING STREQUAL PYTHONLIBS_VERSION_STRING))
|
||||
message(FATAL_ERROR "Python Library version ${PYTHONLIBS_VERSION_STRING} does not match Interpreter version ${PYTHON_VERSION_STRING}")
|
||||
endif()
|
||||
set(MDI_USE_PYTHON_PLUGINS ON)
|
||||
endif()
|
||||
else()
|
||||
|
||||
13
cmake/Modules/Packages/MISC.cmake
Normal file
13
cmake/Modules/Packages/MISC.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
# pair style and fix srp/react depend on the fixes bond/break and bond/create from the MC package
|
||||
if(NOT PKG_MC)
|
||||
get_property(LAMMPS_FIX_HEADERS GLOBAL PROPERTY FIX)
|
||||
list(REMOVE_ITEM LAMMPS_FIX_HEADERS ${LAMMPS_SOURCE_DIR}/MISC/fix_srp_react.h)
|
||||
set_property(GLOBAL PROPERTY FIX "${LAMMPS_FIX_HEADERS}")
|
||||
get_property(LAMMPS_PAIR_HEADERS GLOBAL PROPERTY PAIR)
|
||||
list(REMOVE_ITEM LAMMPS_PAIR_HEADERS ${LAMMPS_SOURCE_DIR}/MISC/pair_srp_react.h)
|
||||
set_property(GLOBAL PROPERTY PAIR "${LAMMPS_PAIR_HEADERS}")
|
||||
get_target_property(LAMMPS_SOURCES lammps SOURCES)
|
||||
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/MISC/fix_srp_react.cpp)
|
||||
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/MISC/pair_srp_react.cpp)
|
||||
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
|
||||
endif()
|
||||
@ -1,8 +1,28 @@
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
if(NOT PYTHON_VERSION_STRING)
|
||||
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
|
||||
# search for interpreter first, so we have a consistent library
|
||||
find_package(PythonInterp) # Deprecated since version 3.12
|
||||
if(PYTHONINTERP_FOUND)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
endif()
|
||||
# search for the library matching the selected interpreter
|
||||
set(Python_ADDITIONAL_VERSIONS ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||
find_package(PythonLibs REQUIRED) # Deprecated since version 3.12
|
||||
if(NOT (PYTHON_VERSION_STRING STREQUAL PYTHONLIBS_VERSION_STRING))
|
||||
message(FATAL_ERROR "Python Library version ${PYTHONLIBS_VERSION_STRING} does not match Interpreter version ${PYTHON_VERSION_STRING}")
|
||||
endif()
|
||||
target_include_directories(lammps PRIVATE ${PYTHON_INCLUDE_DIRS})
|
||||
target_link_libraries(lammps PRIVATE ${PYTHON_LIBRARIES})
|
||||
else()
|
||||
if(NOT Python_INTERPRETER)
|
||||
# backward compatibility
|
||||
if(PYTHON_EXECUTABLE)
|
||||
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
endif()
|
||||
find_package(Python COMPONENTS Interpreter)
|
||||
endif()
|
||||
find_package(Python REQUIRED COMPONENTS Interpreter Development)
|
||||
target_link_libraries(lammps PRIVATE Python::Python)
|
||||
endif()
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
set(ALL_PACKAGES
|
||||
ADIOS
|
||||
AMOEBA
|
||||
ASPHERE
|
||||
ATC
|
||||
AWPMD
|
||||
@ -11,7 +12,7 @@ set(ALL_PACKAGES
|
||||
BPM
|
||||
BROWNIAN
|
||||
CG-DNA
|
||||
CG-SDK
|
||||
CG-SPICA
|
||||
CLASS2
|
||||
COLLOID
|
||||
COLVARS
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
|
||||
set(ALL_PACKAGES
|
||||
ADIOS
|
||||
AMOEBA
|
||||
ASPHERE
|
||||
ATC
|
||||
AWPMD
|
||||
@ -13,7 +14,7 @@ set(ALL_PACKAGES
|
||||
BPM
|
||||
BROWNIAN
|
||||
CG-DNA
|
||||
CG-SDK
|
||||
CG-SPICA
|
||||
CLASS2
|
||||
COLLOID
|
||||
COLVARS
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
set(WIN_PACKAGES
|
||||
AMOEBA
|
||||
ASPHERE
|
||||
ATC
|
||||
AWPMD
|
||||
@ -7,7 +8,7 @@ set(WIN_PACKAGES
|
||||
BPM
|
||||
BROWNIAN
|
||||
CG-DNA
|
||||
CG-SDK
|
||||
CG-SPICA
|
||||
CLASS2
|
||||
COLLOID
|
||||
COLVARS
|
||||
|
||||
@ -3,13 +3,14 @@
|
||||
# are removed. The resulting binary should be able to run most inputs.
|
||||
|
||||
set(ALL_PACKAGES
|
||||
AMOEBA
|
||||
ASPHERE
|
||||
BOCS
|
||||
BODY
|
||||
BPM
|
||||
BROWNIAN
|
||||
CG-DNA
|
||||
CG-SDK
|
||||
CG-SPICA
|
||||
CLASS2
|
||||
COLLOID
|
||||
COLVARS
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
set(WIN_PACKAGES
|
||||
AMOEBA
|
||||
ASPHERE
|
||||
BOCS
|
||||
BODY
|
||||
BPM
|
||||
BROWNIAN
|
||||
CG-DNA
|
||||
CG-SDK
|
||||
CG-SPICA
|
||||
CLASS2
|
||||
COLLOID
|
||||
COLVARS
|
||||
|
||||
@ -790,6 +790,8 @@ library.
|
||||
|
||||
-D DOWNLOAD_LATTE=value # download LATTE for build, value = no (default) or yes
|
||||
-D LATTE_LIBRARY=path # LATTE library file (only needed if a custom location)
|
||||
-D USE_INTERNAL_LINALG=value # Use the internal linear algebra library instead of LAPACK
|
||||
# value = no (default) or yes
|
||||
|
||||
If ``DOWNLOAD_LATTE`` is set, the LATTE library will be downloaded
|
||||
and built inside the CMake build directory. If the LATTE library
|
||||
@ -797,6 +799,13 @@ library.
|
||||
``LATTE_LIBRARY`` is the filename (plus path) of the LATTE library
|
||||
file, not the directory the library file is in.
|
||||
|
||||
The LATTE library requires LAPACK (and BLAS) and CMake can identify
|
||||
their locations and pass that info to the LATTE build script. But
|
||||
on some systems this triggers a (current) limitation of CMake and
|
||||
the configuration will fail. Try enabling ``USE_INTERNAL_LINALG`` in
|
||||
those cases to use the bundled linear algebra library and work around
|
||||
the limitation.
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
You can download and build the LATTE library manually if you
|
||||
@ -1913,14 +1922,25 @@ within CMake will download the non-commercial use version.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
-D DOWNLOAD_QUIP=value # download OpenKIM API v2 for build, value = no (default) or yes
|
||||
-D DOWNLOAD_QUIP=value # download QUIP library for build, value = no (default) or yes
|
||||
-D QUIP_LIBRARY=path # path to libquip.a (only needed if a custom location)
|
||||
-D USE_INTERNAL_LINALG=value # Use the internal linear algebra library instead of LAPACK
|
||||
# value = no (default) or yes
|
||||
|
||||
CMake will try to download and build the QUIP library from GitHub, if it is not
|
||||
found on the local machine. This requires to have git installed. It will use the same compilers
|
||||
and flags as used for compiling LAMMPS. Currently this is only supported for the GNU and the
|
||||
Intel compilers. Set the ``QUIP_LIBRARY`` variable if you want to use a previously compiled
|
||||
and installed QUIP library and CMake cannot find it.
|
||||
CMake will try to download and build the QUIP library from GitHub,
|
||||
if it is not found on the local machine. This requires to have git
|
||||
installed. It will use the same compilers and flags as used for
|
||||
compiling LAMMPS. Currently this is only supported for the GNU
|
||||
and the Intel compilers. Set the ``QUIP_LIBRARY`` variable if you
|
||||
want to use a previously compiled and installed QUIP library and
|
||||
CMake cannot find it.
|
||||
|
||||
The QUIP library requires LAPACK (and BLAS) and CMake can identify
|
||||
their locations and pass that info to the QUIP build script. But
|
||||
on some systems this triggers a (current) limitation of CMake and
|
||||
the configuration will fail. Try enabling ``USE_INTERNAL_LINALG`` in
|
||||
those cases to use the bundled linear algebra library and work around
|
||||
the limitation.
|
||||
|
||||
.. tab:: Traditional make
|
||||
|
||||
|
||||
@ -48,18 +48,15 @@ Build using GNU make
|
||||
|
||||
The LAMMPS manual is written in `reStructuredText <rst_>`_ format which
|
||||
can be translated to different output format using the `Sphinx
|
||||
<sphinx_>`_ document generator tool. It also incorporates programmer
|
||||
documentation extracted from the LAMMPS C++ sources through the `Doxygen
|
||||
<https://doxygen.nl>`_ program. Currently the translation to HTML, PDF
|
||||
(via LaTeX), ePUB (for many e-book readers) and MOBI (for Amazon Kindle
|
||||
readers) are supported. For that to work a Python 3 interpreter, the
|
||||
``doxygen`` tools and internet access to download additional files and
|
||||
tools are required. This download is usually only required once or
|
||||
after the documentation folder is returned to a pristine state with
|
||||
``make clean-all``.
|
||||
|
||||
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
|
||||
.. _sphinx: https://www.sphinx-doc.org
|
||||
<https://sphinx-doc.org>`_ document generator tool. It also
|
||||
incorporates programmer documentation extracted from the LAMMPS C++
|
||||
sources through the `Doxygen <https://doxygen.nl>`_ program. Currently
|
||||
the translation to HTML, PDF (via LaTeX), ePUB (for many e-book readers)
|
||||
and MOBI (for Amazon Kindle readers) are supported. For that to work a
|
||||
Python 3 interpreter, the ``doxygen`` tools and internet access to
|
||||
download additional files and tools are required. This download is
|
||||
usually only required once or after the documentation folder is returned
|
||||
to a pristine state with ``make clean-all``.
|
||||
|
||||
For the documentation build a python virtual environment is set up in
|
||||
the folder ``doc/docenv`` and various python packages are installed into
|
||||
@ -252,6 +249,5 @@ manual with ``make spelling``. This requires `a library called enchant
|
||||
positives* (e.g. keywords, names, abbreviations) those can be added to
|
||||
the file ``lammps/doc/utils/sphinx-config/false_positives.txt``.
|
||||
|
||||
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
|
||||
|
||||
.. _lws: https://www.lammps.org
|
||||
.. _rst: https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
|
||||
|
||||
@ -21,6 +21,7 @@ commands in it are used to define a LAMMPS simulation.
|
||||
Commands_pair
|
||||
Commands_bond
|
||||
Commands_kspace
|
||||
Commands_dump
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
@ -10,11 +10,14 @@
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
General commands
|
||||
================
|
||||
|
||||
An alphabetic list of general LAMMPS commands.
|
||||
An alphabetic list of general LAMMPS commands. Note that style
|
||||
commands with many variants, can be more easily accessed via the small
|
||||
table above.
|
||||
|
||||
.. table_from_list::
|
||||
:columns: 5
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
.. _bond:
|
||||
|
||||
@ -74,6 +75,7 @@ OPT.
|
||||
*
|
||||
*
|
||||
*
|
||||
* :doc:`amoeba <angle_amoeba>`
|
||||
* :doc:`charmm (iko) <angle_charmm>`
|
||||
* :doc:`class2 (ko) <angle_class2>`
|
||||
* :doc:`class2/p6 <angle_class2>`
|
||||
@ -92,7 +94,7 @@ OPT.
|
||||
* :doc:`harmonic (iko) <angle_harmonic>`
|
||||
* :doc:`mm3 <angle_mm3>`
|
||||
* :doc:`quartic (o) <angle_quartic>`
|
||||
* :doc:`sdk (o) <angle_sdk>`
|
||||
* :doc:`spica (o) <angle_spica>`
|
||||
* :doc:`table (o) <angle_table>`
|
||||
|
||||
.. _dihedral:
|
||||
@ -152,6 +154,7 @@ OPT.
|
||||
*
|
||||
*
|
||||
*
|
||||
* :doc:`amoeba <improper_amoeba>`
|
||||
* :doc:`class2 (ko) <improper_class2>`
|
||||
* :doc:`cossq (o) <improper_cossq>`
|
||||
* :doc:`cvff (io) <improper_cvff>`
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
Compute commands
|
||||
================
|
||||
|
||||
56
doc/src/Commands_dump.rst
Normal file
56
doc/src/Commands_dump.rst
Normal file
@ -0,0 +1,56 @@
|
||||
.. table_from_list::
|
||||
:columns: 3
|
||||
|
||||
* :doc:`General commands <Commands_all>`
|
||||
* :doc:`Fix styles <Commands_fix>`
|
||||
* :doc:`Compute styles <Commands_compute>`
|
||||
* :doc:`Pair styles <Commands_pair>`
|
||||
* :ref:`Bond styles <bond>`
|
||||
* :ref:`Angle styles <angle>`
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
Dump commands
|
||||
=============
|
||||
|
||||
An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
|
||||
|
||||
.. table_from_list::
|
||||
:columns: 5
|
||||
|
||||
* :doc:`atom <dump>`
|
||||
* :doc:`atom/adios <dump_adios>`
|
||||
* :doc:`atom/gz <dump>`
|
||||
* :doc:`atom/mpiio <dump>`
|
||||
* :doc:`atom/zstd <dump>`
|
||||
* :doc:`cfg <dump>`
|
||||
* :doc:`cfg/gz <dump>`
|
||||
* :doc:`cfg/mpiio <dump>`
|
||||
* :doc:`cfg/uef <dump_cfg_uef>`
|
||||
* :doc:`cfg/zstd <dump>`
|
||||
* :doc:`custom <dump>`
|
||||
* :doc:`custom/adios <dump_adios>`
|
||||
* :doc:`custom/gz <dump>`
|
||||
* :doc:`custom/mpiio <dump>`
|
||||
* :doc:`custom/zstd <dump>`
|
||||
* :doc:`dcd <dump>`
|
||||
* :doc:`deprecated <dump>`
|
||||
* :doc:`h5md <dump_h5md>`
|
||||
* :doc:`image <dump_image>`
|
||||
* :doc:`local <dump>`
|
||||
* :doc:`local/gz <dump>`
|
||||
* :doc:`local/zstd <dump>`
|
||||
* :doc:`molfile <dump_molfile>`
|
||||
* :doc:`movie <dump_image>`
|
||||
* :doc:`netcdf <dump_netcdf>`
|
||||
* :doc:`netcdf/mpiio <dump>`
|
||||
* :doc:`vtk <dump_vtk>`
|
||||
* :doc:`xtc <dump>`
|
||||
* :doc:`xyz <dump>`
|
||||
* :doc:`xyz/gz <dump>`
|
||||
* :doc:`xyz/mpiio <dump>`
|
||||
* :doc:`xyz/zstd <dump>`
|
||||
* :doc:`yaml <dump>`
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
Fix commands
|
||||
============
|
||||
@ -28,6 +29,8 @@ OPT.
|
||||
* :doc:`adapt/fep <fix_adapt_fep>`
|
||||
* :doc:`addforce <fix_addforce>`
|
||||
* :doc:`addtorque <fix_addtorque>`
|
||||
* :doc:`amoeba/bitorsion <fix_amoeba_bitorsion>`
|
||||
* :doc:`amoeba/pitorsion <fix_amoeba_pitorsion>`
|
||||
* :doc:`append/atoms <fix_append_atoms>`
|
||||
* :doc:`atc <fix_atc>`
|
||||
* :doc:`atom/swap <fix_atom_swap>`
|
||||
@ -162,6 +165,7 @@ OPT.
|
||||
* :doc:`orient/fcc <fix_orient>`
|
||||
* :doc:`orient/eco <fix_orient_eco>`
|
||||
* :doc:`pafi <fix_pafi>`
|
||||
* :doc:`pair <fix_pair>`
|
||||
* :doc:`phonon <fix_phonon>`
|
||||
* :doc:`pimd <fix_pimd>`
|
||||
* :doc:`planeforce <fix_planeforce>`
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
KSpace solvers
|
||||
==============
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
* :ref:`Dihedral styles <dihedral>`
|
||||
* :ref:`Improper styles <improper>`
|
||||
* :doc:`KSpace styles <Commands_kspace>`
|
||||
* :doc:`Dump styles <Commands_dump>`
|
||||
|
||||
Pair_style potentials
|
||||
======================
|
||||
@ -38,6 +39,7 @@ OPT.
|
||||
* :doc:`agni (o) <pair_agni>`
|
||||
* :doc:`airebo (io) <pair_airebo>`
|
||||
* :doc:`airebo/morse (io) <pair_airebo>`
|
||||
* :doc:`amoeba <pair_amoeba>`
|
||||
* :doc:`atm <pair_atm>`
|
||||
* :doc:`awpmd/cut <pair_awpmd>`
|
||||
* :doc:`beck (go) <pair_beck>`
|
||||
@ -124,6 +126,7 @@ OPT.
|
||||
* :doc:`hbond/dreiding/lj (o) <pair_hbond_dreiding>`
|
||||
* :doc:`hbond/dreiding/morse (o) <pair_hbond_dreiding>`
|
||||
* :doc:`hdnnp <pair_hdnnp>`
|
||||
* :doc:`hippo <pair_amoeba>`
|
||||
* :doc:`ilp/graphene/hbn (t) <pair_ilp_graphene_hbn>`
|
||||
* :doc:`ilp/tmd (t) <pair_ilp_tmd>`
|
||||
* :doc:`kolmogorov/crespi/full <pair_kolmogorov_crespi_full>`
|
||||
@ -179,9 +182,9 @@ OPT.
|
||||
* :doc:`lj/long/tip4p/long (o) <pair_lj_long>`
|
||||
* :doc:`lj/mdf <pair_mdf>`
|
||||
* :doc:`lj/relres (o) <pair_lj_relres>`
|
||||
* :doc:`lj/sdk (gko) <pair_sdk>`
|
||||
* :doc:`lj/sdk/coul/long (go) <pair_sdk>`
|
||||
* :doc:`lj/sdk/coul/msm (o) <pair_sdk>`
|
||||
* :doc:`lj/spica (gko) <pair_spica>`
|
||||
* :doc:`lj/spica/coul/long (go) <pair_spica>`
|
||||
* :doc:`lj/spica/coul/msm (o) <pair_spica>`
|
||||
* :doc:`lj/sf/dipole/sf (go) <pair_dipole>`
|
||||
* :doc:`lj/smooth (go) <pair_lj_smooth>`
|
||||
* :doc:`lj/smooth/linear (o) <pair_lj_smooth_linear>`
|
||||
@ -269,6 +272,7 @@ OPT.
|
||||
* :doc:`spin/magelec <pair_spin_magelec>`
|
||||
* :doc:`spin/neel <pair_spin_neel>`
|
||||
* :doc:`srp <pair_srp>`
|
||||
* :doc:`srp/react <pair_srp>`
|
||||
* :doc:`sw (giko) <pair_sw>`
|
||||
* :doc:`sw/angle/table <pair_sw_angle_table>`
|
||||
* :doc:`sw/mod (o) <pair_sw>`
|
||||
|
||||
@ -154,6 +154,9 @@ and parsing files or arguments.
|
||||
.. doxygenfunction:: trim_and_count_words
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: join_words
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: split_words
|
||||
:project: progguide
|
||||
|
||||
|
||||
@ -476,65 +476,6 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
*Bonds defined but no bond types*
|
||||
The data file header lists bonds but no bond types.
|
||||
|
||||
*Bond/react: Cannot use fix bond/react with non-molecular systems*
|
||||
Only systems with bonds that can be changed can be used. Atom_style
|
||||
template does not qualify.
|
||||
|
||||
*Bond/react: Invalid template atom ID in map file*
|
||||
Atom IDs in molecule templates range from 1 to the number of atoms in the template.
|
||||
|
||||
*Bond/react: Rmax cutoff is longer than pairwise cutoff*
|
||||
This is not allowed because bond creation is done using the pairwise
|
||||
neighbor list.
|
||||
|
||||
*Bond/react: Molecule template ID for fix bond/react does not exist*
|
||||
A valid molecule template must have been created with the molecule
|
||||
command.
|
||||
|
||||
*Bond/react: Reaction templates must contain the same number of atoms*
|
||||
There should be a one-to-one correspondence between atoms in the
|
||||
pre-reacted and post-reacted templates, as specified by the map file.
|
||||
|
||||
*Bond/react: Unknown section in map file*
|
||||
Please ensure reaction map files are properly formatted.
|
||||
|
||||
*Bond/react: Atom/Bond type affected by reaction too close to template edge*
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the map
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom.
|
||||
|
||||
*Bond/react: Fix bond/react needs ghost atoms from farther away*
|
||||
This is because a processor needs to map the entire unreacted
|
||||
molecule template onto simulation atoms it knows about. The
|
||||
comm_modify cutoff command can be used to extend the communication
|
||||
range.
|
||||
|
||||
*Bond/react: A deleted atom cannot remain bonded to an atom that is not deleted*
|
||||
Self-explanatory.
|
||||
|
||||
*Bond/react: First neighbors of chiral atoms must be of mutually different types*
|
||||
Self-explanatory.
|
||||
|
||||
*Bond/react: Chiral atoms must have exactly four first neighbors*
|
||||
Self-explanatory.
|
||||
|
||||
*Bond/react: Molecule template 'Coords' section required for chiralIDs keyword*
|
||||
The coordinates of atoms in the pre-reacted template are used to determine
|
||||
chirality.
|
||||
|
||||
*Bond/react special bond generation overflow*
|
||||
The number of special bonds per-atom created by a reaction exceeds the
|
||||
system setting. See the read_data or create_box command for how to
|
||||
specify this value.
|
||||
|
||||
*Bond/react topology/atom exceed system topology/atom*
|
||||
The number of bonds, angles etc per-atom created by a reaction exceeds
|
||||
the system setting. See the read_data or create_box command for how to
|
||||
specify this value.
|
||||
|
||||
*Both restart files must use % or neither*
|
||||
Self-explanatory.
|
||||
|
||||
@ -1291,7 +1232,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
*Cannot use chosen neighbor list style with lj/gromacs/kk*
|
||||
Self-explanatory.
|
||||
|
||||
*Cannot use chosen neighbor list style with lj/sdk/kk*
|
||||
*Cannot use chosen neighbor list style with lj/spica/kk*
|
||||
That style is not supported by Kokkos.
|
||||
|
||||
*Cannot use chosen neighbor list style with pair eam/kk*
|
||||
@ -1659,10 +1600,10 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
*Cannot use newton pair with lj/gromacs/gpu pair style*
|
||||
Self-explanatory.
|
||||
|
||||
*Cannot use newton pair with lj/sdk/coul/long/gpu pair style*
|
||||
*Cannot use newton pair with lj/spica/coul/long/gpu pair style*
|
||||
Self-explanatory.
|
||||
|
||||
*Cannot use newton pair with lj/sdk/gpu pair style*
|
||||
*Cannot use newton pair with lj/spica/gpu pair style*
|
||||
Self-explanatory.
|
||||
|
||||
*Cannot use newton pair with lj96/cut/gpu pair style*
|
||||
@ -3521,6 +3462,65 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
acquire needed info, The comm_modify cutoff command can be used to
|
||||
extend the communication range.
|
||||
|
||||
*Fix bond/react: Cannot use fix bond/react with non-molecular systems*
|
||||
Only systems with bonds that can be changed can be used. Atom_style
|
||||
template does not qualify.
|
||||
|
||||
*Fix bond/react: Invalid template atom ID in map file*
|
||||
Atom IDs in molecule templates range from 1 to the number of atoms in the template.
|
||||
|
||||
*Fix bond/react: Rmax cutoff is longer than pairwise cutoff*
|
||||
This is not allowed because bond creation is done using the pairwise
|
||||
neighbor list.
|
||||
|
||||
*Fix bond/react: Molecule template ID for fix bond/react does not exist*
|
||||
A valid molecule template must have been created with the molecule
|
||||
command.
|
||||
|
||||
*Fix bond/react: Reaction templates must contain the same number of atoms*
|
||||
There should be a one-to-one correspondence between atoms in the
|
||||
pre-reacted and post-reacted templates, as specified by the map file.
|
||||
|
||||
*Fix bond/react: Unknown section in map file*
|
||||
Please ensure reaction map files are properly formatted.
|
||||
|
||||
*Fix bond/react: Atom/Bond type affected by reaction too close to template edge*
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the map
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom.
|
||||
|
||||
*Fix bond/react: Fix bond/react needs ghost atoms from farther away*
|
||||
This is because a processor needs to map the entire unreacted
|
||||
molecule template onto simulation atoms it knows about. The
|
||||
comm_modify cutoff command can be used to extend the communication
|
||||
range.
|
||||
|
||||
*Fix bond/react: A deleted atom cannot remain bonded to an atom that is not deleted*
|
||||
Self-explanatory.
|
||||
|
||||
*Fix bond/react: First neighbors of chiral atoms must be of mutually different types*
|
||||
Self-explanatory.
|
||||
|
||||
*Fix bond/react: Chiral atoms must have exactly four first neighbors*
|
||||
Self-explanatory.
|
||||
|
||||
*Fix bond/react: Molecule template 'Coords' section required for chiralIDs keyword*
|
||||
The coordinates of atoms in the pre-reacted template are used to determine
|
||||
chirality.
|
||||
|
||||
*Fix bond/react special bond generation overflow*
|
||||
The number of special bonds per-atom created by a reaction exceeds the
|
||||
system setting. See the read_data or create_box command for how to
|
||||
specify this value.
|
||||
|
||||
*Fix bond/react topology/atom exceed system topology/atom*
|
||||
The number of bonds, angles etc per-atom created by a reaction exceeds
|
||||
the system setting. See the read_data or create_box command for how to
|
||||
specify this value.
|
||||
|
||||
*Fix bond/swap cannot use dihedral or improper styles*
|
||||
These styles cannot be defined when using this fix.
|
||||
|
||||
@ -6782,7 +6782,7 @@ keyword to allow for additional bonds to be formed
|
||||
This is because the computation of constraint forces within a water
|
||||
molecule adds forces to atoms owned by other processors.
|
||||
|
||||
*Pair style lj/sdk/coul/long/gpu requires atom attribute q*
|
||||
*Pair style lj/spica/coul/long/gpu requires atom attribute q*
|
||||
The atom style defined does not have this attribute.
|
||||
|
||||
*Pair style nb3b/harmonic requires atom IDs*
|
||||
|
||||
@ -68,14 +68,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
|
||||
length, multiplying by the number of bonds in the interaction (e.g. 3
|
||||
for a dihedral) and adding a small amount of stretch.
|
||||
|
||||
*Bond/react: Atom affected by reaction too close to template edge*
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the superimpose
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom.
|
||||
|
||||
*Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero*
|
||||
Self-explanatory.
|
||||
|
||||
@ -206,12 +198,20 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
|
||||
*Fix SRD walls overlap but fix srd overlap not set*
|
||||
You likely want to set this in your input script.
|
||||
|
||||
* Fix bond/create is used multiple times or with fix bond/break - may not work as expected*
|
||||
*Fix bond/create is used multiple times or with fix bond/break - may not work as expected*
|
||||
When using fix bond/create multiple times or in combination with
|
||||
fix bond/break, the individual fix instances do not share information
|
||||
about changes they made at the same time step and thus it may result
|
||||
in unexpected behavior.
|
||||
|
||||
*Fix bond/react: Atom affected by reaction too close to template edge*
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the superimpose
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom.
|
||||
|
||||
*Fix bond/swap will ignore defined angles*
|
||||
See the page for fix bond/swap for more info on this
|
||||
restriction.
|
||||
@ -810,4 +810,3 @@ This will most likely cause errors in kinetic fluctuations.
|
||||
|
||||
*Using pair tail corrections with pair_modify compute no*
|
||||
The tail corrections will thus not be computed.
|
||||
|
||||
|
||||
@ -65,6 +65,7 @@ Force fields howto
|
||||
:maxdepth: 1
|
||||
|
||||
Howto_bioFF
|
||||
Howto_amoeba
|
||||
Howto_tip3p
|
||||
Howto_tip4p
|
||||
Howto_spc
|
||||
|
||||
324
doc/src/Howto_amoeba.rst
Normal file
324
doc/src/Howto_amoeba.rst
Normal file
@ -0,0 +1,324 @@
|
||||
AMOEBA and HIPPO force fields
|
||||
=============================
|
||||
|
||||
The AMOEBA and HIPPO polarizable force fields were developed by Jay
|
||||
Ponder's group at the U Washington at St Louis. Their implementation
|
||||
in LAMMPS was done using F90 code provided by the Ponder group from
|
||||
their `Tinker MD code <https://dasher.wustl.edu/tinker/>`_.
|
||||
|
||||
The current implementation (July 2022) of AMOEBA in LAMMPS matches the
|
||||
version discussed in :ref:`(Ponder) <amoeba-Ponder>`, :ref:`(Ren)
|
||||
<amoeba-Ren>`, and :ref:`(Shi) <amoeba-Shi>`. Likewise the current
|
||||
implementation of HIPPO in LAMMPS matches the version discussed in
|
||||
:ref:`(Rackers) <amoeba-Rackers>`.
|
||||
|
||||
These force fields can be used when polarization effects are desired
|
||||
in simulations of water, organic molecules, and biomolecules including
|
||||
proteins, provided that parameterizations (Tinker PRM force field
|
||||
files) are available for the systems you are interested in. Files in
|
||||
the LAMMPS potentials directory with a "amoeba" or "hippo" suffix can
|
||||
be used. The Tinker distribution and website have additional force
|
||||
field files as well:
|
||||
`https://github.com/TinkerTools/tinker/tree/release/params
|
||||
<https://github.com/TinkerTools/tinker/tree/release/params>`_.
|
||||
|
||||
Note that currently, HIPPO can only be used for water systems, but
|
||||
HIPPO files for a variety of small organic and biomolecules are in
|
||||
preparation by the Ponder group. Those force field files will be
|
||||
included in the LAMMPS distribution when available.
|
||||
|
||||
To use the AMOEBA or HIPPO force fields, a simulation must be 3d, and
|
||||
fully periodic or fully non-periodic, and use an orthogonal (not
|
||||
triclinic) simulation box.
|
||||
|
||||
----------
|
||||
|
||||
The AMOEBA and HIPPO force fields contain the following terms in their
|
||||
energy (U) computation. Further details for AMOEBA equations are in
|
||||
:ref:`(Ponder) <amoeba-Ponder>`, further details for the HIPPO
|
||||
equations are in :ref:`(Rackers) <amoeba-Rackers>`.
|
||||
|
||||
.. math::
|
||||
|
||||
U & = U_{intermolecular} + U_{intramolecular} \\
|
||||
U_{intermolecular} & = U_{hal} + U_{repulsion} + U_{dispersion} + U_{multipole} + U_{polar} + U_{qxfer} \\
|
||||
U_{intramolecular} & = U_{bond} + U_{angle} + U_{torsion} + U_{oop} + U_{b\theta} + U_{UB} + U_{pitorsion} + U_{bitorsion}
|
||||
|
||||
For intermolecular terms, the AMOEBA force field includes only the
|
||||
:math:`U_{hal}`, :math:`U_{multipole}`, :math:`U_{polar}` terms. The
|
||||
HIPPO force field includes all but the :math:`U_{hal}` term. In
|
||||
LAMMPS, these are all computed by the :doc:`pair_style amoeba or hippo
|
||||
<pair_style>` command. Note that the :math:`U_{multipole}` and
|
||||
:math:`U_{polar}` terms in this formula are not the same for the
|
||||
AMOEBA and HIPPO force fields.
|
||||
|
||||
For intramolecular terms, the :math:`U_{bond}`, :math:`U_{angle}`,
|
||||
:math:`U_{torsion}`, :math:`U_{oop}` terms are computed by the
|
||||
:doc:`bond_style class2 <bond_class2>` :doc:`angle_style amoeba
|
||||
<angle_amoeba>`, :doc:`dihedral_style fourier <dihedral_fourier>`, and
|
||||
:doc:`improper_style amoeba <improper_amoeba>` commands respectively.
|
||||
The :doc:`angle_style amoeba <angle_amoeba>` command includes the
|
||||
:math:`U_{b\theta}` bond-angle cross term, and the :math:`U_{UB}` term
|
||||
for a Urey-Bradley bond contribution between the I,K atoms in the IJK
|
||||
angle.
|
||||
|
||||
The :math:`U_{pitorsion}` term is computed by the :doc:`fix
|
||||
amoeba/pitorsion <fix_amoeba_pitorsion>` command. It computes 6-body
|
||||
interaction between a pair of bonded atoms which each have 2
|
||||
additional bond partners.
|
||||
|
||||
The :math:`U_{bitorsion}` term is computed by the :doc:`fix
|
||||
amoeba/bitorsion <fix_amoeba_bitorsion>` command. It computes 5-body
|
||||
interaction between two 4-body torsions (dihedrals) which overlap,
|
||||
having 3 atoms in common.
|
||||
|
||||
These command doc pages have additional details on the terms they
|
||||
compute:
|
||||
|
||||
* :doc:`pair_style amoeba or hippo <pair_amoeba>`
|
||||
* :doc:`bond_style class2 <bond_class2>`
|
||||
* :doc:`angle_style amoeba <angle_amoeba>`
|
||||
* :doc:`dihedral_style fourier <dihedral_fourier>`
|
||||
* :doc:`improper_style amoeba <improper_amoeba>`
|
||||
* :doc:`fix amoeba/pitorsion <fix_amoeba_pitorsion>`
|
||||
* :doc:`fix amoeba/bitorsion <fix_amoeba_bitorsion>`
|
||||
|
||||
----------
|
||||
|
||||
To use the AMOEBA or HIPPO force fields in LAMMPS, use commands like
|
||||
the following appropriately in your input script. The only change
|
||||
needed for AMOEBA vs HIPPO simulation is for the :doc:`pair_style
|
||||
<pair_style>` and :doc:`pair_coeff <pair_coeff>` commands, as shown
|
||||
below. See examples/amoeba for example input scripts for both AMOEBA
|
||||
and HIPPO.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
units real # required
|
||||
atom_style amoeba
|
||||
bond_style class2 # CLASS2 package
|
||||
angle_style amoeba
|
||||
dihedral_style fourier # EXTRA-MOLECULE package
|
||||
improper_style amoeba
|
||||
# required per-atom data
|
||||
fix amtype all property/atom i_amtype ghost yes
|
||||
fix extra all property/atom &
|
||||
i_amgroup i_ired i_xaxis i_yaxis i_zaxis d_pval ghost yes
|
||||
fix polaxe all property/atom i_polaxe
|
||||
|
||||
fix pit all amoeba/pitorsion # PiTorsion terms in FF
|
||||
fix_modify pit energy yes
|
||||
# Bitorsion terms in FF
|
||||
fix bit all amoeba/bitorsion bitorsion.ubiquitin.data
|
||||
fix_modify bit energy yes
|
||||
|
||||
read_data data.ubiquitin fix amtype NULL "Tinker Types" &
|
||||
fix pit "pitorsion types" "PiTorsion Coeffs" &
|
||||
fix pit pitorsions PiTorsions &
|
||||
fix bit bitorsions BiTorsions
|
||||
|
||||
pair_style amoeba # AMOEBA FF
|
||||
pair_coeff * * amoeba_ubiquitin.prm amoeba_ubiquitin.key
|
||||
|
||||
pair_style hippo # HIPPO FF
|
||||
pair_coeff * * hippo_water.prm hippo_water.key
|
||||
|
||||
special_bonds lj/coul 0.5 0.5 0.5 one/five yes # 1-5 neighbors
|
||||
|
||||
The data file read by the :doc:`read_data <read_data>` command should
|
||||
be created by the tools/tinker/tinker2lmp.py conversion program
|
||||
described below. It will create a section in the data file with the
|
||||
header "Tinker Types". A :doc:`fix property/atom <fix_property_atom>`
|
||||
command for the data must be specified before the read_data command.
|
||||
In the example above the fix ID is *amtype*.
|
||||
|
||||
Similarly, if the system you are simulating defines AMOEBA/HIPPO
|
||||
pitorsion or bitorsion interactions, there will be entries in the data
|
||||
file for those interactions. They require a :doc:`fix
|
||||
amoeba/pitortion <fix_amoeba_pitorsion>` and :doc:`fix
|
||||
amoeba/bitorsion <fix_amoeba_bitorsion>` command be defined. In the
|
||||
example above, the IDs for these two fixes are *pit* and *bit*.
|
||||
|
||||
Of course, if the system being modeled does not have one or more of
|
||||
the following -- bond, angle, dihedral, improper, pitorsion,
|
||||
bitorsion interactions -- then the corresponding style and fix
|
||||
commands above do not need to be used. See the example scripts in
|
||||
examples/amoeba for water systems as examples; they are simpler than
|
||||
what is listed above.
|
||||
|
||||
The two :doc:`fix property/atom <fix_property_atom>` commands with IDs
|
||||
(in the example above) *extra* and *polaxe* are also needed to define
|
||||
internal per-atom quantities used by the AMOEBA and HIPPO force
|
||||
fields.
|
||||
|
||||
The :doc:`pair_coeff <pair_coeff>` command used for either the AMOEBA
|
||||
or HIPPO force field takes two arguments for Tinker force field files,
|
||||
namely a PRM and KEY file. The keyfile can be specified as NULL and
|
||||
default values for a various settings will be used. Note that these 2
|
||||
files are meant to allow use of native Tinker files as-is. However
|
||||
LAMMPS does not support all the options which can be included
|
||||
in a Tinker PRM or KEY file. See specifics below.
|
||||
|
||||
A :doc:`special_bonds <special_bonds>` command with the *one/five*
|
||||
option is required, since the AMOEBA/HIPPO force fields define
|
||||
weighting factors for not only 1-2, 1-3, 1-4 interactions, but also
|
||||
1-5 interactions. This command will trigger a per-atom list of 1-5
|
||||
neighbors to be generated. The AMOEBA and HIPPO force fields define
|
||||
their own custom weighting factors for all the 1-2, 1-3, 1-4, 1-5
|
||||
terms which in the Tinker PRM and KEY files; they can be different for
|
||||
different terms in the force field.
|
||||
|
||||
In addition to the list above, these command doc pages have additional
|
||||
details:
|
||||
|
||||
* :doc:`atom_style amoeba <atom_style>`
|
||||
* :doc:`fix property/atom <fix_property_atom>`
|
||||
* :doc:`special_bonds <special_bonds>`
|
||||
|
||||
----------
|
||||
|
||||
Tinker PRM and KEY files
|
||||
|
||||
A Tinker PRM file is composed of sections, each of which has multiple
|
||||
lines. This is the list of PRM sections LAMMPS knows how to parse and
|
||||
use. Any other sections are skipped:
|
||||
|
||||
* Angle Bending Parameters
|
||||
* Atom Type Definitions
|
||||
* Atomic Multipole Parameters
|
||||
* Bond Stretching Parameters
|
||||
* Charge Penetration Parameters
|
||||
* Charge Transfer Parameters
|
||||
* Dipole Polarizability Parameters
|
||||
* Dispersion Parameters
|
||||
* Force Field Definition
|
||||
* Literature References
|
||||
* Out-of-Plane Bend Parameters
|
||||
* Pauli Repulsion Parameters
|
||||
* Pi-Torsion Parameters
|
||||
* Stretch-Bend Parameters
|
||||
* Torsion-Torsion Parameters
|
||||
* Torsional Parameters
|
||||
* Urey-Bradley Parameters
|
||||
* Van der Waals Pair Parameters
|
||||
* Van der Waals Parameters
|
||||
|
||||
A Tinker KEY file is composed of lines, each of which has a keyword
|
||||
followed by zero or more parameters. This is the list of keywords
|
||||
LAMMPS knows how to parse and use in the same manner Tinker does. Any
|
||||
other keywords are skipped. The value in parenthesis is the default
|
||||
value for the keyword if it is not specified, or if the keyfile in the
|
||||
:doc:`pair_coeff <pair_coeff>` command is specified as NULL:
|
||||
|
||||
* a-axis (0.0)
|
||||
* b-axis (0.0)
|
||||
* c-axis (0.0)
|
||||
* ctrn-cutoff (6.0)
|
||||
* ctrn-taper (0.9 * ctrn-cutoff)
|
||||
* cutoff
|
||||
* delta-halgren (0.07)
|
||||
* dewald (no long-range dispersion unless specified)
|
||||
* dewald-alpha (0.4)
|
||||
* dewald-cutoff (7.0)
|
||||
* dispersion-cutoff (9.0)
|
||||
* dispersion-taper (9.0 * dispersion-cutoff)
|
||||
* dpme-grid
|
||||
* dpme-order (4)
|
||||
* ewald (no long-range electrostatics unless specified)
|
||||
* ewald-alpha (0.4)
|
||||
* ewald-cutoff (7.0)
|
||||
* gamma-halgren (0.12)
|
||||
* mpole-cutoff (9.0)
|
||||
* mpole-taper (0.65 * mpole-cutoff)
|
||||
* pcg-guess (enabled by default)
|
||||
* pcg-noguess (disable pcg-guess if specified)
|
||||
* pcg-noprecond (disable pcg-precond if specified)
|
||||
* pcg-peek (1.0)
|
||||
* pcg-precond (enabled by default)
|
||||
* pewald-alpha (0.4)
|
||||
* pme-grid
|
||||
* pme-order (5)
|
||||
* polar-eps (1.0e-6)
|
||||
* polar-iter (100)
|
||||
* polar-predict (no prediction operation unless specified)
|
||||
* ppme-order (5)
|
||||
* repulsion-cutoff (6.0)
|
||||
* repulsion-taper (0.9 * repulsion-cutoff)
|
||||
* taper
|
||||
* usolve-cutoff (4.5)
|
||||
* usolve-diag (2.0)
|
||||
* vdw-cutoff (9.0)
|
||||
* vdw-taper (0.9 * vdw-cutoff)
|
||||
|
||||
----------
|
||||
|
||||
Tinker2lmp.py tool
|
||||
|
||||
This conversion tool is found in the tools/tinker directory.
|
||||
As shown in examples/amoeba/README, these commands produce
|
||||
the data files found in examples/amoeba, and also illustrate
|
||||
all the options available to use with the tinker2lmp.py script:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
% python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba # AMOEBA non-periodic system
|
||||
% python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo # HIPPO non-periodic system
|
||||
% python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643 # AMOEBA periodic system
|
||||
% python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643 # HIPPO periodic system
|
||||
% python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin.new -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data.new # system with bitorsions
|
||||
|
||||
Switches and their arguments may be specified in any order.
|
||||
|
||||
The -xyz switch is required and specifies an input XYZ file as an
|
||||
argument. The format of this file is an extended XYZ format defined
|
||||
and used by Tinker for its input. Example \*.xyz files are in the
|
||||
examples/amoeba directory. The file lists the atoms in the system.
|
||||
Each atom has the following information: Tinker species name (ignored
|
||||
by LAMMPS), xyz coordinates, Tinker numeric type, and a list of atom
|
||||
IDs the atom is bonded to.
|
||||
|
||||
Here is more information about the extended XYZ format defined and
|
||||
used by Tinker, and links to programs that convert standard PDB files
|
||||
to the extended XYZ format:
|
||||
|
||||
* `http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_
|
||||
* `https://github.com/emleddin/pdbxyz-xyzpdb <https://github.com/emleddin/pdbxyz-xyzpdb>`_
|
||||
* `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f <https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f>`_
|
||||
|
||||
The -amoeba or -hippo switch is required. It specifies an input
|
||||
AMOEBA or HIPPO PRM force field file as an argument. This should be
|
||||
the same file used by the :doc:`pair_style <pair_style>` command in
|
||||
the input script.
|
||||
|
||||
The -data switch is required. It specifies an output file name for
|
||||
the LAMMPS data file that will be produced.
|
||||
|
||||
For periodic systems, the -pbc switch is required. It specifies the
|
||||
periodic box size for each dimension (x,y,z). For a Tinker simulation
|
||||
these are specified in the KEY file.
|
||||
|
||||
The -bitorsion switch is only needed if the system contains Tinker
|
||||
bitorsion interactions. The data for each type of bitorsion
|
||||
interaction will be written to the specified file, and read by the
|
||||
:doc:`fix amoeba/bitorsion <fix_amoeba_bitorsion>` command. The data
|
||||
includes 2d arrays of values to which splines are fit, and thus is not
|
||||
compatible with the LAMMPS data file format.
|
||||
|
||||
----------
|
||||
|
||||
.. _howto-Ponder:
|
||||
|
||||
**(Ponder)** Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010).
|
||||
|
||||
.. _howto-Rackers:
|
||||
|
||||
**(Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021).
|
||||
|
||||
.. _howto-Ren:
|
||||
|
||||
**(Ren)** Ren and Ponder, J Phys Chem B, 107, 5933 (2003).
|
||||
|
||||
.. _howto-Shi:
|
||||
|
||||
**(Shi)** Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013.
|
||||
|
||||
@ -110,6 +110,7 @@ Command Reference
|
||||
angles
|
||||
dihedrals
|
||||
impropers
|
||||
dumps
|
||||
fix_modify_atc_commands
|
||||
Bibliography
|
||||
|
||||
|
||||
@ -100,13 +100,14 @@ Documentation (strict)
|
||||
|
||||
Contributions that add new styles or commands or augment existing ones
|
||||
must include the corresponding new or modified documentation in
|
||||
`ReStructuredText format <rst>`_ (.rst files in the ``doc/src/`` folder). The
|
||||
documentation shall be written in American English and the .rst file
|
||||
must use only ASCII characters so it can be cleanly translated to PDF
|
||||
files (via `sphinx <sphinx>`_ and PDFLaTeX). Special characters may be included via
|
||||
embedded math expression typeset in a LaTeX subset.
|
||||
`ReStructuredText format <rst_>`_ (.rst files in the ``doc/src/``
|
||||
folder). The documentation shall be written in American English and the
|
||||
.rst file must use only ASCII characters so it can be cleanly translated
|
||||
to PDF files (via `sphinx <https://www.sphinx-doc.org>`_ and PDFLaTeX).
|
||||
Special characters may be included via embedded math expression typeset
|
||||
in a LaTeX subset.
|
||||
|
||||
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
|
||||
.. _rst: https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
|
||||
|
||||
When adding new commands, they need to be integrated into the sphinx
|
||||
documentation system, and the corresponding command tables and lists
|
||||
@ -133,7 +134,7 @@ error free completion of the HTML and PDF build will be performed and
|
||||
also a spell check, a check for correct anchors and labels, and a check
|
||||
for completeness of references all styles in their corresponding tables
|
||||
and lists is run. In case the spell check reports false positives they
|
||||
can be added to the file doc/utils/sphinx-config/false_positives.txt
|
||||
can be added to the file ``doc/utils/sphinx-config/false_positives.txt``
|
||||
|
||||
Contributions that add or modify the library interface or "public" APIs
|
||||
from the C++ code or the Fortran module must include suitable doxygen
|
||||
|
||||
@ -27,6 +27,7 @@ page gives those details.
|
||||
:columns: 6
|
||||
|
||||
* :ref:`ADIOS <PKG-ADIOS>`
|
||||
* :ref:`AMOEBA <PKG-AMOEBA>`
|
||||
* :ref:`ASPHERE <PKG-ASPHERE>`
|
||||
* :ref:`ATC <PKG-ATC>`
|
||||
* :ref:`AWPMD <PKG-AWPMD>`
|
||||
@ -35,7 +36,7 @@ page gives those details.
|
||||
* :ref:`BPM <PKG-BPM>`
|
||||
* :ref:`BROWNIAN <PKG-BROWNIAN>`
|
||||
* :ref:`CG-DNA <PKG-CG-DNA>`
|
||||
* :ref:`CG-SDK <PKG-CG-SDK>`
|
||||
* :ref:`CG-SPICA <PKG-CG-SPICA>`
|
||||
* :ref:`CLASS2 <PKG-CLASS2>`
|
||||
* :ref:`COLLOID <PKG-COLLOID>`
|
||||
* :ref:`COLVARS <PKG-COLVARS>`
|
||||
@ -149,6 +150,24 @@ This package has :ref:`specific installation instructions <adios>` on the :doc:`
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-AMOEBA:
|
||||
|
||||
AMOEBA package
|
||||
---------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
TODO
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/AMOEBA: filenames -> commands
|
||||
* :doc:`AMOEBA and HIPPO howto <Howto_amoeba>`
|
||||
* examples/amoeba
|
||||
* TODO
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-ASPHERE:
|
||||
|
||||
ASPHERE package
|
||||
@ -365,28 +384,30 @@ The CG-DNA package requires that also the `MOLECULE <PKG-MOLECULE>`_ and
|
||||
|
||||
----------
|
||||
|
||||
.. _PKG-CG-SDK:
|
||||
.. _PKG-CG-SPICA:
|
||||
|
||||
CG-SDK package
|
||||
CG-SPICA package
|
||||
------------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
Several pair styles and an angle style which implement the
|
||||
coarse-grained SDK model of Shinoda, DeVane, and Klein which enables
|
||||
simulation of ionic liquids, electrolytes, lipids and charged amino
|
||||
acids.
|
||||
coarse-grained SPICA (formerly called SDK) model which enables
|
||||
simulation of biological or soft material systems.
|
||||
|
||||
**Author:** Axel Kohlmeyer (Temple U).
|
||||
**Original Author:** Axel Kohlmeyer (Temple U).
|
||||
|
||||
**Maintainers:** Yusuke Miyazaki and Wataru Shinoda (Okayama U).
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/CG-SDK: filenames -> commands
|
||||
* src/CG-SDK/README
|
||||
* :doc:`pair_style lj/sdk/\* <pair_sdk>`
|
||||
* :doc:`angle_style sdk <angle_sdk>`
|
||||
* examples/PACKAGES/cgsdk
|
||||
* src/CG-SPICA: filenames -> commands
|
||||
* src/CG-SPICA/README
|
||||
* :doc:`pair_style lj/spica/\* <pair_spica>`
|
||||
* :doc:`angle_style spica <angle_spica>`
|
||||
* examples/PACKAGES/cgspica
|
||||
* https://www.lammps.org/pictures.html#cg
|
||||
* https://www.spica-ff.org/
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -33,6 +33,11 @@ whether an extra library is needed to build and use the package:
|
||||
- :doc:`dump adios <dump_adios>`
|
||||
- PACKAGES/adios
|
||||
- ext
|
||||
* - :ref:`AMOEBA <PKG-AMOEBA>`
|
||||
- AMOEBA and HIPPO force fields
|
||||
- :doc:`AMOEBA and HIPPO howto <Howto_amoeba>`
|
||||
- amoeba
|
||||
- no
|
||||
* - :ref:`ASPHERE <PKG-ASPHERE>`
|
||||
- aspherical particle models
|
||||
- :doc:`Howto spherical <Howto_spherical>`
|
||||
@ -73,10 +78,10 @@ whether an extra library is needed to build and use the package:
|
||||
- src/CG-DNA/README
|
||||
- PACKAGES/cgdna
|
||||
- no
|
||||
* - :ref:`CG-SDK <PKG-CG-SDK>`
|
||||
- SDK coarse-graining model
|
||||
- :doc:`pair_style lj/sdk <pair_sdk>`
|
||||
- PACKAGES/cgsdk
|
||||
* - :ref:`CG-SPICA <PKG-CG-SPICA>`
|
||||
- SPICA (SDK) coarse-graining model
|
||||
- :doc:`pair_style lj/spica <pair_spica>`
|
||||
- PACKAGES/cgspica
|
||||
- no
|
||||
* - :ref:`CLASS2 <PKG-CLASS2>`
|
||||
- class 2 force fields
|
||||
|
||||
138
doc/src/angle_amoeba.rst
Normal file
138
doc/src/angle_amoeba.rst
Normal file
@ -0,0 +1,138 @@
|
||||
.. index:: angle_style amoeba
|
||||
|
||||
angle_style amoeba command
|
||||
==========================
|
||||
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
angle_style amoeba
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
angle_style amoeba
|
||||
angle_coeff * 75.0 -25.0 1.0 0.3 0.02 0.003
|
||||
angle_coeff * ba 3.6551 24.895 1.0119 1.5228
|
||||
angle_coeff * ub -7.6 1.5537
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *amoeba* angle style uses the potential
|
||||
|
||||
.. math::
|
||||
|
||||
E & = E_a + E_{ba} + E_{ub} \\
|
||||
E_a & = K_2\left(\theta - \theta_0\right)^2 + K_3\left(\theta - \theta_0\right)^3 + K_4\left(\theta - \theta_0\right)^4 + K_5\left(\theta - \theta_0\right)^5 + K_6\left(\theta - \theta_0\right)^6 \\
|
||||
E_{ba} & = N_1 (r_{ij} - r_1) (\theta - \theta_0) + N_2(r_{jk} - r_2)(\theta - \theta_0) \\
|
||||
E_{UB} & = K_{ub} (r_{ik} - r_{ub})^2
|
||||
|
||||
where :math:`E_a` is the angle term, :math:`E_{ba}` is a bond-angle
|
||||
term, :math:`E_{UB}` is a Urey-Bradley bond term, :math:`\theta_0` is
|
||||
the equilibrium angle, :math:`r_1` and :math:`r_2` are the equilibrium
|
||||
bond lengths, and :math:`r_{ub}` is the equilibrium Urey-Bradley bond
|
||||
length.
|
||||
|
||||
These formulas match how the Tinker MD code performs its angle
|
||||
calculations for the AMOEBA and HIPPO force fields. See the
|
||||
:doc:`Howto amoeba <Howto_amoeba>` page for more information about
|
||||
the implementation of AMOEBA and HIPPO in LAMMPS.
|
||||
|
||||
Note that the :math:`E_a` and :math:`E_{ba}` formulas are identical to
|
||||
those used for the :doc:`angle_style class2/p6 <angle_class2>`
|
||||
command, however there is no bond-bond cross term formula for
|
||||
:math:`E_{bb}`. Additionally, there is a :math:`E_{UB}` term for a
|
||||
Urey-Bradley bond. It is effectively a harmonic bond between the I
|
||||
and K atoms of angle IJK, even though that bond is not enumerated in
|
||||
the "Bonds" section of the data file.
|
||||
|
||||
There are also two ways that Tinker computes the angle :math:`\theta`
|
||||
in the :math:`E_a` formula. The first is the standard way of treating
|
||||
IJK as an "in-plane" angle. The second is an "out-of-plane" method
|
||||
which Tinker may use if the center atom J in the angle is bonded to
|
||||
one additional atom in addition to I and K. In this case, all 4 atoms
|
||||
are used to compute the :math:`E_a` formula, resulting in forces on
|
||||
all 4 atoms. In the Tinker PRM file, these 2 options are denoted by
|
||||
*angle* versus *anglep* entries in the "Angle Bending Parameters"
|
||||
section of the PRM force field file. The *pflag* coefficient
|
||||
described below selects between the 2 options.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
Coefficients for the :math:`E_a`, :math:`E_{bb}`, and :math:`E_{ub}`
|
||||
formulas must be defined for each angle type via the :doc:`angle_coeff
|
||||
<angle_coeff>` command as in the example above, or in the data file or
|
||||
restart files read by the :doc:`read_data <read_data>` or
|
||||
:doc:`read_restart <read_restart>` commands.
|
||||
|
||||
These are the 8 coefficients for the :math:`E_a` formula:
|
||||
|
||||
* pflag = 0 or 1
|
||||
* ubflag = 0 or 1
|
||||
* :math:`\theta_0` (degrees)
|
||||
* :math:`K_2` (energy)
|
||||
* :math:`K_3` (energy)
|
||||
* :math:`K_4` (energy)
|
||||
* :math:`K_5` (energy)
|
||||
* :math:`K_6` (energy)
|
||||
|
||||
A pflag value of 0 vs 1 selects between the "in-plane" and
|
||||
"out-of-plane" options described above. Ubflag is 1 if there is a
|
||||
Urey-Bradley term associated with this angle type, else it is 0.
|
||||
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
|
||||
radians internally; hence the various :math:`K` values are effectively
|
||||
energy per radian\^2 or radian\^3 or radian\^4 or radian\^5 or
|
||||
radian\^6.
|
||||
|
||||
For the :math:`E_{ba}` formula, each line in a :doc:`angle_coeff
|
||||
<angle_coeff>` command in the input script lists 5 coefficients, the
|
||||
first of which is "ba" to indicate they are BondAngle coefficients.
|
||||
In a data file, these coefficients should be listed under a "BondAngle
|
||||
Coeffs" heading and you must leave out the "ba", i.e. only list 4
|
||||
coefficients after the angle type.
|
||||
|
||||
* ba
|
||||
* :math:`N_1` (energy/distance\^2)
|
||||
* :math:`N_2` (energy/distance\^2)
|
||||
* :math:`r_1` (distance)
|
||||
* :math:`r_2` (distance)
|
||||
|
||||
The :math:`\theta_0` value in the :math:`E_{ba}` formula is not specified,
|
||||
since it is the same value from the :math:`E_a` formula.
|
||||
|
||||
For the :math:`E_{ub}` formula, each line in a :doc:`angle_coeff
|
||||
<angle_coeff>` command in the input script lists 3 coefficients, the
|
||||
first of which is "ub" to indicate they are UreyBradley coefficients.
|
||||
In a data file, these coefficients should be listed under a
|
||||
"UreyBradley Coeffs" heading and you must leave out the "ub",
|
||||
i.e. only list 2 coefficients after the angle type.
|
||||
|
||||
* ub
|
||||
* :math:`K_{ub}` (energy/distance\^2)
|
||||
* :math:`r_{ub}` (distance)
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This angle style can only be used if LAMMPS was built with the AMOEBA
|
||||
package. See the :doc:`Build package <Build_package>` doc page for
|
||||
more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`angle_coeff <angle_coeff>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
@ -24,7 +24,7 @@ Examples
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
angle_style class2
|
||||
angle_coeff * 75.0
|
||||
angle_coeff * 75.0 25.0 0.3 0.002
|
||||
angle_coeff 1 bb 10.5872 1.0119 1.5228
|
||||
angle_coeff * ba 3.6551 24.895 1.0119 1.5228
|
||||
|
||||
|
||||
@ -1,32 +1,32 @@
|
||||
.. index:: angle_style sdk
|
||||
.. index:: angle_style sdk/omp
|
||||
.. index:: angle_style spica
|
||||
.. index:: angle_style spica/omp
|
||||
|
||||
angle_style sdk command
|
||||
=======================
|
||||
angle_style spica command
|
||||
=========================
|
||||
|
||||
Accelerator Variants: *sdk/omp*
|
||||
Accelerator Variants: *spica/omp*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
angle_style sdk
|
||||
angle_style spica
|
||||
|
||||
angle_style sdk/omp
|
||||
angle_style spica/omp
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
angle_style sdk
|
||||
angle_style spica
|
||||
angle_coeff 1 300.0 107.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *sdk* angle style is a combination of the harmonic angle potential,
|
||||
The *spica* angle style is a combination of the harmonic angle potential,
|
||||
|
||||
.. math::
|
||||
|
||||
@ -34,10 +34,10 @@ The *sdk* angle style is a combination of the harmonic angle potential,
|
||||
|
||||
where :math:`\theta_0` is the equilibrium value of the angle and
|
||||
:math:`K` a prefactor, with the *repulsive* part of the non-bonded
|
||||
*lj/sdk* pair style between the atoms 1 and 3. This angle potential is
|
||||
intended for coarse grained MD simulations with the CMM parameterization
|
||||
using the :doc:`pair_style lj/sdk <pair_sdk>`. Relative to the
|
||||
pair_style *lj/sdk*, however, the energy is shifted by
|
||||
*lj/spica* pair style between the atoms 1 and 3. This angle potential is
|
||||
intended for coarse grained MD simulations with the SPICA (formerly called SDK) parameterization
|
||||
using the :doc:`pair_style lj/spica <pair_spica>`. Relative to the
|
||||
pair_style *lj/spica*, however, the energy is shifted by
|
||||
:math:`\epsilon`, to avoid sudden jumps. Note that the usual 1/2 factor
|
||||
is included in :math:`K`.
|
||||
|
||||
@ -51,9 +51,12 @@ The following coefficients must be defined for each angle type via the
|
||||
radians internally; hence :math:`K` is effectively energy per
|
||||
radian\^2.
|
||||
|
||||
The required *lj/sdk* parameters are extracted automatically from the
|
||||
The required *lj/spica* parameters are extracted automatically from the
|
||||
pair_style.
|
||||
|
||||
Style *sdk*, the original implementation of style *spica*, is available
|
||||
for backward compatibility.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
@ -64,14 +67,14 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
This angle style can only be used if LAMMPS was built with the
|
||||
CG-SDK package. See the :doc:`Build package <Build_package>` doc
|
||||
CG-SPICA package. See the :doc:`Build package <Build_package>` doc
|
||||
page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`angle_coeff <angle_coeff>`, :doc:`angle_style harmonic <angle_harmonic>`, :doc:`pair_style lj/sdk <pair_sdk>`,
|
||||
:doc:`pair_style lj/sdk/coul/long <pair_sdk>`
|
||||
:doc:`angle_coeff <angle_coeff>`, :doc:`angle_style harmonic <angle_harmonic>`, :doc:`pair_style lj/spica <pair_spica>`,
|
||||
:doc:`pair_style lj/spica/coul/long <pair_spica>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
@ -73,6 +73,7 @@ of (g,i,k,o,t) to indicate which accelerated styles exist.
|
||||
* :doc:`zero <angle_zero>` - topology but no interactions
|
||||
* :doc:`hybrid <angle_hybrid>` - define multiple styles of angle interactions
|
||||
|
||||
* :doc:`amoeba <angle_amoeba>` - AMOEBA angle
|
||||
* :doc:`charmm <angle_charmm>` - CHARMM angle
|
||||
* :doc:`class2 <angle_class2>` - COMPASS (class 2) angle
|
||||
* :doc:`class2/p6 <angle_class2>` - COMPASS (class 2) angle expanded to 6th order
|
||||
@ -91,7 +92,7 @@ of (g,i,k,o,t) to indicate which accelerated styles exist.
|
||||
* :doc:`harmonic <angle_harmonic>` - harmonic angle
|
||||
* :doc:`mm3 <angle_mm3>` - anharmonic angle
|
||||
* :doc:`quartic <angle_quartic>` - angle with cubic and quartic terms
|
||||
* :doc:`sdk <angle_sdk>` - harmonic angle with repulsive SDK pair style between 1-3 atoms
|
||||
* :doc:`spica <angle_spica>` - harmonic angle with repulsive SPICA pair style between 1-3 atoms
|
||||
* :doc:`table <angle_table>` - tabulated by angle
|
||||
|
||||
----------
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
atom_style style args
|
||||
|
||||
* style = *angle* or *atomic* or *body* or *bond* or *charge* or *dipole* or *dpd* or *edpd* or *electron* or *ellipsoid* or *full* or *line* or *mdpd* or *molecular* or *oxdna* or *peri* or *smd* or *sph* or *sphere* or *bpm/sphere* or *spin* or *tdpd* or *tri* or *template* or *hybrid*
|
||||
* style = *amoeba* or *angle* or *atomic* or *body* or *bond* or *charge* or *dipole* or *dpd* or *edpd* or *electron* or *ellipsoid* or *full* or *line* or *mdpd* or *molecular* or *oxdna* or *peri* or *smd* or *sph* or *sphere* or or *bpm/sphere* or *spin* or *tdpd* or *tri* or *template* or *hybrid*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -78,6 +78,8 @@ coordinates, velocities, atom IDs and types. See the
|
||||
:doc:`set <set>` commands for info on how to set these various
|
||||
quantities.
|
||||
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
| *amoeba* | molecular + charge + 1/5 neighbors | AMOEBA/HIPPO polarized force fields |
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
| *angle* | bonds and angles | bead-spring polymers with stiffness |
|
||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||
@ -137,11 +139,13 @@ quantities.
|
||||
.. note::
|
||||
|
||||
It is possible to add some attributes, such as a molecule ID, to
|
||||
atom styles that do not have them via the :doc:`fix property/atom <fix_property_atom>` command. This command also
|
||||
allows new custom attributes consisting of extra integer or
|
||||
floating-point values to be added to atoms. See the :doc:`fix property/atom <fix_property_atom>` page for examples of cases
|
||||
where this is useful and details on how to initialize, access, and
|
||||
output the custom values.
|
||||
atom styles that do not have them via the :doc:`fix property/atom
|
||||
<fix_property_atom>` command. This command also allows new custom
|
||||
attributes consisting of extra integer or floating-point values to
|
||||
be added to atoms. See the :doc:`fix property/atom
|
||||
<fix_property_atom>` page for examples of cases where this is
|
||||
useful and details on how to initialize, access, and output the
|
||||
custom values.
|
||||
|
||||
All of the above styles define point particles, except the *sphere*,
|
||||
*bpm/sphere*, *ellipsoid*, *electron*, *peri*, *wavepacket*, *line*,
|
||||
@ -154,19 +158,20 @@ per-type basis, using the :doc:`mass <mass>` command, The finite-size
|
||||
particle styles assign mass to individual particles on a per-particle
|
||||
basis.
|
||||
|
||||
For the *sphere* and *bpm/sphere* styles, the particles are spheres and each stores a
|
||||
per-particle diameter and mass. If the diameter > 0.0, the particle
|
||||
is a finite-size sphere. If the diameter = 0.0, it is a point
|
||||
particle. Note that by use of the *disc* keyword with the :doc:`fix
|
||||
nve/sphere <fix_nve_sphere>`, :doc:`fix nvt/sphere <fix_nvt_sphere>`,
|
||||
:doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix npt/sphere
|
||||
<fix_npt_sphere>` commands for the *sphere* style, spheres can be effectively treated as 2d
|
||||
discs for a 2d simulation if desired. See also the :doc:`set
|
||||
density/disc <set>` command. The *sphere* and *bpm/sphere* styles take an optional 0
|
||||
or 1 argument. A value of 0 means the radius of each sphere is
|
||||
constant for the duration of the simulation. A value of 1 means the
|
||||
radii may vary dynamically during the simulation, e.g. due to use of
|
||||
the :doc:`fix adapt <fix_adapt>` command.
|
||||
For the *sphere* and *bpm/sphere* styles, the particles are spheres
|
||||
and each stores a per-particle diameter and mass. If the diameter >
|
||||
0.0, the particle is a finite-size sphere. If the diameter = 0.0, it
|
||||
is a point particle. Note that by use of the *disc* keyword with the
|
||||
:doc:`fix nve/sphere <fix_nve_sphere>`, :doc:`fix nvt/sphere
|
||||
<fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix
|
||||
npt/sphere <fix_npt_sphere>` commands for the *sphere* style, spheres
|
||||
can be effectively treated as 2d discs for a 2d simulation if desired.
|
||||
See also the :doc:`set density/disc <set>` command. The *sphere* and
|
||||
*bpm/sphere* styles take an optional 0 or 1 argument. A value of 0
|
||||
means the radius of each sphere is constant for the duration of the
|
||||
simulation. A value of 1 means the radii may vary dynamically during
|
||||
the simulation, e.g. due to use of the :doc:`fix adapt <fix_adapt>`
|
||||
command.
|
||||
|
||||
For the *ellipsoid* style, the particles are ellipsoids and each
|
||||
stores a flag which indicates whether it is a finite-size ellipsoid or
|
||||
@ -175,15 +180,16 @@ vector with the 3 diameters of the ellipsoid and a quaternion 4-vector
|
||||
with its orientation.
|
||||
|
||||
For the *dielectric* style, each particle can be either a physical
|
||||
particle (e.g. an ion), or an interface particle representing a boundary
|
||||
element. For physical particles, the per-particle properties are
|
||||
the same as atom_style full. For interface particles, in addition to
|
||||
these properties, each particle also has an area, a normal unit vector,
|
||||
a mean local curvature, the mean and difference of the dielectric constants
|
||||
of two sides of the interface, and the local dielectric constant at the
|
||||
boundary element. The distinction between the physical and interface
|
||||
particles is only meaningful when :doc:`fix polarize <fix_polarize>`
|
||||
commands are applied to the interface particles.
|
||||
particle (e.g. an ion), or an interface particle representing a
|
||||
boundary element. For physical particles, the per-particle properties
|
||||
are the same as atom_style full. For interface particles, in addition
|
||||
to these properties, each particle also has an area, a normal unit
|
||||
vector, a mean local curvature, the mean and difference of the
|
||||
dielectric constants of two sides of the interface, and the local
|
||||
dielectric constant at the boundary element. The distinction between
|
||||
the physical and interface particles is only meaningful when :doc:`fix
|
||||
polarize <fix_polarize>` commands are applied to the interface
|
||||
particles.
|
||||
|
||||
For the *dipole* style, a point dipole is defined for each point
|
||||
particle. Note that if you wish the particles to be finite-size
|
||||
@ -272,16 +278,17 @@ showing the use of the *template* atom style versus *molecular*.
|
||||
|
||||
.. note::
|
||||
|
||||
When using the *template* style with a :doc:`molecule template <molecule>` that contains multiple molecules, you should
|
||||
insure the atom types, bond types, angle_types, etc in all the
|
||||
molecules are consistent. E.g. if one molecule represents H2O and
|
||||
another CO2, then you probably do not want each molecule file to
|
||||
define 2 atom types and a single bond type, because they will conflict
|
||||
with each other when a mixture system of H2O and CO2 molecules is
|
||||
defined, e.g. by the :doc:`read_data <read_data>` command. Rather the
|
||||
H2O molecule should define atom types 1 and 2, and bond type 1. And
|
||||
the CO2 molecule should define atom types 3 and 4 (or atom types 3 and
|
||||
2 if a single oxygen type is desired), and bond type 2.
|
||||
When using the *template* style with a :doc:`molecule template
|
||||
<molecule>` that contains multiple molecules, you should insure the
|
||||
atom types, bond types, angle_types, etc in all the molecules are
|
||||
consistent. E.g. if one molecule represents H2O and another CO2,
|
||||
then you probably do not want each molecule file to define 2 atom
|
||||
types and a single bond type, because they will conflict with each
|
||||
other when a mixture system of H2O and CO2 molecules is defined,
|
||||
e.g. by the :doc:`read_data <read_data>` command. Rather the H2O
|
||||
molecule should define atom types 1 and 2, and bond type 1. And
|
||||
the CO2 molecule should define atom types 3 and 4 (or atom types 3
|
||||
and 2 if a single oxygen type is desired), and bond type 2.
|
||||
|
||||
For the *body* style, the particles are arbitrary bodies with internal
|
||||
attributes defined by the "style" of the bodies, which is specified by
|
||||
@ -339,6 +346,8 @@ Many of the styles listed above are only enabled if LAMMPS was built
|
||||
with a specific package, as listed below. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
The *amoeba* style is part of the AMOEBA package.
|
||||
|
||||
The *angle*, *bond*, *full*, *molecular*, and *template* styles are
|
||||
part of the MOLECULE package.
|
||||
|
||||
@ -350,9 +359,11 @@ The *dipole* style is part of the DIPOLE package.
|
||||
|
||||
The *peri* style is part of the PERI package for Peridynamics.
|
||||
|
||||
The *oxdna* style is part of the CG-DNA package for coarse-grained simulation of DNA and RNA.
|
||||
The *oxdna* style is part of the CG-DNA package for coarse-grained
|
||||
simulation of DNA and RNA.
|
||||
|
||||
The *electron* style is part of the EFF package for :doc:`electronic force fields <pair_eff>`.
|
||||
The *electron* style is part of the EFF package for :doc:`electronic
|
||||
force fields <pair_eff>`.
|
||||
|
||||
The *dpd* style is part of the DPD-REACT package for dissipative
|
||||
particle dynamics (DPD).
|
||||
@ -363,7 +374,8 @@ dissipative particle dynamics (mDPD), and transport dissipative particle
|
||||
dynamics (tDPD), respectively.
|
||||
|
||||
The *sph* style is part of the SPH package for smoothed particle
|
||||
hydrodynamics (SPH). See `this PDF guide <PDF/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
|
||||
hydrodynamics (SPH). See `this PDF guide
|
||||
<PDF/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
|
||||
|
||||
The *mesont* style is part of the MESONT package.
|
||||
|
||||
|
||||
@ -8,10 +8,11 @@ Syntax
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
compute ID group-ID contact/atom
|
||||
compute ID group-ID contact/atom group2-ID
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* contact/atom = style name of this compute command
|
||||
* group2-ID = optional argument to restrict which atoms to consider for contacts (see below)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -19,6 +20,7 @@ Examples
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all contact/atom
|
||||
compute 1 all contact/atom mygroup
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -45,6 +47,9 @@ overview of LAMMPS output options.
|
||||
The per-atom vector values will be a number >= 0.0, as explained
|
||||
above.
|
||||
|
||||
The optional *group2-ID* argument allows to specify from which group atoms
|
||||
contribute to the coordination number. Default setting is group 'all'.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
@ -63,4 +68,7 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
*group2-ID* = all
|
||||
|
||||
|
||||
none
|
||||
|
||||
@ -93,7 +93,9 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`
|
||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`,
|
||||
:doc:`fix pair <fix_pair>`
|
||||
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -45,7 +45,7 @@ Syntax
|
||||
* w_1, w_2,... = list of neighbor weights, one for each type
|
||||
* nx, ny, nz = number of grid points in x, y, and z directions (positive integer)
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *rmin0* or *switchflag* or *bzeroflag* or *quadraticflag* or *chem* or *bnormflag* or *wselfallflag* or *bikflag* or *switchinnerflag* or *sinner* or *dinner*
|
||||
* keyword = *rmin0* or *switchflag* or *bzeroflag* or *quadraticflag* or *chem* or *bnormflag* or *wselfallflag* or *bikflag* or *switchinnerflag* or *sinner* or *dinner* or *dgradflag*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -68,9 +68,6 @@ Syntax
|
||||
*wselfallflag* value = *0* or *1*
|
||||
*0* = self-contribution only for element of central atom
|
||||
*1* = self-contribution for all elements
|
||||
*bikflag* value = *0* or *1* (only implemented for compute snap)
|
||||
*0* = per-atom bispectrum descriptors are summed over atoms
|
||||
*1* = per-atom bispectrum descriptors are not summed over atoms
|
||||
*switchinnerflag* value = *0* or *1*
|
||||
*0* = do not use inner switching function
|
||||
*1* = use inner switching function
|
||||
@ -78,6 +75,12 @@ Syntax
|
||||
*sinnerlist* = *ntypes* values of *Sinner* (distance units)
|
||||
*dinner* values = *dinnerlist*
|
||||
*dinnerlist* = *ntypes* values of *Dinner* (distance units)
|
||||
*bikflag* value = *0* or *1* (only implemented for compute snap)
|
||||
*0* = descriptors are summed over atoms of each type
|
||||
*1* = descriptors are listed separately for each atom
|
||||
*dgradflag* value = *0* or *1* (only implemented for compute snap)
|
||||
*0* = descriptor gradients are summed over atoms of each type
|
||||
*1* = descriptor gradients are listed separately for each atom pair
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -360,15 +363,6 @@ This option is typically used in conjunction with the *chem* keyword,
|
||||
and LAMMPS will generate a warning if both *chem* and *bnormflag*
|
||||
are not both set or not both unset.
|
||||
|
||||
The keyword *bikflag* determines whether or not to expand the bispectrum
|
||||
rows of the global array returned by compute snap. If *bikflag* is set
|
||||
to *1* then the bispectrum row, which is typically the per-atom bispectrum
|
||||
descriptors :math:`B_{i,k}` summed over all atoms *i* to produce
|
||||
:math:`B_k`, becomes bispectrum rows equal to the number of atoms. Thus,
|
||||
the resulting bispectrum rows are :math:`B_{i,k}` instead of just
|
||||
:math:`B_k`. In this case, the entries in the final column for these rows
|
||||
are set to zero.
|
||||
|
||||
The keyword *switchinnerflag* with value 1
|
||||
activates an additional radial switching
|
||||
function similar to :math:`f_c(r)` above, but acting to switch off
|
||||
@ -393,6 +387,36 @@ When the central atom and the neighbor atom have different types,
|
||||
the values of :math:`S_{inner}` and :math:`D_{inner}` are
|
||||
the arithmetic means of the values for both types.
|
||||
|
||||
The keywords *bikflag* and *dgradflag* are only used by compute *snap*.
|
||||
The keyword *bikflag* determines whether or not to list the descriptors
|
||||
of each atom separately, or sum them together and list in a single row.
|
||||
If *bikflag* is set
|
||||
to *0* then a single bispectrum row is used, which contains the per-atom bispectrum
|
||||
descriptors :math:`B_{i,k}` summed over all atoms *i* to produce
|
||||
:math:`B_k`. If *bikflag* is set
|
||||
to *1* this is replaced by a separate per-atom bispectrum row for each atom.
|
||||
In this case, the entries in the final column for these rows
|
||||
are set to zero.
|
||||
|
||||
The keyword *dgradflag* determines whether to sum atom gradients or list
|
||||
them separately. If *dgradflag* is set to 0, the bispectrum
|
||||
descriptor gradients w.r.t. atom *j* are summed over all atoms *i'*
|
||||
of type *I* (similar to *snad/atom* above).
|
||||
If *dgradflag* is set to 1, gradients are listed separately for each pair of atoms.
|
||||
Each row corresponds
|
||||
to a single term :math:`\frac{\partial {B_{i,k} }}{\partial {r}^a_j}`
|
||||
where :math:`{r}^a_j` is the *a-th* position coordinate of the atom with global
|
||||
index *j*. This also changes
|
||||
the number of columns to be equal to the number of bispectrum components, with 3
|
||||
additional columns representing the indices :math:`i`, :math:`j`, and :math:`a`,
|
||||
as explained more in the Output info section below. The option *dgradflag=1*
|
||||
requires that *bikflag=1*.
|
||||
|
||||
.. note::
|
||||
|
||||
Using *dgradflag* = 1 produces a global array with :math:`N + 3N^2 + 1` rows
|
||||
which becomes expensive for systems with more than 1000 atoms.
|
||||
|
||||
.. note::
|
||||
|
||||
If you have a bonded system, then the settings of :doc:`special_bonds
|
||||
@ -503,6 +527,42 @@ components. For the purposes of handling contributions to force, virial,
|
||||
and quadratic combinations, these :math:`N_{elem}^3` sub-blocks are
|
||||
treated as a single block of :math:`K N_{elem}^3` columns.
|
||||
|
||||
If the *bik* keyword is set to 1, the structure of the snap array is expanded.
|
||||
The first :math:`N` rows of the snap array
|
||||
correspond to :math:`B_{i,k}` instead of a single row summed over atoms :math:`i`.
|
||||
In this case, the entries in the final column for these rows
|
||||
are set to zero. Also, each row contains only non-zero entries for the
|
||||
columns corresponding to the type of that atom. This is not true in the case
|
||||
of *dgradflag* keyword = 1 (see below).
|
||||
|
||||
If the *dgradflag* keyword is set to 1, this changes the structure of the
|
||||
global array completely.
|
||||
Here the *snad/atom* quantities are replaced with rows corresponding to
|
||||
descriptor gradient components on single atoms:
|
||||
|
||||
.. math::
|
||||
|
||||
\frac{\partial {B_{i,k} }}{\partial {r}^a_j}
|
||||
|
||||
where :math:`{r}^a_j` is the *a-th* position coordinate of the atom with global
|
||||
index *j*. The rows are
|
||||
organized in chunks, where each chunk corresponds to an atom with global index
|
||||
:math:`j`. The rows in an atom :math:`j` chunk correspond to
|
||||
atoms with global index :math:`i`. The total number of rows for
|
||||
these descriptor gradients is therefore :math:`3N^2`.
|
||||
The number of columns is equal to the number of bispectrum components,
|
||||
plus 3 additional left-most columns representing the global atom indices
|
||||
:math:`i`, :math:`j`,
|
||||
and Cartesian direction :math:`a` (0, 1, 2, for x, y, z).
|
||||
The first 3 columns of the first :math:`N` rows belong to the reference
|
||||
potential force components. The remaining K columns contain the
|
||||
:math:`B_{i,k}` per-atom descriptors corresponding to the non-zero entries
|
||||
obtained when *bikflag* = 1.
|
||||
The first column of the last row, after the first
|
||||
:math:`N + 3N^2` rows, contains the reference potential
|
||||
energy. The virial components are not used with this option. The total number of
|
||||
rows is therefore :math:`N + 3N^2 + 1` and the number of columns is :math:`K + 3`.
|
||||
|
||||
These values can be accessed by any command that uses per-atom values
|
||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||
page for an overview of LAMMPS output options. To see how this command
|
||||
|
||||
@ -1,4 +1,26 @@
|
||||
.. index:: dump
|
||||
.. index:: dump atom
|
||||
.. index:: dump cfg
|
||||
.. index:: dump custom
|
||||
.. index:: dump dcd
|
||||
.. index:: dump local
|
||||
.. index:: dump xtc
|
||||
.. index:: dump yaml
|
||||
.. index:: dump xyz
|
||||
.. index:: dump atom/gz
|
||||
.. index:: dump cfg/gz
|
||||
.. index:: dump custom/gz
|
||||
.. index:: dump local/gz
|
||||
.. index:: dump xyz/gz
|
||||
.. index:: dump atom/mpiio
|
||||
.. index:: dump cfg/mpiio
|
||||
.. index:: dump custom/mpiio
|
||||
.. index:: dump xyz/mpiio
|
||||
.. index:: dump atom/zstd
|
||||
.. index:: dump cfg/zstd
|
||||
.. index:: dump custom/zstd
|
||||
.. index:: dump xyz/zstd
|
||||
.. index:: dump local/zstd
|
||||
|
||||
dump command
|
||||
============
|
||||
@ -783,6 +805,11 @@ To write gzipped dump files, you must either compile LAMMPS with the
|
||||
-DLAMMPS_GZIP option or use the styles from the COMPRESS package.
|
||||
See the :doc:`Build settings <Build_settings>` page for details.
|
||||
|
||||
While a dump command is active (i.e. has not been stopped by using
|
||||
the undump command), no commands may be used that will change the
|
||||
timestep (e.g. :doc:`reset_timestep <reset_timestep>`). LAMMPS
|
||||
will terminate with an error otherwise.
|
||||
|
||||
The *atom/gz*, *cfg/gz*, *custom/gz*, and *xyz/gz* styles are part of
|
||||
the COMPRESS package. They are only enabled if LAMMPS was built with
|
||||
that package. See the :doc:`Build package <Build_package>` page for
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
.. index:: dump image
|
||||
.. index:: dump movie
|
||||
|
||||
dump image command
|
||||
==================
|
||||
|
||||
@ -17,7 +17,7 @@ Syntax
|
||||
* one or more keyword/value pairs may be appended
|
||||
|
||||
* these keywords apply to various dump styles
|
||||
* keyword = *append* or *at* or *balance* or *buffer* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
|
||||
* keyword = *append* or *at* or *balance* or *buffer* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *skip* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -65,6 +65,8 @@ Syntax
|
||||
*refresh* arg = c_ID = compute ID that supports a refresh operation
|
||||
*scale* arg = *yes* or *no*
|
||||
*sfactor* arg = coordinate scaling factor (> 0.0)
|
||||
*skip* arg = v_name
|
||||
v_name = variable with name which evaluates to non-zero (skip) or 0
|
||||
*sort* arg = *off* or *id* or N or -N
|
||||
off = no sorting of per-atom lines within a snapshot
|
||||
id = sort per-atom lines by atom ID
|
||||
@ -176,6 +178,28 @@ extra buffering.
|
||||
|
||||
----------
|
||||
|
||||
The *colname* keyword can be used to change the default header keyword
|
||||
for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS,
|
||||
and MPIIO variants. The setting for *ID string* replaces the default
|
||||
text with the provided string. *ID* can be a positive integer when it
|
||||
represents the column number counting from the left, a negative integer
|
||||
when it represents the column number from the right (i.e. -1 is the last
|
||||
column/keyword), or a custom dump keyword (or compute, fix, property, or
|
||||
variable reference) and then it replaces the string for that specific
|
||||
keyword. For *atom* dump styles only the keywords "id", "type", "x",
|
||||
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
|
||||
whether scaled or unwrapped coordinates were enabled or disabled, and
|
||||
it always assumes 8 columns for indexing regardless of whether image
|
||||
flags are enabled or not. For dump style *cfg* only changes to the
|
||||
"auxiliary" keywords (6th or later keyword) will become visible.
|
||||
|
||||
The *colname* keyword can be used multiple times. If multiple *colname*
|
||||
settings refer to the same keyword, the last setting has precedence. A
|
||||
setting of *default* clears all previous settings, reverting all values
|
||||
to their default names.
|
||||
|
||||
----------
|
||||
|
||||
The *delay* keyword applies to all dump styles. No snapshots will be
|
||||
output until the specified *Dstep* timestep or later. Specifying
|
||||
*Dstep* < 0 is the same as turning off the delay setting. This is a
|
||||
@ -357,7 +381,7 @@ always occur if the current timestep is a multiple of $N$, the
|
||||
frequency specified in the :doc:`dump <dump>` command or
|
||||
:doc:`dump_modify every <dump_modify>` command, including timestep 0.
|
||||
It will also always occur if the current simulation time is a multiple
|
||||
of *Delta*, the time interval specified in the doc:`dump_modify
|
||||
of *Delta*, the time interval specified in the :doc:`dump_modify
|
||||
every/time <dump_modify>` command.
|
||||
|
||||
But if this is not the case, a dump snapshot will only be written if
|
||||
@ -365,10 +389,10 @@ the setting of this keyword is *yes*\ . If it is *no*, which is the
|
||||
default, then it will not be written.
|
||||
|
||||
Note that if the argument to the :doc:`dump_modify every
|
||||
<dump_modify>` doc:`dump_modify every/time <dump_modify>` commands is
|
||||
a variable and not a numeric value, then specifying *first yes* is the
|
||||
only way to write a dump snapshot on the first timestep after the dump
|
||||
command is invoked.
|
||||
<dump_modify>` or doc:`dump_modify every/time <dump_modify>` commands
|
||||
is a variable and not a numeric value, then specifying *first yes* is
|
||||
the only way to write a dump snapshot on the first timestep after the
|
||||
dump command is invoked.
|
||||
|
||||
----------
|
||||
|
||||
@ -380,28 +404,6 @@ performed with dump style *xtc*\ .
|
||||
|
||||
----------
|
||||
|
||||
The *colname* keyword can be used to change the default header keyword
|
||||
for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS,
|
||||
and MPIIO variants. The setting for *ID string* replaces the default
|
||||
text with the provided string. *ID* can be a positive integer when it
|
||||
represents the column number counting from the left, a negative integer
|
||||
when it represents the column number from the right (i.e. -1 is the last
|
||||
column/keyword), or a custom dump keyword (or compute, fix, property, or
|
||||
variable reference) and then it replaces the string for that specific
|
||||
keyword. For *atom* dump styles only the keywords "id", "type", "x",
|
||||
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
|
||||
whether scaled or unwrapped coordinates were enabled or disabled, and
|
||||
it always assumes 8 columns for indexing regardless of whether image
|
||||
flags are enabled or not. For dump style *cfg* only changes to the
|
||||
"auxiliary" keywords (6th or later keyword) will become visible.
|
||||
|
||||
The *colname* keyword can be used multiple times. If multiple *colname*
|
||||
settings refer to the same keyword, the last setting has precedence. A
|
||||
setting of *default* clears all previous settings, reverting all values
|
||||
to their default names.
|
||||
|
||||
----------
|
||||
|
||||
The *format* keyword can be used to change the default numeric format output
|
||||
by the text-based dump styles: *atom*, *local*, *custom*, *cfg*, and
|
||||
*xyz* styles, and their MPIIO variants. Only the *line* or *none*
|
||||
@ -678,10 +680,28 @@ most effective when the typical magnitude of position data is between
|
||||
|
||||
----------
|
||||
|
||||
The *skip* keyword can be used with all dump styles. It allows a dump
|
||||
snapshot to be skipped (not written to the dump file), if a condition
|
||||
is met. The condition is computed by an :doc:`equal-style variable
|
||||
<variable>`, which should be specified as v_name, where name is the
|
||||
variable name. If the variable evaulation returns a non-zero value,
|
||||
then the dump snapshot is skipped. If it returns zero, the dump
|
||||
proceeds as usual. Note that :doc:`equal-style variable <variable>`
|
||||
can contain Boolean operators which effectively evaluate as a true
|
||||
(non-zero) or false (zero) result.
|
||||
|
||||
The *skip* keyword can be useful for debugging purposes, e.g. to dump
|
||||
only on a particular timestep. Or to limit output to conditions of
|
||||
interest, e.g. only when the force on some atom exceeds a threshold
|
||||
value.
|
||||
|
||||
----------
|
||||
|
||||
The *sort* keyword determines whether lines of per-atom output in a
|
||||
snapshot are sorted or not. A sort value of *off* means they will
|
||||
typically be written in indeterminate order, either in serial or
|
||||
parallel. This is the case even in serial if the :doc:`atom_modify sort <atom_modify>` option is turned on, which it is by default, to
|
||||
parallel. This is the case even in serial if the :doc:`atom_modify
|
||||
sort <atom_modify>` option is turned on, which it is by default, to
|
||||
improve performance. A sort value of *id* means sort the output by
|
||||
atom ID. A sort value of N or -N means sort the output by the value
|
||||
in the Nth column of per-atom info in either ascending or descending
|
||||
@ -727,8 +747,9 @@ are written to the dump file or included in the image. The possible
|
||||
attributes that can be tested for are the same as those that can be
|
||||
specified in the :doc:`dump custom <dump>` command, with the exception
|
||||
of the *element* attribute, since it is not a numeric value. Note
|
||||
that a different attributes can be used than those output by the :doc:`dump custom <dump>` command. E.g. you can output the coordinates and
|
||||
stress of atoms whose energy is above some threshold.
|
||||
that a different attributes can be used than those output by the
|
||||
:doc:`dump custom <dump>` command. E.g. you can output the
|
||||
coordinates and stress of atoms whose energy is above some threshold.
|
||||
|
||||
If an atom-style variable is used as the attribute, then it can
|
||||
produce continuous numeric values or effective Boolean 0/1 values
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
.. index:: dump netcdf
|
||||
.. index:: dump netcdf/mpiio
|
||||
|
||||
dump netcdf command
|
||||
===================
|
||||
|
||||
8
doc/src/dumps.rst
Normal file
8
doc/src/dumps.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Dump Styles
|
||||
###############
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:glob:
|
||||
|
||||
dump*
|
||||
@ -171,6 +171,8 @@ accelerated styles exist.
|
||||
* :doc:`adapt/fep <fix_adapt_fep>` - enhanced version of fix adapt
|
||||
* :doc:`addforce <fix_addforce>` - add a force to each atom
|
||||
* :doc:`addtorque <fix_addtorque>` - add a torque to a group of atoms
|
||||
* :doc:`amoeba/bitorsion <fix_amoeba_bitorsion>` - torsion/torsion terms in AMOEBA force field
|
||||
* :doc:`amoeba/pitorsion <fix_amoeba_pitorsion>` - 6-body terms in AMOEBA force field
|
||||
* :doc:`append/atoms <fix_append_atoms>` - append atoms to a running simulation
|
||||
* :doc:`atc <fix_atc>` - initiates a coupled MD/FE simulation
|
||||
* :doc:`atom/swap <fix_atom_swap>` - Monte Carlo atom type swapping
|
||||
@ -194,7 +196,7 @@ accelerated styles exist.
|
||||
* :doc:`bond/swap <fix_bond_swap>` - Monte Carlo bond swapping
|
||||
* :doc:`box/relax <fix_box_relax>` - relax box size during energy minimization
|
||||
* :doc:`charge/regulation <fix_charge_regulation>` - Monte Carlo sampling of charge regulation
|
||||
* :doc:`cmap <fix_cmap>` - enables CMAP cross-terms of the CHARMM force field
|
||||
* :doc:`cmap <fix_cmap>` - CMAP torsion/torsion terms in CHARMM force field
|
||||
* :doc:`colvars <fix_colvars>` - interface to the collective variables "Colvars" library
|
||||
* :doc:`controller <fix_controller>` - apply control loop feedback mechanism
|
||||
* :doc:`damping/cundall <fix_damping_cundall>` - Cundall non-viscous damping for granular simulations
|
||||
@ -305,6 +307,7 @@ accelerated styles exist.
|
||||
* :doc:`orient/fcc <fix_orient>` - add grain boundary migration force for FCC
|
||||
* :doc:`orient/eco <fix_orient_eco>` - add generalized grain boundary migration force
|
||||
* :doc:`pafi <fix_pafi>` - constrained force averages on hyper-planes to compute free energies (PAFI)
|
||||
* :doc:`pair <fix_pair>` - access per-atom info from pair styles
|
||||
* :doc:`phonon <fix_phonon>` - calculate dynamical matrix from MD simulations
|
||||
* :doc:`pimd <fix_pimd>` - Feynman path integral molecular dynamics
|
||||
* :doc:`planeforce <fix_planeforce>` - constrain atoms to move in a plane
|
||||
|
||||
166
doc/src/fix_amoeba_bitorsion.rst
Normal file
166
doc/src/fix_amoeba_bitorsion.rst
Normal file
@ -0,0 +1,166 @@
|
||||
.. index:: fix amoeba/bitorsion
|
||||
|
||||
fix amoeba/bitorsion command
|
||||
============================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID ameoba/bitorsion filename
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* amoeba/bitorsion = style name of this fix command
|
||||
* filename = force-field file with AMOEBA bitorsion coefficients
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix bit all amoeba/bitorsion bitorsion.ubiquitin.data
|
||||
read_data proteinX.data fix bit bitorsions BiTorsions
|
||||
fix_modify bit energy yes
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This command enables 5-body torsion/torsion interactions to be added
|
||||
to simulations which use the AMOEBA and HIPPO force fields. It
|
||||
matches how the Tinker MD code computes its torsion/torsion
|
||||
interactions for the AMOEBA and HIPPO force fields. See the
|
||||
:doc:`Howto amoeba <Howto_amoeba>` doc page for more information about
|
||||
the implementation of AMOEBA and HIPPO in LAMMPS.
|
||||
|
||||
Bitorsion interactions add additional potential energy contributions
|
||||
to pairs of overlapping phi-psi dihedrals of amino-acids, which are
|
||||
important to properly represent their conformational behavior.
|
||||
|
||||
The examples/amoeba directory has a sample input script and data file
|
||||
for ubiquitin, which illustrates use of the fix amoeba/bitorsion
|
||||
command.
|
||||
|
||||
As in the example above, this fix should be used before reading a data
|
||||
file that contains a listing of bitorsion interactions. The
|
||||
*filename* specified should contain the bitorsion parameters for the
|
||||
AMOEBA or HIPPO force field.
|
||||
|
||||
The data file read by the :doc:`read_data <read_data>` command must
|
||||
contain the topology of all the bitorsion interactions, similar to the
|
||||
topology data for bonds, angles, dihedrals, etc. Specifically it
|
||||
should have a line like this in its header section:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
N bitorsions
|
||||
|
||||
where N is the number of bitorsion 5-body interactions. It should
|
||||
also have a section in the body of the data file like this with N
|
||||
lines:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
BiTorsions
|
||||
|
||||
1 1 8 10 12 18 20
|
||||
2 5 18 20 22 25 27
|
||||
[...]
|
||||
N 3 314 315 317 318 330
|
||||
|
||||
The first column is an index from 1 to N to enumerate the bitorsion
|
||||
5-atom tuples; it is ignored by LAMMPS. The second column is the
|
||||
*type* of the interaction; it is an index into the bitorsion force
|
||||
field file. The remaining 5 columns are the atom IDs of the atoms in
|
||||
the two 4-atom dihedrals that overlap to create the bitorsion 5-body
|
||||
interaction. Note that the *bitorsions* and *BiTorsions* keywords for
|
||||
the header and body sections match those specified in the
|
||||
:doc:`read_data <read_data>` command following the data file name.
|
||||
|
||||
The data file should be generated by using the
|
||||
tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS
|
||||
data file from Tinker input files, including its PRM file which
|
||||
contains the parameters necessary for computing bitorsion
|
||||
interactions. The script must be invoked with the optional
|
||||
"-bitorsion" flag to do this; see the example for the ubiquitin system
|
||||
in the tools/tinker/README file. The same conversion script also
|
||||
creates the file of bitorsion coefficient data which is read by this
|
||||
command.
|
||||
|
||||
The potential energy associated with bitorsion interactions can be
|
||||
output as described below. It can also be included in the total
|
||||
potential energy of the system, as output by the :doc:`thermo_style
|
||||
<thermo_style>` command, if the :doc:`fix_modify energy <fix_modify>`
|
||||
command is used, as in the example above. See the note below about
|
||||
how to include the bitorsion energy when performing an :doc:`energy
|
||||
minimization <minimize>`.
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This fix writes the list of bitorsion interactions to :doc:`binary
|
||||
restart files <restart>`. See the :doc:`read_restart <read_restart>`
|
||||
command for info on how to re-specify a fix in an input script that
|
||||
reads a restart file, so that the operation of the fix continues in an
|
||||
uninterrupted fashion.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *energy* option is supported by
|
||||
this fix to add the potential energy of the bitorsion interactions to
|
||||
both the global potential energy and peratom potential energies of the
|
||||
system as part of :doc:`thermodynamic output <thermo_style>` or output
|
||||
by the :doc:`compute pe/atom <compute_pe_atom>` command. The default
|
||||
setting for this fix is :doc:`fix_modify energy yes <fix_modify>`.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *virial* option is supported by
|
||||
this fix to add the contribution due to the bitorsion interactions to
|
||||
both the global pressure and per-atom stress of the system via the
|
||||
:doc:`compute pressure <compute_pressure>` and :doc:`compute
|
||||
stress/atom <compute_stress_atom>` commands. The former can be
|
||||
accessed by :doc:`thermodynamic output <thermo_style>`. The default
|
||||
setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar is the potential
|
||||
energy discussed above. The scalar value calculated by this fix is
|
||||
"extensive".
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
|
||||
The forces due to this fix are imposed during an energy minimization,
|
||||
invoked by the :doc:`minimize <minimize>` command.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *respa* option is supported by this
|
||||
fix. This allows to set at which level of the :doc:`r-RESPA
|
||||
<run_style>` integrator the fix is adding its forces. Default is the
|
||||
outermost level.
|
||||
|
||||
.. note::
|
||||
|
||||
For energy minimization, if you want the potential energy
|
||||
associated with the bitorsion terms forces to be included in the
|
||||
total potential energy of the system (the quantity being
|
||||
minimized), you MUST not disable the :doc:`fix_modify <fix_modify>`
|
||||
*energy* option for this fix.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
To function as expected this fix command must be issued *before* a
|
||||
:doc:`read_data <read_data>` command but *after* a :doc:`read_restart
|
||||
<read_restart>` command.
|
||||
|
||||
This fix can only be used if LAMMPS was built with the AMOEBA package.
|
||||
See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix_modify <fix_modify>`, :doc:`read_data <read_data>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
178
doc/src/fix_amoeba_pitorsion.rst
Normal file
178
doc/src/fix_amoeba_pitorsion.rst
Normal file
@ -0,0 +1,178 @@
|
||||
.. index:: fix amoeba/pitorsion
|
||||
|
||||
fix amoeba/pitorsion command
|
||||
============================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID ameoba/pitorsion
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* amoeba/pitorsion = style name of this fix command
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix pit all amoeba/pitorsion
|
||||
read_data proteinX.data fix pit "pitorsion types" "PiTorsion Coeffs" &
|
||||
fix pit pitorsions PiTorsions
|
||||
fix_modify pit energy yes
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This command enables 6-body pitorsion interactions to be added to
|
||||
simulations which use the AMOEBA and HIPPO force fields. It matches
|
||||
how the Tinker MD code computes its pitorsion interactions for the
|
||||
AMOEBA and HIPPO force fields. See the :doc:`Howto amoeba
|
||||
<Howto_amoeba>` doc page for more information about the implementation
|
||||
of AMOEBA and HIPPO in LAMMPS.
|
||||
|
||||
Pitorsion interactions add additional potential energy contributions
|
||||
to 6-tuples of atoms IJKLMN which have a bond between atoms K and L,
|
||||
where both K and L are additionally bonded to exactly two other atoms.
|
||||
Namely K is also bonded to I and J. And L is also bonded to M and N.
|
||||
|
||||
The examples/amoeba directory has a sample input script and data file
|
||||
for ubiquitin, which illustrates use of the fix amoeba/pitorsion
|
||||
command.
|
||||
|
||||
As in the example above, this fix should be used before reading a data
|
||||
file that contains a listing of pitorsion interactions.
|
||||
|
||||
The data file read by the :doc:`read_data <read_data>` command must
|
||||
contain the topology of all the pitorsion interactions, similar to the
|
||||
topology data for bonds, angles, dihedrals, etc. Specifically it
|
||||
should have two lines like these in its header section:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
M pitorsion types
|
||||
N pitorsions
|
||||
|
||||
where N is the number of pitorsion 5-body interactions and M is the
|
||||
number of pitorsion types. It should also have two sections in the body
|
||||
of the data file like these with M and N lines each:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
PiTorsion Coeffs
|
||||
|
||||
1 6.85
|
||||
2 10.2
|
||||
[...]
|
||||
M 6.85
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
PiTorsions
|
||||
|
||||
1 1 8 10 12 18 20
|
||||
2 5 18 20 22 25 27
|
||||
[...]
|
||||
N 3 314 315 317 318 330
|
||||
|
||||
For PiTorsion Coeffs, the first column is an index from 1 to M to
|
||||
enumerate the pitorsion types. The second column is the single
|
||||
prefactor coefficient needed for each type.
|
||||
|
||||
For PiTorsions, the first column is an index from 1 to N to enumerate
|
||||
the pitorsion 5-atom tuples; it is ignored by LAMMPS. The second
|
||||
column is the "type" of the interaction; it is an index into the
|
||||
PiTorsion Coeffs. The remaining 5 columns are the atom IDs of the
|
||||
atoms in the two 4-atom dihedrals that overlap to create the pitorsion
|
||||
5-body interaction.
|
||||
|
||||
Note that the *pitorsion types* and *pitorsions* and *PiTorsion
|
||||
Coeffs* and *PiTorsions* keywords for the header and body sections of
|
||||
the data file match those specified in the :doc:`read_data
|
||||
<read_data>` command following the data file name.
|
||||
|
||||
The data file should be generated by using the
|
||||
tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS
|
||||
data file from Tinker input files, including its PRM file which
|
||||
contains the parameters necessary for computing pitorsion
|
||||
interactions.
|
||||
|
||||
The potential energy associated with pitorsion interactions can be
|
||||
output as described below. It can also be included in the total
|
||||
potential energy of the system, as output by the :doc:`thermo_style
|
||||
<thermo_style>` command, if the :doc:`fix_modify energy <fix_modify>`
|
||||
command is used, as in the example above. See the note below about
|
||||
how to include the pitorsion energy when performing an :doc:`energy
|
||||
minimization <minimize>`.
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This fix writes the list of pitorsion interactions to :doc:`binary
|
||||
restart files <restart>`. See the :doc:`read_restart <read_restart>`
|
||||
command for info on how to re-specify a fix in an input script that
|
||||
reads a restart file, so that the operation of the fix continues in an
|
||||
uninterrupted fashion.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *energy* option is supported by
|
||||
this fix to add the potential energy of the pitorsion interactions to
|
||||
both the global potential energy and peratom potential energies of the
|
||||
system as part of :doc:`thermodynamic output <thermo_style>` or output
|
||||
by the :doc:`compute pe/atom <compute_pe_atom>` command. The default
|
||||
setting for this fix is :doc:`fix_modify energy yes <fix_modify>`.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *virial* option is supported by
|
||||
this fix to add the contribution due to the pitorsion interactions to
|
||||
both the global pressure and per-atom stress of the system via the
|
||||
:doc:`compute pressure <compute_pressure>` and :doc:`compute
|
||||
stress/atom <compute_stress_atom>` commands. The former can be
|
||||
accessed by :doc:`thermodynamic output <thermo_style>`. The default
|
||||
setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar is the potential
|
||||
energy discussed above. The scalar value calculated by this fix is
|
||||
"extensive".
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
|
||||
The forces due to this fix are imposed during an energy minimization,
|
||||
invoked by the :doc:`minimize <minimize>` command.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *respa* option is supported by this
|
||||
fix. This allows to set at which level of the :doc:`r-RESPA
|
||||
<run_style>` integrator the fix is adding its forces. Default is the
|
||||
outermost level.
|
||||
|
||||
.. note::
|
||||
|
||||
For energy minimization, if you want the potential energy
|
||||
associated with the pitorsion terms forces to be included in the
|
||||
total potential energy of the system (the quantity being
|
||||
minimized), you MUST not disable the :doc:`fix_modify <fix_modify>`
|
||||
*energy* option for this fix.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
To function as expected this fix command must be issued *before* a
|
||||
:doc:`read_data <read_data>` command but *after* a :doc:`read_restart
|
||||
<read_restart>` command.
|
||||
|
||||
This fix can only be used if LAMMPS was built with the AMOEBA package.
|
||||
See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix_modify <fix_modify>`, :doc:`read_data <read_data>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
@ -26,13 +26,13 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This command enables CMAP cross-terms to be added to simulations which
|
||||
use the CHARMM force field. These are relevant for any CHARMM model
|
||||
of a peptide or protein sequences that is 3 or more amino-acid
|
||||
residues long; see :ref:`(Buck) <Buck>` and :ref:`(Brooks) <Brooks2>`
|
||||
for details, including the analytic energy expressions for CMAP
|
||||
interactions. The CMAP cross-terms add additional potential energy
|
||||
contributions to pairs of overlapping phi-psi dihedrals of
|
||||
This command enables CMAP 5-body interactions to be added to
|
||||
simulations which use the CHARMM force field. These are relevant for
|
||||
any CHARMM model of a peptide or protein sequences that is 3 or more
|
||||
amino-acid residues long; see :ref:`(Buck) <Buck>` and :ref:`(Brooks)
|
||||
<Brooks2>` for details, including the analytic energy expressions for
|
||||
CMAP interactions. The CMAP 5-body terms add additional potential
|
||||
energy contributions to pairs of overlapping phi-psi dihedrals of
|
||||
amino-acids, which are important to properly represent their
|
||||
conformational behavior.
|
||||
|
||||
@ -47,15 +47,15 @@ lammps/potentials directory: charmm22.cmap and charmm36.cmap.
|
||||
|
||||
The data file read by the "read_data" must contain the topology of all
|
||||
the CMAP interactions, similar to the topology data for bonds, angles,
|
||||
dihedrals, etc. Specially it should have a line like this
|
||||
in its header section:
|
||||
dihedrals, etc. Specially it should have a line like this in its
|
||||
header section:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
N crossterms
|
||||
|
||||
where N is the number of CMAP cross-terms. It should also have a section
|
||||
in the body of the data file like this with N lines:
|
||||
where N is the number of CMAP 5-body interactions. It should also
|
||||
have a section in the body of the data file like this with N lines:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -66,28 +66,29 @@ in the body of the data file like this with N lines:
|
||||
[...]
|
||||
N 3 314 315 317 318 330
|
||||
|
||||
The first column is an index from 1 to N to enumerate the CMAP terms;
|
||||
it is ignored by LAMMPS. The second column is the "type" of the
|
||||
interaction; it is an index into the CMAP force field file. The
|
||||
The first column is an index from 1 to N to enumerate the CMAP 5-atom
|
||||
tuples; it is ignored by LAMMPS. The second column is the "type" of
|
||||
the interaction; it is an index into the CMAP force field file. The
|
||||
remaining 5 columns are the atom IDs of the atoms in the two 4-atom
|
||||
dihedrals that overlap to create the CMAP 5-body interaction. Note
|
||||
that the "crossterm" and "CMAP" keywords for the header and body
|
||||
sections match those specified in the read_data command following the
|
||||
data file name; see the :doc:`read_data <read_data>` page for
|
||||
more details.
|
||||
dihedrals that overlap to create the CMAP interaction. Note that the
|
||||
"crossterm" and "CMAP" keywords for the header and body sections match
|
||||
those specified in the read_data command following the data file name;
|
||||
see the :doc:`read_data <read_data>` page for more details.
|
||||
|
||||
A data file containing CMAP cross-terms can be generated from a PDB
|
||||
file using the charmm2lammps.pl script in the tools/ch2lmp directory
|
||||
of the LAMMPS distribution. The script must be invoked with the
|
||||
optional "-cmap" flag to do this; see the tools/ch2lmp/README file for
|
||||
more information.
|
||||
A data file containing CMAP 5-body interactions can be generated from
|
||||
a PDB file using the charmm2lammps.pl script in the tools/ch2lmp
|
||||
directory of the LAMMPS distribution. The script must be invoked with
|
||||
the optional "-cmap" flag to do this; see the tools/ch2lmp/README file
|
||||
for more information. The same conversion script also creates the
|
||||
file of CMAP coefficient data which is read by this command.
|
||||
|
||||
The potential energy associated with CMAP interactions can be output
|
||||
as described below. It can also be included in the total potential
|
||||
energy of the system, as output by the
|
||||
:doc:`thermo_style <thermo_style>` command, if the :doc:`fix_modify energy <fix_modify>` command is used, as in the example above. See
|
||||
the note below about how to include the CMAP energy when performing an
|
||||
:doc:`energy minimization <minimize>`.
|
||||
energy of the system, as output by the :doc:`thermo_style
|
||||
<thermo_style>` command, if the :doc:`fix_modify energy <fix_modify>`
|
||||
command is used, as in the example above. See the note below about
|
||||
how to include the CMAP energy when performing an :doc:`energy
|
||||
minimization <minimize>`.
|
||||
|
||||
----------
|
||||
|
||||
@ -134,10 +135,11 @@ outermost level.
|
||||
|
||||
.. note::
|
||||
|
||||
If you want the potential energy associated with the CMAP terms
|
||||
forces to be included in the total potential energy of the system
|
||||
(the quantity being minimized), you MUST not disable the
|
||||
:doc:`fix_modify <fix_modify>` *energy* option for this fix.
|
||||
For energy minimization, if you want the potential energy
|
||||
associated with the CMAP terms forces to be included in the total
|
||||
potential energy of the system (the quantity being minimized), you
|
||||
MUST not disable the :doc:`fix_modify <fix_modify>` *energy* option
|
||||
for this fix.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
104
doc/src/fix_pair.rst
Normal file
104
doc/src/fix_pair.rst
Normal file
@ -0,0 +1,104 @@
|
||||
.. index:: fix pair
|
||||
|
||||
fix pair command
|
||||
=======================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID pair N pairstyle name flag ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* pair = style name of this fix command
|
||||
* N = invoke this fix once every N timesteps
|
||||
* pairstyle = name of pair style to extract info from (e.g. eam)
|
||||
* one or more name/flag pairs can be listed
|
||||
* name = name of quantity the pair style allows extraction of
|
||||
* flag = 1 if pair style needs to be triggered to produce data for name, 0 if not
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix request all pair 100 eam rho 0
|
||||
fix request all pair 100 amoeba uind 0 uinp 0
|
||||
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Extract per-atom quantities from a pair style and store them in this
|
||||
fix so they can be accessed by other LAMMPS commands, e.g. by a
|
||||
:doc:`dump <dump>` command or by another :doc:`fix <fix>`,
|
||||
:doc:`compute <compute>`, or :doc:`variable <variable>` command.
|
||||
|
||||
These are example use cases:
|
||||
|
||||
* extract per-atom density from :doc:`pair_style eam <pair_eam>` to a dump file
|
||||
* extract induced dipoles from :doc:`pair_style amoeba <pair_amoeba>` to a dump file
|
||||
* extract accuracy metrics from a machine-learned potential to trigger output when
|
||||
a condition is met (see the :doc:`dump_modify skip <dump_modify>` command)
|
||||
|
||||
The *N* argument determines how often the fix is invoked.
|
||||
|
||||
The *pairstyle* argument is the name of the pair style. It can be a
|
||||
sub-style used in a :doc:`pair_style hybrid <pair_hybrid>` command.
|
||||
|
||||
One or more *name/flag* pairs of arguments follow. Each *name* is a
|
||||
per-atom quantity which the pair style must recognize as an extraction
|
||||
request. See the doc pages for individual :doc:`pair_styles
|
||||
<pair_style>` to see what fix pair requests (if any) they support.
|
||||
|
||||
The *flag* setting determines whether this fix will also trigger the
|
||||
pair style to compute the named quantity so it can be extracted. If
|
||||
the quantity is always computed by the pair style, no trigger is
|
||||
needed; specify *flag* = 0. If the quantity is not always computed
|
||||
(e.g. it is expensive to calculate), then specify *flag* = 1. This
|
||||
will trigger the quantity to be calculated only on timesteps it is
|
||||
needed. Again, see the doc pages for individual :doc:`pair_styles
|
||||
<pair_style>` to determine which fix pair requests (if any) need to be
|
||||
triggered with a *flag* = 1 setting.
|
||||
|
||||
The per-atom data extracted from the pair style is stored by this fix
|
||||
as either a per-atom vector or array. If there is only one *name*
|
||||
argument specified and the pair style computes a single value for each
|
||||
atom, then this fix stores it as a per-atom vector. Otherwise a
|
||||
per-atom array is created, with its data in the order of the *name*
|
||||
arguments.
|
||||
|
||||
For example, :doc:`pair_style amoeba <pair_amoeba>` allows extraction
|
||||
of two named quantities: "uind" and "uinp", both of which are
|
||||
3-vectors for each atom, i.e. dipole moments. If this fix specifies
|
||||
"uind" and "uinp" (in that order), then a 6-column per-atom array will
|
||||
be created. Columns 1-3 will store the "uind" values; columns 4-6
|
||||
will store the "uinp" values.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files
|
||||
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
|
||||
relevant to this fix.
|
||||
|
||||
As explained above, this fix produces a per-atom vector or array which
|
||||
can be accessed by various :doc:`output commands <Howto_output>`. If
|
||||
an array is produced, the number of columns is the sum of the number
|
||||
of per-atom quantities produced by each *name* argument requested from
|
||||
the pair style.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute pair <compute_pair>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
77
doc/src/improper_amoeba.rst
Normal file
77
doc/src/improper_amoeba.rst
Normal file
@ -0,0 +1,77 @@
|
||||
.. index:: improper_style amoeba
|
||||
|
||||
improper_style harmonic command
|
||||
===============================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
improper_style amoeba
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
improper_style amoeba
|
||||
improper_coeff 1 49.6
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *amoeba* improper style uses the potential
|
||||
|
||||
.. math::
|
||||
|
||||
E = K (\chi)^2
|
||||
|
||||
where :math:`\chi` is the improper angle and :math:`K` is a prefactor.
|
||||
Note that the usual 1/2 factor is included in :math:`K`.
|
||||
|
||||
This formula seems like a simplified version of the formula for the
|
||||
:doc:`improper_style harmonic <improper_harmonic>` command with
|
||||
:math:`\chi_0` = 0.0. However the computation of the angle
|
||||
:math:`\chi` is done differently to match how the Tinker MD code
|
||||
computes its out-of-plane improper for the AMOEBA and HIPPO force
|
||||
fields. See the :doc:`Howto amoeba <Howto_amoeba>` doc page for more
|
||||
information about the implementation of AMOEBA and HIPPO in LAMMPS.
|
||||
|
||||
If the 4 atoms in an improper quadruplet (listed in the data file read
|
||||
by the :doc:`read_data <read_data>` command are ordered I,J,K,L then
|
||||
atoms I,K,L are considered to lie in a plane and atom J is
|
||||
out-of-place. The angle :math:`\chi_0` is computed as the Allinger
|
||||
angle which is defined as the angle between the plane of I,K,L, and
|
||||
the vector from atom I to atom J.
|
||||
|
||||
The following coefficient must be defined for each improper type via
|
||||
the :doc:`improper_coeff <improper_coeff>` command as in the example
|
||||
above, or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands:
|
||||
|
||||
* :math:`K` (energy)
|
||||
|
||||
Note that the angle :math:`\chi` is computed in radians; hence
|
||||
:math:`K` is effectively energy per radian\^2.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This improper style can only be used if LAMMPS was built with the
|
||||
AMOEBA package. See the :doc:`Build package <Build_package>` doc page
|
||||
for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`improper_coeff <improper_coeff>`, `improper_harmonic
|
||||
:doc:<improper_harmonic>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
@ -77,6 +77,7 @@ more of (g,i,k,o,t) to indicate which accelerated styles exist.
|
||||
* :doc:`zero <improper_zero>` - topology but no interactions
|
||||
* :doc:`hybrid <improper_hybrid>` - define multiple styles of improper interactions
|
||||
|
||||
* :doc:`amoeba <improper_amoeba>` - AMOEBA out-of-plane improper
|
||||
* :doc:`class2 <improper_class2>` - COMPASS (class 2) improper
|
||||
* :doc:`cossq <improper_cossq>` - improper with a cosine squared term
|
||||
* :doc:`cvff <improper_cvff>` - CVFF improper
|
||||
|
||||
@ -29,15 +29,16 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *kim command* includes a set of sub-commands that allow LAMMPS users to use
|
||||
interatomic models (IM) (potentials and force fields) and their predictions for
|
||||
various physical properties archived in the
|
||||
`Open Knowledgebase of Interatomic Models (OpenKIM) <https://openkim.org>`_
|
||||
repository.
|
||||
The *kim command* includes a set of sub-commands that allow LAMMPS
|
||||
users to use interatomic models (IM) (potentials and force fields) and
|
||||
their predictions for various physical properties archived in the
|
||||
`Open Knowledgebase of Interatomic Models (OpenKIM)
|
||||
<https://openkim.org>`_ repository.
|
||||
|
||||
Using OpenKIM provides LAMMPS users with immediate access to a large number of
|
||||
verified IMs and their predictions. OpenKIM IMs have multiple benefits including
|
||||
`reliability, reproducibility and convenience <https://openkim.org/doc/overview/kim-features/>`_.
|
||||
Using OpenKIM provides LAMMPS users with immediate access to a large
|
||||
number of verified IMs and their predictions. OpenKIM IMs have
|
||||
multiple benefits including `reliability, reproducibility and
|
||||
convenience <https://openkim.org/doc/overview/kim-features/>`_.
|
||||
|
||||
.. _IM_types:
|
||||
|
||||
|
||||
@ -49,29 +49,27 @@ sometimes be faster. Either style should give the same answers.
|
||||
|
||||
The *multi* style is a modified binning algorithm that is useful for
|
||||
systems with a wide range of cutoff distances, e.g. due to different
|
||||
size particles. For granular pair styles, cutoffs are set to the
|
||||
sum of the maximum atomic radii for each atom type.
|
||||
For the *bin* style, the bin size is set to 1/2 of
|
||||
the largest cutoff distance between any pair of atom types and a
|
||||
single set of bins is defined to search over for all atom types. This
|
||||
can be inefficient if one pair of types has a very long cutoff, but
|
||||
other type pairs have a much shorter cutoff. The *multi* style uses
|
||||
different sized bins for collections of different sized particles, where
|
||||
"size" may mean the physical size of the particle or its cutoff
|
||||
distance for interacting with other particles. Different
|
||||
size particles. For granular pair styles, cutoffs are set to the sum of
|
||||
the maximum atomic radii for each atom type. For the *bin* style, the
|
||||
bin size is set to 1/2 of the largest cutoff distance between any pair
|
||||
of atom types and a single set of bins is defined to search over for all
|
||||
atom types. This can be inefficient if one pair of types has a very
|
||||
long cutoff, but other type pairs have a much shorter cutoff. The
|
||||
*multi* style uses different sized bins for collections of different
|
||||
sized particles, where "size" may mean the physical size of the particle
|
||||
or its cutoff distance for interacting with other particles. Different
|
||||
sets of bins are then used to construct the neighbor lists as as further
|
||||
described by Shire, Hanley, and Stratford :ref:`(Shire) <bytype-Shire>`.
|
||||
This imposes some extra setup overhead, but the searches themselves
|
||||
may be much faster. By default, each atom type defines a separate
|
||||
collection of particles. For systems where two or more atom types
|
||||
have the same size (either physical size or cutoff distance), the
|
||||
definition of collections can be customized, which can result in less
|
||||
overhead and faster performance. See the :doc:`neigh_modify <neigh_modify>`
|
||||
command for how to define custom collections. Whether the collection
|
||||
definition is customized or not, also see the
|
||||
:doc:`comm_modify mode multi <comm_modify>` command for communication
|
||||
options that further improve performance in a manner consistent with
|
||||
neighbor style multi.
|
||||
This imposes some extra setup overhead, but the searches themselves may
|
||||
be much faster. By default, each atom type defines a separate collection
|
||||
of particles. For systems where two or more atom types have the same
|
||||
size (either physical size or cutoff distance), the definition of
|
||||
collections can be customized, which can result in less overhead and
|
||||
faster performance. See the :doc:`neigh_modify <neigh_modify>` command
|
||||
for how to define custom collections. Whether the collection definition
|
||||
is customized or not, also see the :doc:`comm_modify mode multi
|
||||
<comm_modify>` command for communication options that further improve
|
||||
performance in a manner consistent with neighbor style multi.
|
||||
|
||||
An alternate style, *multi/old*, sets the bin size to 1/2 of the shortest
|
||||
cutoff distance and multiple sets of bins are defined to search over for
|
||||
@ -80,6 +78,16 @@ algorithm in LAMMPS but was found to be significantly slower than the new
|
||||
approach. For now we are keeping the old option in case there are use cases
|
||||
where multi/old outperforms the new multi style.
|
||||
|
||||
.. note::
|
||||
|
||||
If there are multiple sub-styles in a :doc:`hybrid/overlay pair style
|
||||
<pair_hybrid>` that cover the same atom types, but have significantly
|
||||
different cutoffs, the *multi* style does not apply. Instead, the
|
||||
:doc:`pair_modify neigh/trim <pair_modify>` setting applies (which is
|
||||
*yes* by default). Please check the neighbor list summary printed at
|
||||
the beginning of a calculation to verify that the desired set of
|
||||
neighbor list builds is performed.
|
||||
|
||||
|
||||
The :doc:`neigh_modify <neigh_modify>` command has additional options
|
||||
that control how often neighbor lists are built and which pairs are
|
||||
|
||||
265
doc/src/pair_amoeba.rst
Normal file
265
doc/src/pair_amoeba.rst
Normal file
@ -0,0 +1,265 @@
|
||||
.. index:: pair_style amoeba
|
||||
.. index:: pair_style hippo
|
||||
|
||||
pair_style amoeba command
|
||||
=========================
|
||||
|
||||
pair_style hippo command
|
||||
========================
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style style
|
||||
|
||||
* style = *amoeba* or *hippo*
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style amoeba
|
||||
pair_coeff * * protein.prm.amoeba protein.key.amoeba
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style hippo
|
||||
pair_coeff * * water.prm.hippo water.key.hippo
|
||||
|
||||
|
||||
Additional info
|
||||
"""""""""""""""
|
||||
|
||||
* :doc:`Howto amoeba <Howto_amoeba>`
|
||||
* examples/amoeba
|
||||
* tools/amoeba
|
||||
* potentials/\*.amoeba
|
||||
* potentials/\*.hippo
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *amoeba* style computes the AMOEBA polarizable field formulated
|
||||
by Jay Ponder's group at the U Washington at St Louis :ref:`(Ren)
|
||||
<amoeba-Ren>`, :ref:`(Shi) <amoeba-Shi>`. The *hippo* style computes
|
||||
the HIPPO polarizable force field, an extension to AMOEBA, formulated
|
||||
by Josh Rackers and collaborators in the Ponder group :ref:`(Rackers)
|
||||
<amoeba-Rackers>`.
|
||||
|
||||
These force fields can be used when polarization effects are desired
|
||||
in simulations of water, organic molecules, and biomolecules including
|
||||
proteins, provided that parameterizations (Tinker PRM force field
|
||||
files) are available for the systems you are interested in. Files in
|
||||
the LAMMPS potentials directory with a "amoeba" or "hippo" suffix can
|
||||
be used. The Tinker distribution and website have additional force
|
||||
field files as well.
|
||||
|
||||
As discussed on the :doc:`Howto amoeba <Howto_amoeba>` doc page, the
|
||||
intermolecular (non-bonded) portion of the AMOEBA force field contains
|
||||
these terms:
|
||||
|
||||
.. math::
|
||||
|
||||
U_{amoeba} = U_{multipole} + U_{polar} + U_{hal}
|
||||
|
||||
while the HIPPO force field contains these terms:
|
||||
|
||||
.. math::
|
||||
|
||||
U_{hippo} = U_{multipole} + U_{polar} + U_{qxfer} + U_{repulsion} + U_{dispersion}
|
||||
|
||||
Conceptually, these terms compute the following interactions:
|
||||
|
||||
* :math:`U_{hal}` = buffered 14-7 van der Waals with offsets applied to hydrogen atoms
|
||||
* :math:`U_{repulsion}` = Pauli repulsion due to rearrangement of electron density
|
||||
* :math:`U_{dispersion}` = dispersion between correlated, instantaneous induced dipole moments
|
||||
* :math:`U_{multipole}` = electrostatics between permanent point charges, dipoles, and quadrupoles
|
||||
* :math:`U_{polar}` = electronic polarization between induced point dipoles
|
||||
* :math:`U_{qxfer}` = charge transfer effects
|
||||
|
||||
Note that the AMOEBA versus HIPPO force fields typically compute the
|
||||
same term differently using their own formulas. The references on
|
||||
this doc page give full details for both force fields.
|
||||
|
||||
The formulas for the AMOEBA energy terms are:
|
||||
|
||||
.. math::
|
||||
|
||||
U_{hal} = \epsilon_{ij} \left( \frac{1.07}{\rho_{ij} + 0.07} \right)^7 \left( \frac{1.12}{\rho_{ij}^7 + 0.12} - 2 \right)
|
||||
U_{multipole} = \vec{M_i}\bold{T_{ij}}\vec{M_j}
|
||||
\vec{M} = \left( q, \vec{\mu_{perm}}, \bold{\Theta} \right)
|
||||
U_{polar} = \frac{1}{2}\vec{\mu_i}^{ind} \vec{E_i}^{perm}
|
||||
|
||||
The formulas for the HIPPO energy terms are:
|
||||
|
||||
.. math::
|
||||
|
||||
U_{multipole} = Z_i \frac{1}{r_{ij}} Z_j + Z_i T_{ij}^{damp} \vec{M_j} + Z_j T_{ji}^{damp} \vec{M_i} + \vec{M_i} T_{ij}^{damp} \vec{M_j}
|
||||
\vec{M} = \left( Q, \vec{\mu_{perm}}, \bold{\Theta} \right)
|
||||
U_{polar} = \frac{1}{2}\vec{\mu_i}^{ind} \vec{E_i}^{perm}
|
||||
U_{qxfer} = \epsilon_i e^{-\eta_j r_{ij}} + \epsilon_j e^{-\eta_i r_{ij}}
|
||||
U_{repulsion} = \frac{K_i K_j}{r_{ij}} S^2
|
||||
S^2 = \left( \int{\phi_i \phi_j} dv \right)^2 = \vec{M_i}\bold{T_{ij}^{repulsion}}\vec{M_j}
|
||||
U_{dispersion} = -\frac{C_6^iC_6^j}{r_{ij}^6} \left( f_{damp}^{dispersion} \right)_{ij}^2
|
||||
|
||||
.. note::
|
||||
|
||||
The AMOEBA and HIPPO force fields compute long-range charge, dipole,
|
||||
and quadrupole interactions as well as long-range dispersion
|
||||
effects. However, unlike other models with long-range interactions
|
||||
in LAMMPS, this does not require use of a KSpace style via the
|
||||
:doc:`kspace_style <kspace_style>` command. That is because for
|
||||
AMOEBA and HIPPO the long-range computations are intertwined with
|
||||
the pairwise computations. So these pair style include both short-
|
||||
and long-range computations. This means the energy and virial
|
||||
computed by the pair style as well as the "Pair" timing reported by
|
||||
LAMMPS will include the long-range calculations.
|
||||
|
||||
The implementation of the AMOEBA and HIPPO force fields in LAMMPS was
|
||||
done using F90 code provided by the Ponder group from their `Tinker MD
|
||||
code <https://dasher.wustl.edu/tinker/>`_.
|
||||
|
||||
The current implementation (July 2022) of AMOEBA in LAMMPS matches the
|
||||
version discussed in :ref:`(Ponder) <amoeba-Ponder>`, :ref:`(Ren)
|
||||
<amoeba-Ren>`, and :ref:`(Shi) <amoeba-Shi>`. Likewise the current
|
||||
implementation of HIPPO in LAMMPS matches the version discussed in
|
||||
:ref:`(Rackers) <amoeba-Rackers>`.
|
||||
|
||||
----------
|
||||
|
||||
Only a single pair_coeff command is used with either the *amoeba* and
|
||||
*hippo* styles which specifies two Tinker files, a PRM and KEY file.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_coeff * * ../potentials/protein.prm.amoeba ../potentials/protein.key.amoeba
|
||||
pair_coeff * * ../potentials/water.prm.hippo ../potentials/water.key.hippo
|
||||
|
||||
Examples of the PRM files are in the potentials directory with an
|
||||
\*.amoeba or \*.hippo suffix. The examples/amoeba directory has
|
||||
examples of both PRM and KEY files.
|
||||
|
||||
A Tinker PRM file is composed of sections, each of which has multiple
|
||||
lines. A Tinker KEY file is composed of lines, each of which has a
|
||||
keyword followed by zero or more parameters.
|
||||
|
||||
The list of PRM sections and KEY keywords which LAMMPS recognizes are
|
||||
listed on the :doc:`Howto amoeba <Howto_amoeba>` doc page. If not
|
||||
recognized, the section or keyword is skipped.
|
||||
|
||||
Note that if the KEY file is specified as NULL, then no file is
|
||||
required; default values for various AMOEBA/HIPPO settings are used.
|
||||
The :doc:`Howto amoeba <Howto_amoeba>` doc page also gives the default
|
||||
settings.
|
||||
|
||||
----------
|
||||
|
||||
The *amoeba* and *hippo* pair styles support extraction of two
|
||||
per-atom quantities by the :doc:`fix pair <fix_pair>` command. This
|
||||
allows the quantities to be output to files by the :doc:`dump <dump>`
|
||||
or otherwise processed by other LAMMPS commamds.
|
||||
|
||||
The names of the two quantites are "uind" and "uinp" for the induced
|
||||
dipole moments for each atom. Neither quantity needs to be triggered
|
||||
by the :doc:`fix pair <fix_pair>` command in order for these pair
|
||||
styles to calculate it.
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
These pair styles do not support the :doc:`pair_modify <pair_modify>`
|
||||
mix, shift, table, and tail options.
|
||||
|
||||
These pair styles do not write their information to :doc:`binary
|
||||
restart files <restart>`, since it is stored in potential files.
|
||||
Thus, you need to re-specify the pair_style and pair_coeff commands in
|
||||
an input script that reads a restart file.
|
||||
|
||||
These pair styles can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. They do not support the
|
||||
*inner*\ , *middle*\ , *outer* keywords.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
These pair styles are part of the AMOEBA package. They are only
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build
|
||||
package <Build_package>` doc page for more info.
|
||||
|
||||
The AMOEBA and HIPPO potential (PRM) and KEY files provided with
|
||||
LAMMPS in the potentials and examples/amoeba directories are Tinker
|
||||
files parameterized for Tinker units. Their numeric parameters are
|
||||
converted by LAMMPS to its real units :doc:`units <units>`. Thus you
|
||||
can only use these pair styles with real units.
|
||||
|
||||
These potentials do not yet calculate per-atom energy or virial
|
||||
contributions.
|
||||
|
||||
As explained on the :doc:`AMOEBA and HIPPO howto <Howto_amoeba>` page,
|
||||
use of these pair styles to run a simulation with the AMOEBA or HIPPO
|
||||
force fields requires several things.
|
||||
|
||||
The first is a data file generated by the tools/tinker/tinker2lmp.py
|
||||
conversion script which uses Tinker file force field file input to
|
||||
create a data file compatible with LAMMPS.
|
||||
|
||||
The second is use of these commands:
|
||||
|
||||
* :doc:`atom_style amoeba <atom_style>`
|
||||
* :doc:`fix property/atom <fix_property_atom>`
|
||||
* :doc:`special_bonds one/five <special_bonds>`
|
||||
|
||||
And third, depending on the model being simulated, these
|
||||
commands for intramolecular interactions may also be required:
|
||||
|
||||
* :doc:`bond_style class2 <bond_class2>`
|
||||
* :doc:`angle_style amoeba <angle_amoeba>`
|
||||
* :doc:`dihedral_style fourier <dihedral_fourier>`
|
||||
* :doc:`improper_style amoeba <improper_amoeba>`
|
||||
* :doc:`fix amoeba/pitorsion <fix_amoeba_pitorsion>`
|
||||
* :doc:`fix amoeba/bitorsion <fix_amoeba_bitorsion>`
|
||||
|
||||
----------
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`atom_style amoeba <atom_style>`,
|
||||
:doc:`bond_style class2 <bond_class2>`,
|
||||
:doc:`angle_style amoeba <angle_amoeba>`,
|
||||
:doc:`dihedral_style fourier <dihedral_fourier>`,
|
||||
:doc:`improper_style amoeba <improper_amoeba>`,
|
||||
:doc:`fix amoeba/pitorsion <fix_amoeba_pitorsion>`,
|
||||
:doc:`fix amoeba/bitorsion <fix_amoeba_bitorsion>`,
|
||||
:doc:`special_bonds one/five <special_bonds>`,
|
||||
:doc:`fix property/atom <fix_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
|
||||
----------
|
||||
|
||||
.. _amoeba-Ponder:
|
||||
|
||||
**(Ponder)** Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010).
|
||||
|
||||
.. _amoeba-Rackers:
|
||||
|
||||
**(Rackers)** Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021).
|
||||
|
||||
.. _amoeba-Ren:
|
||||
|
||||
**(Ren)** Ren and Ponder, J Phys Chem B, 107, 5933 (2003).
|
||||
|
||||
.. _amoeba-Shi:
|
||||
|
||||
**(Shi)** Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013.
|
||||
|
||||
@ -444,6 +444,19 @@ identical to the FS EAM files (see above).
|
||||
|
||||
----------
|
||||
|
||||
The *eam*, *eam/alloy*, *eam/fs*, and *eam/he* pair styles support
|
||||
extraction of two per-atom quantities by the :doc:`fix pair
|
||||
<fix_pair>` command. This allows the quantities to be output to files
|
||||
by the :doc:`dump <dump>` or otherwise processed by other LAMMPS
|
||||
commamds.
|
||||
|
||||
The names of the two quantites are "rho" and "fp" for the density and
|
||||
derivative of the embedding energy for each atom. Neither quantity
|
||||
needs to be triggered by the :doc:`fix pair <fix_pair>` command in
|
||||
order for these pair styles to calculate it.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
----------
|
||||
@ -459,21 +472,26 @@ a pair_coeff command with I != J arguments for the eam styles.
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
|
||||
The eam pair styles do not write their information to :doc:`binary restart files <restart>`, since it is stored in tabulated potential files.
|
||||
Thus, you need to re-specify the pair_style and pair_coeff commands in
|
||||
an input script that reads a restart file.
|
||||
The eam pair styles do not write their information to :doc:`binary
|
||||
restart files <restart>`, since it is stored in tabulated potential
|
||||
files. Thus, you need to re-specify the pair_style and pair_coeff
|
||||
commands in an input script that reads a restart file.
|
||||
|
||||
The eam pair styles can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. They do not support the
|
||||
*inner*, *middle*, *outer* keywords.
|
||||
|
||||
|
||||
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
All of these styles are part of the MANYBODY package. They are only
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build
|
||||
package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -13,7 +13,7 @@ Syntax
|
||||
* one or more keyword/value pairs may be listed
|
||||
* keyword = *pair* or *shift* or *mix* or *table* or *table/disp* or *tabinner*
|
||||
or *tabinner/disp* or *tail* or *compute* or *nofdotr* or *special* or
|
||||
*compute/tally*
|
||||
*compute/tally* or *neigh/trim*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -37,6 +37,7 @@ Syntax
|
||||
which = *lj/coul* or *lj* or *coul*
|
||||
w1,w2,w3 = 1-2, 1-3, 1-4 weights from 0.0 to 1.0 inclusive
|
||||
*compute/tally* value = *yes* or *no*
|
||||
*neigh/trim* value = *yes* or *no*
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -283,6 +284,31 @@ the *pair* keyword. Use *no* to disable, or *yes* to enable.
|
||||
The "pair_modify pair compute/tally" command must be issued
|
||||
**before** the corresponding compute style is defined.
|
||||
|
||||
The *neigh/trim* keyword controls whether an explicit cutoff is set for
|
||||
each neighbor list request issued by individual pair sub-styles when
|
||||
using :doc:`pair hybrid/overlay <pair_hybrid>`. When this keyword is
|
||||
set to *no*, then the cutoff of each pair sub-style neighbor list will
|
||||
be set equal to the largest cutoff, even if a shorter cutoff is
|
||||
specified for a particular sub-style. If possible the neighbor list
|
||||
will be copied directly from another list. When this keyword is set to
|
||||
*yes* then the cutoff of the neighbor list will be explicitly set to the
|
||||
value requested by the pair sub-style, and if possible the list will be
|
||||
created by trimming neighbors from another list with a longer cutoff,
|
||||
otherwise a new neighbor list will be created with the specified cutoff.
|
||||
The *yes* option can be faster when there are multiple pair styles with
|
||||
different cutoffs since the number of pair-wise distance checks between
|
||||
neighbors is reduced (but the time required to build the neighbor lists
|
||||
is increased). The *no* option could be faster when two or more neighbor
|
||||
lists have similar (but not exactly the same) cutoffs.
|
||||
|
||||
.. note::
|
||||
|
||||
The "pair_modify neigh/trim" command *only* applies when there are
|
||||
multiple pair sub-styles for the same atoms with different cutoffs,
|
||||
i.e. when using pair style hybrid/overlay. If you have different
|
||||
cutoffs for different pairs for atoms type, the :doc:`neighbor style
|
||||
multi <neighbor>` should be used to create optimized neighbor lists.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
@ -298,13 +324,13 @@ Related commands
|
||||
|
||||
:doc:`pair_style <pair_style>`, :doc:`pair_style hybrid <pair_hybrid>`,
|
||||
:doc:`pair_coeff <pair_coeff>`, :doc:`thermo_style <thermo_style>`,
|
||||
:doc:`compute \*/tally <compute_tally>`
|
||||
:doc:`compute \*/tally <compute_tally>`, :doc:`neighbor multi <neighbor>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The option defaults are mix = geometric, shift = no, table = 12,
|
||||
tabinner = sqrt(2.0), tail = no, and compute = yes.
|
||||
tabinner = sqrt(2.0), tail = no, compute = yes, and neigh/trim yes.
|
||||
|
||||
Note that some pair styles perform mixing, but only a certain style of
|
||||
mixing. See the doc pages for individual pair styles for details.
|
||||
|
||||
@ -1,27 +1,27 @@
|
||||
.. index:: pair_style lj/sdk
|
||||
.. index:: pair_style lj/sdk/gpu
|
||||
.. index:: pair_style lj/sdk/kk
|
||||
.. index:: pair_style lj/sdk/omp
|
||||
.. index:: pair_style lj/sdk/coul/long
|
||||
.. index:: pair_style lj/sdk/coul/long/gpu
|
||||
.. index:: pair_style lj/sdk/coul/long/omp
|
||||
.. index:: pair_style lj/sdk/coul/msm
|
||||
.. index:: pair_style lj/sdk/coul/msm/omp
|
||||
.. index:: pair_style lj/spica
|
||||
.. index:: pair_style lj/spica/gpu
|
||||
.. index:: pair_style lj/spica/kk
|
||||
.. index:: pair_style lj/spica/omp
|
||||
.. index:: pair_style lj/spica/coul/long
|
||||
.. index:: pair_style lj/spica/coul/long/gpu
|
||||
.. index:: pair_style lj/spica/coul/long/omp
|
||||
.. index:: pair_style lj/spica/coul/msm
|
||||
.. index:: pair_style lj/spica/coul/msm/omp
|
||||
|
||||
pair_style lj/sdk command
|
||||
=========================
|
||||
pair_style lj/spica command
|
||||
===========================
|
||||
|
||||
Accelerator Variants: *lj/sdk/gpu*, *lj/sdk/kk*, *lj/sdk/omp*
|
||||
Accelerator Variants: *lj/spica/gpu*, *lj/spica/kk*, *lj/spica/omp*
|
||||
|
||||
pair_style lj/sdk/coul/long command
|
||||
===================================
|
||||
pair_style lj/spica/coul/long command
|
||||
=====================================
|
||||
|
||||
Accelerator Variants: *lj/sdk/coul/long/gpu*, *lj/sdk/coul/long/omp*
|
||||
Accelerator Variants: *lj/spica/coul/long/gpu*, *lj/spica/coul/long/omp*
|
||||
|
||||
pair_style lj/sdk/coul/msm command
|
||||
==================================
|
||||
pair_style lj/spica/coul/msm command
|
||||
====================================
|
||||
|
||||
Accelerator Variants: *lj/sdk/coul/msm/omp*
|
||||
Accelerator Variants: *lj/spica/coul/msm/omp*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
@ -30,14 +30,14 @@ Syntax
|
||||
|
||||
pair_style style args
|
||||
|
||||
* style = *lj/sdk* or *lj/sdk/coul/long*
|
||||
* style = *lj/spica* or *lj/spica/coul/long*
|
||||
* args = list of arguments for a particular style
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*lj/sdk* args = cutoff
|
||||
*lj/spica* args = cutoff
|
||||
cutoff = global cutoff for Lennard Jones interactions (distance units)
|
||||
*lj/sdk/coul/long* args = cutoff (cutoff2)
|
||||
*lj/spica/coul/long* args = cutoff (cutoff2)
|
||||
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
|
||||
cutoff2 = global cutoff for Coulombic (optional) (distance units)
|
||||
|
||||
@ -46,21 +46,21 @@ Examples
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style lj/sdk 2.5
|
||||
pair_style lj/spica 2.5
|
||||
pair_coeff 1 1 lj12_6 1 1.1 2.8
|
||||
|
||||
pair_style lj/sdk/coul/long 10.0
|
||||
pair_style lj/sdk/coul/long 10.0 12.0
|
||||
pair_style lj/spica/coul/long 10.0
|
||||
pair_style lj/spica/coul/long 10.0 12.0
|
||||
pair_coeff 1 1 lj9_6 100.0 3.5 12.0
|
||||
|
||||
pair_style lj/sdk/coul/msm 10.0
|
||||
pair_style lj/sdk/coul/msm 10.0 12.0
|
||||
pair_style lj/spica/coul/msm 10.0
|
||||
pair_style lj/spica/coul/msm 10.0 12.0
|
||||
pair_coeff 1 1 lj9_6 100.0 3.5 12.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *lj/sdk* styles compute a 9/6, 12/4, or 12/6 Lennard-Jones potential,
|
||||
The *lj/spica* styles compute a 9/6, 12/4, 12/5, or 12/6 Lennard-Jones potential,
|
||||
given by
|
||||
|
||||
.. math::
|
||||
@ -71,14 +71,20 @@ given by
|
||||
E = & \frac{3\sqrt{3}}{2} \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
|
||||
\left(\frac{\sigma}{r}\right)^4 \right]
|
||||
\qquad r < r_c \\
|
||||
E = & \frac{12}{7}\left(\frac{12}{5}\right)^{\left(\frac{5}{7}\right)} \epsilon
|
||||
\left[ \left(\frac{\sigma}{r}\right)^{12} -
|
||||
\left(\frac{\sigma}{r}\right)^5 \right]
|
||||
\qquad r < r_c \\
|
||||
E = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
|
||||
\left(\frac{\sigma}{r}\right)^6 \right]
|
||||
\qquad r < r_c
|
||||
|
||||
as required for the SDK Coarse-grained MD parameterization discussed in
|
||||
:ref:`(Shinoda) <Shinoda3>` and :ref:`(DeVane) <DeVane>`. Rc is the cutoff.
|
||||
as required for the SPICA (formerly called SDK) and the pSPICA Coarse-grained MD parameterization discussed in
|
||||
:ref:`(Shinoda) <Shinoda3>`, :ref:`(DeVane) <DeVane>`, :ref:`(Seo) <Seo>`, and :ref:`(Miyazaki) <Miyazaki>`.
|
||||
Rc is the cutoff.
|
||||
Summary information on these force fields can be found at https://www.spica-ff.org
|
||||
|
||||
Style *lj/sdk/coul/long* computes the adds Coulombic interactions
|
||||
Style *lj/spica/coul/long* computes the adds Coulombic interactions
|
||||
with an additional damping factor applied so it can be used in
|
||||
conjunction with the :doc:`kspace_style <kspace_style>` command and
|
||||
its *ewald* or *pppm* or *pppm/cg* option. The Coulombic cutoff
|
||||
@ -92,7 +98,7 @@ above, or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands, or by mixing as described below:
|
||||
|
||||
* cg_type (lj9_6, lj12_4, or lj12_6)
|
||||
* cg_type (lj9_6, lj12_4, lj12_5, or lj12_6)
|
||||
* epsilon (energy units)
|
||||
* sigma (distance units)
|
||||
* cutoff1 (distance units)
|
||||
@ -108,11 +114,15 @@ and Coulombic interactions for this type pair. If both coefficients
|
||||
are specified, they are used as the LJ and Coulombic cutoffs for this
|
||||
type pair.
|
||||
|
||||
For *lj/sdk/coul/long* and *lj/sdk/coul/msm* only the LJ cutoff can be
|
||||
For *lj/spica/coul/long* and *lj/spica/coul/msm* only the LJ cutoff can be
|
||||
specified since a Coulombic cutoff cannot be specified for an
|
||||
individual I,J type pair. All type pairs use the same global
|
||||
Coulombic cutoff specified in the pair_style command.
|
||||
|
||||
The original implementation of the above styles are
|
||||
style *lj/sdk*, *lj/sdk/coul/long*, and *lj/sdk/coul/msm*,
|
||||
and available for backward compatibility.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
@ -123,24 +133,24 @@ Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
For atom type pairs I,J and I != J, the epsilon and sigma coefficients
|
||||
and cutoff distance for all of the lj/sdk pair styles *cannot* be mixed,
|
||||
and cutoff distance for all of the lj/spica pair styles *cannot* be mixed,
|
||||
since different pairs may have different exponents. So all parameters
|
||||
for all pairs have to be specified explicitly through the "pair_coeff"
|
||||
command. Defining then in a data file is also not supported, due to
|
||||
limitations of that file format.
|
||||
|
||||
All of the lj/sdk pair styles support the
|
||||
All of the lj/spica pair styles support the
|
||||
:doc:`pair_modify <pair_modify>` shift option for the energy of the
|
||||
Lennard-Jones portion of the pair interaction.
|
||||
|
||||
The *lj/sdk/coul/long* pair styles support the
|
||||
The *lj/spica/coul/long* pair styles support the
|
||||
:doc:`pair_modify <pair_modify>` table option since they can tabulate
|
||||
the short-range portion of the long-range Coulombic interaction.
|
||||
|
||||
All of the lj/sdk pair styles write their information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do
|
||||
All of the lj/spica pair styles write their information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do
|
||||
not need to be specified in an input script that reads a restart file.
|
||||
|
||||
The lj/sdk and lj/cut/coul/long pair styles do not support
|
||||
The lj/spica and lj/cut/coul/long pair styles do not support
|
||||
the use of the *inner*, *middle*, and *outer* keywords of the :doc:`run_style respa <run_style>` command.
|
||||
|
||||
----------
|
||||
@ -148,8 +158,8 @@ the use of the *inner*, *middle*, and *outer* keywords of the :doc:`run_style re
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
All of the lj/sdk pair styles are part of the CG-SDK package. The
|
||||
*lj/sdk/coul/long* style also requires the KSPACE package to be built
|
||||
All of the lj/spica pair styles are part of the CG-SPICA package. The
|
||||
*lj/spica/coul/long* style also requires the KSPACE package to be built
|
||||
(which is enabled by default). They are only enabled if LAMMPS was
|
||||
built with that package. See the :doc:`Build package <Build_package>`
|
||||
doc page for more info.
|
||||
@ -157,7 +167,7 @@ doc page for more info.
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_coeff <pair_coeff>`, :doc:`angle_style sdk <angle_sdk>`
|
||||
:doc:`pair_coeff <pair_coeff>`, :doc:`angle_style spica <angle_spica>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
@ -168,8 +178,16 @@ none
|
||||
|
||||
.. _Shinoda3:
|
||||
|
||||
**(Shinoda)** Shinoda, DeVane, Klein, Mol Sim, 33, 27 (2007).
|
||||
**(Shinoda)** Shinoda, DeVane, Klein, Mol Sim, 33, 27-36 (2007).
|
||||
|
||||
.. _DeVane:
|
||||
|
||||
**(DeVane)** Shinoda, DeVane, Klein, Soft Matter, 4, 2453-2462 (2008).
|
||||
|
||||
.. _Seo:
|
||||
|
||||
**(Seo)** Seo, Shinoda, J Chem Theory Comput, 15, 762-774 (2019).
|
||||
|
||||
.. _Miyazaki:
|
||||
|
||||
**(Miyazaki)** Miyazaki, Okazaki, Shinoda, J Chem Theory Comput, 16, 782-793 (2020).
|
||||
@ -1,18 +1,23 @@
|
||||
.. index:: pair_style srp
|
||||
.. index:: pair_style srp/react
|
||||
|
||||
pair_style srp command
|
||||
======================
|
||||
|
||||
pair_style srp/react command
|
||||
============================
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style srp cutoff btype dist keyword value ...
|
||||
pair_style srp/react cutoff btype dist react-id keyword value ...
|
||||
|
||||
* cutoff = global cutoff for SRP interactions (distance units)
|
||||
* btype = bond type to apply SRP interactions to (can be wildcard, see below)
|
||||
* distance = *min* or *mid*
|
||||
* react-id = id of either fix bond/break or fix bond/create
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *exclude*
|
||||
|
||||
@ -36,13 +41,19 @@ Examples
|
||||
pair_coeff 1 2 none
|
||||
pair_coeff 2 2 srp 40.0
|
||||
|
||||
fix create all bond/create 100 1 2 1.0 1 prob 0.2 19852
|
||||
pair_style hybrid dpd 1.0 1.0 12345 srp/react 0.8 * min create exclude yes
|
||||
pair_coeff 1 1 dpd 60.0 50 1.0
|
||||
pair_coeff 1 2 none
|
||||
pair_coeff 2 2 srp/react 40.0
|
||||
|
||||
pair_style hybrid srp 0.8 2 mid
|
||||
pair_coeff 1 1 none
|
||||
pair_coeff 1 2 none
|
||||
pair_coeff 2 2 srp 100.0 0.8
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
|
||||
Style *srp* computes a soft segmental repulsive potential (SRP) that
|
||||
acts between pairs of bonds. This potential is useful for preventing
|
||||
@ -121,6 +132,18 @@ at the cutoff distance :math:`r_c`.
|
||||
|
||||
----------
|
||||
|
||||
Pair style *srp/react* interfaces the pair style *srp* with the
|
||||
bond breaking and formation mechanisms provided by fix *bond/break*
|
||||
and fix *bond/create*, respectively. When using this pair style, whenever a
|
||||
bond breaking (or formation) reaction occurs, the corresponding fictitious
|
||||
particle is deleted (or inserted) during the same simulation time step as
|
||||
the reaction. This is useful in the simulation of reactive systems involving
|
||||
large polymeric molecules :ref:`(Palkar) <Palkar>` where the segmental repulsive
|
||||
potential is necessary to minimize topological violations, and also needs to be
|
||||
turned on and off according to the progress of the reaction.
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
@ -178,3 +201,8 @@ The default keyword value is exclude = yes.
|
||||
|
||||
**(Sirk)** Sirk TW, Sliozberg YR, Brennan JK, Lisal M, Andzelm JW, J
|
||||
Chem Phys, 136 (13) 134903, 2012.
|
||||
|
||||
.. _Palkar:
|
||||
|
||||
**(Palkar)** Palkar V, Kuksenok O, J. Phys. Chem. B, 126 (1), 336-346, 2022
|
||||
|
||||
|
||||
@ -116,6 +116,7 @@ accelerated styles exist.
|
||||
* :doc:`agni <pair_agni>` - AGNI machine-learning potential
|
||||
* :doc:`airebo <pair_airebo>` - AIREBO potential of Stuart
|
||||
* :doc:`airebo/morse <pair_airebo>` - AIREBO with Morse instead of LJ
|
||||
* :doc:`amoeba <pair_amoeba>` -
|
||||
* :doc:`atm <pair_atm>` - Axilrod-Teller-Muto potential
|
||||
* :doc:`awpmd/cut <pair_awpmd>` - Antisymmetrized Wave Packet MD potential for atoms and electrons
|
||||
* :doc:`beck <pair_beck>` - Beck potential
|
||||
@ -202,6 +203,7 @@ accelerated styles exist.
|
||||
* :doc:`hbond/dreiding/lj <pair_hbond_dreiding>` - DREIDING hydrogen bonding LJ potential
|
||||
* :doc:`hbond/dreiding/morse <pair_hbond_dreiding>` - DREIDING hydrogen bonding Morse potential
|
||||
* :doc:`hdnnp <pair_hdnnp>` - High-dimensional neural network potential
|
||||
* :doc:`hippo <pair_amoeba>` -
|
||||
* :doc:`ilp/graphene/hbn <pair_ilp_graphene_hbn>` - registry-dependent interlayer potential (ILP)
|
||||
* :doc:`ilp/tmd <pair_ilp_tmd>` - interlayer potential (ILP) potential for transition metal dichalcogenides (TMD)
|
||||
* :doc:`kim <pair_kim>` - interface to potentials provided by KIM project
|
||||
@ -258,9 +260,9 @@ accelerated styles exist.
|
||||
* :doc:`lj/long/tip4p/long <pair_lj_long>` - long-range LJ and long-range Coulomb for TIP4P water
|
||||
* :doc:`lj/mdf <pair_mdf>` - LJ potential with a taper function
|
||||
* :doc:`lj/relres <pair_lj_relres>` - LJ using multiscale Relative Resolution (RelRes) methodology :ref:`(Chaimovich) <Chaimovich2>`.
|
||||
* :doc:`lj/sdk <pair_sdk>` - LJ for SDK coarse-graining
|
||||
* :doc:`lj/sdk/coul/long <pair_sdk>` - LJ for SDK coarse-graining with long-range Coulomb
|
||||
* :doc:`lj/sdk/coul/msm <pair_sdk>` - LJ for SDK coarse-graining with long-range Coulomb via MSM
|
||||
* :doc:`lj/spica <pair_spica>` - LJ for SPICA coarse-graining
|
||||
* :doc:`lj/spica/coul/long <pair_spica>` - LJ for SPICA coarse-graining with long-range Coulomb
|
||||
* :doc:`lj/spica/coul/msm <pair_spica>` - LJ for SPICA coarse-graining with long-range Coulomb via MSM
|
||||
* :doc:`lj/sf/dipole/sf <pair_dipole>` - LJ with dipole interaction with shifted forces
|
||||
* :doc:`lj/smooth <pair_lj_smooth>` - smoothed Lennard-Jones potential
|
||||
* :doc:`lj/smooth/linear <pair_lj_smooth_linear>` - linear smoothed LJ potential
|
||||
@ -348,6 +350,7 @@ accelerated styles exist.
|
||||
* :doc:`spin/magelec <pair_spin_magelec>` -
|
||||
* :doc:`spin/neel <pair_spin_neel>` -
|
||||
* :doc:`srp <pair_srp>` -
|
||||
* :doc:`srp/react <pair_srp>` -
|
||||
* :doc:`sw <pair_sw>` - Stillinger-Weber 3-body potential
|
||||
* :doc:`sw/angle/table <pair_sw_angle_table>` - Stillinger-Weber potential with tabulated angular term
|
||||
* :doc:`sw/mod <pair_sw>` - modified Stillinger-Weber 3-body potential
|
||||
|
||||
@ -24,12 +24,13 @@ Syntax
|
||||
*fx*,\ *fy*,\ *fz* = force components
|
||||
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *nfile* or *box* or *replace* or *purge* or *trim* or *add* or *label* or *scaled* or *wrapped* or *format*
|
||||
* keyword = *nfile* or *box* or *timestep* or *replace* or *purge* or *trim* or *add* or *label* or *scaled* or *wrapped* or *format*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*nfile* value = Nfiles = how many parallel dump files exist
|
||||
*box* value = *yes* or *no* = replace simulation box with dump box
|
||||
*timestep* value = *yes* or *no* = reset simulation timestep with dump timestep
|
||||
*replace* value = *yes* or *no* = overwrite atoms with dump atoms
|
||||
*purge* value = *yes* or *no* = delete all atoms before adding dump atoms
|
||||
*trim* value = *yes* or *no* = trim atoms not in dump snapshot
|
||||
@ -60,6 +61,7 @@ Examples
|
||||
read_dump dump.dcd 0 x y z box yes format molfile dcd
|
||||
read_dump dump.file 1000 x y z vx vy vz box yes format molfile lammpstrj /usr/local/lib/vmd/plugins/LINUXAMD64/plugins/molfile
|
||||
read_dump dump.file 5000 x y vx vy trim yes
|
||||
read_dump dump.file 5000 x y vx vy add yes box no timestep no
|
||||
read_dump ../run7/dump.file.gz 10000 x y z box yes
|
||||
read_dump dump.xyz 10 x y z box no format molfile xyz ../plugins
|
||||
read_dump dump.dcd 0 x y z format molfile dcd
|
||||
@ -71,9 +73,9 @@ Description
|
||||
"""""""""""
|
||||
|
||||
Read atom information from a dump file to overwrite the current atom
|
||||
coordinates, and optionally the atom velocities and image flags and
|
||||
the simulation box dimensions. This is useful for restarting a run
|
||||
from a particular snapshot in a dump file. See the
|
||||
coordinates, and optionally the atom velocities and image flags, the
|
||||
simulation timestep, and the simulation box dimensions. This is useful
|
||||
for restarting a run from a particular snapshot in a dump file. See the
|
||||
:doc:`read_restart <read_restart>` and :doc:`read_data <read_data>`
|
||||
commands for alternative methods to do this. Also see the
|
||||
:doc:`rerun <rerun>` command for a means of reading multiple snapshots
|
||||
@ -89,9 +91,9 @@ Also note that reading per-atom information from a dump snapshot is
|
||||
limited to the atom coordinates, velocities and image flags, as
|
||||
explained below. Other atom properties, which may be necessary to run
|
||||
a valid simulation, such as atom charge, or bond topology information
|
||||
for a molecular system, are not read from (or even contained in) dump
|
||||
files. Thus this auxiliary information should be defined in the usual
|
||||
way, e.g. in a data file read in by a :doc:`read_data <read_data>`
|
||||
for a molecular system, are not read from (or may not even be contained
|
||||
in) dump files. Thus this auxiliary information should be defined in
|
||||
the usual way, e.g. in a data file read in by a :doc:`read_data <read_data>`
|
||||
command, before using the read_dump command, or by the :doc:`set <set>`
|
||||
command, after the dump snapshot is read.
|
||||
|
||||
@ -165,11 +167,10 @@ variable *ntimestep*:
|
||||
uint64_t ntimestep 5*scalar
|
||||
(0) 0 50 100 150 200
|
||||
|
||||
Note that the *xyz*
|
||||
and *molfile* formats do not store the timestep. For these formats,
|
||||
timesteps are numbered logically, in a sequential manner, starting
|
||||
from 0. Thus to access the 10th snapshot in an *xyz* or *mofile*
|
||||
formatted dump file, use *Nstep* = 9.
|
||||
Note that the *xyz* and *molfile* formats do not store the timestep.
|
||||
For these formats, timesteps are numbered logically, in a sequential
|
||||
manner, starting from 0. Thus to access the 10th snapshot in an *xyz*
|
||||
or *mofile* formatted dump file, use *Nstep* = 9.
|
||||
|
||||
The dimensions of the simulation box for the selected snapshot are
|
||||
also read; see the *box* keyword discussion below. For the *native*
|
||||
@ -266,8 +267,10 @@ for how this is done, determined by the specified fields and optional
|
||||
keywords.
|
||||
|
||||
The timestep of the snapshot becomes the current timestep for the
|
||||
simulation. See the :doc:`reset_timestep <reset_timestep>` command if
|
||||
you wish to change this after the dump snapshot is read.
|
||||
simulation unless the *timestep* keyword is specified with a *no* value
|
||||
(default setting is *yes*). See the :doc:`reset_timestep <reset_timestep>`
|
||||
command if you wish to change this to a different value after the dump
|
||||
snapshot is read.
|
||||
|
||||
If the *box* keyword is specified with a *yes* value, then the current
|
||||
simulation box dimensions are replaced by the dump snapshot box
|
||||
@ -391,7 +394,7 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The option defaults are box = yes, replace = yes, purge = no, trim =
|
||||
no, add = no, scaled = no, wrapped = yes, and format = native.
|
||||
The option defaults are box = yes, timestep = yes, replace = yes, purge = no,
|
||||
trim = no, add = no, scaled = no, wrapped = yes, and format = native.
|
||||
|
||||
.. _vmd: http://www.ks.uiuc.edu/Research/vmd
|
||||
|
||||
@ -11,7 +11,7 @@ Syntax
|
||||
special_bonds keyword values ...
|
||||
|
||||
* one or more keyword/value pairs may be appended
|
||||
* keyword = *amber* or *charmm* or *dreiding* or *fene* or *lj/coul* or *lj* or *coul* or *angle* or *dihedral*
|
||||
* keyword = *amber* or *charmm* or *dreiding* or *fene* or *lj/coul* or *lj* or *coul* or *angle* or *dihedral* or *one/five*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -27,6 +27,7 @@ Syntax
|
||||
w1,w2,w3 = weights (0.0 to 1.0) on pairwise Coulombic interactions
|
||||
*angle* value = *yes* or *no*
|
||||
*dihedral* value = *yes* or *no*
|
||||
*one/five* value = *yes* or *no*
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -45,10 +46,10 @@ Description
|
||||
Set weighting coefficients for pairwise energy and force contributions
|
||||
between pairs of atoms that are also permanently bonded to each other,
|
||||
either directly or via one or two intermediate bonds. These weighting
|
||||
factors are used by nearly all :doc:`pair styles <pair_style>` in LAMMPS
|
||||
that compute simple pairwise interactions. Permanent bonds between
|
||||
atoms are specified by defining the bond topology in the data file
|
||||
read by the :doc:`read_data <read_data>` command. Typically a
|
||||
factors are used by nearly all :doc:`pair styles <pair_style>` in
|
||||
LAMMPS that compute simple pairwise interactions. Permanent bonds
|
||||
between atoms are specified by defining the bond topology in the data
|
||||
file read by the :doc:`read_data <read_data>` command. Typically a
|
||||
:doc:`bond_style <bond_style>` command is also used to define a bond
|
||||
potential. The rationale for using these weighting factors is that
|
||||
the interaction between a pair of bonded atoms is all (or mostly)
|
||||
@ -58,31 +59,34 @@ atoms should be excluded (or reduced by a weighting factor).
|
||||
|
||||
.. note::
|
||||
|
||||
These weighting factors are NOT used by :doc:`pair styles <pair_style>` that compute many-body interactions, since the
|
||||
"bonds" that result from such interactions are not permanent, but are
|
||||
created and broken dynamically as atom conformations change. Examples
|
||||
of pair styles in this category are EAM, MEAM, Stillinger-Weber,
|
||||
Tersoff, COMB, AIREBO, and ReaxFF. In fact, it generally makes no
|
||||
sense to define permanent bonds between atoms that interact via these
|
||||
potentials, though such bonds may exist elsewhere in your system,
|
||||
e.g. when using the :doc:`pair_style hybrid <pair_hybrid>` command.
|
||||
Thus LAMMPS ignores special_bonds settings when many-body potentials
|
||||
are calculated. Please note, that the existence of explicit bonds
|
||||
for atoms that are described by a many-body potential will alter the
|
||||
neighbor list and thus can render the computation of those interactions
|
||||
invalid, since those pairs are not only used to determine direct
|
||||
pairwise interactions but also neighbors of neighbors and more.
|
||||
The recommended course of action is to remove such bonds, or - if
|
||||
that is not possible - use a special bonds setting of 1.0 1.0 1.0.
|
||||
These weighting factors are NOT used by :doc:`pair styles
|
||||
<pair_style>` that compute many-body interactions, since the
|
||||
"bonds" that result from such interactions are not permanent, but
|
||||
are created and broken dynamically as atom conformations change.
|
||||
Examples of pair styles in this category are EAM, MEAM,
|
||||
Stillinger-Weber, Tersoff, COMB, AIREBO, and ReaxFF. In fact, it
|
||||
generally makes no sense to define permanent bonds between atoms
|
||||
that interact via these potentials, though such bonds may exist
|
||||
elsewhere in your system, e.g. when using the :doc:`pair_style
|
||||
hybrid <pair_hybrid>` command. Thus LAMMPS ignores special_bonds
|
||||
settings when many-body potentials are calculated. Please note,
|
||||
that the existence of explicit bonds for atoms that are described
|
||||
by a many-body potential will alter the neighbor list and thus can
|
||||
render the computation of those interactions invalid, since those
|
||||
pairs are not only used to determine direct pairwise interactions
|
||||
but also neighbors of neighbors and more. The recommended course
|
||||
of action is to remove such bonds, or - if that is not possible -
|
||||
use a special bonds setting of 1.0 1.0 1.0.
|
||||
|
||||
.. note::
|
||||
|
||||
Unlike some commands in LAMMPS, you cannot use this command
|
||||
multiple times in an incremental fashion: e.g. to first set the LJ
|
||||
settings and then the Coulombic ones. Each time you use this command
|
||||
it sets all the coefficients to default values and only overrides the
|
||||
one you specify, so you should set all the options you need each time
|
||||
you use it. See more details at the bottom of this page.
|
||||
settings and then the Coulombic ones. Each time you use this
|
||||
command it sets all the coefficients to default values and only
|
||||
overrides the one you specify, so you should set all the options
|
||||
you need each time you use it. See more details at the bottom of
|
||||
this page.
|
||||
|
||||
The Coulomb factors are applied to any Coulomb (charge interaction)
|
||||
term that the potential calculates. The LJ factors are applied to the
|
||||
@ -94,14 +98,14 @@ exclude it completely.
|
||||
|
||||
The first of the 3 coefficients (LJ or Coulombic) is the weighting
|
||||
factor on 1-2 atom pairs, which are pairs of atoms directly bonded to
|
||||
each other. The second coefficient is the weighting factor on 1-3 atom
|
||||
pairs which are those separated by 2 bonds (e.g. the two H atoms in a
|
||||
water molecule). The third coefficient is the weighting factor on 1-4
|
||||
atom pairs which are those separated by 3 bonds (e.g. the first and fourth
|
||||
atoms in a dihedral interaction). Thus if the 1-2 coefficient is set
|
||||
to 0.0, then the pairwise interaction is effectively turned off for
|
||||
all pairs of atoms bonded to each other. If it is set to 1.0, then
|
||||
that interaction will be at full strength.
|
||||
each other. The second coefficient is the weighting factor on 1-3
|
||||
atom pairs which are those separated by 2 bonds (e.g. the two H atoms
|
||||
in a water molecule). The third coefficient is the weighting factor
|
||||
on 1-4 atom pairs which are those separated by 3 bonds (e.g. the first
|
||||
and fourth atoms in a dihedral interaction). Thus if the 1-2
|
||||
coefficient is set to 0.0, then the pairwise interaction is
|
||||
effectively turned off for all pairs of atoms bonded to each other.
|
||||
If it is set to 1.0, then that interaction will be at full strength.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -184,21 +188,27 @@ interaction between atoms 2 and 5 will be unaffected (full weighting
|
||||
of 1.0). If the *dihedral* keyword is specified as *no* which is the
|
||||
default, then the 2,5 interaction will also be weighted by 0.5.
|
||||
|
||||
The *one/five* keyword enable calculation and storage of a list of 1-5
|
||||
neighbors in the molecular topology for each atom. It is required by
|
||||
some pair styles, such as :doc:`pair_style amoeba <pair_style>` and
|
||||
:doc:`pair_style hippo <pair_style>`.
|
||||
|
||||
----------
|
||||
|
||||
.. note::
|
||||
|
||||
LAMMPS stores and maintains a data structure with a list of the
|
||||
first, second, and third neighbors of each atom (within the bond topology of
|
||||
the system). If new bonds are created (or molecules added containing
|
||||
atoms with more special neighbors), the size of this list needs to
|
||||
grow. Note that adding a single bond always adds a new first neighbor
|
||||
but may also induce \*many\* new second and third neighbors, depending on the
|
||||
molecular topology of your system. Using the *extra/special/per/atom*
|
||||
keyword to either :doc:`read_data <read_data>` or :doc:`create_box <create_box>`
|
||||
reserves empty space in the list for this N additional first, second, or third
|
||||
neighbors to be added. If you do not do this, you may get an error
|
||||
when bonds (or molecules) are added.
|
||||
first, second, and third neighbors of each atom (within the bond
|
||||
topology of the system). If new bonds are created (or molecules
|
||||
added containing atoms with more special neighbors), the size of
|
||||
this list needs to grow. Note that adding a single bond always
|
||||
adds a new first neighbor but may also induce \*many\* new second
|
||||
and third neighbors, depending on the molecular topology of your
|
||||
system. Using the *extra/special/per/atom* keyword to either
|
||||
:doc:`read_data <read_data>` or :doc:`create_box <create_box>`
|
||||
reserves empty space in the list for this N additional first,
|
||||
second, or third neighbors to be added. If you do not do this, you
|
||||
may get an error when bonds (or molecules) are added.
|
||||
|
||||
----------
|
||||
|
||||
@ -226,16 +236,16 @@ In the first case you end up with (after the second command):
|
||||
LJ: 0.0 0.0 0.0
|
||||
Coul: 0.0 0.0 1.0
|
||||
|
||||
while only in the second case, you get the desired settings of:
|
||||
while only in the second case do you get the desired settings of:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
LJ: 0.0 1.0 1.0
|
||||
Coul: 0.0 0.0 1.0
|
||||
|
||||
This happens because the LJ (and Coul) settings are reset to
|
||||
their default values before modifying them, each time the
|
||||
*special_bonds* command is issued.
|
||||
This happens because the LJ (and Coul) settings are reset to their
|
||||
default values before modifying them, each time the *special_bonds*
|
||||
command is issued.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
@ -685,7 +685,9 @@ of a run, according to this formula:
|
||||
The run begins on startstep and ends on stopstep. Startstep and
|
||||
stopstep can span multiple runs, using the *start* and *stop* keywords
|
||||
of the :doc:`run <run>` command. See the :doc:`run <run>` command for
|
||||
details of how to do this.
|
||||
details of how to do this. If called in between runs or during a
|
||||
:doc:`run 0 <run>` command, the ramp(x,y) function will return the
|
||||
value of x.
|
||||
|
||||
The stagger(x,y) function uses the current timestep to generate a new
|
||||
timestep. X,y > 0 and x > y are required. The generated timesteps
|
||||
@ -781,10 +783,14 @@ according to this formula:
|
||||
where dt = the timestep size.
|
||||
|
||||
The run begins on startstep. Startstep can span multiple runs, using
|
||||
the *start* keyword of the :doc:`run <run>` command. See the
|
||||
:doc:`run <run>` command for details of how to do this. Note that the
|
||||
:doc:`thermo_style <thermo_style>` keyword elaplong =
|
||||
timestep-startstep.
|
||||
the *start* keyword of the :doc:`run <run>` command. See the :doc:`run
|
||||
<run>` command for details of how to do this. Note that the
|
||||
:doc:`thermo_style <thermo_style>` keyword elaplong = timestep-startstep.
|
||||
If used between runs this function will return
|
||||
the value according to the end of the last run or the value of x if
|
||||
used before *any* runs. This function assumes the length of the time
|
||||
step does not change and thus may not be used in combination with
|
||||
:doc:`fix dt/reset <fix_dt_reset>`.
|
||||
|
||||
The swiggle(x,y,z) and cwiggle(x,y,z) functions each take 3 arguments:
|
||||
x = value0, y = amplitude, z = period. They use the elapsed time to
|
||||
@ -799,10 +805,14 @@ run, according to one of these formulas, where omega = 2 PI / period:
|
||||
where dt = the timestep size.
|
||||
|
||||
The run begins on startstep. Startstep can span multiple runs, using
|
||||
the *start* keyword of the :doc:`run <run>` command. See the
|
||||
:doc:`run <run>` command for details of how to do this. Note that the
|
||||
:doc:`thermo_style <thermo_style>` keyword elaplong =
|
||||
timestep-startstep.
|
||||
the *start* keyword of the :doc:`run <run>` command. See the :doc:`run
|
||||
<run>` command for details of how to do this. Note that the
|
||||
:doc:`thermo_style <thermo_style>` keyword elaplong = timestep-startstep.
|
||||
If used between runs these functions will return
|
||||
the value according to the end of the last run or the value of x if
|
||||
used before *any* runs. These functions assume the length of the time
|
||||
step does not change and thus may not be used in combination with
|
||||
:doc:`fix dt/reset <fix_dt_reset>`.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ reader = {}
|
||||
region = {}
|
||||
total = 0
|
||||
|
||||
index_pattern = re.compile(r"^.. index:: (compute|fix|pair_style|angle_style|bond_style|dihedral_style|improper_style|kspace_style)\s+([a-zA-Z0-9/_]+)$")
|
||||
index_pattern = re.compile(r"^.. index:: (compute|fix|pair_style|angle_style|bond_style|dihedral_style|improper_style|kspace_style|dump)\s+([a-zA-Z0-9/_]+)$")
|
||||
style_pattern = re.compile(r"(.+)Style\((.+),(.+)\)")
|
||||
upper = re.compile("[A-Z]+")
|
||||
gpu = re.compile("(.+)/gpu$")
|
||||
@ -84,7 +84,8 @@ def load_index_entries_in_file(path):
|
||||
|
||||
def load_index_entries():
|
||||
index = {'compute': set(), 'fix': set(), 'pair_style': set(), 'angle_style': set(),
|
||||
'bond_style': set(), 'dihedral_style': set(), 'improper_style': set(), 'kspace_style': set()}
|
||||
'bond_style': set(), 'dihedral_style': set(), 'improper_style': set(),
|
||||
'kspace_style': set(), 'dump': set()}
|
||||
rst_files = glob(os.path.join(doc_dir, '*.rst'))
|
||||
for f in rst_files:
|
||||
for command_type, style in load_index_entries_in_file(f):
|
||||
@ -254,8 +255,9 @@ for command_type, entries in index.items():
|
||||
|
||||
print("Total number of style index entries:", total_index)
|
||||
|
||||
skip_angle = ('sdk')
|
||||
skip_fix = ('python', 'NEIGH_HISTORY/omp','acks2/reax','qeq/reax','reax/c/bonds','reax/c/species')
|
||||
skip_pair = ('meam/c','lj/sf','reax/c')
|
||||
skip_pair = ('meam/c','lj/sf','reax/c','lj/sdk','lj/sdk/coul/long','lj/sdk/coul/msm')
|
||||
skip_compute = ('pressure/cylinder')
|
||||
|
||||
counter = 0
|
||||
@ -269,13 +271,14 @@ counter += check_style('Commands_pair.rst', doc_dir, ":doc:`(.+) <pair.+>`",pair
|
||||
counter += check_style('pair_style.rst', doc_dir, ":doc:`(.+) <pair.+>` -",pair,'Pair',skip=skip_pair,suffix=False)
|
||||
counter += check_style('Commands_bond.rst', doc_dir, ":doc:`(.+) <bond.+>`",bond,'Bond',suffix=True)
|
||||
counter += check_style('bond_style.rst', doc_dir, ":doc:`(.+) <bond.+>` -",bond,'Bond',suffix=False)
|
||||
counter += check_style('Commands_bond.rst', doc_dir, ":doc:`(.+) <angle.+>`",angle,'Angle',suffix=True)
|
||||
counter += check_style('angle_style.rst', doc_dir, ":doc:`(.+) <angle.+>` -",angle,'Angle',suffix=False)
|
||||
counter += check_style('Commands_bond.rst', doc_dir, ":doc:`(.+) <angle.+>`",angle,'Angle',skip=skip_angle,suffix=True)
|
||||
counter += check_style('angle_style.rst', doc_dir, ":doc:`(.+) <angle.+>` -",angle,'Angle',skip=skip_angle,suffix=False)
|
||||
counter += check_style('Commands_bond.rst', doc_dir, ":doc:`(.+) <dihedral.+>`",dihedral,'Dihedral',suffix=True)
|
||||
counter += check_style('dihedral_style.rst', doc_dir, ":doc:`(.+) <dihedral.+>` -",dihedral,'Dihedral',suffix=False)
|
||||
counter += check_style('Commands_bond.rst', doc_dir, ":doc:`(.+) <improper.+>`",improper,'Improper',suffix=True)
|
||||
counter += check_style('improper_style.rst', doc_dir, ":doc:`(.+) <improper.+>` -",improper,'Improper',suffix=False)
|
||||
counter += check_style('Commands_kspace.rst', doc_dir, ":doc:`(.+) <kspace_style>`",kspace,'KSpace',suffix=True)
|
||||
counter += check_style('Commands_dump.rst', doc_dir, ":doc:`(.+) <dump.*>`",dump,'Dump',suffix=True)
|
||||
|
||||
if counter:
|
||||
print(f"Found {counter} issue(s) with style lists")
|
||||
@ -284,12 +287,13 @@ counter = 0
|
||||
|
||||
counter += check_style_index("compute", compute, index["compute"], skip=['pressure/cylinder'])
|
||||
counter += check_style_index("fix", fix, index["fix"], skip=['python','acks2/reax','qeq/reax','reax/c/bonds','reax/c/species'])
|
||||
counter += check_style_index("angle_style", angle, index["angle_style"])
|
||||
counter += check_style_index("angle_style", angle, index["angle_style"], skip=['sdk'])
|
||||
counter += check_style_index("bond_style", bond, index["bond_style"])
|
||||
counter += check_style_index("dihedral_style", dihedral, index["dihedral_style"])
|
||||
counter += check_style_index("improper_style", improper, index["improper_style"])
|
||||
counter += check_style_index("kspace_style", kspace, index["kspace_style"])
|
||||
counter += check_style_index("pair_style", pair, index["pair_style"], skip=['meam/c', 'lj/sf','reax/c'])
|
||||
counter += check_style_index("dump", dump, index["dump"])
|
||||
counter += check_style_index("pair_style", pair, index["pair_style"], skip=['meam/c','lj/sf','reax/c','lj/sdk','lj/sdk/coul/long','lj/sdk/coul/msm'])
|
||||
|
||||
if counter:
|
||||
print(f"Found {counter} issue(s) with style index")
|
||||
|
||||
@ -269,6 +269,7 @@ binutils
|
||||
biomolecular
|
||||
biomolecule
|
||||
Biomolecules
|
||||
biomolecules
|
||||
Biophys
|
||||
Biosym
|
||||
biquadratic
|
||||
@ -278,6 +279,7 @@ Bispectrum
|
||||
bitbucket
|
||||
bitmapped
|
||||
bitmask
|
||||
bitorsion
|
||||
bitrate
|
||||
bitrates
|
||||
Bitzek
|
||||
@ -421,6 +423,8 @@ CGDNA
|
||||
cgs
|
||||
cgsdk
|
||||
CGSDK
|
||||
cgspica
|
||||
CGSPICA
|
||||
Chaimovich
|
||||
Chalopin
|
||||
Champaign
|
||||
@ -443,6 +447,7 @@ chiralIDs
|
||||
ChiralIDs
|
||||
chirality
|
||||
Cho
|
||||
Chodera
|
||||
ChooseOffset
|
||||
chris
|
||||
Christoph
|
||||
@ -577,6 +582,7 @@ cstring
|
||||
cstyle
|
||||
csvr
|
||||
ctrl
|
||||
ctrn
|
||||
ctypes
|
||||
Ctypes
|
||||
cuda
|
||||
@ -697,6 +703,7 @@ devel
|
||||
Devemy
|
||||
deviatoric
|
||||
Devine
|
||||
dewald
|
||||
df
|
||||
dfftw
|
||||
DFT
|
||||
@ -774,6 +781,7 @@ DPD
|
||||
dpdTheta
|
||||
dphi
|
||||
DPhil
|
||||
dpme
|
||||
dr
|
||||
dR
|
||||
dragforce
|
||||
@ -1277,6 +1285,7 @@ gzipped
|
||||
Haak
|
||||
Hafskjold
|
||||
halfstepback
|
||||
halgren
|
||||
Halperin
|
||||
Halver
|
||||
Hamaker
|
||||
@ -1284,6 +1293,7 @@ Hamel
|
||||
Hammerschmidt
|
||||
Hanley
|
||||
haptic
|
||||
Haque
|
||||
Hara
|
||||
Harpertown
|
||||
Harting
|
||||
@ -1627,6 +1637,7 @@ Kemper
|
||||
kepler
|
||||
keV
|
||||
Keyes
|
||||
keyfile
|
||||
Khersonskii
|
||||
Khrapak
|
||||
Khvostov
|
||||
@ -1688,6 +1699,7 @@ kTln
|
||||
ktypeN
|
||||
Kub
|
||||
Kubo
|
||||
Kuksenok
|
||||
Kumagai
|
||||
Kumar
|
||||
Kurebayashi
|
||||
@ -1702,6 +1714,7 @@ Ladd
|
||||
lagrangian
|
||||
lambdai
|
||||
LambdaLanczos
|
||||
Lambrecht
|
||||
lamda
|
||||
lammps
|
||||
Lammps
|
||||
@ -2076,6 +2089,7 @@ Mishin
|
||||
Mishra
|
||||
mistyped
|
||||
mistyrose
|
||||
Miyazaki
|
||||
Mj
|
||||
mK
|
||||
mkdir
|
||||
@ -2087,6 +2101,7 @@ mlparks
|
||||
Mniszewski
|
||||
mnt
|
||||
mobi
|
||||
Mobley
|
||||
modc
|
||||
Modell
|
||||
modelled
|
||||
@ -2137,6 +2152,7 @@ mpiexec
|
||||
mpiio
|
||||
mpirun
|
||||
mplayer
|
||||
mpole
|
||||
mps
|
||||
mradius
|
||||
Mrovec
|
||||
@ -2171,6 +2187,7 @@ multicore
|
||||
multielectron
|
||||
multinode
|
||||
multiphysics
|
||||
Multipole
|
||||
multiscale
|
||||
multisectioning
|
||||
multithreading
|
||||
@ -2358,6 +2375,7 @@ nodesets
|
||||
Noehring
|
||||
Noffset
|
||||
noforce
|
||||
noguess
|
||||
Noid
|
||||
nolib
|
||||
nonequilibrium
|
||||
@ -2366,6 +2384,7 @@ nonGaussian
|
||||
nonlocal
|
||||
Nonlocal
|
||||
Noordhoek
|
||||
noprecond
|
||||
nopreliminary
|
||||
Nord
|
||||
norder
|
||||
@ -2471,6 +2490,7 @@ ohenrich
|
||||
ok
|
||||
Okabe
|
||||
Okamoto
|
||||
Okazaki
|
||||
O'Keefe
|
||||
OKeefe
|
||||
oldlace
|
||||
@ -2542,6 +2562,7 @@ palegreen
|
||||
paleturquoise
|
||||
palevioletred
|
||||
Panagiotopoulos
|
||||
Pande
|
||||
Pandit
|
||||
Papaconstantopoulos
|
||||
papayawhip
|
||||
@ -2576,6 +2597,7 @@ Pavia
|
||||
Paxton
|
||||
pbc
|
||||
pc
|
||||
pcg
|
||||
pchain
|
||||
Pchain
|
||||
pcmoves
|
||||
@ -2609,7 +2631,9 @@ Persp
|
||||
peru
|
||||
Peskin
|
||||
Pettifor
|
||||
pewald
|
||||
pfactor
|
||||
pflag
|
||||
pgi
|
||||
ph
|
||||
Philipp
|
||||
@ -2642,6 +2666,7 @@ pIp
|
||||
Pisarev
|
||||
Pishevar
|
||||
Pitera
|
||||
pitorsion
|
||||
pj
|
||||
pjintve
|
||||
pKa
|
||||
@ -2657,6 +2682,7 @@ plt
|
||||
plumedfile
|
||||
pmb
|
||||
pmcmoves
|
||||
pme
|
||||
Pmolrotate
|
||||
Pmoltrans
|
||||
pN
|
||||
@ -2681,6 +2707,7 @@ polyelectrolyte
|
||||
polyhedra
|
||||
Polym
|
||||
polymorphism
|
||||
Ponder
|
||||
popen
|
||||
Popoola
|
||||
Popov
|
||||
@ -2699,6 +2726,7 @@ potin
|
||||
Pourtois
|
||||
powderblue
|
||||
PowerShell
|
||||
ppme
|
||||
ppn
|
||||
pppm
|
||||
Prakash
|
||||
@ -2708,6 +2736,7 @@ pre
|
||||
Pre
|
||||
prec
|
||||
precession
|
||||
precond
|
||||
prefactor
|
||||
prefactors
|
||||
prepend
|
||||
@ -2729,6 +2758,7 @@ pscrozi
|
||||
pseudodynamics
|
||||
pseudopotential
|
||||
pSp
|
||||
pSPICA
|
||||
Pstart
|
||||
Pstop
|
||||
pstyle
|
||||
@ -2802,6 +2832,8 @@ Qsb
|
||||
qtb
|
||||
quadratically
|
||||
quadrupolar
|
||||
quadrupole
|
||||
quadrupoles
|
||||
Quant
|
||||
quartic
|
||||
quat
|
||||
@ -2818,6 +2850,7 @@ qw
|
||||
qx
|
||||
qy
|
||||
qz
|
||||
Rackers
|
||||
radialscreened
|
||||
radialscreenedspin
|
||||
radialspin
|
||||
@ -3057,6 +3090,7 @@ Schimansky
|
||||
Schiotz
|
||||
Schlitter
|
||||
Schmid
|
||||
Schnieders
|
||||
Schoen
|
||||
Schotte
|
||||
Schratt
|
||||
@ -3087,6 +3121,7 @@ semiaxes
|
||||
semimetals
|
||||
Semin
|
||||
Sensable
|
||||
Seo
|
||||
Sep
|
||||
seqdep
|
||||
Serpico
|
||||
@ -3191,12 +3226,15 @@ Souza
|
||||
sp
|
||||
spacings
|
||||
Spearot
|
||||
specieslist
|
||||
specular
|
||||
spellcheck
|
||||
Spellmeyer
|
||||
Speybroeck
|
||||
sph
|
||||
SPH
|
||||
spica
|
||||
SPICA
|
||||
Spickermann
|
||||
splined
|
||||
spparks
|
||||
@ -3513,6 +3551,9 @@ Tz
|
||||
Tzou
|
||||
ub
|
||||
Uberuaga
|
||||
ubflag
|
||||
Ubflag
|
||||
ubiquitin
|
||||
uca
|
||||
uChem
|
||||
uCond
|
||||
@ -3566,12 +3607,14 @@ upenn
|
||||
upto
|
||||
Urbakh
|
||||
Urbana
|
||||
UreyBradley
|
||||
Usabiaga
|
||||
usec
|
||||
uSemiParallel
|
||||
userguide
|
||||
username
|
||||
usleep
|
||||
usolve
|
||||
usr
|
||||
util
|
||||
utils
|
||||
@ -3605,6 +3648,7 @@ Vcm
|
||||
vdfmax
|
||||
vdim
|
||||
vdisplace
|
||||
vdw
|
||||
vdW
|
||||
vdwl
|
||||
vec
|
||||
@ -3698,6 +3742,7 @@ wallstyle
|
||||
walltime
|
||||
Waltham
|
||||
Waroquier
|
||||
Wataru
|
||||
wavepacket
|
||||
wB
|
||||
Wbody
|
||||
@ -3758,6 +3803,7 @@ Xeon
|
||||
xflag
|
||||
xhi
|
||||
xHost
|
||||
Xia
|
||||
Xiaohu
|
||||
Xiaowang
|
||||
Xie
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
LAMMPS CG-SDK example problems
|
||||
LAMMPS CG-SPICA example problems
|
||||
|
||||
Each of these sub-directories contains a sample problem for the SDK
|
||||
coarse grained MD potentials that you can run with LAMMPS.
|
||||
Each of these sub-directories contains a sample problem for
|
||||
the SPICA (formerly called SDK) coarse grained MD potentials
|
||||
that you can run with LAMMPS.
|
||||
|
||||
These are the two sample systems
|
||||
|
||||
@ -9,11 +10,11 @@ peg-verlet: coarse grained PEG surfactant/water mixture lamella
|
||||
verlet version
|
||||
this example uses the plain LJ term only, no charges.
|
||||
two variants are provided regular harmonic angles and
|
||||
the SDK variant that includes 1-3 LJ repulsion.
|
||||
the SPICA variant that includes 1-3 LJ repulsion.
|
||||
|
||||
sds-monolayer: coarse grained SDS surfactant monolayers at water/vapor
|
||||
interface.
|
||||
this example uses the SDK LJ term with coulomb and shows
|
||||
this example uses the SPICA LJ term with coulomb and shows
|
||||
how to use the combined coulomb style vs. hybrid/overlay
|
||||
with possible optimizations due to the small number of
|
||||
charged particles in this system
|
||||
@ -9,7 +9,7 @@ atom_style angle
|
||||
processors * * 1
|
||||
|
||||
# read topology and force field
|
||||
pair_style lj/sdk 15.0
|
||||
pair_style lj/sdk 15.0 # compatible with "lj/spica"
|
||||
bond_style harmonic
|
||||
angle_style harmonic
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
@ -9,9 +9,9 @@ atom_style angle
|
||||
processors * * 1
|
||||
|
||||
# read topology and force field
|
||||
pair_style lj/sdk 15.0
|
||||
pair_style lj/sdk 15.0 # compatible with "lj/spica"
|
||||
bond_style harmonic
|
||||
angle_style sdk
|
||||
angle_style sdk # compatible with "spica"
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
|
||||
read_data data.pegc12e8.gz
|
||||
@ -5,9 +5,9 @@ dimension 3
|
||||
atom_style full
|
||||
processors * * 1
|
||||
|
||||
pair_style hybrid/overlay lj/sdk 15.0 coul/long 26.5
|
||||
pair_style hybrid/overlay lj/sdk 15.0 coul/long 26.5 # "lj/sdk" is compatible with "lj/spica"
|
||||
bond_style harmonic
|
||||
angle_style sdk
|
||||
angle_style sdk # compatible with "spica"
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
|
||||
read_data data.sds.gz
|
||||
@ -5,9 +5,9 @@ dimension 3
|
||||
atom_style full
|
||||
processors * * 1
|
||||
|
||||
pair_style lj/sdk/coul/long 15.0
|
||||
pair_style lj/sdk/coul/long 15.0 # compatible with "lj/spica/coul/long"
|
||||
bond_style harmonic
|
||||
angle_style sdk
|
||||
angle_style sdk # compatible with "spica"
|
||||
special_bonds lj/coul 0.0 0.0 1.0
|
||||
|
||||
read_data data.sds.gz
|
||||
16
examples/PACKAGES/srp_react/README
Normal file
16
examples/PACKAGES/srp_react/README
Normal file
@ -0,0 +1,16 @@
|
||||
This directory contains an input script for performing
|
||||
simulations with the srp/react pair style. The pair style
|
||||
srp/react interfaces fix bond/break and fix bond/create commands
|
||||
with the segmental repulsive potential. This is useful in simulating
|
||||
reactions with soft potentials such as DPD where minimizing
|
||||
topological violations is important.
|
||||
|
||||
The input script in.srp_react is an example of a simulation of
|
||||
a degrading nanogel particle. An initial equilibrated structure
|
||||
of a nanogel particle (prior to degradation) is read from the
|
||||
restart file. The degradation reaction is simulated via
|
||||
the fix bond/break command. The simulation will generate the
|
||||
file bonds_broken.txt containing the number of bonds
|
||||
broken and fraction of bonds intact over the simulation time.
|
||||
For more details see the LAMMPS online documentation and the
|
||||
paper: Palkar, V., & Kuksenok, O. (2022). JPC B, 126, 336.
|
||||
22959
examples/PACKAGES/srp_react/gel_equil.dat
Normal file
22959
examples/PACKAGES/srp_react/gel_equil.dat
Normal file
File diff suppressed because it is too large
Load Diff
95
examples/PACKAGES/srp_react/in.srp_react
Normal file
95
examples/PACKAGES/srp_react/in.srp_react
Normal file
@ -0,0 +1,95 @@
|
||||
## srp_react example script
|
||||
## Author: Vaibhav Palkar
|
||||
##
|
||||
## Simulates controlled degradation of a nanogel particle
|
||||
## in a simulation box and prints statistics regarding
|
||||
## the fraction of bonds broken over time.
|
||||
|
||||
variable rseeddpd equal 26817
|
||||
variable rseedvel equal 5991
|
||||
variable breakstep equal 10
|
||||
variable probbreak equal 0.0009
|
||||
variable rseedbreak equal 6777
|
||||
|
||||
# simulation time
|
||||
#***********************************************
|
||||
variable mainsteps equal 10000
|
||||
|
||||
# simulation setup
|
||||
#***********************************************
|
||||
units lj
|
||||
atom_style molecular
|
||||
boundary p p p
|
||||
bond_style harmonic
|
||||
#lattice fcc 3.0
|
||||
comm_modify cutoff 4.0 vel yes
|
||||
|
||||
# initial nanogel
|
||||
#***********************************************
|
||||
read_data gel_equil.dat
|
||||
|
||||
# define groups, create solvent atoms
|
||||
#**************************************************
|
||||
group Npoly type 1 2 3 4
|
||||
group water type 5
|
||||
group N_all type 1 2 3 4 5
|
||||
|
||||
# density check
|
||||
#***********************************************
|
||||
variable N_atoms equal count(all)
|
||||
variable tdens equal count(all)/vol
|
||||
print "The system density is now ${tdens}"
|
||||
|
||||
# bond break settings
|
||||
# #***********************************************
|
||||
fix break N_all bond/break ${breakstep} 2 0 prob ${probbreak} ${rseedbreak}
|
||||
|
||||
# interaction parameter setting
|
||||
#***********************************************
|
||||
mass * 1.0
|
||||
bond_coeff * 500.0 0.70
|
||||
special_bonds lj 1 1 1
|
||||
newton on
|
||||
|
||||
pair_style hybrid dpd 1.0 1.0 ${rseeddpd} srp/react 0.8 * mid break
|
||||
#***********************************************
|
||||
pair_coeff *5 *5 dpd 78.000 4.5 1.0
|
||||
pair_coeff *4 5 dpd 79.500 4.5 1.0
|
||||
pair_coeff *5 6 none
|
||||
pair_coeff 6 6 srp/react 80.00 0.800
|
||||
|
||||
# initial velocity
|
||||
#***********************************************
|
||||
velocity all create 1.0 ${rseedvel} dist gaussian mom yes
|
||||
|
||||
# integrator control
|
||||
#***********************************************
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 1 delay 5 check no
|
||||
timestep 0.02
|
||||
|
||||
# Access variables of fix bond/break
|
||||
#**********************************************
|
||||
variable Nbreak equal f_break[2] # Number of bonds broken
|
||||
variable TIME equal time
|
||||
|
||||
# ensemble setting
|
||||
#***********************************************
|
||||
fix 1 all nve
|
||||
|
||||
# print bonds breaking stats
|
||||
# ***********************************************
|
||||
variable TotBreak equal 100 # total breakable bonds in current system
|
||||
fix print_bonds_broken all print 100 "${TIME} ${Nbreak} $((v_TotBreak-v_Nbreak)/v_TotBreak)" file bonds_broken.txt screen no title "time bonds_broken fraction_bonds_intact"
|
||||
|
||||
# thermo output
|
||||
#***********************************************
|
||||
thermo 100
|
||||
thermo_style custom step temp pe ke etotal epair
|
||||
thermo_modify flush yes norm no
|
||||
|
||||
reset_timestep 0
|
||||
#dump 1 Npoly custom 5000 traj.lammpstrj id type x y z
|
||||
#*********************************************
|
||||
run ${mainsteps}
|
||||
#***********************************************
|
||||
@ -59,6 +59,7 @@ sub-directories:
|
||||
|
||||
accelerate: use of all the various accelerator packages
|
||||
airebo: polyethylene with AIREBO potential
|
||||
amoeba: small water and bio models with AMOEBA and HIPPO potentials
|
||||
atm: Axilrod-Teller-Muto potential
|
||||
balance: dynamic load balancing, 2d system
|
||||
body: body particles, 2d system
|
||||
|
||||
24
examples/amoeba/README
Normal file
24
examples/amoeba/README
Normal file
@ -0,0 +1,24 @@
|
||||
Data files in this directory were created using the
|
||||
tools/tinker/tinker2lmp.py script as follows:
|
||||
|
||||
** water_dimer:
|
||||
|
||||
% python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba
|
||||
|
||||
% python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo
|
||||
|
||||
** water_hexamer:
|
||||
|
||||
% python tinker2lmp.py -xyz water_hexamer.xyz -amoeba amoeba_water.prm -data data.water_hexamer.amoeba
|
||||
|
||||
% python tinker2lmp.py -xyz water_hexamer.xyz -hippo hippo_water.prm -data data.water_hexamer.hippo
|
||||
|
||||
** water_box:
|
||||
|
||||
% python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643
|
||||
|
||||
% python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643
|
||||
|
||||
** ubiquitin:
|
||||
|
||||
% python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data
|
||||
18
examples/amoeba/amoeba_ubiquitin.key
Normal file
18
examples/amoeba/amoeba_ubiquitin.key
Normal file
@ -0,0 +1,18 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
parameters ./amoeba.prm
|
||||
verbose
|
||||
neighbor-list
|
||||
tau-temperature 1.0
|
||||
tau-pressure 2.0
|
||||
a-axis 54.99
|
||||
b-axis 41.91
|
||||
c-axis 41.91
|
||||
vdw-cutoff 12.0
|
||||
ewald
|
||||
ewald-alpha 0.4
|
||||
pewald-alpha 0.5
|
||||
ewald-cutoff 7.0
|
||||
#pme-grid 60 45 45
|
||||
pme-grid 60 48 48
|
||||
pme-order 5
|
||||
polar-eps 0.00001
|
||||
11584
examples/amoeba/amoeba_ubiquitin.prm
Normal file
11584
examples/amoeba/amoeba_ubiquitin.prm
Normal file
File diff suppressed because it is too large
Load Diff
10
examples/amoeba/amoeba_water.key
Normal file
10
examples/amoeba/amoeba_water.key
Normal file
@ -0,0 +1,10 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
parameters ./amoeba.prm
|
||||
|
||||
digits 8
|
||||
|
||||
cutoff 10
|
||||
taper 8
|
||||
|
||||
polar-eps 1e-5
|
||||
usolve-diag 1.0
|
||||
160
examples/amoeba/amoeba_water.prm
Normal file
160
examples/amoeba/amoeba_water.prm
Normal file
@ -0,0 +1,160 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
|
||||
##############################
|
||||
## ##
|
||||
## Force Field Definition ##
|
||||
## ##
|
||||
##############################
|
||||
|
||||
|
||||
forcefield AMOEBA-WATER-2003
|
||||
|
||||
bond-cubic -2.55
|
||||
bond-quartic 3.793125
|
||||
angle-cubic -0.014
|
||||
angle-quartic 0.000056
|
||||
angle-pentic -0.0000007
|
||||
angle-sextic 0.000000022
|
||||
opbendtype ALLINGER
|
||||
opbend-cubic -0.014
|
||||
opbend-quartic 0.000056
|
||||
opbend-pentic -0.0000007
|
||||
opbend-sextic 0.000000022
|
||||
torsionunit 0.5
|
||||
vdwtype BUFFERED-14-7
|
||||
radiusrule CUBIC-MEAN
|
||||
radiustype R-MIN
|
||||
radiussize DIAMETER
|
||||
epsilonrule HHG
|
||||
dielectric 1.0
|
||||
polarization MUTUAL
|
||||
vdw-12-scale 0.0
|
||||
vdw-13-scale 0.0
|
||||
vdw-14-scale 1.0
|
||||
vdw-15-scale 1.0
|
||||
mpole-12-scale 0.0
|
||||
mpole-13-scale 0.0
|
||||
mpole-14-scale 0.4
|
||||
#mpole-15-scale 0.8
|
||||
polar-12-scale 0.0
|
||||
polar-13-scale 0.0
|
||||
polar-14-scale 1.0
|
||||
polar-15-scale 1.0
|
||||
polar-12-intra 0.0
|
||||
polar-13-intra 0.0
|
||||
polar-14-intra 0.5
|
||||
polar-15-intra 1.0
|
||||
direct-11-scale 0.0
|
||||
direct-12-scale 1.0
|
||||
direct-13-scale 1.0
|
||||
direct-14-scale 1.0
|
||||
mutual-11-scale 1.0
|
||||
mutual-12-scale 1.0
|
||||
mutual-13-scale 1.0
|
||||
mutual-14-scale 1.0
|
||||
|
||||
|
||||
#############################
|
||||
## ##
|
||||
## Literature References ##
|
||||
## ##
|
||||
#############################
|
||||
|
||||
|
||||
P. Ren and J. W. Ponder, "A Polarizable Atomic Multipole Water Model
|
||||
for Molecular Mechanics Simulation", J. Phys. Chem. B, 107, 5933-5947
|
||||
(2003)
|
||||
|
||||
Y. Kong, "Multipole Electrostatic Methods for Protein Modeling with
|
||||
Reaction Field Treatment", Ph.D. thesis, DBBS Program in Molecular
|
||||
Biophysics, Washington University, St. Louis, August, 1997 [available
|
||||
online from http://dasher.wustl.edu/ponder/]
|
||||
|
||||
alternative valence parameters to match symmetric and antisymmetric
|
||||
stretch frequencies by David Semrouni, Ecole Polytechnique, Paris
|
||||
|
||||
|
||||
#############################
|
||||
## ##
|
||||
## Atom Type Definitions ##
|
||||
## ##
|
||||
#############################
|
||||
|
||||
|
||||
atom 1 1 O "AMOEBA Water O" 8 15.995 2
|
||||
atom 2 2 H "AMOEBA Water H" 1 1.008 1
|
||||
|
||||
|
||||
################################
|
||||
## ##
|
||||
## Van der Waals Parameters ##
|
||||
## ##
|
||||
################################
|
||||
|
||||
|
||||
vdw 1 3.4050 0.1100
|
||||
vdw 2 2.6550 0.0135 0.910
|
||||
|
||||
|
||||
##################################
|
||||
## ##
|
||||
## Bond Stretching Parameters ##
|
||||
## ##
|
||||
##################################
|
||||
|
||||
|
||||
#bond 1 2 529.60 0.9572 !! original AMOEBA water
|
||||
bond 1 2 556.85 0.9572
|
||||
|
||||
|
||||
################################
|
||||
## ##
|
||||
## Angle Bending Parameters ##
|
||||
## ##
|
||||
################################
|
||||
|
||||
|
||||
#angle 2 1 2 34.05 108.50 !! original AMOEBA water
|
||||
angle 2 1 2 48.70 108.50
|
||||
|
||||
|
||||
###############################
|
||||
## ##
|
||||
## Urey-Bradley Parameters ##
|
||||
## ##
|
||||
###############################
|
||||
|
||||
|
||||
#ureybrad 2 1 2 38.25 1.5537 !! original AMOEBA water
|
||||
ureybrad 2 1 2 -7.60 1.5537
|
||||
|
||||
|
||||
###################################
|
||||
## ##
|
||||
## Atomic Multipole Parameters ##
|
||||
## ##
|
||||
###################################
|
||||
|
||||
|
||||
multipole 1 -2 -2 -0.51966
|
||||
0.00000 0.00000 0.14279
|
||||
0.37928
|
||||
0.00000 -0.41809
|
||||
0.00000 0.00000 0.03881
|
||||
|
||||
multipole 2 1 2 0.25983
|
||||
-0.03859 0.00000 -0.05818
|
||||
-0.03673
|
||||
0.00000 -0.10739
|
||||
-0.00203 0.00000 0.14412
|
||||
|
||||
|
||||
########################################
|
||||
## ##
|
||||
## Dipole Polarizability Parameters ##
|
||||
## ##
|
||||
########################################
|
||||
|
||||
|
||||
polarize 1 0.837 0.390 2
|
||||
polarize 2 0.496 0.390 1
|
||||
19
examples/amoeba/amoeba_water_box.key
Normal file
19
examples/amoeba/amoeba_water_box.key
Normal file
@ -0,0 +1,19 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
parameters ./amoeba.prm
|
||||
|
||||
digits 10
|
||||
openmp-threads 1
|
||||
|
||||
ewald
|
||||
ewald-alpha 0.4
|
||||
pewald-alpha 0.5
|
||||
pme-grid 24 24 24
|
||||
|
||||
neighbor-list
|
||||
a-axis 18.643
|
||||
|
||||
cutoff 7
|
||||
taper 6
|
||||
|
||||
polar-eps 1e-5
|
||||
usolve-diag 1.0
|
||||
1884
examples/amoeba/bitorsion.ubiquitin.data
Normal file
1884
examples/amoeba/bitorsion.ubiquitin.data
Normal file
File diff suppressed because it is too large
Load Diff
36282
examples/amoeba/data.ubiquitin
Normal file
36282
examples/amoeba/data.ubiquitin
Normal file
File diff suppressed because it is too large
Load Diff
1988
examples/amoeba/data.water_box.amoeba
Normal file
1988
examples/amoeba/data.water_box.amoeba
Normal file
File diff suppressed because it is too large
Load Diff
1988
examples/amoeba/data.water_box.hippo
Normal file
1988
examples/amoeba/data.water_box.hippo
Normal file
File diff suppressed because it is too large
Load Diff
62
examples/amoeba/data.water_dimer.amoeba
Normal file
62
examples/amoeba/data.water_dimer.amoeba
Normal file
@ -0,0 +1,62 @@
|
||||
LAMMPS data file created from Tinker water_dimer.xyz and amoeba_water.prm files
|
||||
|
||||
6 atoms
|
||||
4 bonds
|
||||
2 angles
|
||||
2 atom types
|
||||
1 bond types
|
||||
1 angle types
|
||||
-1.463996 0.933234 xlo xhi
|
||||
-0.756549 0.75612 ylo yhi
|
||||
-0.009705 2.935934 zlo zhi
|
||||
|
||||
Masses
|
||||
|
||||
1 15.995
|
||||
2 1.008
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0 -0.024616 -0.001154 -0.003748
|
||||
2 1 2 0 -0.244211 -0.000666 0.933978
|
||||
3 1 2 0 0.932234 -0.000406 -0.008705
|
||||
4 2 1 0 -0.892721 0.000120 2.773674
|
||||
5 2 2 0 -1.462996 0.755120 2.933870
|
||||
6 2 2 0 -1.461809 -0.755549 2.934934
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 1 1 3
|
||||
3 1 4 5
|
||||
4 1 4 6
|
||||
|
||||
Angles
|
||||
|
||||
1 1 2 1 3
|
||||
2 1 5 4 6
|
||||
|
||||
Bond Coeffs
|
||||
|
||||
1 0.9572 556.85 -1419.9675 2112.20165625
|
||||
|
||||
Angle Coeffs
|
||||
|
||||
1 0 1 108.5 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034
|
||||
|
||||
BondAngle Coeffs
|
||||
|
||||
1 0.0 0.0 0.0 0.0
|
||||
|
||||
UreyBradley Coeffs
|
||||
|
||||
1 -7.6 1.5537
|
||||
|
||||
Tinker Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 2
|
||||
4 1
|
||||
5 2
|
||||
6 2
|
||||
62
examples/amoeba/data.water_dimer.hippo
Normal file
62
examples/amoeba/data.water_dimer.hippo
Normal file
@ -0,0 +1,62 @@
|
||||
LAMMPS data file created from Tinker water_dimer.xyz and hippo_water.prm files
|
||||
|
||||
6 atoms
|
||||
4 bonds
|
||||
2 angles
|
||||
2 atom types
|
||||
1 bond types
|
||||
1 angle types
|
||||
-1.463996 0.933234 xlo xhi
|
||||
-0.756549 0.75612 ylo yhi
|
||||
-0.009705 2.935934 zlo zhi
|
||||
|
||||
Masses
|
||||
|
||||
1 15.999
|
||||
2 1.008
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0 -0.024616 -0.001154 -0.003748
|
||||
2 1 2 0 -0.244211 -0.000666 0.933978
|
||||
3 1 2 0 0.932234 -0.000406 -0.008705
|
||||
4 2 1 0 -0.892721 0.000120 2.773674
|
||||
5 2 2 0 -1.462996 0.755120 2.933870
|
||||
6 2 2 0 -1.461809 -0.755549 2.934934
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 1 1 3
|
||||
3 1 4 5
|
||||
4 1 4 6
|
||||
|
||||
Angles
|
||||
|
||||
1 1 2 1 3
|
||||
2 1 5 4 6
|
||||
|
||||
Bond Coeffs
|
||||
|
||||
1 0.9572 556.85 -1419.9675 2112.20165625
|
||||
|
||||
Angle Coeffs
|
||||
|
||||
1 0 0 107.7 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034
|
||||
|
||||
BondAngle Coeffs
|
||||
|
||||
1 0.0 0.0 0.0 0.0
|
||||
|
||||
UreyBradley Coeffs
|
||||
|
||||
1 0.0 0.0
|
||||
|
||||
Tinker Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 2
|
||||
4 1
|
||||
5 2
|
||||
6 2
|
||||
98
examples/amoeba/data.water_hexamer.amoeba
Normal file
98
examples/amoeba/data.water_hexamer.amoeba
Normal file
@ -0,0 +1,98 @@
|
||||
LAMMPS data file created from Tinker water_hexamer.xyz and amoeba_water.prm files
|
||||
|
||||
18 atoms
|
||||
12 bonds
|
||||
6 angles
|
||||
2 atom types
|
||||
1 bond types
|
||||
1 angle types
|
||||
-2.517835 2.675716 xlo xhi
|
||||
-1.523041 2.01883 ylo yhi
|
||||
-1.734766 2.220847 zlo zhi
|
||||
|
||||
Masses
|
||||
|
||||
1 15.995
|
||||
2 1.008
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0 -1.502169 -0.191359 1.434927
|
||||
2 1 2 0 -0.601054 -0.596972 1.553718
|
||||
3 1 2 0 -2.006698 -0.422327 2.219847
|
||||
4 2 1 0 -1.744575 -0.382348 -1.309144
|
||||
5 2 2 0 -1.888941 -0.479653 -0.347624
|
||||
6 2 2 0 -2.516835 -0.766765 -1.733766
|
||||
7 3 1 0 -0.560409 2.017830 -0.121984
|
||||
8 3 2 0 -0.947720 1.533567 0.625228
|
||||
9 3 2 0 -0.989831 1.592736 -0.877419
|
||||
10 4 1 0 0.964803 -1.165765 1.439987
|
||||
11 4 2 0 0.979557 -1.522041 0.527833
|
||||
12 4 2 0 1.542224 -0.393692 1.344373
|
||||
13 5 1 0 0.974705 -1.401503 -1.335970
|
||||
14 5 2 0 0.065161 -1.118951 -1.522886
|
||||
15 5 2 0 1.470709 -0.570933 -1.277710
|
||||
16 6 1 0 2.002280 1.057824 -0.124502
|
||||
17 6 2 0 1.141637 1.532266 -0.140121
|
||||
18 6 2 0 2.674716 1.735342 -0.237995
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 1 1 3
|
||||
3 1 4 5
|
||||
4 1 4 6
|
||||
5 1 7 8
|
||||
6 1 7 9
|
||||
7 1 10 11
|
||||
8 1 10 12
|
||||
9 1 13 14
|
||||
10 1 13 15
|
||||
11 1 16 17
|
||||
12 1 16 18
|
||||
|
||||
Angles
|
||||
|
||||
1 1 2 1 3
|
||||
2 1 5 4 6
|
||||
3 1 8 7 9
|
||||
4 1 11 10 12
|
||||
5 1 14 13 15
|
||||
6 1 17 16 18
|
||||
|
||||
Bond Coeffs
|
||||
|
||||
1 0.9572 556.85 -1419.9675 2112.20165625
|
||||
|
||||
Angle Coeffs
|
||||
|
||||
1 0 1 108.5 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034
|
||||
|
||||
BondAngle Coeffs
|
||||
|
||||
1 0.0 0.0 0.0 0.0
|
||||
|
||||
UreyBradley Coeffs
|
||||
|
||||
1 -7.6 1.5537
|
||||
|
||||
Tinker Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 2
|
||||
4 1
|
||||
5 2
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 2
|
||||
10 1
|
||||
11 2
|
||||
12 2
|
||||
13 1
|
||||
14 2
|
||||
15 2
|
||||
16 1
|
||||
17 2
|
||||
18 2
|
||||
98
examples/amoeba/data.water_hexamer.hippo
Normal file
98
examples/amoeba/data.water_hexamer.hippo
Normal file
@ -0,0 +1,98 @@
|
||||
LAMMPS data file created from Tinker water_hexamer.xyz and hippo_water.prm files
|
||||
|
||||
18 atoms
|
||||
12 bonds
|
||||
6 angles
|
||||
2 atom types
|
||||
1 bond types
|
||||
1 angle types
|
||||
-2.517835 2.675716 xlo xhi
|
||||
-1.523041 2.01883 ylo yhi
|
||||
-1.734766 2.220847 zlo zhi
|
||||
|
||||
Masses
|
||||
|
||||
1 15.999
|
||||
2 1.008
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0 -1.502169 -0.191359 1.434927
|
||||
2 1 2 0 -0.601054 -0.596972 1.553718
|
||||
3 1 2 0 -2.006698 -0.422327 2.219847
|
||||
4 2 1 0 -1.744575 -0.382348 -1.309144
|
||||
5 2 2 0 -1.888941 -0.479653 -0.347624
|
||||
6 2 2 0 -2.516835 -0.766765 -1.733766
|
||||
7 3 1 0 -0.560409 2.017830 -0.121984
|
||||
8 3 2 0 -0.947720 1.533567 0.625228
|
||||
9 3 2 0 -0.989831 1.592736 -0.877419
|
||||
10 4 1 0 0.964803 -1.165765 1.439987
|
||||
11 4 2 0 0.979557 -1.522041 0.527833
|
||||
12 4 2 0 1.542224 -0.393692 1.344373
|
||||
13 5 1 0 0.974705 -1.401503 -1.335970
|
||||
14 5 2 0 0.065161 -1.118951 -1.522886
|
||||
15 5 2 0 1.470709 -0.570933 -1.277710
|
||||
16 6 1 0 2.002280 1.057824 -0.124502
|
||||
17 6 2 0 1.141637 1.532266 -0.140121
|
||||
18 6 2 0 2.674716 1.735342 -0.237995
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 1 1 3
|
||||
3 1 4 5
|
||||
4 1 4 6
|
||||
5 1 7 8
|
||||
6 1 7 9
|
||||
7 1 10 11
|
||||
8 1 10 12
|
||||
9 1 13 14
|
||||
10 1 13 15
|
||||
11 1 16 17
|
||||
12 1 16 18
|
||||
|
||||
Angles
|
||||
|
||||
1 1 2 1 3
|
||||
2 1 5 4 6
|
||||
3 1 8 7 9
|
||||
4 1 11 10 12
|
||||
5 1 14 13 15
|
||||
6 1 17 16 18
|
||||
|
||||
Bond Coeffs
|
||||
|
||||
1 0.9572 556.85 -1419.9675 2112.20165625
|
||||
|
||||
Angle Coeffs
|
||||
|
||||
1 0 0 107.7 48.7 -39.064262472 8.95286947775 -6.41202044508 11.5462823034
|
||||
|
||||
BondAngle Coeffs
|
||||
|
||||
1 0.0 0.0 0.0 0.0
|
||||
|
||||
UreyBradley Coeffs
|
||||
|
||||
1 0.0 0.0
|
||||
|
||||
Tinker Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 2
|
||||
4 1
|
||||
5 2
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 2
|
||||
10 1
|
||||
11 2
|
||||
12 2
|
||||
13 1
|
||||
14 2
|
||||
15 2
|
||||
16 1
|
||||
17 2
|
||||
18 2
|
||||
10
examples/amoeba/hippo_water.key
Normal file
10
examples/amoeba/hippo_water.key
Normal file
@ -0,0 +1,10 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
parameters ./hippo.prm
|
||||
|
||||
digits 8
|
||||
|
||||
cutoff 10
|
||||
taper 8
|
||||
|
||||
polar-eps 1e-5
|
||||
usolve-diag 1.0
|
||||
320
examples/amoeba/hippo_water.prm
Normal file
320
examples/amoeba/hippo_water.prm
Normal file
@ -0,0 +1,320 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
|
||||
##############################
|
||||
## ##
|
||||
## Force Field Definition ##
|
||||
## ##
|
||||
##############################
|
||||
|
||||
|
||||
forcefield HIPPO-WATER-2019
|
||||
|
||||
bond-cubic -2.55
|
||||
bond-quartic 3.793125
|
||||
angle-cubic -0.014
|
||||
angle-quartic 0.000056
|
||||
angle-pentic -0.0000007
|
||||
angle-sextic 0.000000022
|
||||
opbendtype ALLINGER
|
||||
opbend-cubic -0.014
|
||||
opbend-quartic 0.000056
|
||||
opbend-pentic -0.0000007
|
||||
opbend-sextic 0.000000022
|
||||
torsionunit 0.5
|
||||
dielectric 1.0
|
||||
polarization MUTUAL
|
||||
rep-12-scale 0.0
|
||||
rep-13-scale 0.0
|
||||
rep-14-scale 1.0
|
||||
rep-15-scale 1.0
|
||||
disp-12-scale 0.0
|
||||
disp-13-scale 0.0
|
||||
disp-14-scale 0.4
|
||||
#disp-15-scale 0.8
|
||||
mpole-12-scale 0.0
|
||||
mpole-13-scale 0.0
|
||||
mpole-14-scale 0.4
|
||||
#mpole-15-scale 0.8
|
||||
polar-12-scale 0.0
|
||||
polar-13-scale 0.0
|
||||
polar-14-scale 1.0
|
||||
polar-15-scale 1.0
|
||||
polar-12-intra 0.0
|
||||
polar-13-intra 0.0
|
||||
polar-14-intra 0.5
|
||||
polar-15-intra 1.0
|
||||
direct-11-scale 0.0
|
||||
direct-12-scale 1.0
|
||||
direct-13-scale 1.0
|
||||
direct-14-scale 1.0
|
||||
mutual-11-scale 1.0
|
||||
mutual-12-scale 1.0
|
||||
mutual-13-scale 1.0
|
||||
mutual-14-scale 1.0
|
||||
induce-12-scale 0.2
|
||||
induce-13-scale 1.0
|
||||
induce-14-scale 1.0
|
||||
induce-15-scale 1.0
|
||||
|
||||
|
||||
#############################
|
||||
## ##
|
||||
## Literature References ##
|
||||
## ##
|
||||
#############################
|
||||
|
||||
|
||||
This is a preliminary parameter set for water based on the HIPPO
|
||||
(Hydrogen-like Intermolecular Polarizable Potential) force field.
|
||||
It uses terms describing charge penetration, damped dispersion, and
|
||||
anisotropic repulsion as per the papers below. The parameters are as
|
||||
of 13 May 2019 and are from Roseane dos Reis Silva and Josh Rackers
|
||||
in the Ponder lab at Washington University. These parameter values
|
||||
are under development and are subject to change.
|
||||
|
||||
J. A. Rackers, Q. Wang, C. Liu, J.-P. Piquemal, P. Ren and J. W. Ponder,
|
||||
An Optimized Charge Penetration Model for Use with the AMOEBA Force Field,
|
||||
Physical Chemistry Chemical Physics, 19, 276-291 (2017)
|
||||
|
||||
J. A. Rackers, C. Liu, P. Ren and J. W. Ponder, A Physically Grounded
|
||||
Damped Dispersion Model with Particle Mesh Ewald Summation, Journal
|
||||
of Chemical Physics, 149, 084115 (2018)
|
||||
|
||||
J. A. Rackers and J. W. Ponder, Classical Pauli Repulsion: An Anisotropic,
|
||||
Atomic Multipole Model, Journal of Chemical Physics, 150, 084104 (2019)
|
||||
|
||||
|
||||
#############################
|
||||
## ##
|
||||
## Atom Type Definitions ##
|
||||
## ##
|
||||
#############################
|
||||
|
||||
|
||||
atom 1 1 O "HIPPO Water O" 8 15.999 2
|
||||
atom 2 2 H "HIPPO Water H" 1 1.008 1
|
||||
|
||||
|
||||
##################################
|
||||
## ##
|
||||
## Bond Stretching Parameters ##
|
||||
## ##
|
||||
##################################
|
||||
|
||||
|
||||
bond 1 2 556.85 0.9572 !! all
|
||||
|
||||
|
||||
################################
|
||||
## ##
|
||||
## Angle Bending Parameters ##
|
||||
## ##
|
||||
################################
|
||||
|
||||
|
||||
#angle 2 1 2 48.70 108.50 !! orig
|
||||
#angle 2 1 2 48.70 107.70 !! 13
|
||||
#angle 2 1 2 48.70 107.70 !! 12
|
||||
#angle 2 1 2 48.70 107.70 !! 16t-i2
|
||||
#angle 2 1 2 48.70 107.70 !! 16t-i6
|
||||
#angle 2 1 2 48.70 107.70 !! 17t-i3
|
||||
angle 2 1 2 48.70 107.70 !! 17t-i6
|
||||
|
||||
|
||||
##################################
|
||||
## ##
|
||||
## Pauli Repulsion Parameters ##
|
||||
## ##
|
||||
##################################
|
||||
|
||||
|
||||
#repulsion 1 2.8478 4.6069 3.3353 !! orig
|
||||
#repulsion 2 2.0560 4.8356 0.7423 !! orig
|
||||
#repulsion 1 2.7716 4.4097 3.3789 !! 13
|
||||
#repulsion 2 2.0410 4.8567 0.6592 !! 13
|
||||
#repulsion 1 2.7875 4.4310 3.3914 !! 12
|
||||
#repulsion 2 2.0510 4.8314 0.6557 !! 12
|
||||
#repulsion 1 2.8604 4.5590 3.3554 !! t16-i2
|
||||
#repulsion 2 2.0508 4.8497 0.7264 !! t16-i2
|
||||
#repulsion 1 2.8618 4.4770 3.3790 !! t16-i6
|
||||
#repulsion 2 2.0658 4.9052 0.6831 !! t16-i6
|
||||
#repulsion 1 2.8644 4.4964 3.3594 !! t17-i3
|
||||
#repulsion 2 2.0605 4.8965 0.6958 !! t17-i3
|
||||
repulsion 1 2.8758 4.4394 3.3883 !! t17-i6
|
||||
repulsion 2 2.0610 4.9367 0.6505 !! t17-i6
|
||||
|
||||
|
||||
#############################
|
||||
## ##
|
||||
## Dispersion Parameters ##
|
||||
## ##
|
||||
#############################
|
||||
|
||||
|
||||
#dispersion 1 16.4682 4.4288 !! orig
|
||||
#dispersion 2 2.9470 4.9751 !! orig
|
||||
#dispersion 1 17.0790 4.3977 !! 13
|
||||
#dispersion 2 4.2262 4.9255 !! 13
|
||||
#dispersion 1 17.0607 4.3872 !! 12
|
||||
#dispersion 2 4.2382 4.9542 !! 12
|
||||
#dispersion 1 16.6803 4.4470 !! t16-i2
|
||||
#dispersion 2 3.4415 4.9267 !! t16-i2
|
||||
#dispersion 1 16.7807 4.4427 !! t16-i6
|
||||
#dispersion 2 3.8508 4.9261 !! t16-i6
|
||||
#dispersion 1 16.6579 4.2763 !! t17-i3
|
||||
#dispersion 2 3.2999 4.9597 !! t17-i3
|
||||
dispersion 1 16.7190 4.3418 !! t17-i6
|
||||
dispersion 2 3.4239 4.9577 !! t17-i6
|
||||
|
||||
|
||||
###################################
|
||||
## ##
|
||||
## Atomic Multipole Parameters ##
|
||||
## ##
|
||||
###################################
|
||||
|
||||
|
||||
!! orig
|
||||
#multipole 1 -2 -2 -0.38280
|
||||
0.00000 0.00000 0.05477
|
||||
0.69866
|
||||
0.00000 -0.60471
|
||||
0.00000 0.00000 -0.09395
|
||||
#multipole 2 1 2 0.19140
|
||||
0.00000 0.00000 -0.20097
|
||||
0.03881
|
||||
0.00000 0.02214
|
||||
0.00000 0.00000 -0.06095
|
||||
!! 13
|
||||
#multipole 1 -2 -2 -0.38296
|
||||
0.00000 0.00000 0.05086
|
||||
0.70053
|
||||
0.00000 -0.61138
|
||||
0.00000 0.00000 -0.08915
|
||||
#multipole 2 1 2 0.19148
|
||||
0.00000 0.00000 -0.20142
|
||||
0.06672
|
||||
0.00000 0.04168
|
||||
0.01245 0.00000 -0.10840
|
||||
!! 12
|
||||
#multipole 1 -2 -2 -0.38468
|
||||
0.00000 0.00000 0.05069
|
||||
0.70076
|
||||
0.00000 -0.61593
|
||||
0.00000 0.00000 -0.08483
|
||||
#multipole 2 1 2 0.19234
|
||||
0.00000 0.00000 -0.20236
|
||||
0.06136
|
||||
0.00000 0.04166
|
||||
0.00591 0.00000 -0.10302
|
||||
!! t16-i2
|
||||
#multipole 1 -2 -2 -0.38236
|
||||
0.00000 0.00000 0.05488
|
||||
0.69693
|
||||
0.00000 -0.60514
|
||||
0.00000 0.00000 -0.09179
|
||||
#multipole 2 1 2 0.19118
|
||||
0.00000 0.00000 -0.20081
|
||||
0.04614
|
||||
0.00000 0.02258
|
||||
0.00000 0.00000 -0.07172
|
||||
!! t16-i6
|
||||
#multipole 1 -2 -2 -0.37854
|
||||
0.00000 0.00000 0.05439
|
||||
0.68442
|
||||
0.00000 -0.61857
|
||||
0.00000 0.00000 -0.06585
|
||||
#multipole 2 1 2 0.18927
|
||||
0.00000 0.00000 -0.19918
|
||||
0.05839
|
||||
0.00000 0.03699
|
||||
0.00683 0.00000 -0.09538
|
||||
!! t17-i3
|
||||
#multipole 1 -2 -2 -0.37944
|
||||
0.00000 0.00000 0.05496
|
||||
0.69091
|
||||
0.00000 -0.60566
|
||||
0.00000 0.00000 -0.08525
|
||||
#multipole 2 1 2 0.18972
|
||||
0.00000 0.00000 -0.20057
|
||||
0.05030
|
||||
0.00000 0.03290
|
||||
0.00187 0.00000 -0.08320
|
||||
!! t17-i6
|
||||
multipole 1 -2 -2 -0.37724
|
||||
0.00000 0.00000 0.05410
|
||||
0.68565
|
||||
0.00000 -0.60559
|
||||
0.00000 0.00000 -0.08006
|
||||
multipole 2 1 2 0.18862
|
||||
0.00000 0.00000 -0.19902
|
||||
0.06206
|
||||
0.00000 0.04341
|
||||
0.00709 0.00000 -0.10547
|
||||
|
||||
|
||||
#####################################
|
||||
## ##
|
||||
## Charge Penetration Parameters ##
|
||||
## ##
|
||||
#####################################
|
||||
|
||||
|
||||
#chgpen 1 6.0000 4.4288 !! orig
|
||||
#chgpen 2 1.0000 4.9751 !! orig
|
||||
#chgpen 1 6.0000 4.3977 !! 13
|
||||
#chgpen 2 1.0000 4.9255 !! 13
|
||||
#chgpen 1 6.0000 4.3872 !! 12
|
||||
#chgpen 2 1.0000 4.9542 !! 12
|
||||
#chgpen 1 6.0000 4.4470 !! t16-i2
|
||||
#chgpen 2 1.0000 4.9767 !! t16-i2
|
||||
#chgpen 1 6.0000 4.4427 !! t16-i6
|
||||
#chgpen 2 1.0000 4.9261 !! t16-i6
|
||||
#chgpen 1 6.0000 4.3763 !! t17-i3
|
||||
#chgpen 2 1.0000 4.9597 !! t17-i3
|
||||
chgpen 1 6.0000 4.3418 !! t17-i6
|
||||
chgpen 2 1.0000 4.9577 !! t17-i6
|
||||
|
||||
|
||||
########################################
|
||||
## ##
|
||||
## Dipole Polarizability Parameters ##
|
||||
## ##
|
||||
########################################
|
||||
|
||||
|
||||
#polarize 1 0.7482 2 !! orig
|
||||
#polarize 2 0.3703 1 !! orig
|
||||
#polarize 1 0.7448 2 !! 13
|
||||
#polarize 2 0.3897 1 !! 13
|
||||
#polarize 1 0.7442 2 !! 12
|
||||
#polarize 2 0.3874 1 !! 12
|
||||
#polarize 1 0.7499 2 !! t16-i2
|
||||
#polarize 2 0.3706 1 !! t16-i2
|
||||
#polarize 1 0.7403 2 !! t16-i6
|
||||
#polarize 2 0.3774 1 !! t16-i6
|
||||
#polarize 1 0.7416 2 !! t17-i3
|
||||
#polarize 2 0.3670 1 !! t17-i3
|
||||
polarize 1 0.7332 2 !! t17-i6
|
||||
polarize 2 0.3691 1 !! t17-i6
|
||||
|
||||
|
||||
##################################
|
||||
## ##
|
||||
## Charge Transfer Parameters ##
|
||||
## ##
|
||||
##################################
|
||||
|
||||
|
||||
#chgtrn 1 3.5788 0.0000 !! orig
|
||||
#chgtrn 2 0.0000 3.3292 !1 orig
|
||||
#chgtrn 1 3.5856 0.0000 !! 13
|
||||
#chgtrn 2 0.0000 3.3482 !! 13
|
||||
#chgtrn 1 3.5867 0.0000 !! t16-i2
|
||||
#chgtrn 2 0.0000 3.3105 !! t16-i2
|
||||
#chgtrn 1 3.5812 0.0000 !! t16-i6
|
||||
#chgtrn 2 0.0000 3.2909 !! t16-i6
|
||||
#chgtrn 1 3.5762 0.0000 !! t17-i3
|
||||
#chgtrn 2 0.0000 3.2881 !! t17-i3
|
||||
chgtrn 1 3.5551 0.0000 !! t17-i6
|
||||
chgtrn 2 0.0000 3.2812 !! t17-i6
|
||||
22
examples/amoeba/hippo_water_box.key
Normal file
22
examples/amoeba/hippo_water_box.key
Normal file
@ -0,0 +1,22 @@
|
||||
!! DATE: 2022-07-05 UNITS: real
|
||||
parameters ./hippo.prm
|
||||
|
||||
digits 8
|
||||
verbose
|
||||
|
||||
ewald
|
||||
ewald-alpha 0.4
|
||||
pewald-alpha 0.5
|
||||
|
||||
dewald
|
||||
dewald-alpha 0.45
|
||||
dpme-grid 16 16 16
|
||||
|
||||
neighbor-list
|
||||
a-axis 18.643
|
||||
|
||||
cutoff 7
|
||||
taper 6
|
||||
|
||||
polar-eps 1e-5
|
||||
usolve-diag 1.0
|
||||
52
examples/amoeba/in.ubiquitin
Normal file
52
examples/amoeba/in.ubiquitin
Normal file
@ -0,0 +1,52 @@
|
||||
# solvated ubiquitin molecule with AMOEBA force field
|
||||
|
||||
units real
|
||||
boundary p p p
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
atom_style amoeba
|
||||
|
||||
bond_style class2
|
||||
angle_style amoeba
|
||||
dihedral_style fourier
|
||||
improper_style amoeba
|
||||
|
||||
# per-atom properties required by AMOEBA or HIPPO
|
||||
|
||||
fix amtype all property/atom i_amtype ghost yes
|
||||
fix extra all property/atom i_amgroup d_redID d_pval ghost yes
|
||||
fix extra2 all property/atom i_polaxe d2_xyzaxis 3
|
||||
|
||||
fix pit all amoeba/pitorsion
|
||||
fix_modify pit energy yes
|
||||
fix bit all amoeba/bitorsion bitorsion.ubiquitin.data
|
||||
fix_modify bit energy yes
|
||||
|
||||
# read data file
|
||||
|
||||
read_data data.ubiquitin fix amtype NULL "Tinker Types" &
|
||||
fix pit "pitorsion types" "PiTorsion Coeffs" &
|
||||
fix pit pitorsions PiTorsions &
|
||||
fix bit bitorsions BiTorsions
|
||||
|
||||
pair_style amoeba
|
||||
pair_coeff * * amoeba_ubiquitin.prm amoeba_ubiquitin.key
|
||||
|
||||
special_bonds lj/coul 0.5 0.5 0.5 one/five yes
|
||||
|
||||
# thermo output
|
||||
|
||||
compute virial all pressure NULL virial
|
||||
|
||||
thermo_style custom step temp epair ebond eangle edihed eimp &
|
||||
emol etotal press c_virial[*]
|
||||
|
||||
#dump 1 all custom 10 dump.ubiquitin id type x y z fx fy fz
|
||||
#dump_modify 1 sort id
|
||||
|
||||
# dynamics
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
thermo 1
|
||||
run 10
|
||||
43
examples/amoeba/in.water_box.amoeba
Normal file
43
examples/amoeba/in.water_box.amoeba
Normal file
@ -0,0 +1,43 @@
|
||||
# replicate water box with AMOEBA or HIPPO
|
||||
|
||||
units real
|
||||
boundary p p p
|
||||
|
||||
atom_style amoeba
|
||||
bond_style class2
|
||||
angle_style amoeba
|
||||
dihedral_style none
|
||||
|
||||
# per-atom properties required by AMOEBA or HIPPO
|
||||
|
||||
fix amtype all property/atom i_amtype ghost yes
|
||||
fix extra all property/atom i_amgroup d_redID d_pval ghost yes
|
||||
fix extra2 all property/atom i_polaxe d2_xyzaxis 3
|
||||
|
||||
# read data file
|
||||
|
||||
read_data data.water_box.amoeba fix amtype NULL "Tinker Types"
|
||||
|
||||
# force field
|
||||
|
||||
pair_style amoeba
|
||||
pair_coeff * * amoeba_water.prm amoeba_water_box.key
|
||||
|
||||
special_bonds lj/coul 0.5 0.5 0.5 one/five yes
|
||||
|
||||
# thermo output
|
||||
|
||||
compute virial all pressure NULL virial
|
||||
|
||||
thermo_style custom step temp epair ebond eangle edihed eimp &
|
||||
emol etotal press c_virial[*]
|
||||
|
||||
#dump 1 all custom 10 dump.water_box id type x y z fx fy fz
|
||||
#dump_modify 1 sort id
|
||||
|
||||
# dynamics
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
thermo 10
|
||||
run 100
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user