Merge branch 'develop' into feature/snap-packed-idx
This commit is contained in:
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.
|
||||||
|
|||||||
@ -376,6 +376,7 @@ pkg_depends(DIELECTRIC EXTRA-PAIR)
|
|||||||
pkg_depends(CG-DNA MOLECULE)
|
pkg_depends(CG-DNA MOLECULE)
|
||||||
pkg_depends(CG-DNA ASPHERE)
|
pkg_depends(CG-DNA ASPHERE)
|
||||||
pkg_depends(ELECTRODE KSPACE)
|
pkg_depends(ELECTRODE KSPACE)
|
||||||
|
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)
|
||||||
|
|||||||
@ -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.1.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 "f9505fccd4c79301a619f6452dad4ad9" 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)
|
||||||
|
|||||||
@ -25,16 +25,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})
|
||||||
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
foreach(MLIAP_CYTHON_FILE ${MLIAP_CYTHON_SRC})
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_SRC} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
|
||||||
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
||||||
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_FILE} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||||
MAIN_DEPENDENCY ${MLIAP_CYTHON_SRC}
|
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||||
COMMENT "Generating C++ sources with cythonize...")
|
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
|
||||||
|
MAIN_DEPENDENCY ${MLIAP_CYTHON_FILE}
|
||||||
|
COMMENT "Generating C++ sources with cythonize...")
|
||||||
|
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
|
||||||
|
endforeach()
|
||||||
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
|
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
|
||||||
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
|
|
||||||
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
|
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -3,6 +3,13 @@
|
|||||||
# prefer flang over gfortran, if available
|
# prefer flang over gfortran, if available
|
||||||
find_program(CLANG_FORTRAN NAMES flang gfortran f95)
|
find_program(CLANG_FORTRAN NAMES flang gfortran f95)
|
||||||
set(ENV{OMPI_FC} ${CLANG_FORTRAN})
|
set(ENV{OMPI_FC} ${CLANG_FORTRAN})
|
||||||
|
get_filename_component(_tmp_fc ${CLANG_FORTRAN} NAME)
|
||||||
|
if (_tmp_fc STREQUAL "flang")
|
||||||
|
set(FC_STD_VERSION "-std=f2018")
|
||||||
|
set(BUILD_MPI OFF)
|
||||||
|
else()
|
||||||
|
set(FC_STD_VERSION "-std=f2003")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
|
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
|
||||||
@ -10,9 +17,9 @@ set(CMAKE_Fortran_COMPILER ${CLANG_FORTRAN} CACHE STRING "" FORCE)
|
|||||||
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g -std=f2003" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g ${FC_STD_VERSION}" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
|
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
|
||||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
.TH LAMMPS "1" "3 August 2022" "2022-8-3"
|
.TH LAMMPS "1" "15 September 2022" "2022-9-15"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.B LAMMPS
|
.B LAMMPS
|
||||||
\- Molecular Dynamics Simulator. Version 3 August 2022
|
\- Molecular Dynamics Simulator. Version 15 September 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)
|
||||||
@ -1373,7 +1373,7 @@ Bibliography
|
|||||||
Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002).
|
Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002).
|
||||||
|
|
||||||
**(Ziegler)**
|
**(Ziegler)**
|
||||||
J.F. Ziegler, J. P. Biersack and U. Littmark, "The Stopping and Range of Ions in Matter," Volume 1, Pergamon, 1985.
|
J.F. Ziegler, J. P. Biersack and U. Littmark, "The Stopping and Range of Ions in Matter", Volume 1, Pergamon, 1985.
|
||||||
|
|
||||||
**(Zimmerman2004)**
|
**(Zimmerman2004)**
|
||||||
Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, "Calculation of stress in atomistic simulation." Special Issue of Modelling and Simulation in Materials Science and Engineering (2004),12:S319.
|
Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, "Calculation of stress in atomistic simulation." Special Issue of Modelling and Simulation in Materials Science and Engineering (2004),12:S319.
|
||||||
|
|||||||
@ -140,7 +140,7 @@ 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
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
@ -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>`_
|
||||||
@ -1053,7 +1053,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::
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -15,7 +15,9 @@
|
|||||||
General commands
|
General commands
|
||||||
================
|
================
|
||||||
|
|
||||||
An alphabetic list of general LAMMPS commands.
|
An alphabetic list of general LAMMPS commands. Note that style
|
||||||
|
commands with many variants, can be more easily accessed via the small
|
||||||
|
table above.
|
||||||
|
|
||||||
.. table_from_list::
|
.. table_from_list::
|
||||||
:columns: 5
|
:columns: 5
|
||||||
@ -61,6 +63,7 @@ An alphabetic list of general LAMMPS commands.
|
|||||||
* :doc:`kspace_modify <kspace_modify>`
|
* :doc:`kspace_modify <kspace_modify>`
|
||||||
* :doc:`kspace_style <kspace_style>`
|
* :doc:`kspace_style <kspace_style>`
|
||||||
* :doc:`label <label>`
|
* :doc:`label <label>`
|
||||||
|
* :doc:`labelmap <labelmap>`
|
||||||
* :doc:`lattice <lattice>`
|
* :doc:`lattice <lattice>`
|
||||||
* :doc:`log <log>`
|
* :doc:`log <log>`
|
||||||
* :doc:`mass <mass>`
|
* :doc:`mass <mass>`
|
||||||
|
|||||||
@ -165,6 +165,7 @@ OPT.
|
|||||||
* :doc:`orient/fcc <fix_orient>`
|
* :doc:`orient/fcc <fix_orient>`
|
||||||
* :doc:`orient/eco <fix_orient_eco>`
|
* :doc:`orient/eco <fix_orient_eco>`
|
||||||
* :doc:`pafi <fix_pafi>`
|
* :doc:`pafi <fix_pafi>`
|
||||||
|
* :doc:`pair <fix_pair>`
|
||||||
* :doc:`phonon <fix_phonon>`
|
* :doc:`phonon <fix_phonon>`
|
||||||
* :doc:`pimd <fix_pimd>`
|
* :doc:`pimd <fix_pimd>`
|
||||||
* :doc:`planeforce <fix_planeforce>`
|
* :doc:`planeforce <fix_planeforce>`
|
||||||
|
|||||||
@ -328,7 +328,7 @@ removed so this update is **required** to avoid compilation failure.
|
|||||||
Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM
|
Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
.. versionchanged:: TBD
|
.. versionchanged:: 15Sep2022
|
||||||
|
|
||||||
This change splits the GLOBAL and PERATOM modes of fix STORE into two
|
This change splits the GLOBAL and PERATOM modes of fix STORE into two
|
||||||
separate fixes STORE/GLOBAL and STORE/PERATOM. There was very little
|
separate fixes STORE/GLOBAL and STORE/PERATOM. There was very little
|
||||||
@ -387,7 +387,7 @@ This change is **required** or else the code will not compile.
|
|||||||
Use Output::get_dump_by_id() instead of Output::find_dump()
|
Use Output::get_dump_by_id() instead of Output::find_dump()
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
.. versionchanged:: TBD
|
.. versionchanged:: 15Sep2022
|
||||||
|
|
||||||
The accessor function to individual dump style instances has been changed
|
The accessor function to individual dump style instances has been changed
|
||||||
from ``Output::find_dump()`` returning the index of the dump instance in
|
from ``Output::find_dump()`` returning the index of the dump instance in
|
||||||
|
|||||||
@ -175,6 +175,12 @@ and parsing files or arguments.
|
|||||||
.. doxygenfunction:: is_double
|
.. doxygenfunction:: is_double
|
||||||
:project: progguide
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: is_id
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: is_type
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
Potential file functions
|
Potential file functions
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -205,6 +211,9 @@ Argument processing
|
|||||||
.. doxygenfunction:: expand_args
|
.. doxygenfunction:: expand_args
|
||||||
:project: progguide
|
:project: progguide
|
||||||
|
|
||||||
|
.. doxygenfunction:: expand_type
|
||||||
|
:project: progguide
|
||||||
|
|
||||||
Convenience functions
|
Convenience functions
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|||||||
@ -5453,6 +5453,11 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
|||||||
Mass command must set a type from 1-N where N is the number of atom
|
Mass command must set a type from 1-N where N is the number of atom
|
||||||
types.
|
types.
|
||||||
|
|
||||||
|
*Invalid label2type() function syntax in variable formula*
|
||||||
|
The first argument must be a label map kind (atom, bond, angle,
|
||||||
|
dihedral, or improper) and the second argument must be a valid type
|
||||||
|
label that has been assigned to a numeric type.
|
||||||
|
|
||||||
*Invalid use of library file() function*
|
*Invalid use of library file() function*
|
||||||
This function is called through the library interface. This
|
This function is called through the library interface. This
|
||||||
error should not occur. Contact the developers if it does.
|
error should not occur. Contact the developers if it does.
|
||||||
@ -5585,9 +5590,18 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
|||||||
*LJ6 off not supported in pair_style buck/long/coul/long*
|
*LJ6 off not supported in pair_style buck/long/coul/long*
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
*Label map is incomplete: all types must be assigned a unique type label*
|
||||||
|
For a given type-kind (atom types, bond types, etc.) to be written to
|
||||||
|
the data file, all associated types must be assigned a type label, and
|
||||||
|
each type label can be assigned to only one numeric type.
|
||||||
|
|
||||||
*Label wasn't found in input script*
|
*Label wasn't found in input script*
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
*Labelmap command before simulation box is defined*
|
||||||
|
The labelmap command cannot be used before a read_data,
|
||||||
|
read_restart, or create_box command.
|
||||||
|
|
||||||
*Lattice orient vectors are not orthogonal*
|
*Lattice orient vectors are not orthogonal*
|
||||||
The three specified lattice orientation vectors must be mutually
|
The three specified lattice orientation vectors must be mutually
|
||||||
orthogonal.
|
orthogonal.
|
||||||
@ -5863,6 +5877,12 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
|||||||
*Must not have multiple fixes change box parameter ...*
|
*Must not have multiple fixes change box parameter ...*
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
*Must read Angle Type Labels before Angles*
|
||||||
|
An Angle Type Labels section of a data file must come before the Angles section.
|
||||||
|
|
||||||
|
*Must read Atom Type Labels before Atoms*
|
||||||
|
An Atom Type Labels section of a data file must come before the Atoms section.
|
||||||
|
|
||||||
*Must read Atoms before Angles*
|
*Must read Atoms before Angles*
|
||||||
The Atoms section of a data file must come before an Angles section.
|
The Atoms section of a data file must come before an Angles section.
|
||||||
|
|
||||||
@ -5893,6 +5913,15 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
|||||||
The Atoms section of a data file must come before a Velocities
|
The Atoms section of a data file must come before a Velocities
|
||||||
section.
|
section.
|
||||||
|
|
||||||
|
*Must read Bond Type Labels before Bonds*
|
||||||
|
A Bond Type Labels section of a data file must come before the Bonds section.
|
||||||
|
|
||||||
|
*Must read Dihedral Type Labels before Dihedrals*
|
||||||
|
An Dihedral Type Labels section of a data file must come before the Dihedrals section.
|
||||||
|
|
||||||
|
*Must read Improper Type Labels before Impropers*
|
||||||
|
An Improper Type Labels section of a data file must come before the Impropers section.
|
||||||
|
|
||||||
*Must re-specify non-restarted pair style (xxx) after read_restart*
|
*Must re-specify non-restarted pair style (xxx) after read_restart*
|
||||||
For pair styles, that do not store their settings in a restart file,
|
For pair styles, that do not store their settings in a restart file,
|
||||||
it must be defined with a new 'pair_style' command after read_restart.
|
it must be defined with a new 'pair_style' command after read_restart.
|
||||||
@ -7849,6 +7878,10 @@ keyword to allow for additional bonds to be formed
|
|||||||
Number of local atoms times number of columns must fit in a 32-bit
|
Number of local atoms times number of columns must fit in a 32-bit
|
||||||
integer for dump.
|
integer for dump.
|
||||||
|
|
||||||
|
*Topology type exceeds system topology type*
|
||||||
|
The number of bond, angle, etc types exceeds the system setting. See
|
||||||
|
the create_box or read_data command for how to specify these values.
|
||||||
|
|
||||||
*Tree structure in joint connections*
|
*Tree structure in joint connections*
|
||||||
Fix poems cannot (yet) work with coupled bodies whose joints connect
|
Fix poems cannot (yet) work with coupled bodies whose joints connect
|
||||||
the bodies in a tree structure.
|
the bodies in a tree structure.
|
||||||
@ -7873,6 +7906,13 @@ keyword to allow for additional bonds to be formed
|
|||||||
*Two groups cannot be the same in fix spring couple*
|
*Two groups cannot be the same in fix spring couple*
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|
||||||
|
*The %s type label %s is already in use for type %s*
|
||||||
|
For a given type-kind (atom types, bond types, etc.), a given type
|
||||||
|
label can be assigned to only one numeric type.
|
||||||
|
|
||||||
|
*Type label string %s for %s type %s is invalid*
|
||||||
|
See the labelmap command documentation for valid type labels.
|
||||||
|
|
||||||
*Unable to initialize accelerator for use*
|
*Unable to initialize accelerator for use*
|
||||||
There was a problem initializing an accelerator for the gpu package
|
There was a problem initializing an accelerator for the gpu package
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,9 @@ The ``LIBLAMMPS`` Fortran Module
|
|||||||
|
|
||||||
The ``LIBLAMMPS`` module provides an interface to call LAMMPS from a
|
The ``LIBLAMMPS`` module provides an interface to call LAMMPS from a
|
||||||
Fortran code. It is based on the LAMMPS C-library interface and
|
Fortran code. It is based on the LAMMPS C-library interface and
|
||||||
requires a Fortran 2003 compatible compiler to be compiled.
|
requires a Fortran 2003 compatible compiler to be compiled. It is
|
||||||
|
designed to be self-contained and not require any support functions
|
||||||
|
written in C, C++, or Fortran.
|
||||||
|
|
||||||
While C libraries have a defined binary interface (ABI) and can thus be
|
While C libraries have a defined binary interface (ABI) and can thus be
|
||||||
used from multiple compiler versions from different vendors for as long
|
used from multiple compiler versions from different vendors for as long
|
||||||
@ -19,12 +21,20 @@ for a simple program using the Fortran interface would be:
|
|||||||
mpifort -o testlib.x lammps.f90 testlib.f90 -L. -llammps
|
mpifort -o testlib.x lammps.f90 testlib.f90 -L. -llammps
|
||||||
|
|
||||||
Please note, that the MPI compiler wrapper is only required when the
|
Please note, that the MPI compiler wrapper is only required when the
|
||||||
calling the library from an MPI parallel code. Please also note the
|
calling the library from an MPI parallel code. Otherwise, using the
|
||||||
order of the source files: the ``lammps.f90`` file needs to be compiled
|
fortran compiler (gfortran, ifort, flang, etc.) will suffice. It may be
|
||||||
first, since it provides the ``LIBLAMMPS`` module that is imported by
|
necessary to link to additional libraries depending on how LAMMPS was
|
||||||
the Fortran code using the interface. A working example code can be
|
configured and whether the LAMMPS library :doc:`was compiled as a static
|
||||||
found together with equivalent examples in C and C++ in the
|
or shared library <Build_link>`.
|
||||||
``examples/COUPLE/simple`` folder of the LAMMPS distribution.
|
|
||||||
|
If the LAMMPS library itself has been compiled with MPI support, the
|
||||||
|
resulting executable will still be able to run LAMMPS in parallel with
|
||||||
|
``mpirun`` or equivalent. Please also note that the order of the source
|
||||||
|
files matters: the ``lammps.f90`` file needs to be compiled first, since
|
||||||
|
it provides the ``LIBLAMMPS`` module that is imported by the Fortran
|
||||||
|
code using the interface. A working example code can be found together
|
||||||
|
with equivalent examples in C and C++ in the ``examples/COUPLE/simple``
|
||||||
|
folder of the LAMMPS distribution.
|
||||||
|
|
||||||
.. versionadded:: 9Oct2020
|
.. versionadded:: 9Oct2020
|
||||||
|
|
||||||
@ -49,17 +59,18 @@ found together with equivalent examples in C and C++ in the
|
|||||||
Creating or deleting a LAMMPS object
|
Creating or deleting a LAMMPS object
|
||||||
************************************
|
************************************
|
||||||
|
|
||||||
With the Fortran interface the creation of a :cpp:class:`LAMMPS
|
With the Fortran interface, the creation of a :cpp:class:`LAMMPS
|
||||||
<LAMMPS_NS::LAMMPS>` instance is included in the constructor for
|
<LAMMPS_NS::LAMMPS>` instance is included in the constructor for
|
||||||
creating the :f:func:`lammps` derived type. To import the definition of
|
creating the :f:func:`lammps` derived type. To import the definition of
|
||||||
that type and its type bound procedures you need to add a ``USE
|
that type and its type bound procedures, you need to add a ``USE
|
||||||
LIBLAMMPS`` statement. Internally it will call either
|
LIBLAMMPS`` statement. Internally it will call either
|
||||||
:cpp:func:`lammps_open_fortran` or :cpp:func:`lammps_open_no_mpi` from
|
:cpp:func:`lammps_open_fortran` or :cpp:func:`lammps_open_no_mpi` from
|
||||||
the C library API to create the class instance. All arguments are
|
the C library API to create the class instance. All arguments are
|
||||||
optional and :cpp:func:`lammps_mpi_init` will be called automatically,
|
optional and :cpp:func:`lammps_mpi_init` will be called automatically,
|
||||||
if it is needed. Similarly, a possible call to :cpp:func:`lammps_finalize`
|
if it is needed. Similarly, a possible call to
|
||||||
is integrated into the :f:func:`close` function and triggered with
|
:cpp:func:`lammps_mpi_finalize` is integrated into the :f:func:`close`
|
||||||
the optional logical argument set to ``.true.``. Here is a simple example:
|
function and triggered with the optional logical argument set to
|
||||||
|
``.true.``. Here is a simple example:
|
||||||
|
|
||||||
.. code-block:: fortran
|
.. code-block:: fortran
|
||||||
|
|
||||||
@ -80,11 +91,11 @@ the optional logical argument set to ``.true.``. Here is a simple example:
|
|||||||
END PROGRAM testlib
|
END PROGRAM testlib
|
||||||
|
|
||||||
It is also possible to pass command line flags from Fortran to C/C++ and
|
It is also possible to pass command line flags from Fortran to C/C++ and
|
||||||
thus make the resulting executable behave similar to the standalone
|
thus make the resulting executable behave similarly to the standalone
|
||||||
executable (it will ignore the `-in/-i` flag, though). This allows to
|
executable (it will ignore the `-in/-i` flag, though). This allows
|
||||||
use the command line to configure accelerator and suffix settings,
|
using the command line to configure accelerator and suffix settings,
|
||||||
configure screen and logfile output, or to set index style variables
|
configure screen and logfile output, or to set index style variables
|
||||||
from the command line and more. Here is a correspondingly adapted
|
from the command line and more. Here is a correspondingly adapted
|
||||||
version of the previous example:
|
version of the previous example:
|
||||||
|
|
||||||
.. code-block:: fortran
|
.. code-block:: fortran
|
||||||
@ -117,13 +128,13 @@ version of the previous example:
|
|||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
Executing LAMMPS commands
|
Executing LAMMPS commands
|
||||||
=========================
|
*************************
|
||||||
|
|
||||||
Once a LAMMPS instance is created, it is possible to "drive" the LAMMPS
|
Once a LAMMPS instance is created, it is possible to "drive" the LAMMPS
|
||||||
simulation by telling LAMMPS to read commands from a file, or pass
|
simulation by telling LAMMPS to read commands from a file or to pass
|
||||||
individual or multiple commands from strings or lists of strings. This
|
individual or multiple commands from strings or lists of strings. This
|
||||||
is done similar to how it is implemented in the `C-library
|
is done similarly to how it is implemented in the :doc:`C-library
|
||||||
<pg_lib_execute>` interface. Before handing off the calls to the
|
interface <Library_execute>`. Before handing off the calls to the
|
||||||
C-library interface, the corresponding Fortran versions of the calls
|
C-library interface, the corresponding Fortran versions of the calls
|
||||||
(:f:func:`file`, :f:func:`command`, :f:func:`commands_list`, and
|
(:f:func:`file`, :f:func:`command`, :f:func:`commands_list`, and
|
||||||
:f:func:`commands_string`) have to make a copy of the strings passed as
|
:f:func:`commands_string`) have to make a copy of the strings passed as
|
||||||
@ -165,6 +176,57 @@ Below is a small demonstration of the uses of the different functions:
|
|||||||
|
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
Accessing system properties
|
||||||
|
***************************
|
||||||
|
|
||||||
|
The C-library interface allows the :doc:`extraction of different kinds
|
||||||
|
of information <Library_properties>` about the active simulation
|
||||||
|
instance and also - in some cases - to apply modifications to it. In
|
||||||
|
some cases, the C-library interface makes pointers to internal data
|
||||||
|
structures accessible, thus when accessing them from Fortran, special
|
||||||
|
care is needed to avoid data corruption and crashes. Thus please see
|
||||||
|
the documentation of the individual type bound procedures for details.
|
||||||
|
|
||||||
|
Below is an example demonstrating some of the possible uses.
|
||||||
|
|
||||||
|
.. code-block:: fortran
|
||||||
|
|
||||||
|
PROGRAM testprop
|
||||||
|
USE LIBLAMMPS
|
||||||
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_double, c_int64_t
|
||||||
|
TYPE(lammps) :: lmp
|
||||||
|
INTEGER(kind=8) :: natoms
|
||||||
|
REAL(c_double), POINTER :: dt
|
||||||
|
INTEGER(c_int64_t), POINTER :: ntimestep
|
||||||
|
REAL(kind=8) :: pe, ke
|
||||||
|
|
||||||
|
lmp = lammps()
|
||||||
|
CALL lmp%file('in.sysinit')
|
||||||
|
natoms = INT(lmp%get_natoms(),8)
|
||||||
|
WRITE(6,'(A,I8,A)') 'Running a simulation with', natoms, ' atoms'
|
||||||
|
WRITE(6,'(I8,A,I8,A,I3,A)') lmp%extract_setting('nlocal'), ' local and', &
|
||||||
|
lmp%extract_setting('nghost'), ' ghost atom. ', &
|
||||||
|
lmp%extract_setting('ntypes'), ' atom types'
|
||||||
|
|
||||||
|
CALL lmp%command('run 2 post no')
|
||||||
|
dt = lmp%extract_global('dt')
|
||||||
|
ntimestep = lmp%extract_global('ntimestep')
|
||||||
|
WRITE(6,'(A,I4,A,F4.1,A)') 'At step:', ntimestep, ' Changing timestep from', dt, ' to 0.5'
|
||||||
|
dt = 0.5
|
||||||
|
CALL lmp%command('run 2 post no')
|
||||||
|
|
||||||
|
WRITE(6,'(A,I4)') 'At step:', ntimestep
|
||||||
|
pe = lmp%get_thermo('pe')
|
||||||
|
ke = lmp%get_thermo('ke')
|
||||||
|
PRINT*, 'PE = ', pe
|
||||||
|
PRINT*, 'KE = ', ke
|
||||||
|
|
||||||
|
CALL lmp%close(.TRUE.)
|
||||||
|
|
||||||
|
END PROGRAM testprop
|
||||||
|
|
||||||
|
---------------
|
||||||
|
|
||||||
The ``LIBLAMMPS`` module API
|
The ``LIBLAMMPS`` module API
|
||||||
****************************
|
****************************
|
||||||
|
|
||||||
@ -178,14 +240,24 @@ of the contents of the ``LIBLAMMPS`` Fortran interface to LAMMPS.
|
|||||||
class instance that any of the included calls are forwarded to.
|
class instance that any of the included calls are forwarded to.
|
||||||
|
|
||||||
:f c_ptr handle: reference to the LAMMPS class
|
:f c_ptr handle: reference to the LAMMPS class
|
||||||
:f close: :f:func:`close`
|
:f subroutine close: :f:func:`close`
|
||||||
:f version: :f:func:`version`
|
:f subroutine error: :f:func:`error`
|
||||||
:f file: :f:func:`file`
|
:f function version: :f:func:`version`
|
||||||
:f command: :f:func:`command`
|
:f subroutine file: :f:func:`file`
|
||||||
:f commands_list: :f:func:`commands_list`
|
:f subroutine command: :f:func:`command`
|
||||||
:f commands_string: :f:func:`commands_string`
|
:f subroutine commands_list: :f:func:`commands_list`
|
||||||
|
:f subroutine commands_string: :f:func:`commands_string`
|
||||||
|
:f function get_natoms: :f:func:`get_natoms`
|
||||||
|
:f function get_thermo: :f:func:`get_thermo`
|
||||||
|
:f subroutine extract_box: :f:func:`extract_box`
|
||||||
|
:f subroutine reset_box: :f:func:`reset_box`
|
||||||
|
:f subroutine memory_usage: :f:func:`memory_usage`
|
||||||
|
:f function extract_setting: :f:func:`extract_setting`
|
||||||
|
:f function extract_global: :f:func:`extract_global`
|
||||||
|
|
||||||
.. f:function:: lammps(args[,comm])
|
--------
|
||||||
|
|
||||||
|
.. f:function:: lammps([args][,comm])
|
||||||
|
|
||||||
This is the constructor for the Fortran class and will forward
|
This is the constructor for the Fortran class and will forward
|
||||||
the arguments to a call to either :cpp:func:`lammps_open_fortran`
|
the arguments to a call to either :cpp:func:`lammps_open_fortran`
|
||||||
@ -198,10 +270,31 @@ of the contents of the ``LIBLAMMPS`` Fortran interface to LAMMPS.
|
|||||||
If *comm* is not provided, ``MPI_COMM_WORLD`` is assumed. For
|
If *comm* is not provided, ``MPI_COMM_WORLD`` is assumed. For
|
||||||
more details please see the documentation of :cpp:func:`lammps_open`.
|
more details please see the documentation of :cpp:func:`lammps_open`.
|
||||||
|
|
||||||
:p character(len=*) args(*) [optional]: arguments as list of strings
|
:o character(len=\*) args(\*) [optional]: arguments as list of strings
|
||||||
:o integer comm [optional]: MPI communicator
|
:o integer comm [optional]: MPI communicator
|
||||||
:r lammps: an instance of the :f:type:`lammps` derived type
|
:r lammps: an instance of the :f:type:`lammps` derived type
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The ``MPI_F08`` module, which defines Fortran 2008 bindings for MPI,
|
||||||
|
is not directly supported by this interface due to the complexities of
|
||||||
|
supporting both the ``MPI_F08`` and ``MPI`` modules at the same time.
|
||||||
|
However, you should be able to use the ``MPI_VAL`` member of the
|
||||||
|
``MPI_comm`` derived type to access the integer value of the
|
||||||
|
communicator, such as in
|
||||||
|
|
||||||
|
.. code-block:: Fortran
|
||||||
|
|
||||||
|
PROGRAM testmpi
|
||||||
|
USE LIBLAMMPS
|
||||||
|
USE MPI_F08
|
||||||
|
TYPE(lammps) :: lmp
|
||||||
|
lmp = lammps(MPI_COMM_SELF%MPI_VAL)
|
||||||
|
END PROGRAM testmpi
|
||||||
|
|
||||||
|
Procedures Bound to the lammps Derived Type
|
||||||
|
===========================================
|
||||||
|
|
||||||
.. f:subroutine:: close([finalize])
|
.. f:subroutine:: close([finalize])
|
||||||
|
|
||||||
This method will close down the LAMMPS instance through calling
|
This method will close down the LAMMPS instance through calling
|
||||||
@ -211,6 +304,20 @@ of the contents of the ``LIBLAMMPS`` Fortran interface to LAMMPS.
|
|||||||
|
|
||||||
:o logical finalize [optional]: shut down the MPI environment of the LAMMPS library if true.
|
:o logical finalize [optional]: shut down the MPI environment of the LAMMPS library if true.
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:subroutine:: error(error_type, error_text)
|
||||||
|
|
||||||
|
This method is a wrapper around the :cpp:func:`lammps_error` function and will dispatch
|
||||||
|
an error through the LAMMPS Error class.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:p integer error_type: constant to select which Error class function to call
|
||||||
|
:p character(len=\*) error_text: error message
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
.. f:function:: version()
|
.. f:function:: version()
|
||||||
|
|
||||||
This method returns the numeric LAMMPS version like :cpp:func:`lammps_version`
|
This method returns the numeric LAMMPS version like :cpp:func:`lammps_version`
|
||||||
@ -224,25 +331,243 @@ of the contents of the ``LIBLAMMPS`` Fortran interface to LAMMPS.
|
|||||||
This method will call :cpp:func:`lammps_file` to have LAMMPS read
|
This method will call :cpp:func:`lammps_file` to have LAMMPS read
|
||||||
and process commands from a file.
|
and process commands from a file.
|
||||||
|
|
||||||
:p character(len=*) filename: name of file with LAMMPS commands
|
:p character(len=\*) filename: name of file with LAMMPS commands
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
.. f:subroutine:: command(cmd)
|
.. f:subroutine:: command(cmd)
|
||||||
|
|
||||||
This method will call :cpp:func:`lammps_command` to have LAMMPS
|
This method will call :cpp:func:`lammps_command` to have LAMMPS
|
||||||
execute a single command.
|
execute a single command.
|
||||||
|
|
||||||
:p character(len=*) cmd: single LAMMPS command
|
:p character(len=\*) cmd: single LAMMPS command
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
.. f:subroutine:: commands_list(cmds)
|
.. f:subroutine:: commands_list(cmds)
|
||||||
|
|
||||||
This method will call :cpp:func:`lammps_commands_list` to have LAMMPS
|
This method will call :cpp:func:`lammps_commands_list` to have LAMMPS
|
||||||
execute a list of input lines.
|
execute a list of input lines.
|
||||||
|
|
||||||
:p character(len=*) cmd(:): list of LAMMPS input lines
|
:p character(len=\*) cmd(:): list of LAMMPS input lines
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
.. f:subroutine:: commands_string(str)
|
.. f:subroutine:: commands_string(str)
|
||||||
|
|
||||||
This method will call :cpp:func:`lammps_commands_string` to have LAMMPS
|
This method will call :cpp:func:`lammps_commands_string` to have LAMMPS
|
||||||
execute a block of commands from a string.
|
execute a block of commands from a string.
|
||||||
|
|
||||||
:p character(len=*) str: LAMMPS input in string
|
:p character(len=\*) str: LAMMPS input in string
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:function:: get_natoms()
|
||||||
|
|
||||||
|
This function will call :cpp:func:`lammps_get_natoms` and return the number
|
||||||
|
of atoms in the system.
|
||||||
|
|
||||||
|
:r real(c_double): number of atoms
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:function:: get_thermo(name)
|
||||||
|
|
||||||
|
This function will call :cpp:func:`lammps_get_thermo` and return the value
|
||||||
|
of the corresponding thermodynamic keyword.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:p character(len=\*) name: string with the name of the thermo keyword
|
||||||
|
:r real(c_double): value of the requested thermo property or `0.0_c_double`
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:subroutine:: extract_box([boxlo][, boxhi][, xy][, yz][, xz][, pflags][, boxflag])
|
||||||
|
|
||||||
|
This subroutine will call :cpp:func:`lammps_extract_box`. All
|
||||||
|
parameters are optional, though obviously at least one should be
|
||||||
|
present. The parameters *pflags* and *boxflag* are stored in LAMMPS
|
||||||
|
as integers, but should be declared as ``LOGICAL`` variables when
|
||||||
|
calling from Fortran.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:o real(c_double) boxlo [dimension(3),optional]: vector in which to store
|
||||||
|
lower-bounds of simulation box
|
||||||
|
:o real(c_double) boxhi [dimension(3),optional]: vector in which to store
|
||||||
|
upper-bounds of simulation box
|
||||||
|
:o real(c_double) xy [optional]: variable in which to store *xy* tilt factor
|
||||||
|
:o real(c_double) yz [optional]: variable in which to store *yz* tilt factor
|
||||||
|
:o real(c_double) xz [optional]: variable in which to store *xz* tilt factor
|
||||||
|
:o logical pflags [dimension(3),optional]: vector in which to store
|
||||||
|
periodicity flags (``.TRUE.`` means periodic in that dimension)
|
||||||
|
:o logical boxflag [optional]: variable in which to store boolean denoting
|
||||||
|
whether the box will change during a simulation
|
||||||
|
(``.TRUE.`` means box will change)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Note that a frequent use case of this function is to extract only one or
|
||||||
|
more of the options rather than all seven. For example, assuming "lmp"
|
||||||
|
represents a properly-initialized LAMMPS instance, the following code will
|
||||||
|
extract the periodic box settings into the variable "periodic":
|
||||||
|
|
||||||
|
.. code-block:: Fortran
|
||||||
|
|
||||||
|
! code to start up
|
||||||
|
logical :: periodic(3)
|
||||||
|
! code to initialize LAMMPS / run things / etc.
|
||||||
|
call lmp%extract_box(pflags = periodic)
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:subroutine:: reset_box(boxlo, boxhi, xy, yz, xz)
|
||||||
|
|
||||||
|
This subroutine will call :cpp:func:`lammps_reset_box`. All parameters
|
||||||
|
are required.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:p real(c_double) boxlo [dimension(3)]: vector of three doubles containing
|
||||||
|
the lower box boundary
|
||||||
|
:p real(c_double) boxhi [dimension(3)]: vector of three doubles containing
|
||||||
|
the upper box boundary
|
||||||
|
:p real(c_double) xy: *x--y* tilt factor
|
||||||
|
:p real(c_double) yz: *y--z* tilt factor
|
||||||
|
:p real(c_double) xz: *x--z* tilt factor
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:subroutine:: memory_usage(meminfo)
|
||||||
|
|
||||||
|
This subroutine will call :cpp:func:`lammps_memory_usage` and store the
|
||||||
|
result in the three-element array *meminfo*.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:p real(c_double) meminfo [dimension(3)]: vector of three doubles in which
|
||||||
|
to store memory usage data
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:function:: get_mpi_comm()
|
||||||
|
|
||||||
|
This function returns a Fortran representation of the LAMMPS "world"
|
||||||
|
communicator.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:r integer: Fortran integer equivalent to the MPI communicator LAMMPS is
|
||||||
|
using
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The C library interface currently returns type ``int`` instead of
|
||||||
|
type ``MPI_Fint``, which is the C type corresponding to Fortran
|
||||||
|
``INTEGER`` types of the default kind. On most compilers, these
|
||||||
|
are the same anyway, but this interface exchanges values this way
|
||||||
|
to avoid warning messages.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The `MPI_F08` module, which defines Fortran 2008 bindings for MPI,
|
||||||
|
is not directly supported by this function. However, you should be
|
||||||
|
able to convert between the two using the `MPI_VAL` member of the
|
||||||
|
communicator. For example,
|
||||||
|
|
||||||
|
.. code-block:: fortran
|
||||||
|
|
||||||
|
USE MPI_F08
|
||||||
|
USE LIBLAMMPS
|
||||||
|
TYPE (LAMMPS) :: lmp
|
||||||
|
TYPE (MPI_Comm) :: comm
|
||||||
|
! ... [commands to set up LAMMPS/etc.]
|
||||||
|
comm%MPI_VAL = lmp%get_mpi_comm()
|
||||||
|
|
||||||
|
should assign an `MPI_F08` communicator properly.
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:function:: extract_setting(keyword)
|
||||||
|
|
||||||
|
Query LAMMPS about global settings. See the documentation for the
|
||||||
|
:cpp:func:`lammps_extract_setting` function from the C library.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
:p character(len=\*) keyword: string containing the name of the thermo keyword
|
||||||
|
:r integer(c_int): value of the queried setting or :math:`-1` if unknown
|
||||||
|
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. f:function:: extract_global(name)
|
||||||
|
|
||||||
|
This function calls :cpp:func:`lammps_extract_global` and returns
|
||||||
|
either a string or a pointer to internal global LAMMPS data,
|
||||||
|
depending on the data requested through *name*.
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
Note that this function actually does not return a value, but rather
|
||||||
|
associates the pointer on the left side of the assignment to point to
|
||||||
|
internal LAMMPS data (with the exception of string data, which are
|
||||||
|
copied and returned as ordinary Fortran strings). Pointers must be of
|
||||||
|
the correct data type to point to said data (typically
|
||||||
|
``INTEGER(c_int)``, ``INTEGER(c_int64_t)``, or ``REAL(c_double)``)
|
||||||
|
and have compatible kind and rank. The pointer being associated with
|
||||||
|
LAMMPS data is type-, kind-, and rank-checked at run-time via an
|
||||||
|
overloaded assignment operator. The pointers returned by this
|
||||||
|
function are generally persistent; therefore it is not necessary to
|
||||||
|
call the function again, unless a :doc:`clear` command has been
|
||||||
|
issued, which wipes out and recreates the contents of the
|
||||||
|
:cpp:class:`LAMMPS <LAMMPS_NS::LAMMPS>` class.
|
||||||
|
|
||||||
|
For example,
|
||||||
|
|
||||||
|
.. code-block:: fortran
|
||||||
|
|
||||||
|
PROGRAM demo
|
||||||
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int64_t
|
||||||
|
USE LIBLAMMPS
|
||||||
|
TYPE(lammps) :: lmp
|
||||||
|
INTEGER(c_int), POINTER :: nlocal
|
||||||
|
INTEGER(c_int64_t), POINTER :: ntimestep
|
||||||
|
CHARACTER(LEN=10) :: units
|
||||||
|
REAL(c_double), POINTER :: dt
|
||||||
|
lmp = lammps()
|
||||||
|
! other commands
|
||||||
|
nlocal = lmp%extract_global('nlocal')
|
||||||
|
ntimestep = lmp%extract_global('ntimestep')
|
||||||
|
dt = lmp%extract_global('dt')
|
||||||
|
units = lmp%extract_global('units')
|
||||||
|
! more commands
|
||||||
|
lmp.close(.TRUE.)
|
||||||
|
END PROGRAM demo
|
||||||
|
|
||||||
|
would extract the number of atoms on this processor, the current time step,
|
||||||
|
the size of the current time step, and the units being used into the
|
||||||
|
variables *nlocal*, *ntimestep*, *dt*, and *units*, respectively.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
if this function returns a string, the string must have
|
||||||
|
length greater than or equal to the length of the string (not including the
|
||||||
|
terminal NULL character) that LAMMPS returns. If the variable's length is
|
||||||
|
too short, the string will be truncated. As usual in Fortran, strings
|
||||||
|
are padded with spaces at the end.
|
||||||
|
|
||||||
|
:p character(len=\*) name: string with the name of the extracted property
|
||||||
|
:r polymorphic: pointer to LAMMPS data. The left-hand side of the assignment
|
||||||
|
should be either a string (if expecting string data) or a C-compatible
|
||||||
|
pointer (e.g., ``INTEGER (c_int), POINTER :: nlocal``) to the extracted
|
||||||
|
property. If expecting vector data, the pointer should have dimension ":".
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Modifying the data in the location pointed to by the returned pointer
|
||||||
|
may lead to inconsistent internal data and thus may cause failures or
|
||||||
|
crashes or bogus simulations. In general it is thus usually better
|
||||||
|
to use a LAMMPS input command that sets or changes these parameters.
|
||||||
|
Those will take care of all side effects and necessary updates of
|
||||||
|
settings derived from such settings.
|
||||||
|
|||||||
@ -34,6 +34,7 @@ Settings howto
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
Howto_2d
|
Howto_2d
|
||||||
|
Howto_type_labels
|
||||||
Howto_triclinic
|
Howto_triclinic
|
||||||
Howto_thermostat
|
Howto_thermostat
|
||||||
Howto_barostat
|
Howto_barostat
|
||||||
|
|||||||
@ -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/>`_.
|
||||||
|
|||||||
@ -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>`_.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -97,7 +97,7 @@ This leads to slightly larger cost for the long-range calculation, so
|
|||||||
you can test the trade-off for your model. The OM distance and the LJ
|
you can test the trade-off for your model. The OM distance and the LJ
|
||||||
and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>` command.
|
and Coulombic 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>`_.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
126
doc/src/Howto_type_labels.rst
Normal file
126
doc/src/Howto_type_labels.rst
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
Type labels
|
||||||
|
===========
|
||||||
|
|
||||||
|
.. versionadded:: 15Sep2022
|
||||||
|
|
||||||
|
Each atom in LAMMPS has an associated numeric atom type. Similarly,
|
||||||
|
each bond, angle, dihedral, and improper is assigned a bond type,
|
||||||
|
angle type, and so on. The primary use of these types is to map
|
||||||
|
potential (force field) parameters to the interactions of the atom,
|
||||||
|
bond, angle, dihedral, and improper.
|
||||||
|
|
||||||
|
By default, type values are entered as integers from 1 to Ntypes
|
||||||
|
wherever they appear in LAMMPS input or output files. The total number
|
||||||
|
Ntypes for each interaction is "locked in" when the simulation box
|
||||||
|
is created.
|
||||||
|
|
||||||
|
A recent addition to LAMMPS is the option to use strings - referred
|
||||||
|
to as type labels - as an alternative. Using type labels instead of
|
||||||
|
numeric types can be advantageous in various scenarios. For example,
|
||||||
|
type labels can make inputs more readable and generic (i.e. usable through
|
||||||
|
the :doc:`include command <include>` for different systems with different
|
||||||
|
numerical values assigned to types. This generality also applies to
|
||||||
|
other inputs like data files read by :doc:`read_data <read_data>` or
|
||||||
|
molecule template files read by the :doc:`molecule <molecule>`
|
||||||
|
command. See below for a list of other commands that can use
|
||||||
|
type labels in different ways.
|
||||||
|
|
||||||
|
LAMMPS will *internally* continue to use numeric types, which means
|
||||||
|
that many previous restrictions still apply. For example, the total
|
||||||
|
number of types is locked in when creating the simulation box, and
|
||||||
|
potential parameters for each type must be provided even if not used
|
||||||
|
by any interactions.
|
||||||
|
|
||||||
|
A collection of type labels for all type-kinds (atom types, bond types,
|
||||||
|
etc.) is stored as a "label map" which is simply a list of numeric types
|
||||||
|
and their associated type labels. Within a type-kind, each type label
|
||||||
|
must be unique. It can be assigned to only one numeric type. To read
|
||||||
|
and write type labels to data files for a given type-kind, *all*
|
||||||
|
associated numeric types need have a type label assigned. Partial
|
||||||
|
maps can be saved with the :doc:`labelmap write <labelmap>` command
|
||||||
|
and read back with the :doc:`include <include>` command.
|
||||||
|
|
||||||
|
Valid type labels can contain most ASCII characters, but cannot start
|
||||||
|
with a number, a '#', or a '*'. Also, labels must not contain whitespace
|
||||||
|
characters. When using the :doc:`labelmap command <labelmap>` in the
|
||||||
|
LAMMPS input, if certain characters appear in the type label, such as
|
||||||
|
the single (') or double (") quote or the '#' character, the label
|
||||||
|
must be put in either double, single, or triple (""") quotes. Triple
|
||||||
|
quotes allow for the most generic type label strings, but they require
|
||||||
|
to have a leading and trailing blank space. When defining type labels
|
||||||
|
the blanks will be ignored. Example:
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
labelmap angle 1 """ C1'-C2"-C3# """
|
||||||
|
|
||||||
|
This command will map the string ```C1'-C2"-C3#``` to the angle type 1.
|
||||||
|
|
||||||
|
There are two ways to define label maps. One is via the :doc:`labelmap
|
||||||
|
<labelmap>` command. The other is via the :doc:`read_data <read_data>`
|
||||||
|
command. A data file can have sections such as *Atom Type Labels*, *Bond
|
||||||
|
Type Labels*, etc., which assign type labels to numeric types. The
|
||||||
|
label map can be written out to data files by the :doc:`write_data
|
||||||
|
<write_data>` command. This map is also written to and read from
|
||||||
|
restart files, by the :doc:`write_restart <write_restart>` and
|
||||||
|
:doc:`read_restart <read_restart>` commands.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
Use of type labels in LAMMPS input or output
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
Many LAMMPS input script commands that take a numeric type as an
|
||||||
|
argument can use the associated type label instead. If a type label
|
||||||
|
is not defined for a particular numeric type, only its numeric type
|
||||||
|
can be used.
|
||||||
|
|
||||||
|
This example assigns labels to the atom types, and then uses the type
|
||||||
|
labels to redefine the pair coefficients.
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
pair_coeff 1 2 1.0 1.0 # numeric types
|
||||||
|
labelmap atom 1 C 2 H
|
||||||
|
pair_coeff C H 1.0 1.0 # type labels
|
||||||
|
|
||||||
|
Adding support for type labels to various commands is an ongoing
|
||||||
|
project. If an input script command (or a section in a file read by a
|
||||||
|
command) allows substituting a type label for a numeric type argument,
|
||||||
|
it will be explicitly mentioned in that command's documentation page.
|
||||||
|
|
||||||
|
As a temporary measure, input script commands can take advantage of
|
||||||
|
variables and how they can be expanded during processing of the input.
|
||||||
|
The variables can use functions that will translate type label strings
|
||||||
|
to their respective number as defined in the current label map. See the
|
||||||
|
:doc:`variable <variable>` command for details.
|
||||||
|
|
||||||
|
For example, here is how the pair_coeff command could be used with
|
||||||
|
type labels if it did not yet support them, either with an explicit
|
||||||
|
variable command or an implicit variable used in the pair_coeff
|
||||||
|
command.
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
labelmap atom 1 C 2 H
|
||||||
|
variable atom1 equal label2type(atom,C)
|
||||||
|
variable atom2 equal label2type(atom,H)
|
||||||
|
pair_coeff ${atom1} ${atom2} 1.0 1.0
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
labelmap atom 1 C 2 H
|
||||||
|
pair_coeff $(label2type(atom,C)) $(label2type(atom,H)) 80.0 1.2
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
Commands that can use label types
|
||||||
|
"""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
Any workflow that involves reading multiple data files, molecule
|
||||||
|
templates or a combination of the two can be streamlined by using type
|
||||||
|
labels instead of numeric types, because types are automatically synced
|
||||||
|
between the files. The creation of simulation-ready reaction templates
|
||||||
|
for :doc:`fix bond/react <fix_bond_react>` is much simpler when using
|
||||||
|
type labels, and results in templates that can be used without
|
||||||
|
modification in multiple simulations or different systems.
|
||||||
@ -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:
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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, this should be done with care. When accessing per-atom data,
|
||||||
that this data is the per-processor **local** data and is indexed
|
please note that this data is the per-processor **local** data and is
|
||||||
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
|
||||||
|
|
||||||
|
|||||||
@ -134,6 +134,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.
|
||||||
@ -276,7 +278,7 @@ the barostat as outlined in:
|
|||||||
|
|
||||||
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
|
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
|
||||||
accurately describe the structure, pressure, and compressibility of
|
accurately describe the structure, pressure, and compressibility of
|
||||||
molecular liquids," J. Chem. Phys. 143, 243148 (2015).
|
molecular liquids", J. Chem. Phys. 143, 243148 (2015).
|
||||||
|
|
||||||
**Authors:** Nicholas J. H. Dunn and Michael R. DeLyser (The
|
**Authors:** Nicholas J. H. Dunn and Michael R. DeLyser (The
|
||||||
Pennsylvania State University)
|
Pennsylvania State University)
|
||||||
@ -364,6 +366,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.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -592,6 +596,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
|
||||||
@ -932,6 +938,10 @@ EXTRA-MOLECULE package
|
|||||||
|
|
||||||
Additional bond, angle, dihedral, and improper styles that are less commonly used.
|
Additional bond, angle, dihedral, and improper styles that are less commonly used.
|
||||||
|
|
||||||
|
**Install:**
|
||||||
|
|
||||||
|
To use this package, also the :ref:`MOLECULE <PKG-MOLECULE>` package needs to be installed.
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/EXTRA-MOLECULE: filenames -> commands
|
* src/EXTRA-MOLECULE: filenames -> commands
|
||||||
@ -1067,7 +1077,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.
|
||||||
@ -1508,6 +1518,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
|
||||||
@ -1592,6 +1604,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
|
||||||
@ -1684,6 +1698,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
|
||||||
@ -1718,6 +1734,10 @@ must be installed.
|
|||||||
|
|
||||||
**Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL).
|
**Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL).
|
||||||
|
|
||||||
|
.. versionadded:: 30Jun2020
|
||||||
|
|
||||||
|
.. versionadded:: 30Jun2020
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
|
|
||||||
* src/ML-IAP: filenames -> commands
|
* src/ML-IAP: filenames -> commands
|
||||||
@ -1762,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
|
||||||
@ -1825,6 +1847,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
|
||||||
@ -1950,7 +1974,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).
|
||||||
|
|
||||||
@ -2041,7 +2065,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.
|
||||||
@ -2052,7 +2076,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/
|
||||||
|
|
||||||
@ -2260,6 +2284,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
|
||||||
@ -2413,7 +2439,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
|
||||||
@ -2825,7 +2851,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.
|
||||||
@ -2859,9 +2885,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.
|
||||||
@ -2898,11 +2924,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.
|
||||||
|
|||||||
@ -495,7 +495,7 @@ run:
|
|||||||
write_dump group-ID dumpstyle dumpfile arg1 arg2 ...
|
write_dump group-ID dumpstyle dumpfile arg1 arg2 ...
|
||||||
|
|
||||||
Note that the specified restartfile and dumpfile names may contain
|
Note that the specified restartfile and dumpfile names may contain
|
||||||
wild-card characters ("\*","%") as explained on the
|
wild-card characters ("\*" or "%") as explained on the
|
||||||
:doc:`read_restart <read_restart>` and :doc:`write_dump <write_dump>` doc
|
:doc:`read_restart <read_restart>` and :doc:`write_dump <write_dump>` doc
|
||||||
pages. The use of "%" means that a parallel restart file and/or
|
pages. The use of "%" means that a parallel restart file and/or
|
||||||
parallel dump file can be read and/or written. Note that a filename
|
parallel dump file can be read and/or written. Note that a filename
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -536,6 +536,6 @@ supported.
|
|||||||
References
|
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.
|
||||||
|
|||||||
@ -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
|
||||||
"""""""""""""""""""""""""""""""
|
"""""""""""""""""""""""""""""""
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -10,7 +10,7 @@ Syntax
|
|||||||
|
|
||||||
angle_coeff N args
|
angle_coeff N args
|
||||||
|
|
||||||
* N = angle type (see asterisk form below)
|
* N = numeric angle type (see asterisk form below), or type label
|
||||||
* args = coefficients for one or more angle types
|
* args = coefficients for one or more angle types
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
@ -22,6 +22,9 @@ Examples
|
|||||||
angle_coeff * 5.0
|
angle_coeff * 5.0
|
||||||
angle_coeff 2*10 5.0
|
angle_coeff 2*10 5.0
|
||||||
|
|
||||||
|
labelmap angle 1 hydroxyl
|
||||||
|
angle_coeff hydroxyl 300.0 107.0
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
@ -30,18 +33,24 @@ The number and meaning of the coefficients depends on the angle style.
|
|||||||
Angle coefficients can also be set in the data file read by the
|
Angle coefficients can also be set in the data file read by the
|
||||||
:doc:`read_data <read_data>` command or in a restart file.
|
:doc:`read_data <read_data>` command or in a restart file.
|
||||||
|
|
||||||
N can be specified in one of two ways. An explicit numeric value can
|
:math:`N` can be specified in one of two ways. An explicit numeric
|
||||||
be used, as in the first example above. Or a wild-card asterisk can be
|
value can be used, as in the first example above. Or :math:`N` can be a
|
||||||
used to set the coefficients for multiple angle types. This takes the
|
type label, which is an alphanumeric string defined by the
|
||||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of angle types,
|
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||||
then an asterisk with no numeric values means all types from 1 to N. A
|
by the :doc:`read_data <read_data>` command.
|
||||||
leading asterisk means all types from 1 to n (inclusive). A trailing
|
|
||||||
asterisk means all types from n to N (inclusive). A middle asterisk
|
|
||||||
means all types from m to n (inclusive).
|
|
||||||
|
|
||||||
Note that using an :doc:`angle_coeff <angle_coeff>` command can override a previous setting
|
For numeric values only, a wild-card asterisk can be used to set the
|
||||||
for the same angle type. For example, these commands set the coeffs
|
coefficients for multiple angle types. This takes the form "\*" or
|
||||||
for all angle types, then overwrite the coeffs for just angle type 2:
|
"\*n" or "n\*" or "m\*n". If :math:`N` is the number of angle types,
|
||||||
|
then an asterisk with no numeric values means all types from 1 to
|
||||||
|
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
|
||||||
|
A trailing asterisk means all types from n to :math:`N` (inclusive). A
|
||||||
|
middle asterisk means all types from m to n (inclusive).
|
||||||
|
|
||||||
|
Note that using an :doc:`angle_coeff <angle_coeff>` command can
|
||||||
|
override a previous setting for the same angle type. For example,
|
||||||
|
these commands set the coeffs for all angle types, then overwrite the
|
||||||
|
coeffs for just angle type 2:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -49,11 +58,11 @@ for all angle types, then overwrite the coeffs for just angle type 2:
|
|||||||
angle_coeff 2 50.0 107.0
|
angle_coeff 2 50.0 107.0
|
||||||
|
|
||||||
A line in a data file that specifies angle coefficients uses the exact
|
A line in a data file that specifies angle coefficients uses the exact
|
||||||
same format as the arguments of the :doc:`angle_coeff <angle_coeff>` command in an input
|
same format as the arguments of the :doc:`angle_coeff <angle_coeff>`
|
||||||
script, except that wild-card asterisks should not be used since
|
command in an input script, except that wild-card asterisks should not
|
||||||
coefficients for all N types must be listed in the file. For example,
|
be used since coefficients for all :math:`N` types must be listed in the
|
||||||
under the "Angle Coeffs" section of a data file, the line that
|
file. For example, under the "Angle Coeffs" section of a data file, the
|
||||||
corresponds to the first example above would be listed as
|
line that corresponds to the first example above would be listed as
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -61,15 +70,14 @@ corresponds to the first example above would be listed as
|
|||||||
|
|
||||||
The :doc:`angle_style class2 <angle_class2>` is an exception to this
|
The :doc:`angle_style class2 <angle_class2>` is an exception to this
|
||||||
rule, in that an additional argument is used in the input script to
|
rule, in that an additional argument is used in the input script to
|
||||||
allow specification of the cross-term coefficients. See its
|
allow specification of the cross-term coefficients. See its doc page
|
||||||
doc page for details.
|
for details.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The list of all angle styles defined in LAMMPS is given on the
|
The list of all angle styles defined in LAMMPS is given on the
|
||||||
:doc:`angle_style <angle_style>` doc page. They are also listed in more
|
:doc:`angle_style <angle_style>` doc page. They are also listed in more
|
||||||
compact form on the :ref:`Commands angle <angle>` doc
|
compact form on the :ref:`Commands angle <angle>` doc page.
|
||||||
page.
|
|
||||||
|
|
||||||
On either of those pages, click on the style to display the formula it
|
On either of those pages, click on the style to display the formula it
|
||||||
computes and its coefficients as specified by the associated
|
computes and its coefficients as specified by the associated
|
||||||
|
|||||||
@ -24,7 +24,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 15Sep2022
|
||||||
|
|
||||||
The *mesocnt* angle style uses the potential
|
The *mesocnt* angle style uses the potential
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ Syntax
|
|||||||
|
|
||||||
bond_coeff N args
|
bond_coeff N args
|
||||||
|
|
||||||
* N = bond type (see asterisk form below)
|
* N = numeric bond type (see asterisk form below), or type label
|
||||||
* args = coefficients for one or more bond types
|
* args = coefficients for one or more bond types
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
@ -21,7 +21,10 @@ 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
|
bond_coeff 1 harmonic 200.0 1.0 (for bond_style hybrid)
|
||||||
|
|
||||||
|
labelmap bond 5 carbonyl
|
||||||
|
bond_coeff carbonyl 80.0 1.2
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -31,14 +34,19 @@ The number and meaning of the coefficients depends on the bond style.
|
|||||||
Bond coefficients can also be set in the data file read by the
|
Bond coefficients can also be set in the data file read by the
|
||||||
:doc:`read_data <read_data>` command or in a restart file.
|
:doc:`read_data <read_data>` command or in a restart file.
|
||||||
|
|
||||||
N can be specified in one of two ways. An explicit numeric value can
|
:math:`N` can be specified in one of several ways. An explicit numeric
|
||||||
be used, as in the first example above. Or a wild-card asterisk can be
|
value can be used, as in the first example above. Or :math:`N` can be a
|
||||||
used to set the coefficients for multiple bond types. This takes the
|
type label, which is an alphanumeric string defined by the
|
||||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of bond types,
|
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||||
then an asterisk with no numeric values means all types from 1 to N. A
|
by the :doc:`read_data <read_data>` command.
|
||||||
|
|
||||||
|
For numeric values only, a wild-card asterisk can be used to set the
|
||||||
|
coefficients for multiple bond types. This takes the form "\*" or "\*n"
|
||||||
|
or "n\*" or "m\*n". If :math:`N` is the number of bond types, then an
|
||||||
|
asterisk with no numeric values means all types from 1 to :math:`N`. A
|
||||||
leading asterisk means all types from 1 to n (inclusive). A trailing
|
leading asterisk means all types from 1 to n (inclusive). A trailing
|
||||||
asterisk means all types from n to N (inclusive). A middle asterisk
|
asterisk means all types from n to :math:`N` (inclusive). A middle
|
||||||
means all types from m to n (inclusive).
|
asterisk means all types from m to n (inclusive).
|
||||||
|
|
||||||
Note that using a bond_coeff command can override a previous setting
|
Note that using a bond_coeff command can override a previous setting
|
||||||
for the same bond type. For example, these commands set the coeffs
|
for the same bond type. For example, these commands set the coeffs
|
||||||
@ -52,8 +60,8 @@ for all bond types, then overwrite the coeffs for just bond type 2:
|
|||||||
A line in a data file that specifies bond coefficients uses the exact
|
A line in a data file that specifies bond coefficients uses the exact
|
||||||
same format as the arguments of the bond_coeff command in an input
|
same format as the arguments of the bond_coeff command in an input
|
||||||
script, except that wild-card asterisks should not be used since
|
script, except that wild-card asterisks should not be used since
|
||||||
coefficients for all N types must be listed in the file. For example,
|
coefficients for all :math:`N` types must be listed in the file. For
|
||||||
under the "Bond Coeffs" section of a data file, the line that
|
example, under the "Bond Coeffs" section of a data file, the line that
|
||||||
corresponds to the first example above would be listed as
|
corresponds to the first example above would be listed as
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|||||||
@ -22,7 +22,7 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
.. versionadded:: TBD
|
.. versionadded:: 15Sep2022
|
||||||
|
|
||||||
The *mesocnt* bond style is a wrapper for the :doc:`harmonic
|
The *mesocnt* bond style is a wrapper for the :doc:`harmonic
|
||||||
<bond_harmonic>` style, and uses the potential
|
<bond_harmonic>` style, and uses the potential
|
||||||
|
|||||||
@ -56,6 +56,7 @@ Commands
|
|||||||
kspace_modify
|
kspace_modify
|
||||||
kspace_style
|
kspace_style
|
||||||
label
|
label
|
||||||
|
labelmap
|
||||||
lattice
|
lattice
|
||||||
log
|
log
|
||||||
mass
|
mass
|
||||||
|
|||||||
@ -78,7 +78,7 @@ These values can be accessed by any command that uses global array
|
|||||||
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The array values are "intensive." The array values will be in
|
The array values are "intensive". The array values will be in
|
||||||
mass-velocity-distance :doc:`units <units>`.
|
mass-velocity-distance :doc:`units <units>`.
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@ -182,7 +182,7 @@ by any command that uses global values from a compute as input. See
|
|||||||
the :doc:`Howto output <Howto_output>` doc page for an overview of
|
the :doc:`Howto output <Howto_output>` doc page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The array values calculated by this compute are all "extensive."
|
The array values calculated by this compute are all "extensive".
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -49,7 +49,7 @@ accessed by indices 1--3 by any command that uses global vector values
|
|||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "intensive." The vector values will be in
|
The vector values are "intensive". The vector values will be in
|
||||||
distance :doc:`units <units>`.
|
distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -77,7 +77,7 @@ values can be accessed by any command that uses global array values
|
|||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive." The array values will be in
|
The array values are "intensive". The array values will be in
|
||||||
distance :doc:`units <units>`.
|
distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -24,16 +24,18 @@ 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 `PDLAMMPS user guide
|
||||||
definition of "damage" and more details about Peridynamics as it is
|
<https://download.lammps.org/pdfs/PDLAMMPS_user_guide.pdf>`_ for a
|
||||||
implemented in LAMMPS.
|
formal definition of "damage" and more details about Peridynamics as it
|
||||||
|
is implemented in 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 +55,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
|
||||||
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for
|
user guide <https://download.lammps.org/pdfs/PDLAMMPS_user_guide.pdf>`_
|
||||||
a formal definition of dilatation.
|
for a formal definition of 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
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -54,7 +54,7 @@ the computed dipole moment and a global vector of length 3 with the
|
|||||||
dipole vector. See the :doc:`Howto output <Howto_output>` page for
|
dipole vector. See the :doc:`Howto output <Howto_output>` page for
|
||||||
an overview of LAMMPS output options.
|
an overview of LAMMPS output options.
|
||||||
|
|
||||||
The computed values are "intensive." The array values will be in
|
The computed values are "intensive". The array values will be in
|
||||||
dipole units (i.e., charge :doc:`units <units>` times distance
|
dipole units (i.e., charge :doc:`units <units>` times distance
|
||||||
:doc:`units <units>`).
|
:doc:`units <units>`).
|
||||||
|
|
||||||
|
|||||||
@ -86,7 +86,7 @@ chunk. These values can be accessed by any command that uses global
|
|||||||
array values from a compute as input. See the :doc:`Howto output
|
array values from a compute as input. See the :doc:`Howto output
|
||||||
<Howto_output>` page for an overview of LAMMPS output options.
|
<Howto_output>` page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive." The array values will be in
|
The array values are "intensive". The array values will be in
|
||||||
dipole units (i.e., charge :doc:`units <units>` times distance
|
dipole units (i.e., charge :doc:`units <units>` times distance
|
||||||
:doc:`units <units>`).
|
:doc:`units <units>`).
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@ used by any command that uses a global scalar value from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive." The
|
The scalar value calculated by this compute is "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -48,7 +48,7 @@ of all the rigid bodies). This value can be used by any command that
|
|||||||
uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive." The
|
The scalar value calculated by this compute is "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -44,7 +44,7 @@ used by any command that uses a global scalar value from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive." The
|
The scalar value calculated by this compute is "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -40,7 +40,7 @@ further than the threshold distance.
|
|||||||
If the system is undergoing significant center-of-mass motion,
|
If the system is undergoing significant center-of-mass motion,
|
||||||
due to thermal motion, an external force, or an initial net momentum,
|
due to thermal motion, an external force, or an initial net momentum,
|
||||||
then this compute will not be able to distinguish that motion from
|
then this compute will not be able to distinguish that motion from
|
||||||
local atom displacements and may generate "false positives."
|
local atom displacements and may generate "false positives".
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -50,7 +50,7 @@ used by any command that uses a global scalar value from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "intensive." The
|
The scalar value calculated by this compute is "intensive". The
|
||||||
scalar value will be a 0 or 1 as explained above.
|
scalar value will be a 0 or 1 as explained above.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -299,7 +299,7 @@ These output results can be used by any command that uses a global
|
|||||||
scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`.
|
options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`.
|
||||||
|
|
||||||
The values calculated by this compute are "extensive."
|
The values calculated by this compute are "extensive".
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -140,7 +140,7 @@ vector values from a compute as input. See the
|
|||||||
options.
|
options.
|
||||||
|
|
||||||
Both the scalar and vector values calculated by this compute are
|
Both the scalar and vector values calculated by this compute are
|
||||||
"extensive." The scalar value will be in energy :doc:`units <units>`.
|
"extensive". The scalar value will be in energy :doc:`units <units>`.
|
||||||
The vector values will be in force :doc:`units <units>`.
|
The vector values will be in force :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -69,7 +69,7 @@ vector values from a compute as input. See the :doc:`Howto output <Howto_output
|
|||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar and vector values calculated by this compute are
|
The scalar and vector values calculated by this compute are
|
||||||
"intensive." The scalar and vector values will be in distance and
|
"intensive". The scalar and vector values will be in distance and
|
||||||
distance\ :math:`^2` :doc:`units <units>`, respectively.
|
distance\ :math:`^2` :doc:`units <units>`, respectively.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -78,7 +78,7 @@ vector values from a compute as input. See the
|
|||||||
options.
|
options.
|
||||||
|
|
||||||
The vector values calculated by this compute are
|
The vector values calculated by this compute are
|
||||||
"intensive." The first five vector values will be in
|
"intensive". The first five vector values will be in
|
||||||
distance\ :math:`2` :doc:`units <units>` while the sixth one is dimensionless.
|
distance\ :math:`2` :doc:`units <units>` while the sixth one is dimensionless.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -80,7 +80,7 @@ See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
|||||||
output options.
|
output options.
|
||||||
|
|
||||||
The array calculated by this compute is
|
The array calculated by this compute is
|
||||||
"intensive." The first five columns will be in
|
"intensive". The first five columns will be in
|
||||||
distance\ :math:`^2` :doc:`units <units>` while the sixth one is dimensionless.
|
distance\ :math:`^2` :doc:`units <units>` while the sixth one is dimensionless.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -142,14 +142,14 @@ command that uses global vector values from a compute as input.
|
|||||||
See the :doc:`Howto output <Howto_output>` documentation for an overview of
|
See the :doc:`Howto output <Howto_output>` documentation for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The vector values calculated by this compute are "extensive," meaning
|
The vector values calculated by this compute are "extensive", meaning
|
||||||
they scale with the number of atoms in the simulation. They can be
|
they scale with the number of atoms in the simulation. They can be
|
||||||
divided by the appropriate volume to get a flux, which would then be
|
divided by the appropriate volume to get a flux, which would then be an
|
||||||
an "intensive" value, meaning independent of the number of atoms in
|
"intensive" value, meaning independent of the number of atoms in the
|
||||||
the simulation. Note that if the compute is "all," then the
|
simulation. Note that if the compute group is "all", then the
|
||||||
appropriate volume to divide by is the simulation box volume.
|
appropriate volume to divide by is the simulation box volume. However,
|
||||||
However, if a sub-group is used, it should be the volume containing
|
if a group with a subset of atoms is used, it should be the volume
|
||||||
those atoms.
|
containing those atoms.
|
||||||
|
|
||||||
The vector values will be in energy\*velocity :doc:`units <units>`. Once
|
The vector values will be in energy\*velocity :doc:`units <units>`. Once
|
||||||
divided by a volume the units will be that of flux, namely
|
divided by a volume the units will be that of flux, namely
|
||||||
|
|||||||
@ -172,7 +172,7 @@ requested as arguments to the command (the potential energy, pressure and/or hea
|
|||||||
capacity). The elements of the vector can be accessed by indices 1--n by any
|
capacity). The elements of the vector can be accessed by indices 1--n by any
|
||||||
command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
|
command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values calculated by this compute are "extensive." The
|
The vector values calculated by this compute are "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -84,7 +84,7 @@ by any command that uses global array values from a compute as input. See the
|
|||||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The array values are "intensive." The array values will be in
|
The array values are "intensive". The array values will be in
|
||||||
mass\*distance\ :math:`^2` :doc:`units <units>`.
|
mass\*distance\ :math:`^2` :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -52,7 +52,7 @@ can be used by any command that uses a global scalar value from a
|
|||||||
compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive." The
|
The scalar value calculated by this compute is "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -48,7 +48,7 @@ global scalar value from a compute as input. See the
|
|||||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive." The
|
The scalar value calculated by this compute is "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -37,7 +37,7 @@ length 3. This value can be used by any command that uses a global
|
|||||||
vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The vector value calculated by this compute is "extensive." The vector
|
The vector value calculated by this compute is "extensive". The vector
|
||||||
value will be in mass\*velocity :doc:`units <units>`.
|
value will be in mass\*velocity :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -105,7 +105,7 @@ accessed by indices 1--4 by any command that uses global vector values
|
|||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "intensive." The vector values will be in
|
The vector values are "intensive". The vector values will be in
|
||||||
distance\ :math:`^2` :doc:`units <units>`.
|
distance\ :math:`^2` :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -121,7 +121,7 @@ These values can be accessed by any command that uses global array values from
|
|||||||
a compute as input. See the :doc:`Howto output <Howto_output>` page for an
|
a compute as input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive." The array values will be in
|
The array values are "intensive". The array values will be in
|
||||||
distance\ :math:`^2` :doc:`units <units>`.
|
distance\ :math:`^2` :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -67,7 +67,7 @@ accessed by indices 1--3 by any command that uses global vector values
|
|||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "intensive." The first vector value will be in
|
The vector values are "intensive". The first vector value will be in
|
||||||
distance\ :math:`^2` :doc:`units <units>`, the second is in
|
distance\ :math:`^2` :doc:`units <units>`, the second is in
|
||||||
distance\ :math:`^4` units, and the third is dimensionless.
|
distance\ :math:`^4` units, and the third is dimensionless.
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,7 @@ These values can be accessed by any command that uses global array
|
|||||||
values from a compute as input. See the :doc:`Howto output <Howto_output>`
|
values from a compute as input. See the :doc:`Howto output <Howto_output>`
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive." The array values will be in
|
The array values are "intensive". The array values will be in
|
||||||
velocity/distance :doc:`units <units>`.
|
velocity/distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -93,7 +93,9 @@ Restrictions
|
|||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`
|
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`,
|
||||||
|
:doc:`fix pair <fix_pair>`
|
||||||
|
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -27,7 +27,7 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the potential energy of the
|
Define a computation that calculates the potential energy of the
|
||||||
entire system of atoms. The specified group must be "all." See the
|
entire system of atoms. The specified group must be "all". See the
|
||||||
:doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom
|
:doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom
|
||||||
energies. These per-atom values could be summed for a group of atoms
|
energies. These per-atom values could be summed for a group of atoms
|
||||||
via the :doc:`compute reduce <compute_reduce>` command.
|
via the :doc:`compute reduce <compute_reduce>` command.
|
||||||
@ -73,7 +73,7 @@ value can be used by any command that uses a global scalar value from
|
|||||||
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive." The
|
The scalar value calculated by this compute is "extensive". The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -73,5 +73,5 @@ none
|
|||||||
.. _Mitchell:
|
.. _Mitchell:
|
||||||
|
|
||||||
**(Mitchell)** Mitchell, "A non-local, ordinary-state-based
|
**(Mitchell)** Mitchell, "A non-local, ordinary-state-based
|
||||||
viscoelasticity model for peridynamics," Sandia National Lab Report,
|
viscoelasticity model for peridynamics", Sandia National Lab Report,
|
||||||
8064:1-28 (2011).
|
8064:1-28 (2011).
|
||||||
|
|||||||
@ -29,7 +29,7 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the pressure of the entire system
|
Define a computation that calculates the pressure of the entire system
|
||||||
of atoms. The specified group must be "all." See the
|
of atoms. The specified group must be "all". See the
|
||||||
:doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom
|
:doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom
|
||||||
pressure (stress). These per-atom values could be summed for a group
|
pressure (stress). These per-atom values could be summed for a group
|
||||||
of atoms via the :doc:`compute reduce <compute_reduce>` command.
|
of atoms via the :doc:`compute reduce <compute_reduce>` command.
|
||||||
@ -115,7 +115,7 @@ LAMMPS starts up, as if this command were in the input script:
|
|||||||
compute thermo_press all pressure thermo_temp
|
compute thermo_press all pressure thermo_temp
|
||||||
|
|
||||||
where thermo_temp is the ID of a similarly defined compute of style
|
where thermo_temp is the ID of a similarly defined compute of style
|
||||||
"temp." See the :doc:`thermo_style <thermo_style>` command for more details.
|
"temp". See the :doc:`thermo_style <thermo_style>` command for more details.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ The ordering of values in the symmetric pressure tensor is as follows:
|
|||||||
:math:`p_{xz},` :math:`p_{yz}.`
|
:math:`p_{xz},` :math:`p_{yz}.`
|
||||||
|
|
||||||
The scalar and vector values calculated by this compute are
|
The scalar and vector values calculated by this compute are
|
||||||
"intensive." The scalar and vector values will be in pressure
|
"intensive". The scalar and vector values will be in pressure
|
||||||
:doc:`units <units>`.
|
:doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -167,7 +167,7 @@ triangular particles and define the corner points of each triangle.
|
|||||||
In addition, the various per-atom quantities listed above for specific
|
In addition, the various per-atom quantities listed above for specific
|
||||||
packages are only accessible by this command.
|
packages are only accessible by this command.
|
||||||
|
|
||||||
.. versionchanged:: TBD
|
.. versionchanged:: 15Sep2022
|
||||||
|
|
||||||
The *espin* property was previously called *spin*.
|
The *espin* property was previously called *spin*.
|
||||||
|
|
||||||
|
|||||||
@ -110,7 +110,7 @@ accessed by any command that uses global values from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector or array values are "intensive." The values will be
|
The vector or array values are "intensive". The values will be
|
||||||
unitless or in the units discussed above.
|
unitless or in the units discussed above.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -164,7 +164,7 @@ the type of the bond, from 1 to Nbtypes = # of bond types. The number
|
|||||||
of bond types is defined in the data file read by the
|
of bond types is defined in the data file read by the
|
||||||
:doc:`read_data <read_data>` command.
|
:doc:`read_data <read_data>` command.
|
||||||
|
|
||||||
The attributes that start with "a," "d," and "i" refer to similar values
|
The attributes that start with "a", "d", and "i" refer to similar values
|
||||||
for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and
|
for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and
|
||||||
:doc:`impropers <improper_style>`.
|
:doc:`impropers <improper_style>`.
|
||||||
|
|
||||||
|
|||||||
@ -166,7 +166,7 @@ by any command that uses a global values from a compute as input. See
|
|||||||
the :doc:`Howto output <Howto_output>` page for an overview of
|
the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The array values calculated by this compute are all "intensive."
|
The array values calculated by this compute are all "intensive".
|
||||||
|
|
||||||
The first column of array values will be in distance
|
The first column of array values will be in distance
|
||||||
:doc:`units <units>`. The :math:`g(r)` columns of array values are normalized
|
:doc:`units <units>`. The :math:`g(r)` columns of array values are normalized
|
||||||
|
|||||||
@ -128,7 +128,7 @@ inputs to this fix by using the
|
|||||||
:doc:`compute property/atom <compute_property_atom>` command and then specifying
|
:doc:`compute property/atom <compute_property_atom>` command and then specifying
|
||||||
an input value from that compute.
|
an input value from that compute.
|
||||||
|
|
||||||
If a value begins with "c\_," a compute ID must follow which has been
|
If a value begins with "c\_", a compute ID must follow which has been
|
||||||
previously defined in the input script. Computes can generate
|
previously defined in the input script. Computes can generate
|
||||||
per-atom or local quantities. See the individual
|
per-atom or local quantities. See the individual
|
||||||
:doc:`compute <compute>` page for details. If no bracketed integer
|
:doc:`compute <compute>` page for details. If no bracketed integer
|
||||||
@ -139,7 +139,7 @@ compute styles and :doc:`add them to LAMMPS <Modify>`. See the
|
|||||||
discussion above for how :math:`I` can be specified with a wildcard asterisk
|
discussion above for how :math:`I` can be specified with a wildcard asterisk
|
||||||
to effectively specify multiple values.
|
to effectively specify multiple values.
|
||||||
|
|
||||||
If a value begins with "f\_," a fix ID must follow which has been
|
If a value begins with "f\_", a fix ID must follow which has been
|
||||||
previously defined in the input script. Fixes can generate per-atom
|
previously defined in the input script. Fixes can generate per-atom
|
||||||
or local quantities. See the individual :doc:`fix <fix>` page for
|
or local quantities. See the individual :doc:`fix <fix>` page for
|
||||||
details. Note that some fixes only produce their values on certain
|
details. Note that some fixes only produce their values on certain
|
||||||
@ -152,7 +152,7 @@ is used. Users can also write code for their own fix style and
|
|||||||
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||||
multiple values.
|
multiple values.
|
||||||
|
|
||||||
If a value begins with "v\_," a variable name must follow which has
|
If a value begins with "v\_", a variable name must follow which has
|
||||||
been previously defined in the input script. It must be an
|
been previously defined in the input script. It must be an
|
||||||
:doc:`atom-style variable <variable>`. Atom-style variables can
|
:doc:`atom-style variable <variable>`. Atom-style variables can
|
||||||
reference thermodynamic keywords and various per-atom attributes, or
|
reference thermodynamic keywords and various per-atom attributes, or
|
||||||
@ -197,7 +197,7 @@ global vector of values, the length of which is equal to the number of
|
|||||||
inputs specified.
|
inputs specified.
|
||||||
|
|
||||||
As discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the value(s)
|
As discussed below, for the *sum*, *sumabs*, and *sumsq* modes, the value(s)
|
||||||
produced by this compute are all "extensive," meaning their value
|
produced by this compute are all "extensive", meaning their value
|
||||||
scales linearly with the number of atoms involved. If normalized
|
scales linearly with the number of atoms involved. If normalized
|
||||||
values are desired, this compute can be accessed by the
|
values are desired, this compute can be accessed by the
|
||||||
:doc:`thermo_style custom <thermo_style>` command with
|
:doc:`thermo_style custom <thermo_style>` command with
|
||||||
@ -218,9 +218,9 @@ compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
|||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
All the scalar or vector values calculated by this compute are
|
All the scalar or vector values calculated by this compute are
|
||||||
"intensive," except when the *sum*, *sumabs*, or *sumsq* modes are used on
|
"intensive", except when the *sum*, *sumabs*, or *sumsq* modes are used on
|
||||||
per-atom or local vectors, in which case the calculated values are
|
per-atom or local vectors, in which case the calculated values are
|
||||||
"extensive."
|
"extensive".
|
||||||
|
|
||||||
The scalar or vector values will be in whatever :doc:`units <units>` the
|
The scalar or vector values will be in whatever :doc:`units <units>` the
|
||||||
quantities being reduced are in.
|
quantities being reduced are in.
|
||||||
|
|||||||
@ -102,7 +102,7 @@ The commands below can be added to the examples/in.micelle script.
|
|||||||
|
|
||||||
Imagine a collection of polymer chains or small molecules with
|
Imagine a collection of polymer chains or small molecules with
|
||||||
hydrophobic end groups. All the hydrophobic (HP) atoms are assigned
|
hydrophobic end groups. All the hydrophobic (HP) atoms are assigned
|
||||||
to a group called "phobic."
|
to a group called "phobic".
|
||||||
|
|
||||||
These commands will assign a unique cluster ID to all HP atoms within
|
These commands will assign a unique cluster ID to all HP atoms within
|
||||||
a specified distance of each other. A cluster will contain all HP
|
a specified distance of each other. A cluster will contain all HP
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -114,7 +114,7 @@ This array can be output with :doc:`fix ave/time <fix_ave_time>`,
|
|||||||
compute p all stress/cartesian x 0.1
|
compute p all stress/cartesian x 0.1
|
||||||
fix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector
|
fix 2 all ave/time 100 1 100 c_p[*] file dump_p.out mode vector
|
||||||
|
|
||||||
The values calculated by this compute are "intensive." The stress
|
The values calculated by this compute are "intensive". The stress
|
||||||
values will be in pressure :doc:`units <units>`. The number density
|
values will be in pressure :doc:`units <units>`. The number density
|
||||||
values are in inverse volume :doc:`units <units>`.
|
values are in inverse volume :doc:`units <units>`.
|
||||||
|
|
||||||
|
|||||||
@ -182,7 +182,7 @@ Output info
|
|||||||
from individual atoms in both groups).
|
from individual atoms in both groups).
|
||||||
|
|
||||||
Both the scalar and vector values calculated by this compute are
|
Both the scalar and vector values calculated by this compute are
|
||||||
"extensive."
|
"extensive".
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -91,7 +91,7 @@ vector values from a compute as input. See the
|
|||||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "intensive." The
|
The scalar value calculated by this compute is "intensive". The
|
||||||
vector values are "extensive".
|
vector values are "extensive".
|
||||||
|
|
||||||
The scalar value will be in temperature :doc:`units <units>`. The
|
The scalar value will be in temperature :doc:`units <units>`. The
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user