Merge branch 'master' into fft

This commit is contained in:
Axel Kohlmeyer 2019-09-12 15:51:02 -04:00
commit cd57708e85
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
1699 changed files with 46353 additions and 14653 deletions
cmake
doc
examples

View File

@ -133,6 +133,24 @@ foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
######################################################
# download and unpack support binaries for compilation
# of windows binaries.
######################################################
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(LAMMPS_THIRDPARTY_URL "http://download.lammps.org/thirdparty")
file(DOWNLOAD "${LAMMPS_THIRDPARTY_URL}/opencl-win-devel.tar.gz" "${CMAKE_CURRENT_BINARY_DIR}/opencl-win-devel.tar.gz"
EXPECTED_MD5 2c00364888d5671195598b44c2e0d44d)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf opencl-win-devel.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
set(OpenCL_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/lib_win32/libOpenCL.dll")
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(OpenCL_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/lib_win64/libOpenCL.dll")
endif()
set(OpenCL_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/include")
endif()
######################################################
######################################################
# packages with special compiler needs or external libs
######################################################
@ -148,6 +166,7 @@ if(PKG_USER-ADIOS)
endif()
# do MPI detection after language activation, if MPI for these language is required
set(MPI_CXX_SKIP_MPICXX TRUE)
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
if(BUILD_MPI)
@ -175,11 +194,13 @@ add_definitions(-DLAMMPS_${LAMMPS_SIZES})
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_${LAMMPS_SIZES}")
# posix_memalign is not available on Windows
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(LAMMPS_MEMALIGN "0" CACHE STRING "posix_memalign() is not available on Windows" FORCE)
else()
set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS. Set to 0 to disable")
if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
endif()
if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF)
@ -219,8 +240,7 @@ if(BUILD_OMP)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-PLUMED OR PKG_USER-QUIP OR PKG_LATTE)
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
find_package(LAPACK)
find_package(BLAS)
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
@ -230,6 +250,7 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-PLUMED OR PKG_USER-QUI
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF])
add_library(linalg STATIC ${LAPACK_SOURCES})
set(BLAS_LIBRARIES linalg)
set(LAPACK_LIBRARIES linalg)
else()
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
@ -497,10 +518,43 @@ if(BUILD_LIB)
if(LAMMPS_DEPS)
add_dependencies(lammps ${LAMMPS_DEPS})
endif()
set(LAMMPS_CXX_HEADERS
${LAMMPS_SOURCE_DIR}/angle.h
${LAMMPS_SOURCE_DIR}/atom.h
${LAMMPS_SOURCE_DIR}/bond.h
${LAMMPS_SOURCE_DIR}/citeme.h
${LAMMPS_SOURCE_DIR}/comm.h
${LAMMPS_SOURCE_DIR}/compute.h
${LAMMPS_SOURCE_DIR}/dihedral.h
${LAMMPS_SOURCE_DIR}/domain.h
${LAMMPS_SOURCE_DIR}/error.h
${LAMMPS_SOURCE_DIR}/fix.h
${LAMMPS_SOURCE_DIR}/force.h
${LAMMPS_SOURCE_DIR}/group.h
${LAMMPS_SOURCE_DIR}/improper.h
${LAMMPS_SOURCE_DIR}/input.h
${LAMMPS_SOURCE_DIR}/kspace.h
${LAMMPS_SOURCE_DIR}/lammps.h
${LAMMPS_SOURCE_DIR}/lattice.h
${LAMMPS_SOURCE_DIR}/lmppython.h
${LAMMPS_SOURCE_DIR}/memory.h
${LAMMPS_SOURCE_DIR}/modify.h
${LAMMPS_SOURCE_DIR}/neighbor.h
${LAMMPS_SOURCE_DIR}/neigh_list.h
${LAMMPS_SOURCE_DIR}/output.h
${LAMMPS_SOURCE_DIR}/pair.h
${LAMMPS_SOURCE_DIR}/pointers.h
${LAMMPS_SOURCE_DIR}/region.h
${LAMMPS_SOURCE_DIR}/timer.h
${LAMMPS_SOURCE_DIR}/universe.h
${LAMMPS_SOURCE_DIR}/update.h
${LAMMPS_SOURCE_DIR}/variable.h)
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX})
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
install(FILES ${LAMMPS_CXX_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY)
@ -535,6 +589,7 @@ if(BUILD_TOOLS)
enable_language(Fortran)
add_executable(chain.x ${LAMMPS_TOOLS_DIR}/chain.f)
target_link_libraries(chain.x ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
install(TARGETS chain.x DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
enable_language(C)
@ -551,11 +606,11 @@ include(Documentation)
###############################################################################
# Install potential and force field files in data directory
###############################################################################
set(LAMMPS_INSTALL_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials)
install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_POTENTIALS_DIR})
set(LAMMPS_INSTALL_FRC_FILES_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/frc_files)
install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files/ DESTINATION ${LAMMPS_INSTALL_FRC_FILES_DIR})
set(LAMMPS_INSTALL_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps)
install(DIRECTORY ${LAMMPS_POTENTIALS_DIR} DESTINATION ${LAMMPS_INSTALL_DATADIR})
if(BUILD_TOOLS)
install(DIRECTORY ${LAMMPS_TOOLS_DIR}/msi2lmp/frc_files DESTINATION ${LAMMPS_INSTALL_DATADIR})
endif()
configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY)
configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY)

View File

@ -37,6 +37,26 @@
# KIM-API-CMAKE_Fortran_COMPILER
#
function(_KIMAPI_GET_VERSION _OUT_ver _version_hdr)
if(NOT EXISTS ${_version_hdr})
message(FATAL_ERROR "Header file ${_version_hdr} not found (check value of KIM-API_INCLUDE_DIR)")
endif()
foreach(_var KIM_VERSION_MAJOR KIM_VERSION_MINOR KIM_VERSION_PATCH)
file(STRINGS ${_version_hdr} _contents REGEX "#define ${_var}[ \t]+")
if(_contents)
string(REGEX REPLACE ".*#define ${_var}[ \t]+([0-9]+).*" "\\1" _${_var} "${_contents}")
if(${_${_var}} STREQUAL "")
message(FATAL_ERROR "Version parsing failed for ${_var} in ${_version_hdr}, got empty return!")
elseif(NOT ${_${_var}} MATCHES "^[0-9]+$")
message(FATAL_ERROR "Version parsing failed for ${_var} in ${_version_hdr}, excepted a number but got ${_${_var}}!")
endif()
else()
message(FATAL_ERROR "No ${_var} line found in include file ${_version_hdr}")
endif()
endforeach()
set(${_OUT_ver} ${_KIM_VERSION_MAJOR}.${_KIM_VERSION_MINOR}.${_KIM_VERSION_PATCH} PARENT_SCOPE)
endfunction()
if(KIM-API_FIND_QUIETLY)
set(REQ_OR_QUI "QUIET")
else()
@ -54,6 +74,12 @@ if(KIM-API_FOUND)
pkg_get_variable(KIM-API_CMAKE_Fortran_COMPILER libkim-api CMAKE_Fortran_COMPILER)
endif()
if(KIM-API_INCLUDEDIR)
_KIMAPI_GET_VERSION(KIM-API_VERSION ${KIM-API_INCLUDEDIR}/KIM_Version.h)
else()
set(KIM-API_VERSION 0)
endif()
# handle the QUIETLY and REQUIRED arguments and set KIM-API_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(KIM-API REQUIRED_VARS KIM-API_LIBRARIES)
find_package_handle_standard_args(KIM-API REQUIRED_VARS KIM-API_LIBRARIES VERSION_VAR KIM-API_VERSION)

View File

@ -1,4 +1,5 @@
if(PKG_KIM)
set(KIM-API_MIN_VERSION 2.1)
find_package(CURL)
if(CURL_FOUND)
include_directories(${CURL_INCLUDE_DIRS})
@ -7,8 +8,18 @@ if(PKG_KIM)
endif()
find_package(KIM-API QUIET)
if(KIM-API_FOUND)
set(DOWNLOAD_KIM_DEFAULT OFF)
if (KIM-API_VERSION VERSION_LESS ${KIM-API_MIN_VERSION})
if ("${DOWNLOAD_KIM}" STREQUAL "")
message(WARNING "Unsuitable KIM-API version \"${KIM-API_VERSION}\" found, but required is at least \"${KIM-API_MIN_VERSION}\". Default behavior set to download and build our own.")
endif()
set(DOWNLOAD_KIM_DEFAULT ON)
else()
set(DOWNLOAD_KIM_DEFAULT OFF)
endif()
else()
if ("${DOWNLOAD_KIM}" STREQUAL "")
message(WARNING "KIM-API package not found. Default behavior set to download and build our own")
endif()
set(DOWNLOAD_KIM_DEFAULT ON)
endif()
option(DOWNLOAD_KIM "Download KIM-API from OpenKIM instead of using an already installed one" ${DOWNLOAD_KIM_DEFAULT})
@ -17,12 +28,16 @@ if(PKG_KIM)
message(FATAL_ERROR "Cannot build downloaded KIM-API library with Ninja build tool")
endif()
message(STATUS "KIM-API download requested - we will build our own")
enable_language(C)
enable_language(Fortran)
include(CheckLanguage)
include(ExternalProject)
enable_language(C)
check_language(Fortran)
if(NOT CMAKE_Fortran_COMPILER)
message(FATAL_ERROR "Compiling the KIM-API library requires a Fortran compiler")
endif()
ExternalProject_Add(kim_build
URL https://s3.openkim.org/kim-api/kim-api-2.0.2.txz
URL_MD5 537d9c0abd30f85b875ebb584f9143fa
URL https://s3.openkim.org/kim-api/kim-api-2.1.3.txz
URL_MD5 6ee829a1bbba5f8b9874c88c4c4ebff8
BINARY_DIR build
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
@ -35,7 +50,7 @@ if(PKG_KIM)
set(KIM-API_LDFLAGS ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libkim-api${CMAKE_SHARED_LIBRARY_SUFFIX})
list(APPEND LAMMPS_DEPS kim_build)
else()
find_package(KIM-API REQUIRED)
find_package(KIM-API ${KIM-API_MIN_VERSION} REQUIRED)
endif()
list(APPEND LAMMPS_LINK_LIBS "${KIM-API_LDFLAGS}")
include_directories(${KIM-API_INCLUDE_DIRS})

View File

@ -23,6 +23,7 @@ if(PKG_KOKKOS)
${KOKKOS_PKG_SOURCES_DIR}/fix_nh_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/npair_halffull_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp)
@ -40,6 +41,7 @@ if(PKG_KOKKOS)
# register kokkos-only styles
RegisterNBinStyle(${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.h)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.h)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_halffull_kokkos.h)
if(PKG_USER-DPD)
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)

View File

@ -1,11 +1,23 @@
if(PKG_USER-PLUMED)
find_package(GSL REQUIRED)
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
set(PLUMED_MODE_VALUES static shared runtime)
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
set(PLUMED_LINK_LIBS "")
if(PLUMED_MODE STREQUAL "STATIC")
find_package(LAPACK REQUIRED)
find_package(BLAS REQUIRED)
find_package(GSL REQUIRED)
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${GSL_LIBRARIES})
find_package(ZLIB QUIET)
if(ZLIB_FOUND)
list(APPEND PLUMED_LINK_LIBS ${ZLIB_LIBRARIES})
endif()
endif()
find_package(PkgConfig QUIET)
set(DOWNLOAD_PLUMED_DEFAULT ON)
if(PKG_CONFIG_FOUND)
@ -37,8 +49,8 @@ if(PKG_USER-PLUMED)
message(STATUS "PLUMED download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(plumed_build
URL https://github.com/plumed/plumed2/releases/download/v2.5.1/plumed-src-2.5.1.tgz
URL_MD5 c2a7b519e32197a120cdf47e0f194f81
URL https://github.com/plumed/plumed2/releases/download/v2.5.2/plumed-src-2.5.2.tgz
URL_MD5 bd2f18346c788eb54e1e52f4f6acf41a
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
${CONFIGURE_REQUEST_PIC}
@ -53,11 +65,11 @@ if(PKG_USER-PLUMED)
list(APPEND LAMMPS_DEPS plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${GSL_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_DL_LIBS})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${PLUMED_LINK_LIBS} ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "SHARED")
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.so ${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so ${CMAKE_DL_LIBS})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} ${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so)
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumedWrapper.a -rdynamic ${CMAKE_DL_LIBS})
endif()
set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
@ -70,7 +82,7 @@ if(PKG_USER-PLUMED)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel.so)
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
endif()
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LOAD})

View File

