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.
|
||||
|
||||
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
|
||||
"administrator" account directly or indirectly via "sudo" or "su".
|
||||
|
||||
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
|
||||
the LAMMPS project
|
||||
[issue tracker on GitHub](https://github.com/lammps/lammps/issues).
|
||||
either a user mistake or a bug in the code. Bugs can be reported in the
|
||||
LAMMPS project [issue tracker on
|
||||
GitHub](https://github.com/lammps/lammps/issues).
|
||||
|
||||
To mitigate issues with using homoglyphs or bidirectional reordering in
|
||||
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
|
||||
|
||||
LAMMPS follows continuous release development model. We aim to keep all
|
||||
release versions (stable or patch) fully functional and employ a variety
|
||||
of automatic testing procedures to detect failures of existing
|
||||
functionality from adding new features before releases are made. Thus
|
||||
bugfixes and updates are only integrated into the current development
|
||||
branch and thus the next (patch) release and users are recommended to
|
||||
update regularly.
|
||||
LAMMPS follows continuous release development model. We aim to keep to
|
||||
keep the development version (develop branch) always fully functional
|
||||
and employ a variety of automatic testing procedures to detect failures
|
||||
of existing functionality from adding or modifying features. Most of
|
||||
those tests are run on pull requests *before* merging to the development
|
||||
branch. The develop branch is protected, so all changes *must* be
|
||||
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 ASPHERE)
|
||||
pkg_depends(ELECTRODE KSPACE)
|
||||
pkg_depends(EXTRA-MOLECULE MOLECULE)
|
||||
|
||||
# detect if we may enable OpenMP support by default
|
||||
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)
|
||||
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_MD5 "f9505fccd4c79301a619f6452dad4ad9" CACHE STRING "MD5 checksum 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 "7a222353ae8e03961d5365e6cd48baee" CACHE STRING "MD5 checksum for MDI tarball")
|
||||
mark_as_advanced(MDI_URL)
|
||||
mark_as_advanced(MDI_MD5)
|
||||
enable_language(C)
|
||||
|
||||
@ -25,16 +25,18 @@ if(MLIAP_ENABLE_PYTHON)
|
||||
endif()
|
||||
|
||||
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
|
||||
set(MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/mliap_model_python_couple.pyx)
|
||||
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_SRC} NAME_WE)
|
||||
file(GLOB MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
|
||||
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
|
||||
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_SRC} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
|
||||
MAIN_DEPENDENCY ${MLIAP_CYTHON_SRC}
|
||||
COMMENT "Generating C++ sources with cythonize...")
|
||||
foreach(MLIAP_CYTHON_FILE ${MLIAP_CYTHON_SRC})
|
||||
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
|
||||
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_FILE} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
|
||||
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_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
|
||||
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
@ -3,6 +3,13 @@
|
||||
# prefer flang over gfortran, if available
|
||||
find_program(CLANG_FORTRAN NAMES flang gfortran f95)
|
||||
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_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_RELWITHDEBINFO "-Wall -Wextra -g -O2 -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_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -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 ${FC_STD_VERSION}" 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_RELWITHDEBINFO "-Wall -Wextra -g -O2 -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
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator. Version 3 August 2022
|
||||
\- Molecular Dynamics Simulator. Version 15 September 2022
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lmp
|
||||
|
||||
@ -314,7 +314,7 @@ Bibliography
|
||||
Espanol, Revenga, Physical Review E, 67, 026705 (2003).
|
||||
|
||||
**(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, Phys Rev A, 30, 1528 (1984).
|
||||
@ -368,7 +368,7 @@ Bibliography
|
||||
Frenkel and Smit, Understanding Molecular Simulation, Academic Press, London, 2002.
|
||||
|
||||
**(GLE4MD)**
|
||||
`http://gle4md.org/ <http://gle4md.org/>`_
|
||||
`https://gle4md.org/ <https://gle4md.org/>`_
|
||||
|
||||
**(Gao)**
|
||||
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)
|
||||
|
||||
**(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, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek, Comput Mater Sci, 175, 109584 (2020).
|
||||
|
||||
**(Gullet)**
|
||||
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003).
|
||||
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395
|
||||
|
||||
**(Guo)**
|
||||
Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996).
|
||||
@ -461,7 +461,7 @@ Bibliography
|
||||
Hunt, Mol Simul, 42, 347 (2016).
|
||||
|
||||
**(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)**
|
||||
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).
|
||||
|
||||
**(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)**
|
||||
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)**
|
||||
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)**
|
||||
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)**
|
||||
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, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029 (2005).
|
||||
|
||||
**(Mitchell and Finchham)**
|
||||
Mitchell, Finchham, J Phys Condensed Matter, 5, 1031-1038 (1993).
|
||||
**(Mitchell and Fincham)**
|
||||
Mitchell, Fincham, J Phys Condensed Matter, 5, 1031-1038 (1993).
|
||||
|
||||
**(Mitchell2011)**
|
||||
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)
|
||||
|
||||
**(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, Schulten, J. Chem. Phys. 120 (13), 5946 (2004)
|
||||
@ -1373,7 +1373,7 @@ Bibliography
|
||||
Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002).
|
||||
|
||||
**(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)**
|
||||
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
|
||||
of the LAMMPS source code distribution itself. It can be enabled by
|
||||
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
|
||||
downloaded and compiled along with LAMMPS and the test program) to
|
||||
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
|
||||
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.
|
||||
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_ErcolessiAdams_1994_Al__MO_123629422045_005``, and
|
||||
``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
|
||||
Models or see
|
||||
`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
|
||||
`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.
|
||||
|
||||
.. 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
|
||||
readers, like Kindle, that cannot read ePUB), you also need to have the
|
||||
``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
|
||||
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.
|
||||
|
||||
@ -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``
|
||||
with the appropriate FFT libraries to include in the link.
|
||||
|
||||
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
|
||||
distribution. It is portable across all platforms. Depending on the size
|
||||
of the FFTs and the number of processors used, the other libraries listed
|
||||
here can be faster.
|
||||
The `KISS FFT library <https://github.com/mborgerding/kissfft>`_ is
|
||||
included in the LAMMPS distribution. It is portable across all
|
||||
platforms. Depending on the size of the FFTs and the number of
|
||||
processors used, the other libraries listed here can be faster.
|
||||
|
||||
However, note that long-range Coulombics are only a portion of the
|
||||
per-timestep CPU cost, FFTs are only a portion of long-range
|
||||
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
|
||||
communication can be costly). A breakdown of these timings is printed
|
||||
to the screen at the end of a run when using the
|
||||
:doc:`kspace_style pppm <kspace_style>` command. The
|
||||
:doc:`Screen and logfile output <Run_output>`
|
||||
page gives more details. A more detailed (and time consuming)
|
||||
report of the FFT performance is generated with the
|
||||
per-timestep CPU cost, FFTs are only a portion of long-range Coulombics,
|
||||
and 1d FFTs are only a portion of the FFT cost (parallel communication
|
||||
can be costly). A breakdown of these timings is printed to the screen
|
||||
at the end of a run when using the :doc:`kspace_style pppm
|
||||
<kspace_style>` command. The :doc:`Screen and logfile output
|
||||
<Run_output>` page gives more details. A more detailed (and time
|
||||
consuming) report of the FFT performance is generated with the
|
||||
:doc:`kspace_modify fftbench yes <kspace_modify>` command.
|
||||
|
||||
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
|
||||
download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
|
||||
version 3.X; the legacy version 2.1.X is no longer supported.
|
||||
platform and can be faster than the KISS FFT library. You can download
|
||||
it from `www.fftw.org <https://www.fftw.org>`_. LAMMPS requires version
|
||||
3.X; the legacy version 2.1.X is no longer supported.
|
||||
|
||||
Building FFTW for your box should be as simple as ``./configure; make;
|
||||
make install``. The install command typically requires root privileges
|
||||
|
||||
@ -15,7 +15,9 @@
|
||||
General commands
|
||||
================
|
||||
|
||||
An alphabetic list of general LAMMPS commands.
|
||||
An alphabetic list of general LAMMPS commands. Note that style
|
||||
commands with many variants, can be more easily accessed via the small
|
||||
table above.
|
||||
|
||||
.. table_from_list::
|
||||
:columns: 5
|
||||
@ -61,6 +63,7 @@ An alphabetic list of general LAMMPS commands.
|
||||
* :doc:`kspace_modify <kspace_modify>`
|
||||
* :doc:`kspace_style <kspace_style>`
|
||||
* :doc:`label <label>`
|
||||
* :doc:`labelmap <labelmap>`
|
||||
* :doc:`lattice <lattice>`
|
||||
* :doc:`log <log>`
|
||||
* :doc:`mass <mass>`
|
||||
|
||||
@ -165,6 +165,7 @@ OPT.
|
||||
* :doc:`orient/fcc <fix_orient>`
|
||||
* :doc:`orient/eco <fix_orient_eco>`
|
||||
* :doc:`pafi <fix_pafi>`
|
||||
* :doc:`pair <fix_pair>`
|
||||
* :doc:`phonon <fix_phonon>`
|
||||
* :doc:`pimd <fix_pimd>`
|
||||
* :doc:`planeforce <fix_planeforce>`
|
||||
|
||||
@ -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
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
This change splits the GLOBAL and PERATOM modes of fix STORE into two
|
||||
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()
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
The accessor function to individual dump style instances has been changed
|
||||
from ``Output::find_dump()`` returning the index of the dump instance in
|
||||
|
||||
@ -175,6 +175,12 @@ and parsing files or arguments.
|
||||
.. doxygenfunction:: is_double
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: is_id
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: is_type
|
||||
:project: progguide
|
||||
|
||||
Potential file functions
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@ -205,6 +211,9 @@ Argument processing
|
||||
.. doxygenfunction:: expand_args
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: expand_type
|
||||
:project: progguide
|
||||
|
||||
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
|
||||
of the segmentation fault or similar crash. The GDB debugger has many
|
||||
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
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@ -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
|
||||
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*
|
||||
This function is called through the library interface. This
|
||||
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*
|
||||
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*
|
||||
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*
|
||||
The three specified lattice orientation vectors must be mutually
|
||||
orthogonal.
|
||||
@ -5863,6 +5877,12 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
*Must not have multiple fixes change box parameter ...*
|
||||
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*
|
||||
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
|
||||
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*
|
||||
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.
|
||||
@ -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
|
||||
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*
|
||||
Fix poems cannot (yet) work with coupled bodies whose joints connect
|
||||
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*
|
||||
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*
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
Please note, that the MPI compiler wrapper is only required when the
|
||||
calling the library from an MPI parallel code. Please also note the
|
||||
order of the source files: 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.
|
||||
calling the library from an MPI parallel code. Otherwise, using the
|
||||
fortran compiler (gfortran, ifort, flang, etc.) will suffice. It may be
|
||||
necessary to link to additional libraries depending on how LAMMPS was
|
||||
configured and whether the LAMMPS library :doc:`was compiled as a static
|
||||
or shared library <Build_link>`.
|
||||
|
||||
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
|
||||
|
||||
@ -49,17 +59,18 @@ found together with equivalent examples in C and C++ in the
|
||||
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
|
||||
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
|
||||
: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
|
||||
optional and :cpp:func:`lammps_mpi_init` will be called automatically,
|
||||
if it is needed. Similarly, a possible call to :cpp:func:`lammps_finalize`
|
||||
is integrated into the :f:func:`close` function and triggered with
|
||||
the optional logical argument set to ``.true.``. Here is a simple example:
|
||||
if it is needed. Similarly, a possible call to
|
||||
:cpp:func:`lammps_mpi_finalize` is integrated into the :f:func:`close`
|
||||
function and triggered with the optional logical argument set to
|
||||
``.true.``. Here is a simple example:
|
||||
|
||||
.. code-block:: fortran
|
||||
|
||||
@ -80,11 +91,11 @@ the optional logical argument set to ``.true.``. Here is a simple example:
|
||||
END PROGRAM testlib
|
||||
|
||||
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
|
||||
executable (it will ignore the `-in/-i` flag, though). This allows to
|
||||
use the command line to configure accelerator and suffix settings,
|
||||
thus make the resulting executable behave similarly to the standalone
|
||||
executable (it will ignore the `-in/-i` flag, though). This allows
|
||||
using the command line to configure accelerator and suffix settings,
|
||||
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:
|
||||
|
||||
.. code-block:: fortran
|
||||
@ -117,13 +128,13 @@ version of the previous example:
|
||||
--------------------
|
||||
|
||||
Executing LAMMPS commands
|
||||
=========================
|
||||
*************************
|
||||
|
||||
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
|
||||
is done similar to how it is implemented in the `C-library
|
||||
<pg_lib_execute>` interface. Before handing off the calls to the
|
||||
is done similarly to how it is implemented in the :doc:`C-library
|
||||
interface <Library_execute>`. Before handing off the calls to the
|
||||
C-library interface, the corresponding Fortran versions of the calls
|
||||
(: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
|
||||
@ -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
|
||||
****************************
|
||||
|
||||
@ -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.
|
||||
|
||||
:f c_ptr handle: reference to the LAMMPS class
|
||||
:f close: :f:func:`close`
|
||||
:f version: :f:func:`version`
|
||||
:f file: :f:func:`file`
|
||||
:f command: :f:func:`command`
|
||||
:f commands_list: :f:func:`commands_list`
|
||||
:f commands_string: :f:func:`commands_string`
|
||||
:f subroutine close: :f:func:`close`
|
||||
:f subroutine error: :f:func:`error`
|
||||
:f function version: :f:func:`version`
|
||||
:f subroutine file: :f:func:`file`
|
||||
:f subroutine command: :f:func:`command`
|
||||
: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
|
||||
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
|
||||
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
|
||||
: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])
|
||||
|
||||
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.
|
||||
|
||||
--------
|
||||
|
||||
.. 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()
|
||||
|
||||
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
|
||||
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)
|
||||
|
||||
This method will call :cpp:func:`lammps_command` to have LAMMPS
|
||||
execute a single command.
|
||||
|
||||
:p character(len=*) cmd: single LAMMPS command
|
||||
:p character(len=\*) cmd: single LAMMPS command
|
||||
|
||||
--------
|
||||
|
||||
.. f:subroutine:: commands_list(cmds)
|
||||
|
||||
This method will call :cpp:func:`lammps_commands_list` to have LAMMPS
|
||||
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)
|
||||
|
||||
This method will call :cpp:func:`lammps_commands_string` to have LAMMPS
|
||||
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
|
||||
|
||||
Howto_2d
|
||||
Howto_type_labels
|
||||
Howto_triclinic
|
||||
Howto_thermostat
|
||||
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
|
||||
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/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
|
||||
coefficients used for a particular system. Here we only discuss
|
||||
formulas implemented in LAMMPS that correspond to formulas commonly
|
||||
used in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
|
||||
formulas implemented in LAMMPS that correspond to formulas commonly used
|
||||
in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
|
||||
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
|
||||
commands like :doc:`pair_coeff <pair_coeff>` or
|
||||
:doc:`bond_coeff <bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc
|
||||
page for additional tools that can use CHARMM, AMBER, or Materials
|
||||
Studio generated files to assign force field coefficients and convert
|
||||
their output into LAMMPS input.
|
||||
commands like :doc:`pair_coeff <pair_coeff>` or :doc:`bond_coeff
|
||||
<bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for
|
||||
additional tools that can use CHARMM, AMBER, or Materials Studio
|
||||
generated files to assign force field coefficients and convert their
|
||||
output into LAMMPS input.
|
||||
|
||||
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM force
|
||||
field. See :ref:`(Cornell) <howto-Cornell>` for a description of the AMBER
|
||||
force field. See :ref:`(Sun) <howto-Sun>` for a description of the COMPASS
|
||||
force field.
|
||||
|
||||
.. _charmm: http://www.scripps.edu/brooks
|
||||
|
||||
.. _amber: http://amber.scripps.edu
|
||||
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM
|
||||
force field. See :ref:`(Cornell) <howto-Cornell>` for a description of
|
||||
the AMBER force field. See :ref:`(Sun) <howto-Sun>` for a description
|
||||
of the COMPASS force field.
|
||||
|
||||
The interaction styles listed below compute force field formulas that
|
||||
are consistent with common options in CHARMM or AMBER. See each
|
||||
@ -41,9 +37,10 @@ command's documentation for the formula it computes.
|
||||
|
||||
.. note::
|
||||
|
||||
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released
|
||||
in 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
|
||||
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in
|
||||
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
|
||||
pages.
|
||||
|
||||
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
|
||||
<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
|
||||
@ -91,12 +51,6 @@ This also requires a unique integrator :doc:`fix nve/bpm/sphere
|
||||
<fix_nve_bpm_sphere>` which numerically integrates orientation similar
|
||||
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
|
||||
<pair_bpm_spring>` was added to accompany the bpm/spring bond
|
||||
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*
|
||||
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
|
||||
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
|
||||
<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.
|
||||
|
||||
As of fall 2016, submitting contributions to LAMMPS via pull requests
|
||||
|
||||
@ -47,4 +47,4 @@ to the relevant fixes.
|
||||
.. _Paquay1:
|
||||
|
||||
**(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
|
||||
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
|
||||
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 thermal energy of the Langevin thermostat, or to perform a
|
||||
relaxation of the magnetic configuration toward an equilibrium state.
|
||||
The magnetic damping can also be applied
|
||||
using :doc:`fix langevin/spin <fix_langevin_spin>`.
|
||||
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
|
||||
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
|
||||
enables to evaluate magnetic averaged quantities, such as the total
|
||||
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
|
||||
per atom magnetic quantities. Typically, the orientation of a given
|
||||
magnetic spin, or the magnetic force acting on this spin.
|
||||
the magnetic energy. The second command
|
||||
is :doc:`compute property/atom <compute_property_atom>`.
|
||||
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}`
|
||||
|
|
||||
|
||||
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
|
||||
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
|
||||
dump files, including custom dump files with additional columns of
|
||||
user-specified atom information, and convert them to various formats
|
||||
or pipe them into visualization software directly. See the `Pizza.py WWW site <pizza_>`_ for details. Specifically, Pizza.py can convert
|
||||
LAMMPS dump files into PDB, XYZ, `EnSight <ensight_>`_, and VTK formats.
|
||||
user-specified atom information, and convert them to various formats or
|
||||
pipe them into visualization software directly. See the `Pizza.py WWW
|
||||
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
|
||||
RasMol visualization programs. Pizza.py has tools that do interactive
|
||||
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
|
||||
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:
|
||||
|
||||
.. code-block:: bash
|
||||
@ -13,7 +13,7 @@ install:
|
||||
% conda config --add channels conda-forge
|
||||
% 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
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ Windows system can be downloaded from this site:
|
||||
|
||||
.. 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
|
||||
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
|
||||
University:
|
||||
|
||||
* `Steve Plimpton <sjp_>`_, sjplimp at sandia.gov
|
||||
* `Steve Plimpton <sjp_>`_, sjplimp at gmail.com
|
||||
* Aidan Thompson, athomps at sandia.gov
|
||||
* Stan Moore, stamoor at sandia.gov
|
||||
* Axel Kohlmeyer, akohlmey at gmail.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
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
@ -95,7 +95,7 @@ commands)
|
||||
* metal-organic framework potentials (QuickFF, MO-FF)
|
||||
* implicit solvent potentials: hydrodynamic lubrication, Debye
|
||||
* 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
|
||||
* 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
|
||||
|
||||
.. _python: http://www.python.org
|
||||
.. _python: https://www.python.org
|
||||
|
||||
.. _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
|
||||
molecular builder that will generate complex molecular models. See
|
||||
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,
|
||||
some LAMMPS internal commands allow to reconstruct, or selectively add
|
||||
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
|
||||
setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS
|
||||
simulations. It thus provides some functionality for several of the
|
||||
above bullets. Pizza.py is written in `Python <http://www.python.org>`_
|
||||
and is available for download from `this page <http://www.cs.sandia.gov/~sjplimp/download.html>`_.
|
||||
above bullets. Pizza.py is written in `Python <https://www.python.org>`_
|
||||
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
|
||||
|
||||
.. _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:
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ This section documents the following functions:
|
||||
- :cpp:func:`lammps_mpi_finalize`
|
||||
- :cpp:func:`lammps_kokkos_finalize`
|
||||
- :cpp:func:`lammps_python_finalize`
|
||||
- :cpp:func:`lammps_error`
|
||||
|
||||
--------------------
|
||||
|
||||
@ -115,3 +116,8 @@ calling program.
|
||||
|
||||
.. doxygenfunction:: lammps_python_finalize
|
||||
: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
|
||||
information about the active simulation instance and also
|
||||
modifications to it. This enables combining of a LAMMPS simulation
|
||||
with other processing and simulation methods computed by the calling
|
||||
code, or by another code that is coupled to LAMMPS via the library
|
||||
interface. In some cases the data returned is direct reference to the
|
||||
original data inside LAMMPS, cast to a void pointer. In that case the
|
||||
data needs to be cast to a suitable pointer for the calling program to
|
||||
access it, and you may need to know the correct dimensions and
|
||||
lengths. This also means you can directly change those value(s) from
|
||||
the calling program, e.g. to modify atom positions. Of course, this
|
||||
should be done with care. When accessing per-atom data, please note
|
||||
that this data is the per-processor **local** data and is indexed
|
||||
accordingly. Per-atom data can change sizes and ordering at every
|
||||
neighbor list rebuild or atom sort event as atoms migrate between
|
||||
The library interface allows the extraction of different kinds of
|
||||
information about the active simulation instance and also - in some
|
||||
cases - to apply modifications to it. This enables combining of a
|
||||
LAMMPS simulation with other processing and simulation methods computed
|
||||
by the calling code, or by another code that is coupled to LAMMPS via
|
||||
the library interface. In some cases the data returned is direct
|
||||
reference to the original data inside LAMMPS, cast to a void pointer.
|
||||
In that case the data needs to be cast to a suitable pointer for the
|
||||
calling program to access it, and you may need to know the correct
|
||||
dimensions and lengths. This also means you can directly change those
|
||||
value(s) from the calling program, e.g. to modify atom positions. Of
|
||||
course, this should be done with care. When accessing per-atom data,
|
||||
please note that this data is the per-processor **local** data and is
|
||||
indexed accordingly. Per-atom data can change sizes and ordering at
|
||||
every neighbor list rebuild or atom sort event as atoms migrate between
|
||||
sub-domains and processors.
|
||||
|
||||
.. code-block:: C
|
||||
|
||||
@ -19,6 +19,7 @@ functions. They do not directly call the LAMMPS library.
|
||||
- :cpp:func:`lammps_force_timeout`
|
||||
- :cpp:func:`lammps_has_error`
|
||||
- :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
|
||||
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
|
||||
: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.
|
||||
|
||||
.. versionadded:: 28Feb2019
|
||||
|
||||
**Install:**
|
||||
|
||||
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
|
||||
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
|
||||
Pennsylvania State University)
|
||||
@ -364,6 +366,8 @@ and also support self-propelled particles.
|
||||
**Authors:** Sam Cameron (University of Bristol),
|
||||
Stefan Paquay (while at Brandeis University) (initial version of fix propel/self)
|
||||
|
||||
.. versionadded:: 14May2021
|
||||
|
||||
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)
|
||||
|
||||
.. versionadded:: 2Jul2021
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/DIELECTRIC: filenames -> commands
|
||||
@ -932,6 +938,10 @@ EXTRA-MOLECULE package
|
||||
|
||||
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:**
|
||||
|
||||
* 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
|
||||
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
|
||||
system.
|
||||
@ -1508,6 +1518,8 @@ workflows via the `MolSSI Driver Interface
|
||||
|
||||
**Author:** Taylor Barnes - MolSSI, taylor.a.barnes at gmail.com
|
||||
|
||||
.. versionadded:: 14May2021
|
||||
|
||||
**Install:**
|
||||
|
||||
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:**
|
||||
Philipp Kloza (U Cambridge)
|
||||
|
||||
.. versionadded:: 15Jun2020
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/MESONT: filenames -> commands
|
||||
@ -1684,6 +1698,8 @@ compiled on your system.
|
||||
|
||||
**Author:** Andreas Singraber
|
||||
|
||||
.. versionadded:: 27May2021
|
||||
|
||||
**Install:**
|
||||
|
||||
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).
|
||||
|
||||
.. versionadded:: 30Jun2020
|
||||
|
||||
.. versionadded:: 30Jun2020
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* 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
|
||||
|
||||
.. versionadded:: 14May2021
|
||||
|
||||
**Install:**
|
||||
|
||||
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
|
||||
with contributions by Doyl Dickel, Mississippi State University.
|
||||
|
||||
.. versionadded:: 27May2021
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* 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
|
||||
itself. More information about the VMD molfile plugins can be found
|
||||
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).
|
||||
|
||||
@ -2041,7 +2065,7 @@ NETCDF package
|
||||
Dump styles for writing NetCDF formatted dump files. NetCDF is a
|
||||
portable, binary, self-describing file format developed on top of
|
||||
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
|
||||
system.
|
||||
@ -2052,7 +2076,7 @@ tools:
|
||||
* `Ovito <ovito_>`_ (Ovito supports the AMBER convention and the extensions mentioned above)
|
||||
* `VMD <vmd-home_>`_
|
||||
|
||||
.. _ovito: http://www.ovito.org
|
||||
.. _ovito: https://www.ovito.org
|
||||
|
||||
.. _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)
|
||||
|
||||
.. versionadded:: 8Apr2021
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
system.
|
||||
@ -2898,11 +2924,13 @@ which discuss the `QuickFF <quickff_>`_ methodology.
|
||||
|
||||
.. _vanduyfhuys2015: https://doi.org/10.1002/jcc.23877
|
||||
.. _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
|
||||
|
||||
**Author:** Steven Vandenbrande.
|
||||
|
||||
.. versionadded:: 1Feb2019
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* 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
|
||||
AtomEye web pages for more details:
|
||||
|
||||
* `http://li.mit.edu/Archive/Graphics/A/ <atomeye_>`_
|
||||
* `http://li.mit.edu/Archive/Graphics/A3/A3.html <atomeye3_>`_
|
||||
* `http://li.mit.edu/Archive/Graphics/A/ <http://li.mit.edu/Archive/Graphics/A/>`_
|
||||
* `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/
|
||||
|
||||
.. _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.
|
||||
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
|
||||
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:
|
||||
|
||||
* `https://www.pymol.org <pymolhome_>`_
|
||||
* `https://github.com/schrodinger/pymol-open-source <pymolopen_>`_
|
||||
|
||||
.. _pymolhome: https://www.pymol.org
|
||||
|
||||
.. _pymolopen: https://github.com/schrodinger/pymol-open-source
|
||||
* `https://www.pymol.org <https://www.pymol.org>`_
|
||||
* `https://github.com/schrodinger/pymol-open-source <https://github.com/schrodinger/pymol-open-source>`_
|
||||
|
||||
The latter link is to the open-source version.
|
||||
|
||||
|
||||
@ -18,17 +18,17 @@ together.
|
||||
Python_error
|
||||
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
|
||||
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
|
||||
modules for many purposes (either bundled or easily installed from
|
||||
Python code repositories). The major drawback is slower execution speed
|
||||
of the script code compared to compiled programming languages. But when
|
||||
the script code is interfaced to optimized compiled code, performance can
|
||||
be on par with a standalone executable, for as long as the scripting is
|
||||
restricted to high-level operations. Thus Python is also convenient to
|
||||
use as a "glue" language to "drive" a program through its library
|
||||
the script code is interfaced to optimized compiled code, performance
|
||||
can be on par with a standalone executable, for as long as the scripting
|
||||
is restricted to high-level operations. Thus Python is also convenient
|
||||
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
|
||||
simulation code and a visualization tool, or to run a coupled
|
||||
multi-scale or multi-physics model.
|
||||
|
||||
@ -495,7 +495,7 @@ run:
|
||||
write_dump group-ID dumpstyle dumpfile arg1 arg2 ...
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
@ -25,8 +25,8 @@ in parallel, follow these steps.
|
||||
|
||||
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 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 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 <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_
|
||||
|
||||
The LAMMPS Windows installer packages will automatically adjust your
|
||||
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):
|
||||
|
||||
* 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)
|
||||
* Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to
|
||||
list supported devices and properties
|
||||
|
||||
@ -536,6 +536,6 @@ supported.
|
||||
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., 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., 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. <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.
|
||||
|
||||
@ -97,7 +97,7 @@ sub-section.
|
||||
|
||||
A description of the multi-threading strategy used in the OPENMP
|
||||
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
|
||||
"""""""""""""""""""""""""""""""
|
||||
|
||||
@ -205,6 +205,7 @@ scripts are available:
|
||||
whitespace.py # detects TAB characters and trailing whitespace
|
||||
homepage.py # detects outdated LAMMPS homepage URLs (pointing to sandia.gov instead of lammps.org)
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
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".
|
||||
For more information about using and customizing an application using
|
||||
readline, please see the available documentation at:
|
||||
`http://www.gnu.org/s/readline/#Documentation
|
||||
<http://www.gnu.org/s/readline/#Documentation>`_
|
||||
https://www.gnu.org/software/readline/
|
||||
|
||||
|
||||
Additional commands
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
@ -715,7 +716,7 @@ See the README.pdf file for more information.
|
||||
These scripts were written by Arun Subramaniyan at Purdue Univ
|
||||
(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
|
||||
--------------
|
||||
|
||||
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
|
||||
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
|
||||
@ -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
|
||||
accessible. What works and what does not depends a bit on the
|
||||
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.
|
||||
|
||||
Usage examples
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
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
|
||||
|
||||
Examples
|
||||
@ -22,6 +22,9 @@ Examples
|
||||
angle_coeff * 5.0
|
||||
angle_coeff 2*10 5.0
|
||||
|
||||
labelmap angle 1 hydroxyl
|
||||
angle_coeff hydroxyl 300.0 107.0
|
||||
|
||||
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
|
||||
: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
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple angle types. This takes the
|
||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of angle types,
|
||||
then an asterisk with no numeric values means all types from 1 to N. A
|
||||
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).
|
||||
:math:`N` can be specified in one of two ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or :math:`N` can be a
|
||||
type label, which is an alphanumeric string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||
by the :doc:`read_data <read_data>` command.
|
||||
|
||||
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:
|
||||
For numeric values only, a wild-card asterisk can be used to set the
|
||||
coefficients for multiple angle types. This takes the form "\*" or
|
||||
"\*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
|
||||
|
||||
@ -49,11 +58,11 @@ for all angle types, then overwrite the coeffs for just angle type 2:
|
||||
angle_coeff 2 50.0 107.0
|
||||
|
||||
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
|
||||
script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Angle Coeffs" section of a data file, the line that
|
||||
corresponds to the first example above would be listed as
|
||||
same format as the arguments of the :doc:`angle_coeff <angle_coeff>`
|
||||
command in an input script, except that wild-card asterisks should not
|
||||
be used since coefficients for all :math:`N` types must be listed in the
|
||||
file. For example, under the "Angle Coeffs" section of a data file, the
|
||||
line that corresponds to the first example above would be listed as
|
||||
|
||||
.. 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
|
||||
rule, in that an additional argument is used in the input script to
|
||||
allow specification of the cross-term coefficients. See its
|
||||
doc page for details.
|
||||
allow specification of the cross-term coefficients. See its doc page
|
||||
for details.
|
||||
|
||||
----------
|
||||
|
||||
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
|
||||
compact form on the :ref:`Commands angle <angle>` doc
|
||||
page.
|
||||
compact form on the :ref:`Commands angle <angle>` doc page.
|
||||
|
||||
On either of those pages, click on the style to display the formula it
|
||||
computes and its coefficients as specified by the associated
|
||||
|
||||
@ -24,7 +24,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
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
|
||||
<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
|
||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||
local data to be accessed by other LAMMPS commands.
|
||||
Following any optional keyword/value arguments, a list of one or more
|
||||
attributes is specified. These include the IDs of the two atoms in
|
||||
the bond. The other attributes for the two atoms include the timestep
|
||||
during which the bond broke and the current/initial center of mass
|
||||
position of the two atoms.
|
||||
local data to be accessed by other LAMMPS commands. Following this optional
|
||||
keyword, a list of one or more attributes is specified. These include the
|
||||
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||
include the timestep during which the bond broke and the current/initial
|
||||
center of mass position of the two atoms.
|
||||
|
||||
Data is continuously accumulated over intervals of *N*
|
||||
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
|
||||
: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
|
||||
of a pairwise interaction, since energy is not conserved in these
|
||||
dissipative potentials. It also returns only the normal component of
|
||||
the pairwise interaction force.
|
||||
|
||||
The accumulated data is not written to restart files and should be
|
||||
output before a restart file is written to avoid missing data.
|
||||
|
||||
The internal fix calculates a local vector or local array depending on the
|
||||
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.
|
||||
If the *store/local* option is used, an internal fix will calculate
|
||||
a local vector or local array depending on the number of input values.
|
||||
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
|
||||
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 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
|
||||
""""""""""""
|
||||
|
||||
|
||||
@ -103,15 +103,14 @@ the *overlay/pair* keyword. These settings require specific
|
||||
restrictions. Further details can be found in the `:doc: how to
|
||||
<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
|
||||
and transferred to an internal fix labeled *fix_ID*. This allows the
|
||||
local data to be accessed by other LAMMPS commands.
|
||||
Following any optional keyword/value arguments, a list of one or more
|
||||
attributes is specified. These include the IDs of the two atoms in
|
||||
the bond. The other attributes for the two atoms include the timestep
|
||||
during which the bond broke and the current/initial center of mass
|
||||
position of the two atoms.
|
||||
local data to be accessed by other LAMMPS commands. Following this optional
|
||||
keyword, a list of one or more attributes is specified. These include the
|
||||
IDs of the two atoms in the bond. The other attributes for the two atoms
|
||||
include the timestep during which the bond broke and the current/initial
|
||||
center of mass position of the two atoms.
|
||||
|
||||
Data is continuously accumulated over intervals of *N*
|
||||
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
|
||||
: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
|
||||
of a pairwise interaction, since energy is not conserved in these
|
||||
dissipative potentials.
|
||||
|
||||
The accumulated data is not written to restart files and should be
|
||||
output before a restart file is written to avoid missing data.
|
||||
|
||||
The internal fix calculates a local vector or local array depending on the
|
||||
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.
|
||||
If the *store/local* option is used, an internal fix will calculate
|
||||
a local vector or local array depending on the number of input values.
|
||||
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
|
||||
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 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
|
||||
""""""""""""
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
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
|
||||
|
||||
Examples
|
||||
@ -21,7 +21,10 @@ Examples
|
||||
bond_coeff 5 80.0 1.2
|
||||
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 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
|
||||
"""""""""""
|
||||
@ -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
|
||||
: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
|
||||
be used, as in the first example above. Or 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 N = the number of bond types,
|
||||
then an asterisk with no numeric values means all types from 1 to N. A
|
||||
:math:`N` can be specified in one of several ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or :math:`N` can be a
|
||||
type label, which is an alphanumeric string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||
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
|
||||
asterisk means all types from n to N (inclusive). A middle asterisk
|
||||
means all types from m to n (inclusive).
|
||||
asterisk means all types from n to :math:`N` (inclusive). A middle
|
||||
asterisk means all types from m to n (inclusive).
|
||||
|
||||
Note that using a bond_coeff command can override a previous setting
|
||||
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
|
||||
same format as the arguments of the bond_coeff command in an input
|
||||
script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Bond Coeffs" section of a data file, the line that
|
||||
coefficients for all :math:`N` types must be listed in the file. For
|
||||
example, under the "Bond Coeffs" section of a data file, the line that
|
||||
corresponds to the first example above would be listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -22,7 +22,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
.. versionadded:: 15Sep2022
|
||||
|
||||
The *mesocnt* bond style is a wrapper for the :doc:`harmonic
|
||||
<bond_harmonic>` style, and uses the potential
|
||||
|
||||
@ -56,6 +56,7 @@ Commands
|
||||
kspace_modify
|
||||
kspace_style
|
||||
label
|
||||
labelmap
|
||||
lattice
|
||||
log
|
||||
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
|
||||
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>`.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -35,6 +35,8 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: 7Jan2022
|
||||
|
||||
Define a computation that calculates the local mass density and
|
||||
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
|
||||
|
||||
@ -13,7 +13,7 @@ Syntax
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* bond/local = style name of this compute command
|
||||
* 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::
|
||||
|
||||
@ -29,6 +29,7 @@ Syntax
|
||||
*omega* = magnitude of bond angular velocity
|
||||
*velvib* = vibrational velocity along the bond length
|
||||
*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
|
||||
* keyword = *set*
|
||||
@ -47,7 +48,7 @@ Examples
|
||||
compute 1 all bond/local engpot
|
||||
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
|
||||
|
||||
@ -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>`
|
||||
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
|
||||
|
||||
@ -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
|
||||
LAMMPS output options.
|
||||
|
||||
The array values calculated by this compute are all "extensive."
|
||||
The array values calculated by this compute are all "extensive".
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -24,16 +24,18 @@ Description
|
||||
"""""""""""
|
||||
|
||||
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>`_
|
||||
for an overview of LAMMPS commands for Peridynamics modeling.
|
||||
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.
|
||||
|
||||
The "damage" of a Peridynamics particles is based on the bond breakage
|
||||
between the particle and its neighbors. If all the bonds are broken
|
||||
the particle is considered to be fully damaged.
|
||||
|
||||
See the `PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for a formal
|
||||
definition of "damage" and more details about Peridynamics as it is
|
||||
implemented in LAMMPS.
|
||||
See the `PDLAMMPS user guide
|
||||
<https://download.lammps.org/pdfs/PDLAMMPS_user_guide.pdf>`_ for a
|
||||
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.
|
||||
|
||||
@ -53,8 +55,9 @@ The per-atom vector values are unitless numbers (damage) :math:`\ge 0.0`.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the PERI package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
This compute is part of the PERI package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -24,7 +24,8 @@ Description
|
||||
"""""""""""
|
||||
|
||||
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 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
|
||||
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
|
||||
(versus the initial length in the reference state), the volume
|
||||
fraction of the particles and an influence function. See the
|
||||
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for
|
||||
a formal definition of dilatation.
|
||||
contribution of the :math:`ij` pair is a function of the change in bond
|
||||
length (versus the initial length in the reference state), the volume
|
||||
fraction of the particles and an influence function. See the `PDLAMMPS
|
||||
user guide <https://download.lammps.org/pdfs/PDLAMMPS_user_guide.pdf>`_
|
||||
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
|
||||
compute group.
|
||||
@ -56,9 +58,9 @@ The per-atom vector values are unitless numbers :math:`(\theta \ge 0.0)`.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the PERI package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` page for more info.
|
||||
This compute is part of the PERI package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
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
|
||||
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
|
||||
: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
|
||||
<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
|
||||
: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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -40,7 +40,7 @@ further than the threshold distance.
|
||||
If the system is undergoing significant center-of-mass motion,
|
||||
due to thermal motion, an external force, or an initial net momentum,
|
||||
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
|
||||
"""""""""""
|
||||
@ -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
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
""""""""""""
|
||||
|
||||
@ -34,6 +34,8 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: 4May2022
|
||||
|
||||
Define a computation that calculates the change in the free energy due
|
||||
to a test-area (TA) perturbation :ref:`(Gloor) <Gloor>`. The test-area
|
||||
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.
|
||||
|
||||
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>`.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -69,7 +69,7 @@ vector values from a compute as input. See the :doc:`Howto output <Howto_output
|
||||
options.
|
||||
|
||||
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.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -78,7 +78,7 @@ vector values from a compute as input. See the
|
||||
options.
|
||||
|
||||
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.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -80,7 +80,7 @@ See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
||||
output options.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
divided by the appropriate volume to get a flux, which would then be
|
||||
an "intensive" value, meaning independent of the number of atoms in
|
||||
the simulation. Note that if the compute is "all," then the
|
||||
appropriate volume to divide by is the simulation box volume.
|
||||
However, if a sub-group is used, it should be the volume containing
|
||||
those atoms.
|
||||
divided by the appropriate volume to get a flux, which would then be an
|
||||
"intensive" value, meaning independent of the number of atoms in the
|
||||
simulation. Note that if the compute group is "all", then the
|
||||
appropriate volume to divide by is the simulation box volume. However,
|
||||
if a group with a subset of atoms is used, it should be the volume
|
||||
containing those atoms.
|
||||
|
||||
The vector values will be in energy\*velocity :doc:`units <units>`. Once
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
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
|
||||
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:`^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>`
|
||||
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>`.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -93,7 +93,9 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`
|
||||
:doc:`compute pe <compute_pe>`, :doc:`compute bond <compute_bond>`,
|
||||
:doc:`fix pair <fix_pair>`
|
||||
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -27,7 +27,7 @@ Description
|
||||
"""""""""""
|
||||
|
||||
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
|
||||
energies. These per-atom values could be summed for a group of atoms
|
||||
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
|
||||
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>`.
|
||||
|
||||
Restrictions
|
||||
|
||||
@ -73,5 +73,5 @@ none
|
||||
.. _Mitchell:
|
||||
|
||||
**(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).
|
||||
|
||||
@ -29,7 +29,7 @@ Description
|
||||
"""""""""""
|
||||
|
||||
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
|
||||
pressure (stress). These per-atom values could be summed for a group
|
||||
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
|
||||
|
||||
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}.`
|
||||
|
||||
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>`.
|
||||
|
||||
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
|
||||
packages are only accessible by this command.
|
||||
|
||||
.. versionchanged:: TBD
|
||||
.. versionchanged:: 15Sep2022
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
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
|
||||
: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
|
||||
: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
|
||||
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
|
||||
: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
|
||||
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
|
||||
per-atom or local quantities. See the individual
|
||||
: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
|
||||
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
|
||||
or local quantities. See the individual :doc:`fix <fix>` page for
|
||||
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
|
||||
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
|
||||
:doc:`atom-style variable <variable>`. Atom-style variables can
|
||||
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.
|
||||
|
||||
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
|
||||
values are desired, this compute can be accessed by the
|
||||
: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.
|
||||
|
||||
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
|
||||
"extensive."
|
||||
"extensive".
|
||||
|
||||
The scalar or vector values will be in whatever :doc:`units <units>` the
|
||||
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
|
||||
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
|
||||
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
|
||||
layout in the global array.
|
||||
|
||||
.. versionadded:: 3Aug2022
|
||||
|
||||
The compute *sna/grid* and *sna/grid/local* commands calculate
|
||||
bispectrum components for a regular grid of points.
|
||||
These are calculated from the local density of nearby atoms *i'*
|
||||
around each grid point, as if there was a central atom *i*
|
||||
at the grid point. This is useful for characterizing fine-scale
|
||||
structure in a configuration of atoms, and it is used
|
||||
in the `MALA package <https://github.com/casus/mala>`_
|
||||
to build machine-learning surrogates for finite-temperature Kohn-Sham
|
||||
density functional theory (:ref:`Ellis et al. <Ellis2021>`)
|
||||
Neighbor atoms not in the group do not contribute to the
|
||||
bispectrum components of the grid points. The distance cutoff :math:`R_{ii'}`
|
||||
assumes that *i* has the same type as the neighbor atom *i'*.
|
||||
bispectrum components for a regular grid of points. These are
|
||||
calculated from the local density of nearby atoms *i'* around each grid
|
||||
point, as if there was a central atom *i* at the grid point. This is
|
||||
useful for characterizing fine-scale structure in a configuration of
|
||||
atoms, and it is used in the `MALA package
|
||||
<https://github.com/casus/mala>`_ to build machine-learning surrogates
|
||||
for finite-temperature Kohn-Sham density functional theory (:ref:`Ellis
|
||||
et al. <Ellis2021>`) Neighbor atoms not in the group do not contribute
|
||||
to the bispectrum components of the grid points. The distance cutoff
|
||||
:math:`R_{ii'}` assumes that *i* has the same type as the neighbor atom
|
||||
*i'*.
|
||||
|
||||
Compute *sna/grid* calculates a global array containing bispectrum
|
||||
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
|
||||
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 are in inverse volume :doc:`units <units>`.
|
||||
|
||||
|
||||
@ -182,7 +182,7 @@ Output info
|
||||
from individual atoms in both groups).
|
||||
|
||||
Both the scalar and vector values calculated by this compute are
|
||||
"extensive."
|
||||
"extensive".
|
||||
|
||||
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
|
||||
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".
|
||||
|
||||
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