Fix merge conflicts
This commit is contained in:
7
.github/ISSUE_TEMPLATE/help_request.md
vendored
7
.github/ISSUE_TEMPLATE/help_request.md
vendored
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: Request for Help
|
name: Request for Help
|
||||||
about: "Don't post help requests here, email the lammps-users mailing list"
|
about: "Don't post help requests here, post in the LAMMPS forum"
|
||||||
title: ""
|
title: ""
|
||||||
labels: invalid
|
labels: invalid
|
||||||
assignees: ''
|
assignees: ''
|
||||||
@ -8,8 +8,9 @@ assignees: ''
|
|||||||
---
|
---
|
||||||
|
|
||||||
Please **do not** post requests for help (e.g. with installing or using LAMMPS) here.
|
Please **do not** post requests for help (e.g. with installing or using LAMMPS) here.
|
||||||
Instead send an e-mail to the lammps-users mailing list.
|
Instead, you can post to the LAMMPS category in the Materials Science Community
|
||||||
|
Discourse forum at: https://matsci.org/lammps/
|
||||||
|
|
||||||
This issue tracker is for tracking LAMMPS development related issues only.
|
This issue tracker is for tracking LAMMPS development related issues only.
|
||||||
|
|
||||||
Thanks for your cooperation.
|
Thank you in advance for your cooperation.
|
||||||
|
|||||||
4
README
4
README
@ -16,8 +16,8 @@ National Laboratories, a US Department of Energy facility, with
|
|||||||
funding from the DOE. It is an open-source code, distributed freely
|
funding from the DOE. It is an open-source code, distributed freely
|
||||||
under the terms of the GNU Public License (GPL) version 2.
|
under the terms of the GNU Public License (GPL) version 2.
|
||||||
|
|
||||||
The primary author of the code is Steve Plimpton, who can be emailed
|
The code is maintained by the LAMMPS development team who can be emailed
|
||||||
at sjplimp@sandia.gov. The LAMMPS WWW Site at www.lammps.org has
|
at developers@lammps.org. The LAMMPS WWW Site at www.lammps.org has
|
||||||
more information about the code and its uses.
|
more information about the code and its uses.
|
||||||
|
|
||||||
The LAMMPS distribution includes the following files and directories:
|
The LAMMPS distribution includes the following files and directories:
|
||||||
|
|||||||
30
SECURITY.md
30
SECURITY.md
@ -14,14 +14,14 @@ and tested by the LAMMPS developers, so it is easy to import bad
|
|||||||
behavior from calling functions in one of those libraries.
|
behavior from calling functions in one of those libraries.
|
||||||
|
|
||||||
Thus is is quite easy to crash LAMMPS through malicious input and do all
|
Thus is is quite easy to crash LAMMPS through malicious input and do all
|
||||||
kinds of filesystem manipulations. And because of that LAMMPS should
|
kinds of file system manipulations. And because of that LAMMPS should
|
||||||
**NEVER** be compiled or **run** as superuser, either from a "root" or
|
**NEVER** be compiled or **run** as superuser, either from a "root" or
|
||||||
"administrator" account directly or indirectly via "sudo" or "su".
|
"administrator" account directly or indirectly via "sudo" or "su".
|
||||||
|
|
||||||
Therefore what could be seen as a security vulnerability is usually
|
Therefore what could be seen as a security vulnerability is usually
|
||||||
either a user mistake or a bug in the code. Bugs can be reported in
|
either a user mistake or a bug in the code. Bugs can be reported in the
|
||||||
the LAMMPS project
|
LAMMPS project [issue tracker on
|
||||||
[issue tracker on GitHub](https://github.com/lammps/lammps/issues).
|
GitHub](https://github.com/lammps/lammps/issues).
|
||||||
|
|
||||||
To mitigate issues with using homoglyphs or bidirectional reordering in
|
To mitigate issues with using homoglyphs or bidirectional reordering in
|
||||||
unicode, which have been demonstrated as a vector to obfuscate and hide
|
unicode, which have been demonstrated as a vector to obfuscate and hide
|
||||||
@ -30,10 +30,18 @@ for unicode characters and only all-ASCII source code is accepted.
|
|||||||
|
|
||||||
# Version Updates
|
# Version Updates
|
||||||
|
|
||||||
LAMMPS follows continuous release development model. We aim to keep all
|
LAMMPS follows continuous release development model. We aim to keep to
|
||||||
release versions (stable or patch) fully functional and employ a variety
|
keep the development version (develop branch) always fully functional
|
||||||
of automatic testing procedures to detect failures of existing
|
and employ a variety of automatic testing procedures to detect failures
|
||||||
functionality from adding new features before releases are made. Thus
|
of existing functionality from adding or modifying features. Most of
|
||||||
bugfixes and updates are only integrated into the current development
|
those tests are run on pull requests *before* merging to the development
|
||||||
branch and thus the next (patch) release and users are recommended to
|
branch. The develop branch is protected, so all changes *must* be
|
||||||
update regularly.
|
submitted as a pull request and thus cannot avoid the automated tests.
|
||||||
|
|
||||||
|
Additional tests are run *after* merging. Before releases are made
|
||||||
|
*all* tests must have cleared. Then a release tag is applied and the
|
||||||
|
release branch fast-forwarded to that tag. Bug fixes and updates are
|
||||||
|
applied to the current development branch and thus will be available in
|
||||||
|
the next (patch) release. For stable releases, selected bug fixes are
|
||||||
|
back-ported and occasionally published as update releases. There are
|
||||||
|
only updates to the latest stable release.
|
||||||
|
|||||||
@ -7,11 +7,20 @@ cmake_minimum_required(VERSION 3.10)
|
|||||||
if(POLICY CMP0074)
|
if(POLICY CMP0074)
|
||||||
cmake_policy(SET CMP0074 NEW)
|
cmake_policy(SET CMP0074 NEW)
|
||||||
endif()
|
endif()
|
||||||
|
# set policy to silence warnings about ignoring ${CMAKE_REQUIRED_LIBRARIES} but use it
|
||||||
|
if(POLICY CMP0075)
|
||||||
|
cmake_policy(SET CMP0075 NEW)
|
||||||
|
endif()
|
||||||
# set policy to silence warnings about missing executable permissions in
|
# set policy to silence warnings about missing executable permissions in
|
||||||
# pythonx.y-config when cross-compiling. review occasionally if it may be set to NEW
|
# pythonx.y-config when cross-compiling. review occasionally if it may be set to NEW
|
||||||
if(POLICY CMP0109)
|
if(POLICY CMP0109)
|
||||||
cmake_policy(SET CMP0109 OLD)
|
cmake_policy(SET CMP0109 OLD)
|
||||||
endif()
|
endif()
|
||||||
|
# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
|
||||||
|
if(POLICY CMP0135)
|
||||||
|
cmake_policy(SET CMP0135 OLD)
|
||||||
|
endif()
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
project(lammps CXX)
|
project(lammps CXX)
|
||||||
@ -100,7 +109,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
|||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
||||||
set(CMAKE_TUNE_DEFAULT "-xCOMMON-AVX512")
|
set(CMAKE_TUNE_DEFAULT "-xCOMMON-AVX512")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_TUNE_DEFAULT "-xHost")
|
set(CMAKE_TUNE_DEFAULT "-xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=2196")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@ -381,9 +390,9 @@ pkg_depends(EXTRA-MOLECULE MOLECULE)
|
|||||||
|
|
||||||
# detect if we may enable OpenMP support by default
|
# detect if we may enable OpenMP support by default
|
||||||
set(BUILD_OMP_DEFAULT OFF)
|
set(BUILD_OMP_DEFAULT OFF)
|
||||||
find_package(OpenMP QUIET)
|
find_package(OpenMP COMPONENTS CXX QUIET)
|
||||||
if(OpenMP_FOUND)
|
if(OpenMP_CXX_FOUND)
|
||||||
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
|
check_omp_h_include()
|
||||||
if(HAVE_OMP_H_INCLUDE)
|
if(HAVE_OMP_H_INCLUDE)
|
||||||
set(BUILD_OMP_DEFAULT ON)
|
set(BUILD_OMP_DEFAULT ON)
|
||||||
endif()
|
endif()
|
||||||
@ -392,8 +401,8 @@ endif()
|
|||||||
option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT})
|
option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT})
|
||||||
|
|
||||||
if(BUILD_OMP)
|
if(BUILD_OMP)
|
||||||
find_package(OpenMP REQUIRED)
|
find_package(OpenMP COMPONENTS CXX REQUIRED)
|
||||||
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
|
check_omp_h_include()
|
||||||
if(NOT HAVE_OMP_H_INCLUDE)
|
if(NOT HAVE_OMP_H_INCLUDE)
|
||||||
message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support")
|
message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support")
|
||||||
endif()
|
endif()
|
||||||
@ -727,18 +736,17 @@ list(FIND LANGUAGES "Fortran" _index)
|
|||||||
if(_index GREATER -1)
|
if(_index GREATER -1)
|
||||||
target_link_libraries(lammps PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
|
target_link_libraries(lammps PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h compute.h dihedral.h domain.h error.h fix.h force.h group.h improper.h
|
set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h command.h compute.h dihedral.h domain.h
|
||||||
input.h info.h kspace.h lammps.h lattice.h library.h lmppython.h lmptype.h memory.h modify.h neighbor.h neigh_list.h output.h
|
error.h exceptions.h fix.h force.h group.h improper.h input.h info.h kspace.h lammps.h lattice.h
|
||||||
pair.h pointers.h region.h timer.h universe.h update.h utils.h variable.h)
|
library.h lmppython.h lmptype.h memory.h modify.h neighbor.h neigh_list.h output.h pair.h
|
||||||
if(LAMMPS_EXCEPTIONS)
|
platform.h pointers.h region.h timer.h universe.h update.h utils.h variable.h)
|
||||||
list(APPEND LAMMPS_CXX_HEADERS exceptions.h)
|
set(LAMMPS_FMT_HEADERS core.h format.h)
|
||||||
endif()
|
|
||||||
|
|
||||||
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
|
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
|
||||||
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
||||||
set_target_properties(lammps PROPERTIES PREFIX "lib")
|
set_target_properties(lammps PROPERTIES PREFIX "lib")
|
||||||
target_include_directories(lammps PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/lammps>)
|
target_include_directories(lammps PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/lammps>)
|
||||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps)
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt)
|
||||||
foreach(_HEADER ${LAMMPS_CXX_HEADERS})
|
foreach(_HEADER ${LAMMPS_CXX_HEADERS})
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/${_HEADER})
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/${_HEADER})
|
||||||
add_custom_target(${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER})
|
add_custom_target(${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER})
|
||||||
@ -747,6 +755,14 @@ foreach(_HEADER ${LAMMPS_CXX_HEADERS})
|
|||||||
install(FILES ${LAMMPS_SOURCE_DIR}/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
install(FILES ${LAMMPS_SOURCE_DIR}/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
foreach(_HEADER ${LAMMPS_FMT_HEADERS})
|
||||||
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/fmt/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/fmt/${_HEADER})
|
||||||
|
add_custom_target(fmt_${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt/${_HEADER})
|
||||||
|
add_dependencies(lammps fmt_${_HEADER})
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
install(FILES ${LAMMPS_SOURCE_DIR}/fmt/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps/fmt)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/includes>)
|
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/includes>)
|
||||||
add_library(LAMMPS::lammps ALIAS lammps)
|
add_library(LAMMPS::lammps ALIAS lammps)
|
||||||
get_target_property(LAMMPS_DEFINES lammps INTERFACE_COMPILE_DEFINITIONS)
|
get_target_property(LAMMPS_DEFINES lammps INTERFACE_COMPILE_DEFINITIONS)
|
||||||
@ -854,8 +870,11 @@ if(BUILD_SHARED_LIBS OR PKG_PYTHON)
|
|||||||
find_package(Python COMPONENTS Interpreter)
|
find_package(Python COMPONENTS Interpreter)
|
||||||
endif()
|
endif()
|
||||||
if(Python_EXECUTABLE)
|
if(Python_EXECUTABLE)
|
||||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python)
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python/lib)
|
||||||
install(CODE "execute_process(COMMAND ${Python_EXECUTABLE} setup.py build -b ${CMAKE_BINARY_DIR}/python install --prefix=${CMAKE_INSTALL_PREFIX} --root=\$ENV{DESTDIR}/ WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR})")
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python/src)
|
||||||
|
file(COPY ${LAMMPS_SOURCE_DIR}/version.h DESTINATION ${CMAKE_BINARY_DIR}/python/src)
|
||||||
|
file(COPY ${LAMMPS_PYTHON_DIR}/README ${LAMMPS_PYTHON_DIR}/pyproject.toml ${LAMMPS_PYTHON_DIR}/setup.py ${LAMMPS_PYTHON_DIR}/lammps DESTINATION ${CMAKE_BINARY_DIR}/python/lib)
|
||||||
|
install(CODE "if(\"\$ENV{DESTDIR}\" STREQUAL \"\")\n execute_process(COMMAND ${Python_EXECUTABLE} -m pip install -v ${CMAKE_BINARY_DIR}/python/lib --prefix=${CMAKE_INSTALL_PREFIX})\n else()\n execute_process(COMMAND ${Python_EXECUTABLE} -m pip install -v ${CMAKE_BINARY_DIR}/python/lib --prefix=${CMAKE_INSTALL_PREFIX} --root=\$ENV{DESTDIR})\n endif()")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -966,9 +985,6 @@ if(PKG_GPU)
|
|||||||
endif()
|
endif()
|
||||||
message(STATUS "GPU precision: ${GPU_PREC}")
|
message(STATUS "GPU precision: ${GPU_PREC}")
|
||||||
endif()
|
endif()
|
||||||
if(PKG_KOKKOS)
|
|
||||||
message(STATUS "Kokkos Arch: ${KOKKOS_ARCH}")
|
|
||||||
endif()
|
|
||||||
if(PKG_KSPACE)
|
if(PKG_KSPACE)
|
||||||
message(STATUS "<<< FFT settings >>>
|
message(STATUS "<<< FFT settings >>>
|
||||||
-- Primary FFT lib: ${FFT}")
|
-- Primary FFT lib: ${FFT}")
|
||||||
|
|||||||
@ -1,5 +1,10 @@
|
|||||||
# Find clang-format
|
# Find clang-format
|
||||||
find_program(ClangFormat_EXECUTABLE NAMES clang-format
|
find_program(ClangFormat_EXECUTABLE NAMES clang-format
|
||||||
|
clang-format-15.0
|
||||||
|
clang-format-14.0
|
||||||
|
clang-format-13.0
|
||||||
|
clang-format-12.0
|
||||||
|
clang-format-11.0
|
||||||
clang-format-10.0
|
clang-format-10.0
|
||||||
clang-format-9.0
|
clang-format-9.0
|
||||||
clang-format-8.0
|
clang-format-8.0
|
||||||
@ -14,19 +19,27 @@ if(ClangFormat_EXECUTABLE)
|
|||||||
OUTPUT_VARIABLE clang_format_version
|
OUTPUT_VARIABLE clang_format_version
|
||||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if(clang_format_version MATCHES "^(Ubuntu |)clang-format version .*")
|
||||||
if(clang_format_version MATCHES "^clang-format version .*")
|
# Arch Linux output:
|
||||||
# Arch Linux
|
|
||||||
# clang-format version 10.0.0
|
# clang-format version 10.0.0
|
||||||
|
#
|
||||||
# Ubuntu 18.04 LTS Output
|
# Ubuntu 18.04 LTS output:
|
||||||
# clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
|
# clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
|
||||||
string(REGEX REPLACE "clang-format version ([0-9.]+).*"
|
#
|
||||||
"\\1"
|
# Ubuntu 20.04 LTS output:
|
||||||
|
# clang-format version 10.0.0-4ubuntu1
|
||||||
|
#
|
||||||
|
# Ubuntu 22.04 LTS output:
|
||||||
|
# Ubuntu clang-format version 14.0.0-1ubuntu1
|
||||||
|
#
|
||||||
|
# Fedora 36 output:
|
||||||
|
# clang-format version 14.0.5 (Fedora 14.0.5-1.fc36)
|
||||||
|
string(REGEX REPLACE "^(Ubuntu |)clang-format version ([0-9.]+).*"
|
||||||
|
"\\2"
|
||||||
ClangFormat_VERSION
|
ClangFormat_VERSION
|
||||||
"${clang_format_version}")
|
"${clang_format_version}")
|
||||||
elseif(clang_format_version MATCHES ".*LLVM version .*")
|
elseif(clang_format_version MATCHES ".*LLVM version .*")
|
||||||
# CentOS 7 Output
|
# CentOS 7 output:
|
||||||
# LLVM (http://llvm.org/):
|
# LLVM (http://llvm.org/):
|
||||||
# LLVM version 3.4.2
|
# LLVM version 3.4.2
|
||||||
# Optimized build.
|
# Optimized build.
|
||||||
|
|||||||
@ -22,7 +22,7 @@ endif()
|
|||||||
if(Python_EXECUTABLE)
|
if(Python_EXECUTABLE)
|
||||||
get_filename_component(_python_path ${Python_EXECUTABLE} PATH)
|
get_filename_component(_python_path ${Python_EXECUTABLE} PATH)
|
||||||
find_program(Cythonize_EXECUTABLE
|
find_program(Cythonize_EXECUTABLE
|
||||||
NAMES cythonize3 cythonize cythonize.bat
|
NAMES cythonize-${Python_VERSION_MAJOR}.${Python_VERSION_MINOR} cythonize3 cythonize cythonize.bat
|
||||||
HINTS ${_python_path})
|
HINTS ${_python_path})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,21 @@ function(validate_option name values)
|
|||||||
endif()
|
endif()
|
||||||
endfunction(validate_option)
|
endfunction(validate_option)
|
||||||
|
|
||||||
|
# helper function to check for usable omp.h header
|
||||||
|
function(check_omp_h_include)
|
||||||
|
find_package(OpenMP COMPONENTS CXX QUIET)
|
||||||
|
if(OpenMP_CXX_FOUND)
|
||||||
|
set(CMAKE_REQUIRED_FLAGS ${OpenMP_CXX_FLAGS})
|
||||||
|
set(CMAKE_REQUIRED_INCLUDES ${OpenMP_CXX_INCLUDE_DIRS})
|
||||||
|
set(CMAKE_REQUIRED_LINK_OPTIONS ${OpenMP_CXX_FLAGS})
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES ${OpenMP_CXX_LIBRARIES})
|
||||||
|
check_include_file_cxx(omp.h _have_omp_h)
|
||||||
|
else()
|
||||||
|
set(_have_omp_h FALSE)
|
||||||
|
endif()
|
||||||
|
set(HAVE_OMP_H_INCLUDE ${_have_omp_h} PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
# helper function for getting the most recently modified file or folder from a glob pattern
|
# helper function for getting the most recently modified file or folder from a glob pattern
|
||||||
function(get_newest_file path variable)
|
function(get_newest_file path variable)
|
||||||
file(GLOB _dirs ${path})
|
file(GLOB _dirs ${path})
|
||||||
|
|||||||
@ -15,8 +15,9 @@ if(Kokkos_ENABLE_OPENMP)
|
|||||||
if(NOT BUILD_OMP)
|
if(NOT BUILD_OMP)
|
||||||
message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP")
|
message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP")
|
||||||
else()
|
else()
|
||||||
if(LAMMPS_OMP_COMPAT_LEVEL LESS 4)
|
# NVHPC does not seem to provide a detectable OpenMP version, but is far beyond version 3.1
|
||||||
message(FATAL_ERROR "Compiler must support OpenMP 4.0 or later with Kokkos_ENABLE_OPENMP")
|
if((OpenMP_CXX_VERSION VERSION_LESS 3.1) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC"))
|
||||||
|
message(FATAL_ERROR "Compiler must support OpenMP 3.1 or later with Kokkos_ENABLE_OPENMP")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@ -47,8 +48,8 @@ if(DOWNLOAD_KOKKOS)
|
|||||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
||||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.6.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.7.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||||
set(KOKKOS_MD5 "0ec97fc0c356dd65bd2487defe81a7bf" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
set(KOKKOS_MD5 "84991eca9f066383abe119a5bc7a11c4" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||||
mark_as_advanced(KOKKOS_URL)
|
mark_as_advanced(KOKKOS_URL)
|
||||||
mark_as_advanced(KOKKOS_MD5)
|
mark_as_advanced(KOKKOS_MD5)
|
||||||
ExternalProject_Add(kokkos_build
|
ExternalProject_Add(kokkos_build
|
||||||
@ -72,7 +73,7 @@ if(DOWNLOAD_KOKKOS)
|
|||||||
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
|
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
|
||||||
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
|
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
|
||||||
elseif(EXTERNAL_KOKKOS)
|
elseif(EXTERNAL_KOKKOS)
|
||||||
find_package(Kokkos 3.6.01 REQUIRED CONFIG)
|
find_package(Kokkos 3.7.00 REQUIRED CONFIG)
|
||||||
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
||||||
target_link_libraries(lmp PRIVATE Kokkos::kokkos)
|
target_link_libraries(lmp PRIVATE Kokkos::kokkos)
|
||||||
else()
|
else()
|
||||||
@ -138,6 +139,12 @@ if(PKG_KSPACE)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(PKG_ML-IAP)
|
||||||
|
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/mliap_data_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/mliap_descriptor_so3_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/mliap_model_linear_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/mliap_so3_kokkos.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(PKG_PHONON)
|
if(PKG_PHONON)
|
||||||
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/dynamical_matrix_kokkos.cpp)
|
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/dynamical_matrix_kokkos.cpp)
|
||||||
|
|||||||
@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al
|
|||||||
|
|
||||||
if(DOWNLOAD_MDI)
|
if(DOWNLOAD_MDI)
|
||||||
message(STATUS "MDI download requested - we will build our own")
|
message(STATUS "MDI download requested - we will build our own")
|
||||||
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.11.tar.gz" CACHE STRING "URL for MDI tarball")
|
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.12.tar.gz" CACHE STRING "URL for MDI tarball")
|
||||||
set(MDI_MD5 "3791fe5081405c14aac07d4687f1cc58" CACHE STRING "MD5 checksum for MDI tarball")
|
set(MDI_MD5 "7a222353ae8e03961d5365e6cd48baee" CACHE STRING "MD5 checksum for MDI tarball")
|
||||||
mark_as_advanced(MDI_URL)
|
mark_as_advanced(MDI_URL)
|
||||||
mark_as_advanced(MDI_MD5)
|
mark_as_advanced(MDI_MD5)
|
||||||
enable_language(C)
|
enable_language(C)
|
||||||
@ -49,6 +49,14 @@ if(DOWNLOAD_MDI)
|
|||||||
set(MDI_USE_PYTHON_PLUGINS ON)
|
set(MDI_USE_PYTHON_PLUGINS ON)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
# python plugins are not supported and thus must be always off on Windows
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
unset(Python_Development_FOUND)
|
||||||
|
set(MDI_USE_PYTHON_PLUGINS OFF)
|
||||||
|
if(CMAKE_CROSSCOMPILING)
|
||||||
|
set(CMAKE_INSTALL_LIBDIR lib)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# download/ build MDI library
|
# download/ build MDI library
|
||||||
# always build static library with -fpic
|
# always build static library with -fpic
|
||||||
@ -57,8 +65,9 @@ if(DOWNLOAD_MDI)
|
|||||||
ExternalProject_Add(mdi_build
|
ExternalProject_Add(mdi_build
|
||||||
URL ${MDI_URL}
|
URL ${MDI_URL}
|
||||||
URL_MD5 ${MDI_MD5}
|
URL_MD5 ${MDI_MD5}
|
||||||
|
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext
|
||||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||||
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
|
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
|
||||||
@ -70,22 +79,22 @@ if(DOWNLOAD_MDI)
|
|||||||
-Dplugins=ON
|
-Dplugins=ON
|
||||||
-Dpython_plugins=${MDI_USE_PYTHON_PLUGINS}
|
-Dpython_plugins=${MDI_USE_PYTHON_PLUGINS}
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext/src/mdi_build-build --target install
|
||||||
BUILD_BYPRODUCTS "<BINARY_DIR>/MDI_Library/libmdi.a"
|
BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext/${CMAKE_INSTALL_LIBDIR}/mdi/${CMAKE_STATIC_LIBRARY_PREFIX}mdi${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# where is the compiled library?
|
# where is the compiled library?
|
||||||
ExternalProject_get_property(mdi_build BINARY_DIR)
|
ExternalProject_get_property(mdi_build PREFIX)
|
||||||
set(MDI_BINARY_DIR "${BINARY_DIR}/MDI_Library")
|
|
||||||
# workaround for older CMake versions
|
# workaround for older CMake versions
|
||||||
file(MAKE_DIRECTORY ${MDI_BINARY_DIR})
|
file(MAKE_DIRECTORY ${PREFIX}/${CMAKE_INSTALL_LIBDIR}/mdi)
|
||||||
|
file(MAKE_DIRECTORY ${PREFIX}/include/mdi)
|
||||||
|
|
||||||
# create imported target for the MDI library
|
# create imported target for the MDI library
|
||||||
add_library(LAMMPS::MDI UNKNOWN IMPORTED)
|
add_library(LAMMPS::MDI UNKNOWN IMPORTED)
|
||||||
add_dependencies(LAMMPS::MDI mdi_build)
|
add_dependencies(LAMMPS::MDI mdi_build)
|
||||||
set_target_properties(LAMMPS::MDI PROPERTIES
|
set_target_properties(LAMMPS::MDI PROPERTIES
|
||||||
IMPORTED_LOCATION "${MDI_BINARY_DIR}/libmdi.a"
|
IMPORTED_LOCATION "${PREFIX}/${CMAKE_INSTALL_LIBDIR}/mdi/${CMAKE_STATIC_LIBRARY_PREFIX}mdi${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${MDI_BINARY_DIR}
|
INTERFACE_INCLUDE_DIRECTORIES ${PREFIX}/include/mdi
|
||||||
)
|
)
|
||||||
|
|
||||||
set(MDI_DEP_LIBS "")
|
set(MDI_DEP_LIBS "")
|
||||||
|
|||||||
@ -2,7 +2,13 @@
|
|||||||
set(MLIAP_ENABLE_PYTHON_DEFAULT OFF)
|
set(MLIAP_ENABLE_PYTHON_DEFAULT OFF)
|
||||||
if(PKG_PYTHON)
|
if(PKG_PYTHON)
|
||||||
find_package(Cythonize QUIET)
|
find_package(Cythonize QUIET)
|
||||||
if(Cythonize_FOUND)
|
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
|
||||||
|
find_package(Python COMPONENTS NumPy QUIET)
|
||||||
|
else()
|
||||||
|
# assume we have NumPy
|
||||||
|
set(Python_NumPy_FOUND ON)
|
||||||
|
endif()
|
||||||
|
if(Cythonize_FOUND AND Python_NumPy_FOUND)
|
||||||
set(MLIAP_ENABLE_PYTHON_DEFAULT ON)
|
set(MLIAP_ENABLE_PYTHON_DEFAULT ON)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@ -11,6 +17,9 @@ option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_EN
|
|||||||
|
|
||||||
if(MLIAP_ENABLE_PYTHON)
|
if(MLIAP_ENABLE_PYTHON)
|
||||||
find_package(Cythonize REQUIRED)
|
find_package(Cythonize REQUIRED)
|
||||||
|
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
|
||||||
|
find_package(Python COMPONENTS NumPy REQUIRED)
|
||||||
|
endif()
|
||||||
if(NOT PKG_PYTHON)
|
if(NOT PKG_PYTHON)
|
||||||
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
|
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
|
||||||
endif()
|
endif()
|
||||||
@ -25,16 +34,18 @@ if(MLIAP_ENABLE_PYTHON)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
|
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
|
||||||
set(MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/mliap_model_python_couple.pyx)
|
file(GLOB MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
|
||||||
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_SRC} NAME_WE)
|
|
||||||
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
|
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
|
||||||
|
foreach(MLIAP_CYTHON_FILE ${MLIAP_CYTHON_SRC})
|
||||||
|
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
|
||||||
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_SRC} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_FILE} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||||
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||||
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
|
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
|
||||||
MAIN_DEPENDENCY ${MLIAP_CYTHON_SRC}
|
MAIN_DEPENDENCY ${MLIAP_CYTHON_FILE}
|
||||||
COMMENT "Generating C++ sources with cythonize...")
|
COMMENT "Generating C++ sources with cythonize...")
|
||||||
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
|
|
||||||
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
|
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
|
||||||
|
endforeach()
|
||||||
|
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
|
||||||
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
|
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.10.25.fix2.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
|
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2022.10.15.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
|
||||||
|
|
||||||
set(PACELIB_MD5 "32394d799bc282bb57696c78c456e64f" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
|
set(PACELIB_MD5 "848ad6a6cc79fa82745927001fb1c9b5" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
|
||||||
mark_as_advanced(PACELIB_URL)
|
mark_as_advanced(PACELIB_URL)
|
||||||
mark_as_advanced(PACELIB_MD5)
|
mark_as_advanced(PACELIB_MD5)
|
||||||
|
|
||||||
@ -15,23 +15,9 @@ execute_process(
|
|||||||
)
|
)
|
||||||
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
|
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
|
||||||
|
|
||||||
# enforce building libyaml-cpp as static library and turn off optional features
|
add_subdirectory(${lib-pace} build-pace)
|
||||||
set(YAML_BUILD_SHARED_LIBS OFF)
|
|
||||||
set(YAML_CPP_BUILD_CONTRIB OFF)
|
|
||||||
set(YAML_CPP_BUILD_TOOLS OFF)
|
|
||||||
add_subdirectory(${lib-pace}/yaml-cpp build-yaml-cpp)
|
|
||||||
set(YAML_CPP_INCLUDE_DIR ${lib-pace}/yaml-cpp/include)
|
|
||||||
|
|
||||||
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${lib-pace}/ML-PACE)
|
|
||||||
file(GLOB PACE_EVALUATOR_SOURCES ${lib-pace}/ML-PACE/*.cpp)
|
|
||||||
list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
|
|
||||||
|
|
||||||
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
|
|
||||||
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
|
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
|
||||||
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR} ${YAML_CPP_INCLUDE_DIR})
|
|
||||||
|
|
||||||
|
|
||||||
target_link_libraries(pace PRIVATE yaml-cpp-pace)
|
|
||||||
if(CMAKE_PROJECT_NAME STREQUAL "lammps")
|
if(CMAKE_PROJECT_NAME STREQUAL "lammps")
|
||||||
target_link_libraries(lammps PRIVATE pace)
|
target_link_libraries(lammps PRIVATE pace)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -58,12 +58,12 @@ if(DOWNLOAD_QUIP)
|
|||||||
BUILD_COMMAND env QUIP_ARCH=lammps make libquip
|
BUILD_COMMAND env QUIP_ARCH=lammps make libquip
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
BUILD_IN_SOURCE YES
|
BUILD_IN_SOURCE YES
|
||||||
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/libquip.a
|
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
)
|
)
|
||||||
ExternalProject_get_property(quip_build SOURCE_DIR)
|
ExternalProject_get_property(quip_build SOURCE_DIR)
|
||||||
add_library(LAMMPS::QUIP UNKNOWN IMPORTED)
|
add_library(LAMMPS::QUIP UNKNOWN IMPORTED)
|
||||||
set_target_properties(LAMMPS::QUIP PROPERTIES
|
set_target_properties(LAMMPS::QUIP PROPERTIES
|
||||||
IMPORTED_LOCATION "${SOURCE_DIR}/build/lammps/libquip.a"
|
IMPORTED_LOCATION "${SOURCE_DIR}/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||||
INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}")
|
INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}")
|
||||||
target_link_libraries(lammps PRIVATE LAMMPS::QUIP)
|
target_link_libraries(lammps PRIVATE LAMMPS::QUIP)
|
||||||
add_dependencies(LAMMPS::QUIP quip_build)
|
add_dependencies(LAMMPS::QUIP quip_build)
|
||||||
|
|||||||
@ -47,15 +47,15 @@ if(DOWNLOAD_PLUMED)
|
|||||||
endif()
|
endif()
|
||||||
message(STATUS "PLUMED download requested - we will build our own")
|
message(STATUS "PLUMED download requested - we will build our own")
|
||||||
if(PLUMED_MODE STREQUAL "STATIC")
|
if(PLUMED_MODE STREQUAL "STATIC")
|
||||||
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed.a")
|
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumed${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||||
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX};<INSTALL_DIR>/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumed${CMAKE_SHARED_LIBRARY_SUFFIX};<INSTALL_DIR>/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||||
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
||||||
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumedWrapper.a")
|
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumedWrapper${CMAKE_STATIC_LIBRARY_PREFIX}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.4/plumed-src-2.7.4.tgz" CACHE STRING "URL for PLUMED tarball")
|
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.8.1/plumed-src-2.8.1.tgz" CACHE STRING "URL for PLUMED tarball")
|
||||||
set(PLUMED_MD5 "858e0b6aed173748fc85b6bc8a9dcb3e" CACHE STRING "MD5 checksum of PLUMED tarball")
|
set(PLUMED_MD5 "6bfe72ebdae63dc38a9ca27d9b0e08f8" CACHE STRING "MD5 checksum of PLUMED tarball")
|
||||||
|
|
||||||
mark_as_advanced(PLUMED_URL)
|
mark_as_advanced(PLUMED_URL)
|
||||||
mark_as_advanced(PLUMED_MD5)
|
mark_as_advanced(PLUMED_MD5)
|
||||||
@ -78,12 +78,12 @@ if(DOWNLOAD_PLUMED)
|
|||||||
add_library(LAMMPS::PLUMED UNKNOWN IMPORTED)
|
add_library(LAMMPS::PLUMED UNKNOWN IMPORTED)
|
||||||
add_dependencies(LAMMPS::PLUMED plumed_build)
|
add_dependencies(LAMMPS::PLUMED plumed_build)
|
||||||
if(PLUMED_MODE STREQUAL "STATIC")
|
if(PLUMED_MODE STREQUAL "STATIC")
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed.a INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}")
|
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumed${CMAKE_STATIC_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}")
|
||||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}")
|
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}")
|
||||||
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumedWrapper.a INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}")
|
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumedWrapper${CMAKE_STATIC_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}")
|
||||||
endif()
|
endif()
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
|
||||||
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
|
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
|
||||||
@ -96,7 +96,7 @@ else()
|
|||||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||||
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
|
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
|
||||||
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
|
||||||
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
|
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
|
||||||
endif()
|
endif()
|
||||||
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")
|
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")
|
||||||
|
|||||||
@ -1,4 +1,9 @@
|
|||||||
find_package(VTK REQUIRED NO_MODULE)
|
find_package(VTK REQUIRED NO_MODULE)
|
||||||
include(${VTK_USE_FILE})
|
|
||||||
target_compile_definitions(lammps PRIVATE -DLAMMPS_VTK)
|
target_compile_definitions(lammps PRIVATE -DLAMMPS_VTK)
|
||||||
target_link_libraries(lammps PRIVATE ${VTK_LIBRARIES})
|
if (VTK_MAJOR_VERSION VERSION_LESS 9.0)
|
||||||
|
include(${VTK_USE_FILE})
|
||||||
|
target_link_libraries(lammps PRIVATE ${VTK_LIBRARIES})
|
||||||
|
else()
|
||||||
|
target_link_libraries(lammps PRIVATE VTK::CommonCore VTK::IOCore VTK::CommonDataModel VTK::IOXML VTK::IOLegacy VTK::IOParallelXML)
|
||||||
|
vtk_module_autoinit(TARGETS lammps MODULES VTK::CommonCore VTK::IOCore VTK::CommonDataModel VTK::IOXML VTK::IOLegacy VTK::IOParallelXML)
|
||||||
|
endif()
|
||||||
|
|||||||
@ -28,10 +28,3 @@ set(MPI_CXX "clang++" CACHE STRING "" FORCE)
|
|||||||
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
set(OpenMP_C "clang" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX "clang++" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)
|
|
||||||
|
|||||||
@ -19,11 +19,3 @@ set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Og -g -std=f2003" CACHE STRING "" FORCE)
|
|||||||
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
|
|
||||||
set(OpenMP_C "gcc" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_LIB_NAMES "gomp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX "g++" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_LIB_NAMES "gomp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_omp_LIBRARY "libgomp.so" CACHE PATH "" FORCE)
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# preset that will enable Intel compilers with support for MPI and OpenMP (on Linux boxes)
|
# preset that will enable the classic Intel compilers with support for MPI and OpenMP (on Linux boxes)
|
||||||
|
|
||||||
set(CMAKE_CXX_COMPILER "icpc" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_COMPILER "icpc" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_C_COMPILER "icc" CACHE STRING "" FORCE)
|
set(CMAKE_C_COMPILER "icc" CACHE STRING "" FORCE)
|
||||||
@ -18,11 +18,11 @@ set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
|||||||
|
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
set(OpenMP_C "icc" CACHE STRING "" FORCE)
|
set(OpenMP_C "icc" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_C_FLAGS "-qopenmp" CACHE STRING "" FORCE)
|
set(OpenMP_C_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_CXX "icpc" CACHE STRING "" FORCE)
|
set(OpenMP_CXX "icpc" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_CXX_FLAGS "-qopenmp" CACHE STRING "" FORCE)
|
set(OpenMP_CXX_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_Fortran_FLAGS "-qopenmp" CACHE STRING "" FORCE)
|
set(OpenMP_Fortran_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)
|
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)
|
||||||
|
|
||||||
|
|||||||
9
cmake/presets/nvhpc.cmake
Normal file
9
cmake/presets/nvhpc.cmake
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# preset that will enable Nvidia HPC SDK compilers with support for MPI and OpenMP (on Linux boxes)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_COMPILER "nvc++" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_C_COMPILER "nvc" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_Fortran_COMPILER "nvfortran" CACHE STRING "" FORCE)
|
||||||
|
set(MPI_CXX "nvc++" CACHE STRING "" FORCE)
|
||||||
|
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
||||||
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
|
|
||||||
@ -18,11 +18,11 @@ set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
|||||||
|
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
set(OpenMP_C "icx" CACHE STRING "" FORCE)
|
set(OpenMP_C "icx" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_C_FLAGS "-qopenmp" CACHE STRING "" FORCE)
|
set(OpenMP_C_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_CXX "icpx" CACHE STRING "" FORCE)
|
set(OpenMP_CXX "icpx" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_CXX_FLAGS "-qopenmp" CACHE STRING "" FORCE)
|
set(OpenMP_CXX_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_Fortran_FLAGS "-qopenmp" CACHE STRING "" FORCE)
|
set(OpenMP_Fortran_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
|
||||||
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)
|
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# preset that will restore gcc/g++ with support for MPI and OpenMP (on Linux boxes)
|
# preset that will set gcc/g++ with extra warnings enabled and support for MPI and OpenMP (on Linux boxes)
|
||||||
|
|
||||||
set(CMAKE_CXX_COMPILER "g++" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_COMPILER "g++" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_C_COMPILER "gcc" CACHE STRING "" FORCE)
|
set(CMAKE_C_COMPILER "gcc" CACHE STRING "" FORCE)
|
||||||
@ -17,10 +17,3 @@ set(MPI_Fortran "gfortran" CACHE STRING "" FORCE)
|
|||||||
set(MPI_Fortran_COMPILER "mpifort" CACHE STRING "" FORCE)
|
set(MPI_Fortran_COMPILER "mpifort" CACHE STRING "" FORCE)
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
|
|
||||||
set(OpenMP_C "gcc" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_LIB_NAMES "gomp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX "g++" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_LIB_NAMES "gomp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_omp_LIBRARY "libgomp.so" CACHE PATH "" FORCE)
|
|
||||||
|
|||||||
@ -7,10 +7,3 @@ set(MPI_CXX "pgc++" CACHE STRING "" FORCE)
|
|||||||
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
||||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||||
|
|
||||||
set(OpenMP_C "pgcc" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_FLAGS "-mp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX "pgc++" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_FLAGS "-mp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
|
||||||
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)
|
|
||||||
|
|||||||
16
doc/Makefile
16
doc/Makefile
@ -38,16 +38,14 @@ endif
|
|||||||
# override settings for PIP commands
|
# override settings for PIP commands
|
||||||
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
|
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
|
||||||
|
|
||||||
#SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())') $(shell test -f $(BUILDDIR)/doxygen/xml/run.stamp && printf -- "-E")
|
|
||||||
|
|
||||||
# temporarily disable caching so that the hack for the sphinx-tabs extensions to get proper non-html output works
|
# temporarily disable caching so that the hack for the sphinx-tabs extensions to get proper non-html output works
|
||||||
SPHINXEXTRA = -E -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
|
SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
|
||||||
|
|
||||||
# grab list of sources from doxygen config file.
|
# grab list of sources from doxygen config file.
|
||||||
# we only want to use explicitly listed files.
|
# we only want to use explicitly listed files.
|
||||||
DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//')
|
DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//')
|
||||||
|
|
||||||
.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check char_check xmlgen fasthtml
|
.PHONY: help clean-all clean clean-spelling epub mobi html pdf spelling anchor_check style_check char_check xmlgen fasthtml
|
||||||
|
|
||||||
# ------------------------------------------
|
# ------------------------------------------
|
||||||
|
|
||||||
@ -89,6 +87,8 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
|
|||||||
@$(MAKE) $(MFLAGS) -C graphviz all
|
@$(MAKE) $(MFLAGS) -C graphviz all
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
|
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
|
||||||
|
sphinx-build -E $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
||||||
|
touch $(RSTDIR)/Fortran.rst ;\
|
||||||
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
||||||
ln -sf Manual.html html/index.html;\
|
ln -sf Manual.html html/index.html;\
|
||||||
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
|
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
|
||||||
@ -114,7 +114,9 @@ fasthtml: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
|
|||||||
@mkdir -p fasthtml
|
@mkdir -p fasthtml
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
|
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
|
||||||
sphinx-build -j 4 -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
|
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
|
||||||
|
touch $(RSTDIR)/Fortran.rst ;\
|
||||||
|
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
@rm -rf fasthtml/_sources
|
@rm -rf fasthtml/_sources
|
||||||
@ -144,6 +146,8 @@ epub: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
|
|||||||
@cp src/JPG/*.* epub/JPG
|
@cp src/JPG/*.* epub/JPG
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
|
sphinx-build -E $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
||||||
|
touch $(RSTDIR)/Fortran.rst ;\
|
||||||
sphinx-build $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
sphinx-build $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
||||||
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
|
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
@ -163,6 +167,8 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
|
|||||||
@if [ "$(HAS_PDFLATEX)" == "NO" ] ; then echo "PDFLaTeX or latexmk were not found! Please check README for further instructions" 1>&2; exit 1; fi
|
@if [ "$(HAS_PDFLATEX)" == "NO" ] ; then echo "PDFLaTeX or latexmk were not found! Please check README for further instructions" 1>&2; exit 1; fi
|
||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
|
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
|
||||||
|
sphinx-build -E $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
|
||||||
|
touch $(RSTDIR)/Fortran.rst ;\
|
||||||
sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
|
sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
|
||||||
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
|
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
.TH LAMMPS "1" "15 September 2022" "2022-9-15"
|
.TH LAMMPS "1" "3 November 2022" "2022-11-3"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator. Version 15 September 2022
|
\- Molecular Dynamics Simulator. Version 3 November 2022
|
||||||
|
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B lmp
|
.B lmp
|
||||||
|
|||||||
@ -314,7 +314,7 @@ Bibliography
|
|||||||
Espanol, Revenga, Physical Review E, 67, 026705 (2003).
|
Espanol, Revenga, Physical Review E, 67, 026705 (2003).
|
||||||
|
|
||||||
**(Espanol1997)**
|
**(Espanol1997)**
|
||||||
Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI: 10.1209/epl/i1997-00515-8
|
Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI:10.1209/epl/i1997-00515-8
|
||||||
|
|
||||||
**(Evans and Morriss)**
|
**(Evans and Morriss)**
|
||||||
Evans and Morriss, Phys Rev A, 30, 1528 (1984).
|
Evans and Morriss, Phys Rev A, 30, 1528 (1984).
|
||||||
@ -368,7 +368,7 @@ Bibliography
|
|||||||
Frenkel and Smit, Understanding Molecular Simulation, Academic Press, London, 2002.
|
Frenkel and Smit, Understanding Molecular Simulation, Academic Press, London, 2002.
|
||||||
|
|
||||||
**(GLE4MD)**
|
**(GLE4MD)**
|
||||||
`http://gle4md.org/ <http://gle4md.org/>`_
|
`https://gle4md.org/ <https://gle4md.org/>`_
|
||||||
|
|
||||||
**(Gao)**
|
**(Gao)**
|
||||||
Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504.
|
Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504.
|
||||||
@ -401,13 +401,13 @@ Bibliography
|
|||||||
Hayre, and Farago, Comp Phys Comm, 185, 524 (2014)
|
Hayre, and Farago, Comp Phys Comm, 185, 524 (2014)
|
||||||
|
|
||||||
**(Groot)**
|
**(Groot)**
|
||||||
Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI: 10.1063/1.474784
|
Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI:10.1063/1.474784
|
||||||
|
|
||||||
**(Guenole)**
|
**(Guenole)**
|
||||||
Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek, Comput Mater Sci, 175, 109584 (2020).
|
Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek, Comput Mater Sci, 175, 109584 (2020).
|
||||||
|
|
||||||
**(Gullet)**
|
**(Gullet)**
|
||||||
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003).
|
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395
|
||||||
|
|
||||||
**(Guo)**
|
**(Guo)**
|
||||||
Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996).
|
Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996).
|
||||||
@ -461,7 +461,7 @@ Bibliography
|
|||||||
Hunt, Mol Simul, 42, 347 (2016).
|
Hunt, Mol Simul, 42, 347 (2016).
|
||||||
|
|
||||||
**(IPI)**
|
**(IPI)**
|
||||||
`http://epfl-cosmo.github.io/gle4md/index.html?page=ipi <http://epfl-cosmo.github.io/gle4md/index.html?page=ipi>`_
|
`https://ipi-code.org/ <https://ipi-code.org/>`
|
||||||
|
|
||||||
**(IPI-CPC)**
|
**(IPI-CPC)**
|
||||||
Ceriotti, More and Manolopoulos, Comp Phys Comm, 185, 1019-1026 (2014).
|
Ceriotti, More and Manolopoulos, Comp Phys Comm, 185, 1019-1026 (2014).
|
||||||
@ -605,16 +605,16 @@ Bibliography
|
|||||||
I.\ Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016).
|
I.\ Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016).
|
||||||
|
|
||||||
**(Li2013_POF)**
|
**(Li2013_POF)**
|
||||||
Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013). DOI: 10.1063/1.4812366.
|
Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013). DOI:10.1063/1.4812366.
|
||||||
|
|
||||||
**(Li2014_JCP)**
|
**(Li2014_JCP)**
|
||||||
Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265: 113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003.
|
Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265: 113-127 (2014). DOI:10.1016/j.jcp.2014.02.003.
|
||||||
|
|
||||||
**(Li2015_CC)**
|
**(Li2015_CC)**
|
||||||
Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040 (2015). DOI: 10.1039/C5CC01684C.
|
Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040 (2015). DOI:10.1039/C5CC01684C.
|
||||||
|
|
||||||
**(Li2015_JCP)**
|
**(Li2015_JCP)**
|
||||||
Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143: 014101 (2015). DOI: 10.1063/1.4923254.
|
Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143: 014101 (2015). DOI:10.1063/1.4923254.
|
||||||
|
|
||||||
**(Lisal)**
|
**(Lisal)**
|
||||||
M.\ Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative particle dynamics at isothermal, isobaric, isoenergetic, and isoenthalpic conditions using Shardlow-like splitting algorithms.",
|
M.\ Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative particle dynamics at isothermal, isobaric, isoenergetic, and isoenthalpic conditions using Shardlow-like splitting algorithms.",
|
||||||
@ -733,8 +733,8 @@ Bibliography
|
|||||||
**(Mishin)**
|
**(Mishin)**
|
||||||
Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029 (2005).
|
Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029 (2005).
|
||||||
|
|
||||||
**(Mitchell and Finchham)**
|
**(Mitchell and Fincham)**
|
||||||
Mitchell, Finchham, J Phys Condensed Matter, 5, 1031-1038 (1993).
|
Mitchell, Fincham, J Phys Condensed Matter, 5, 1031-1038 (1993).
|
||||||
|
|
||||||
**(Mitchell2011)**
|
**(Mitchell2011)**
|
||||||
Mitchell. A non-local, ordinary-state-based viscoelasticity model for peridynamics. Sandia National Lab Report, 8064:1-28 (2011).
|
Mitchell. A non-local, ordinary-state-based viscoelasticity model for peridynamics. Sandia National Lab Report, 8064:1-28 (2011).
|
||||||
@ -875,7 +875,7 @@ Bibliography
|
|||||||
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
|
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
|
||||||
|
|
||||||
**(Paquay)**
|
**(Paquay)**
|
||||||
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_.
|
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.
|
||||||
|
|
||||||
**(Park)**
|
**(Park)**
|
||||||
Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004)
|
Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004)
|
||||||
|
|||||||
@ -140,13 +140,23 @@ of the LAMMPS project on GitHub.
|
|||||||
The unit testing facility is integrated into the CMake build process
|
The unit testing facility is integrated into the CMake build process
|
||||||
of the LAMMPS source code distribution itself. It can be enabled by
|
of the LAMMPS source code distribution itself. It can be enabled by
|
||||||
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
|
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
|
||||||
It requires the `YAML <http://pyyaml.org/>`_ library and development
|
It requires the `YAML <https://pyyaml.org/>`_ library and development
|
||||||
headers (if those are not found locally a recent version will be
|
headers (if those are not found locally a recent version will be
|
||||||
downloaded and compiled along with LAMMPS and the test program) to
|
downloaded and compiled along with LAMMPS and the test program) to
|
||||||
compile and will download and compile a specific recent version of the
|
compile and will download and compile a specific recent version of the
|
||||||
`Googletest <https://github.com/google/googletest/>`_ C++ test framework
|
`Googletest <https://github.com/google/googletest/>`_ C++ test framework
|
||||||
for implementing the tests.
|
for implementing the tests.
|
||||||
|
|
||||||
|
.. admonition:: Software version requirements for testing
|
||||||
|
:class: note
|
||||||
|
|
||||||
|
The compiler and library version requirements for the testing
|
||||||
|
framework are more strict than for the main part of LAMMPS. For
|
||||||
|
example the default GNU C++ and Fortran compilers of RHEL/CentOS 7.x
|
||||||
|
(version 4.8.x) are not sufficient. The CMake configuration will try
|
||||||
|
to detect compatible versions and either skip incompatible tests or
|
||||||
|
stop with an error.
|
||||||
|
|
||||||
After compilation is complete, the unit testing is started in the build
|
After compilation is complete, the unit testing is started in the build
|
||||||
folder using the ``ctest`` command, which is part of the CMake software.
|
folder using the ``ctest`` command, which is part of the CMake software.
|
||||||
The output of this command will be looking something like this::
|
The output of this command will be looking something like this::
|
||||||
|
|||||||
@ -234,7 +234,7 @@ LAMMPS code. This also applies to the ``-DLAMMPS_BIGBIG``\ ,
|
|||||||
Makefile you use.
|
Makefile you use.
|
||||||
|
|
||||||
You can also build the library in one step from the ``lammps/src`` dir,
|
You can also build the library in one step from the ``lammps/src`` dir,
|
||||||
using a command like these, which simply invoke the ``lib/gpu/Install.py``
|
using a command like these, which simply invokes the ``lib/gpu/Install.py``
|
||||||
script with the specified args:
|
script with the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -314,7 +314,7 @@ detailed information is available at:
|
|||||||
|
|
||||||
In addition to installing the KIM API, it is also necessary to install the
|
In addition to installing the KIM API, it is also necessary to install the
|
||||||
library of KIM models (interatomic potentials).
|
library of KIM models (interatomic potentials).
|
||||||
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_ to
|
See `Obtaining KIM Models <https://openkim.org/doc/usage/obtaining-models>`_ to
|
||||||
learn how to install a pre-build binary of the OpenKIM Repository of Models.
|
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 all KIM models here: https://openkim.org/browse/models
|
||||||
|
|
||||||
@ -350,7 +350,7 @@ minutes to hours) to build. Of course you only need to do that once.)
|
|||||||
You can download and build the KIM library manually if you prefer;
|
You can download and build the KIM library manually if you prefer;
|
||||||
follow the instructions in ``lib/kim/README``. You can also do
|
follow the instructions in ``lib/kim/README``. You can also do
|
||||||
this in one step from the lammps/src directory, using a command like
|
this in one step from the lammps/src directory, using a command like
|
||||||
these, which simply invoke the ``lib/kim/Install.py`` script with
|
these, which simply invokes the ``lib/kim/Install.py`` script with
|
||||||
the specified args.
|
the specified args.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -432,7 +432,7 @@ Enabling the extra unit tests have some requirements,
|
|||||||
``EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000``,
|
``EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000``,
|
||||||
``EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005``, and
|
``EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005``, and
|
||||||
``LennardJones612_UniversalShifted__MO_959249795837_003`` KIM models.
|
``LennardJones612_UniversalShifted__MO_959249795837_003`` KIM models.
|
||||||
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_
|
See `Obtaining KIM Models <https://openkim.org/doc/usage/obtaining-models>`_
|
||||||
to learn how to install a pre-built binary of the OpenKIM Repository of
|
to learn how to install a pre-built binary of the OpenKIM Repository of
|
||||||
Models or see
|
Models or see
|
||||||
`Installing KIM Models <https://openkim.org/doc/usage/obtaining-models/#installing_models>`_
|
`Installing KIM Models <https://openkim.org/doc/usage/obtaining-models/#installing_models>`_
|
||||||
@ -483,6 +483,9 @@ They must be specified in uppercase.
|
|||||||
* - **Arch-ID**
|
* - **Arch-ID**
|
||||||
- **HOST or GPU**
|
- **HOST or GPU**
|
||||||
- **Description**
|
- **Description**
|
||||||
|
* - NATIVE
|
||||||
|
- HOST
|
||||||
|
- Local machine
|
||||||
* - AMDAVX
|
* - AMDAVX
|
||||||
- HOST
|
- HOST
|
||||||
- AMD 64-bit x86 CPU (AVX 1)
|
- AMD 64-bit x86 CPU (AVX 1)
|
||||||
@ -522,9 +525,21 @@ They must be specified in uppercase.
|
|||||||
* - BDW
|
* - BDW
|
||||||
- HOST
|
- HOST
|
||||||
- Intel Broadwell Xeon E-class CPU (AVX 2 + transactional mem)
|
- Intel Broadwell Xeon E-class CPU (AVX 2 + transactional mem)
|
||||||
|
* - SKL
|
||||||
|
- HOST
|
||||||
|
- Intel Skylake Client CPU
|
||||||
* - SKX
|
* - SKX
|
||||||
- HOST
|
- HOST
|
||||||
- Intel Sky Lake Xeon E-class HPC CPU (AVX512 + transactional mem)
|
- Intel Skylake Xeon Server CPU (AVX512)
|
||||||
|
* - ICL
|
||||||
|
- HOST
|
||||||
|
- Intel Ice Lake Client CPU (AVX512)
|
||||||
|
* - ICX
|
||||||
|
- HOST
|
||||||
|
- Intel Ice Lake Xeon Server CPU (AVX512)
|
||||||
|
* - SPR
|
||||||
|
- HOST
|
||||||
|
- Intel Sapphire Rapids Xeon Server CPU (AVX512)
|
||||||
* - KNC
|
* - KNC
|
||||||
- HOST
|
- HOST
|
||||||
- Intel Knights Corner Xeon Phi
|
- Intel Knights Corner Xeon Phi
|
||||||
@ -596,7 +611,10 @@ They must be specified in uppercase.
|
|||||||
- AMD GPU MI100 GFX908
|
- AMD GPU MI100 GFX908
|
||||||
* - VEGA90A
|
* - VEGA90A
|
||||||
- GPU
|
- GPU
|
||||||
- AMD GPU
|
- AMD GPU MI200 GFX90A
|
||||||
|
* - INTEL_GEN
|
||||||
|
- GPU
|
||||||
|
- SPIR64-based devices, e.g. Intel GPUs, using JIT
|
||||||
* - INTEL_DG1
|
* - INTEL_DG1
|
||||||
- GPU
|
- GPU
|
||||||
- Intel Iris XeMAX GPU
|
- Intel Iris XeMAX GPU
|
||||||
@ -611,9 +629,12 @@ They must be specified in uppercase.
|
|||||||
- Intel GPU Gen12LP
|
- Intel GPU Gen12LP
|
||||||
* - INTEL_XEHP
|
* - INTEL_XEHP
|
||||||
- GPU
|
- GPU
|
||||||
- Intel GPUs Xe-HP
|
- Intel GPU Xe-HP
|
||||||
|
* - INTEL_PVC
|
||||||
|
- GPU
|
||||||
|
- Intel GPU Ponte Vecchio
|
||||||
|
|
||||||
This list was last updated for version 3.5.0 of the Kokkos library.
|
This list was last updated for version 3.7.0 of the Kokkos library.
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
|
|
||||||
@ -933,7 +954,7 @@ more details.
|
|||||||
You can download and build the MS-CG library manually if you
|
You can download and build the MS-CG library manually if you
|
||||||
prefer; follow the instructions in ``lib/mscg/README``\ . You can
|
prefer; follow the instructions in ``lib/mscg/README``\ . You can
|
||||||
also do it in one step from the ``lammps/src`` dir, using a
|
also do it in one step from the ``lammps/src`` dir, using a
|
||||||
command like these, which simply invoke the
|
command like these, which simply invokes the
|
||||||
``lib/mscg/Install.py`` script with the specified args:
|
``lib/mscg/Install.py`` script with the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -990,7 +1011,7 @@ POEMS package
|
|||||||
``lib/poems``\ . You can do this manually if you prefer; follow
|
``lib/poems``\ . You can do this manually if you prefer; follow
|
||||||
the instructions in ``lib/poems/README``\ . You can also do it in
|
the instructions in ``lib/poems/README``\ . You can also do it in
|
||||||
one step from the ``lammps/src`` dir, using a command like these,
|
one step from the ``lammps/src`` dir, using a command like these,
|
||||||
which simply invoke the ``lib/poems/Install.py`` script with the
|
which simply invokes the ``lib/poems/Install.py`` script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1053,7 +1074,7 @@ VORONOI package
|
|||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
To build with this package, you must download and build the
|
To build with this package, you must download and build the
|
||||||
`Voro++ library <http://math.lbl.gov/voro++>`_ or install a
|
`Voro++ library <https://math.lbl.gov/voro++>`_ or install a
|
||||||
binary package provided by your operating system.
|
binary package provided by your operating system.
|
||||||
|
|
||||||
.. tabs::
|
.. tabs::
|
||||||
@ -1079,7 +1100,7 @@ binary package provided by your operating system.
|
|||||||
You can download and build the Voro++ library manually if you
|
You can download and build the Voro++ library manually if you
|
||||||
prefer; follow the instructions in ``lib/voronoi/README``. You
|
prefer; follow the instructions in ``lib/voronoi/README``. You
|
||||||
can also do it in one step from the ``lammps/src`` dir, using a
|
can also do it in one step from the ``lammps/src`` dir, using a
|
||||||
command like these, which simply invoke the
|
command like these, which simply invokes the
|
||||||
``lib/voronoi/Install.py`` script with the specified args:
|
``lib/voronoi/Install.py`` script with the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1158,7 +1179,7 @@ The ATC package requires the MANYBODY package also be installed.
|
|||||||
``lib/atc``. You can do this manually if you prefer; follow the
|
``lib/atc``. You can do this manually if you prefer; follow the
|
||||||
instructions in ``lib/atc/README``. You can also do it in one
|
instructions in ``lib/atc/README``. You can also do it in one
|
||||||
step from the ``lammps/src`` dir, using a command like these,
|
step from the ``lammps/src`` dir, using a command like these,
|
||||||
which simply invoke the ``lib/atc/Install.py`` script with the
|
which simply invokes the ``lib/atc/Install.py`` script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1209,7 +1230,7 @@ AWPMD package
|
|||||||
``lib/awpmd``. You can do this manually if you prefer; follow the
|
``lib/awpmd``. You can do this manually if you prefer; follow the
|
||||||
instructions in ``lib/awpmd/README``. You can also do it in one
|
instructions in ``lib/awpmd/README``. You can also do it in one
|
||||||
step from the ``lammps/src`` dir, using a command like these,
|
step from the ``lammps/src`` dir, using a command like these,
|
||||||
which simply invoke the ``lib/awpmd/Install.py`` script with the
|
which simply invokes the ``lib/awpmd/Install.py`` script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1272,7 +1293,7 @@ be built for the most part with all major versions of the C++ language.
|
|||||||
|
|
||||||
In general, it is safer to use build setting consistent with the
|
In general, it is safer to use build setting consistent with the
|
||||||
rest of LAMMPS. This is best carried out from the LAMMPS src
|
rest of LAMMPS. This is best carried out from the LAMMPS src
|
||||||
directory using a command like these, which simply invoke the
|
directory using a command like these, which simply invokes the
|
||||||
``lib/colvars/Install.py`` script with the specified args:
|
``lib/colvars/Install.py`` script with the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1313,20 +1334,30 @@ This package depends on the KSPACE package.
|
|||||||
|
|
||||||
.. tab:: CMake build
|
.. tab:: CMake build
|
||||||
|
|
||||||
No additional settings are needed besides ``-D PKG_KSPACE=yes`` and ``-D
|
No additional settings are needed besides ``-D PKG_KSPACE=yes`` and
|
||||||
PKG_ELECTRODE=yes``.
|
``-D PKG_ELECTRODE=yes``.
|
||||||
|
|
||||||
.. tab:: Traditional make
|
.. tab:: Traditional make
|
||||||
|
|
||||||
The package is activated with ``make yes-KSPACE`` and ``make
|
Before building LAMMPS, you must configure the ELECTRODE support
|
||||||
yes-ELECTRODE``
|
libraries and settings in ``lib/electrode``. You can do this
|
||||||
|
manually, if you prefer, or do it in one step from the
|
||||||
|
``lammps/src`` dir, using a command like these, which simply
|
||||||
|
invokes the ``lib/electrode/Install.py`` script with the specified
|
||||||
|
args:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ make lib-electrode # print help message
|
||||||
|
$ make lib-electrode args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
|
||||||
|
$ make lib-electrode args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||||
|
|
||||||
|
|
||||||
Note that the ``Makefile.lammps`` file has settings for the BLAS and
|
Note that the ``Makefile.lammps`` file has settings for the BLAS
|
||||||
LAPACK linear algebra libraries. As explained in ``lib/awpmd/README``
|
and LAPACK linear algebra libraries. These can either exist on
|
||||||
these can either exist on your system, or you can use the files provided
|
your system, or you can use the files provided in ``lib/linalg``.
|
||||||
in ``lib/linalg``. In the latter case you also need to build the library
|
In the latter case you also need to build the library in
|
||||||
in ``lib/linalg`` with a command like these:
|
``lib/linalg`` with a command like these:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
@ -1335,6 +1366,9 @@ This package depends on the KSPACE package.
|
|||||||
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||||
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
|
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
|
||||||
|
|
||||||
|
The package itself is activated with ``make yes-KSPACE`` and
|
||||||
|
``make yes-ELECTRODE``
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
.. _ml-pace:
|
.. _ml-pace:
|
||||||
@ -1534,7 +1568,7 @@ the HDF5 library.
|
|||||||
``lib/h5md``. You can do this manually if you prefer; follow the
|
``lib/h5md``. You can do this manually if you prefer; follow the
|
||||||
instructions in ``lib/h5md/README``. You can also do it in one
|
instructions in ``lib/h5md/README``. You can also do it in one
|
||||||
step from the ``lammps/src`` dir, using a command like these,
|
step from the ``lammps/src`` dir, using a command like these,
|
||||||
which simply invoke the ``lib/h5md/Install.py`` script with the
|
which simply invokes the ``lib/h5md/Install.py`` script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1590,7 +1624,7 @@ details please see ``lib/hdnnp/README`` and the `n2p2 build documentation
|
|||||||
You can download and build the *n2p2* library manually if you prefer;
|
You can download and build the *n2p2* library manually if you prefer;
|
||||||
follow the instructions in ``lib/hdnnp/README``\ . You can also do it in
|
follow the instructions in ``lib/hdnnp/README``\ . You can also do it in
|
||||||
one step from the ``lammps/src`` dir, using a command like these, which
|
one step from the ``lammps/src`` dir, using a command like these, which
|
||||||
simply invoke the ``lib/hdnnp/Install.py`` script with the specified args:
|
simply invokes the ``lib/hdnnp/Install.py`` script with the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
@ -1727,7 +1761,7 @@ they will be downloaded the first time this package is installed.
|
|||||||
Before building LAMMPS, you must build the *mesont* library in
|
Before building LAMMPS, you must build the *mesont* library in
|
||||||
``lib/mesont``\ . You can also do it in one step from the
|
``lib/mesont``\ . You can also do it in one step from the
|
||||||
``lammps/src`` dir, using a command like these, which simply
|
``lammps/src`` dir, using a command like these, which simply
|
||||||
invoke the ``lib/mesont/Install.py`` script with the specified
|
invokes the ``lib/mesont/Install.py`` script with the specified
|
||||||
args:
|
args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1896,7 +1930,7 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
|
|||||||
``lib/qmmm``. You can do this manually if you prefer; follow the
|
``lib/qmmm``. You can do this manually if you prefer; follow the
|
||||||
first two steps explained in ``lib/qmmm/README``. You can also do
|
first two steps explained in ``lib/qmmm/README``. You can also do
|
||||||
it in one step from the ``lammps/src`` dir, using a command like
|
it in one step from the ``lammps/src`` dir, using a command like
|
||||||
these, which simply invoke the ``lib/qmmm/Install.py`` script with
|
these, which simply invokes the ``lib/qmmm/Install.py`` script with
|
||||||
the specified args:
|
the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -2004,7 +2038,7 @@ To build with this package, you must download and build the
|
|||||||
You can download and build the ScaFaCoS library manually if you
|
You can download and build the ScaFaCoS library manually if you
|
||||||
prefer; follow the instructions in ``lib/scafacos/README``. You
|
prefer; follow the instructions in ``lib/scafacos/README``. You
|
||||||
can also do it in one step from the ``lammps/src`` dir, using a
|
can also do it in one step from the ``lammps/src`` dir, using a
|
||||||
command like these, which simply invoke the
|
command like these, which simply invokes the
|
||||||
``lib/scafacos/Install.py`` script with the specified args:
|
``lib/scafacos/Install.py`` script with the specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -2048,7 +2082,7 @@ Eigen3 is a template library, so you do not need to build it.
|
|||||||
You can download the Eigen3 library manually if you prefer; follow
|
You can download the Eigen3 library manually if you prefer; follow
|
||||||
the instructions in ``lib/smd/README``. You can also do it in one
|
the instructions in ``lib/smd/README``. You can also do it in one
|
||||||
step from the ``lammps/src`` dir, using a command like these,
|
step from the ``lammps/src`` dir, using a command like these,
|
||||||
which simply invoke the ``lib/smd/Install.py`` script with the
|
which simply invokes the ``lib/smd/Install.py`` script with the
|
||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|||||||
@ -176,7 +176,7 @@ math expressions transparently into embedded images.
|
|||||||
For converting the generated ePUB file to a MOBI format file (for e-book
|
For converting the generated ePUB file to a MOBI format file (for e-book
|
||||||
readers, like Kindle, that cannot read ePUB), you also need to have the
|
readers, like Kindle, that cannot read ePUB), you also need to have the
|
||||||
``ebook-convert`` tool from the "calibre" software
|
``ebook-convert`` tool from the "calibre" software
|
||||||
installed. `http://calibre-ebook.com/ <http://calibre-ebook.com/>`_
|
installed. `https://calibre-ebook.com/ <https://calibre-ebook.com/>`_
|
||||||
Typing ``make mobi`` will first create the ePUB file and then convert
|
Typing ``make mobi`` will first create the ePUB file and then convert
|
||||||
it. On the Kindle readers in particular, you also have support for PDF
|
it. On the Kindle readers in particular, you also have support for PDF
|
||||||
files, so you could download and view the PDF version as an alternative.
|
files, so you could download and view the PDF version as an alternative.
|
||||||
@ -216,9 +216,20 @@ be multiple tests run automatically:
|
|||||||
- A test that only standard, printable ASCII text characters are used.
|
- A test that only standard, printable ASCII text characters are used.
|
||||||
This runs the command ``env LC_ALL=C grep -n '[^ -~]' src/*.rst`` and
|
This runs the command ``env LC_ALL=C grep -n '[^ -~]' src/*.rst`` and
|
||||||
thus prints all offending lines with filename and line number
|
thus prints all offending lines with filename and line number
|
||||||
prepended to the screen. Special characters like the Angstrom
|
prepended to the screen. Special characters like Greek letters
|
||||||
:math:`\mathrm{\mathring{A}}` should be typeset with embedded math
|
(:math:`\alpha~~\sigma~~\epsilon`), super- or subscripts
|
||||||
(like this ``:math:`\mathrm{\mathring{A}}```\ ).
|
(:math:`x^2~~\mathrm{U}_{LJ}`), mathematical expressions
|
||||||
|
(:math:`\frac{1}{2}\mathrm{N}~~x\to\infty`), or the Angstrom symbol
|
||||||
|
(:math:`\AA`) should be typeset with embedded LaTeX (like this
|
||||||
|
``:math:`\alpha \sigma \epsilon```, ``:math:`x^2 \mathrm{E}_{LJ}```,
|
||||||
|
``:math:`\frac{1}{2}\mathrm{N} x\to\infty```, or ``:math:`\AA```\ ).
|
||||||
|
|
||||||
|
- Embedded LaTeX is rendered in HTML output with `MathJax
|
||||||
|
<https://www.mathjax.org/>`_ and in PDF output by passing the embedded
|
||||||
|
text to LaTeX. Some care has to be taken, though, since there are
|
||||||
|
limitations which macros and features can be used in either mode, so
|
||||||
|
it is recommended to always check whether any new or changed
|
||||||
|
documentation does translate and render correctly with either output.
|
||||||
|
|
||||||
- A test whether all styles are documented and listed in their
|
- A test whether all styles are documented and listed in their
|
||||||
respective overview pages. A typical output with warnings looks like this:
|
respective overview pages. A typical output with warnings looks like this:
|
||||||
|
|||||||
@ -111,26 +111,25 @@ LAMMPS can use them if they are available on your system.
|
|||||||
files in its default search path. You must specify ``FFT_LIB``
|
files in its default search path. You must specify ``FFT_LIB``
|
||||||
with the appropriate FFT libraries to include in the link.
|
with the appropriate FFT libraries to include in the link.
|
||||||
|
|
||||||
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
|
The `KISS FFT library <https://github.com/mborgerding/kissfft>`_ is
|
||||||
distribution. It is portable across all platforms. Depending on the size
|
included in the LAMMPS distribution. It is portable across all
|
||||||
of the FFTs and the number of processors used, the other libraries listed
|
platforms. Depending on the size of the FFTs and the number of
|
||||||
here can be faster.
|
processors used, the other libraries listed here can be faster.
|
||||||
|
|
||||||
However, note that long-range Coulombics are only a portion of the
|
However, note that long-range Coulombics are only a portion of the
|
||||||
per-timestep CPU cost, FFTs are only a portion of long-range
|
per-timestep CPU cost, FFTs are only a portion of long-range Coulombics,
|
||||||
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
|
and 1d FFTs are only a portion of the FFT cost (parallel communication
|
||||||
communication can be costly). A breakdown of these timings is printed
|
can be costly). A breakdown of these timings is printed to the screen
|
||||||
to the screen at the end of a run when using the
|
at the end of a run when using the :doc:`kspace_style pppm
|
||||||
:doc:`kspace_style pppm <kspace_style>` command. The
|
<kspace_style>` command. The :doc:`Screen and logfile output
|
||||||
:doc:`Screen and logfile output <Run_output>`
|
<Run_output>` page gives more details. A more detailed (and time
|
||||||
page gives more details. A more detailed (and time consuming)
|
consuming) report of the FFT performance is generated with the
|
||||||
report of the FFT performance is generated with the
|
|
||||||
:doc:`kspace_modify fftbench yes <kspace_modify>` command.
|
:doc:`kspace_modify fftbench yes <kspace_modify>` command.
|
||||||
|
|
||||||
FFTW is a fast, portable FFT library that should also work on any
|
FFTW is a fast, portable FFT library that should also work on any
|
||||||
platform and can be faster than the KISS FFT library. You can
|
platform and can be faster than the KISS FFT library. You can download
|
||||||
download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
|
it from `www.fftw.org <https://www.fftw.org>`_. LAMMPS requires version
|
||||||
version 3.X; the legacy version 2.1.X is no longer supported.
|
3.X; the legacy version 2.1.X is no longer supported.
|
||||||
|
|
||||||
Building FFTW for your box should be as simple as ``./configure; make;
|
Building FFTW for your box should be as simple as ``./configure; make;
|
||||||
make install``. The install command typically requires root privileges
|
make install``. The install command typically requires root privileges
|
||||||
|
|||||||
@ -205,7 +205,7 @@ OPT.
|
|||||||
* :doc:`mesont/tpm <pair_mesont_tpm>`
|
* :doc:`mesont/tpm <pair_mesont_tpm>`
|
||||||
* :doc:`mgpt <pair_mgpt>`
|
* :doc:`mgpt <pair_mgpt>`
|
||||||
* :doc:`mie/cut (g) <pair_mie>`
|
* :doc:`mie/cut (g) <pair_mie>`
|
||||||
* :doc:`mliap <pair_mliap>`
|
* :doc:`mliap (k) <pair_mliap>`
|
||||||
* :doc:`mm3/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>`
|
* :doc:`mm3/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>`
|
||||||
* :doc:`momb <pair_momb>`
|
* :doc:`momb <pair_momb>`
|
||||||
* :doc:`morse (gkot) <pair_morse>`
|
* :doc:`morse (gkot) <pair_morse>`
|
||||||
@ -236,6 +236,7 @@ OPT.
|
|||||||
* :doc:`oxrna2/xstk <pair_oxrna2>`
|
* :doc:`oxrna2/xstk <pair_oxrna2>`
|
||||||
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
|
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
|
||||||
* :doc:`pace (k) <pair_pace>`
|
* :doc:`pace (k) <pair_pace>`
|
||||||
|
* :doc:`pace/extrapolation <pair_pace>`
|
||||||
* :doc:`pod <pair_pod>`
|
* :doc:`pod <pair_pod>`
|
||||||
* :doc:`peri/eps <pair_peri>`
|
* :doc:`peri/eps <pair_peri>`
|
||||||
* :doc:`peri/lps (o) <pair_peri>`
|
* :doc:`peri/lps (o) <pair_peri>`
|
||||||
@ -295,6 +296,7 @@ OPT.
|
|||||||
* :doc:`vashishta (gko) <pair_vashishta>`
|
* :doc:`vashishta (gko) <pair_vashishta>`
|
||||||
* :doc:`vashishta/table (o) <pair_vashishta>`
|
* :doc:`vashishta/table (o) <pair_vashishta>`
|
||||||
* :doc:`wf/cut <pair_wf_cut>`
|
* :doc:`wf/cut <pair_wf_cut>`
|
||||||
|
* :doc:`ylz <pair_ylz>`
|
||||||
* :doc:`yukawa (gko) <pair_yukawa>`
|
* :doc:`yukawa (gko) <pair_yukawa>`
|
||||||
* :doc:`yukawa/colloid (go) <pair_yukawa_colloid>`
|
* :doc:`yukawa/colloid (go) <pair_yukawa_colloid>`
|
||||||
* :doc:`zbl (gko) <pair_zbl>`
|
* :doc:`zbl (gko) <pair_zbl>`
|
||||||
|
|||||||
@ -7,7 +7,7 @@ source files provided as a supplement to a publication) that are written
|
|||||||
for an older version of LAMMPS and thus need to be updated to be
|
for an older version of LAMMPS and thus need to be updated to be
|
||||||
compatible with the current version of LAMMPS. Due to the active
|
compatible with the current version of LAMMPS. Due to the active
|
||||||
development of LAMMPS it is likely to always be incomplete. Please
|
development of LAMMPS it is likely to always be incomplete. Please
|
||||||
contact developer@lammps.org in case you run across an issue that is not
|
contact developers@lammps.org in case you run across an issue that is not
|
||||||
(yet) listed here. Please also review the latest information about the
|
(yet) listed here. Please also review the latest information about the
|
||||||
LAMMPS :doc:`programming style conventions <Modify_style>`, especially
|
LAMMPS :doc:`programming style conventions <Modify_style>`, especially
|
||||||
if you are considering to submit the updated version for inclusion into
|
if you are considering to submit the updated version for inclusion into
|
||||||
|
|||||||
@ -75,7 +75,7 @@ Using the GDB debugger to get a stack trace
|
|||||||
There are two options to use the GDB debugger for identifying the origin
|
There are two options to use the GDB debugger for identifying the origin
|
||||||
of the segmentation fault or similar crash. The GDB debugger has many
|
of the segmentation fault or similar crash. The GDB debugger has many
|
||||||
more features and options, as can be seen for example its `online
|
more features and options, as can be seen for example its `online
|
||||||
documentation <http://sourceware.org/gdb/current/onlinedocs/gdb/>`_.
|
documentation <https://sourceware.org/gdb/current/onlinedocs/gdb/>`_.
|
||||||
|
|
||||||
Run LAMMPS from within the debugger
|
Run LAMMPS from within the debugger
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|||||||
2069
doc/src/Fortran.rst
2069
doc/src/Fortran.rst
File diff suppressed because it is too large
Load Diff
@ -85,6 +85,7 @@ Packages howto
|
|||||||
Howto_coreshell
|
Howto_coreshell
|
||||||
Howto_drude
|
Howto_drude
|
||||||
Howto_drude2
|
Howto_drude2
|
||||||
|
Howto_peri
|
||||||
Howto_manifold
|
Howto_manifold
|
||||||
Howto_spins
|
Howto_spins
|
||||||
|
|
||||||
|
|||||||
@ -281,7 +281,7 @@ Here is more information about the extended XYZ format defined and
|
|||||||
used by Tinker, and links to programs that convert standard PDB files
|
used by Tinker, and links to programs that convert standard PDB files
|
||||||
to the extended XYZ format:
|
to the extended XYZ format:
|
||||||
|
|
||||||
* `http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_
|
* `https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_
|
||||||
* `https://github.com/emleddin/pdbxyz-xyzpdb <https://github.com/emleddin/pdbxyz-xyzpdb>`_
|
* `https://github.com/emleddin/pdbxyz-xyzpdb <https://github.com/emleddin/pdbxyz-xyzpdb>`_
|
||||||
* `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f <https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f>`_
|
* `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f <https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f>`_
|
||||||
|
|
||||||
|
|||||||
@ -3,24 +3,20 @@ CHARMM, AMBER, COMPASS, and DREIDING force fields
|
|||||||
|
|
||||||
A force field has 2 parts: the formulas that define it and the
|
A force field has 2 parts: the formulas that define it and the
|
||||||
coefficients used for a particular system. Here we only discuss
|
coefficients used for a particular system. Here we only discuss
|
||||||
formulas implemented in LAMMPS that correspond to formulas commonly
|
formulas implemented in LAMMPS that correspond to formulas commonly used
|
||||||
used in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
|
in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
|
||||||
coefficients is done either from special sections in an input data file
|
coefficients is done either from special sections in an input data file
|
||||||
via the :doc:`read_data <read_data>` command or in the input script with
|
via the :doc:`read_data <read_data>` command or in the input script with
|
||||||
commands like :doc:`pair_coeff <pair_coeff>` or
|
commands like :doc:`pair_coeff <pair_coeff>` or :doc:`bond_coeff
|
||||||
:doc:`bond_coeff <bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc
|
<bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for
|
||||||
page for additional tools that can use CHARMM, AMBER, or Materials
|
additional tools that can use CHARMM, AMBER, or Materials Studio
|
||||||
Studio generated files to assign force field coefficients and convert
|
generated files to assign force field coefficients and convert their
|
||||||
their output into LAMMPS input.
|
output into LAMMPS input.
|
||||||
|
|
||||||
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM force
|
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM
|
||||||
field. See :ref:`(Cornell) <howto-Cornell>` for a description of the AMBER
|
force field. See :ref:`(Cornell) <howto-Cornell>` for a description of
|
||||||
force field. See :ref:`(Sun) <howto-Sun>` for a description of the COMPASS
|
the AMBER force field. See :ref:`(Sun) <howto-Sun>` for a description
|
||||||
force field.
|
of the COMPASS force field.
|
||||||
|
|
||||||
.. _charmm: http://www.scripps.edu/brooks
|
|
||||||
|
|
||||||
.. _amber: http://amber.scripps.edu
|
|
||||||
|
|
||||||
The interaction styles listed below compute force field formulas that
|
The interaction styles listed below compute force field formulas that
|
||||||
are consistent with common options in CHARMM or AMBER. See each
|
are consistent with common options in CHARMM or AMBER. See each
|
||||||
@ -41,9 +37,10 @@ command's documentation for the formula it computes.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released
|
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in
|
||||||
in March 2017. We recommend they be used instead of the older *charmm*
|
March 2017. We recommend they be used instead of the older *charmm*
|
||||||
styles. See discussion of the differences on the :doc:`pair charmm <pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
|
styles. See discussion of the differences on the :doc:`pair charmm
|
||||||
|
<pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
|
||||||
pages.
|
pages.
|
||||||
|
|
||||||
COMPASS is a general force field for atomistic simulation of common
|
COMPASS is a general force field for atomistic simulation of common
|
||||||
|
|||||||
@ -33,46 +33,6 @@ reference state of a bond. Bonds that are created midway into a run,
|
|||||||
such as those created by pouring grains using :doc:`fix pour
|
such as those created by pouring grains using :doc:`fix pour
|
||||||
<fix_pour>`, are initialized on that timestep.
|
<fix_pour>`, are initialized on that timestep.
|
||||||
|
|
||||||
As bonds can be broken between neighbor list builds, the
|
|
||||||
:doc:`special_bonds <special_bonds>` command works differently for BPM
|
|
||||||
bond styles. There are two possible settings which determine how pair
|
|
||||||
interactions work between bonded particles. First, one can turn off
|
|
||||||
all pair interactions between bonded particles. Unlike :doc:`bond
|
|
||||||
quartic <bond_quartic>`, this is not done by subtracting pair forces
|
|
||||||
during the bond computation but rather by dynamically updating the
|
|
||||||
special bond list. This is the default behavior of BPM bond styles and
|
|
||||||
is done by updating the 1-2 special bond list as bonds break. To do
|
|
||||||
this, LAMMPS requires :doc:`newton <newton>` bond off such that all
|
|
||||||
processors containing an atom know when a bond breaks. Additionally,
|
|
||||||
one must do either (A) or (B).
|
|
||||||
|
|
||||||
A) Use the following special bond settings
|
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
|
||||||
|
|
||||||
special_bonds lj 0 1 1 coul 1 1 1
|
|
||||||
|
|
||||||
These settings accomplish two goals. First, they turn off 1-3 and 1-4
|
|
||||||
special bond lists, which are not currently supported for BPMs. As
|
|
||||||
BPMs often have dense bond networks, generating 1-3 and 1-4 special
|
|
||||||
bond lists is expensive. By setting the lj weight for 1-2 bonds to
|
|
||||||
zero, this turns off pairwise interactions. Even though there are no
|
|
||||||
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
|
|
||||||
ensures all bonded neighbors are still included in the neighbor list
|
|
||||||
in case bonds break between neighbor list builds.
|
|
||||||
|
|
||||||
B) Alternatively, one can simply overlay pair interactions such that all
|
|
||||||
bonded particles also feel pair interactions. This can be
|
|
||||||
accomplished by using the *overlay/pair* keyword present in all bpm
|
|
||||||
bond styles and by using the following special bond settings
|
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
|
||||||
|
|
||||||
special_bonds lj/coul 1 1 1
|
|
||||||
|
|
||||||
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
|
|
||||||
more information.
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Currently there are two types of bonds included in the BPM
|
Currently there are two types of bonds included in the BPM
|
||||||
@ -91,12 +51,6 @@ This also requires a unique integrator :doc:`fix nve/bpm/sphere
|
|||||||
<fix_nve_bpm_sphere>` which numerically integrates orientation similar
|
<fix_nve_bpm_sphere>` which numerically integrates orientation similar
|
||||||
to :doc:`fix nve/asphere <fix_nve_asphere>`.
|
to :doc:`fix nve/asphere <fix_nve_asphere>`.
|
||||||
|
|
||||||
To monitor the fracture of bonds in the system, all BPM bond styles
|
|
||||||
have the ability to record instances of bond breakage to output using
|
|
||||||
the :doc:`dump local <dump>` command. Additionally, one can use
|
|
||||||
:doc:`compute nbond/atom <compute_nbond_atom>` to tally the current
|
|
||||||
number of bonds per atom.
|
|
||||||
|
|
||||||
In addition to bond styles, a new pair style :doc:`pair bpm/spring
|
In addition to bond styles, a new pair style :doc:`pair bpm/spring
|
||||||
<pair_bpm_spring>` was added to accompany the bpm/spring bond
|
<pair_bpm_spring>` was added to accompany the bpm/spring bond
|
||||||
style. This pair style is simply a hookean repulsion with similar
|
style. This pair style is simply a hookean repulsion with similar
|
||||||
@ -104,6 +58,73 @@ velocity damping as its sister bond style.
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
Bond data can be output using a combination of standard LAMMPS commands.
|
||||||
|
A list of IDs for bonded atoms can be generated using the
|
||||||
|
:doc:`compute property/local <compute_property_local>` command.
|
||||||
|
Various properties of bonds can be computed using the
|
||||||
|
:doc:`compute bond/local <compute_bond_local>` command. This
|
||||||
|
command allows one to access data saved to the bond's history
|
||||||
|
such as the reference length of the bond. More information on
|
||||||
|
bond history data can be found on the documentation pages for the specific
|
||||||
|
BPM bond styles. Finally, this data can be output using a :doc:`dump local <dump>`
|
||||||
|
command. As one may output many columns from the same compute, the
|
||||||
|
:doc:`dump modify <dump_modify>` *colname* option may be used to provide
|
||||||
|
more helpful column names. An example of this procedure is found in
|
||||||
|
/examples/bpm/pour/. External software, such as OVITO, can read these dump
|
||||||
|
files to render bond data.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
As bonds can be broken between neighbor list builds, the
|
||||||
|
:doc:`special_bonds <special_bonds>` command works differently for BPM
|
||||||
|
bond styles. There are two possible settings which determine how pair
|
||||||
|
interactions work between bonded particles. First, one can overlay
|
||||||
|
pair forces with bond forces such that all bonded particles also
|
||||||
|
feel pair interactions. This can be accomplished by using the *overlay/pair*
|
||||||
|
keyword present in all bpm bond styles and by using the following special
|
||||||
|
bond settings
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
special_bonds lj/coul 1 1 1
|
||||||
|
|
||||||
|
Alternatively, one can turn off all pair interactions between bonded
|
||||||
|
particles. Unlike :doc:`bond quartic <bond_quartic>`, this is not done
|
||||||
|
by subtracting pair forces during the bond computation but rather by
|
||||||
|
dynamically updating the special bond list. This is the default behavior
|
||||||
|
of BPM bond styles and is done by updating the 1-2 special bond list as
|
||||||
|
bonds break. To do this, LAMMPS requires :doc:`newton <newton>` bond off
|
||||||
|
such that all processors containing an atom know when a bond breaks.
|
||||||
|
Additionally, one must use the following special bond settings
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
special_bonds lj 0 1 1 coul 1 1 1
|
||||||
|
|
||||||
|
These settings accomplish two goals. First, they turn off 1-3 and 1-4
|
||||||
|
special bond lists, which are not currently supported for BPMs. As
|
||||||
|
BPMs often have dense bond networks, generating 1-3 and 1-4 special
|
||||||
|
bond lists is expensive. By setting the lj weight for 1-2 bonds to
|
||||||
|
zero, this turns off pairwise interactions. Even though there are no
|
||||||
|
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
|
||||||
|
ensures all bonded neighbors are still included in the neighbor list
|
||||||
|
in case bonds break between neighbor list builds.
|
||||||
|
|
||||||
|
To monitor the fracture of bonds in the system, all BPM bond styles
|
||||||
|
have the ability to record instances of bond breakage to output using
|
||||||
|
the :doc:`dump local <dump>` command. Since one may frequently output
|
||||||
|
a list of broken bonds and the time they broke, the
|
||||||
|
:doc:`dump modify <dump_modify>` option *header no* may be useful to
|
||||||
|
avoid repeatedly printing the header of the dump file. An example of
|
||||||
|
this procedure is found in /examples/bpm/impact/. Additionally,
|
||||||
|
one can use :doc:`compute nbond/atom <compute_nbond_atom>` to tally the
|
||||||
|
current number of bonds per atom.
|
||||||
|
|
||||||
|
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
|
||||||
|
more information.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
While LAMMPS has many utilities to create and delete bonds, *only*
|
While LAMMPS has many utilities to create and delete bonds, *only*
|
||||||
the following are currently compatible with BPM bond styles:
|
the following are currently compatible with BPM bond styles:
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ changes or additions you have made to LAMMPS into the official LAMMPS
|
|||||||
distribution. It uses the process of updating this very tutorial as an
|
distribution. It uses the process of updating this very tutorial as an
|
||||||
example to describe the individual steps and options. You need to be
|
example to describe the individual steps and options. You need to be
|
||||||
familiar with git and you may want to have a look at the `git book
|
familiar with git and you may want to have a look at the `git book
|
||||||
<http://git-scm.com/book/>`_ to familiarize yourself with some of the
|
<https://git-scm.com/book/>`_ to familiarize yourself with some of the
|
||||||
more advanced git features used below.
|
more advanced git features used below.
|
||||||
|
|
||||||
As of fall 2016, submitting contributions to LAMMPS via pull requests
|
As of fall 2016, submitting contributions to LAMMPS via pull requests
|
||||||
|
|||||||
@ -47,4 +47,4 @@ to the relevant fixes.
|
|||||||
.. _Paquay1:
|
.. _Paquay1:
|
||||||
|
|
||||||
**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).
|
**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).
|
||||||
preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_.
|
preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.
|
||||||
|
|||||||
1078
doc/src/Howto_peri.rst
Normal file
1078
doc/src/Howto_peri.rst
Normal file
File diff suppressed because it is too large
Load Diff
@ -38,7 +38,7 @@ the partial charge assignments change:
|
|||||||
See the :ref:`(Berendsen) <howto-Berendsen>` reference for more details on both
|
See the :ref:`(Berendsen) <howto-Berendsen>` reference for more details on both
|
||||||
the SPC and SPC/E models.
|
the SPC and SPC/E models.
|
||||||
|
|
||||||
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.
|
Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -30,9 +30,11 @@ can be coupled to another Langevin thermostat applied to the atoms
|
|||||||
using :doc:`fix langevin <fix_langevin>` in order to simulate
|
using :doc:`fix langevin <fix_langevin>` in order to simulate
|
||||||
thermostatted spin-lattice systems.
|
thermostatted spin-lattice systems.
|
||||||
|
|
||||||
The magnetic Gilbert damping can also be applied using :doc:`fix langevin/spin <fix_langevin_spin>`. It allows to either dissipate
|
The magnetic damping can also be applied
|
||||||
the thermal energy of the Langevin thermostat, or to perform a
|
using :doc:`fix langevin/spin <fix_langevin_spin>`.
|
||||||
relaxation of the magnetic configuration toward an equilibrium state.
|
It allows to either dissipate the thermal energy of the Langevin
|
||||||
|
thermostat, or to perform a relaxation of the magnetic configuration
|
||||||
|
toward an equilibrium state.
|
||||||
|
|
||||||
The command :doc:`fix setforce/spin <fix_setforce>` allows to set the
|
The command :doc:`fix setforce/spin <fix_setforce>` allows to set the
|
||||||
components of the magnetic precession vectors (while erasing and
|
components of the magnetic precession vectors (while erasing and
|
||||||
@ -52,9 +54,11 @@ All the computed magnetic properties can be output by two main
|
|||||||
commands. The first one is :doc:`compute spin <compute_spin>`, that
|
commands. The first one is :doc:`compute spin <compute_spin>`, that
|
||||||
enables to evaluate magnetic averaged quantities, such as the total
|
enables to evaluate magnetic averaged quantities, such as the total
|
||||||
magnetization of the system along x, y, or z, the spin temperature, or
|
magnetization of the system along x, y, or z, the spin temperature, or
|
||||||
the magnetic energy. The second command is :doc:`compute property/atom <compute_property_atom>`. It enables to output all the
|
the magnetic energy. The second command
|
||||||
per atom magnetic quantities. Typically, the orientation of a given
|
is :doc:`compute property/atom <compute_property_atom>`.
|
||||||
magnetic spin, or the magnetic force acting on this spin.
|
It enables to output all the per atom magnetic quantities. Typically,
|
||||||
|
the orientation of a given magnetic spin, or the magnetic force
|
||||||
|
acting on this spin.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -49,7 +49,7 @@ details:
|
|||||||
| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}`
|
| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}`
|
||||||
|
|
|
|
||||||
|
|
||||||
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.
|
Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -8,18 +8,28 @@ This site M is located at a fixed distance away from the oxygen along
|
|||||||
the bisector of the HOH bond angle. A bond style of *harmonic* and an
|
the bisector of the HOH bond angle. A bond style of *harmonic* and an
|
||||||
angle style of *harmonic* or *charmm* should also be used.
|
angle style of *harmonic* or *charmm* should also be used.
|
||||||
|
|
||||||
A TIP4P model is run with LAMMPS using either this command
|
A TIP4P model is run with LAMMPS using either these commands
|
||||||
for a cutoff model:
|
for a cutoff model:
|
||||||
|
|
||||||
|
* :doc:`pair_style tip4p/cut <pair_lj_cut_tip4p>`
|
||||||
* :doc:`pair_style lj/cut/tip4p/cut <pair_lj_cut_tip4p>`
|
* :doc:`pair_style lj/cut/tip4p/cut <pair_lj_cut_tip4p>`
|
||||||
|
|
||||||
or these two commands for a long-range model:
|
or these commands for a long-range model:
|
||||||
|
|
||||||
|
* :doc:`pair_style tip4p/long <pair_coul>`
|
||||||
* :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>`
|
* :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>`
|
||||||
|
* :doc:`pair_style lj/long/tip4p/long <pair_lj_long>`
|
||||||
|
* :doc:`pair_style tip4p/long/soft <pair_fep_soft>`
|
||||||
|
* :doc:`pair_style lj/cut/tip4p/long/soft <pair_fep_soft>`
|
||||||
* :doc:`kspace_style pppm/tip4p <kspace_style>`
|
* :doc:`kspace_style pppm/tip4p <kspace_style>`
|
||||||
|
* :doc:`kspace_style pppm/disp/tip4p <kspace_style>`
|
||||||
|
|
||||||
For both models, the bond lengths and bond angles should be held fixed
|
The bond lengths and bond angles should be held fixed using the
|
||||||
using the :doc:`fix shake <fix_shake>` command.
|
:doc:`fix shake <fix_shake>` or :doc:`fix rattle <fix_shake>` command,
|
||||||
|
unless a parameterization for a flexible TIP4P model is used. The
|
||||||
|
parameter sets listed below are all for rigid TIP4P model variants and
|
||||||
|
thus the bond and angle force constants are not used and can be set to
|
||||||
|
any legal value; only equilibrium length and angle are used.
|
||||||
|
|
||||||
These are the additional parameters (in real units) to set for O and H
|
These are the additional parameters (in real units) to set for O and H
|
||||||
atoms and the water molecule to run a rigid TIP4P model with a cutoff
|
atoms and the water molecule to run a rigid TIP4P model with a cutoff
|
||||||
@ -87,17 +97,18 @@ solver (e.g. Ewald or PPPM in LAMMPS):
|
|||||||
| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0
|
| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0
|
||||||
|
|
|
|
||||||
|
|
||||||
Note that the when using the TIP4P pair style, the neighbor list
|
Note that the when using the TIP4P pair style, the neighbor list cutoff
|
||||||
cutoff for Coulomb interactions is effectively extended by a distance
|
for Coulomb interactions is effectively extended by a distance 2 \* (OM
|
||||||
2 \* (OM distance), to account for the offset distance of the
|
distance), to account for the offset distance of the fictitious charges
|
||||||
fictitious charges on O atoms in water molecules. Thus it is
|
on O atoms in water molecules. Thus it is typically best in an
|
||||||
typically best in an efficiency sense to use a LJ cutoff >= Coulomb
|
efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2\*(OM
|
||||||
cutoff + 2\*(OM distance), to shrink the size of the neighbor list.
|
distance), to shrink the size of the neighbor list. This leads to
|
||||||
This leads to slightly larger cost for the long-range calculation, so
|
slightly larger cost for the long-range calculation, so you can test the
|
||||||
you can test the trade-off for your model. The OM distance and the LJ
|
trade-off for your model. The OM distance and the LJ and Coulombic
|
||||||
and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>` command.
|
cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long
|
||||||
|
<pair_lj_cut_tip4p>` command.
|
||||||
|
|
||||||
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.
|
Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -17,9 +17,10 @@ formats. See the :doc:`Tools <Tools>` page for details.
|
|||||||
|
|
||||||
A Python-based toolkit distributed by our group can read native LAMMPS
|
A Python-based toolkit distributed by our group can read native LAMMPS
|
||||||
dump files, including custom dump files with additional columns of
|
dump files, including custom dump files with additional columns of
|
||||||
user-specified atom information, and convert them to various formats
|
user-specified atom information, and convert them to various formats or
|
||||||
or pipe them into visualization software directly. See the `Pizza.py WWW site <pizza_>`_ for details. Specifically, Pizza.py can convert
|
pipe them into visualization software directly. See the `Pizza.py WWW
|
||||||
LAMMPS dump files into PDB, XYZ, `EnSight <ensight_>`_, and VTK formats.
|
site <pizza_>`_ for details. Specifically, Pizza.py can convert LAMMPS
|
||||||
|
dump files into PDB, XYZ, `EnSight <ensight_>`_, and VTK formats.
|
||||||
Pizza.py can pipe LAMMPS dump files directly into the Raster3d and
|
Pizza.py can pipe LAMMPS dump files directly into the Raster3d and
|
||||||
RasMol visualization programs. Pizza.py has tools that do interactive
|
RasMol visualization programs. Pizza.py has tools that do interactive
|
||||||
3d OpenGL visualization and one that creates SVG images of dump file
|
3d OpenGL visualization and one that creates SVG images of dump file
|
||||||
|
|||||||
@ -5,7 +5,7 @@ Binaries are available for MacOS or Linux via `Conda <conda_>`_.
|
|||||||
|
|
||||||
First, one must setup the Conda package manager on your system. Follow the
|
First, one must setup the Conda package manager on your system. Follow the
|
||||||
instructions to install `Miniconda <mini_conda_install_>`_, then create a conda
|
instructions to install `Miniconda <mini_conda_install_>`_, then create a conda
|
||||||
environment (named `my-lammps-env` or whatever you prefer) for your lammps
|
environment (named `my-lammps-env` or whatever you prefer) for your LAMMPS
|
||||||
install:
|
install:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -13,7 +13,7 @@ install:
|
|||||||
% conda config --add channels conda-forge
|
% conda config --add channels conda-forge
|
||||||
% conda create -n my-lammps-env
|
% conda create -n my-lammps-env
|
||||||
|
|
||||||
Then, you can install lammps on your system with the following command:
|
Then, you can install LAMMPS on your system with the following command:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ Windows system can be downloaded from this site:
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
`http://packages.lammps.org/windows.html <http://packages.lammps.org/windows.html>`_
|
`https://packages.lammps.org/windows.html <https://packages.lammps.org/windows.html>`_
|
||||||
|
|
||||||
Note that each installer package has a date in its name, which
|
Note that each installer package has a date in its name, which
|
||||||
corresponds to the LAMMPS version of the same date. Installers for
|
corresponds to the LAMMPS version of the same date. Installers for
|
||||||
|
|||||||
@ -4,13 +4,13 @@ Authors of LAMMPS
|
|||||||
The primary LAMMPS developers are at Sandia National Labs and Temple
|
The primary LAMMPS developers are at Sandia National Labs and Temple
|
||||||
University:
|
University:
|
||||||
|
|
||||||
* `Steve Plimpton <sjp_>`_, sjplimp at sandia.gov
|
* `Steve Plimpton <sjp_>`_, sjplimp at gmail.com
|
||||||
* Aidan Thompson, athomps at sandia.gov
|
* Aidan Thompson, athomps at sandia.gov
|
||||||
* Stan Moore, stamoor at sandia.gov
|
* Stan Moore, stamoor at sandia.gov
|
||||||
* Axel Kohlmeyer, akohlmey at gmail.com
|
* Axel Kohlmeyer, akohlmey at gmail.com
|
||||||
* Richard Berger, richard.berger at outlook.com
|
* Richard Berger, richard.berger at outlook.com
|
||||||
|
|
||||||
.. _sjp: http://www.cs.sandia.gov/~sjplimp
|
.. _sjp: https://sjplimp.github.io
|
||||||
.. _lws: https://www.lammps.org
|
.. _lws: https://www.lammps.org
|
||||||
|
|
||||||
Past developers include Paul Crozier and Mark Stevens, both at Sandia,
|
Past developers include Paul Crozier and Mark Stevens, both at Sandia,
|
||||||
|
|||||||
@ -27,7 +27,7 @@ namely https://www.lammps.org.
|
|||||||
The original publication describing the parallel algorithms used in the
|
The original publication describing the parallel algorithms used in the
|
||||||
initial versions of LAMMPS is:
|
initial versions of LAMMPS is:
|
||||||
|
|
||||||
`S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). <http://www.sandia.gov/~sjplimp/papers/jcompphys95.pdf>`_
|
`S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). <https://doi.org/10.1006/jcph.1995.1039>`_
|
||||||
|
|
||||||
|
|
||||||
DOI for the LAMMPS source code
|
DOI for the LAMMPS source code
|
||||||
|
|||||||
@ -95,7 +95,7 @@ commands)
|
|||||||
* metal-organic framework potentials (QuickFF, MO-FF)
|
* metal-organic framework potentials (QuickFF, MO-FF)
|
||||||
* implicit solvent potentials: hydrodynamic lubrication, Debye
|
* implicit solvent potentials: hydrodynamic lubrication, Debye
|
||||||
* force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
|
* force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
|
||||||
* access to the `OpenKIM Repository <http://openkim.org>`_ of potentials via :doc:`kim command <kim_commands>`
|
* access to the `OpenKIM Repository <https://openkim.org>`_ of potentials via the :doc:`kim command <kim_commands>`
|
||||||
* hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
|
* hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
|
||||||
* overlaid potentials: superposition of multiple pair potentials (including many-body) with optional scale factor
|
* overlaid potentials: superposition of multiple pair potentials (including many-body) with optional scale factor
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ Pre- and post-processing
|
|||||||
|
|
||||||
.. _pizza: https://lammps.github.io/pizza
|
.. _pizza: https://lammps.github.io/pizza
|
||||||
|
|
||||||
.. _python: http://www.python.org
|
.. _python: https://www.python.org
|
||||||
|
|
||||||
.. _special:
|
.. _special:
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@ Here are suggestions on how to perform these tasks:
|
|||||||
linear bead-spring polymer chains. The moltemplate program is a true
|
linear bead-spring polymer chains. The moltemplate program is a true
|
||||||
molecular builder that will generate complex molecular models. See
|
molecular builder that will generate complex molecular models. See
|
||||||
the :doc:`Tools <Tools>` page for details on tools packaged with
|
the :doc:`Tools <Tools>` page for details on tools packaged with
|
||||||
LAMMPS. The `Pre/post processing page <http:/www.lammps.org/prepost.html>`_ of the LAMMPS website
|
LAMMPS. The `Pre/post processing page <https:/www.lammps.org/prepost.html>`_ of the LAMMPS website
|
||||||
describes a variety of third party tools for this task. Furthermore,
|
describes a variety of third party tools for this task. Furthermore,
|
||||||
some LAMMPS internal commands allow to reconstruct, or selectively add
|
some LAMMPS internal commands allow to reconstruct, or selectively add
|
||||||
topology information, as well as provide the option to insert molecule
|
topology information, as well as provide the option to insert molecule
|
||||||
@ -80,5 +80,5 @@ Here are suggestions on how to perform these tasks:
|
|||||||
`Pizza.py <https://lammps.github.io/pizza>`_ which can do certain kinds of
|
`Pizza.py <https://lammps.github.io/pizza>`_ which can do certain kinds of
|
||||||
setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS
|
setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS
|
||||||
simulations. It thus provides some functionality for several of the
|
simulations. It thus provides some functionality for several of the
|
||||||
above bullets. Pizza.py is written in `Python <http://www.python.org>`_
|
above bullets. Pizza.py is written in `Python <https://www.python.org>`_
|
||||||
and is available for download from `this page <http://www.cs.sandia.gov/~sjplimp/download.html>`_.
|
and is available for download from `this page <https://sjplimp.github.io/download.html>`_.
|
||||||
|
|||||||
@ -23,9 +23,9 @@ applies to LAMMPS is in the LICENSE file included in the LAMMPS distribution.
|
|||||||
|
|
||||||
.. _lgpl: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
.. _lgpl: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
||||||
|
|
||||||
.. _gnuorg: http://www.gnu.org
|
.. _gnuorg: https://www.gnu.org
|
||||||
|
|
||||||
.. _opensource: http://www.opensource.org
|
.. _opensource: https://www.opensource.org
|
||||||
|
|
||||||
Here is a more specific summary of what the GPL means for LAMMPS users:
|
Here is a more specific summary of what the GPL means for LAMMPS users:
|
||||||
|
|
||||||
|
|||||||
BIN
doc/src/JPG/dump.peri.2000.png
Normal file
BIN
doc/src/JPG/dump.peri.2000.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 200 KiB |
BIN
doc/src/JPG/dump.peri.300.png
Normal file
BIN
doc/src/JPG/dump.peri.300.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
doc/src/JPG/dump.peri.600.png
Normal file
BIN
doc/src/JPG/dump.peri.600.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 157 KiB |
BIN
doc/src/JPG/ovito-peri-snap.png
Normal file
BIN
doc/src/JPG/ovito-peri-snap.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 494 KiB |
BIN
doc/src/JPG/pdlammps_fig1.png
Normal file
BIN
doc/src/JPG/pdlammps_fig1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 160 KiB |
BIN
doc/src/JPG/pdlammps_fig2.png
Normal file
BIN
doc/src/JPG/pdlammps_fig2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 MiB |
@ -2,12 +2,13 @@ LAMMPS Library Interfaces
|
|||||||
*************************
|
*************************
|
||||||
|
|
||||||
As described on the :doc:`library interface to LAMMPS <Howto_library>`
|
As described on the :doc:`library interface to LAMMPS <Howto_library>`
|
||||||
page, LAMMPS can be built as a library (static or shared), so that
|
page, LAMMPS can be built as a library (static or shared), so that it
|
||||||
it can be called by another code, used in a :doc:`coupled manner
|
can be called by another code, used in a :doc:`coupled manner
|
||||||
<Howto_couple>` with other codes, or driven through a :doc:`Python
|
<Howto_couple>` with other codes, or driven through a :doc:`Python
|
||||||
script <Python_head>`. Even the LAMMPS standalone executable is
|
script <Python_head>`. The LAMMPS standalone executable itself is
|
||||||
essentially a thin wrapper on top of the LAMMPS library, creating a
|
essentially a thin wrapper on top of the LAMMPS library, which creates a
|
||||||
LAMMPS instance, processing input and then existing.
|
LAMMPS instance, passes the input for processing to that instance, and
|
||||||
|
then exits.
|
||||||
|
|
||||||
Most of the APIs described below are based on C language wrapper
|
Most of the APIs described below are based on C language wrapper
|
||||||
functions in the files ``src/library.h`` and ``src/library.cpp``, but
|
functions in the files ``src/library.h`` and ``src/library.cpp``, but
|
||||||
@ -87,6 +88,18 @@ run LAMMPS in serial mode.
|
|||||||
message retrieved <lammps_get_last_error_message>`. We thus
|
message retrieved <lammps_get_last_error_message>`. We thus
|
||||||
recommend enabling C++ exceptions when using the library interface,
|
recommend enabling C++ exceptions when using the library interface,
|
||||||
|
|
||||||
|
.. admonition:: Using the C library interface as a plugin
|
||||||
|
:class: note
|
||||||
|
|
||||||
|
Rather than including the C library directly and link to the LAMMPS
|
||||||
|
library at compile time, you can use the ``liblammpsplugin.h`` header
|
||||||
|
file and the ``liblammpsplugin.c`` C code in the
|
||||||
|
``examples/COUPLE/plugin`` folder for an interface to LAMMPS that is
|
||||||
|
largely identical to the regular library interface, only that it will
|
||||||
|
load a LAMMPS shared library file at runtime. This can be useful for
|
||||||
|
applications where the interface to LAMMPS would be an optional
|
||||||
|
feature.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
No checks are made on the arguments of the function calls of the C
|
No checks are made on the arguments of the function calls of the C
|
||||||
@ -163,5 +176,3 @@ The following links provide some examples and references to the C++ API.
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
Cplusplus
|
Cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,7 @@ This section documents the following functions:
|
|||||||
- :cpp:func:`lammps_mpi_finalize`
|
- :cpp:func:`lammps_mpi_finalize`
|
||||||
- :cpp:func:`lammps_kokkos_finalize`
|
- :cpp:func:`lammps_kokkos_finalize`
|
||||||
- :cpp:func:`lammps_python_finalize`
|
- :cpp:func:`lammps_python_finalize`
|
||||||
|
- :cpp:func:`lammps_error`
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@ -115,3 +116,8 @@ calling program.
|
|||||||
|
|
||||||
.. doxygenfunction:: lammps_python_finalize
|
.. doxygenfunction:: lammps_python_finalize
|
||||||
:project: progguide
|
:project: progguide
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
.. doxygenfunction:: lammps_error
|
||||||
|
:project: progguide
|
||||||
|
|||||||
@ -6,6 +6,7 @@ fixes, or variables in LAMMPS using the following functions:
|
|||||||
|
|
||||||
- :cpp:func:`lammps_extract_compute`
|
- :cpp:func:`lammps_extract_compute`
|
||||||
- :cpp:func:`lammps_extract_fix`
|
- :cpp:func:`lammps_extract_fix`
|
||||||
|
- :cpp:func:`lammps_extract_variable_datatype`
|
||||||
- :cpp:func:`lammps_extract_variable`
|
- :cpp:func:`lammps_extract_variable`
|
||||||
- :cpp:func:`lammps_set_variable`
|
- :cpp:func:`lammps_set_variable`
|
||||||
|
|
||||||
@ -21,6 +22,11 @@ fixes, or variables in LAMMPS using the following functions:
|
|||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
.. doxygenfunction:: lammps_extract_variable_datatype
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
.. doxygenfunction:: lammps_extract_variable
|
.. doxygenfunction:: lammps_extract_variable
|
||||||
:project: progguide
|
:project: progguide
|
||||||
|
|
||||||
@ -36,3 +42,5 @@ fixes, or variables in LAMMPS using the following functions:
|
|||||||
.. doxygenenum:: _LMP_STYLE_CONST
|
.. doxygenenum:: _LMP_STYLE_CONST
|
||||||
|
|
||||||
.. doxygenenum:: _LMP_TYPE_CONST
|
.. doxygenenum:: _LMP_TYPE_CONST
|
||||||
|
|
||||||
|
.. doxygenenum:: _LMP_VAR_CONST
|
||||||
|
|||||||
@ -15,21 +15,21 @@ This section documents the following functions:
|
|||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
The library interface allows extraction of different kinds of
|
The library interface allows the extraction of different kinds of
|
||||||
information about the active simulation instance and also
|
information about the active simulation instance and also---in some
|
||||||
modifications to it. This enables combining of a LAMMPS simulation
|
cases---to apply modifications to it. This enables combining of a
|
||||||
with other processing and simulation methods computed by the calling
|
LAMMPS simulation with other processing and simulation methods computed
|
||||||
code, or by another code that is coupled to LAMMPS via the library
|
by the calling code, or by another code that is coupled to LAMMPS via
|
||||||
interface. In some cases the data returned is direct reference to the
|
the library interface. In some cases the data returned is direct
|
||||||
original data inside LAMMPS, cast to a void pointer. In that case the
|
reference to the original data inside LAMMPS, cast to a void pointer.
|
||||||
data needs to be cast to a suitable pointer for the calling program to
|
In that case the data needs to be cast to a suitable pointer for the
|
||||||
access it, and you may need to know the correct dimensions and
|
calling program to access it, and you may need to know the correct
|
||||||
lengths. This also means you can directly change those value(s) from
|
dimensions and lengths. This also means you can directly change those
|
||||||
the calling program, e.g. to modify atom positions. Of course, this
|
value(s) from the calling program (e.g., to modify atom positions). Of
|
||||||
should be done with care. When accessing per-atom data, please note
|
course, changing values should be done with care. When accessing per-atom
|
||||||
that this data is the per-processor **local** data and is indexed
|
data, please note that these data are the per-processor **local** data and are
|
||||||
accordingly. Per-atom data can change sizes and ordering at every
|
indexed accordingly. Per-atom data can change sizes and ordering at
|
||||||
neighbor list rebuild or atom sort event as atoms migrate between
|
every neighbor list rebuild or atom sort event as atoms migrate between
|
||||||
sub-domains and processors.
|
sub-domains and processors.
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|||||||
@ -19,6 +19,7 @@ functions. They do not directly call the LAMMPS library.
|
|||||||
- :cpp:func:`lammps_force_timeout`
|
- :cpp:func:`lammps_force_timeout`
|
||||||
- :cpp:func:`lammps_has_error`
|
- :cpp:func:`lammps_has_error`
|
||||||
- :cpp:func:`lammps_get_last_error_message`
|
- :cpp:func:`lammps_get_last_error_message`
|
||||||
|
- :cpp:func:`lammps_python_api_version`
|
||||||
|
|
||||||
The :cpp:func:`lammps_free` function is a clean-up function to free
|
The :cpp:func:`lammps_free` function is a clean-up function to free
|
||||||
memory that the library had allocated previously via other function
|
memory that the library had allocated previously via other function
|
||||||
@ -100,3 +101,9 @@ where such memory buffers were allocated that require the use of
|
|||||||
|
|
||||||
.. doxygenfunction:: lammps_get_last_error_message
|
.. doxygenfunction:: lammps_get_last_error_message
|
||||||
:project: progguide
|
:project: progguide
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
.. doxygenfunction:: lammps_python_api_version
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
|||||||
@ -42,7 +42,7 @@ descriptions of all commands included in the LAMMPS code.
|
|||||||
.. only:: html
|
.. only:: html
|
||||||
|
|
||||||
Once you are familiar with LAMMPS, you may want to bookmark
|
Once you are familiar with LAMMPS, you may want to bookmark
|
||||||
:doc:`this page <Commands_all>` since it gives quick access
|
:doc:`this page <Commands_all>` since it gives quick access to
|
||||||
the documentation for all LAMMPS commands.
|
the documentation for all LAMMPS commands.
|
||||||
|
|
||||||
.. _lws: https://www.lammps.org
|
.. _lws: https://www.lammps.org
|
||||||
|
|||||||
@ -359,6 +359,12 @@ you are uncertain, please ask.
|
|||||||
|
|
||||||
- I/O is done via the C-style stdio library and **not** iostreams.
|
- I/O is done via the C-style stdio library and **not** iostreams.
|
||||||
|
|
||||||
|
- Do not use so-called "alternative tokens" like ``and``, ``or``,
|
||||||
|
``not`` and similar, but rather use the corresponding operators
|
||||||
|
``&&``, ``||``, and ``!``. The alternative tokens are not available
|
||||||
|
by default on all compilers, and also we want to maintain a consistent
|
||||||
|
programming style.
|
||||||
|
|
||||||
- Output to the screen and the logfile should be using the corresponding
|
- Output to the screen and the logfile should be using the corresponding
|
||||||
FILE pointers and only be done on MPI rank 0. Use the :cpp:func:`utils::logmesg`
|
FILE pointers and only be done on MPI rank 0. Use the :cpp:func:`utils::logmesg`
|
||||||
convenience function where possible.
|
convenience function where possible.
|
||||||
|
|||||||
@ -135,6 +135,8 @@ commands to write and read data using the ADIOS library.
|
|||||||
|
|
||||||
**Authors:** Norbert Podhorszki (ORNL) from the ADIOS developer team.
|
**Authors:** Norbert Podhorszki (ORNL) from the ADIOS developer team.
|
||||||
|
|
||||||
|
.. versionadded:: 28Feb2019
|
||||||
|
|
||||||
**Install:**
|
**Install:**
|
||||||
|
|
||||||
This package has :ref:`specific installation instructions <adios>` on the :doc:`Build extras <Build_extras>` page.
|
This package has :ref:`specific installation instructions <adios>` on the :doc:`Build extras <Build_extras>` page.
|
||||||
@ -199,6 +201,7 @@ particle models including ellipsoids, 2d lines, and 3d triangles.
|
|||||||
* :doc:`Howto spherical <Howto_spherical>`
|
* :doc:`Howto spherical <Howto_spherical>`
|
||||||
* :doc:`pair_style gayberne <pair_gayberne>`
|
* :doc:`pair_style gayberne <pair_gayberne>`
|
||||||
* :doc:`pair_style resquared <pair_resquared>`
|
* :doc:`pair_style resquared <pair_resquared>`
|
||||||
|
* :doc:`pair_style ylz <pair_ylz>`
|
||||||
* `doc/PDF/pair_gayberne_extra.pdf <PDF/pair_gayberne_extra.pdf>`_
|
* `doc/PDF/pair_gayberne_extra.pdf <PDF/pair_gayberne_extra.pdf>`_
|
||||||
* `doc/PDF/pair_resquared_extra.pdf <PDF/pair_resquared_extra.pdf>`_
|
* `doc/PDF/pair_resquared_extra.pdf <PDF/pair_resquared_extra.pdf>`_
|
||||||
* examples/ASPHERE
|
* examples/ASPHERE
|
||||||
@ -365,6 +368,8 @@ and also support self-propelled particles.
|
|||||||
**Authors:** Sam Cameron (University of Bristol),
|
**Authors:** Sam Cameron (University of Bristol),
|
||||||
Stefan Paquay (while at Brandeis University) (initial version of fix propel/self)
|
Stefan Paquay (while at Brandeis University) (initial version of fix propel/self)
|
||||||
|
|
||||||
|
.. versionadded:: 14May2021
|
||||||
|
|
||||||
Example inputs are in the examples/PACKAGES/brownian folder.
|
Example inputs are in the examples/PACKAGES/brownian folder.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -593,6 +598,8 @@ To use this package, also the :ref:`KSPACE <PKG-KSPACE>` and
|
|||||||
|
|
||||||
**Author:** Trung Nguyen and Monica Olvera de la Cruz (Northwestern U)
|
**Author:** Trung Nguyen and Monica Olvera de la Cruz (Northwestern U)
|
||||||
|
|
||||||
|
.. versionadded:: 2Jul2021
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/DIELECTRIC: filenames -> commands
|
* src/DIELECTRIC: filenames -> commands
|
||||||
@ -1072,7 +1079,7 @@ H5MD is a format for molecular simulations, built on top of HDF5.
|
|||||||
This package implements a :doc:`dump h5md <dump_h5md>` command to output
|
This package implements a :doc:`dump h5md <dump_h5md>` command to output
|
||||||
LAMMPS snapshots in this format.
|
LAMMPS snapshots in this format.
|
||||||
|
|
||||||
.. _HDF5: http://www.hdfgroup.org/HDF5
|
.. _HDF5: https://www.hdfgroup.org/solutions/hdf5
|
||||||
|
|
||||||
To use this package you must have the HDF5 library available on your
|
To use this package you must have the HDF5 library available on your
|
||||||
system.
|
system.
|
||||||
@ -1513,6 +1520,8 @@ workflows via the `MolSSI Driver Interface
|
|||||||
|
|
||||||
**Author:** Taylor Barnes - MolSSI, taylor.a.barnes at gmail.com
|
**Author:** Taylor Barnes - MolSSI, taylor.a.barnes at gmail.com
|
||||||
|
|
||||||
|
.. versionadded:: 14May2021
|
||||||
|
|
||||||
**Install:**
|
**Install:**
|
||||||
|
|
||||||
This package has :ref:`specific installation instructions <mdi>` on
|
This package has :ref:`specific installation instructions <mdi>` on
|
||||||
@ -1597,6 +1606,8 @@ of Alabama), Leonid V. Zhigilei (University of Virginia)
|
|||||||
**Author of the *mesocnt* styles:**
|
**Author of the *mesocnt* styles:**
|
||||||
Philipp Kloza (U Cambridge)
|
Philipp Kloza (U Cambridge)
|
||||||
|
|
||||||
|
.. versionadded:: 15Jun2020
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/MESONT: filenames -> commands
|
* src/MESONT: filenames -> commands
|
||||||
@ -1689,6 +1700,8 @@ compiled on your system.
|
|||||||
|
|
||||||
**Author:** Andreas Singraber
|
**Author:** Andreas Singraber
|
||||||
|
|
||||||
|
.. versionadded:: 27May2021
|
||||||
|
|
||||||
**Install:**
|
**Install:**
|
||||||
|
|
||||||
This package has :ref:`specific installation instructions <ml-hdnnp>` on the
|
This package has :ref:`specific installation instructions <ml-hdnnp>` on the
|
||||||
@ -1723,6 +1736,8 @@ must be installed.
|
|||||||
|
|
||||||
**Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL).
|
**Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL).
|
||||||
|
|
||||||
|
.. versionadded:: 30Jun2020
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/ML-IAP: filenames -> commands
|
* src/ML-IAP: filenames -> commands
|
||||||
@ -1767,6 +1782,8 @@ Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1.
|
|||||||
|
|
||||||
^4: University of British Columbia, Vancouver, BC, Canada
|
^4: University of British Columbia, Vancouver, BC, Canada
|
||||||
|
|
||||||
|
.. versionadded:: 14May2021
|
||||||
|
|
||||||
**Install:**
|
**Install:**
|
||||||
|
|
||||||
This package has :ref:`specific installation instructions <ml-pace>` on the
|
This package has :ref:`specific installation instructions <ml-pace>` on the
|
||||||
@ -1868,6 +1885,8 @@ of a neural network.
|
|||||||
This package was written by Christopher Barrett
|
This package was written by Christopher Barrett
|
||||||
with contributions by Doyl Dickel, Mississippi State University.
|
with contributions by Doyl Dickel, Mississippi State University.
|
||||||
|
|
||||||
|
.. versionadded:: 27May2021
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/ML-RANN: filenames -> commands
|
* src/ML-RANN: filenames -> commands
|
||||||
@ -1993,7 +2012,7 @@ support for new file formats can be added to LAMMPS (or VMD or other
|
|||||||
programs that use them) without having to re-compile the application
|
programs that use them) without having to re-compile the application
|
||||||
itself. More information about the VMD molfile plugins can be found
|
itself. More information about the VMD molfile plugins can be found
|
||||||
at
|
at
|
||||||
`http://www.ks.uiuc.edu/Research/vmd/plugins/molfile <http://www.ks.uiuc.edu/Research/vmd/plugins/molfile>`_.
|
`https://www.ks.uiuc.edu/Research/vmd/plugins/molfile <https://www.ks.uiuc.edu/Research/vmd/plugins/molfile>`_.
|
||||||
|
|
||||||
**Author:** Axel Kohlmeyer (Temple U).
|
**Author:** Axel Kohlmeyer (Temple U).
|
||||||
|
|
||||||
@ -2084,7 +2103,7 @@ NETCDF package
|
|||||||
Dump styles for writing NetCDF formatted dump files. NetCDF is a
|
Dump styles for writing NetCDF formatted dump files. NetCDF is a
|
||||||
portable, binary, self-describing file format developed on top of
|
portable, binary, self-describing file format developed on top of
|
||||||
HDF5. The file contents follow the AMBER NetCDF trajectory conventions
|
HDF5. The file contents follow the AMBER NetCDF trajectory conventions
|
||||||
(http://ambermd.org/netcdf/nctraj.xhtml), but include extensions.
|
(https://ambermd.org/netcdf/nctraj.xhtml), but include extensions.
|
||||||
|
|
||||||
To use this package you must have the NetCDF library available on your
|
To use this package you must have the NetCDF library available on your
|
||||||
system.
|
system.
|
||||||
@ -2095,7 +2114,7 @@ tools:
|
|||||||
* `Ovito <ovito_>`_ (Ovito supports the AMBER convention and the extensions mentioned above)
|
* `Ovito <ovito_>`_ (Ovito supports the AMBER convention and the extensions mentioned above)
|
||||||
* `VMD <vmd-home_>`_
|
* `VMD <vmd-home_>`_
|
||||||
|
|
||||||
.. _ovito: http://www.ovito.org
|
.. _ovito: https://www.ovito.org
|
||||||
|
|
||||||
.. _vmd-home: https://www.ks.uiuc.edu/Research/vmd/
|
.. _vmd-home: https://www.ks.uiuc.edu/Research/vmd/
|
||||||
|
|
||||||
@ -2239,6 +2258,7 @@ Foster (UTSA).
|
|||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/PERI: filenames -> commands
|
* src/PERI: filenames -> commands
|
||||||
|
* :doc:`Peridynamics Howto <Howto_peri>`
|
||||||
* `doc/PDF/PDLammps_overview.pdf <PDF/PDLammps_overview.pdf>`_
|
* `doc/PDF/PDLammps_overview.pdf <PDF/PDLammps_overview.pdf>`_
|
||||||
* `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_
|
* `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_
|
||||||
* `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_
|
* `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_
|
||||||
@ -2303,6 +2323,8 @@ try to load the contained plugins automatically at start-up.
|
|||||||
|
|
||||||
**Authors:** Axel Kohlmeyer (Temple U)
|
**Authors:** Axel Kohlmeyer (Temple U)
|
||||||
|
|
||||||
|
.. versionadded:: 8Apr2021
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/PLUGIN: filenames -> commands
|
* src/PLUGIN: filenames -> commands
|
||||||
@ -2456,7 +2478,7 @@ A :doc:`fix qmmm <fix_qmmm>` command which allows LAMMPS to be used as
|
|||||||
the MM code in a QM/MM simulation. This is currently only available
|
the MM code in a QM/MM simulation. This is currently only available
|
||||||
in combination with the `Quantum ESPRESSO <espresso_>`_ package.
|
in combination with the `Quantum ESPRESSO <espresso_>`_ package.
|
||||||
|
|
||||||
.. _espresso: http://www.quantum-espresso.org
|
.. _espresso: https://www.quantum-espresso.org
|
||||||
|
|
||||||
To use this package you must have Quantum ESPRESSO (QE) available on
|
To use this package you must have Quantum ESPRESSO (QE) available on
|
||||||
your system and include its coupling library in the compilation and
|
your system and include its coupling library in the compilation and
|
||||||
@ -2868,7 +2890,7 @@ collection of atoms by wrapping the `Voro++ library <voro-home_>`_. This
|
|||||||
can be used to calculate the local volume or each atoms or its near
|
can be used to calculate the local volume or each atoms or its near
|
||||||
neighbors.
|
neighbors.
|
||||||
|
|
||||||
.. _voro-home: http://math.lbl.gov/voro++
|
.. _voro-home: https://math.lbl.gov/voro++
|
||||||
|
|
||||||
To use this package you must have the Voro++ library available on your
|
To use this package you must have the Voro++ library available on your
|
||||||
system.
|
system.
|
||||||
@ -2902,9 +2924,9 @@ A :doc:`dump vtk <dump_vtk>` command which outputs snapshot info in the
|
|||||||
`VTK format <vtk_>`_, enabling visualization by `Paraview <paraview_>`_ or
|
`VTK format <vtk_>`_, enabling visualization by `Paraview <paraview_>`_ or
|
||||||
other visualization packages.
|
other visualization packages.
|
||||||
|
|
||||||
.. _vtk: http://www.vtk.org
|
.. _vtk: https://www.vtk.org
|
||||||
|
|
||||||
.. _paraview: http://www.paraview.org
|
.. _paraview: https://www.paraview.org
|
||||||
|
|
||||||
To use this package you must have VTK library available on your
|
To use this package you must have VTK library available on your
|
||||||
system.
|
system.
|
||||||
@ -2941,11 +2963,13 @@ which discuss the `QuickFF <quickff_>`_ methodology.
|
|||||||
|
|
||||||
.. _vanduyfhuys2015: https://doi.org/10.1002/jcc.23877
|
.. _vanduyfhuys2015: https://doi.org/10.1002/jcc.23877
|
||||||
.. _vanduyfhuys2018: https://doi.org/10.1002/jcc.25173
|
.. _vanduyfhuys2018: https://doi.org/10.1002/jcc.25173
|
||||||
.. _quickff: http://molmod.github.io/QuickFF
|
.. _quickff: https://molmod.github.io/QuickFF
|
||||||
.. _yaff: https://github.com/molmod/yaff
|
.. _yaff: https://github.com/molmod/yaff
|
||||||
|
|
||||||
**Author:** Steven Vandenbrande.
|
**Author:** Steven Vandenbrande.
|
||||||
|
|
||||||
|
.. versionadded:: 1Feb2019
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/YAFF/README
|
* src/YAFF/README
|
||||||
|
|||||||
@ -43,26 +43,18 @@ Note that for AtomEye, you need version 3, and there is a line in the
|
|||||||
scripts that specifies the path and name of the executable. See the
|
scripts that specifies the path and name of the executable. See the
|
||||||
AtomEye web pages for more details:
|
AtomEye web pages for more details:
|
||||||
|
|
||||||
* `http://li.mit.edu/Archive/Graphics/A/ <atomeye_>`_
|
* `http://li.mit.edu/Archive/Graphics/A/ <http://li.mit.edu/Archive/Graphics/A/>`_
|
||||||
* `http://li.mit.edu/Archive/Graphics/A3/A3.html <atomeye3_>`_
|
* `http://li.mit.edu/Archive/Graphics/A3/A3.html <http://li.mit.edu/Archive/Graphics/A3/A3.html>`_
|
||||||
|
|
||||||
.. _atomeye: http://li.mit.edu/Archive/Graphics/A/
|
The latter link is to AtomEye 3 which has the scripting capability
|
||||||
|
needed by these Python scripts.
|
||||||
.. _atomeye3: http://li.mit.edu/Archive/Graphics/A3/A3.html
|
|
||||||
|
|
||||||
The latter link is to AtomEye 3 which has the scripting
|
|
||||||
capability needed by these Python scripts.
|
|
||||||
|
|
||||||
Note that for PyMol, you need to have built and installed the
|
Note that for PyMol, you need to have built and installed the
|
||||||
open-source version of PyMol in your Python, so that you can import it
|
open-source version of PyMol in your Python, so that you can import it
|
||||||
from a Python script. See the PyMol web pages for more details:
|
from a Python script. See the PyMol web pages for more details:
|
||||||
|
|
||||||
* `https://www.pymol.org <pymolhome_>`_
|
* `https://www.pymol.org <https://www.pymol.org>`_
|
||||||
* `https://github.com/schrodinger/pymol-open-source <pymolopen_>`_
|
* `https://github.com/schrodinger/pymol-open-source <https://github.com/schrodinger/pymol-open-source>`_
|
||||||
|
|
||||||
.. _pymolhome: https://www.pymol.org
|
|
||||||
|
|
||||||
.. _pymolopen: https://github.com/schrodinger/pymol-open-source
|
|
||||||
|
|
||||||
The latter link is to the open-source version.
|
The latter link is to the open-source version.
|
||||||
|
|
||||||
|
|||||||
@ -18,17 +18,17 @@ together.
|
|||||||
Python_error
|
Python_error
|
||||||
Python_trouble
|
Python_trouble
|
||||||
|
|
||||||
If you are not familiar with `Python <http://www.python.org>`_, it is a
|
If you are not familiar with `Python <https://www.python.org>`_, it is a
|
||||||
powerful scripting and programming language which can do almost
|
powerful scripting and programming language which can do almost
|
||||||
everything that compiled languages like C, C++, or Fortran can do in
|
everything that compiled languages like C, C++, or Fortran can do in
|
||||||
fewer lines of code. It also comes with a large collection of add-on
|
fewer lines of code. It also comes with a large collection of add-on
|
||||||
modules for many purposes (either bundled or easily installed from
|
modules for many purposes (either bundled or easily installed from
|
||||||
Python code repositories). The major drawback is slower execution speed
|
Python code repositories). The major drawback is slower execution speed
|
||||||
of the script code compared to compiled programming languages. But when
|
of the script code compared to compiled programming languages. But when
|
||||||
the script code is interfaced to optimized compiled code, performance can
|
the script code is interfaced to optimized compiled code, performance
|
||||||
be on par with a standalone executable, for as long as the scripting is
|
can be on par with a standalone executable, for as long as the scripting
|
||||||
restricted to high-level operations. Thus Python is also convenient to
|
is restricted to high-level operations. Thus Python is also convenient
|
||||||
use as a "glue" language to "drive" a program through its library
|
to use as a "glue" language to "drive" a program through its library
|
||||||
interface, or to hook multiple pieces of software together, such as a
|
interface, or to hook multiple pieces of software together, such as a
|
||||||
simulation code and a visualization tool, or to run a coupled
|
simulation code and a visualization tool, or to run a coupled
|
||||||
multi-scale or multi-physics model.
|
multi-scale or multi-physics model.
|
||||||
|
|||||||
@ -38,6 +38,40 @@ using the NumPy access method.
|
|||||||
for n in np.nditer(nlist):
|
for n in np.nditer(nlist):
|
||||||
print(" atom {} with ID {}".format(n,tags[n]))
|
print(" atom {} with ID {}".format(n,tags[n]))
|
||||||
|
|
||||||
|
Another example for extracting a full neighbor list without evaluating a
|
||||||
|
potential is shown below.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from lammps import lammps
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
lmp = lammps()
|
||||||
|
lmp.commands_string("""
|
||||||
|
newton off
|
||||||
|
region box block -2 2 -2 2 -2 2
|
||||||
|
lattice fcc 1.0
|
||||||
|
create_box 1 box
|
||||||
|
create_atoms 1 box
|
||||||
|
mass 1 1.0
|
||||||
|
pair_style zero 1.0 full
|
||||||
|
pair_coeff * *
|
||||||
|
run 0 post no""")
|
||||||
|
|
||||||
|
# look up the neighbor list
|
||||||
|
nlidx = lmp.find_pair_neighlist('zero')
|
||||||
|
nl = lmp.numpy.get_neighlist(nlidx)
|
||||||
|
tags = lmp.extract_atom('id')
|
||||||
|
print("full neighbor list with {} entries".format(nl.size))
|
||||||
|
# print neighbor list contents
|
||||||
|
for i in range(0,nl.size):
|
||||||
|
idx, nlist = nl.get(i)
|
||||||
|
print("\natom {} with ID {} has {} neighbors:".format(idx,tags[idx],nlist.size))
|
||||||
|
if nlist.size > 0:
|
||||||
|
for n in np.nditer(nlist):
|
||||||
|
pass
|
||||||
|
print(" atom {} with ID {}".format(n,tags[n]))
|
||||||
|
|
||||||
**Methods:**
|
**Methods:**
|
||||||
|
|
||||||
* :py:meth:`lammps.get_neighlist() <lammps.lammps.get_neighlist()>`: Get neighbor list for given index
|
* :py:meth:`lammps.get_neighlist() <lammps.lammps.get_neighlist()>`: Get neighbor list for given index
|
||||||
|
|||||||
@ -30,12 +30,13 @@ executable itself can be placed elsewhere.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The redirection operator "<" will not always work when running
|
The redirection operator "<" will not always work when running in
|
||||||
in parallel with mpirun or mpiexec; for those systems the -in form is required.
|
parallel with ``mpirun`` or ``mpiexec``; for those systems the -in
|
||||||
|
form is required.
|
||||||
|
|
||||||
As LAMMPS runs it prints info to the screen and a logfile named
|
As LAMMPS runs it prints info to the screen and a logfile named
|
||||||
*log.lammps*\ . More info about output is given on the
|
*log.lammps*\ . More info about output is given on the :doc:`screen and
|
||||||
:doc:`screen and logfile output <Run_output>` page.
|
logfile output <Run_output>` page.
|
||||||
|
|
||||||
If LAMMPS encounters errors in the input script or while running a
|
If LAMMPS encounters errors in the input script or while running a
|
||||||
simulation it will print an ERROR message and stop or a WARNING
|
simulation it will print an ERROR message and stop or a WARNING
|
||||||
|
|||||||
@ -93,13 +93,13 @@ switch is not set (the default), LAMMPS will operate as if the KOKKOS
|
|||||||
package were not installed; i.e. you can run standard LAMMPS or with
|
package were not installed; i.e. you can run standard LAMMPS or with
|
||||||
the GPU or OPENMP packages, for testing or benchmarking purposes.
|
the GPU or OPENMP packages, for testing or benchmarking purposes.
|
||||||
|
|
||||||
Additional optional keyword/value pairs can be specified which
|
Additional optional keyword/value pairs can be specified which determine
|
||||||
determine how Kokkos will use the underlying hardware on your
|
how Kokkos will use the underlying hardware on your platform. These
|
||||||
platform. These settings apply to each MPI task you launch via the
|
settings apply to each MPI task you launch via the ``mpirun`` or
|
||||||
"mpirun" or "mpiexec" command. You may choose to run one or more MPI
|
``mpiexec`` command. You may choose to run one or more MPI tasks per
|
||||||
tasks per physical node. Note that if you are running on a desktop
|
physical node. Note that if you are running on a desktop machine, you
|
||||||
machine, you typically have one physical node. On a cluster or
|
typically have one physical node. On a cluster or supercomputer there
|
||||||
supercomputer there may be dozens or 1000s of physical nodes.
|
may be dozens or 1000s of physical nodes.
|
||||||
|
|
||||||
Either the full word or an abbreviation can be used for the keywords.
|
Either the full word or an abbreviation can be used for the keywords.
|
||||||
Note that the keywords do not use a leading minus sign. I.e. the
|
Note that the keywords do not use a leading minus sign. I.e. the
|
||||||
@ -148,9 +148,9 @@ one of these 4 environment variables
|
|||||||
MV2_COMM_WORLD_LOCAL_RANK (Mvapich)
|
MV2_COMM_WORLD_LOCAL_RANK (Mvapich)
|
||||||
OMPI_COMM_WORLD_LOCAL_RANK (OpenMPI)
|
OMPI_COMM_WORLD_LOCAL_RANK (OpenMPI)
|
||||||
|
|
||||||
which are initialized by the "srun", "mpirun" or "mpiexec" commands.
|
which are initialized by the ``srun``, ``mpirun``, or ``mpiexec``
|
||||||
The environment variable setting for each MPI rank is used to assign a
|
commands. The environment variable setting for each MPI rank is used to
|
||||||
unique GPU ID to the MPI task.
|
assign a unique GPU ID to the MPI task.
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
|
|||||||
@ -16,46 +16,47 @@ simulation. An example set of statistics is shown here:
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms
|
Loop time of 0.942801 on 4 procs for 300 steps with 2004 atoms
|
||||||
|
|
||||||
Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s
|
Performance: 54.985 ns/day, 0.436 hours/ns, 318.201 timesteps/s, 637.674 katom-step/s
|
||||||
97.0% CPU use with 4 MPI tasks x no OpenMP threads
|
195.2% CPU use with 2 MPI tasks x 2 OpenMP threads
|
||||||
|
|
||||||
MPI task timings breakdown:
|
MPI task timing breakdown:
|
||||||
Section \| min time \| avg time \| max time \|%varavg\| %total
|
Section \| min time \| avg time \| max time \|%varavg\| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair \| 1.9808 \| 2.0134 \| 2.0318 \| 1.4 \| 71.60
|
Pair \| 0.61419 \| 0.62872 \| 0.64325 \| 1.8 \| 66.69
|
||||||
Bond \| 0.0021894 \| 0.0060319 \| 0.010058 \| 4.7 \| 0.21
|
Bond \| 0.0028608 \| 0.0028899 \| 0.002919 \| 0.1 \| 0.31
|
||||||
Kspace \| 0.3207 \| 0.3366 \| 0.36616 \| 3.1 \| 11.97
|
Kspace \| 0.12652 \| 0.14048 \| 0.15444 \| 3.7 \| 14.90
|
||||||
Neigh \| 0.28411 \| 0.28464 \| 0.28516 \| 0.1 \| 10.12
|
Neigh \| 0.10242 \| 0.10242 \| 0.10242 \| 0.0 \| 10.86
|
||||||
Comm \| 0.075732 \| 0.077018 \| 0.07883 \| 0.4 \| 2.74
|
Comm \| 0.026753 \| 0.027593 \| 0.028434 \| 0.5 \| 2.93
|
||||||
Output \| 0.00030518 \| 0.00042665 \| 0.00078821 \| 1.0 \| 0.02
|
Output \| 0.00018341 \| 0.00030942 \| 0.00043542 \| 0.0 \| 0.03
|
||||||
Modify \| 0.086606 \| 0.086631 \| 0.086668 \| 0.0 \| 3.08
|
Modify \| 0.039117 \| 0.039348 \| 0.039579 \| 0.1 \| 4.17
|
||||||
Other \| \| 0.007178 \| \| \| 0.26
|
Other \| \| 0.001041 \| \| \| 0.11
|
||||||
|
|
||||||
Nlocal: 501 ave 508 max 490 min
|
Nlocal: 1002 ave 1006 max 998 min
|
||||||
Histogram: 1 0 0 0 0 0 1 1 0 1
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
Nghost: 6586.25 ave 6628 max 6548 min
|
Nghost: 8670.5 ave 8691 max 8650 min
|
||||||
Histogram: 1 0 1 0 0 0 1 0 0 1
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
Neighs: 177007 ave 180562 max 170212 min
|
Neighs: 354010 ave 357257 max 350763 min
|
||||||
Histogram: 1 0 0 0 0 0 0 1 1 1
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
|
||||||
Total # of neighbors = 708028
|
Total # of neighbors = 708020
|
||||||
Ave neighs/atom = 353.307
|
Ave neighs/atom = 353.30339
|
||||||
Ave special neighs/atom = 2.34032
|
Ave special neighs/atom = 2.3403194
|
||||||
Neighbor list builds = 26
|
Neighbor list builds = 26
|
||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The first section provides a global loop timing summary. The *loop
|
The first section provides a global loop timing summary. The *loop time*
|
||||||
time* is the total wall-clock time for the simulation to run. The
|
is the total wall-clock time for the simulation to run. The
|
||||||
*Performance* line is provided for convenience to help predict how
|
*Performance* line is provided for convenience to help predict how long
|
||||||
long it will take to run a desired physical simulation. The *CPU use*
|
it will take to run a desired physical simulation and to have numbers
|
||||||
line provides the CPU utilization per MPI task; it should be close to
|
useful for performance comparison between different simulation settings
|
||||||
100% times the number of OpenMP threads (or 1 of not using OpenMP).
|
or system sizes. The *CPU use* line provides the CPU utilization per
|
||||||
Lower numbers correspond to delays due to file I/O or insufficient
|
MPI task; it should be close to 100% times the number of OpenMP threads
|
||||||
thread utilization.
|
(or 1 of not using OpenMP). Lower numbers correspond to delays due to
|
||||||
|
file I/O or insufficient thread utilization.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -25,8 +25,8 @@ in parallel, follow these steps.
|
|||||||
|
|
||||||
Download and install a compatible MPI library binary package:
|
Download and install a compatible MPI library binary package:
|
||||||
|
|
||||||
* for 32-bit Windows: `mpich2-1.4.1p1-win-ia32.msi <http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi>`_
|
* for 32-bit Windows: `mpich2-1.4.1p1-win-ia32.msi <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi>`_
|
||||||
* for 64-bit Windows: `mpich2-1.4.1p1-win-x86-64.msi <http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_
|
* for 64-bit Windows: `mpich2-1.4.1p1-win-x86-64.msi <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_
|
||||||
|
|
||||||
The LAMMPS Windows installer packages will automatically adjust your
|
The LAMMPS Windows installer packages will automatically adjust your
|
||||||
path for the default location of this MPI package. After the
|
path for the default location of this MPI package. After the
|
||||||
|
|||||||
@ -39,7 +39,7 @@ toolkit software on your system (this is only tested on Linux
|
|||||||
and unsupported on Windows):
|
and unsupported on Windows):
|
||||||
|
|
||||||
* Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/\*/information
|
* Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/\*/information
|
||||||
* Go to http://www.nvidia.com/object/cuda_get.html
|
* Go to https://developer.nvidia.com/cuda-downloads
|
||||||
* Install a driver and toolkit appropriate for your system (SDK is not necessary)
|
* Install a driver and toolkit appropriate for your system (SDK is not necessary)
|
||||||
* Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to
|
* Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to
|
||||||
list supported devices and properties
|
list supported devices and properties
|
||||||
@ -76,10 +76,11 @@ instructions.
|
|||||||
|
|
||||||
**Run with the GPU package from the command line:**
|
**Run with the GPU package from the command line:**
|
||||||
|
|
||||||
The mpirun or mpiexec command sets the total number of MPI tasks used
|
The ``mpirun`` or ``mpiexec`` command sets the total number of MPI tasks
|
||||||
by LAMMPS (one or multiple per compute node) and the number of MPI
|
used by LAMMPS (one or multiple per compute node) and the number of MPI
|
||||||
tasks used per node. E.g. the mpirun command in MPICH does this via
|
tasks used per node. E.g. the ``mpirun`` command in MPICH does this via
|
||||||
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
|
its ``-np`` and ``-ppn`` switches. Ditto for OpenMPI via ``-np`` and
|
||||||
|
``-npernode``.
|
||||||
|
|
||||||
When using the GPU package, you cannot assign more than one GPU to a
|
When using the GPU package, you cannot assign more than one GPU to a
|
||||||
single MPI task. However multiple MPI tasks can share the same GPU,
|
single MPI task. However multiple MPI tasks can share the same GPU,
|
||||||
@ -129,8 +130,8 @@ GPU package pair styles.
|
|||||||
|
|
||||||
**Or run with the GPU package by editing an input script:**
|
**Or run with the GPU package by editing an input script:**
|
||||||
|
|
||||||
The discussion above for the mpirun/mpiexec command, MPI tasks/node,
|
The discussion above for the ``mpirun`` or ``mpiexec`` command, MPI
|
||||||
and use of multiple MPI tasks/GPU is the same.
|
tasks/node, and use of multiple MPI tasks/GPU is the same.
|
||||||
|
|
||||||
Use the :doc:`suffix gpu <suffix>` command, or you can explicitly add an
|
Use the :doc:`suffix gpu <suffix>` command, or you can explicitly add an
|
||||||
"gpu" suffix to individual styles in your input script, e.g.
|
"gpu" suffix to individual styles in your input script, e.g.
|
||||||
|
|||||||
@ -537,5 +537,5 @@ References
|
|||||||
""""""""""
|
""""""""""
|
||||||
|
|
||||||
* Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS", in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann.
|
* Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS", in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann.
|
||||||
* Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <http://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95).
|
* Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <https://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95).
|
||||||
* Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101.
|
* Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101.
|
||||||
|
|||||||
@ -72,12 +72,12 @@ See the :ref:`Build extras <kokkos>` page for instructions.
|
|||||||
Running LAMMPS with the KOKKOS package
|
Running LAMMPS with the KOKKOS package
|
||||||
""""""""""""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
All Kokkos operations occur within the context of an individual MPI
|
All Kokkos operations occur within the context of an individual MPI task
|
||||||
task running on a single node of the machine. The total number of MPI
|
running on a single node of the machine. The total number of MPI tasks
|
||||||
tasks used by LAMMPS (one or multiple per compute node) is set in the
|
used by LAMMPS (one or multiple per compute node) is set in the usual
|
||||||
usual manner via the mpirun or mpiexec commands, and is independent of
|
manner via the ``mpirun`` or ``mpiexec`` commands, and is independent of
|
||||||
Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and
|
Kokkos. E.g. the mpirun command in OpenMPI does this via its ``-np`` and
|
||||||
-npernode switches. Ditto for MPICH via -np and -ppn.
|
``-npernode`` switches. Ditto for MPICH via ``-np`` and ``-ppn``.
|
||||||
|
|
||||||
Running on a multi-core CPU
|
Running on a multi-core CPU
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -310,7 +310,8 @@ Alternatively the effect of the "-sf" or "-pk" switches can be
|
|||||||
duplicated by adding the :doc:`package kokkos <package>` or :doc:`suffix kk <suffix>` commands to your input script.
|
duplicated by adding the :doc:`package kokkos <package>` or :doc:`suffix kk <suffix>` commands to your input script.
|
||||||
|
|
||||||
The discussion above for building LAMMPS with the KOKKOS package, the
|
The discussion above for building LAMMPS with the KOKKOS package, the
|
||||||
mpirun/mpiexec command, and setting appropriate thread are the same.
|
``mpirun`` or ``mpiexec`` command, and setting appropriate thread
|
||||||
|
properties are the same.
|
||||||
|
|
||||||
You must still use the "-k on" :doc:`command-line switch <Run_options>`
|
You must still use the "-k on" :doc:`command-line switch <Run_options>`
|
||||||
to enable the KOKKOS package, and specify its additional arguments for
|
to enable the KOKKOS package, and specify its additional arguments for
|
||||||
|
|||||||
@ -33,8 +33,8 @@ These examples assume one or more 16-core nodes.
|
|||||||
mpirun -np 4 lmp_omp -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
|
mpirun -np 4 lmp_omp -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
|
||||||
mpirun -np 32 -ppn 4 lmp_omp -sf omp -pk omp 4 -in in.script # 8 nodes, 4 MPI tasks/node, 4 threads/task
|
mpirun -np 32 -ppn 4 lmp_omp -sf omp -pk omp 4 -in in.script # 8 nodes, 4 MPI tasks/node, 4 threads/task
|
||||||
|
|
||||||
The mpirun or mpiexec command sets the total number of MPI tasks used
|
The ``mpirun`` or ``mpiexec`` command sets the total number of MPI tasks
|
||||||
by LAMMPS (one or multiple per compute node) and the number of MPI
|
used by LAMMPS (one or multiple per compute node) and the number of MPI
|
||||||
tasks used per node. E.g. the mpirun command in MPICH does this via
|
tasks used per node. E.g. the mpirun command in MPICH does this via
|
||||||
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
|
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
|
||||||
|
|
||||||
@ -58,8 +58,8 @@ OMP_NUM_THREADS environment variable.
|
|||||||
Or run with the OPENMP package by editing an input script
|
Or run with the OPENMP package by editing an input script
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
The discussion above for the mpirun/mpiexec command, MPI tasks/node,
|
The discussion above for the ``mpirun`` or ``mpiexec`` command, MPI
|
||||||
and threads/MPI task is the same.
|
tasks/node, and threads/MPI task is the same.
|
||||||
|
|
||||||
Use the :doc:`suffix omp <suffix>` command, or you can explicitly add an
|
Use the :doc:`suffix omp <suffix>` command, or you can explicitly add an
|
||||||
"omp" suffix to individual styles in your input script, e.g.
|
"omp" suffix to individual styles in your input script, e.g.
|
||||||
@ -97,7 +97,7 @@ sub-section.
|
|||||||
|
|
||||||
A description of the multi-threading strategy used in the OPENMP
|
A description of the multi-threading strategy used in the OPENMP
|
||||||
package and some performance examples are
|
package and some performance examples are
|
||||||
`presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_.
|
`presented here <https://drive.google.com/file/d/1d1gLK6Ru6aPYB50Ld2tO10Li8zgPVNB8/view?usp=sharing>`_.
|
||||||
|
|
||||||
Guidelines for best performance
|
Guidelines for best performance
|
||||||
"""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""
|
||||||
|
|||||||
@ -117,33 +117,15 @@ script.
|
|||||||
with all its accelerator packages installed. Note however that the
|
with all its accelerator packages installed. Note however that the
|
||||||
INTEL and KOKKOS packages require you to choose one of their
|
INTEL and KOKKOS packages require you to choose one of their
|
||||||
hardware options when building for a specific platform. I.e. CPU or
|
hardware options when building for a specific platform. I.e. CPU or
|
||||||
Phi option for the INTEL package. Or the OpenMP, Cuda, or Phi
|
Phi option for the INTEL package. Or the OpenMP, CUDA, HIP, SYCL,
|
||||||
option for the KOKKOS package.
|
or Phi option for the KOKKOS package. Or the OpenCL, HIP, or CUDA
|
||||||
|
option for the GPU package.
|
||||||
|
|
||||||
These are the exceptions. You cannot build a single executable with:
|
These are the exceptions. You cannot build a single executable with:
|
||||||
|
|
||||||
* both the INTEL Phi and KOKKOS Phi options
|
* both the INTEL Phi and KOKKOS Phi options
|
||||||
* the INTEL Phi or Kokkos Phi option, and the GPU package
|
* the INTEL Phi or Kokkos Phi option, and the GPU package
|
||||||
|
|
||||||
See the examples/accelerate/README and make.list files for sample
|
|
||||||
Make.py commands that build LAMMPS with any or all of the accelerator
|
|
||||||
packages. As an example, here is a command that builds with all the
|
|
||||||
GPU related packages installed (GPU, KOKKOS with Cuda), including
|
|
||||||
settings to build the needed auxiliary GPU libraries for Kepler GPUs:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi
|
|
||||||
|
|
||||||
The examples/accelerate directory also has input scripts that can be
|
|
||||||
used with all of the accelerator packages. See its README file for
|
|
||||||
details.
|
|
||||||
|
|
||||||
Likewise, the bench directory has FERMI and KEPLER and PHI
|
|
||||||
sub-directories with Make.py commands and input scripts for using all
|
|
||||||
the accelerator packages on various machines. See the README files in
|
|
||||||
those directories.
|
|
||||||
|
|
||||||
As mentioned above, the `Benchmark page <https://www.lammps.org/bench.html>`_ of the LAMMPS website gives
|
As mentioned above, the `Benchmark page <https://www.lammps.org/bench.html>`_ of the LAMMPS website gives
|
||||||
performance results for the various accelerator packages for several
|
performance results for the various accelerator packages for several
|
||||||
of the standard LAMMPS benchmark problems, as a function of problem
|
of the standard LAMMPS benchmark problems, as a function of problem
|
||||||
|
|||||||
@ -205,6 +205,7 @@ scripts are available:
|
|||||||
whitespace.py # detects TAB characters and trailing whitespace
|
whitespace.py # detects TAB characters and trailing whitespace
|
||||||
homepage.py # detects outdated LAMMPS homepage URLs (pointing to sandia.gov instead of lammps.org)
|
homepage.py # detects outdated LAMMPS homepage URLs (pointing to sandia.gov instead of lammps.org)
|
||||||
errordocs.py # detects deprecated error docs in header files
|
errordocs.py # detects deprecated error docs in header files
|
||||||
|
versiontags.py # detects .. versionadded:: or .. versionchanged:: with pending version date
|
||||||
|
|
||||||
The tools need to be given the main folder of the LAMMPS distribution
|
The tools need to be given the main folder of the LAMMPS distribution
|
||||||
or individual file names as argument and will by default check them
|
or individual file names as argument and will by default check them
|
||||||
@ -397,7 +398,7 @@ ipp tool
|
|||||||
------------------
|
------------------
|
||||||
|
|
||||||
The tools/ipp directory contains a Perl script ipp which can be used
|
The tools/ipp directory contains a Perl script ipp which can be used
|
||||||
to facilitate the creation of a complicated file (say, a lammps input
|
to facilitate the creation of a complicated file (say, a LAMMPS input
|
||||||
script or tools/createatoms input file) using a template file.
|
script or tools/createatoms input file) using a template file.
|
||||||
|
|
||||||
ipp was created and is maintained by Reese Jones (Sandia), rjones at
|
ipp was created and is maintained by Reese Jones (Sandia), rjones at
|
||||||
@ -512,8 +513,8 @@ with an ``.inputrc`` file in the home directory. For application
|
|||||||
specific customization, the LAMMPS shell uses the name "lammps-shell".
|
specific customization, the LAMMPS shell uses the name "lammps-shell".
|
||||||
For more information about using and customizing an application using
|
For more information about using and customizing an application using
|
||||||
readline, please see the available documentation at:
|
readline, please see the available documentation at:
|
||||||
`http://www.gnu.org/s/readline/#Documentation
|
https://www.gnu.org/software/readline/
|
||||||
<http://www.gnu.org/s/readline/#Documentation>`_
|
|
||||||
|
|
||||||
Additional commands
|
Additional commands
|
||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
@ -715,7 +716,7 @@ See the README.pdf file for more information.
|
|||||||
These scripts were written by Arun Subramaniyan at Purdue Univ
|
These scripts were written by Arun Subramaniyan at Purdue Univ
|
||||||
(asubrama at purdue.edu).
|
(asubrama at purdue.edu).
|
||||||
|
|
||||||
.. _matlabhome: http://www.mathworks.com
|
.. _matlabhome: https://www.mathworks.com
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -1046,7 +1047,7 @@ the binary file. This usually is a so-called little endian hardware
|
|||||||
SWIG interface
|
SWIG interface
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
The `SWIG tool <http://swig.org>`_ offers a mostly automated way to
|
The `SWIG tool <https://swig.org>`_ offers a mostly automated way to
|
||||||
incorporate compiled code modules into scripting languages. It
|
incorporate compiled code modules into scripting languages. It
|
||||||
processes the function prototypes in C and generates wrappers for a wide
|
processes the function prototypes in C and generates wrappers for a wide
|
||||||
variety of scripting languages from it. Thus it can also be applied to
|
variety of scripting languages from it. Thus it can also be applied to
|
||||||
@ -1126,7 +1127,7 @@ data passed or returned as pointers are included in the ``lammps.i``
|
|||||||
file. So most of the functionality of the library interface should be
|
file. So most of the functionality of the library interface should be
|
||||||
accessible. What works and what does not depends a bit on the
|
accessible. What works and what does not depends a bit on the
|
||||||
individual language for which the wrappers are built and how well SWIG
|
individual language for which the wrappers are built and how well SWIG
|
||||||
supports those. The `SWIG documentation <http://swig.org/doc.html>`_
|
supports those. The `SWIG documentation <https://swig.org/doc.html>`_
|
||||||
has very detailed instructions and recommendations.
|
has very detailed instructions and recommendations.
|
||||||
|
|
||||||
Usage examples
|
Usage examples
|
||||||
|
|||||||
@ -91,7 +91,7 @@ quantities.
|
|||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||||
| *charge* | charge | atomic system with charges |
|
| *charge* | charge | atomic system with charges |
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||||
| *dielectric* | dipole, area, curvature | system with surface polarization |
|
| *dielectric* | normx normy normz area/patch ed em epsilon curv | system with surface polarization |
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||||
| *dipole* | charge and dipole moment | system with dipolar particles |
|
| *dipole* | charge and dipole moment | system with dipolar particles |
|
||||||
+--------------+-----------------------------------------------------+--------------------------------------+
|
+--------------+-----------------------------------------------------+--------------------------------------+
|
||||||
@ -180,16 +180,21 @@ vector with the 3 diameters of the ellipsoid and a quaternion 4-vector
|
|||||||
with its orientation.
|
with its orientation.
|
||||||
|
|
||||||
For the *dielectric* style, each particle can be either a physical
|
For the *dielectric* style, each particle can be either a physical
|
||||||
particle (e.g. an ion), or an interface particle representing a
|
particle (e.g. an ion), or an interface particle representing a boundary
|
||||||
boundary element. For physical particles, the per-particle properties
|
element between two regions of different dielectric constant. For
|
||||||
are the same as atom_style full. For interface particles, in addition
|
interface particles, in addition to the properties associated with
|
||||||
to these properties, each particle also has an area, a normal unit
|
atom_style full, each particle also should be assigned a normal unit
|
||||||
vector, a mean local curvature, the mean and difference of the
|
vector (defined by normx, normy, normz), an area (area/patch), the
|
||||||
dielectric constants of two sides of the interface, and the local
|
difference and mean of the dielectric constants of two sides of the
|
||||||
dielectric constant at the boundary element. The distinction between
|
interface along the direction of the normal vector (ed and em), the
|
||||||
the physical and interface particles is only meaningful when :doc:`fix
|
local dielectric constant at the boundary element (epsilon), and a mean
|
||||||
polarize <fix_polarize>` commands are applied to the interface
|
local curvature (curv). Physical particles must be assigned these
|
||||||
particles.
|
values, as well, but only their local dielectric constants will be used;
|
||||||
|
see documentation for associated :doc:`pair styles <pair_dielectric>`
|
||||||
|
and :doc:`fixes <fix_polarize>`. The distinction between the physical
|
||||||
|
and interface particles is only meaningful when :doc:`fix polarize
|
||||||
|
<fix_polarize>` commands are applied to the interface particles. This
|
||||||
|
style is part of the DIELECTRIC package.
|
||||||
|
|
||||||
For the *dipole* style, a point dipole is defined for each point
|
For the *dipole* style, a point dipole is defined for each point
|
||||||
particle. Note that if you wish the particles to be finite-size
|
particle. Note that if you wish the particles to be finite-size
|
||||||
|
|||||||
@ -138,15 +138,14 @@ the *overlay/pair* keyword. These settings require specific
|
|||||||
restrictions. Further details can be found in the `:doc: how to
|
restrictions. Further details can be found in the `:doc: how to
|
||||||
<Howto_BPM>` page on BPMs.
|
<Howto_BPM>` page on BPMs.
|
||||||
|
|
||||||
If the *store/local* keyword is used, this fix will track bonds that
|
If the *store/local* keyword is used, an internal fix will track bonds that
|
||||||
break during the simulation. Whenever a bond breaks, data is processed
|
break during the simulation. Whenever a bond breaks, data is processed
|
||||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||||
local data to be accessed by other LAMMPS commands.
|
local data to be accessed by other LAMMPS commands. Following this optional
|
||||||
Following any optional keyword/value arguments, a list of one or more
|
keyword, a list of one or more attributes is specified. These include the
|
||||||
attributes is specified. These include the IDs of the two atoms in
|
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||||
the bond. The other attributes for the two atoms include the timestep
|
include the timestep during which the bond broke and the current/initial
|
||||||
during which the bond broke and the current/initial center of mass
|
center of mass position of the two atoms.
|
||||||
position of the two atoms.
|
|
||||||
|
|
||||||
Data is continuously accumulated over intervals of *N*
|
Data is continuously accumulated over intervals of *N*
|
||||||
timesteps. At the end of each interval, all of the saved accumulated
|
timesteps. At the end of each interval, all of the saved accumulated
|
||||||
@ -177,29 +176,38 @@ Restart and other info
|
|||||||
|
|
||||||
This bond style writes the reference state of each bond to
|
This bond style writes the reference state of each bond to
|
||||||
:doc:`binary restart files <restart>`. Loading a restart file will
|
:doc:`binary restart files <restart>`. Loading a restart file will
|
||||||
properly resume bonds.
|
properly resume bonds. However, the reference state is NOT
|
||||||
|
written to data files. Therefore reading a data file will not
|
||||||
|
restore bonds and will cause their reference states to be redefined.
|
||||||
|
|
||||||
The single() function of these pair styles returns 0.0 for the energy
|
If the *store/local* option is used, an internal fix will calculate
|
||||||
of a pairwise interaction, since energy is not conserved in these
|
a local vector or local array depending on the number of input values.
|
||||||
dissipative potentials. It also returns only the normal component of
|
The length of the vector or number of rows in the array is the number
|
||||||
the pairwise interaction force.
|
of recorded, broken bonds. If a single input is specified, a local
|
||||||
|
vector is produced. If two or more inputs are specified, a local array
|
||||||
The accumulated data is not written to restart files and should be
|
is produced where the number of columns = the number of inputs. The
|
||||||
output before a restart file is written to avoid missing data.
|
vector or array can be accessed by any command that uses local values
|
||||||
|
from a compute as input. See the :doc:`Howto output <Howto_output>` page
|
||||||
The internal fix calculates a local vector or local array depending on the
|
for an overview of LAMMPS output options.
|
||||||
number of input values. The length of the vector or number of rows in
|
|
||||||
the array is the number of recorded, lost interactions. If a single
|
|
||||||
input is specified, a local vector is produced. If two or more inputs
|
|
||||||
are specified, a local array is produced where the number of columns =
|
|
||||||
the number of inputs. The vector or array can be accessed by any
|
|
||||||
command that uses local values from a compute as input. See the
|
|
||||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
|
||||||
output options.
|
|
||||||
|
|
||||||
The vector or array will be floating point values that correspond to
|
The vector or array will be floating point values that correspond to
|
||||||
the specified attribute.
|
the specified attribute.
|
||||||
|
|
||||||
|
The single() function of this bond style returns 0.0 for the energy
|
||||||
|
of a bonded interaction, since energy is not conserved in these
|
||||||
|
dissipative potentials. It also returns only the normal component of
|
||||||
|
the bonded interaction force. However, the single() function also
|
||||||
|
calculates 7 extra bond quantities. The first 4 are data from the
|
||||||
|
reference state of the bond including the initial distance between particles
|
||||||
|
:math:`r_0` followed by the :math:`x`, :math:`y`, and :math:`z` components
|
||||||
|
of the initial unit vector pointing to particle I from particle J. The next 3
|
||||||
|
quantities (5-7) are the :math:`x`, :math:`y`, and :math:`z` components
|
||||||
|
of the total force, including normal and tangential contributions, acting
|
||||||
|
on particle I.
|
||||||
|
|
||||||
|
These extra quantities can be accessed by the :doc:`compute bond/local <compute_bond_local>`
|
||||||
|
command, as *b1*, *b2*, ..., *b7*\ .
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -103,15 +103,14 @@ the *overlay/pair* keyword. These settings require specific
|
|||||||
restrictions. Further details can be found in the `:doc: how to
|
restrictions. Further details can be found in the `:doc: how to
|
||||||
<Howto_BPM>` page on BPMs.
|
<Howto_BPM>` page on BPMs.
|
||||||
|
|
||||||
If the *store/local* keyword is used, this fix will track bonds that
|
If the *store/local* keyword is used, an internal fix will track bonds that
|
||||||
break during the simulation. Whenever a bond breaks, data is processed
|
break during the simulation. Whenever a bond breaks, data is processed
|
||||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||||
local data to be accessed by other LAMMPS commands.
|
local data to be accessed by other LAMMPS commands. Following this optional
|
||||||
Following any optional keyword/value arguments, a list of one or more
|
keyword, a list of one or more attributes is specified. These include the
|
||||||
attributes is specified. These include the IDs of the two atoms in
|
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||||
the bond. The other attributes for the two atoms include the timestep
|
include the timestep during which the bond broke and the current/initial
|
||||||
during which the bond broke and the current/initial center of mass
|
center of mass position of the two atoms.
|
||||||
position of the two atoms.
|
|
||||||
|
|
||||||
Data is continuously accumulated over intervals of *N*
|
Data is continuously accumulated over intervals of *N*
|
||||||
timesteps. At the end of each interval, all of the saved accumulated
|
timesteps. At the end of each interval, all of the saved accumulated
|
||||||
@ -141,28 +140,30 @@ Restart and other info
|
|||||||
|
|
||||||
This bond style writes the reference state of each bond to
|
This bond style writes the reference state of each bond to
|
||||||
:doc:`binary restart files <restart>`. Loading a restart
|
:doc:`binary restart files <restart>`. Loading a restart
|
||||||
file will properly resume bonds.
|
file will properly restore bonds. However, the reference state is NOT
|
||||||
|
written to data files. Therefore reading a data file will not
|
||||||
|
restore bonds and will cause their reference states to be redefined.
|
||||||
|
|
||||||
The single() function of these pair styles returns 0.0 for the energy
|
If the *store/local* option is used, an internal fix will calculate
|
||||||
of a pairwise interaction, since energy is not conserved in these
|
a local vector or local array depending on the number of input values.
|
||||||
dissipative potentials.
|
The length of the vector or number of rows in the array is the number
|
||||||
|
of recorded, broken bonds. If a single input is specified, a local
|
||||||
The accumulated data is not written to restart files and should be
|
vector is produced. If two or more inputs are specified, a local array
|
||||||
output before a restart file is written to avoid missing data.
|
is produced where the number of columns = the number of inputs. The
|
||||||
|
vector or array can be accessed by any command that uses local values
|
||||||
The internal fix calculates a local vector or local array depending on the
|
from a compute as input. See the :doc:`Howto output <Howto_output>` page
|
||||||
number of input values. The length of the vector or number of rows in
|
for an overview of LAMMPS output options.
|
||||||
the array is the number of recorded, lost interactions. If a single
|
|
||||||
input is specified, a local vector is produced. If two or more inputs
|
|
||||||
are specified, a local array is produced where the number of columns =
|
|
||||||
the number of inputs. The vector or array can be accessed by any
|
|
||||||
command that uses local values from a compute as input. See the
|
|
||||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
|
||||||
output options.
|
|
||||||
|
|
||||||
The vector or array will be floating point values that correspond to
|
The vector or array will be floating point values that correspond to
|
||||||
the specified attribute.
|
the specified attribute.
|
||||||
|
|
||||||
|
The single() function of this bond style returns 0.0 for the energy
|
||||||
|
of a bonded interaction, since energy is not conserved in these
|
||||||
|
dissipative potentials. The single() function also calculates an
|
||||||
|
extra bond quantity, the initial distance :math:`r_0`. This
|
||||||
|
extra quantity can be accessed by the
|
||||||
|
:doc:`compute bond/local <compute_bond_local>` command as *b1*\ .
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ Examples
|
|||||||
bond_coeff 5 80.0 1.2
|
bond_coeff 5 80.0 1.2
|
||||||
bond_coeff * 30.0 1.5 1.0 1.0
|
bond_coeff * 30.0 1.5 1.0 1.0
|
||||||
bond_coeff 1*4 30.0 1.5 1.0 1.0
|
bond_coeff 1*4 30.0 1.5 1.0 1.0
|
||||||
bond_coeff 1 harmonic 200.0 1.0 (for bond_style hybrid)
|
bond_coeff 1 harmonic 200.0 1.0 # (for bond_style hybrid)
|
||||||
|
|
||||||
labelmap bond 5 carbonyl
|
labelmap bond 5 carbonyl
|
||||||
bond_coeff carbonyl 80.0 1.2
|
bond_coeff carbonyl 80.0 1.2
|
||||||
|
|||||||
@ -26,14 +26,14 @@ as defined in :ref:`(Allinger) <mm3-allinger1989>`
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + (7/12) 2.55^2(r-r_0)^2 \right]
|
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + \frac{7}{12} 2.55^2(r-r_0)^2 \right]
|
||||||
|
|
||||||
where :math:`r_0` is the equilibrium value of the bond, and :math:`K` is a
|
where :math:`r_0` is the equilibrium value of the bond, and :math:`K` is a
|
||||||
prefactor. The anharmonic prefactors have units angstrom\^(-n):
|
prefactor. The anharmonic prefactors have units :math:`\AA^{-n}`:
|
||||||
-2.55 angstrom\^(-1) and (7/12)2.55\^2 angstrom\^(-2). The code takes
|
:math:`-2.55 \AA^{-1}` and :math:`\frac{7}{12} 2.55^2 \AA^{-2}`. The code takes
|
||||||
care of the necessary unit conversion for these factors internally.
|
care of the necessary unit conversion for these factors internally.
|
||||||
Note that the MM3 papers contains an error in Eq (1):
|
Note that the MM3 papers contain an error in Eq (1):
|
||||||
(7/12)2.55 should be replaced with (7/12)2.55\^2
|
:math:`\frac{7}{12} 2.55` should be replaced with :math:`\frac{7}{12} 2.55^2`
|
||||||
|
|
||||||
The following coefficients must be defined for each bond type via the
|
The following coefficients must be defined for each bond type via the
|
||||||
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||||
|
|||||||
@ -28,11 +28,18 @@ The *quartic* bond style uses the potential
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
E = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 + 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] + \epsilon
|
E & = E_q + E_{LJ} \\
|
||||||
|
E_q & = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 \\
|
||||||
|
E_{LJ} & = \left\{ \begin{array} {l@{\quad:\quad}l}
|
||||||
|
4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] + \epsilon & r < 2^{\frac{1}{6}}, \epsilon = 1, \sigma = 1 \\
|
||||||
|
0 & r >= 2^{\frac{1}{6}}
|
||||||
|
\end{array} \right.
|
||||||
|
|
||||||
to define a bond that can be broken as the simulation proceeds (e.g.
|
to define a bond that can be broken as the simulation proceeds (e.g.
|
||||||
due to a polymer being stretched). The :math:`\sigma` and :math:`\epsilon` used in the
|
due to a polymer being stretched). The :math:`\sigma` and
|
||||||
LJ portion of the formula are both set equal to 1.0 by LAMMPS.
|
:math:`\epsilon` used in the LJ portion of the formula are both set
|
||||||
|
equal to 1.0 by LAMMPS and the LJ portion is cut off at its minimum,
|
||||||
|
i.e. at :math:`r_c = 2^{\frac{1}{6}}`.
|
||||||
|
|
||||||
The following coefficients must be defined for each bond type via the
|
The following coefficients must be defined for each bond type via the
|
||||||
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||||
@ -46,9 +53,9 @@ or :doc:`read_restart <read_restart>` commands:
|
|||||||
* :math:`U_0` (energy)
|
* :math:`U_0` (energy)
|
||||||
|
|
||||||
This potential was constructed to mimic the FENE bond potential for
|
This potential was constructed to mimic the FENE bond potential for
|
||||||
coarse-grained polymer chains. When monomers with :math:`\sigma = \epsilon = 1.0`
|
coarse-grained polymer chains. When monomers with :math:`\sigma =
|
||||||
are used, the following choice of parameters gives a quartic potential that
|
\epsilon = 1.0` are used, the following choice of parameters gives a
|
||||||
looks nearly like the FENE potential:
|
quartic potential that looks nearly like the FENE potential:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
|
|||||||
@ -23,15 +23,16 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This command deletes all atoms, restores all settings to their default
|
This command deletes all atoms, restores all settings to their default
|
||||||
values, and frees all memory allocated by LAMMPS. Once a clear
|
values, and frees all memory allocated by LAMMPS. Once a clear command
|
||||||
command has been executed, it is almost as if LAMMPS were starting
|
has been executed, it is almost as if LAMMPS were starting over, with
|
||||||
over, with only the exceptions noted below. This command enables
|
only the exceptions noted below. This command enables multiple jobs to
|
||||||
multiple jobs to be run sequentially from one input script.
|
be run sequentially from one input script.
|
||||||
|
|
||||||
These settings are not affected by a clear command: the working
|
These settings are not affected by a clear command: the working
|
||||||
directory (:doc:`shell <shell>` command), log file status
|
directory (:doc:`shell <shell>` command), log file status (:doc:`log
|
||||||
(:doc:`log <log>` command), echo status (:doc:`echo <echo>` command), and
|
<log>` command), echo status (:doc:`echo <echo>` command), and input
|
||||||
input script variables (:doc:`variable <variable>` command).
|
script variables except for *atomfile* style variables (:doc:`variable
|
||||||
|
<variable>` command).
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -35,6 +35,8 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: 7Jan2022
|
||||||
|
|
||||||
Define a computation that calculates the local mass density and
|
Define a computation that calculates the local mass density and
|
||||||
temperature for each atom based on its neighbors inside a spherical
|
temperature for each atom based on its neighbors inside a spherical
|
||||||
cutoff. If an atom has :math:`M` neighbors, then its local mass density is
|
cutoff. If an atom has :math:`M` neighbors, then its local mass density is
|
||||||
|
|||||||
@ -13,7 +13,7 @@ Syntax
|
|||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* bond/local = style name of this compute command
|
* bond/local = style name of this compute command
|
||||||
* one or more values may be appended
|
* one or more values may be appended
|
||||||
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name*
|
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name* or *bN*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ Syntax
|
|||||||
*omega* = magnitude of bond angular velocity
|
*omega* = magnitude of bond angular velocity
|
||||||
*velvib* = vibrational velocity along the bond length
|
*velvib* = vibrational velocity along the bond length
|
||||||
*v_name* = equal-style variable with name (see below)
|
*v_name* = equal-style variable with name (see below)
|
||||||
|
*bN* = bond style specific quantities for allowed N values
|
||||||
|
|
||||||
* zero or more keyword/args pairs may be appended
|
* zero or more keyword/args pairs may be appended
|
||||||
* keyword = *set*
|
* keyword = *set*
|
||||||
@ -47,7 +48,7 @@ Examples
|
|||||||
compute 1 all bond/local engpot
|
compute 1 all bond/local engpot
|
||||||
compute 1 all bond/local dist engpot force
|
compute 1 all bond/local dist engpot force
|
||||||
|
|
||||||
compute 1 all bond/local dist fx fy fz
|
compute 1 all bond/local dist fx fy fz b1 b2
|
||||||
|
|
||||||
compute 1 all bond/local dist v_distsq set dist d
|
compute 1 all bond/local dist v_distsq set dist d
|
||||||
|
|
||||||
@ -147,6 +148,19 @@ those quantities via the :doc:`compute reduce <compute_reduce>` command
|
|||||||
with thermo output, and the :doc:`fix ave/histo <fix_ave_histo>`
|
with thermo output, and the :doc:`fix ave/histo <fix_ave_histo>`
|
||||||
command will histogram the length\ :math:`^2` values and write them to a file.
|
command will histogram the length\ :math:`^2` values and write them to a file.
|
||||||
|
|
||||||
|
A bond style may define additional bond quantities which can be
|
||||||
|
accessed as *b1* to *bN*, where N is defined by the bond style. Most
|
||||||
|
bond styles do not define any additional quantities, so N = 0. An
|
||||||
|
example of ones that do are the :doc:`BPM bond styles <Howto_bpm>`
|
||||||
|
which store the reference state between two particles. See
|
||||||
|
individual bond styles for details.
|
||||||
|
|
||||||
|
When using *bN* with bond style *hybrid*, the output will be the Nth
|
||||||
|
quantity from the sub-style that computes the bonded interaction
|
||||||
|
(based on bond type). If that sub-style does not define a *bN*,
|
||||||
|
the output will be 0.0. The maximum allowed N is the maximum number
|
||||||
|
of quantities provided by any sub-style.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The local data stored by this command is generated by looping over all
|
The local data stored by this command is generated by looping over all
|
||||||
|
|||||||
@ -602,8 +602,7 @@ be used. For non-orthogonal (triclinic) simulation boxes, only the
|
|||||||
*reduced* option may be used.
|
*reduced* option may be used.
|
||||||
|
|
||||||
A *box* value selects standard distance units as defined by the
|
A *box* value selects standard distance units as defined by the
|
||||||
:doc:`units <units>` command (e.g., :math:`\mathrm{\mathring A}`
|
:doc:`units <units>` command (e.g., :math:`\AA` for units = *real* or *metal*).
|
||||||
for units = *real* or *metal*).
|
|
||||||
A *lattice* value means the distance units are in lattice spacings.
|
A *lattice* value means the distance units are in lattice spacings.
|
||||||
The :doc:`lattice <lattice>` command must have been previously used to
|
The :doc:`lattice <lattice>` command must have been previously used to
|
||||||
define the lattice spacing. A *reduced* value means normalized
|
define the lattice spacing. A *reduced* value means normalized
|
||||||
|
|||||||
@ -24,16 +24,17 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the per-atom damage for each atom
|
Define a computation that calculates the per-atom damage for each atom
|
||||||
in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
|
in a group. This is a quantity relevant for :doc:`Peridynamics models
|
||||||
for an overview of LAMMPS commands for Peridynamics modeling.
|
<pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_ for an
|
||||||
|
overview of LAMMPS commands for Peridynamics modeling.
|
||||||
|
|
||||||
The "damage" of a Peridynamics particles is based on the bond breakage
|
The "damage" of a Peridynamics particles is based on the bond breakage
|
||||||
between the particle and its neighbors. If all the bonds are broken
|
between the particle and its neighbors. If all the bonds are broken
|
||||||
the particle is considered to be fully damaged.
|
the particle is considered to be fully damaged.
|
||||||
|
|
||||||
See the `PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for a formal
|
See the :doc:`Peridynamics Howto <Howto_peri>` for a formal definition
|
||||||
definition of "damage" and more details about Peridynamics as it is
|
of "damage" and more details about Peridynamics as it is implemented in
|
||||||
implemented in LAMMPS.
|
LAMMPS.
|
||||||
|
|
||||||
This command can be used with all the Peridynamic pair styles.
|
This command can be used with all the Peridynamic pair styles.
|
||||||
|
|
||||||
@ -53,8 +54,9 @@ The per-atom vector values are unitless numbers (damage) :math:`\ge 0.0`.
|
|||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This compute is part of the PERI package. It is only enabled if
|
This compute is part of the PERI package. It is only enabled if LAMMPS
|
||||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
was built with that package. See the :doc:`Build package
|
||||||
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -24,7 +24,8 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the per-atom dilatation for each
|
Define a computation that calculates the per-atom dilatation for each
|
||||||
atom in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
|
atom in a group. This is a quantity relevant for :doc:`Peridynamics
|
||||||
|
models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
|
||||||
for an overview of LAMMPS commands for Peridynamics modeling.
|
for an overview of LAMMPS commands for Peridynamics modeling.
|
||||||
|
|
||||||
For small deformation, dilatation of is the measure of the volumetric
|
For small deformation, dilatation of is the measure of the volumetric
|
||||||
@ -32,13 +33,14 @@ strain.
|
|||||||
|
|
||||||
The dilatation :math:`\theta` for each peridynamic particle :math:`i` is
|
The dilatation :math:`\theta` for each peridynamic particle :math:`i` is
|
||||||
calculated as a sum over its neighbors with unbroken bonds, where the
|
calculated as a sum over its neighbors with unbroken bonds, where the
|
||||||
contribution of the :math:`ij` pair is a function of the change in bond length
|
contribution of the :math:`ij` pair is a function of the change in bond
|
||||||
(versus the initial length in the reference state), the volume
|
length (versus the initial length in the reference state), the volume
|
||||||
fraction of the particles and an influence function. See the
|
fraction of the particles and an influence function. See the
|
||||||
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for
|
:doc:`Peridynamics Howto <Howto_peri>` for a formal definition of
|
||||||
a formal definition of dilatation.
|
dilatation.
|
||||||
|
|
||||||
This command can only be used with a subset of the Peridynamic :doc:`pair styles <pair_peri>`: peri/lps, peri/ves and peri/eps.
|
This command can only be used with a subset of the Peridynamic
|
||||||
|
:doc:`pair styles <pair_peri>`: *peri/lps*, *peri/ves*, and *peri/eps*.
|
||||||
|
|
||||||
The dilatation value will be 0.0 for atoms not in the specified
|
The dilatation value will be 0.0 for atoms not in the specified
|
||||||
compute group.
|
compute group.
|
||||||
@ -56,9 +58,9 @@ The per-atom vector values are unitless numbers :math:`(\theta \ge 0.0)`.
|
|||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This compute is part of the PERI package. It is only enabled if
|
This compute is part of the PERI package. It is only enabled if LAMMPS
|
||||||
LAMMPS was built with that package. See the
|
was built with that package. See the :doc:`Build package
|
||||||
:doc:`Build package <Build_package>` page for more info.
|
<Build_package>` page for more info.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -17,7 +17,7 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*replace* arg = name of per-atom variable
|
*refresh* arg = name of per-atom variable
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -95,7 +95,7 @@ something like the following commands:
|
|||||||
refresh c_dsp delay 100
|
refresh c_dsp delay 100
|
||||||
|
|
||||||
The :doc:`dump_modify thresh <dump_modify>` command will only output
|
The :doc:`dump_modify thresh <dump_modify>` command will only output
|
||||||
atoms that have displaced more than :math:`0.6~\mathrm{\mathring A}` on each
|
atoms that have displaced more than :math:`0.6~\AA` on each
|
||||||
snapshot (assuming metal units). The dump_modify *refresh* option triggers a
|
snapshot (assuming metal units). The dump_modify *refresh* option triggers a
|
||||||
call to this compute at the end of every dump.
|
call to this compute at the end of every dump.
|
||||||
|
|
||||||
|
|||||||
@ -97,13 +97,13 @@ by the corresponding volume. This option can be useful when dealing with
|
|||||||
inhomogeneous systems such as those that have surfaces.
|
inhomogeneous systems such as those that have surfaces.
|
||||||
|
|
||||||
Here are typical input parameters for fcc aluminum (lattice
|
Here are typical input parameters for fcc aluminum (lattice
|
||||||
constant :math:`4.05~\mathrm{\mathring A}`),
|
constant :math:`4.05~\AA`),
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
compute 1 all entropy/atom 0.25 5.7 avg yes 3.7
|
compute 1 all entropy/atom 0.25 5.7 avg yes 3.7
|
||||||
|
|
||||||
and for bcc sodium (lattice constant 4.23 Angstroms),
|
and for bcc sodium (lattice constant :math:`4.23~\AA`),
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
|
|||||||
@ -34,6 +34,8 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: 4May2022
|
||||||
|
|
||||||
Define a computation that calculates the change in the free energy due
|
Define a computation that calculates the change in the free energy due
|
||||||
to a test-area (TA) perturbation :ref:`(Gloor) <Gloor>`. The test-area
|
to a test-area (TA) perturbation :ref:`(Gloor) <Gloor>`. The test-area
|
||||||
approach can be used to determine the interfacial tension of the system
|
approach can be used to determine the interfacial tension of the system
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute rigid/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID rigid/local rigidID input1 input2 ...
|
compute ID group-ID rigid/local rigidID input1 input2 ...
|
||||||
|
|
||||||
@ -25,6 +25,9 @@ Syntax
|
|||||||
quatw, quati, quatj, quatk,
|
quatw, quati, quatj, quatk,
|
||||||
tqx, tqy, tqz,
|
tqx, tqy, tqz,
|
||||||
inertiax, inertiay, inertiaz
|
inertiax, inertiay, inertiaz
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
id = atom ID of atom within body which owns body properties
|
id = atom ID of atom within body which owns body properties
|
||||||
mol = molecule ID used to define body in :doc:`fix rigid/small <fix_rigid>` command
|
mol = molecule ID used to define body in :doc:`fix rigid/small <fix_rigid>` command
|
||||||
mass = total mass of body
|
mass = total mass of body
|
||||||
@ -69,8 +72,8 @@ the atoms owned on a processor. If the atom is not in the specified
|
|||||||
the atom within a body that is assigned to store the body information
|
the atom within a body that is assigned to store the body information
|
||||||
it is skipped (only one atom per body is so assigned). If it is the
|
it is skipped (only one atom per body is so assigned). If it is the
|
||||||
assigned atom, then the info for that body is output. This means that
|
assigned atom, then the info for that body is output. This means that
|
||||||
information for N bodies is generated. N may be less than the # of
|
information for :math:`N` bodies is generated. :math:`N` may be less than the
|
||||||
bodies defined by the fix rigid command, if the atoms in some bodies
|
number of bodies defined by the fix rigid command, if the atoms in some bodies
|
||||||
are not in the *group-ID*\ .
|
are not in the *group-ID*\ .
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@ -109,8 +112,7 @@ The *mass* attribute is the total mass of the rigid body.
|
|||||||
There are two options for outputting the coordinates of the center of
|
There are two options for outputting the coordinates of the center of
|
||||||
mass (COM) of the body. The *x*, *y*, *z* attributes write the COM
|
mass (COM) of the body. The *x*, *y*, *z* attributes write the COM
|
||||||
"unscaled", in the appropriate distance :doc:`units <units>`
|
"unscaled", in the appropriate distance :doc:`units <units>`
|
||||||
(:math:`\mathrm{\mathring A}`,
|
(:math:`\AA`, :math:`\sigma`, etc). Use *xu*, *yu*, *zu* if you want the COM "unwrapped" by
|
||||||
sigma, etc). Use *xu*, *yu*, *zu* if you want the COM "unwrapped" by
|
|
||||||
the image flags for each body. Unwrapped means that if the body
|
the image flags for each body. Unwrapped means that if the body
|
||||||
COM has passed through a periodic boundary one or more times, the value
|
COM has passed through a periodic boundary one or more times, the value
|
||||||
is generated what the COM coordinate would be if it had not been
|
is generated what the COM coordinate would be if it had not been
|
||||||
@ -120,7 +122,7 @@ The image flags for the body can be generated directly using the *ix*,
|
|||||||
*iy*, *iz* attributes. For periodic dimensions, they specify which
|
*iy*, *iz* attributes. For periodic dimensions, they specify which
|
||||||
image of the simulation box the COM is considered to be in. An image
|
image of the simulation box the COM is considered to be in. An image
|
||||||
of 0 means it is inside the box as defined. A value of 2 means add 2
|
of 0 means it is inside the box as defined. A value of 2 means add 2
|
||||||
box lengths to get the true value. A value of -1 means subtract 1 box
|
box lengths to get the true value. A value of :math:`-1` means subtract 1 box
|
||||||
length to get the true value. LAMMPS updates these flags as the rigid
|
length to get the true value. LAMMPS updates these flags as the rigid
|
||||||
body COMs cross periodic boundaries during the simulation.
|
body COMs cross periodic boundaries during the simulation.
|
||||||
|
|
||||||
@ -142,8 +144,8 @@ The *tqx*, *tqy*, *tqz* attributes are components of the torque acting
|
|||||||
on the body around its COM.
|
on the body around its COM.
|
||||||
|
|
||||||
The *inertiax*, *inertiay*, *inertiaz* attributes are components of
|
The *inertiax*, *inertiay*, *inertiaz* attributes are components of
|
||||||
diagonalized inertia tensor for the body, i.e the 3 moments of inertia
|
diagonalized inertia tensor for the body (i.e., the three moments of inertia
|
||||||
for the body around its principal axes, as computed internally by
|
for the body around its principal axes), as computed internally by
|
||||||
LAMMPS.
|
LAMMPS.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -170,10 +172,10 @@ corresponding attribute is in:
|
|||||||
* vx,vy,vz = velocity units
|
* vx,vy,vz = velocity units
|
||||||
* fx,fy,fz = force units
|
* fx,fy,fz = force units
|
||||||
* omegax,omegay,omegaz = radians/time units
|
* omegax,omegay,omegaz = radians/time units
|
||||||
* angmomx,angmomy,angmomz = mass\*distance\^2/time units
|
* angmomx,angmomy,angmomz = mass\*distance\ :math:`^2`\ /time units
|
||||||
* quatw,quati,quatj,quatk = unitless
|
* quatw,quati,quatj,quatk = unitless
|
||||||
* tqx,tqy,tqz = torque units
|
* tqx,tqy,tqz = torque units
|
||||||
* inertiax,inertiay,inertiaz = mass\*distance\^2 units
|
* inertiax,inertiay,inertiaz = mass\*distance\ :math:`^2` units
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -86,7 +86,7 @@ will defined using the *c* values for the spacing along each reciprocal
|
|||||||
lattice axis. Note that manual mapping of the reciprocal space mesh is
|
lattice axis. Note that manual mapping of the reciprocal space mesh is
|
||||||
good for comparing diffraction results from multiple simulations; however
|
good for comparing diffraction results from multiple simulations; however
|
||||||
it can reduce the likelihood that Bragg reflections will be satisfied
|
it can reduce the likelihood that Bragg reflections will be satisfied
|
||||||
unless small spacing parameters (:math:`<0.05~\mathrm{\mathring A}^-1`)
|
unless small spacing parameters (:math:`<0.05~\AA^-1`)
|
||||||
are implemented. Meshes with manual spacing do not require a periodic
|
are implemented. Meshes with manual spacing do not require a periodic
|
||||||
boundary.
|
boundary.
|
||||||
|
|
||||||
|
|||||||
@ -228,18 +228,20 @@ command:
|
|||||||
See section below on output for a detailed explanation of the data
|
See section below on output for a detailed explanation of the data
|
||||||
layout in the global array.
|
layout in the global array.
|
||||||
|
|
||||||
|
.. versionadded:: 3Aug2022
|
||||||
|
|
||||||
The compute *sna/grid* and *sna/grid/local* commands calculate
|
The compute *sna/grid* and *sna/grid/local* commands calculate
|
||||||
bispectrum components for a regular grid of points.
|
bispectrum components for a regular grid of points. These are
|
||||||
These are calculated from the local density of nearby atoms *i'*
|
calculated from the local density of nearby atoms *i'* around each grid
|
||||||
around each grid point, as if there was a central atom *i*
|
point, as if there was a central atom *i* at the grid point. This is
|
||||||
at the grid point. This is useful for characterizing fine-scale
|
useful for characterizing fine-scale structure in a configuration of
|
||||||
structure in a configuration of atoms, and it is used
|
atoms, and it is used in the `MALA package
|
||||||
in the `MALA package <https://github.com/casus/mala>`_
|
<https://github.com/casus/mala>`_ to build machine-learning surrogates
|
||||||
to build machine-learning surrogates for finite-temperature Kohn-Sham
|
for finite-temperature Kohn-Sham density functional theory (:ref:`Ellis
|
||||||
density functional theory (:ref:`Ellis et al. <Ellis2021>`)
|
et al. <Ellis2021>`) Neighbor atoms not in the group do not contribute
|
||||||
Neighbor atoms not in the group do not contribute to the
|
to the bispectrum components of the grid points. The distance cutoff
|
||||||
bispectrum components of the grid points. The distance cutoff :math:`R_{ii'}`
|
:math:`R_{ii'}` assumes that *i* has the same type as the neighbor atom
|
||||||
assumes that *i* has the same type as the neighbor atom *i'*.
|
*i'*.
|
||||||
|
|
||||||
Compute *sna/grid* calculates a global array containing bispectrum
|
Compute *sna/grid* calculates a global array containing bispectrum
|
||||||
components for a regular grid of points.
|
components for a regular grid of points.
|
||||||
|
|||||||
@ -29,7 +29,7 @@ Description
|
|||||||
Define a computation that calculates the temperature of a system based
|
Define a computation that calculates the temperature of a system based
|
||||||
on the center-of-mass velocity of atom pairs that are bonded to each
|
on the center-of-mass velocity of atom pairs that are bonded to each
|
||||||
other. This compute is designed to be used with the adiabatic
|
other. This compute is designed to be used with the adiabatic
|
||||||
core/shell model of :ref:`(Mitchell and Finchham) <MitchellFinchham1>`.
|
core/shell model of :ref:`(Mitchell and Fincham) <MitchellFincham1>`.
|
||||||
See the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of
|
See the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of
|
||||||
the model as implemented in LAMMPS. Specifically, this compute
|
the model as implemented in LAMMPS. Specifically, this compute
|
||||||
enables correct temperature calculation and thermostatting of
|
enables correct temperature calculation and thermostatting of
|
||||||
@ -127,7 +127,7 @@ none
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
.. _MitchellFinchham1:
|
.. _MitchellFincham1:
|
||||||
|
|
||||||
**(Mitchell and Finchham)** Mitchell, Finchham, J Phys Condensed Matter,
|
**(Mitchell and Fincham)** Mitchell, Fincham, J Phys Condensed Matter,
|
||||||
5, 1031-1038 (1993).
|
5, 1031-1038 (1993).
|
||||||
|
|||||||
@ -58,7 +58,7 @@ constant, and :math:`T` is the absolute temperature.
|
|||||||
The *units* keyword determines the meaning of the distance units used
|
The *units* keyword determines the meaning of the distance units used
|
||||||
for coordinates (*clo*, *chi*) and velocities (*vlo*, *vhi*). A *box* value
|
for coordinates (*clo*, *chi*) and velocities (*vlo*, *vhi*). A *box* value
|
||||||
selects standard distance units as defined by the :doc:`units <units>`
|
selects standard distance units as defined by the :doc:`units <units>`
|
||||||
command (e.g., :math:`\mathrm{\mathring{A}}` for units = real or metal). A
|
command (e.g., :math:`\AA` for units = real or metal). A
|
||||||
*lattice* value means the distance units are in lattice spacings (i.e.,
|
*lattice* value means the distance units are in lattice spacings (i.e.,
|
||||||
velocity in lattice spacings per unit time). The :doc:`lattice <lattice>`
|
velocity in lattice spacings per unit time). The :doc:`lattice <lattice>`
|
||||||
command must have been previously used to define the lattice spacing.
|
command must have been previously used to define the lattice spacing.
|
||||||
|
|||||||
@ -13,7 +13,7 @@ Syntax
|
|||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* voronoi/atom = style name of this compute command
|
* voronoi/atom = style name of this compute command
|
||||||
* zero or more keyword/value pairs may be appended
|
* zero or more keyword/value pairs may be appended
|
||||||
* keyword = *only_group* or *surface* or *radius* or *edge_histo* or *edge_threshold* or *face_threshold* or *neighbors* or *peratom*
|
* keyword = *only_group* or *occupation* or *surface* or *radius* or *edge_histo* or *edge_threshold* or *face_threshold* or *neighbors* or *peratom*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -154,25 +154,25 @@ which must be installed on your system when building LAMMPS for use
|
|||||||
with this compute. See instructions on obtaining and installing the
|
with this compute. See instructions on obtaining and installing the
|
||||||
Voro++ software in the src/VORONOI/README file.
|
Voro++ software in the src/VORONOI/README file.
|
||||||
|
|
||||||
.. _voronoi: http://math.lbl.gov/voro++/
|
.. _voronoi: https://math.lbl.gov/voro++/
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The calculation of Voronoi volumes is performed by each
|
The calculation of Voronoi volumes is performed by each processor for
|
||||||
processor for the atoms it owns, and includes the effect of ghost
|
the atoms it owns, and includes the effect of ghost atoms stored by
|
||||||
atoms stored by the processor. This assumes that the Voronoi cells of
|
the processor. This assumes that the Voronoi cells of owned atoms
|
||||||
owned atoms are not affected by atoms beyond the ghost atom cut-off
|
are not affected by atoms beyond the ghost atom cut-off distance.
|
||||||
distance. This is usually a good assumption for liquid and solid
|
This is usually a good assumption for liquid and solid systems, but
|
||||||
systems, but may lead to underestimation of Voronoi volumes in low
|
may lead to underestimation of Voronoi volumes in low density
|
||||||
density systems. By default, the set of ghost atoms stored by each
|
systems. By default, the set of ghost atoms stored by each processor
|
||||||
processor is determined by the cutoff used for
|
is determined by the cutoff used for :doc:`pair_style <pair_style>`
|
||||||
:doc:`pair_style <pair_style>` interactions. The cutoff can be set
|
interactions. The cutoff can be set explicitly via the
|
||||||
explicitly via the :doc:`comm_modify cutoff <comm_modify>` command. The
|
:doc:`comm_modify cutoff <comm_modify>` command. The Voronoi cells
|
||||||
Voronoi cells for atoms adjacent to empty regions will extend into
|
for atoms adjacent to empty regions will extend into those regions up
|
||||||
those regions up to the communication cutoff in :math:`x`, :math:`y`, or
|
to the communication cutoff in :math:`x`, :math:`y`, or :math:`z`.
|
||||||
:math:`z`. In that situation, an exterior face is created at the cutoff
|
In that situation, an exterior face is created at the cutoff distance
|
||||||
distance normal to the :math:`x`, :math:`y`, or :math:`z` direction.
|
normal to the :math:`x`, :math:`y`, or :math:`z` direction. For
|
||||||
For triclinic systems, the exterior face is parallel to the corresponding
|
triclinic systems, the exterior face is parallel to the corresponding
|
||||||
reciprocal lattice vector.
|
reciprocal lattice vector.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|||||||
@ -91,7 +91,7 @@ reciprocal lattice axis. Note that manual mapping of the reciprocal
|
|||||||
space mesh is good for comparing diffraction results from multiple
|
space mesh is good for comparing diffraction results from multiple
|
||||||
simulations; however, it can reduce the likelihood that Bragg
|
simulations; however, it can reduce the likelihood that Bragg
|
||||||
reflections will be satisfied unless small spacing parameters
|
reflections will be satisfied unless small spacing parameters
|
||||||
(:math:`< 0.05~\mathrm{\mathring{A}}^{-1}`) are implemented.
|
(:math:`< 0.05~\AA^{-1}`) are implemented.
|
||||||
Meshes with manual spacing do not require a periodic boundary.
|
Meshes with manual spacing do not require a periodic boundary.
|
||||||
|
|
||||||
The limits of the reciprocal lattice mesh are determined by range of
|
The limits of the reciprocal lattice mesh are determined by range of
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user