@ -18,8 +18,12 @@ if(PKG_VORONOI)
else()
set(VORO_BUILD_CFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
endif()
string(APPEND VORO_BUILD_CFLAGS ${CMAKE_CXX_FLAGS})
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
if(APPLE)
get_filename_component(VORO_CXX ${CMAKE_CXX_COMPILER} NAME_WE)
set(VORO_BUILD_OPTIONS CXX=${VORO_CXX} CFLAGS=${VORO_BUILD_CFLAGS})
else()
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
endif()
ExternalProject_Add(voro_build
URL https://download.lammps.org/thirdparty/voro++-0.4.6.tar.gz

View File

@ -33,12 +33,17 @@ tasks, act as a reference and provide examples of typical use cases.
* [Package-Specific Configuration Options](#package-specific-configuration-options)
* [KSPACE Package](#kspace-package)
* [MKL](#mkl)
* [FFTW2](#fftw2)
* [FFTW3](#fftw3)
* [BLAS](#blas)
* [LAPACK](#lapack)
* [PYTHON Package](#python-package)
* [GPU Package](#gpu-package)
* [MESSAGE Package](#message-package)
* [MSCG Package](#mscg-package)
* [VORONOI Package](#voronoi-package)
* [USER-LATTE Package](#user-latte-package)
* [USER-PLUMED Package](#user-plumed-package)
* [USER-SCAFACOS Package](#user-scafacos-package)
* [USER-SMD Package](#user-smd-package)
* [Optional Features](#optional-features)
* [zlib support](#zlib-support)
@ -50,8 +55,6 @@ tasks, act as a reference and provide examples of typical use cases.
* [Building with GNU Compilers](#building-with-gnu-compilers)
* [Building with Intel Compilers](#building-with-intel-compilers)
* [Building with LLVM/Clang Compilers](#building-with-llvmclang-compilers)
* [Examples](#examples)
## Quick Start for the Impatient
If you want to skip ahead and just run the compilation using `cmake`, please
@ -205,8 +208,10 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
<td>Controls if debugging symbols are added to the generated binaries</td>
<td>
<dl>
<dt><code>Release</code> (default)</dt>
<dt><code>RelWithDebInfo (default)</code></dt>
<dt><code>Release</code></dt>
<dt><code>Debug</code></dt>
<dt><code>MinSizeRel</code></dt>
</dl>
</td>
</tr>
@ -249,6 +254,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_MEMALIGN</code></td>
<td>controls the alignment of blocks of memory allocated by LAMMPS</td>
@ -271,7 +286,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</tr>
<tr>
<td><code>LAMMPS_MACHINE</code></td>
<td>allows appending a machine suffix to the generate LAMMPS binary</td>
<td>allows appending a machine suffix to the generated LAMMPS binary</td>
<td>
<dl>
<dt>*none* (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_LIB_SUFFIX</code></td>
<td>allows appending a suffix to the generated LAMMPS library</td>
<td>
<dl>
<dt>*none* (default)</dt>
@ -319,8 +343,8 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</td>
</tr>
<tr>
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
<td><code>BUILD_TOOLS</code></td>
<td>control whether to build LAMMPS tools</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
@ -561,23 +585,6 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MEAM</code></td>
<td>
<p>A pair style for the modified embedded atom (MEAM) potential.</p>
<p><strong>Please note that the MEAM package has been superseded by the USER-MEAMC package,
which is a direct translation of the MEAM package to C++. USER-MEAMC contains
additional optimizations making it run faster than MEAM on most machines, while
providing the identical features and USER interface.</strong></p>
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MISC</code></td>
<td>
@ -634,21 +641,6 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_REAX</code></td>
<td>
A pair style which wraps a Fortran library which implements the ReaxFF
potential, which is a universal reactive force field. See the USER-REAXC
package for an alternate implementation in C/C++. Also a fix reax/bonds
command for monitoring molecules as bonds are created and destroyed.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_REPLICA</code></td>
<td>
@ -695,6 +687,16 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_SPIN</code></td>
<td>Model atomic magnetic spins classically, coupled to atoms moving in the usual manner via MD. Various pair, fix, and compute styles.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_SNAP</code></td>
<td>
@ -757,6 +759,16 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MESSAGE</code></td>
<td>Commands to use LAMMPS as either a client or server and couple it to another application.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MSCG</code></td>
<td>
@ -811,6 +823,18 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_VORONOI</code></td>
<td>
A compute command which calculates the Voronoi tesselation of a collection of atoms by wrapping the Voro++ library. This can be used to calculate the local volume or each atoms or its near neighbors.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
@ -825,6 +849,16 @@ providing the identical features and USER interface.</strong></p>
</tr>
</thead>
<tbody>
<tr>
<td><code>PKG_USER-ADIOS</code></td>
<td>ADIOS is a high-performance I/O library. This package implements the dump “atom/adios” and dump “custom/adios” commands to write data using the ADIOS library.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-ATC</code></td>
<td>
@ -853,6 +887,18 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-BOCS</code></td>
<td>
This package provides fix bocs, a modified version of fix npt which includes the pressure correction to the barostat as outlined in: N. J. H. Dunn and W. G. Noid, “Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids,” J. Chem. Phys. 143, 243148 (2015).
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-CGDNA</code></td>
<td>
@ -1142,6 +1188,30 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-PLUMED</code></td>
<td>
The fix plumed command allows you to use the PLUMED free energy plugin for molecular dynamics to analyze and bias your LAMMPS trajectory on the fly. The PLUMED library is called from within the LAMMPS input script by using the <code>fix plumed</code> command.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-PTM</code></td>
<td>
A <code>compute ptm/atom</code> command that calculates local structure characterization using the Polyhedral Template Matching methodology.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-QTB</code></td>
<td>
@ -1197,6 +1267,33 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SCAFACOS</code></td>
<td>
A KSpace style which wraps the ScaFaCoS Coulomb solver library to compute long-range Coulombic interactions.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SDPD</code></td>
<td>
A pair style for smoothed dissipative particle dynamics (SDPD), which is an
extension of smoothed particle hydrodynamics (SPH) to mesoscale where thermal
fluctuations are important (see the USER-SPH package). Also two fixes for
moving and rigid body integration of SPH/SDPD particles (particles of
<code>atom_style meso</code>).</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SMD</code></td>
<td>
@ -1280,6 +1377,23 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-YAFF</code></td>
<td>
Some potentials that are also implemented in the Yet Another Force Field (YAFF) code.
The expressions and their use are discussed in the following papers:
<ul>
<li><a href="http://dx.doi.org/10.1002/jcc.23877" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 36 (13), 1015-1027 (2015)</a></li>
<li><a href="http://dx.doi.org/10.1002/jcc.25173" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 39 (16), 999-1011 (2018)</a></li>
</ul>
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
@ -1300,14 +1414,27 @@ providing the identical features and USER interface.</strong></p>
<td><code>FFT</code></td>
<td>
<p>FFT library for KSPACE package</p>
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate these libraries automatically. To control which one should be used please see the options below for each FFT library.</p>
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate
these libraries automatically. To control which one should be used please see
the options below for each FFT library. Otherwise it will default to KISS
FFT.</p>
</td>
<td>
<dl>
<dt><code>KISS</code></dt>
<dt><code>FFTW3</code></dt>
<dt><code>FFTW2</code></dt>
<dt><code>MKL</code></dt>
<dt><code>KISS</code> (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>FFT_SINGLE</code></td>
<td>Use single-precision floating-point in FFT</td>
<td>
<dl>
<dt><code>off</code> (default = double precision)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
@ -1325,60 +1452,6 @@ providing the identical features and USER interface.</strong></p>
</tbody>
</table>
### MKL
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MKL_INCLUDE_DIRS</code></td>
<td></td>
<td>
</td>
</tr>
<tr>
<td><code>MKL_LIBRARIES</code></td>
<td></td>
<td>
</td>
</tr>
</tbody>
</table>
TODO static vs dynamic linking
### FFTW2
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>FFTW2_INCLUDE_DIRS</code></td>
<td></td>
<td>
</td>
</tr>
<tr>
<td><code>FFTW2_LIBRARIES</code></td>
<td></td>
<td>
</td>
</tr>
</tbody>
</table>
### FFTW3
<table>
@ -1392,24 +1465,57 @@ TODO static vs dynamic linking
<tbody>
<tr>
<td><code>FFTW3_INCLUDE_DIRS</code></td>
<td></td>
<td>path to FFTW3 include files</td>
<td>
</td>
</tr>
<tr>
<td><code>FFTW3_LIBRARIES</code></td>
<td></td>
<td>list of paths to FFTW3 libraries</td>
<td>
</td>
</tr>
</tbody>
</table>
### MKL
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MKL_INCLUDE_DIRS</code></td>
<td>path to MKL include files</td>
<td>
</td>
</tr>
<tr>
<td><code>MKL_LIBRARIES</code></td>
<td>list of paths to MKL libraries</td>
<td>
</td>
</tr>
</tbody>
</table>
### BLAS
See [FindBLAS documentation](https://cmake.org/cmake/help/latest/module/FindBLAS.html)
### LAPACK
TODO
See [FindLAPACK documentation](https://cmake.org/cmake/help/latest/module/FindLAPACK.html)
### PYTHON Package
See [FindPYTHON documentation](https://cmake.org/cmake/help/latest/module/FindPython.html)
### USER-INTEL Package
<table>
@ -1499,10 +1605,11 @@ target API.
<td>
<dl>
<dt><code>sm_20</code> (Fermi)</dt>
<dt><code>sm_30</code> (Kepler)</dt>
<dt><code>sm_30</code> (Kepler) (default)</dt>
<dt><code>sm_50</code> (Maxwell)</dt>
<dt><code>sm_60</code> (Pascal)</dt>
<dt><code>sm_70</code> (Volta)</dt>
<dt><code>sm_75</code> (Turing)</dt>
</dl>
</td>
</tr>
@ -1534,13 +1641,14 @@ target API.
</tbody>
</table>
### VORONOI Package
### KIM Package
TODO
Requires installation of the KIM library with API v2
### USER-SMD Package
Requires a Eigen3 installation
If `DOWNLOAD_KIM` is set, the KIM library will be downloaded and built inside
the CMake build directory. If the KIM library is already on your system (in a
location CMake cannot find it), set the `PKG_CONFIG_PATH` environment variable
so that `libkim-api` can be found.
<table>
<thead>
@ -1551,9 +1659,323 @@ Requires a Eigen3 installation
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_KIM</code></td>
<td>Download KIM API v2 and compile it as part of the build.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
### MESSAGE Package
This package can optionally include support for messaging via sockets, using the open-source [ZeroMQ library](http://zeromq.org/), which must be installed on your system.
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MESSAGE_ZMQ</code></td>
<td>Build with ZeroMQ support</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ZMQ_LIBRARY</code></td>
<td>
ZMQ library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>ZMG_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing ZMQ installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### MSCG Package
Requires installation of the MSCG library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_MSCG</code></td>
<td>Download MSCG and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>MSCG_LIBRARY</code></td>
<td>
MSCG library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>MSCG_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing MSCG installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### VORONOI Package
Requires installation of the Voro++ library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_VORO</code></td>
<td>Download Voro++ and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>VORO_LIBRARY</code></td>
<td>
Voro++ library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>VORO_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing Voro++ installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-LATTE Package
Requires installation of the LATTE library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_LATTE</code></td>
<td>Download LATTE and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LATTE_LIBRARY</code></td>
<td>
LATTE library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-PLUMED Package
Requires installation of the PLUMED library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_PLUMED</code></td>
<td>Download PLUMED and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PLUMED_MODE</code></td>
<td>
Determines the linkage mode for the PLUMED library.
</td>
<td>
<dl>
<dt><code>static</code> (default)</dt>
<dt><code>shared</code></dt>
<dt><code>runtime</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
### USER-LATTE Package
Requires installation of the LATTE library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_LATTE</code></td>
<td>Download LATTE and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LATTE_LIBRARY</code></td>
<td>
LATTE library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-SMD Package
Requires installation of the Eigen3 library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_EIGEN3</code></td>
<td>Download Eigen3 and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>EIGEN3_INCLUDE_DIR</code></td>
<td></td>
<td>
Provide include directory of existing Eigen3 installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-SCAFACOS Package
To build with this package, you must download and build the [ScaFaCoS Coulomb solver library](http://www.scafacos.de/)
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_SCAFACOS</code></td>
<td>Download SCAFACOS and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>SCAFACOS_LIBRARY</code></td>
<td>
SCAFACOS library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>SCAFACOS_INCLUDE_DIR</code></td>
<td>
SCAFACOS include directory (only needed if at custom location)
</td>
<td>
</td>
</tr>
@ -1791,5 +2213,82 @@ cmake -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icpc -D CMAKE_Fortran_COMPIL
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=flang ../cmake
```
## LAMMPS Developer Options
## Examples
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ENABLE_TESTING</code></td>
<td>Control wheather to add tests via CTest</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_TESTING_SOURCE_DIR</code></td>
<td>Custom location of lammps-testing repository (optional). If not specified it will download it via Git</td>
<td>
</td>
</tr>
<tr>
<td><code>LAMMPS_TESTING_GIT_TAG</code></td>
<td>If lammps-testing repository is cloned, this is the tag/commit that will be checked out</td>
<td>
<dl>
<dt><code>master</code> (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_COVERAGE</code></td>
<td>Enables code coverage support via gcov and adds a gcovr build target to generate a coverage report.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_ADDRESS</code></td>
<td>Enables Address Sanitizer support when compiling using GCC or Clang for detecting memory leaks in binaries while running them. See https://clang.llvm.org/docs/AddressSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_UNDEFINED</code></td>
<td>Enables Undefined Behavior Sanitizer support when compiling using GCC or Clang for detecting code that is running into undefined behavior of the language. See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_THREAD</code></td>
<td>Enables Thread Sanitizer support when compiling using GCC or Clang for detecting data races in binaries while running them. See https://clang.llvm.org/docs/ThreadSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>

View File

@ -1,4 +1,4 @@
# set environment for LAMMPS and msi2lmp executables
# to find potential and force field files
if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_POTENTIALS_DIR@
if ( "$?MSI2LMP_LIBRARY" == 0 ) setenv MSI2LMP_LIBRARY @LAMMPS_FRC_FILES_DIR@
if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_INSTALL_DATADIR@/potentials
if ( "$?MSI2LMP_LIBRARY" == 0 ) setenv MSI2LMP_LIBRARY @LAMMPS_INSTALL_DATADIR@/frc_files

View File

@ -1,5 +1,5 @@
# set environment for LAMMPS and msi2lmp executables
# to find potential and force field files
LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_POTENTIALS_DIR@}
MSI2LMP_LIBRARY=${MSI2LMP_LIBRARY-@LAMMPS_FRC_FILES_DIR@}
LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_INSTALL_DATADIR@/potentials}
MSI2LMP_LIBRARY=${MSI2LMP_LIBRARY-@LAMMPS_INSTALL_DATADIR@/frc_files}
export LAMMPS_POTENTIALS MSI2LMP_LIBRARY

View File

@ -3,9 +3,9 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI USER-ATC USER-AWPMD
USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-INTEL USER-MANIFOLD
USER-MEAMC USER-MESO USER-MISC USER-MOFFF USER-MOLFILE USER-OMP
USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
USER-MEAMC USER-MESO USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE
USER-OMP USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD
USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
foreach(PKG ${WIN_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
@ -14,4 +14,4 @@ endforeach()
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
set(INTEL_LRT_MODE "none" CACHE STRING "" FORCE)
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/lammps-installer")

View File

@ -0,0 +1,133 @@
# Outline of include file conventions in LAMMPS
This purpose of this document is to provide a point of reference
for LAMMPS developers and contributors as to what include files
and definitions to put where into LAMMPS source.
Last change 2019-07-05
## Table of Contents
* [Motivation](#motivation)
* [Rules](#rules)
* [Tools](#tools)
* [Legacy Code](#legacy-code)
## Motivation
The conventions outlined in this document are supposed to help make
maintenance of the LAMMPS software easier. By trying to achieve
consistency across files contributed by different developers, it will
become easier for the code maintainers to modify and adjust files and,
overall, the chance for errors or portability issues will be reduced.
The rules employed are supposed to minimize naming conflicts and
simplify dependencies between files and thus speed up compilation. They
may, as well, make otherwise hidden dependencies visible.
## Rules
Below are the various rules that are applied. Not all are enforced
strictly and automatically. If there are no significant side effects,
exceptions may be possible for cases where a full compliance to the
rules may require a large effort compared to the benefit.
### Core Files Versus Package Files
All rules listed below are most strictly observed for core LAMMPS files,
which are the files that are not part of a package, and the files of the
packages MOLECULE, MANYBODY, KSPACE, and RIGID. On the other end of
the spectrum are USER packages and legacy packages that predate these
rules and thus may not be fully compliant. Also, new contributions
will be checked more closely, while existing code will be incrementally
adapted to the rules as time and required effort permits.
### System Versus Local Header Files
All system- or library-provided include files are included with angular
brackets (examples: `#include <cstring>` or `#include <mpi.h>`) while
include files provided with LAMMPS are included with double quotes
(examples: `#include "pointers.h"` or `#include "compute_temp.h"`).
For headers declaring functions of the C-library, the corresponding
C++ versions should be included (examples: `#include <cstdlib>` or
`#include <cctypes>`). However, these includes are limited to those defined
in the C++98 standard. Some files thus must use the older style until
the minimum C++ standard requirement of LAMMPS is lifted to C++11 or
even beyond (examples: `#include <stdint.h>` versus `#include <cstdint>`
or `#include <inttypes.h>` versus `#include <cinttypes>`).
### C++ Standard Compliance
LAMMPS core files currently correspond to the C++98 standard. Files
requiring C++11 or later are only permitted in (optional) packages
and particularly packages that are not part of the list of commonly
used packages such as MOLECULE, KSPACE, MANYBODY, or RIGID.
Also, LAMMPS uses the C-style stdio library for I/O instead of iostreams.
Since using both at the same time can cause problems, iostreams should
be avoided where possible.
### Lean Header Files
Header files will typically contain the definition of a (single) class.
These header files should have as few include statements as possible.
This is particularly important for classes that implement a "style" and
thus use a macro of the kind `SomeStyle(some/name,SomeName)`. These will
all be included in the auto-generated `"some_style.h"` files which
results in a high potential for direct or indirect symbol name clashes.
In the ideal case, the header would only include one file defining the
parent class. That would typically be either `#include "pointers.h"` for
the `Pointers` class, or a header of a class derived from it like
`#include "pair.h"` for the `Pair` class and so on. References to other
classes inside the class should be make through pointers, for which forward
declarations (inside the `LAMMPS_NS` or the new class' namespace) can
be employed. The full definition will then be included into the corresponding
implementation file. In the given example from above, the header file
would be called `some_name.h` and the implementation `some_name.cpp` (all
lower case with underscores, while the class itself would be in camel case
and no underscores `SomeName`, and the style name with lower case names separated by
a forward slash).
### Implementation Files
In the implementation files (typically, those would have the same base name
as the corresponding header with a .cpp extension instead of .h) include
statements should follow the "include what you use" principle.
### Order of Include Statements
Include files should be included in this order:
* the header matching the implementation (`some_class.h` for file `some_class.cpp`)
* mpi.h
* system and library headers (anything that is using angular brackets; C-library headers first, then C++)
* LAMMPS local headers (preferably in alphabetical order)
### Special Cases and Exceptions
#### pointers.h
The `pointer.h` header file also includes `cstdio` and `lmptype.h`
(and through it `stdint.h`, `intttypes.h`, cstdlib, and `climits`).
This means any header including `pointers.h` can assume that `FILE`,
`NULL`, `INT_MAX` are defined.
## Tools
The [Include What You Use tool](https://include-what-you-use.org/)
can be used to provide supporting information about compliance with
the rules listed here. There are some limitations and the IWYU tool
may give incorrect advice. The tools is activated by setting the
CMake variable `CMAKE_CXX_INCLUDE_WHAT_YOU_USE` variable to the
path of the `include-what-you-use` command. When activated, the
tool will be run after each compilation and provide suggestions for
which include files should be added or removed.
## Legacy Code
A lot of code predates the application of the rules in this document
and the rules themselves are a moving target. So there are going to be
significant chunks of code that do not fully comply. This applies
for example to the USER-REAXC, or the USER-ATC package. The LAMMPS
developers are dedicated to make an effort to improve the compliance
and welcome volunteers wanting to help with the process.

View File

@ -1,4 +1,4 @@
.TH LAMMPS "19 July 2019" "2019-07-19"
.TH LAMMPS "7 August 2019" "2019-08-07"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.

View File

@ -29,6 +29,7 @@ as described on the "Install"_Install.html doc page.
Build_package
Build_extras
Build_windows
Build_development
END_RST -->
@ -41,7 +42,8 @@ END_RST -->
"Optional build settings"_Build_settings.html
"Include packages in build"_Build_package.html
"Packages with extra build options"_Build_extras.html
"Notes for building LAMMPS on Windows"_Build_windows.html :all(b)
"Notes for building LAMMPS on Windows"_Build_windows.html
"Development build options (CMake only)"_Build_development.html :all(b)
If you have problems building LAMMPS, it is often due to software
issues on your local machine. If you can, find a local expert to

View File

@ -235,12 +235,16 @@ running LAMMPS from Python via its library interface.
-D BUILD_EXE=value # yes (default) or no
-D BUILD_LIB=value # yes or no (default)
-D BUILD_SHARED_LIBS=value # yes or no (default) :pre
-D BUILD_SHARED_LIBS=value # yes or no (default)
-D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc
# no default value :pre
Setting BUILD_EXE=no will not produce an executable. Setting
BUILD_LIB=yes will produce a static library named liblammps.a.
Setting both BUILD_LIB=yes and BUILD_SHARED_LIBS=yes will produce a
shared library named liblammps.so.
shared library named liblammps.so. If LAMMPS_LIB_SUFFIX is set the generated
libraries will be named liblammps_name.a or liblammps_name.so instead.
[Traditional make]:
@ -310,6 +314,30 @@ current LAMMPS version (HTML and PDF files), from the website
:line
Build LAMMPS tools :h4,link(tools)
Some tools described in "Auxiliary tools"_Tools.html can be built directly
using CMake or Make.
[CMake variable]:
-D BUILD_TOOLS=value # yes or no (default) :pre
The generated binaries will also become part of the LAMMPS installation (see below)
[Traditional make]:
cd lammps/tools
make all # build all binaries of tools
make binary2txt # build only binary2txt tool
make chain # build only chain tool
make micelle2d # build only micelle2d tool
make thermo_extract # build only thermo_extract tool
:pre
:line
Install LAMMPS after a build :h4,link(install)
After building LAMMPS, you may wish to copy the LAMMPS executable of

View File

@ -52,11 +52,17 @@ LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
ccache (= Compiler Cache) software may speed up repeated compilation
even more.
After compilation, you can optionally copy the LAMMPS executable and
library into your system folders (by default under $HOME/.local) with:
After compilation, you may optionally install the LAMMPS executable into
your system with:
make install # optional, copy LAMMPS executable & library elsewhere :pre
This will install the lammps executable and library (if requested), some
tools (if configured) and additional files like library API headers,
manpages, potential and force field files. The location of the installation
tree is set by the CMake variable "CMAKE_INSTALL_PREFIX" which defaults
to $\{HOME\}/.local
:line
There are 3 variants of CMake: a command-line version (cmake), a text mode
@ -114,7 +120,7 @@ The argument can be preceeded or followed by various CMake
command-line options. Several useful ones are:
-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired
-D CMAKE_BUILD_TYPE=type # type = Release or Debug
-D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug
-G output # style of output CMake generates
-DVARIABLE=value # setting for a LAMMPS feature to enable
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir

View File

@ -0,0 +1,86 @@
"Higher level section"_Build.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
Development build options (CMake only) :h3
The CMake build of LAMMPS has a few extra options which are useful during
development, testing or debugging.
:line
Verify compilation flags :h4,link(compilation)
Sometimes it is necessary to verify the complete sequence of compilation flags
generated by the CMake build. To enable a more verbose output during
compilation you can use the following option.
-D CMAKE_VERBOSE_MAKEFILE=value # value = no (default) or yes :pre
Another way of doing this without reconfiguration is calling make with variable VERBOSE set to 1:
make VERBOSE=1 :pre
:line
Address, Undefined Behavior, and Thread Sanitizer Support :h4,link(sanitizer)
Compilers such as GCC and Clang support generating binaries which use different
sanitizers to detect problems in code during run-time. They can detect "memory leaks"_https://clang.llvm.org/docs/AddressSanitizer.html,
code that runs into "undefined behavior"_https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html of the
language and "data races"_https://clang.llvm.org/docs/ThreadSanitizer.html in threaded code.
The following settings allow you enable these features if your compiler supports
it. Please note that they come with a performance hit. However, they are
usually faster than using tools like Valgrind.
-D ENABLE_SANITIZE_ADDRESS=value # enable Address Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_UNDEFINED=value # enable Undefined Behaviour Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_THREAD=value # enable Thread Sanitizer, value = no (default) or yes
:pre
:line
Code Coverage and Testing :h4,link(testing)
We do extensive regression testing of the LAMMPS code base on a continuous
basis. Some of the logic to do this has been added to the CMake build so
developers can run the tests directly on their workstation.
NOTE: this is incomplete and only represents a small subset of tests that we run
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
:pre
If you enable testing in the CMake build it will create an additional target called "test". You can run them with:
make test
:pre
The test cases used come from the lammps-testing repository. They are
derivatives of the examples folder with some modifications to make the run
faster.
You can also collect code coverage metrics while running the tests by enabling
coverage support during building.
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes :pre
This will also add the following targets to generate coverage reports after running the LAMMPS executable:
make test # run tests first!
make gen_coverage_html # generate coverage report in HTML format
make gen_coverage_xml # generate coverage report in XML format
:pre
These reports require GCOVR to be installed. The easiest way to do this to install it via pip:
pip install git+https://github.com/gcovr/gcovr.git :pre
:pre

View File

@ -88,7 +88,7 @@ which GPU hardware to build for.
# generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
# value = sm_XX, see below
# default is Cuda-compiler dependent, but typically sm_20
# default is sm_30
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
# enables CUDA Performance Primitives Optimizations
# value = yes (default) or no
@ -172,22 +172,17 @@ KIM package :h4,link(kim)
To build with this package, the KIM library with API v2 must be downloaded
and built on your system. It must include the KIM models that you want to
use with LAMMPS. If you want to use the "kim_query"_kim_query.html
use with LAMMPS. If you want to use the "kim_query"_kim_commands.html
command, you also need to have libcurl installed with the matching
development headers and the curl-config tool.
Note that in LAMMPS lingo, a KIM model driver is a pair style
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
element or alloy and set of parameters, e.g. EAM for Cu with a
specific EAM potential file. Also note that downloading and installing
the KIM API library with all its models, may take a long time (10s of
minutes to hours) to build. Of course you only need to do that once.
See "Obtaining KIM Models"_http://openkim.org/doc/usage/obtaining-models to
learn how to install a pre-build binary of the OpenKIM Repository of Models.
See the list of all KIM models here: https://openkim.org/browse/models
See the list of KIM model drivers here:
https://openkim.org/browse/model-drivers/alphabetical
See the list of all KIM models here:
https://openkim.org/browse/models/by-model-drivers
(Also note that when downloading and installing from source
the KIM API library with all its models, may take a long time (tens of
minutes to hours) to build. Of course you only need to do that once.)
[CMake build]:
@ -359,6 +354,9 @@ be installed on your system.
[CMake build]:
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
-D ZMQ_LIBRARY=path # ZMQ library file (only needed if a custom location)
-D ZMQ_INCLUDE_DIR=path # ZMQ include directory (only needed if a custom location)
:pre
[Traditional make]:
@ -371,6 +369,7 @@ simply invoke the lib/message/Install.py script with the specified args:
make lib-message # print help message
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
make lib-message args="-s" # build as serial lib with no ZMQ support
:pre
The build should produce two files: lib/message/cslib/src/libmessage.a
and lib/message/Makefile.lammps. The latter is copied from an

View File

@ -68,7 +68,9 @@ An alphabetic list of all general LAMMPS commands.
"improper_style"_improper_style.html,
"include"_include.html,
"jump"_jump.html,
"kim_query"_kim_query.html,
"kim_init"_kim_commands.html,
"kim_interactions"_kim_commands.html,
"kim_query"_kim_commands.html,
"kspace_modify"_kspace_modify.html,
"kspace_style"_kspace_style.html,
"label"_label.html,

View File

@ -66,6 +66,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"group/group"_compute_group_group.html,
"gyration"_compute_gyration.html,
"gyration/chunk"_compute_gyration_chunk.html,
"gyration/shape"_compute_gyration_shape.html,
"heat/flux"_compute_heat_flux.html,
"heat/flux/tally"_compute_tally.html,
"hexorder/atom"_compute_hexorder_atom.html,
@ -80,6 +81,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"meso/e/atom"_compute_meso_e_atom.html,
"meso/rho/atom"_compute_meso_rho_atom.html,
"meso/t/atom"_compute_meso_t_atom.html,
"momentum"_compute_momentum.html,
"msd"_compute_msd.html,
"msd/chunk"_compute_msd_chunk.html,
"msd/nongauss"_compute_msd_nongauss.html,

View File

@ -232,6 +232,7 @@ OPT.
"wall/lj1043"_fix_wall.html,
"wall/lj126"_fix_wall.html,
"wall/lj93 (k)"_fix_wall.html,
"wall/morse"_fix_wall.html,
"wall/piston"_fix_wall_piston.html,
"wall/reflect (k)"_fix_wall_reflect.html,
"wall/region"_fix_wall_region.html,

View File

@ -65,6 +65,7 @@ OPT.
"colloid (go)"_pair_colloid.html,
"comb (o)"_pair_comb.html,
"comb3"_pair_comb.html,
"cosine/squared"_pair_cosine_squared.html,
"coul/cut (gko)"_pair_coul.html,
"coul/cut/soft (o)"_pair_fep_soft.html,
"coul/debye (gko)"_pair_coul.html,

Binary file not shown.

After

(image error) Size: 6.8 KiB

View File

@ -0,0 +1,13 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{eqnarray*}
c = l_z - 0.5(l_y+l_x) \\
b = l_y - l_x \\
k = \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
\end{eqnarray*}
\end{document}

Binary file not shown.

After

(image error) Size: 8.7 KiB

View File

@ -0,0 +1,16 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
E =
\begin{cases}
-\epsilon& \quad r < \sigma \\
-\epsilon\cos\left(\frac{\pi\left(r - \sigma\right)}{2\left(r_c - \sigma\right)}\right)&\quad \sigma \leq r < r_c \\
0& \quad r \geq r_c
\end{cases}
\end{align*}
\end{document}

Binary file not shown.

After

(image error) Size: 6.6 KiB

View File

@ -0,0 +1,11 @@
\documentstyle[12pt]{article}
\begin{document}
$$
E = \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
2\left(\frac{\sigma}{r}\right)^6 + 1\right]
, \quad r < \sigma
$$
\end{document}

Binary file not shown.

Before

(image error) Size: 178 KiB

After

(image error) Size: 49 KiB

View File

@ -27,7 +27,7 @@
V_{ij} & = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \right ] \\
\rho_{ij}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{i})^2 \\[15pt]
\rho_{ji}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{j})^2 \\[15pt]
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { \rho/\delta }^{2n}
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n}
\end{eqnarray*}
\endgroup
\end{document}

View File

@ -2438,6 +2438,14 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Compute gyration ID does not exist for compute gyration/shape} :dt
Self-explanatory. Provide a valid compute ID. :dd
{Compute gyration/shape compute ID does not point to a gyration compute} :dt
Self-explanatory. Provide and ID of a compute gyration command. :dd
{Compute ID for compute reduce does not exist} :dt
Self-explanatory. :dd
@ -5777,6 +5785,16 @@ definitions. :dd
The data file header lists improper but no improper types. :dd
{Incompatible KIM Simulator Model} :dt
The requested KIM Simulator Model was defined for a different MD code
and thus is not compatible with LAMMPS. :dd
{Incompatible units for KIM Simulator Model} :dt
The selected unit style is not compatible with the requested KIM
Simulator Model. :dd
{Incomplete use of variables in create_atoms command} :dt
The var and set options must be used together. :dd
@ -7047,6 +7065,12 @@ The atom style defined does not have this attribute. :dd
The atom style defined does not have these attributes. :dd
{KIM Simulator Model has no Model definition} :dt
There is no model definition (key: model-defn) in the KIM Simulator
Model. Please contact the OpenKIM database maintainers to verify
and potentially correct this. :dd
{KOKKOS package does not yet support comm_style tiled} :dt
Self-explanatory. :dd
@ -7551,6 +7575,18 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Must use 'kim_style init' command before simulation box is defined} :dt
Self-explanatory. :dd
{Must use 'kim_style define' command after simulation box is defined} :dt
Self-explanatory. :dd
{Must use 'kim_style init' command before 'kim_style define'} :dt
Self-explanatory. :dd
{Must use 'kspace_modify pressure/scalar no' for rRESPA with kspace_style MSM} :dt
The kspace scalar pressure option cannot (yet) be used with rRESPA. :dd
@ -9494,6 +9530,11 @@ See the "read_data extra/special/per/atom" command
for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd
{Species XXX is not supported by this KIM Simulator Model} :dt
The kim_style define command was referencing a species that is not
present in the requested KIM Simulator Model. :dd
{Specified processors != physical processors} :dt
The 3d grid of processors defined by the processors command does not

View File

@ -129,6 +129,16 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost} :dt
The communication cutoff defaults to the maximum of what is inferred from
pair and bond styles (will be zero, if none are defined) and what is specified
via "comm_modify cutoff"_comm_modify.html (defaults to 0.0). If this results
to 0.0, no ghost atoms will be generated and LAMMPS may lose atoms or use
incorrect periodic images of atoms in interaction lists. To avoid, either use
"pair style zero"_pair_zero.html with a suitable cutoff or use "comm_modify
cutoff"_comm_modify.html. :dd
{Communication cutoff is too small for SNAP micro load balancing, increased to %lf} :dt
Self-explanatory. :dd

View File

@ -73,7 +73,7 @@ granregion: use of fix wall/region/gran as boundary on granular particles
hugoniostat: Hugoniostat shock dynamics
hyper: global and local hyperdynamics of diffusion on Pt surface
indent: spherical indenter into a 2d solid
kim: use of potentials in Knowledge Base for Interatomic Models (KIM)
kim: use of potentials from the "OpenKIM Repository"_openkim
latte: examples for using fix latte for DFTB via the LATTE library
meam: MEAM test for SiC and shear (same as shear examples)
melt: rapid melt of 3d LJ system
@ -153,3 +153,5 @@ illustrate how to use the command(s) provided in that package. Many
of the sub-directories have their own README files which give further
instructions. See the "Packages_details"_Packages_details.html doc
page for more info on specific USER packages.
:link(openkim,https://openkim.org)

View File

@ -136,7 +136,9 @@ The "compute chunk/spread/atom"_compute_chunk_spread_atom.html command
spreads per-chunk values to each atom in the chunk, producing per-atom
values as its output. This can be useful for outputting per-chunk
values to a per-atom "dump file"_dump.html. Or for using an atom's
associated chunk value in an "atom-style variable"_variable.html.
associated chunk value in an "atom-style variable"_variable.html. Or
as input to the "fix ave/chunk"_fix_ave_chunk.html command to
spatially average per-chunk values calculated by a per-chunk compute.
The "compute reduce/chunk"_compute_reduce_chunk.html command reduces a
peratom value across the atoms in each chunk to produce a value per
@ -184,12 +186,20 @@ compute cc1 all chunk/atom c_cluster compress yes
compute size all property/chunk cc1 count
fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre
(6) An example of using a per-chunk value to apply per-atom forces to
(6) An example for using a per-chunk value to apply per-atom forces to
compress individual polymer chains (molecules) in a mixture, is
explained on the "compute
chunk/spread/atom"_compute_chunk_spread_atom.html command doc page.
(7) An example of using one set of per-chunk values for molecule
(7) An example for using one set of per-chunk values for molecule
chunks, to create a 2nd set of micelle-scale chunks (clustered
molecules, due to hydrophobicity), is explained on the "compute
chunk/reduce"_compute_reduce_chunk.html command doc page.
(8) An example for using one set of per-chunk values (dipole moment
vectors) for molecule chunks, spreading the values to each atom in
each chunk, then defining a second set of chunks as spatial bins, and
using the "fix ave/chunk"_fix_ave_chunk.html command to calculate an
average dipole moment vector for each bin. This example is explained
on the "compute chunk/spread/atom"_compute_chunk_spread_atom.html
command doc page.

View File

@ -59,14 +59,15 @@ granular particles; all the other commands create smooth walls.
"fix wall/lj126"_fix_wall.html - flat walls, with Lennard-Jones 12/6 potential
"fix wall/colloid"_fix_wall.html - flat walls, with "pair_style colloid"_pair_colloid.html potential
"fix wall/harmonic"_fix_wall.html - flat walls, with repulsive harmonic spring potential
"fix wall/morse"_fix_wall.html - flat walls, with Morse potential
"fix wall/region"_fix_wall_region.html - use region surface as wall
"fix wall/gran"_fix_wall_gran.html - flat or curved walls with "pair_style granular"_pair_gran.html potential :ul
The {lj93}, {lj126}, {colloid}, and {harmonic} styles all allow the
flat walls to move with a constant velocity, or oscillate in time.
The "fix wall/region"_fix_wall_region.html command offers the most
generality, since the region surface is treated as a wall, and the
geometry of the region can be a simple primitive volume (e.g. a
The {lj93}, {lj126}, {colloid}, {harmonic}, and {morse} styles all
allow the flat walls to move with a constant velocity, or oscillate in
time. The "fix wall/region"_fix_wall_region.html command offers the
most generality, since the region surface is treated as a wall, and
the geometry of the region can be a simple primitive volume (e.g. a
sphere, or cube, or plane), or a complex volume made from the union
and intersection of primitive volumes. "Regions"_region.html can also
specify a volume "interior" or "exterior" to the specified primitive

View File

@ -10,47 +10,34 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Download an executable for Mac :h3
LAMMPS can be downloaded, built, and configured for OS X on a Mac with
"Homebrew"_homebrew. Only four of the LAMMPS packages are unavailable
at this time because of additional needs not yet met: KIM, GPU,
USER-INTEL, USER-ATC.
"Homebrew"_homebrew. The following LAMMPS packages are unavailable at this
time because of additional needs not yet met: GPU, KOKKOS, LATTE, MSCG,
MESSAGE, MPIIO POEMS VORONOI.
After installing Homebrew, you can install LAMMPS on your system with
the following commands:
% brew tap homebrew/science
% brew install lammps # serial version
% brew install lammps --with-mpi # mpi support :pre
% brew install lammps :pre
This will install the executable "lammps", a python module named
"lammps", and additional resources with all the standard packages. To
get the location of the additional resources type this:
% brew info lammps :pre
This command also tells you additional installation options available.
The user-packages are available as options, just install them like
this example for the USER-OMP package:
% brew install lammps --enable-user-omp :pre
It is usually best to install LAMMPS with the most up to date source
files, which can be done with the "--HEAD" option:
% brew install lammps --HEAD :pre
To re-install the LAMMPS HEAD, run this command occasionally (make sure
to use the desired options).
% brew install --force lammps --HEAD $\{options\} :pre
This will install the executables "lammps_serial" and "lammps_mpi", as well as
the LAMMPS "doc", "potentials", "tools", "bench", and "examples" directories.
Once LAMMPS is installed, you can test the installation with the
Lennard-Jones benchmark file:
% brew test lammps -v :pre
The LAMMPS binary is built with the "KIM package"_Build_extras#kim which
results in Homebrew also installing the `kim-api` binaries when LAMMPS is
installed. In order to use potentials from "openkim.org"_openkim, you can
install the `openkim-models` package
% brew install openkim-models :pre
If you have problems with the installation you can post issues to
"this link"_homebrew.
Thanks to Derek Thomas (derekt at cello.t.u-tokyo.ac.jp) for setting
up the Homebrew capability.
:link(homebrew,https://github.com/Homebrew/homebrew-science/issues)
:link(homebrew,https://github.com/Homebrew/homebrew-core/issues)
:link(openkim,https://openkim.org)

View File

@ -92,8 +92,8 @@ commands)
implicit solvent potentials: hydrodynamic lubrication, Debye
force-field compatibility with common CHARMM, AMBER, DREIDING, \
OPLS, GROMACS, COMPASS options
access to "KIM archive"_http://openkim.org of potentials via \
"pair kim"_pair_kim.html
access to the "OpenKIM Repository"_http://openkim.org of potentials via \
"kim_init, kim_interactions, and kim_query"_kim_commands.html commands
hybrid potentials: multiple pair, bond, angle, dihedral, improper \
potentials can be used in one simulation
overlaid potentials: superposition of multiple pair potentials :ul

Binary file not shown.

After

(image error) Size: 29 KiB

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="19 Jul 2019 version">
<META NAME="docnumber" CONTENT="7 Aug 2019 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
:line
LAMMPS Documentation :c,h1
19 Jul 2019 version :c,h2
7 Aug 2019 version :c,h2
"What is a LAMMPS version?"_Manual_version.html

View File

@ -338,22 +338,37 @@ KIM package :link(PKG-KIM),h4
[Contents:]
A "pair_style kim"_pair_kim.html command which is a wrapper on the
Knowledge Base for Interatomic Models (KIM) repository of interatomic
potentials, enabling any of them to be used in LAMMPS simulations.
Also a "kim_query"_kim_query.html command, which allows to query
the OpenKIM database for stored properties.
This package contains a set of commands that serve as a wrapper on the
"Open Knowledgebase of Interatomic Models (OpenKIM)"_https://openkim.org
repository of interatomic models (IMs)
enabling compatible ones to be used in LAMMPS simulations.
This includes "kim_init and kim_interactions"_kim_commands.html
commands to select, initialize and instantiate the IM, and a
"kim_query"_kim_commands.html command to perform web queries
for material property predictions of OpenKIM IMs.
Support for KIM IMs that conform to the
"KIM Application Programming Interface (API)"_https://openkim.org/kim-api/
is provided by the "pair_style kim"_pair_kim.html command.
To use this package you must have the KIM library available on your
system.
NOTE: The command {pair_style kim} is called by {kim_interactions} and
is not recommended to be directly used in input scripts.
To use this package you must have the KIM API library available on your
system. The KIM API is available for download on the
"OpenKIM website"_https://openkim.org/kim-api/.
When installing LAMMPS from binary, the kim-api package
is a dependency that is automatically downloaded and installed.
Information about the KIM project can be found at its website:
https://openkim.org. The KIM project is led by Ellad Tadmor and Ryan
Elliott (U Minnesota).
"https://openkim.org"_https://openkim.org.
The KIM project is led by Ellad Tadmor and Ryan Elliott (U Minnesota)
and is funded by the "National Science Foundation"_https://www.nsf.gov/.
[Authors:] Ryan Elliott (U Minnesota) is the main developer for the KIM
API which the "pair_style kim"_pair_kim.html command uses. He
developed the pair style.
API and the {pair_style kim} command. Axel Kohlmeyer (Temple U) and
Ellad Tadmor (U Minnesota) contributed to the "kim_commands"_kim_commands.html
interface in close collaboration with Ryan Elliott.
[Install:]
@ -363,10 +378,11 @@ extras"_Build_extras.html doc page.
[Supporting info:]
"kim_commands"_kim_commands.html
"pair_style kim"_pair_kim.html
src/KIM: filenames -> commands
src/KIM/README
lib/kim/README
"pair_style kim"_pair_kim.html
examples/kim :ul
:line
@ -984,9 +1000,9 @@ USER-ADIOS package :link(PKG-USER-ADIOS),h4
[Contents:]
ADIOS is a high-performance I/O library. This package implements the
ADIOS is a high-performance I/O library. This package implements the
dump "atom/adios" and dump "custom/adios" commands to write data using
the ADIOS library.
the ADIOS library.
[Authors:] Norbert Podhorszki (ORNL) from the ADIOS developer team.
@ -1175,7 +1191,7 @@ USER-PLUMED package :link(PKG-USER-PLUMED),h4
The fix plumed command allows you to use the PLUMED free energy plugin
for molecular dynamics to analyze and bias your LAMMPS trajectory on
the fly. The PLUMED library is called from within the LAMMPS input
script by using the "fix plumed _fix_plumed.html command.
script by using the "fix plumed"_fix_plumed.html command.
[Authors:] The "PLUMED library"_#PLUMED is written and maintained by
Massimilliano Bonomi, Giovanni Bussi, Carlo Camiloni and Gareth

View File

@ -126,9 +126,10 @@ are intended for computational work like running LAMMPS. By default
Ng = 1 and Ns is not set.
Depending on which flavor of MPI you are running, LAMMPS will look for
one of these 3 environment variables
one of these 4 environment variables
SLURM_LOCALID (various MPI variants compiled with SLURM support)
MPT_LRANK (HPE MPI)
MV2_COMM_WORLD_LOCAL_RANK (Mvapich)
OMPI_COMM_WORLD_LOCAL_RANK (OpenMPI) :pre

View File

@ -40,11 +40,12 @@ coordinates and other properties are exchanged between neighboring
processors and stored as properties of ghost atoms.
NOTE: These options apply to the currently defined comm style. When
you specify a "comm_style"_comm_style.html command, all communication
settings are restored to their default values, including those
you specify a "comm_style"_comm_style.html or
"read_restart"_read_restart.html command, all communication settings
are restored to their default or stored values, including those
previously reset by a comm_modify command. Thus if your input script
specifies a comm_style command, you should use the comm_modify command
after it.
specifies a comm_style or read_restart command, you should use the
comm_modify command after it.
The {mode} keyword determines whether a single or multiple cutoff
distances are used to determine which atoms to communicate.
@ -69,9 +70,15 @@ processors. By default the ghost cutoff = neighbor cutoff = pairwise
force cutoff + neighbor skin. See the "neighbor"_neighbor.html command
for more information about the skin distance. If the specified Rcut is
greater than the neighbor cutoff, then extra ghost atoms will be acquired.
If the provided cutoff is smaller, the provided value will be ignored
and the ghost cutoff is set to the neighbor cutoff. Specifying a
cutoff value of 0.0 will reset any previous value to the default.
If the provided cutoff is smaller, the provided value will be ignored,
the ghost cutoff is set to the neighbor cutoff and a warning will be
printed. Specifying a cutoff value of 0.0 will reset any previous value
to the default. If bonded interactions exist and equilibrium bond length
information is available, then also a heuristic based on that bond length
is computed. It is used as communication cutoff, if there is no pair
style present and no {comm_modify cutoff} command used. Otherwise a
warning is printed, if this bond based estimate is larger than the
communication cutoff used. A
The {cutoff/multi} option is equivalent to {cutoff}, but applies to
communication mode {multi} instead. Since in this case the communication

View File

@ -53,7 +53,7 @@ Commands :h1
include
info
jump
kim_query
kim_commands
kspace_modify
kspace_style
label

View File

@ -177,7 +177,7 @@ compute"_Commands_compute.html doc page are followed by one or more of
"angle"_compute_angle.html - energy of each angle sub-style
"angle/local"_compute_angle_local.html - theta and energy of each angle
"angmom/chunk"_compute_angmom_chunk.html - angular momentum for each chunk
"basal/atom"_compute_basal_atom.html - calculates the hexagonal close-packed “c” lattice vector of each atom
"basal/atom"_compute_basal_atom.html - calculates the hexagonal close-packed "c" lattice vector of each atom
"body/local"_compute_body_local.html - attributes of body sub-particles
"bond"_compute_bond.html - energy of each bond sub-style
"bond/local"_compute_bond_local.html - distance and energy of each bond
@ -213,9 +213,11 @@ compute"_Commands_compute.html doc page are followed by one or more of
"group/group"_compute_group_group.html - energy/force between two groups of atoms
"gyration"_compute_gyration.html - radius of gyration of group of atoms
"gyration/chunk"_compute_gyration_chunk.html - radius of gyration for each chunk
"gyration/shape"_compute_gyration_shape.html - compute shape parameters from radius of gyration tensor
"heat/flux"_compute_heat_flux.html - heat flux through a group of atoms
"heat/flux/tally"_compute_tally.html -
"hexorder/atom"_compute_hexorder_atom.html - bond orientational order parameter q6
"hma"_compute_hma.html - harmonically mapped averaging for atomic crystals
"improper"_compute_improper.html - energy of each improper sub-style
"improper/local"_compute_improper_local.html - angle of each improper
"inertia/chunk"_compute_inertia_chunk.html - inertia tensor for each chunk
@ -227,6 +229,7 @@ compute"_Commands_compute.html doc page are followed by one or more of
"meso/e/atom"_compute_meso_e_atom.html - per-atom internal energy of Smooth-Particle Hydrodynamics atoms
"meso/rho/atom"_compute_meso_rho_atom.html - per-atom mesoscopic density of Smooth-Particle Hydrodynamics atoms
"meso/t/atom"_compute_meso_t_atom.html - per-atom internal temperature of Smooth-Particle Hydrodynamics atoms
"momentum"_compute_momentum.html - translational momentum
"msd"_compute_msd.html - mean-squared displacement of group of atoms
"msd/chunk"_compute_msd_chunk.html - mean-squared displacement for each chunk
"msd/nongauss"_compute_msd_nongauss.html - MSD and non-Gaussian parameter of group of atoms

View File

@ -15,10 +15,11 @@ compute ID group-ID bond/local value1 value2 ... keyword args ... :pre
ID, group-ID are documented in "compute"_compute.html command :ulb,l
bond/local = style name of this compute command :l
one or more values may be appended :l
value = {dist} or {engpot} or {force} or {engvib} or {engrot} or {engtrans} or {omega} or {velvib} or {v_name} :l
value = {dist} or {engpot} or {force} or {fx} or {fy} or {fz} or {engvib} or {engrot} or {engtrans} or {omega} or {velvib} or {v_name} :l
{dist} = bond distance
{engpot} = bond potential energy
{force} = bond force :pre
{fx},{fy},{fz} = components of bond force
{engvib} = bond kinetic energy of vibration
{engrot} = bond kinetic energy of rotation
{engtrans} = bond kinetic energy of translation
@ -38,6 +39,7 @@ keyword = {set} :l
compute 1 all bond/local engpot
compute 1 all bond/local dist engpot force :pre
compute 1 all bond/local dist fx fy fz :pre
compute 1 all angle/local dist v_distsq set dist d :pre
[Description:]
@ -59,6 +61,9 @@ based on the current separation of the pair of atoms in the bond.
The value {force} is the magnitude of the force acting between the
pair of atoms in the bond.
The values {fx}, {fy}, and {fz} are the xyz components of
{force} between the pair of atoms in the bond.
The remaining properties are all computed for motion of the two atoms
relative to the center of mass (COM) velocity of the 2 atoms in the
bond.

View File

@ -30,11 +30,18 @@ compute 1 all chunk/spread/atom mychunk c_com[*] c_gyration :pre
[Description:]
Define a calculation that "spreads" one or more per-chunk values to
each atom in the chunk. This can be useful for creating a "dump
file"_dump.html where each atom lists info about the chunk it is in,
e.g. for post-processing purposes. It can also be used in "atom-style
variables"_variable.html that need info about the chunk each atom is
in. Examples are given below.
each atom in the chunk. This can be useful in several scenarios:
For creating a "dump file"_dump.html where each atom lists info about
the chunk it is in, e.g. for post-processing purposes. :ulb,l
To access chunk value in "atom-style variables"_variable.html that
need info about the chunk each atom is in. :l
To use the "fix ave/chunk"_fix_ave_chunk.html command to spatially
average per-chunk values calculated by a per-chunk compute. :l,ule
Examples are given below.
In LAMMPS, chunks are collections of atoms defined by a "compute
chunk/atom"_compute_chunk_atom.html command, which assigns each atom
@ -148,6 +155,28 @@ thermo_style custom step etotal press v_ave :pre
:line
Here is an example for using one set of chunks, defined for molecules,
to compute the dipole moment vector for each chunk. E.g. for water
molecules. Then spreading those values to each atom in each chunk.
Then defining a second set of chunks based on spatial bins. And
finally, using the "fix ave/chunk"_fix_ave_chunk.html command to
calculate an average dipole moment vector per spatial bin.
compute cmol all chunk/atom molecule
compute dipole all dipole/chunk cmol
compute spread all chunk/spread/atom cmol c_dipole\[1\] c_dipole\[2\] c_dipole\[3\]
compute cspatial all chunk/atom bin/1d z lower 0.1 units reduced
fix ave all ave/chunk 100 10 1000 cspatial c_spread\[*\] :pre
Note that the "fix ave/chunk"_fix_ave_chunk.html command requires
per-atom values as input. That is why the compute chunk/spread/atom
command is used to assign per-chunk values to each atom in the chunk.
If a molecule straddles bin boundaries, each of its atoms contributes
in a weighted manner to the average dipole moment of the spatial bin
it is in.
:line
[Output info:]
This compute calculates a per-atom vector or array, which can be

View File

@ -67,6 +67,7 @@ distance^2 "units"_units.html respectively.
[Related commands:]
"compute gyration/chunk"_compute_gyration_chunk.html
"compute gyration/chunk"_compute_gyration_chunk.html,
"compute gyration/shape"_compute_gyration_shape.html
[Default:] none

View File

@ -0,0 +1,86 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
compute gyration/shape command :h3
[Syntax:]
compute ID group-ID gyration compute-ID :pre
ID, group-ID are documented in "compute"_compute.html command
gyration/shape = style name of this compute command
compute-ID = ID of "compute gyration"_compute_gyration.html command :ul
[Examples:]
compute 1 molecule gyration/shape pe :pre
[Description:]
Define a computation that calculates the eigenvalues of the gyration tensor of a
group of atoms and three shape parameters. The computation includes all effects
due to atoms passing thru periodic boundaries.
The three computed shape parameters are the asphericity, b, the acylindricity, c,
and the relative shape anisotropy, k:
:c,image(Eqs/compute_shape_parameters.jpg)
where lx <= ly <= lz are the three eigenvalues of the gyration tensor.
The asphericity is always non-negative and zero only when the three principal
moments are equal. This zero condition is met when the distribution of particles
is spherically symmetric (hence the name asphericity) but also whenever the particle
distribution is symmetric with respect to the three coordinate axes, e.g.,
when the particles are distributed uniformly on a cube, tetrahedron or other Platonic
solid. The acylindricity is always non-negative and zero only when the two principal
moments are equal. This zero condition is met when the distribution of particles is
cylindrically symmetric (hence the name, acylindricity), but also whenever the particle
distribution is symmetric with respect to the two coordinate axes, e.g., when the
particles are distributed uniformly on a regular prism. the relative shape anisotropy
is bounded between zero (if all points are spherically symmetric) and one
(if all points lie on a line).
NOTE: The coordinates of an atom contribute to the gyration tensor in
"unwrapped" form, by using the image flags associated with each atom.
See the "dump custom"_dump.html command for a discussion of "unwrapped"
coordinates. See the Atoms section of the "read_data"_read_data.html
command for a discussion of image flags and how they are set for each
atom. You can reset the image flags (e.g. to 0) before invoking this
compute by using the "set image"_set.html command.
[Output info:]
This compute calculates a global vector of
length 6, which can be accessed by indices 1-6. The first three values are the
eigenvalues of the gyration tensor followed by the asphericity, the acylindricity
and the relative shape anisotropy. The computed values can be used by any command
that uses global vector values from a compute as input. See the "Howto
output"_Howto_output.html doc page for an overview of LAMMPS output
options.
The vector values calculated by this compute are
"intensive". The first five vector values will be in
distance^2 "units"_units.html while the sixth one is dimensionless.
[Restrictions:]
This compute is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
[Related commands:]
"compute gyration"_compute_gyration.html
[Default:] none
:line
:link(Theodorou)
[(Theodorou)] Theodorou, Suter, Macromolecules, 18, 1206 (1985).

View File

@ -65,7 +65,7 @@ In an isotropic liquid, local neighborhoods may still exhibit
weak hexagonal symmetry, but because the orientational correlation
decays quickly with distance, the value of phi will be different for
different atoms, and so when {q}6 is averaged over all the atoms
in the system, \|<{q}6>\| << 1.
in the system, |<{q}6>| << 1.
The value of {qn} is set to zero for atoms not in the
specified compute group, as well as for atoms that have less than

184
doc/src/compute_hma.txt Normal file
View File

@ -0,0 +1,184 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
compute hma command :h3
[Syntax:]
compute ID group-ID hma temp-ID keyword ... :pre
ID, group-ID are documented in "compute"_compute.html command :l
hma = style name of this compute command :l
temp-ID = ID of fix that specifies the set temperature during canonical simulation :l
keyword = {anharmonic} {u} {p Pharm} {cv} :l
{anharmonic} = compute will return anharmonic property values
{u} = compute will return potential energy
{p} = compute will return pressure. the following keyword must be the difference between the harmonic pressure and lattice pressure as described below
{cv} = compute will return the heat capacity :pre
:ule
[Examples:]
compute 2 all hma 1 u
compute 2 all hma 1 anharmonic u p 0.9
compute 2 all hma 1 u cv :pre
[Description:]
Define a computation that calculates the properties of a solid (potential
energy, pressure or heat capacity), using the harmonically-mapped averaging
(HMA) method.
This command yields much higher precision than the equivalent compute commands
("compute pe"_compute_pe.html, "compute pressure"_compute_pressure.html, etc.)
commands during a canonical simulation of an atomic crystal. Specifically,
near melting HMA can yield averages of a given precision an order of magnitude
faster than conventional methods, and this only improves as the temperatures is
lowered. This is particularly important for evaluating the free energy by
thermodynamic integration, where the low-temperature contributions are the
greatest source of statistical uncertainty. Moreover, HMA has other
advantages, including smaller potential-truncation effects, finite-size
effects, smaller timestep inaccuracy, faster equilibration and shorter
decorrelation time.
HMA should not be used if atoms are expected to diffuse. It is also
restricted to simulations in the NVT ensemble. While this compute may be
used with any potential in LAMMPS, it will provide inaccurate results
for potentials that do not go to 0 at the truncation distance;
"pair_lj_smooth_linear"_pair_lj_smooth_linear.html and Ewald summation should
work fine, while "pair_lj"_pair_lj.html will perform poorly unless
the potential is shifted (via "pair_modify"_pair_modify.html shift) or the cutoff is large. Furthermore, computation of the heat capacity with
this compute is restricted to those that implement the single_hessian method
in Pair. Implementing single_hessian in additional pair styles is simple.
Please contact Andrew Schultz (ajs42 at buffalo.edu) and David Kofke (kofke at
buffalo.edu) if your desired pair style does not have this method. This is
the list of pair styles that currently implement pair_hessian:
"lj_smooth_linear"_pair_lj_smooth_linear.html :l
:ule
In this method, the analytically known harmonic behavior of a crystal is removed from the traditional ensemble
averages, which leads to an accurate and precise measurement of the anharmonic contributions without contamination
by noise produced by the already-known harmonic behavior.
A detailed description of this method can be found in ("Moustafa"_#hma-Moustafa). The potential energy is computed by the formula:
\begin\{equation\}
\left< U\right>_\{HMA\} = \frac\{d\}\{2\} (N-1) k_B T + \left< U + \frac\{1\}\{2\} F\bullet\Delta r \right>
\end\{equation\}
where \(N\) is the number of atoms in the system, \(k_B\) is Boltzmann's
constant, \(T\) is the temperature, \(d\) is the
dimensionality of the system (2 or 3 for 2d/3d), \(F\bullet\Delta r\) is the sum of dot products of the
atomic force vectors and displacement (from lattice sites) vectors, and \(U\) is the sum of
pair, bond, angle, dihedral, improper, kspace (long-range), and fix energies.
The pressure is computed by the formula:
\begin\{equation\}
\left< P\right>_\{HMA\} = \Delta \hat P + \left< P_\{vir\} + \frac\{\beta \Delta \hat P - \rho\}\{d(N-1)\} F\bullet\Delta r \right>
\end\{equation\}
where \(\rho\) is the number density of the system, \(\Delta \hat P\) is the
difference between the harmonic and lattice pressure, \(P_\{vir\}\) is
the virial pressure computed as the sum of pair, bond, angle, dihedral,
improper, kspace (long-range), and fix contributions to the force on each
atom, and \(k_B=1/k_B T\). Although the method will work for any value of \(\Delta \hat P\)
specified (use pressure "units"_units.html), the precision of the resultant
pressure is sensitive to \(\Delta \hat P\); the precision tends to be
best when \(\Delta \hat P\) is the actual the difference between the lattice
pressure and harmonic pressure.
\begin\{equation\}
\left<C_V \right>_\{HMA\} = \frac\{d\}\{2\} (N-1) k_B + \frac\{1\}\{k_B T^2\} \left( \left<
U_\{HMA\}^2 \right> - \left<U_\{HMA\}\right>^2 \right) + \frac\{1\}\{4 T\}
\left< F\bullet\Delta r + \Delta r \bullet \Phi \bullet \Delta r \right>
\end\{equation\}
where \(\Phi\) is the Hessian matrix. The compute hma command
computes the full expression for \(C_V\) except for the
\(\left<U_\{HMA\}^2\right>^2\) in the variance term, which can be obtained by
passing the {u} keyword; you must add this extra contribution to the \(C_V\)
value reported by this compute. The variance term can cause significant
round-off error when computing \(C_V\). To address this, the {anharmonic}
keyword can be passed and/or the output format can be specified with more
digits.
thermo_modify format float '%22.15e' :pre
The {anharmonic} keyword will instruct the compute to return anharmonic
properties rather than the full properties, which include lattice, harmonic
and anharmonic contributions.
When using this keyword, the compute must be first active (it must be included
via a "thermo_style custom"_thermo_style.html command) while the atoms are
still at their lattice sites (before equilibration).
The temp-ID specified with compute hma command should be same as the fix-ID of Nose-Hoover ("fix nvt"_fix_nh.html) or
Berendsen ("fix temp/berendsen"_fix_temp_berendsen.html) thermostat used for the simulation. While using this command, Langevin thermostat
("fix langevin"_fix_langevin.html)
should be avoided as its extra forces interfere with the HMA implementation.
NOTE: Compute hma command should be used right after the energy minimization, when the atoms are at their lattice sites.
The simulation should not be started before this command has been used in the input script.
The following example illustrates the placement of this command in the input script:
min_style cg
minimize 1e-35 1e-15 50000 500000
compute 1 all hma thermostatid u
fix thermostatid all nvt temp 600.0 600.0 100.0 :pre
NOTE: Compute hma should be used when the atoms of the solid do not diffuse. Diffusion will reduce the precision in the potential energy computation.
NOTE: The "fix_modify energy yes"_fix_modify.html command must also be specified if a fix is to contribute potential energy to this command.
An example input script that uses this compute is included in
examples/USER/hma/ along with corresponding LAMMPS output showing that the HMA
properties fluctuate less than the corresponding conventional properties.
[Output info:]
This compute calculates a global vector that includes the n properties
requested as arguments to the command (the potential energy, pressure and/or heat
capacity). The elements of the vector can be accessed by indices 1-n by any
command that uses global vector values as input. See the "Howto
output"_Howto_output.html doc page for an overview of LAMMPS output options.
The vector values calculated by this compute are "extensive". The
scalar value will be in energy "units"_units.html.
[Restrictions:]
This compute is part of the USER-MISC package. It is enabled only
if LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
Usage restricted to canonical (NVT) ensemble simulation only.
[Related commands:]
"compute pe"_compute_pe.html, "compute pressure"_compute_pressure.html
"dynamical matrix"_dynamical_matrix.html provides a finite difference
formulation of the hessian provided by Pair's single_hessian, which is used by
this compute.
[Default:] none
:line
:link(hma-Moustafa)
[(Moustafa)] Sabry G. Moustafa, Andrew J. Schultz, and David A. Kofke, {Very fast averaging of thermal properties of crystals by molecular simulation},
"Phys. Rev. E \[92\], 043303 (2015)"_https://link.aps.org/doi/10.1103/PhysRevE.92.043303

View File

@ -0,0 +1,49 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
compute momentum command :h3
[Syntax:]
compute ID group-ID momentum :pre
ID, group-ID are documented in "compute"_compute.html command
momentum = style name of this compute command :ul
[Examples:]
compute 1 all momentum :pre
[Description:]
Define a computation that calculates the translational momentum
of a group of particles.
The momentum of each particles is computed as m v, where m and v are
the mass and velocity of the particle.
[Output info:]
This compute calculates a global vector (the summed momentum) of
length 3. This value can be used by any command that uses a global
vector value from a compute as input. See the "Howto
output"_Howto_output.html doc page for an overview of LAMMPS output
options.
The vector value calculated by this compute is "extensive". The vector
value will be in mass*velocity "units"_units.html.
[Restrictions:]
This compute is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
[Related commands:]
[Default:] none

View File

@ -19,6 +19,8 @@ keyword = {cutoff} or {nnn} or {degrees} or {components}
{cutoff} value = distance cutoff
{nnn} value = number of nearest neighbors
{degrees} values = nlvalues, l1, l2,...
{wl} value = yes or no
{wl/hat} value = yes or no
{components} value = ldegree :pre
:ule
@ -27,7 +29,8 @@ keyword = {cutoff} or {nnn} or {degrees} or {components}
compute 1 all orientorder/atom
compute 1 all orientorder/atom degrees 5 4 6 8 10 12 nnn NULL cutoff 1.5
compute 1 all orientorder/atom degrees 4 6 components 6 nnn NULL cutoff 3.0 :pre
compute 1 all orientorder/atom wl/hat yes
compute 1 all orientorder/atom components 6 :pre
[Description:]
@ -48,7 +51,7 @@ neighbors of the central atom.
The angles theta and phi are the standard spherical polar angles
defining the direction of the bond vector {rij}.
The second equation defines {Ql}, which is a
rotationally invariant scalar quantity obtained by summing
rotationally invariant non-negative amplitude obtained by summing
over all the components of degree {l}.
The optional keyword {cutoff} defines the distance cutoff
@ -63,7 +66,7 @@ specified distance cutoff are used.
The optional keyword {degrees} defines the list of order parameters to
be computed. The first argument {nlvalues} is the number of order
parameters. This is followed by that number of integers giving the
parameters. This is followed by that number of non-negative integers giving the
degree of each order parameter. Because {Q}2 and all odd-degree order
parameters are zero for atoms in cubic crystals (see
"Steinhardt"_#Steinhardt), the default order parameters are {Q}4,
@ -71,7 +74,20 @@ parameters are zero for atoms in cubic crystals (see
= sqrt(7/3)/8 = 0.19094.... The numerical values of all order
parameters up to {Q}12 for a range of commonly encountered
high-symmetry structures are given in Table I of "Mickel et
al."_#Mickel.
al."_#Mickel, and these can be reproduced with this compute
The optional keyword {wl} will output the third-order invariants {Wl}
(see Eq. 1.4 in "Steinhardt"_#Steinhardt) for the same degrees as
for the {Ql} parameters. For the FCC crystal with {nnn} =12,
{W}4 = -sqrt(14/143).(49/4096)/Pi^1.5 = -0.0006722136...
The optional keyword {wl/hat} will output the normalized third-order
invariants {Wlhat} (see Eq. 2.2 in "Steinhardt"_#Steinhardt)
for the same degrees as for the {Ql} parameters. For the FCC crystal
with {nnn} =12, {W}4hat = -7/3*sqrt(2/429) = -0.159317...The numerical
values of {Wlhat} for a range of commonly encountered high-symmetry
structures are given in Table I of "Steinhardt"_#Steinhardt, and these
can be reproduced with this keyword.
The optional keyword {components} will output the components of the
normalized complex vector {Ybar_lm} of degree {ldegree}, which must be
@ -82,7 +98,7 @@ particles, as discussed in "ten Wolde"_#tenWolde2.
The value of {Ql} is set to zero for atoms not in the
specified compute group, as well as for atoms that have less than
{nnn} neighbors within the distance cutoff.
{nnn} neighbors within the distance cutoff, unless {nnn} is NULL.
The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (i.e. each time a snapshot of atoms
@ -108,6 +124,12 @@ This compute calculates a per-atom array with {nlvalues} columns,
giving the {Ql} values for each atom, which are real numbers on the
range 0 <= {Ql} <= 1.
If the keyword {wl} is set to yes, then the {Wl} values for each
atom will be added to the output array, which are real numbers.
If the keyword {wl/hat} is set to yes, then the {Wl_hat}
values for each atom will be added to the output array, which are real numbers.
If the keyword {components} is set, then the real and imaginary parts
of each component of (normalized) {Ybar_lm} will be added to the
output array in the following order: Re({Ybar_-m}) Im({Ybar_-m})
@ -130,7 +152,8 @@ hexorder/atom"_compute_hexorder_atom.html
[Default:]
The option defaults are {cutoff} = pair style cutoff, {nnn} = 12,
{degrees} = 5 4 6 8 10 12 i.e. {Q}4, {Q}6, {Q}8, {Q}10, and {Q}12.
{degrees} = 5 4 6 8 10 12 i.e. {Q}4, {Q}6, {Q}8, {Q}10, and {Q}12,
{wl} = no, {wl/hat} = no, and {components} off
:line

View File

@ -16,12 +16,13 @@ ID, group-ID are documented in "compute"_compute.html command
pressure = style name of this compute command
temp-ID = ID of compute that calculates temperature, can be NULL if not needed
zero or more keywords may be appended
keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {kspace} or {fix} or {virial} :ul
keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {kspace} or {fix} or {virial} or {pair/hybrid} :ul
[Examples:]
compute 1 all pressure thermo_temp
compute 1 all pressure NULL pair bond :pre
compute 1 all pressure NULL pair bond
compute 1 all pressure NULL pair/hybrid lj/cut :pre
[Description:]
@ -67,6 +68,9 @@ extra keywords are listed, then only those components are summed to
compute temperature or ke and/or the virial. The {virial} keyword
means include all terms except the kinetic energy {ke}.
The {pair/hybrid} keyword means to only include contribution
from a sub-style in a {hybrid} or {hybrid/overlay} pair style.
Details of how LAMMPS computes the virial efficiently for the entire
system, including for many-body potentials and accounting for the
effects of periodic boundary conditions are discussed in

View File

@ -44,8 +44,10 @@ Computes :h1
compute_group_group
compute_gyration
compute_gyration_chunk
compute_gyration_shape
compute_heat_flux
compute_hexorder_atom
compute_hma
compute_improper
compute_improper_local
compute_inertia_chunk
@ -57,6 +59,7 @@ Computes :h1
compute_meso_e_atom
compute_meso_rho_atom
compute_meso_t_atom
compute_momentum
compute_msd
compute_msd_chunk
compute_msd_nongauss

View File

@ -242,9 +242,8 @@ write_dump all atom sinusoid.lammpstrj :pre
:c,image(JPG/sinusoid_small.jpg,JPG/sinusoid.jpg)
The {rotate} keyword can only be used with the {single} style and
when adding a single molecule. It allows to specify the orientation
at which the molecule is inserted. The axis of rotation is
The {rotate} keyword allows specification of the orientation
at which molecules are inserted. The axis of rotation is
determined by the rotation vector (Rx,Ry,Rz) that goes through the
insertion point. The specified {theta} determines the angle of
rotation around that axis. Note that the direction of rotation for

View File

@ -47,6 +47,9 @@ package"_Build_package.html doc page for more info.
"fix phonon"_fix_phonon.html
"compute hma"_compute_hma.html uses an analytic formulation of the hessian
provided by Pair's single_hessian.
[Default:]
The default settings are file = "dynmat.dyn", binary = no

View File

@ -165,40 +165,40 @@ page are followed by one or more of (g,i,k,o,t) to indicate which
accelerated styles exist.
"adapt"_fix_adapt.html - change a simulation parameter over time
"adapt/fep"_fix_adapt_fep.html -
"adapt/fep"_fix_adapt_fep.html - enhanced version of fix adapt
"addforce"_fix_addforce.html - add a force to each atom
"addtorque"_fix_addtorque.html -
"addtorque"_fix_addtorque.html - add a torque to a group of atoms
"append/atoms"_fix_append_atoms.html - append atoms to a running simulation
"atc"_fix_atc.html -
"atc"_fix_atc.html - initiates a coupled MD/FE simulation
"atom/swap"_fix_atom_swap.html - Monte Carlo atom type swapping
"ave/atom"_fix_ave_atom.html - compute per-atom time-averaged quantities
"ave/chunk"_fix_ave_chunk.html - compute per-chunk time-averaged quantities
"ave/correlate"_fix_ave_correlate.html - compute/output time correlations
"ave/correlate/long"_fix_ave_correlate_long.html -
"ave/histo"_fix_ave_histo.html - compute/output time-averaged histograms
"ave/histo/weight"_fix_ave_histo.html -
"ave/histo/weight"_fix_ave_histo.html - weighted version of fix ave/histo
"ave/time"_fix_ave_time.html - compute/output global time-averaged quantities
"aveforce"_fix_aveforce.html - add an averaged force to each atom
"balance"_fix_balance.html - perform dynamic load-balancing
"bocs"_fix_bocs.html -
"bocs"_fix_bocs.html - NPT style time integration with pressure correction
"bond/break"_fix_bond_break.html - break bonds on the fly
"bond/create"_fix_bond_create.html - create bonds on the fly
"bond/react"_fix_bond_react.html -
"bond/react"_fix_bond_react.html - apply topology changes to model reactions
"bond/swap"_fix_bond_swap.html - Monte Carlo bond swapping
"box/relax"_fix_box_relax.html - relax box size during energy minimization
"client/md"_fix_client_md.html -
"cmap"_fix_cmap.html -
"colvars"_fix_colvars.html -
"controller"_fix_controller.html -
"client/md"_fix_client_md.html - MD client for client/server simulations
"cmap"_fix_cmap.html - enables CMAP cross-terms of the CHARMM force field
"colvars"_fix_colvars.html - interface to the collective variables “Colvars” library
"controller"_fix_controller.html - apply control loop feedback mechanism
"deform"_fix_deform.html - change the simulation box size/shape
"deposit"_fix_deposit.html - add new atoms above a surface
"dpd/energy"_fix_dpd_energy.html -
"dpd/energy"_fix_dpd_energy.html - constant energy dissipative particle dynamics
"drag"_fix_drag.html - drag atoms towards a defined coordinate
"drude"_fix_drude.html -
"drude/transform/direct"_fix_drude_transform.html -
"drude/transform/inverse"_fix_drude_transform.html -
"drude"_fix_drude.html - part of Drude oscillator polarization model
"drude/transform/direct"_fix_drude_transform.html - part of Drude oscillator polarization model
"drude/transform/inverse"_fix_drude_transform.html - part of Drude oscillator polarization model
"dt/reset"_fix_dt_reset.html - reset the timestep based on velocity, forces
"edpd/source"_fix_dpd_source.html -
"edpd/source"_fix_dpd_source.html - add heat source to eDPD simulations
"efield"_fix_efield.html - impose electric field on system
"ehex"_fix_ehex.html - enhanced heat exchange algorithm
"electron/stopping"_fix_electron_stopping.html - electronic stopping power as a friction force
@ -208,27 +208,26 @@ accelerated styles exist.
"eos/table/rx"_fix_eos_table_rx.html -
"evaporate"_fix_evaporate.html - remove atoms from simulation periodically
"external"_fix_external.html - callback to an external driver program
"ffl"_fix_ffl.html -
"filter/corotate"_fix_filter_corotate.html -
"flow/gauss"_fix_flow_gauss.html -
"ffl"_fix_ffl.html - apply a Fast-Forward Langevin equation thermostat
"filter/corotate"_fix_filter_corotate.html - implement corotation filter to allow larger timesteps with r-RESPA
"flow/gauss"_fix_flow_gauss.html - Gaussian dynamics for constant mass flux
"freeze"_fix_freeze.html - freeze atoms in a granular simulation
"gcmc"_fix_gcmc.html - grand canonical insertions/deletions
"gld"_fix_gcmc.html - generalized Langevin dynamics integrator
"gld"_fix_gld.html -
"gle"_fix_gle.html -
"gld"_fix_gld.html - generalized Langevin dynamics integrator
"gle"_fix_gle.html - generalized Langevin equation thermostat
"gravity"_fix_gravity.html - add gravity to atoms in a granular simulation
"grem"_fix_grem.html -
"grem"_fix_grem.html - implements the generalized replica exchange method
"halt"_fix_halt.html - terminate a dynamics run or minimization
"heat"_fix_heat.html - add/subtract momentum-conserving heat
"hyper/global"_fix_hyper_global.html - global hyperdynamics
"hyper/local"_fix_hyper_local.html - local hyperdynamics
"imd"_fix_imd.html -
"imd"_fix_imd.html - implements the “Interactive MD” (IMD) protocol
"indent"_fix_indent.html - impose force due to an indenter
"ipi"_fix_ipi.html -
"ipi"_fix_ipi.html - enable LAMMPS to run as a client for i-PI path-integral simulations
"langevin"_fix_langevin.html - Langevin temperature control
"langevin/drude"_fix_langevin_drude.html -
"langevin/eff"_fix_langevin_eff.html -
"langevin/spin"_fix_langevin_spin.html -
"langevin/drude"_fix_langevin_drude.html - Langevin temperature control of Drude oscillators
"langevin/eff"_fix_langevin_eff.html - Langevin temperature control for the electron force field model
"langevin/spin"_fix_langevin_spin.html - Langevin temperature control for a spin or spin-lattice system
"latte"_fix_latte.html - wrapper on LATTE density-functional tight-binding code
"lb/fluid"_fix_lb_fluid.html -
"lb/momentum"_fix_lb_momentum.html -
@ -236,64 +235,60 @@ accelerated styles exist.
"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html -
"lb/viscous"_fix_lb_viscous.html -
"lineforce"_fix_lineforce.html - constrain atoms to move in a line
"manifoldforce"_fix_manifoldforce.html -
"meso"_fix_meso.html -
"meso"_fix_meso_move.html - move mesoscopic SPH/SDPD particles in a prescribed fashion
"meso/move"_fix_meso_move.html -
"manifoldforce"_fix_manifoldforce.html - restrain atoms to a manifold during minimization
"meso"_fix_meso.html - time integration for SPH/DPDE particles
"meso/move"_fix_meso_move.html - move mesoscopic SPH/SDPD particles in a prescribed fashion
"meso/stationary"_fix_meso_stationary.html -
"momentum"_fix_momentum.html - zero the linear and/or angular momentum of a group of atoms
"move"_fix_move.html - move atoms in a prescribed fashion
"mscg"_fix_mscg.html -
"mscg"_fix_mscg.html - apply MSCG method for force-matching to generate coarse grain models
"msst"_fix_msst.html - multi-scale shock technique (MSST) integration
"mvv/dpd"_fix_mvv_dpd.html -
"mvv/edpd"_fix_mvv_dpd.html -
"mvv/tdpd"_fix_mvv_dpd.html -
"mvv/dpd"_fix_mvv_dpd.html - DPD using the modified velocity-Verlet integration algorithm
"mvv/edpd"_fix_mvv_dpd.html - constant energy DPD using the modified velocity-Verlet algorithm
"mvv/tdpd"_fix_mvv_dpd.html - constant temperature DPD using the modified velocity-Verlet algorithm
"neb"_fix_neb.html - nudged elastic band (NEB) spring forces
"nph"_fix_nh.html - constant NPH time integration via Nose/Hoover
"nph/asphere"_fix_nph_asphere.html - NPH for aspherical particles
"nph/body"_fix_nph_body.html -
"nph/body"_fix_nve_body.html - NPH for body particles
"nph/eff"_fix_nh_eff.html -
"nph/body"_fix_nph_body.html - NPH for body particles
"nph/eff"_fix_nh_eff.html - NPH for nuclei and electrons in the electron force field model
"nph/sphere"_fix_nph_sphere.html - NPH for spherical particles
"nphug"_fix_nphug.html - constant-stress Hugoniostat integration
"npt"_fix_nh.html - constant NPT time integration via Nose/Hoover
"npt/asphere"_fix_npt_asphere.html - NPT for aspherical particles
"npt/body"_fix_npt_body.html -
"npt/body"_fix_nve_body.html - NPT for body particles
"npt/eff"_fix_nh_eff.html -
"npt/body"_fix_npt_body.html - NPT for body particles
"npt/eff"_fix_nh_eff.html - NPT for nuclei and electrons in the electron force field model
"npt/sphere"_fix_npt_sphere.html - NPT for spherical particles
"npt/uef"_fix_nh_uef.html -
"npt/uef"_fix_nh_uef.html - NPT style time integration with diagonal flow
"nve"_fix_nve.html - constant NVE time integration
"nve/asphere"_fix_nve_asphere.html - NVE for aspherical particles
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces"
"nve/awpmd"_fix_nve_awpmd.html -
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces
"nve/awpmd"_fix_nve_awpmd.html - NVE for the Antisymmetrized Wave Packet Molecular Dynamics model
"nve/body"_fix_nve_body.html - NVE for body particles
"nve/dot"_fix_nve_dot.html -
"nve/dotc/langevin"_fix_nve_dotc_langevin.html -
"nve/eff"_fix_nve_eff.html -
"nve/dot"_fix_nve_dot.html - rigid body constant energy time integrator for coarse grain models
"nve/dotc/langevin"_fix_nve_dotc_langevin.html - Langevin style rigid body time integrator for coarse grain models
"nve/eff"_fix_nve_eff.html - NVE for nuclei and electrons in the electron force field model
"nve/limit"_fix_nve_limit.html - NVE with limited step length
"nve/line"_fix_nve_line.html - NVE for line segments
"nve/manifold/rattle"_fix_nve_manifold_rattle.html -
"nve/noforce"_fix_nve_noforce.html - NVE without forces (v only)
"nve/sphere"_fix_nve_sphere.html - NVE for spherical particles
"nve/spin"_fix_nve_spin.html -
"nve/spin"_fix_nve_spin.html - NVE for a spin or spin-lattice system
"nve/tri"_fix_nve_tri.html - NVE for triangles
"nvk"_fix_nvk.html -
"nvt"_fix_nh.html - constant NVT time integration via Nose/Hoover
"nvk"_fix_nvk.html - constant kinetic energy time integration
"nvt"_fix_nh.html - NVT time integration via Nose/Hoover
"nvt/asphere"_fix_nvt_asphere.html - NVT for aspherical particles
"nvt/body"_fix_nve_body.html - NVT for body particles
"nvt/body"_fix_nvt_body.html -
"nvt/eff"_fix_nh_eff.html -
"nvt/body"_fix_nvt_body.html - NVT for body particles
"nvt/eff"_fix_nh_eff.html - NVE for nuclei and electrons in the electron force field model
"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html -
"nvt/sllod"_fix_nvt_sllod.html - NVT for NEMD with SLLOD equations
"nvt/sllod/eff"_fix_nvt_sllod_eff.html -
"nvt/sllod/eff"_fix_nvt_sllod_eff.html - NVT for NEMD with SLLOD equations for the electron force field model
"nvt/sphere"_fix_nvt_sphere.html - NVT for spherical particles
"nvt/uef"_fix_nh_uef.html -
"nvt/uef"_fix_nh_uef.html - NVT style time integration with diagonal flow
"oneway"_fix_oneway.html - constrain particles on move in one direction
"orient/bcc"_fix_orient.html - add grain boundary migration force for BCC
"orient/fcc"_fix_orient.html - add grain boundary migration force for FCC
"phonon"_fix_phonon.html -
"pimd"_fix_pimd.html -
"phonon"_fix_phonon.html - calculate dynamical matrix from MD simulations
"pimd"_fix_pimd.html - Feynman path integral molecular dynamics
"planeforce"_fix_planeforce.html - constrain atoms to move in a plane
"plumed"_fix_plumed.html - wrapper on PLUMED free energy library
"poems"_fix_poems.html - constrain clusters of atoms to move as coupled rigid bodies
@ -302,24 +297,24 @@ accelerated styles exist.
"press/berendsen"_fix_press_berendsen.html - pressure control by Berendsen barostat
"print"_fix_print.html - print text and variables during a simulation
"property/atom"_fix_property_atom.html - add customized per-atom values
"python/invoke"_fix_python_invoke.html -
"python/move"_fix_python_move.html -
"qbmsst"_fix_qbmsst.html -
"python/invoke"_fix_python_invoke.html - call a Python function during a simulation
"python/move"_fix_python_move.html - call a Python function during a simulation run
"qbmsst"_fix_qbmsst.html - quantum bath multi-scale shock technique time integrator
"qeq/comb"_fix_qeq_comb.html - charge equilibration for COMB potential
"qeq/dynamic"_fix_qeq.html - charge equilibration via dynamic method
"qeq/fire"_fix_qeq.html - charge equilibration via FIRE minimizer
"qeq/point"_fix_qeq.html - charge equilibration via point method
"qeq/reax"_fix_qeq_reax.html -
"qeq/reax"_fix_qeq_reax.html - charge equilibration for ReaxFF potential
"qeq/shielded"_fix_qeq.html - charge equilibration via shielded method
"qeq/slater"_fix_qeq.html - charge equilibration via Slater method
"qmmm"_fix_qmmm.html -
"qtb"_fix_qtb.html -
"qmmm"_fix_qmmm.html - functionality to enable a quantum mechanics/molecular mechanics coupling
"qtb"_fix_qtb.html - implement quantum thermal bath scheme
"rattle"_fix_shake.html - RATTLE constraints on bonds and/or angles
"reax/c/bonds"_fix_reaxc_bonds.html - write out ReaxFF bond information
"reax/c/species"_fix_reaxc_species.html - write out ReaxFF molecule information
"recenter"_fix_recenter.html - constrain the center-of-mass position of a group of atoms
"restrain"_fix_restrain.html - constrain a bond, angle, dihedral
"rhok"_fix_rhok.html -
"rhok"_fix_rhok.html - add bias potential for long-range ordered systems
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NVE integration
"rigid/meso"_fix_rigid_meso.html - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body
"rigid/nph"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPH integration
@ -332,11 +327,11 @@ accelerated styles exist.
"rigid/nvt/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVT integration
"rigid/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVE integration
"rx"_fix_rx.html -
"saed/vtk"_fix_saed_vtk.html -
"saed/vtk"_fix_saed_vtk.html -
"setforce"_fix_setforce.html - set the force on each atom
"shake"_fix_shake.html - SHAKE constraints on bonds and/or angles
"shardlow"_fix_shardlow.html -
"smd"_fix_smd.html -
"shardlow"_fix_shardlow.html - integration of DPD equations of motion using the Shardlow splitting
"smd"_fix_smd.html - applied a steered MD force to a group
"smd/adjust_dt"_fix_smd_adjust_dt.html -
"smd/integrate_tlsph"_fix_smd_integrate_tlsph.html -
"smd/integrate_ulsph"_fix_smd_integrate_ulsph.html -
@ -355,13 +350,13 @@ accelerated styles exist.
"temp/csld"_fix_temp_csvr.html - canonical sampling thermostat with Langevin dynamics
"temp/csvr"_fix_temp_csvr.html - canonical sampling thermostat with Hamiltonian dynamics
"temp/rescale"_fix_temp_rescale.html - temperature control by velocity rescaling
"temp/rescale/eff"_fix_temp_rescale_eff.html -
"temp/rescale/eff"_fix_temp_rescale_eff.html - temperature control by velocity rescaling in the electron force field model
"tfmc"_fix_tfmc.html - perform force-bias Monte Carlo with time-stamped method
"thermal/conductivity"_fix_thermal_conductivity.html - Muller-Plathe kinetic energy exchange for thermal conductivity calculation
"ti/spring"_fix_ti_spring.html -
"tmd"_fix_tmd.html - guide a group of atoms to a new configuration
"ttm"_fix_ttm.html - two-temperature model for electronic/atomic coupling
"ttm/mod"_fix_ttm.html -
"ttm/mod"_fix_ttm.html - enhanced two-temperature model with additional options
"tune/kspace"_fix_tune_kspace.html - auto-tune KSpace parameters
"vector"_fix_vector.html - accumulate a global vector every N timesteps
"viscosity"_fix_viscosity.html - Muller-Plathe momentum exchange for viscosity calculation
@ -369,17 +364,18 @@ accelerated styles exist.
"wall/body/polygon"_fix_wall_body_polygon.html -
"wall/body/polyhedron"_fix_wall_body_polyhedron.html -
"wall/colloid"_fix_wall.html - Lennard-Jones wall interacting with finite-size particles
"wall/ees"_fix_wall_ees.html -
"wall/ees"_fix_wall_ees.html - wall for ellipsoidal particles
"wall/gran"_fix_wall_gran.html - frictional wall(s) for granular simulations
"wall/gran/region"_fix_wall_gran_region.html -
"wall/harmonic"_fix_wall.html - harmonic spring wall
"wall/lj1043"_fix_wall.html - Lennard-Jones 10-4-3 wall
"wall/lj126"_fix_wall.html - Lennard-Jones 12-6 wall
"wall/lj93"_fix_wall.html - Lennard-Jones 9-3 wall
"wall/morse"_fix_wall.html - Morse potential wall
"wall/piston"_fix_wall_piston.html - moving reflective piston wall
"wall/reflect"_fix_wall_reflect.html - reflecting wall(s)
"wall/region"_fix_wall_region.html - use region surface as wall
"wall/region/ees"_fix_wall_ees.html -
"wall/region/ees"_fix_wall_ees.html - use region surface as wall for ellipsoidal particles
"wall/srd"_fix_wall_srd.html - slip/no-slip wall for SRD particles :ul
[Restrictions:]

View File

@ -149,8 +149,7 @@ meaning of these parameters:
"spin/neel"_pair_spin_neel.html: coulombic_cutoff: type global:
"table"_pair_table.html: table_cutoff: type pairs:
"ufm"_pair_ufm.html: epsilon,sigma: type pairs:
"soft"_pair_soft.html: a: type pairs:
"kim"_pair_kim.html: PARAM_FREE_*&#58i,j,...: global :tb(c=3,s=:)
"soft"_pair_soft.html: a: type pairs: :tb(c=3,s=:)
NOTE: It is easy to add new pairwise potentials and their parameters
to this list. All it typically takes is adding an extract() method to

View File

@ -47,13 +47,13 @@ or {cubic_spline}.
With either spline method, the only argument that needs to follow it
is the name of a file that contains the desired pressure correction
as a function of volume. The file should be formatted so each line has:
as a function of volume. The file must be formatted so each line has:
Volume_i, PressureCorrection_i :pre
Note both the COMMA and the SPACE separating the volume's
value and its corresponding pressure correction. The volumes in the file
should be uniformly spaced. Both the volumes and the pressure corrections
must be uniformly spaced. Both the volumes and the pressure corrections
should be provided in the proper units, e.g. if you are using {units real},
the volumes should all be in cubic angstroms, and the pressure corrections
should all be in atmospheres. Furthermore, the table should start/end at a

View File

@ -24,7 +24,7 @@ common_keyword = {stabilization} :l
{stabilization} values = {no} or {yes} {group-ID} {xmax}
{no} = no reaction site stabilization
{yes} = perform reaction site stabilization
{group-ID} = user-assigned prefix for the dynamic group of non-reacting atoms
{group-ID} = user-assigned prefix for the dynamic group of atoms not currently involved in a reaction
{xmax} = xmax value that is used by an internally-created "nve/limit"_fix_nve_limit.html integrator :pre
react = mandatory argument indicating new reaction specification :l
react-ID = user-assigned name for the reaction :l
@ -52,6 +52,8 @@ react = mandatory argument indicating new reaction specification :l
[Examples:]
For unabridged example scripts and files, see examples/USER/misc/bond_react.
molecule mol1 pre_reacted_topology.txt
molecule mol2 post_reacted_topology.txt
fix 5 all bond/react react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt :pre
@ -106,6 +108,20 @@ involved in any new reactions. The {xmax} value keyword should
typically be set to the maximum distance that non-reacting atoms move
during the simulation.
Fix bond/react creates and maintains two important dynamic groups of
atoms when using the {stabilization} keyword. The first group contains
all atoms currently involved in a reaction; this group is
automatically thermostatted by an internally-created
"nve/limit"_fix_nve_limit.html integrator. The second group contains
all atoms currently not involved in a reaction. This group should be
used by a thermostat in order to time integrate the system. The name
of this group of non-reacting atoms is created by appending '_REACT'
to the group-ID argument of the {stabilization} keyword, as shown in
the second example above.
NOTE: When using reaction stabilization, you should generally not have
a separate thermostat which acts on the 'all' group.
The group-ID set using the {stabilization} keyword can be an existing
static group or a previously-unused group-ID. It cannot be specified
as 'all'. If the group-ID is previously unused, the fix bond/react
@ -116,20 +132,17 @@ internally-created dynamic group. In both cases, this new dynamic
group is named by appending '_REACT' to the group-ID, e.g.
nvt_grp_REACT. By specifying an existing group, you may thermostat
constant-topology parts of your system separately. The dynamic group
contains only non-reacting atoms at a given timestep, and therefore
should be used by a subsequent system-wide time integrator such as
nvt, npt, or nve, as shown in the second example above. The time
integration command should be placed after the fix bond/react command
due to the internal dynamic grouping performed by fix bond/react.
contains only atoms not involved in a reaction at a given timestep,
and therefore should be used by a subsequent system-wide time
integrator such as nvt, npt, or nve, as shown in the second example
above (full examples can be found at examples/USER/misc/bond_react).
The time integration command should be placed after the fix bond/react
command due to the internal dynamic grouping performed by fix
bond/react.
NOTE: If the group-ID is an existing static group, react-group-IDs
should also be specified as this static group, or a subset.
NOTE: If the group-ID is previously unused, the internally-created
group applies to all atoms in the system, i.e. you should generally
not have a separate thermostat which acts on the 'all' group, or any
other group.
The following comments pertain to each {react} argument (in other
words, can be customized for each reaction, or reaction step):
@ -352,12 +365,13 @@ an atom that is not deleted. In addition to deleting unwanted reaction
by-products, this feature can be used to remove specific topologies,
such as small rings, that may be otherwise indistinguishable.
Also, it may be beneficial to ensure reacting atoms are at a certain
temperature before being released to the overall thermostat. For this,
you can use the internally-created dynamic group named
"bond_react_MASTER_group." For example, adding the following command
would thermostat the group of all atoms currently involved in a
reaction:
Optionally, you can enforce additional behaviors on reacting atoms.
For example, it may be beneficial to force reacting atoms to remain at
a certain temperature. For this, you can use the internally-created
dynamic group named "bond_react_MASTER_group", which consists of all
atoms currently involved in a reaction. For example, adding the
following command would add an additional thermostat to the group of
all currently-reacting atoms:
fix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1 :pre

View File

@ -114,5 +114,5 @@ The default options are plumedfile = NULL and outfile = NULL
:link(PLUMED)
[(PLUMED)] G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
:link(plumeddocs,http://www.plumed.org/documentation)
:link(plumeddocs,http://www.plumed.org/doc.html)
:link(plumedhome,http://www.plumed.org/)

View File

@ -39,8 +39,8 @@ An example of using the interface pinning method is located in the
[Restrictions:]
This fix is part of the MISC package. It is only enabled if LAMMPS
was built with that package. See the "Build
This fix is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
[Related commands:]

View File

@ -12,16 +12,18 @@ fix wall/lj126 command :h3
fix wall/lj1043 command :h3
fix wall/colloid command :h3
fix wall/harmonic command :h3
fix wall/morse command :h3
[Syntax:]
fix ID group-ID style face args ... keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
style = {wall/lj93} or {wall/lj126} or {wall/lj1043} or {wall/colloid} or {wall/harmonic} :l
style = {wall/lj93} or {wall/lj126} or {wall/lj1043} or {wall/colloid} or {wall/harmonic} or {wall/morse} :l
one or more face/arg pairs may be appended :l
face = {xlo} or {xhi} or {ylo} or {yhi} or {zlo} or {zhi} :l
args = coord epsilon sigma cutoff
args for styles {lj93} or {lj126} or {lj1043} or {colloid} or {harmonic} :l
args = coord epsilon sigma cutoff
coord = position of wall = EDGE or constant or variable
EDGE = current lo or hi edge of simulation box
constant = number like 0.0 or -30.0 (distance units)
@ -31,6 +33,19 @@ face = {xlo} or {xhi} or {ylo} or {yhi} or {zlo} or {zhi} :l
sigma = size factor for wall-particle interaction (distance units)
sigma can be a variable (see below)
cutoff = distance from wall at which wall-particle interaction is cut off (distance units) :pre
args for style {morse} :l
args = coord D_0 alpha r_0 cutoff
coord = position of wall = EDGE or constant or variable
EDGE = current lo or hi edge of simulation box
constant = number like 0.0 or -30.0 (distance units)
variable = "equal-style variable"_variable.html like v_x or v_wiggle
D_0 = depth of the potential (energy units)
D_0 can be a variable (see below)
alpha = width factor for wall-particle interaction (1/distance units)
alpha can be a variable (see below)
r_0 = distance of the potential minimum from the face of region (distance units)
r_0 can be a variable (see below)
cutoff = distance from wall at which wall-particle interaction is cut off (distance units) :pre
zero or more keyword/value pairs may be appended :l
keyword = {units} or {fld} :l
{units} value = {lattice} or {box}
@ -48,6 +63,7 @@ keyword = {units} or {fld} :l
fix wallhi all wall/lj93 xlo -1.0 1.0 1.0 2.5 units box
fix wallhi all wall/lj93 xhi EDGE 1.0 1.0 2.5
fix wallhi all wall/morse xhi EDGE 1.0 1.0 1.0 2.5 units box
fix wallhi all wall/lj126 v_wiggle 23.2 1.0 1.0 2.5
fix zwalls all wall/colloid zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858 :pre
@ -80,6 +96,10 @@ potential:
:c,image(Eqs/fix_wall_harmonic.jpg)
For style {wall/morse}, the energy E is given by a Morse potential:
:c,image(Eqs/pair_morse.jpg)
In all cases, {r} is the distance from the particle to the wall at
position {coord}, and Rc is the {cutoff} distance at which the
particle and wall no longer interact. The energy of the wall
@ -147,7 +167,13 @@ constant K, and has units (energy/distance^2). The input parameter
spring is at the {cutoff}. This is a repulsive-only spring since the
interaction is truncated at the {cutoff}
For any wall, the {epsilon} and/or {sigma} parameter can be specified
For the {wall/morse} style, the three parameters are in this order:
{D_0} the depth of the potential, {alpha} the width parameter, and
{r_0} the location of the minimum. {D_0} has energy units, {alpha}
inverse distance units, and {r_0} distance units.
For any wall, the {epsilon} and/or {sigma} and/or {alpha} parameter can
be specified
as an "equal-style variable"_variable.html, in which case it should be
specified as v_name, where name is the variable name. As with a
variable wall position, the variable is evaluated each timestep and

View File

@ -10,19 +10,27 @@ fix wall/region command :h3
[Syntax:]
fix ID group-ID wall/region region-ID style epsilon sigma cutoff :pre
fix ID group-ID wall/region region-ID style args ... cutoff :pre
ID, group-ID are documented in "fix"_fix.html command
wall/region = style name of this fix command
region-ID = region whose boundary will act as wall
style = {lj93} or {lj126} or {lj1043} or {colloid} or {harmonic}
epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
sigma = size factor for wall-particle interaction (distance units)
cutoff = distance from wall at which wall-particle interaction is cut off (distance units) :ul
ID, group-ID are documented in "fix"_fix.html command :ulb,l
wall/region = style name of this fix command :l
region-ID = region whose boundary will act as wall :l
style = {lj93} or {lj126} or {lj1043} or {colloid} or {harmonic} or {morse} :l
args for styles {lj93} or {lj126} or {lj1043} or {colloid} or {harmonic} = :l
epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
sigma = size factor for wall-particle interaction (distance units) :pre
args for style {morse} = :l
D_0 = depth of the potential (energy units)
alpha = width parameter (1/distance units)
r_0 = distance of the potential minimum from wall position (distance units) :pre
cutoff = distance from wall at which wall-particle interaction is cut off (distance units) :l
:ule
[Examples:]
fix wall all wall/region mySphere lj93 1.0 1.0 2.5 :pre
fix wall all wall/region mySphere lj93 1.0 1.0 2.5
fix wall all wall/region mySphere harmonic 1.0 0.0 2.5
fix wall all wall/region box_top morse 1.0 1.0 1.5 3.0 :pre
[Description:]
@ -122,15 +130,22 @@ the "pair_style colloid"_pair_colloid.html potential:
:c,image(Eqs/fix_wall_colloid.jpg)
For style {wall/harmonic}, the energy E is given by a harmonic spring
potential:
potential (the distance parameter is ignored):
:c,image(Eqs/fix_wall_harmonic.jpg)
For style {wall/morse}, the energy E is given by the Morse potential:
:c,image(Eqs/pair_morse.jpg)
Unlike other styles, this requires three parameters ({D_0}, {alpha}, {r_0}
in this order) instead of two like for the other wall styles.
In all cases, {r} is the distance from the particle to the region
surface, and Rc is the {cutoff} distance at which the particle and
surface no longer interact. The energy of the wall potential is
shifted so that the wall-particle interaction energy is 0.0 at the
cutoff distance.
surface no longer interact. The cutoff is always the last argument.
The energy of the wall potential is shifted so that the wall-particle
interaction energy is 0.0 at the cutoff distance.
For a full description of these wall styles, see fix_style
"wall"_fix_wall.html
@ -179,7 +194,9 @@ option for this fix.
"fix wall/lj93"_fix_wall.html,
"fix wall/lj126"_fix_wall.html,
"fix wall/lj1043"_fix_wall.html,
"fix wall/colloid"_fix_wall.html,
"fix wall/harmonic"_fix_wall.html,
"fix wall/gran"_fix_wall_gran.html
[Default:] none

522
doc/src/kim_commands.txt Normal file
View File

@ -0,0 +1,522 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
kim_init command :h3
kim_interactions command :h3
kim_query command :h3
[Syntax:]
kim_init model user_units unitarg
kim_interactions typeargs
kim_query variable formatarg query_function queryargs :pre
model = name of the KIM interatomic model (the KIM ID for models archived in OpenKIM)
user_units = the LAMMPS "units"_units.html style assumed in the LAMMPS input script
unitarg = {unit_conversion_mode} (optional)
typeargs = atom type to species mapping (one entry per atom type) or {fixed_types} for models with a preset fixed mapping
variable = name of a (string style) variable where the result of the query is stored
formatarg = {split} (optional)
query_function = name of the OpenKIM web API query function to be used
queryargs = a series of {keyword=value} pairs that represent the web query; supported keywords depend on the query function :ul
[Examples:]
kim_init SW_StillingerWeber_1985_Si__MO_405512056662_005 metal
kim_interactions Si
kim_init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real
kim_init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 metal unit_conversion_mode
kim_interactions C H O
Sim_LAMMPS_IFF_PCFF_HeinzMishraLinEmami_2015Ver1v5_FccmetalsMineralsSolvents Polymers__SM_039297821658_000 real
kim_interactions fixed_types
kim_query a0 get_lattice_constant_cubic crystal=\["fcc"\] species=\["Al"\] units=\["angstrom"\] :pre
[Description:]
The set of {kim_commands} provide a high-level wrapper around the
"Open Knowledgebase of Interatomic Models (OpenKIM)"_https://openkim.org
repository of interatomic models (IMs) (potentials and force fields),
so that they can be used by LAMMPS scripts. These commands do not implement
any computations directly, but rather generate LAMMPS input commands based
on the information retrieved from the OpenKIM repository to initialize and
activate OpenKIM IMs and query their predictions for use in the LAMMPS script.
All LAMMPS input commands generated and executed by {kim_commands} are
echoed to the LAMMPS log file.
Benefits of Using OpenKIM IMs :h4
Employing OpenKIM IMs provides LAMMPS users with multiple benefits:
Reliability :h5
All content archived in OpenKIM is reviewed by the "KIM Editor"_https://openkim.org/governance/ for quality.
IMs in OpenKIM are archived with full provenance control. Each is associated with a maintainer responsible for the integrity of the content. All changes are tracked and recorded.
IMs in OpenKIM are exhaustively tested using "KIM Tests"_https://openkim.org/doc/evaluation/kim-tests/ that compute a host of material properties, and "KIM Verification Checks"_https://openkim.org/doc/evaluation/kim-verification-checks/ that provide the user with information on various aspects of the IM behavior and coding correctness. This information is displayed on the IM's page accessible through the "OpenKIM browse interface"_https://openkim.org/browse. :ul
Reproducibility :h5
Each IM in OpenKIM is issued a unique identifier ("KIM ID"_https://openkim.org/doc/schema/kim-ids/), which includes a version number (last three digits). Any changes that can result in different numerical values lead to a version increment in the KIM ID. This makes it possible to reproduce simulations since the specific version of a specific IM used can be retrieved using its KIM ID.
OpenKIM is a member organization of "DataCite"_https://datacite.org/ and issues digital object identifiers (DOIs) to all IMs archived in OpenKIM. This makes it possible to cite the IM code used in a simulation in a publications to give credit to the developers and further facilitate reproducibility. :ul
Convenience :h5
IMs in OpenKIM are distributed in binary form along with LAMMPS and can be used in a LAMMPS input script simply by providing their KIM ID in the {kim_init} command documented on this page.
The {kim_query} web query tool provides the ability to use the predictions of IMs for supported material properties (computed via "KIM Tests"_https://openkim.org/doc/evaluation/kim-tests/) as part of a LAMMPS input script setup and analysis.
Support is provided for unit conversion between the "unit style"_units.html used in the LAMMPS input script and the units required by the OpenKIM IM. This makes it possible to use a single input script with IMs using different units without change and minimizes the likelihood of errors due to incompatible units. :ul
:link(IM_types)
Types of IMs in OpenKIM :h4
There are two types of IMs archived in OpenKIM:
The first type is called a {KIM Portable Model} (PM). A KIM PM is an independent computer implementation of an IM written in one of the languages supported by KIM (C, C++, Fortran) that conforms to the KIM Application Programming Interface ("KIM API"_https://openkim.org/kim-api/) Portable Model Interface (PMI) standard. A KIM PM will work seamlessly with any simulation code that supports the KIM API/PMI standard (including LAMMPS; see "complete list of supported codes"_https://openkim.org/projects-using-kim/).
The second type is called a {KIM Simulator Model} (SM). A KIM SM is an IM that is implemented natively within a simulation code ({simulator}) that supports the KIM API Simulator Model Interface (SMI); in this case LAMMPS. A separate SM package is archived in OpenKIM for each parameterization of the IM, which includes all of the necessary parameter files, LAMMPS commands, and metadata (supported species, units, etc.) needed to run the IM in LAMMPS. :ol
With these two IM types, OpenKIM can archive and test almost all IMs that
can be used by LAMMPS. (It is easy to contribute new IMs to OpenKIM, see
the "upload instructions"_https://openkim.org/doc/repository/adding-content/.)
OpenKIM IMs are uniquely identified by a
"KIM ID"_https://openkim.org/doc/schema/kim-ids/.
The extended KIM ID consists of
a human-readable prefix identifying the type of IM, authors, publication year,
and supported species, separated by two underscores from the KIM ID itself,
which begins with an IM code
({MO} for a KIM Portable Model, and {SM} for a KIM Simulator Model)
followed by a unique 12-digit code and a 3-digit version identifier.
By convention SM prefixes begin with {Sim_} to readily identify them.
SW_StillingerWeber_1985_Si__MO_405512056662_005
Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 :pre
Each OpenKIM IM has a dedicated "Model Page" on "OpenKIM"_https://openkim.org
providing all the information on the IM including a title, description,
authorship and citation information, test and verification check results,
visualizations of results, a wiki with documentation and user comments, and
access to raw files, and other information.
The URL for the Model Page is constructed from the
"extended KIM ID"_https://openkim.org/doc/schema/kim-ids/ of the IM:
https://openkim.org/id/extended_KIM_ID
:pre
For example for the Stillinger-Weber potential
listed above the Model Page is located at:
"https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005"_https://openkim.org/id/SW_StillingerWeber_1985_Si__MO_405512056662_005
:pre
See the "current list of KIM PMs and SMs archived in OpenKIM"_https://openkim.org/browse/models/by-species.
This list is sorted by species and can be filtered to display only
IMs for certain species combinations.
See "Obtaining KIM Models"_http://openkim.org/doc/usage/obtaining-models to
learn how to install a pre-build binary of the OpenKIM Repository of Models.
NOTE: It is also possible to locally install IMs not archived in OpenKIM,
in which case their names do not have to conform to the KIM ID format.
Using OpenKIM IMs with LAMMPS :h4
Two commands are employed when using OpenKIM IMs, one to select the
IM and perform necessary initialization ({kim_init}), and the second
to set up the IM for use by executing any necessary LAMMPS commands
({kim_interactions}). Both are required.
See the {examples/kim} directory for example input scripts that use KIM PMs
and KIM SMs.
OpenKIM IM Initialization ({kim_init}) :h5
The {kim_init} mode command must be issued [before]
the simulation box is created (normally at the top of the file).
This command sets the OpenKIM IM that will be used and may issue
additional commands changing LAMMPS default settings that are required
for using the selected IM (such as "units"_units.html or
"atom_style"_atom_style.html). If needed, those settings can be overridden,
however, typically a script containing a {kim_init} command
would not include {units} and {atom_style} commands.
The required arguments of {kim_init} are the {model} name of the
IM to be used in the simulation (for an IM archived in OpenKIM this is
its "extended KIM ID"_https://openkim.org/doc/schema/kim-ids/, and
the {user_units}, which are the LAMMPS "units style"_units.html used
in the input script. (Any dimensioned numerical values in the input
script and values read in from files are expected to be in the
{user_units} system.)
The selected IM can be either a "KIM PM or a KIM SM"_#IM_types.
For a KIM SM, the {kim_init} command verifies that the SM is designed
to work with LAMMPS (and not another simulation code).
In addition, the LAMMPS version used for defining
the SM and the LAMMPS version being currently run are
printed to help diagnose any incompatible changes to input script or
command syntax between the two LAMMPS versions.
Based on the selected model {kim_init} may modify the
"atom_style"_atom_style.html.
Some SMs have requirements for this setting. If this is the case, then
{atom_style} will be set to the required style. Otherwise, the value is left
unchanged (which in the absence of an {atom_style} command in the input script
is the "default atom_style value"_atom_style.html).
Regarding units, the {kim_init} command behaves in different ways depending
on whether or not {unit conversion mode} is activated as indicated by the
optional {unitarg} argument.
If unit conversion mode is [not] active, then {user_units} must
either match the required units of the IM or the IM must be able
to adjust its units to match. (The latter is only possible with some KIM PMs;
SMs can never adjust their units.) If a match is possible, the LAMMPS
"units"_units.html command is called to set the units to
{user_units}. If the match fails, the simulation is terminated with
an error.
Here is an example of a LAMMPS script to compute the cohesive energy
of a face-centered cubic (fcc) lattice for the Ercolessi and Adams (1994)
potential for Al:
kim_init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal
boundary p p p
lattice fcc 4.032
region simbox block 0 1 0 1 0 1 units lattice
create_box 1 simbox
create_atoms 1 box
mass 1 26.981539
kim_interactions Al
run 0
variable Ec equal (pe/count(all))/$\{_u_energy\}
print "Cohesive Energy = $\{EcJ\} eV"
:pre
The above script will end with an error in the {kim_init} line if the
IM is changed to another potential for Al that does not work with {metal}
units. To address this {kim_init} offers the {unit_conversion_mode}.
If unit conversion mode {is} active, then {kim_init} calls the LAMMPS
"units"_units.html command to set the units to the IM's required or
preferred units. Conversion factors between the IM's units and the {user_units}
are defined for all "physical quantities"_units.html (mass, distance, etc.).
(Note that converting to or from the "lj" unit style is not supported.)
These factors are stored as "internal style variables"_variable.html with
the following standard names:
_u_mass
_u_distance
_u_time
_u_energy
_u_velocity
_u_force
_u_torque
_u_temperature
_u_pressure
_u_viscosity
_u_charge
_u_dipole
_u_efield
_u_density :pre
If desired, the input script can be designed to work with these conversion
factors so that the script will work without change with any OpenKIM IM.
(This approach is used in the
"OpenKIM Testing Framework"_https://openkim.org/doc/evaluation/kim-tests/.)
For example, the script given above for the cohesive energy of fcc Al
can be rewritten to work with any IM regardless of units. The following
script constructs an fcc lattice with a lattice parameter defined in
meters, computes the total energy, and prints the cohesive energy in
Joules regardless of the units of the IM.
kim_init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 si unit_conversion_mode
boundary p p p
lattice fcc 4.032e-10*$\{_u_distance\}
region simbox block 0 1 0 1 0 1 units lattice
create_box 1 simbox
create_atoms 1 box
mass 1 4.480134e-26*$\{_u_mass\}
kim_interactions Al
run 0
variable Ec_in_J equal (pe/count(all))/$\{_u_energy\}
print "Cohesive Energy = $\{Ec_in_J\} J" :pre
Note the multiplication by $\{_u_distance\} and $\{_u_mass\} to convert
from SI units (specified in the {kim_init} command) to whatever units the
IM uses (metal in this case), and the division by $\{_u_energy\}
to convert from the IM's energy units to SI units (Joule). This script
will work correctly for any IM for Al (KIM PM or SM) selected by the
{kim_init} command.
Care must be taken to apply unit conversion to dimensional variables read in
from a file. For example if a configuration of atoms is read in from a
dump file using the "read_dump"_read_dump.html command, the following can
be done to convert the box and all atomic positions to the correct units:
variable xyfinal equal xy*$\{_u_distance\}
variable xzfinal equal xz*$\{_u_distance\}
variable yzfinal equal yz*$\{_u_distance\}
change_box all x scale $\{_u_distance\} &
y scale $\{_u_distance\} &
z scale $\{_u_distance\} &
xy final $\{xyfinal\} &
xz final $\{xzfinal\} &
yz final $\{yzfinal\} &
remap :pre
NOTE: Unit conversion will only work if the conversion factors are placed in
all appropriate places in the input script. It is up to the user to do this
correctly.
OpenKIM IM Execution ({kim_interactions}) :h5
The second and final step in using an OpenKIM IM is to execute the
{kim_interactions} command. This command must be preceded by a {kim_init}
command and a command that defines the number of atom types {N} (such as
"create_box"_create_box.html).
The {kim_interactions} command has one argument {typeargs}. This argument
contains either a list of {N} chemical species, which defines a mapping between
atom types in LAMMPS to the available species in the OpenKIM IM, or the
keyword {fixed_types} for models that have a preset fixed mapping (i.e.
the mapping between LAMMPS atom types and chemical species is defined by
the model and cannot be changed). In the latter case, the user must consult
the model documentation to see how many atom types there are and how they
map to the chemical species.
For example, consider an OpenKIM IM that supports Si and C species.
If the LAMMPS simulation has four atom types, where the first three are Si,
and the fourth is C, the following {kim_interactions} command would be used:
kim_interactions Si Si Si C
:pre
Alternatively, for a model with a fixed mapping the command would be:
kim_interactions fixed_types
:pre
The {kim_interactions} command performs all the necessary steps to set up
the OpenKIM IM selected in the {kim_init} command. The specific actions depend
on whether the IM is a KIM PM or a KIM SM. For a KIM PM,
a "pair_style kim"_pair_kim.html command is executed followed by
the appropriate {pair_coeff} command. For example, for the
Ercolessi and Adams (1994) KIM PM for Al set by the following commands:
kim_init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal
...
... box specification lines skipped
...
kim_interactions Al :pre
the {kim_interactions} command executes the following LAMMPS input commands:
pair_style kim EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005
pair_coeff * * Al :pre
For a KIM SM, the generated input commands may be more complex
and require that LAMMPS is built with the required packages included
for the type of potential being used. The set of commands to be executed
is defined in the SM specification file, which is part of the SM package.
For example, for the Strachan et al. (2003) ReaxFF SM
set by the following commands:
kim_init Sim_LAMMPS_ReaxFF_StrachanVanDuinChakraborty_2003_CHNO__SM_107643900657_000 real
...
... box specification lines skipped
...
kim_interactions C H N O :pre
the {kim_interactions} command executes the following LAMMPS input commands:
pair_style reax/c lmp_control safezone 2.0 mincap 100
pair_coeff * * ffield.reax.rdx C H N O
fix reaxqeq all qeq/reax 1 0.0 10.0 1.0e-6 param.qeq :pre
Note that the files {lmp_control}, {ffield.reax.rdx} and {param.qeq}
are specific to the Strachan et al. (2003) ReaxFF parameterization
and are archived as part of the SM package in OpenKIM.
Note also that parameters like cutoff radii and charge tolerances,
which have an effect on IM predictions, are also included in the
SM definition ensuring reproducibility.
NOTE: When using {kim_init} and {kim_interactions} to select
and set up an OpenKIM IM, other LAMMPS commands
for the same functions (such as pair_style, pair_coeff, bond_style,
bond_coeff, fixes related to charge equilibration, etc.) should normally
not appear in the input script.
Using OpenKIM Web Queries in LAMMPS ({kim_query}) :h5
The {kim_query} command performs a web query to retrieve the predictions
of the IM set by {kim_init} for material properties archived in
"OpenKIM"_https://openkim.org. The {kim_query} command must be preceded
by a {kim_init} command. The result of the query is stored in a
"string style variable"_variable.html, the name of which is given as the first
argument of the {kim_query command}. (For the case of multiple
return values, the optional {split} keyword can be used after the
variable name to separate the results into multiple variables; see
the "example"_#split_example below.)
The second required argument {query_function} is the name of the
query function to be called (e.g. {get_lattice_constant_cubic}).
All following "arguments"_Commands_parse.html are parameters handed over to
the web query in the format {keyword=value}, where {value} is always
an array of one or more comma-separated items in brackets.
The list of supported keywords and the type and format of their values
depend on the query function used. The current list of query functions
is available on the OpenKIM webpage at
"https://openkim.org/doc/usage/kim-query"_https://openkim.org/doc/usage/kim-query.
NOTE: All query functions require the {model} keyword, which identifies
the IM whose predictions are being queried. This keyword is automatically
generated by {kim_query} based on the IM set in {kim_init} and must not
be specified as an argument to {kim_query}.
NOTE: Each {query_function} is associated with a default method (implemented
as a "KIM Test"_https://openkim.org/doc/evaluation/kim-tests/)
used to compute this property. In cases where there are multiple
methods in OpenKIM for computing a property, a {method} keyword can
be provided to select the method of choice. See the
"query documentation"_https://openkim.org/doc/repository/kim-query
to see which methods are available for a given {query function}.
{kim_query} Usage Examples and Further Clarifications: :h6
The data obtained by {kim_query} commands can be used as part of the setup
or analysis phases of LAMMPS simulations. Some examples are given below.
[Define an equilibrium fcc crystal]
kim_init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal
boundary p p p
kim_query a0 get_lattice_constant_cubic crystal=\["fcc"\] species=\["Al"\] units=\["angstrom"\]
lattice fcc $\{a0\}
... :pre
The {kim_query} command retrieves from "OpenKIM"_https://openkim.org
the equilibrium lattice constant predicted by the Ercolessi and Adams (1994)
potential for the fcc structure and places it in
variable {a0}. This variable is then used on the next line to set up the
crystal. By using {kim_query}, the user is saved the trouble and possible
error of tracking this value down, or of having to perform an energy
minimization to find the equilibrium lattice constant.
Note that in {unit_conversion_mode} the results obtained from a
{kim_query} would need to be converted to the appropriate units system.
For example, in the above script, the lattice command would need to be
changed to: "lattice fcc $\{a0\}*$\{_u_distance\}".
:link(split_example)
[Define an equilibrium hcp crystal]
kim_init EAM_Dynamo_Mendelev_2007_Zr__MO_848899341753_000 metal
boundary p p p
kim_query latconst split get_lattice_constant_hexagonal crystal=\["hcp"\] species=\["Zr"\] units=\["angstrom"\]
variable a0 equal latconst_1
variable c0 equal latconst_2
variable c_to_a equal $\{c0\}/$\{a0\}
lattice custom $\{a0\} a1 0.5 -0.866025 0 a2 0.5 0.866025 0 a3 0 0 $\{c_to_a\} &
basis 0.333333 0.666666 0.25 basis 0.666666 0.333333 0.75
... :pre
In this case the {kim_query} returns two arguments (since the hexagonal
close packed (hcp) structure has two independent lattice constants).
The default behavior of {kim_query} returns the result as a string
with the values separated by commas. The optional keyword {split}
separates the result values into individual variables of the form
{prefix_I}, where {prefix} is set to the the {kim_query} {variable} argument
and {I} ranges from 1 to the number of returned values. The number and order of
the returned values is determined by the type of query performed.
[Define a crystal at finite temperature accounting for thermal expansion]
kim_init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal
boundary p p p
kim_query a0 get_lattice_constant_cubic crystal=\["fcc"\] species=\["Al"\] units=\["angstrom"\]
kim_query alpha get_linear_thermal_expansion_coefficient_cubic crystal=\["fcc"\] species=\["Al"\] units=\["1/K"\] temperature=\[293.15\] temperature_units=\["K"\]
variable DeltaT equal 300
lattice fcc $\{a0\}*$\{alpha\}*$\{DeltaT\}
... :pre
As in the previous example, the equilibrium lattice constant is obtained
for the Ercolessi and Adams (1994) potential. However, in this case the
crystal is scaled to the appropriate lattice constant at room temperature
(293.15 K) by using the linear thermal expansion constant predicted by the
potential.
NOTE: When passing numerical values as arguments (as in the case
of the temperature in the above example) it is also possible to pass a
tolerance indicating how close to the value is considered a match.
If no tolerance is passed a default value is used. If multiple results
are returned (indicating that the tolerance is too large), {kim_query}
will return an error. See the
"query documentation"_https://openkim.org/doc/repository/kim-query
to see which numerical arguments and tolerances are available for a
given {query function}.
[Compute defect formation energy]
kim_init EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005 metal
...
... Build fcc crystal containing some defect and compute the total energy
... which is stored in the variable {Etot}
...
kim_query Ec get_cohesive_energy_cubic crystal=\["fcc"\] species=\["Al"\] units=\["eV"\]
variable Eform equal $\{Etot\} - count(all)*$\{Ec\}
... :pre
The defect formation energy {Eform} is computed by subtracting from {Etot} the
ideal fcc cohesive energy of the atoms in the system obtained from
"OpenKIM"_https://openkim.org for the Ercolessi and Adams (1994) potential.
NOTE: {kim_query} commands return results archived in
"OpenKIM"_https://openkim.org. These results are obtained
using programs for computing material properties
(KIM Tests and KIM Test Drivers) that were contributed to OpenKIM.
In order to give credit to Test developers, the number of times results
from these programs are queried is tracked. No other information about
the nature of the query or its source is recorded.
Citation of OpenKIM IMs :h4
When publishing results obtained using OpenKIM IMs researchers are requested
to cite the OpenKIM project "(Tadmor)"_#kim-mainpaper, KIM API
"(Elliott)"_#kim-api, and the specific IM codes used in the simulations,
in addition to the relevant scientific references for the IM.
The citation format for an IM is displayed on its page on
"OpenKIM"_https://openkim.org along with the corresponding BibTex file,
and is automatically added to the LAMMPS {log.cite} file.
Citing the IM software (KIM infrastructure and specific PM or SM codes)
used in the simulation gives credit to the researchers who developed them
and enables open source efforts like OpenKIM to function.
[Restrictions:]
The set of {kim_commands} is part of the KIM package. It is only enabled if
LAMMPS is built with that package. A requirement for the KIM package,
is the KIM API library that must be downloaded from the
"OpenKIM website"_https://openkim.org/kim-api/ and installed before
LAMMPS is compiled. When installing LAMMPS from binary, the kim-api package
is a dependency that is automatically downloaded and installed. See the KIM
section of the "Packages details"_Packages_details.html for details.
Furthermore, when using {kim_commands} to run KIM SMs, any packages required
by the native potential being used or other commands or fixes that it invokes
must be installed.
[Related commands:]
"pair_style kim"_pair_kim.html
:line
:link(kim-mainpaper)
[(Tadmor)] Tadmor, Elliott, Sethna, Miller and Becker, JOM, 63, 17 (2011).
doi: "https://doi.org/10.1007/s11837-011-0102-6"_https://doi.org/10.1007/s11837-011-0102-6
:link(kim-api)
[(Elliott)] Elliott, Tadmor and Bernstein, "https://openkim.org/kim-api"_https://openkim.org/kim-api (2011)
doi: "https://doi.org/10.25950/FF8F563A"_https://doi.org/10.25950/FF8F563A

View File

@ -1,46 +0,0 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
kim_query command :h3
[Syntax:]
kim_query variable query_function web_query_flags :pre
variable = name of a (string style) variable where the result of the query is stored
query_function = name of the OpenKIM web API query function to be used
web_query_flags = a series of keyword=value pairs that represent the web query; supported keywords depend on query function :ul
[Examples:]
kim_query latconst get_test_result test=TE_156715955670 model=MO_800509458712 &
prop=structure-cubic-crystal-npt species=\["Al"\] keys=\["a"\] units=\["angstrom"\] :pre
[Description:]
The kim_query command allows to retrieve properties from the OpenKIM
through a web query. The result is stored in a string style
"variable"_variable.html, the name of which must be given as the first
argument of the kim_query command. The second required argument is the
name of the actual query function (e.g. {get_test_result}). All following
arguments are parameters handed over to the web query in the format
{keyword=value}. The list of supported keywords and the type of how
the value has to be encoded depends on the query function used. This
mirrors the functionality available on the OpenKIM webpage at
"https://query.openkim.org"_https://query.openkim.org/
[Restrictions:]
This command is part of the KIM package. It is only enabled if
LAMMPS was built with that package. Furthermore, its correct
functioning depends on compiling LAMMPS with libcurl support.
See the "Build package"_Build_package.html doc page for more info.
[Related commands:]
"pair_style kim"_pair_kim.html, "variable"_variable.html

View File

@ -42,6 +42,7 @@ Commands_compute.html
Commands_pair.html
Commands_bond.html
Commands_kspace.html
Commands_removed.html
Packages.html
Packages_standard.html
Packages_user.html
@ -167,7 +168,7 @@ if.html
include.html
info.html
jump.html
kim_query.html
kim_commands.html
label.html
lattice.html
log.html
@ -455,6 +456,7 @@ compute_global_atom.html
compute_group_group.html
compute_gyration.html
compute_gyration_chunk.html
compute_gyration_shape.html
compute_heat_flux.html
compute_hexorder_atom.html
compute_improper.html
@ -468,6 +470,7 @@ compute_ke_rigid.html
compute_meso_e_atom.html
compute_meso_rho_atom.html
compute_meso_t_atom.html
compute_momentum.html
compute_msd.html
compute_msd_chunk.html
compute_msd_nongauss.html
@ -566,6 +569,7 @@ pair_charmm.html
pair_class2.html
pair_colloid.html
pair_comb.html
pair_cosine_squared.html
pair_coul.html
pair_coul_diel.html
pair_coul_shield.html

View File

@ -11,7 +11,7 @@ min_style command :h3
min_style style :pre
style = {cg} or {hftn} or {sd} or {quickmin} or {fire} or {spin} :ul
style = {cg} or {cg/kk} or {hftn} or {sd} or {quickmin} or {fire} or {spin} :ul
[Examples:]
@ -74,9 +74,34 @@ defined via the "timestep"_timestep.html command. Often they will
converge more quickly if you use a timestep about 10x larger than you
would normally use for dynamics simulations.
NOTE: The {quickmin}, {fire}, and {hftn} styles do not yet support the
use of the "fix box/relax"_fix_box_relax.html command or minimizations
involving the electron radius in "eFF"_pair_eff.html models.
NOTE: The {quickmin}, {fire}, {hftn}, and {cg/kk} styles do not yet
support the use of the "fix box/relax"_fix_box_relax.html command or
minimizations involving the electron radius in "eFF"_pair_eff.html
models.
:line
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the "Speed packages"_Speed_packages.html doc
page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the "Build
package"_Build_package.html doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Run_options.html when you invoke LAMMPS, or you can use the
"suffix"_suffix.html command in your input script.
See the "Speed packages"_Speed_packages.html doc page for more
instructions on how to use the accelerated styles effectively.
:line
[Restrictions:] none

View File

@ -7,6 +7,7 @@
:line
minimize command :h3
minimize/kk command :h3
[Syntax:]
@ -256,6 +257,28 @@ info in the Restrictions section below.
:line
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the "Speed packages"_Speed_packages.html doc
page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the "Build
package"_Build_package.html doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Run_options.html when you invoke LAMMPS, or you can use the
"suffix"_suffix.html command in your input script.
See the "Speed packages"_Speed_packages.html doc page for more
instructions on how to use the accelerated styles effectively.
:line
[Restrictions:]
Features that are not yet implemented are listed here, in case someone

View File

@ -42,16 +42,17 @@ the ADP potential files themselves. Likewise, the ADP potential files
list atomic masses; thus you do not need to use the "mass"_mass.html
command to specify them.
The NIST WWW site distributes and documents ADP potentials:
[ADP potentials are available from:]
http://www.ctcms.nist.gov/potentials :pre
The NIST WWW site at http://www.ctcms.nist.gov/potentials.
Note that ADP potentials obtained from NIST must be converted
into the extended DYNAMO {setfl} format discussed below.
:l
Note that these must be converted into the extended DYNAMO {setfl}
format discussed below.
The NIST site is maintained by Chandler Becker (cbecker at nist.gov)
who is good resource for info on interatomic potentials and file
formats.
The OpenKIM Project at https://openkim.org/browse/models/by-type provides
ADP potentials that can be used directly in LAMMPS with the "kim_commands
interface"_kim_commands.html.
:l
:line

View File

@ -0,0 +1,108 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
pair_style cosine/squared command :h3
[Syntax:]
pair_style cosine/squared cutoff :pre
cutoff = global cutoff for cosine-squared interactions (distance units) :ul
pair_coeff i j eps sigma
pair_coeff i j eps sigma cutoff
pair_coeff i j eps sigma wca
pair_coeff i j eps sigma cutoff wca :pre
i,j = a particle type
eps = interaction strength, i.e. the depth of the potential minimum (energy units)
sigma = distance of the potential minimum from 0
cutoff = the cutoff distance for this pair type, if different from global (distance units)
wca = if specified a Weeks-Chandler-Andersen potential (with eps strength and minimum at sigma) is added, otherwise not :ul
[Examples:]
pair_style cosine/squared 3.0
pair_coeff * * 1.0 1.3
pair_coeff 1 3 1.0 1.3 2.0
pair_coeff 1 3 1.0 1.3 wca
pair_coeff 1 3 1.0 1.3 2.0 wca :pre
[Description:]
Style {cosine/squared} computes a potential of the form
:c,image(Eqs/pair_cosine_squared.jpg)
between two point particles, where (sigma, -epsilon) is the location of
the (rightmost) minimum of the potential, as explained in the syntax
section above.
This potential was first used in (Cooke)_#CKD for a coarse-grained lipid
membrane model. It is generally very useful as a non-specific
interaction potential because it is fully adjustable in depth and width
while joining the minimum at (sigma, -epsilon) and zero at (cutoff, 0)
smoothly, requiring no shifting and causing no related artifacts, tail
energy calculations etc. This evidently requires {cutoff} to be larger
than {sigma}.
If the {wca} option is used then a Weeks-Chandler-Andersen potential
(Weeks)_#WCA is added to the above specified cosine-squared potential,
specifically the following:
:c,image(Eqs/pair_cosine_squared_wca.jpg)
In this case, and this case only, the {sigma} parameter can be equal to
{cutoff} (sigma = cutoff) which will result in ONLY the WCA potential
being used (and print a warning), so the minimum will be attained at
(sigma, 0). This is a convenience feature that enables a purely
repulsive potential to be used without a need to define an additional
pair style and use the hybrid styles.
The energy and force of this pair style for parameters epsilon = 1.0,
sigma = 1.0, cutoff = 2.5, with and without the WCA potential, are shown
in the graphs below:
:c,image(JPG/pair_cosine_squared_graphs.jpg)
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:
Mixing is not supported for this style.
The {shift}, {table} and {tail} options are not relevant for this style.
This pair style writes its information to "binary restart
files"_restart.html, so pair_style and pair_coeff commands do not need
to be specified in an input script that reads a restart file.
These pair styles can only be used via the {pair} keyword of the
"run_style respa"_run_style.html command. They do not support the
{inner}, {middle}, {outer} keywords.
:line
[Restrictions:]
The {cosine/squared} style is part of the "USER-MISC" package. It is only
enabled if LAMMPS is build with that package. See the "Build
package"_Build_package.html doc page for more info.
[Related commands:]
"pair_coeff"_pair_coeff.html,
"pair_style lj/cut"_pair_lj.html
[Default:] none
:link(CKD)
[(Cooke)] "Cooke, Kremer and Deserno, Phys. Rev. E, 72, 011506 (2005)"
:link(WCA)
[(Weeks)] "Weeks, Chandler and Andersen, J. Chem. Phys., 54, 5237 (1971)"

View File

@ -13,7 +13,7 @@ pair_style coul/shield command :h3
pair_style coul/shield cutoff tap_flag :pre
cutoff = global cutoff (distance units)
tap_flag = 0/1 to turn off/on the taper function
tap_flag = 0/1 to turn off/on the taper function :ul
[Examples:]

View File

@ -13,17 +13,17 @@ pair_style ilp/graphene/hbn command :h3
pair_style \[hybrid/overlay ...\] ilp/graphene/hbn cutoff tap_flag :pre
cutoff = global cutoff (distance units)
tap_flag = 0/1 to turn off/on the taper function
tap_flag = 0/1 to turn off/on the taper function :ul
[Examples:]
pair_style hybrid/overlay ilp/graphene/hbn 16.0 1
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
pair_style hybrid/overlay ilp/graphene/hbn 16.0 1
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
pair_coeff * * rebo CH.rebo NULL NULL C
pair_coeff * * tersoff BNC.tersoff B N NULL
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C
pair_coeff * * rebo CH.rebo NULL NULL C
pair_coeff * * tersoff BNC.tersoff B N NULL
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.695
pair_coeff 2 2 coul/shield 0.69 :pre
@ -85,6 +85,22 @@ be found in "(Ouyang)"_#Ouyang.
This potential must be used in combination with hybrid/overlay.
Other interactions can be set to zero using pair_style {none}.
This pair style tallies a breakdown of the total interlayer potential
energy into sub-categories, which can be accessed via the "compute
pair"_compute_pair.html command as a vector of values of length 2.
The 2 values correspond to the following sub-categories:
{E_vdW} = vdW (attractive) energy
{E_Rep} = Repulsive energy :ol
To print these quantities to the log file (with descriptive column
headings) the following commands could be included in an input script:
compute 0 all pair ilp/graphene/hbn
variable Evdw equal c_0\[1\]
variable Erep equal c_0\[2\]
thermo_style custom step temp epair v_Erep v_Evdw :pre
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:

View File

@ -12,76 +12,72 @@ pair_style kim command :h3
pair_style kim model :pre
model = name of KIM model (potential)
model = name of a KIM model (the KIM ID for models archived in OpenKIM)
[Examples:]
pair_style kim ex_model_Ar_P_LJ
pair_coeff * * Ar Ar :pre
pair_style kim SW_StillingerWeber_1985_Si__MO_405512056662_005
pair_coeff * * Si :pre
[Description:]
This pair style is a wrapper on the "Knowledge Base for Interatomic
This pair style is a wrapper on the "Open Knowledgebase of Interatomic
Models (OpenKIM)"_https://openkim.org repository of interatomic
potentials, so that they can be used by LAMMPS scripts.
potentials to enable their use in LAMMPS scripts.
Note that in LAMMPS lingo, a KIM model driver is a pair style
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
element or alloy and set of parameters, e.g. EAM for Cu with a
specific EAM potential file.
The preferred interface for using interatomic models archived in
OpenKIM is the "kim_commands interface"_kim_commands.html. That
interface supports both "KIM Portable Models" (PMs) that conform to the
KIM API Portable Model Interface (PMI) and can be used by any
simulation code that conforms to the KIM API/PMI, and
"KIM Simulator Models" that are natively implemented within a single
simulation code (like LAMMPS) and can only be used with it.
The {pair_style kim} command is limited to KIM PMs. It is
used by the "kim_commands interface"_kim_commands.html as needed.
See the current list of "KIM model
drivers"_https://openkim.org/browse/model-drivers/alphabetical.
NOTE: Since {pair_style kim} is called by {kim_interactions} as needed,
is not recommended to be directly used in input scripts.
See the current list of all "KIM
models"_https://openkim.org/browse/models/by-model-drivers
To use this pair style, you must first download and install the KIM
API library from the "OpenKIM website"_https://openkim.org. The KIM
section of the "Packages details"_Packages_details.html doc page has
instructions on how to do this with a simple make command, when
building LAMMPS.
See the examples/kim dir for an input script that uses a KIM model
(potential) for Lennard-Jones.
:line
The argument {model} is the name of the KIM model for a specific
potential as KIM defines it. In principle, LAMMPS can invoke any KIM
model. You should get an error or warning message from either LAMMPS
or KIM if there is an incompatibility.
The argument {model} is the name of the KIM PM.
For potentials archived in OpenKIM
this is the extended KIM ID (see "kim_commands"_kim_commands.html
for details). LAMMPS can invoke any KIM PM, however there can
be incompatibilities (for example due to unit matching issues).
In the event of an incompatibility, the code will terminate with
an error message. Check both the LAMMPS and KIM log files for details.
Only a single pair_coeff command is used with the {kim} style which
specifies the mapping of LAMMPS atom types to KIM elements. This is
done by specifying N additional arguments after the * * in the
pair_coeff command, where N is the number of LAMMPS atom types:
Only a single {pair_coeff} command is used with the {kim} style, which
specifies the mapping of LAMMPS atom types to the species supported by
the KIM PM. This is done by specifying {N} additional arguments
after the * * in the {pair_coeff} command, where {N} is the number of
LAMMPS atom types:
N element names = mapping of KIM elements to atom types :ul
As an example, imagine the KIM model supports Si and C atoms. If your
LAMMPS simulation has 4 atom types and you want the 1st 3 to be Si,
and the 4th to be C, you would use the following pair_coeff command:
For example, consider a KIM PM that supports Si and C species.
If the LAMMPS simulation has four atom types, where the first three are Si,
and the fourth is C, the following {pair_coeff} command would be used:
pair_coeff * * Si Si Si C :pre
The 1st 2 arguments must be * * so as to span all LAMMPS atom types.
The first three Si arguments map LAMMPS atom types 1,2,3 to Si as
defined within KIM. The final C argument maps LAMMPS atom type 4 to C
as defined within KIM.
The first two arguments must be * * so as to span all LAMMPS atom types.
The first three Si arguments map LAMMPS atom types 1, 2, and 3 to Si as
defined within KIM PM. The final C argument maps LAMMPS atom type 4 to C.
:line
In addition to the usual LAMMPS error messages, the KIM library itself
may generate errors, which should be printed to the screen. In this
case it is also useful to check the kim.log file for additional error
information. The file kim.log should be generated in the same
case it is also useful to check the {kim.log} file for additional error
information. The file {kim.log} should be generated in the same
directory where LAMMPS is running.
To download, build, and install the KIM library on your system, see
the lib/kim/README file. Once you have done this and built LAMMPS
the {lib/kim/README} file. Once you have done this and built LAMMPS
with the KIM package installed you can run the example input scripts
in examples/kim.
in {examples/kim}.
:line
@ -103,15 +99,14 @@ This pair style can only be used via the {pair} keyword of the
[Restrictions:]
This pair style is part of the KIM package. It is only enabled if
LAMMPS was built with that package. See the "Build
package"_Build_package.html doc page for more info.
This pair style is part of the KIM package. See details on
restrictions in "kim_commands"_kim_commands.html.
This current version of pair_style kim is compatible with the
kim-api package version 2.0.0 and higher.
[Related commands:]
"pair_coeff"_pair_coeff.html
"pair_coeff"_pair_coeff.html, "kim_commands"_kim_commands.html
[Default:] none

View File

@ -13,7 +13,7 @@ pair_style kolmogorov/crespi/full command :h3
pair_style hybrid/overlay kolmogorov/crespi/full cutoff tap_flag :pre
cutoff = global cutoff (distance units)
tap_flag = 0/1 to turn off/on the taper function
tap_flag = 0/1 to turn off/on the taper function :ul
[Examples:]
@ -74,6 +74,22 @@ comparison of these parameters can be found in "(Ouyang)"_#Ouyang1.
This potential must be used in combination with hybrid/overlay.
Other interactions can be set to zero using pair_style {none}.
This pair style tallies a breakdown of the total interlayer potential
energy into sub-categories, which can be accessed via the "compute
pair"_compute_pair.html command as a vector of values of length 2.
The 2 values correspond to the following sub-categories:
{E_vdW} = vdW (attractive) energy
{E_Rep} = Repulsive energy :ol
To print these quantities to the log file (with descriptive column
headings) the following commands could be included in an input script:
compute 0 all pair kolmogorov/crespi/full
variable Evdw equal c_0\[1\]
variable Erep equal c_0\[2\]
thermo_style custom step temp epair v_Erep v_Evdw :pre
:line
[Mixing, shift, table, tail correction, restart, rRESPA info]:

View File

@ -129,6 +129,7 @@ accelerated styles exist.
"colloid"_pair_colloid.html - integrated colloidal potential
"comb"_pair_comb.html - charge-optimized many-body (COMB) potential
"comb3"_pair_comb.html - charge-optimized many-body (COMB3) potential
"cosine/squared"_pair_cosine_squared.html - Cooke-Kremer-Deserno membrane model potential
"coul/cut"_pair_coul.html - cutoff Coulombic potential
"coul/cut/soft"_pair_fep_soft.html - Coulombic potential with a soft core
"coul/debye"_pair_coul.html - cutoff Coulombic potential with Debye screening

View File

@ -24,6 +24,7 @@ Pair Styles :h1
pair_class2
pair_colloid
pair_comb
pair_cosine_squared
pair_coul
pair_coul_diel
pair_coul_shield

View File

@ -14,7 +14,8 @@ replicate nx ny nz {keyword} :pre
nx,ny,nz = replication factors in each dimension :ulb
optional {keyword} = {bbox} :l
{bbox} = only check atoms in replicas that overlap with a processor's sub-domain :ule
{bbox} = only check atoms in replicas that overlap with a processor's sub-domain :pre
:ule
[Examples:]
@ -45,11 +46,13 @@ file that crosses a periodic boundary should be between two atoms with
image flags that differ by 1. This will allow the bond to be
unwrapped appropriately.
The optional keyword {bbox} uses a bounding box to only check atoms
in replicas that overlap with a processor's sub-domain when assigning
atoms to processors, and thus can result in substantial speedups for
calculations using a large number of processors. It does require
temporarily using more memory.
The optional keyword {bbox} uses a bounding box to only check atoms in
replicas that overlap with a processor's sub-domain when assigning
atoms to processors. It typically results in a substantial speedup
when using the replicate command on a large number of processors. It
does require temporary use of more memory, specifically that each
processor can store all atoms in the entire system before it is
replicated.
[Restrictions:]

View File

@ -20,6 +20,7 @@ acolor
acos
Acta
actinide
acylindricity
addforce
Addington
addtorque
@ -44,6 +45,7 @@ Aidan
aij
airebo
Aj
ajs
ajaramil
akohlmey
Aktulga
@ -98,6 +100,7 @@ antisymmetry
anton
Antonelli
api
Apoorva
Appl
Apu
arccos
@ -113,6 +116,7 @@ askoose
asphere
ASPHERE
aspherical
asphericity
Asq
assignee
Asta
@ -354,6 +358,7 @@ Cii
Cij
cis
civ
CKD
Clang
clearstore
Cleary
@ -419,6 +424,7 @@ coreshell
cornflowerblue
cornsilk
corotate
corotation
corotational
correlator
cosineshifted
@ -481,6 +487,7 @@ cvff
cwiggle
cygwin
Cygwin
cylindrically
Cyrot
cyrstals
Daivis
@ -518,6 +525,7 @@ Dcut
de
dE
De
decorrelation
debye
Debye
Decius
@ -526,6 +534,7 @@ decrementing
deeppink
deepskyblue
defgrad
defn
deformable
del
deleteIDs
@ -574,6 +583,7 @@ Dihedrals
dihydride
Dij
dimdim
dimensioned
dimensionality
dimgray
dipolar
@ -603,6 +613,7 @@ Dobson
Dodds
dodgerblue
dof
doi
Donadio
dotc
Doty
@ -754,6 +765,7 @@ equilibrating
equilibration
Equilibria
equilization
Ercolessi
eradius
erate
erc
@ -880,6 +892,7 @@ Fogarty
Foiles
fopenmp
forestgreen
formatarg
formulae
Forschungszentrum
Fortran
@ -1065,6 +1078,7 @@ Hilger
histo
histogrammed
histogramming
hma
hmaktulga
hoc
Hochbruck
@ -1321,6 +1335,8 @@ kmax
Kmax
Knizhnik
knl
Kofke
kofke
Kohlmeyer
Kohn
kokkos
@ -1514,6 +1530,7 @@ lz
Maaravi
Mackay
Mackrodt
Macromolecules
macroparticle
Madura
Magda
@ -1539,6 +1556,7 @@ Mandelli
Manh
manifoldforce
Manolopoulos
manpages
manybody
MANYBODY
Maras
@ -1619,6 +1637,7 @@ meso
mesoparticle
mesoscale
mesoscopic
metadata
metadynamics
Metadynamics
Methfessel
@ -1705,6 +1724,7 @@ Morteza
Mosayebi
Moseler
Moskalev
Moustafa
mov
mpi
MPI
@ -2204,6 +2224,7 @@ PTM
ptr
pu
purdue
Purohit
pushstore
pvar
pw
@ -2257,6 +2278,7 @@ quati
quatj
quatk
quatw
queryargs
Queteschiner
qw
qx
@ -2286,6 +2308,7 @@ rcutfac
rdc
rdf
RDideal
rdx
README
realtime
reamin
@ -2312,6 +2335,8 @@ Rensselaer
reparameterizing
repo
representable
Reproducibility
reproducibility
repuls
rescale
rescaled
@ -2417,6 +2442,7 @@ Ryckaert
Rycroft
Rydbergs
Rz
Sabry
saddlebrown
Sadigh
saed
@ -2428,6 +2454,8 @@ Salles
sandia
Sandia
sandybrown
Sanitizer
sanitizers
sc
scafacos
SCAFACOS
@ -2602,6 +2630,7 @@ Stoll
stopstep
Stouch
Straatsma
Strachan
Stratford
Strathclyde
Straub
@ -2629,6 +2658,7 @@ superset
supersphere
Supinski
surfactants
Suter
Sutmann
svn
sw
@ -2690,6 +2720,7 @@ th
Thakkar
thb
thei
Theodorou
Theor
thermalization
thermalize
@ -2812,6 +2843,7 @@ txt
typeI
typeJ
typeN
typeargs
Tz
Tzou
ub
@ -2840,6 +2872,7 @@ undump
uniaxial
uniaxially
unimodal
unitarg
unitless
Universite
unix
@ -2969,6 +3002,7 @@ Waltham
wavepacket
wB
Wbody
wca
webpage
Weckner
WeinanE

View File

@ -0,0 +1,36 @@
# this example requires the LAMMPS Python package (lammps.py) to be installed
# and LAMMPS to be loadable as shared library in LD_LIBRARY_PATH
import lammps
def callback(caller, ntimestep, nlocal, tag, x, fext):
"""
This callback receives a caller object that was setup when registering the callback
In addition to timestep and number of local atoms, the tag and x arrays are passed as
NumPy arrays. The fext array is a force array allocated for fix external, which
can be used to apply forces to all atoms. Simply update the value in the array,
it will be directly written into the LAMMPS C arrays
"""
print("Data passed by caller (optional)", caller)
print("Timestep:", ntimestep)
print("Number of Atoms:", nlocal)
print("Atom Tags:", tag)
print("Atom Positions:", x)
print("Force Additions:", fext)
fext.fill(1.0)
print("Force additions after update:", fext)
print("="*40)
L = lammps.lammps()
L.file("in.fix_external")
# you can pass an arbitrary Python object to the callback every time it is called
# this can be useful if you need more state information such as the LAMMPS ptr to
# make additional library calls
custom_object = ["Some data", L]
L.set_fix_external_callback("2", callback, custom_object)
L.command("run 100")

View File

@ -0,0 +1,23 @@
# LAMMPS input for coupling LAMMPS with Python via fix external
units metal
dimension 3
atom_style atomic
atom_modify sort 0 0.0
lattice diamond 5.43
region box block 0 1 0 1 0 1
create_box 1 box
create_atoms 1 box
mass 1 28.08
velocity all create 300.0 87293 loop geom
fix 1 all nve
fix 2 all external pf/callback 1 1
#dump 2 all image 25 image.*.jpg type type &
# axes yes 0.8 0.02 view 60 -30
#dump_modify 2 pad 3
thermo 1

File diff suppressed because it is too large Load Diff

View File

@ -38,6 +38,8 @@ fix myrxns all bond/react stabilization yes statted_grp .03 &
fix 1 statted_grp_REACT nvt temp 300 300 100
# optionally, you can customize behavior of reacting atoms,
# by using the internally-created 'bond_react_MASTER_group', like so:
fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]

View File

@ -0,0 +1,48 @@
# two monomer nylon example
# reaction produces a condensed water molecule
units real
boundary p p p
atom_style full
kspace_style pppm 1.0e-4
pair_style lj/class2/coul/long 8.5
angle_style class2
bond_style class2
dihedral_style class2
improper_style class2
read_data tiny_nylon.data
velocity all create 300.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
molecule mol2 rxn1_stp1_reacted.data_template
molecule mol3 rxn1_stp2_unreacted.data_template
molecule mol4 rxn1_stp2_reacted.data_template
thermo 50
# dump 1 all xyz 1 test_vis.xyz
fix myrxns all bond/react stabilization no &
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
fix 1 all nve/limit .03
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]
# restart 100 restart1 restart2
run 1000
# write_restart restart_longrun
# write_data restart_longrun.data

View File

@ -1,370 +0,0 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# two monomer nylon example
# reaction produces a condensed water molecule
units real
boundary p p p
atom_style full
kspace_style pppm 1.0e-4
pair_style lj/class2/coul/long 8.5
angle_style class2
bond_style class2
dihedral_style class2
improper_style class2
read_data tiny_nylon.data
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 1 by 1 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
velocity all create 300.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
molecule mol2 rxn1_stp1_reacted.data_template
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
molecule mol3 rxn1_stp2_unreacted.data_template
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
molecule mol4 rxn1_stp2_reacted.data_template
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
thermo 50
# dump 1 all xyz 1 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
fix 1 statted_grp nvt temp 300 300 100
fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]
# restart 100 restart1 restart2
run 10000
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 343 8
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10.5
ghost atom cutoff = 10.5
binsize = 5.25, bins = 10 10 10
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) pair lj/class2/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix bond/react, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
WARNING: Inconsistent image flags (../domain.cpp:786)
Per MPI rank memory allocation (min/avg/max) = 33.34 | 33.34 | 33.34 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 296.70408 -51.30066 0.0034851739 1 0
100 274.25324 46.715512 0.0034851739 1 1
150 471.61579 31.321598 0.0034851739 1 1
200 362.87766 42.061118 0.0034851739 1 1
250 367.58058 65.303109 0.0034851739 1 1
300 372.38236 -52.421725 0.0034851739 1 1
350 297.69957 17.869945 0.0034851739 1 1
400 258.30433 49.19156 0.0034851739 1 1
450 253.34384 -5.8162637 0.0034851739 1 1
500 269.96465 -43.337517 0.0034851739 1 1
550 303.23718 10.180246 0.0034851739 1 1
600 329.59579 -48.97461 0.0034851739 1 1
650 350.42568 50.983183 0.0034851739 1 1
700 342.03272 35.43465 0.0034851739 1 1
750 269.23405 -41.873166 0.0034851739 1 1
800 245.15025 13.953092 0.0034851739 1 1
850 257.85421 -3.1492141 0.0034851739 1 1
900 316.15644 7.7798301 0.0034851739 1 1
950 299.9124 -15.77014 0.0034851739 1 1
1000 302.89968 -17.049693 0.0034851739 1 1
1050 308.91651 71.84632 0.0034851739 1 1
1100 348.43932 -18.742012 0.0034851739 1 1
1150 309.03036 50.536311 0.0034851739 1 1
1200 318.9761 -16.905746 0.0034851739 1 1
1250 320.42806 -0.057975092 0.0034851739 1 1
1300 289.7824 18.200772 0.0034851739 1 1
1350 284.79836 -9.1978427 0.0034851739 1 1
1400 325.43292 42.082833 0.0034851739 1 1
1450 261.5041 -37.823325 0.0034851739 1 1
1500 298.88723 -5.1647385 0.0034851739 1 1
1550 291.37403 -7.7764201 0.0034851739 1 1
1600 293.83475 22.2458 0.0034851739 1 1
1650 293.80611 24.202512 0.0034851739 1 1
1700 291.70205 -23.397884 0.0034851739 1 1
1750 292.32437 -10.671214 0.0034851739 1 1
1800 302.01367 -11.671025 0.0034851739 1 1
1850 322.1651 24.438331 0.0034851739 1 1
1900 310.45076 45.343592 0.0034851739 1 1
1950 325.91745 -19.847809 0.0034851739 1 1
2000 276.89662 63.387098 0.0034851739 1 1
2050 311.33783 -24.683247 0.0034851739 1 1
2100 346.2336 -27.526891 0.0034851739 1 1
2150 345.30604 -15.722411 0.0034851739 1 1
2200 346.7718 -17.857633 0.0034851739 1 1
2250 304.28676 -1.9965581 0.0034851739 1 1
2300 322.56372 -31.786868 0.0034851739 1 1
2350 282.64326 6.1982735 0.0034851739 1 1
2400 286.65759 -63.207781 0.0034851739 1 1
2450 257.05528 32.931491 0.0034851739 1 1
2500 283.64386 26.912373 0.0034851739 1 1
2550 299.54005 27.277039 0.0034851739 1 1
2600 283.92503 14.660972 0.0034851739 1 1
2650 321.93453 -18.977358 0.0034851739 1 1
2700 376.7189 31.826935 0.0034851739 1 1
2750 372.20075 -32.821697 0.0034851739 1 1
2800 361.40604 83.035183 0.0034851739 1 1
2850 332.27269 -23.927452 0.0034851739 1 1
2900 331.14638 -0.12328446 0.0034851739 1 1
2950 303.67489 -24.078857 0.0034851739 1 1
3000 311.40462 21.563537 0.0034851739 1 1
3050 284.72849 -23.849667 0.0034851739 1 1
3100 303.48477 39.347763 0.0034851739 1 1
3150 264.2739 -0.22299879 0.0034851739 1 1
3200 300.03351 31.545323 0.0034851739 1 1
3250 288.56663 5.7225228 0.0034851739 1 1
3300 200.13238 -31.239655 0.0034851739 1 1
3350 231.32512 16.631728 0.0034851739 1 1
3400 260.57402 2.1717992 0.0034851739 1 1
3450 301.47128 -42.210623 0.0034851739 1 1
3500 321.77414 40.074365 0.0034851739 1 1
3550 353.21858 28.387783 0.0034851739 1 1
3600 331.45989 -57.800858 0.0034851739 1 1
3650 303.88123 44.86596 0.0034851739 1 1
3700 329.73833 -0.80615652 0.0034851739 1 1
3750 297.55588 -0.49626039 0.0034851739 1 1
3800 286.38794 -10.010003 0.0034851739 1 1
3850 290.17417 -43.51187 0.0034851739 1 1
3900 247.88933 51.23735 0.0034851739 1 1
3950 332.31324 -18.194985 0.0034851739 1 1
4000 325.56802 18.402825 0.0034851739 1 1
4050 338.37593 36.430977 0.0034851739 1 1
4100 370.95478 39.290285 0.0034851739 1 1
4150 348.47859 -7.0779678 0.0034851739 1 1
4200 241.30632 -33.371788 0.0034851739 1 1
4250 242.17258 -9.986197 0.0034851739 1 1
4300 300.85311 -7.9244294 0.0034851739 1 1
4350 273.15684 -21.257283 0.0034851739 1 1
4400 305.77463 -5.8720722 0.0034851739 1 1
4450 314.97697 45.0373 0.0034851739 1 1
4500 310.77723 16.958773 0.0034851739 1 1
4550 302.1742 12.156862 0.0034851739 1 1
4600 319.74799 6.84889 0.0034851739 1 1
4650 270.86805 -13.767905 0.0034851739 1 1
4700 249.81731 -31.197487 0.0034851739 1 1
4750 285.86481 -9.8916364 0.0034851739 1 1
4800 233.98321 7.1338571 0.0034851739 1 1
4850 302.60551 49.262889 0.0034851739 1 1
4900 316.55056 34.663247 0.0034851739 1 1
4950 357.32741 11.583006 0.0034851739 1 1
5000 400.21045 -8.1781061 0.0034851739 1 1
5050 390.01845 -20.490275 0.0034851739 1 1
5100 378.84247 -41.328757 0.0034851739 1 1
5150 324.02038 -15.023862 0.0034851739 1 1
5200 262.08429 10.937354 0.0034851739 1 1
5250 255.75508 16.381455 0.0034851739 1 1
5300 277.84989 40.68232 0.0034851739 1 1
5350 302.92832 9.1989494 0.0034851739 1 1
5400 283.7196 -1.6584671 0.0034851739 1 1
5450 300.71266 -4.7030295 0.0034851739 1 1
5500 343.5499 -0.30550044 0.0034851739 1 1
5550 369.51271 21.691649 0.0034851739 1 1
5600 372.69789 -38.67994 0.0034851739 1 1
5650 327.41266 11.352137 0.0034851739 1 1
5700 278.98614 -23.827304 0.0034851739 1 1
5750 308.30054 -20.756187 0.0034851739 1 1
5800 341.45594 28.058441 0.0034851739 1 1
5850 322.97844 -10.731921 0.0034851739 1 1
5900 304.53591 32.825279 0.0034851739 1 1
5950 287.1752 -36.780091 0.0034851739 1 1
6000 296.52681 18.781896 0.0034851739 1 1
6050 314.25442 15.992829 0.0034851739 1 1
6100 313.86576 3.4342714 0.0034851739 1 1
6150 325.64196 32.392039 0.0034851739 1 1
6200 367.42931 -27.160706 0.0034851739 1 1
6250 369.30798 39.020934 0.0034851739 1 1
6300 328.92285 -23.175157 0.0034851739 1 1
6350 305.63077 4.9024453 0.0034851739 1 1
6400 241.70341 -13.676629 0.0034851739 1 1
6450 265.66717 2.40612 0.0034851739 1 1
6500 249.36037 13.420255 0.0034851739 1 1
6550 294.53814 10.853462 0.0034851739 1 1
6600 308.2025 18.995308 0.0034851739 1 1
6650 305.43797 -49.56785 0.0034851739 1 1
6700 320.27344 11.336281 0.0034851739 1 1
6750 321.78666 -23.463899 0.0034851739 1 1
6800 303.40388 7.6224553 0.0034851739 1 1
6850 297.18966 51.52256 0.0034851739 1 1
6900 284.18909 -8.4947203 0.0034851739 1 1
6950 331.03663 13.233655 0.0034851739 1 1
7000 311.37928 -43.265479 0.0034851739 1 1
7050 286.81661 -14.174683 0.0034851739 1 1
7100 302.84119 12.048954 0.0034851739 1 1
7150 297.19357 -43.111968 0.0034851739 1 1
7200 332.47359 26.048249 0.0034851739 1 1
7250 262.70677 41.176242 0.0034851739 1 1
7300 250.61405 -23.413982 0.0034851739 1 1
7350 296.91117 35.88133 0.0034851739 1 1
7400 245.09229 -13.447194 0.0034851739 1 1
7450 272.28131 -23.322585 0.0034851739 1 1
7500 209.04985 13.871239 0.0034851739 1 1
7550 255.00955 4.9325621 0.0034851739 1 1
7600 312.30937 -37.368274 0.0034851739 1 1
7650 305.65903 55.245496 0.0034851739 1 1
7700 325.09504 -18.347711 0.0034851739 1 1
7750 363.28282 -22.479686 0.0034851739 1 1
7800 350.17429 26.849547 0.0034851739 1 1
7850 271.70853 -17.764575 0.0034851739 1 1
7900 272.66484 -11.701967 0.0034851739 1 1
7950 298.60202 -12.765675 0.0034851739 1 1
8000 274.58852 49.641532 0.0034851739 1 1
8050 304.72347 -0.55414183 0.0034851739 1 1
8100 328.30757 -39.861301 0.0034851739 1 1
8150 406.67601 2.8999409 0.0034851739 1 1
8200 332.20083 -51.217399 0.0034851739 1 1
8250 354.50609 53.128769 0.0034851739 1 1
8300 337.2758 20.68562 0.0034851739 1 1
8350 361.89708 -54.185869 0.0034851739 1 1
8400 305.63496 24.058529 0.0034851739 1 1
8450 303.27461 4.304683 0.0034851739 1 1
8500 253.53694 -10.909021 0.0034851739 1 1
8550 277.03017 23.241479 0.0034851739 1 1
8600 291.41844 -22.240665 0.0034851739 1 1
8650 307.85368 31.919587 0.0034851739 1 1
8700 309.19724 0.53529642 0.0034851739 1 1
8750 354.6583 11.565515 0.0034851739 1 1
8800 329.78598 19.5996 0.0034851739 1 1
8850 240.79198 21.803515 0.0034851739 1 1
8900 318.40749 -59.816923 0.0034851739 1 1
8950 308.47211 -57.808635 0.0034851739 1 1
9000 271.51207 50.943482 0.0034851739 1 1
9050 249.4005 6.7529187 0.0034851739 1 1
9100 221.8772 47.196092 0.0034851739 1 1
9150 297.9351 4.0058184 0.0034851739 1 1
9200 274.85051 -24.774393 0.0034851739 1 1
9250 336.04757 5.3799028 0.0034851739 1 1
9300 380.44956 -22.389381 0.0034851739 1 1
9350 336.9824 23.050616 0.0034851739 1 1
9400 304.46425 32.530218 0.0034851739 1 1
9450 317.55591 -22.265425 0.0034851739 1 1
9500 323.70901 -7.0159787 0.0034851739 1 1
9550 316.07308 28.062131 0.0034851739 1 1
9600 262.74608 -0.78519192 0.0034851739 1 1
9650 271.55045 -21.430123 0.0034851739 1 1
9700 239.6022 14.483637 0.0034851739 1 1
9750 338.1437 -0.72765302 0.0034851739 1 1
9800 334.50189 19.495144 0.0034851739 1 1
9850 354.87554 19.272719 0.0034851739 1 1
9900 334.02141 -22.393457 0.0034851739 1 1
9950 293.63651 19.178873 0.0034851739 1 1
10000 319.81736 21.904414 0.0034851739 1 1
Loop time of 1.84987 on 1 procs for 10000 steps with 44 atoms
Performance: 467.059 ns/day, 0.051 hours/ns, 5405.774 timesteps/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.26152 | 0.26152 | 0.26152 | 0.0 | 14.14
Bond | 0.74069 | 0.74069 | 0.74069 | 0.0 | 40.04
Kspace | 0.30505 | 0.30505 | 0.30505 | 0.0 | 16.49
Neigh | 0.39991 | 0.39991 | 0.39991 | 0.0 | 21.62
Comm | 0.02261 | 0.02261 | 0.02261 | 0.0 | 1.22
Output | 0.0034585 | 0.0034585 | 0.0034585 | 0.0 | 0.19
Modify | 0.099979 | 0.099979 | 0.099979 | 0.0 | 5.40
Other | | 0.01666 | | | 0.90
Nlocal: 44 ave 44 max 44 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 44 ave 44 max 44 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 823 ave 823 max 823 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 823
Ave neighs/atom = 18.7045
Ave special neighs/atom = 9.77273
Neighbor list builds = 10000
Dangerous builds = 0
# write_restart restart_longrun
# write_data restart_longrun.data
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:01

View File

@ -1,370 +0,0 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# two monomer nylon example
# reaction produces a condensed water molecule
units real
boundary p p p
atom_style full
kspace_style pppm 1.0e-4
pair_style lj/class2/coul/long 8.5
angle_style class2
bond_style class2
dihedral_style class2
improper_style class2
read_data tiny_nylon.data
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 2 by 2 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
velocity all create 300.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
molecule mol2 rxn1_stp1_reacted.data_template
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
molecule mol3 rxn1_stp2_unreacted.data_template
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
molecule mol4 rxn1_stp2_reacted.data_template
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
thermo 50
# dump 1 all xyz 1 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
fix 1 statted_grp nvt temp 300 300 100
fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]
# restart 100 restart1 restart2
run 10000
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 252 2
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10.5
ghost atom cutoff = 10.5
binsize = 5.25, bins = 10 10 10
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) pair lj/class2/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix bond/react, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
WARNING: Inconsistent image flags (../domain.cpp:786)
Per MPI rank memory allocation (min/avg/max) = 33.34 | 33.69 | 34.37 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 296.70408 -51.30066 0.0034851739 1 0
100 274.25324 46.715512 0.0034851739 1 1
150 471.61579 31.321598 0.0034851739 1 1
200 362.87766 42.061118 0.0034851739 1 1
250 367.58058 65.303109 0.0034851739 1 1
300 372.38236 -52.421725 0.0034851739 1 1
350 297.69957 17.869945 0.0034851739 1 1
400 258.30433 49.19156 0.0034851739 1 1
450 253.34384 -5.8162637 0.0034851739 1 1
500 269.96465 -43.337517 0.0034851739 1 1
550 303.23718 10.180246 0.0034851739 1 1
600 329.59579 -48.97461 0.0034851739 1 1
650 350.42568 50.983183 0.0034851739 1 1
700 342.03272 35.43465 0.0034851739 1 1
750 269.23405 -41.873166 0.0034851739 1 1
800 245.15025 13.953092 0.0034851739 1 1
850 257.85421 -3.1492141 0.0034851739 1 1
900 316.15644 7.7798301 0.0034851739 1 1
950 299.9124 -15.77014 0.0034851739 1 1
1000 302.89968 -17.049693 0.0034851739 1 1
1050 308.91651 71.84632 0.0034851739 1 1
1100 348.43932 -18.742012 0.0034851739 1 1
1150 309.03036 50.536311 0.0034851739 1 1
1200 318.9761 -16.905746 0.0034851739 1 1
1250 320.42806 -0.057975092 0.0034851739 1 1
1300 289.7824 18.200772 0.0034851739 1 1
1350 284.79836 -9.1978427 0.0034851739 1 1
1400 325.43292 42.082833 0.0034851739 1 1
1450 261.5041 -37.823325 0.0034851739 1 1
1500 298.88723 -5.1647385 0.0034851739 1 1
1550 291.37403 -7.7764201 0.0034851739 1 1
1600 293.83475 22.2458 0.0034851739 1 1
1650 293.80611 24.202512 0.0034851739 1 1
1700 291.70205 -23.397884 0.0034851739 1 1
1750 292.32437 -10.671214 0.0034851739 1 1
1800 302.01367 -11.671025 0.0034851739 1 1
1850 322.1651 24.438331 0.0034851739 1 1
1900 310.45076 45.343592 0.0034851739 1 1
1950 325.91745 -19.847809 0.0034851739 1 1
2000 276.89662 63.387098 0.0034851739 1 1
2050 311.33783 -24.683247 0.0034851739 1 1
2100 346.2336 -27.526891 0.0034851739 1 1
2150 345.30604 -15.722411 0.0034851739 1 1
2200 346.7718 -17.857633 0.0034851739 1 1
2250 304.28676 -1.9965581 0.0034851739 1 1
2300 322.56372 -31.786868 0.0034851739 1 1
2350 282.64326 6.1982735 0.0034851739 1 1
2400 286.65759 -63.207781 0.0034851739 1 1
2450 257.05528 32.931491 0.0034851739 1 1
2500 283.64386 26.912373 0.0034851739 1 1
2550 299.54005 27.277039 0.0034851739 1 1
2600 283.92503 14.660972 0.0034851739 1 1
2650 321.93453 -18.977358 0.0034851739 1 1
2700 376.7189 31.826935 0.0034851739 1 1
2750 372.20075 -32.821697 0.0034851739 1 1
2800 361.40604 83.035183 0.0034851739 1 1
2850 332.27269 -23.927452 0.0034851739 1 1
2900 331.14638 -0.12328446 0.0034851739 1 1
2950 303.67489 -24.078857 0.0034851739 1 1
3000 311.40462 21.563537 0.0034851739 1 1
3050 284.72849 -23.849667 0.0034851739 1 1
3100 303.48477 39.347763 0.0034851739 1 1
3150 264.2739 -0.22299878 0.0034851739 1 1
3200 300.03351 31.545323 0.0034851739 1 1
3250 288.56663 5.7225229 0.0034851739 1 1
3300 200.13238 -31.239655 0.0034851739 1 1
3350 231.32512 16.631728 0.0034851739 1 1
3400 260.57402 2.1717992 0.0034851739 1 1
3450 301.47128 -42.210623 0.0034851739 1 1
3500 321.77414 40.074365 0.0034851739 1 1
3550 353.21858 28.387783 0.0034851739 1 1
3600 331.45989 -57.800858 0.0034851739 1 1
3650 303.88123 44.86596 0.0034851739 1 1
3700 329.73833 -0.8061567 0.0034851739 1 1
3750 297.55588 -0.49626022 0.0034851739 1 1
3800 286.38794 -10.010003 0.0034851739 1 1
3850 290.17417 -43.51187 0.0034851739 1 1
3900 247.88933 51.23735 0.0034851739 1 1
3950 332.31324 -18.194985 0.0034851739 1 1
4000 325.56802 18.402825 0.0034851739 1 1
4050 338.37594 36.430977 0.0034851739 1 1
4100 370.95478 39.290285 0.0034851739 1 1
4150 348.47859 -7.0779683 0.0034851739 1 1
4200 241.30632 -33.371789 0.0034851739 1 1
4250 242.17258 -9.9861962 0.0034851739 1 1
4300 300.85311 -7.924429 0.0034851739 1 1
4350 273.15684 -21.257282 0.0034851739 1 1
4400 305.77464 -5.8720712 0.0034851739 1 1
4450 314.97697 45.037299 0.0034851739 1 1
4500 310.77723 16.958771 0.0034851739 1 1
4550 302.17421 12.156862 0.0034851739 1 1
4600 319.74799 6.8488914 0.0034851739 1 1
4650 270.86805 -13.767907 0.0034851739 1 1
4700 249.81731 -31.197484 0.0034851739 1 1
4750 285.86481 -9.8916332 0.0034851739 1 1
4800 233.98321 7.1338518 0.0034851739 1 1
4850 302.60551 49.262886 0.0034851739 1 1
4900 316.55055 34.663238 0.0034851739 1 1
4950 357.32741 11.583013 0.0034851739 1 1
5000 400.21044 -8.1780861 0.0034851739 1 1
5050 390.01845 -20.490268 0.0034851739 1 1
5100 378.84249 -41.328772 0.0034851739 1 1
5150 324.02039 -15.023852 0.0034851739 1 1
5200 262.08427 10.937367 0.0034851739 1 1
5250 255.75506 16.381495 0.0034851739 1 1
5300 277.84991 40.682283 0.0034851739 1 1
5350 302.92834 9.1989644 0.0034851739 1 1
5400 283.71964 -1.6583895 0.0034851739 1 1
5450 300.71261 -4.703054 0.0034851739 1 1
5500 343.54987 -0.30546396 0.0034851739 1 1
5550 369.51272 21.691639 0.0034851739 1 1
5600 372.69786 -38.679919 0.0034851739 1 1
5650 327.41256 11.352201 0.0034851739 1 1
5700 278.9861 -23.82728 0.0034851739 1 1
5750 308.30037 -20.756238 0.0034851739 1 1
5800 341.4559 28.058314 0.0034851739 1 1
5850 322.9786 -10.731862 0.0034851739 1 1
5900 304.53598 32.825105 0.0034851739 1 1
5950 287.17515 -36.780057 0.0034851739 1 1
6000 296.52688 18.782156 0.0034851739 1 1
6050 314.25411 15.99272 0.0034851739 1 1
6100 313.86572 3.4344108 0.0034851739 1 1
6150 325.64197 32.39212 0.0034851739 1 1
6200 367.4298 -27.161154 0.0034851739 1 1
6250 369.30937 39.020881 0.0034851739 1 1
6300 328.92245 -23.175612 0.0034851739 1 1
6350 305.6293 4.9011587 0.0034851739 1 1
6400 241.70456 -13.675247 0.0034851739 1 1
6450 265.66574 2.4049735 0.0034851739 1 1
6500 249.3592 13.420453 0.0034851739 1 1
6550 294.5367 10.856753 0.0034851739 1 1
6600 308.20246 18.992923 0.0034851739 1 1
6650 305.43756 -49.57151 0.0034851739 1 1
6700 320.27395 11.339101 0.0034851739 1 1
6750 321.7875 -23.463361 0.0034851739 1 1
6800 303.40316 7.6256997 0.0034851739 1 1
6850 297.18652 51.52186 0.0034851739 1 1
6900 284.19084 -8.496294 0.0034851739 1 1
6950 331.04173 13.227745 0.0034851739 1 1
7000 311.38027 -43.26105 0.0034851739 1 1
7050 286.82046 -14.171194 0.0034851739 1 1
7100 302.81691 12.058085 0.0034851739 1 1
7150 297.18018 -43.110658 0.0034851739 1 1
7200 332.46131 26.051496 0.0034851739 1 1
7250 262.72288 41.161451 0.0034851739 1 1
7300 250.62739 -23.440907 0.0034851739 1 1
7350 296.92141 35.869216 0.0034851739 1 1
7400 245.06807 -13.467896 0.0034851739 1 1
7450 272.2659 -23.292836 0.0034851739 1 1
7500 209.05776 13.888665 0.0034851739 1 1
7550 255.03716 4.9662624 0.0034851739 1 1
7600 312.26011 -37.350427 0.0034851739 1 1
7650 305.5823 55.208039 0.0034851739 1 1
7700 325.13382 -18.370791 0.0034851739 1 1
7750 363.24898 -22.473126 0.0034851739 1 1
7800 350.19254 26.792307 0.0034851739 1 1
7850 271.76418 -17.843445 0.0034851739 1 1
7900 272.70301 -11.709349 0.0034851739 1 1
7950 298.5993 -12.736235 0.0034851739 1 1
8000 274.52611 49.657345 0.0034851739 1 1
8050 304.73711 -0.52485689 0.0034851739 1 1
8100 328.29239 -39.901891 0.0034851739 1 1
8150 406.52096 2.8669076 0.0034851739 1 1
8200 332.17309 -51.168754 0.0034851739 1 1
8250 354.68419 53.003157 0.0034851739 1 1
8300 337.28934 20.766408 0.0034851739 1 1
8350 361.81133 -54.159227 0.0034851739 1 1
8400 305.59597 24.011667 0.0034851739 1 1
8450 303.25823 4.423341 0.0034851739 1 1
8500 253.50747 -11.026949 0.0034851739 1 1
8550 277.13504 23.204625 0.0034851739 1 1
8600 291.40211 -22.253861 0.0034851739 1 1
8650 307.93765 32.14162 0.0034851739 1 1
8700 309.1529 0.36279434 0.0034851739 1 1
8750 355.10326 11.677219 0.0034851739 1 1
8800 330.21328 19.235269 0.0034851739 1 1
8850 241.29109 21.707386 0.0034851739 1 1
8900 319.15363 -60.010115 0.0034851739 1 1
8950 308.88552 -57.637014 0.0034851739 1 1
9000 272.22373 51.15837 0.0034851739 1 1
9050 248.84947 7.3390565 0.0034851739 1 1
9100 221.91564 48.387079 0.0034851739 1 1
9150 298.03506 2.9058639 0.0034851739 1 1
9200 274.25114 -24.597819 0.0034851739 1 1
9250 334.08373 5.1079577 0.0034851739 1 1
9300 383.07285 -23.274763 0.0034851739 1 1
9350 335.00581 20.94212 0.0034851739 1 1
9400 309.23862 34.074744 0.0034851739 1 1
9450 312.62262 -28.468057 0.0034851739 1 1
9500 324.54274 2.851136 0.0034851739 1 1
9550 313.32781 22.468182 0.0034851739 1 1
9600 269.04372 4.064934 0.0034851739 1 1
9650 270.98476 -21.520127 0.0034851739 1 1
9700 236.8736 16.250728 0.0034851739 1 1
9750 333.94686 1.6864148 0.0034851739 1 1
9800 330.91875 12.150018 0.0034851739 1 1
9850 343.8603 25.338853 0.0034851739 1 1
9900 330.93364 -28.292992 0.0034851739 1 1
9950 291.25518 25.795948 0.0034851739 1 1
10000 319.25565 25.323846 0.0034851739 1 1
Loop time of 3.55353 on 4 procs for 10000 steps with 44 atoms
Performance: 243.139 ns/day, 0.099 hours/ns, 2814.105 timesteps/s
93.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0030422 | 0.10454 | 0.35211 | 44.8 | 2.94
Bond | 0.0063896 | 0.29222 | 0.94356 | 71.3 | 8.22
Kspace | 0.88508 | 1.6486 | 1.979 | 35.1 | 46.39
Neigh | 0.61154 | 0.62212 | 0.63307 | 1.0 | 17.51
Comm | 0.18944 | 0.24549 | 0.29196 | 7.9 | 6.91
Output | 0.0050066 | 0.011804 | 0.032134 | 10.8 | 0.33
Modify | 0.52282 | 0.60522 | 0.69588 | 7.9 | 17.03
Other | | 0.02359 | | | 0.66
Nlocal: 11 ave 44 max 0 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Nghost: 33 ave 44 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Neighs: 205.75 ave 823 max 0 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Total # of neighbors = 823
Ave neighs/atom = 18.7045
Ave special neighs/atom = 9.77273
Neighbor list builds = 10000
Dangerous builds = 0
# write_restart restart_longrun
# write_data restart_longrun.data
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:03

View File

@ -0,0 +1,148 @@
LAMMPS (5 Jun 2019)
Reading data file ...
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 1 by 1 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
special bonds CPU = 0.000181113 secs
read_data CPU = 0.0251833 secs
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
WARNING: Bond/react: Atom affected by reaction rxn1 too close to template edge (../fix_bond_react.cpp:1785)
WARNING: Bond/react: Atom affected by reaction rxn2 too close to template edge (../fix_bond_react.cpp:1785)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp_REACT defined
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:319)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 343 8
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10.5
ghost atom cutoff = 10.5
binsize = 5.25, bins = 10 10 10
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) pair lj/class2/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix bond/react, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
WARNING: Inconsistent image flags (../domain.cpp:784)
Per MPI rank memory allocation (min/avg/max) = 34.41 | 34.41 | 34.41 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 293.70542 -52.547388 0.0034851739 1 0
100 276.36755 54.81826 0.0034851739 1 1
150 448.65869 16.874435 0.0034851739 1 1
200 379.84257 11.578545 0.0034851739 1 1
250 298.21983 90.656585 0.0034851739 1 1
300 333.3111 -30.139607 0.0034851739 1 1
350 266.57108 6.4505134 0.0034851739 1 1
400 264.05476 10.513204 0.0034851739 1 1
450 250.70418 -18.635379 0.0034851739 1 1
500 261.21632 10.231013 0.0034851739 1 1
550 309.89024 -8.8299506 0.0034851739 1 1
600 373.45851 30.368993 0.0034851739 1 1
650 338.26242 9.0362267 0.0034851739 1 1
700 295.67794 -5.6007538 0.0034851739 1 1
750 310.86563 -59.228181 0.0034851739 1 1
800 286.22678 -9.9022407 0.0034851739 1 1
850 218.42135 27.845352 0.0034851739 1 1
900 259.62551 24.216336 0.0034851739 1 1
950 250.21307 -14.560985 0.0034851739 1 1
1000 274.29245 -0.38768626 0.0034851739 1 1
Loop time of 0.341061 on 1 procs for 1000 steps with 44 atoms
Performance: 253.327 ns/day, 0.095 hours/ns, 2932.025 timesteps/s
87.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.031135 | 0.031135 | 0.031135 | 0.0 | 9.13
Bond | 0.12623 | 0.12623 | 0.12623 | 0.0 | 37.01
Kspace | 0.036491 | 0.036491 | 0.036491 | 0.0 | 10.70
Neigh | 0.046395 | 0.046395 | 0.046395 | 0.0 | 13.60
Comm | 0.0025396 | 0.0025396 | 0.0025396 | 0.0 | 0.74
Output | 0.07775 | 0.07775 | 0.07775 | 0.0 | 22.80
Modify | 0.019219 | 0.019219 | 0.019219 | 0.0 | 5.64
Other | | 0.001306 | | | 0.38
Nlocal: 44 ave 44 max 44 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2 ave 2 max 2 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 740 ave 740 max 740 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 740
Ave neighs/atom = 16.8182
Ave special neighs/atom = 9.77273
Neighbor list builds = 1000
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -0,0 +1,148 @@
LAMMPS (5 Jun 2019)
Reading data file ...
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 2 by 2 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
special bonds CPU = 0.000178751 secs
read_data CPU = 0.0385782 secs
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
WARNING: Bond/react: Atom affected by reaction rxn1 too close to template edge (../fix_bond_react.cpp:1785)
WARNING: Bond/react: Atom affected by reaction rxn2 too close to template edge (../fix_bond_react.cpp:1785)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp_REACT defined
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:319)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 252 2
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10.5
ghost atom cutoff = 10.5
binsize = 5.25, bins = 10 10 10
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) pair lj/class2/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix bond/react, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
WARNING: Inconsistent image flags (../domain.cpp:784)
Per MPI rank memory allocation (min/avg/max) = 34.42 | 34.77 | 35.45 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 293.70542 -52.547388 0.0034851739 1 0
100 276.36755 54.81826 0.0034851739 1 1
150 448.65869 16.874435 0.0034851739 1 1
200 379.84257 11.578545 0.0034851739 1 1
250 298.21983 90.656585 0.0034851739 1 1
300 333.3111 -30.139607 0.0034851739 1 1
350 266.57108 6.4505134 0.0034851739 1 1
400 264.05476 10.513204 0.0034851739 1 1
450 250.70418 -18.635379 0.0034851739 1 1
500 261.21632 10.231013 0.0034851739 1 1
550 309.89024 -8.8299506 0.0034851739 1 1
600 373.45851 30.368993 0.0034851739 1 1
650 338.26242 9.0362267 0.0034851739 1 1
700 295.67794 -5.6007538 0.0034851739 1 1
750 310.86563 -59.228181 0.0034851739 1 1
800 286.22678 -9.9022407 0.0034851739 1 1
850 218.42135 27.845352 0.0034851739 1 1
900 259.62551 24.216336 0.0034851739 1 1
950 250.21307 -14.560985 0.0034851739 1 1
1000 274.29245 -0.38768626 0.0034851739 1 1
Loop time of 0.271242 on 4 procs for 1000 steps with 44 atoms
Performance: 318.535 ns/day, 0.075 hours/ns, 3686.747 timesteps/s
98.6% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.00023773 | 0.0077322 | 0.016042 | 8.4 | 2.85
Bond | 0.00073385 | 0.032108 | 0.08446 | 19.4 | 11.84
Kspace | 0.041659 | 0.098095 | 0.13373 | 12.3 | 36.16
Neigh | 0.028894 | 0.029247 | 0.029558 | 0.1 | 10.78
Comm | 0.012367 | 0.013642 | 0.01503 | 0.9 | 5.03
Output | 0.032475 | 0.040504 | 0.061019 | 5.9 | 14.93
Modify | 0.032934 | 0.049086 | 0.0577 | 4.3 | 18.10
Other | | 0.0008281 | | | 0.31
Nlocal: 11 ave 21 max 0 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Nghost: 32.5 ave 43 max 23 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 185 ave 376 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 740
Ave neighs/atom = 16.8182
Ave special neighs/atom = 9.77273
Neighbor list builds = 1000
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -0,0 +1,147 @@
LAMMPS (5 Jun 2019)
Reading data file ...
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 1 by 1 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
special bonds CPU = 0.000217102 secs
read_data CPU = 0.00630778 secs
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
WARNING: Bond/react: Atom affected by reaction rxn1 too close to template edge (../fix_bond_react.cpp:1785)
WARNING: Bond/react: Atom affected by reaction rxn2 too close to template edge (../fix_bond_react.cpp:1785)
dynamic group bond_react_MASTER_group defined
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:319)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 343 8
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10.5
ghost atom cutoff = 10.5
binsize = 5.25, bins = 10 10 10
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) pair lj/class2/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix bond/react, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
WARNING: Inconsistent image flags (../domain.cpp:784)
Per MPI rank memory allocation (min/avg/max) = 34.35 | 34.35 | 34.35 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 416.49412 -20.293038 0.0034851739 1 0
100 746.49323 91.912227 0.0034851739 1 1
150 515.15907 -1.4024709 0.0034851739 1 1
200 441.14572 -19.333087 0.0034851739 1 1
250 376.40996 30.717679 0.0034851739 1 1
300 326.15127 -3.0433799 0.0034851739 1 1
350 326.21116 6.235391 0.0034851739 1 1
400 366.48556 3.9807338 0.0034851739 1 1
450 313.79097 7.6674629 0.0034851739 1 1
500 278.89836 14.102052 0.0034851739 1 1
550 267.50214 18.241417 0.0034851739 1 1
600 276.28064 7.4649611 0.0034851739 1 1
650 255.26713 -8.5258573 0.0034851739 1 1
700 258.59752 -5.3341215 0.0034851739 1 1
750 263.71264 33.369869 0.0034851739 1 1
800 246.22976 -15.349137 0.0034851739 1 1
850 255.93887 16.331669 0.0034851739 1 1
900 239.72525 -0.20075789 0.0034851739 1 1
950 213.73064 12.17619 0.0034851739 1 1
1000 218.25094 -9.0955642 0.0034851739 1 1
Loop time of 0.348252 on 1 procs for 1000 steps with 44 atoms
Performance: 248.096 ns/day, 0.097 hours/ns, 2871.483 timesteps/s
91.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.031941 | 0.031941 | 0.031941 | 0.0 | 9.17
Bond | 0.13031 | 0.13031 | 0.13031 | 0.0 | 37.42
Kspace | 0.037554 | 0.037554 | 0.037554 | 0.0 | 10.78
Neigh | 0.047397 | 0.047397 | 0.047397 | 0.0 | 13.61
Comm | 0.0025814 | 0.0025814 | 0.0025814 | 0.0 | 0.74
Output | 0.083526 | 0.083526 | 0.083526 | 0.0 | 23.98
Modify | 0.013602 | 0.013602 | 0.013602 | 0.0 | 3.91
Other | | 0.001336 | | | 0.38
Nlocal: 44 ave 44 max 44 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 818 ave 818 max 818 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 818
Ave neighs/atom = 18.5909
Ave special neighs/atom = 9.77273
Neighbor list builds = 1000
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -0,0 +1,147 @@
LAMMPS (5 Jun 2019)
Reading data file ...
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 2 by 2 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
special bonds CPU = 0.000163256 secs
read_data CPU = 0.0244579 secs
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
WARNING: Bond/react: Atom affected by reaction rxn1 too close to template edge (../fix_bond_react.cpp:1785)
WARNING: Bond/react: Atom affected by reaction rxn2 too close to template edge (../fix_bond_react.cpp:1785)
dynamic group bond_react_MASTER_group defined
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:319)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 252 2
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 10.5
ghost atom cutoff = 10.5
binsize = 5.25, bins = 10 10 10
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) pair lj/class2/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
(2) fix bond/react, occasional, copy from (1)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
Setting up Verlet run ...
Unit style : real
Current step : 0
Time step : 1
WARNING: Inconsistent image flags (../domain.cpp:784)
Per MPI rank memory allocation (min/avg/max) = 33.34 | 33.69 | 34.37 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 416.49412 -20.293038 0.0034851739 1 0
100 746.49323 91.912227 0.0034851739 1 1
150 515.15907 -1.4024709 0.0034851739 1 1
200 441.14572 -19.333087 0.0034851739 1 1
250 376.40996 30.717679 0.0034851739 1 1
300 326.15127 -3.0433799 0.0034851739 1 1
350 326.21116 6.235391 0.0034851739 1 1
400 366.48556 3.9807338 0.0034851739 1 1
450 313.79097 7.6674629 0.0034851739 1 1
500 278.89836 14.102052 0.0034851739 1 1
550 267.50214 18.241417 0.0034851739 1 1
600 276.28064 7.4649611 0.0034851739 1 1
650 255.26713 -8.5258573 0.0034851739 1 1
700 258.59752 -5.3341215 0.0034851739 1 1
750 263.71264 33.369869 0.0034851739 1 1
800 246.22976 -15.349137 0.0034851739 1 1
850 255.93887 16.331669 0.0034851739 1 1
900 239.72525 -0.20075789 0.0034851739 1 1
950 213.73064 12.17619 0.0034851739 1 1
1000 218.25094 -9.0955642 0.0034851739 1 1
Loop time of 0.254903 on 4 procs for 1000 steps with 44 atoms
Performance: 338.952 ns/day, 0.071 hours/ns, 3923.053 timesteps/s
99.8% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.00014252 | 0.0090715 | 0.021332 | 9.6 | 3.56
Bond | 0.00047028 | 0.037261 | 0.10789 | 22.7 | 14.62
Kspace | 0.051006 | 0.12756 | 0.1693 | 13.6 | 50.04
Neigh | 0.035644 | 0.036088 | 0.036523 | 0.2 | 14.16
Comm | 0.013984 | 0.016074 | 0.018676 | 1.6 | 6.31
Output | 0.0002816 | 0.00033726 | 0.00044251 | 0.0 | 0.13
Modify | 0.023697 | 0.027803 | 0.033552 | 2.5 | 10.91
Other | | 0.0007123 | | | 0.28
Nlocal: 11 ave 29 max 0 min
Histogram: 1 1 0 0 1 0 0 0 0 1
Nghost: 25 ave 31 max 12 min
Histogram: 1 0 0 0 0 0 0 0 2 1
Neighs: 204.5 ave 443 max 0 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Total # of neighbors = 818
Ave neighs/atom = 18.5909
Ave special neighs/atom = 9.77273
Neighbor list builds = 1000
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:00

View File

@ -0,0 +1,22 @@
The example input script sets up a simple FCC crystal using the Lennard-Jones
potential. The script sets up the HMA compute to calculate the energy, pressure
and heat capacity. The output columns are:
1: timestep
2: measured temperature
3: potential energy
4: HMA potential energy
5: pressure
6: HMA pressure
7: HMA heat capacity contribution
Averages of the potential energy (#3 and #4) agree although #4 (HMA) is more precise.
Averages of the pressure (#5 and #6) agree once the ideal gas
contribution is included; #6 (HMA) is more precise.
The heat capacity can be computed from colume #3 (convential) as
Cv = Var(#3)/(k T^2)
With HMA, the heat capacity can be computed from column #4 and #7 as
Cv = #7 + Var(#4)/(k T^2)

View File

@ -0,0 +1,36 @@
# Harmonically mapped average example
units lj
dimension 3
boundary p p p
atom_style atomic
atom_modify map array
# ---------- Create Atoms ----------------------------
lattice fcc 1.0
region box block 0 4 0 4 0 4 units lattice
create_box 1 box
lattice fcc 1.0 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
create_atoms 1 region box
# ---------- Define Interatomic Potential ---------------------
pair_style lj/smooth/linear 3
pair_coeff * * 1.0 1.0
mass 1 1.0
atom_modify sort 0 1
velocity all create 0.1 45678 dist gaussian
compute u all pe
compute p all pressure NULL pair
compute hma all hma settemp u p 9.579586686264458 cv
timestep 0.005
fix settemp all nvt temp 1.0 1.0 0.5
thermo_style custom elapsed temp c_u c_hma[1] c_p c_hma[2] c_hma[3]
thermo_modify format float '%22.15e'
thermo 500
run 20000
thermo 20
run 200000

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
../../../../../potentials/BNCH-old.ILP

View File

@ -1 +0,0 @@
../../../../../potentials/CH.airebo

View File

@ -1,61 +0,0 @@
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
group adsorbate type 2
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000

View File

@ -1,137 +0,0 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
680 atoms in group membrane
group adsorbate type 2
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual, skip from (2)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 16.96 | 16.96 | 16.96 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -5029.3801131277 -5044.0700799791 14.6899668514 -5011.2636297759 -32.8064502032 83.6251135127 22.0155657205 20.2812150219 3.4623630945 0.0282287195 0.0535565745 0.2193320108
100 -5029.3895815657 -5045.3201249690 15.9305434033 -5012.4897058028 -32.8304191662 90.6873047362 22.0181751545 20.2867946176 3.4502536831 0.0239131349 0.0576557373 -0.4387830564
200 -5029.3874064119 -5045.8119502228 16.4245438109 -5012.7276250747 -33.0843251481 93.4994853617 22.0202931358 20.2926890775 3.3883512918 0.0180268639 0.0596894423 -0.6964675465
300 -5029.3851410393 -5044.9928147367 15.6076736974 -5012.1131531405 -32.8796615962 88.8493144891 22.0216852689 20.2985091183 3.3368274018 0.0093519893 0.0546775051 -0.2110676539
400 -5029.3900102082 -5045.6706717598 16.2806615516 -5012.7330095297 -32.9376622301 92.6804113372 22.0220931529 20.3035219616 3.3560233852 -0.0015365116 0.0454268927 0.5478139709
500 -5029.3985510533 -5046.0433160610 16.6447650078 -5013.0924334585 -32.9508826025 94.7531316612 22.0214795944 20.3074656871 3.4232399722 -0.0107212024 0.0332249366 0.6595923534
600 -5029.3929936746 -5045.4367231195 16.0437294449 -5012.7046931021 -32.7320300174 91.3316353653 22.0200027176 20.3101652565 3.4651727438 -0.0178110391 0.0210056002 0.1144372537
700 -5029.3934435811 -5045.6074608403 16.2140172592 -5012.7886962164 -32.8187646239 92.3010274644 22.0178838793 20.3116257077 3.4432436715 -0.0242636237 0.0078323424 -0.5162836955
800 -5029.3892931255 -5046.2270462380 16.8377531124 -5013.2383770824 -32.9886691555 95.8517489911 22.0151485191 20.3116305041 3.3780520461 -0.0302821178 -0.0083184719 -0.6710801515
900 -5029.3930414672 -5046.0272003818 16.6341589146 -5013.2317798384 -32.7954205434 94.6927546874 22.0119224940 20.3099187654 3.3350551183 -0.0341747588 -0.0256858066 -0.0799872839
1000 -5029.3908907831 -5045.6437703691 16.2528795861 -5012.6800867885 -32.9636835807 92.5222578135 22.0084902521 20.3065746721 3.3658243730 -0.0336536245 -0.0406018547 0.6191660974
Loop time of 137.46 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.629 ns/day, 38.183 hours/ns, 7.275 timesteps/s
95.1% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 137.33 | 137.33 | 137.33 | 0.0 | 99.90
Bond | 0.00071788 | 0.00071788 | 0.00071788 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.067907 | 0.067907 | 0.067907 | 0.0 | 0.05
Output | 0.0016029 | 0.0016029 | 0.0016029 | 0.0 | 0.00
Modify | 0.036542 | 0.036542 | 0.036542 | 0.0 | 0.03
Other | | 0.02574 | | | 0.02
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7964 ave 7964 max 7964 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 265206 ave 265206 max 265206 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 265206
Ave neighs/atom = 195.004
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:17

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