Merge branch 'lammps:develop' into mliappy_unified
This commit is contained in:
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
@ -134,6 +134,7 @@ tools/coding_standard/* @rbberger
|
|||||||
tools/valgrind/* @akohlmey
|
tools/valgrind/* @akohlmey
|
||||||
tools/swig/* @akohlmey
|
tools/swig/* @akohlmey
|
||||||
tools/offline/* @rbberger
|
tools/offline/* @rbberger
|
||||||
|
tools/vim/* @hammondkd
|
||||||
|
|
||||||
# tests
|
# tests
|
||||||
unittest/* @akohlmey @rbberger
|
unittest/* @akohlmey @rbberger
|
||||||
|
|||||||
6
.github/workflows/compile-msvc.yml
vendored
6
.github/workflows/compile-msvc.yml
vendored
@ -3,7 +3,11 @@ name: "Native Windows Compilation and Unit Tests"
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [develop]
|
branches:
|
||||||
|
- develop
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|||||||
103
.github/workflows/coverity.yml
vendored
Normal file
103
.github/workflows/coverity.yml
vendored
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
name: "Run Coverity Scan"
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * FRI"
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
if: ${{ github.repository == 'lammps/lammps' }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: lammps/buildenv:ubuntu20.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: Create Build and Download Folder
|
||||||
|
run: mkdir build download
|
||||||
|
|
||||||
|
- name: Cache Coverity
|
||||||
|
id: cache-coverity
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ./download/
|
||||||
|
key: ${{ runner.os }}-download-${{ hashFiles('**/coverity_tool.*') }}
|
||||||
|
|
||||||
|
- name: Download Coverity if necessary
|
||||||
|
if: steps.cache-coverity.outputs.cache-hit != 'true'
|
||||||
|
working-directory: download
|
||||||
|
run: |
|
||||||
|
wget -nv https://scan.coverity.com/download/linux64 --post-data "token=${{ secrets.COVERITY_TOKEN }}&project=LAMMPS" -O coverity_tool.tgz
|
||||||
|
wget -nv https://scan.coverity.com/download/linux64 --post-data "token=${{ secrets.COVERITY_TOKEN }}&project=LAMMPS&md5=1" -O coverity_tool.md5
|
||||||
|
echo " coverity_tool.tgz" >> coverity_tool.md5
|
||||||
|
md5sum -c coverity_tool.md5
|
||||||
|
|
||||||
|
- name: Setup Coverity
|
||||||
|
run: |
|
||||||
|
tar xzf download/coverity_tool.tgz
|
||||||
|
ln -s cov-analysis-linux64-* coverity
|
||||||
|
|
||||||
|
- name: Configure LAMMPS via CMake
|
||||||
|
shell: bash
|
||||||
|
working-directory: build
|
||||||
|
run: |
|
||||||
|
cmake \
|
||||||
|
-C ../cmake/presets/clang.cmake \
|
||||||
|
-C ../cmake/presets/most.cmake \
|
||||||
|
-C ../cmake/presets/kokkos-openmp.cmake \
|
||||||
|
-D CMAKE_BUILD_TYPE="RelWithDebug" \
|
||||||
|
-D CMAKE_TUNE_FLAGS="-Wall -Wextra -Wno-unused-result" \
|
||||||
|
-D BUILD_MPI=on \
|
||||||
|
-D BUILD_OMP=on \
|
||||||
|
-D BUILD_SHARED_LIBS=on \
|
||||||
|
-D LAMMPS_SIZES=SMALLBIG \
|
||||||
|
-D LAMMPS_EXCEPTIONS=off \
|
||||||
|
-D PKG_MESSAGE=on \
|
||||||
|
-D PKG_MPIIO=on \
|
||||||
|
-D PKG_ATC=on \
|
||||||
|
-D PKG_AWPMD=on \
|
||||||
|
-D PKG_BOCS=on \
|
||||||
|
-D PKG_EFF=on \
|
||||||
|
-D PKG_H5MD=on \
|
||||||
|
-D PKG_INTEL=on \
|
||||||
|
-D PKG_LATBOLTZ=on \
|
||||||
|
-D PKG_MANIFOLD=on \
|
||||||
|
-D PKG_MGPT=on \
|
||||||
|
-D PKG_ML-PACE=on \
|
||||||
|
-D PKG_ML-RANN=on \
|
||||||
|
-D PKG_MOLFILE=on \
|
||||||
|
-D PKG_NETCDF=on \
|
||||||
|
-D PKG_PTM=on \
|
||||||
|
-D PKG_QTB=on \
|
||||||
|
-D PKG_SMTBQ=on \
|
||||||
|
-D PKG_TALLY=on \
|
||||||
|
../cmake
|
||||||
|
|
||||||
|
- name: Run Coverity Scan
|
||||||
|
shell: bash
|
||||||
|
working-directory: build
|
||||||
|
run: |
|
||||||
|
export PATH=$GITHUB_WORKSPACE/coverity/bin:$PATH
|
||||||
|
cov-build --dir cov-int cmake --build . --parallel 2
|
||||||
|
|
||||||
|
- name: Create tarball with scan results
|
||||||
|
shell: bash
|
||||||
|
working-directory: build
|
||||||
|
run: tar czf lammps.tgz cov-int
|
||||||
|
|
||||||
|
- name: Upload scan result to Coverity
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
curl --form token=${{ secrets.COVERITY_TOKEN }} \
|
||||||
|
--form email=${{ secrets.COVERITY_EMAIL }} \
|
||||||
|
--form file=@build/lammps.tgz \
|
||||||
|
--form version=${{ github.sha }} \
|
||||||
|
--form description="LAMMPS automated build" \
|
||||||
|
https://scan.coverity.com/builds?project=LAMMPS
|
||||||
7
.github/workflows/unittest-macos.yml
vendored
7
.github/workflows/unittest-macos.yml
vendored
@ -3,7 +3,11 @@ name: "Unittest for MacOS"
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [develop]
|
branches:
|
||||||
|
- develop
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- develop
|
||||||
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
@ -39,6 +43,7 @@ jobs:
|
|||||||
working-directory: build
|
working-directory: build
|
||||||
run: |
|
run: |
|
||||||
ccache -z
|
ccache -z
|
||||||
|
python3 -m pip install numpy
|
||||||
python3 -m pip install pyyaml
|
python3 -m pip install pyyaml
|
||||||
cmake -C ../cmake/presets/clang.cmake \
|
cmake -C ../cmake/presets/clang.cmake \
|
||||||
-C ../cmake/presets/most.cmake \
|
-C ../cmake/presets/most.cmake \
|
||||||
|
|||||||
@ -110,14 +110,16 @@ function(FetchPotentials pkgfolder potfolder)
|
|||||||
math(EXPR plusone "${blank}+1")
|
math(EXPR plusone "${blank}+1")
|
||||||
string(SUBSTRING ${line} 0 ${blank} pot)
|
string(SUBSTRING ${line} 0 ${blank} pot)
|
||||||
string(SUBSTRING ${line} ${plusone} -1 sum)
|
string(SUBSTRING ${line} ${plusone} -1 sum)
|
||||||
if(EXISTS ${LAMMPS_POTENTIALS_DIR}/${pot})
|
if(EXISTS "${LAMMPS_POTENTIALS_DIR}/${pot}")
|
||||||
file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum)
|
file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum)
|
||||||
endif()
|
endif()
|
||||||
if(NOT sum STREQUAL oldsum)
|
if(NOT sum STREQUAL oldsum)
|
||||||
message(STATUS "Checking external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
|
message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
|
||||||
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}"
|
string(MD5 TMP_EXT "${CMAKE_BINARY_DIR}")
|
||||||
|
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}"
|
||||||
EXPECTED_HASH MD5=${sum} SHOW_PROGRESS)
|
EXPECTED_HASH MD5=${sum} SHOW_PROGRESS)
|
||||||
file(COPY "${CMAKE_BINARY_DIR}/${pot}" DESTINATION ${LAMMPS_POTENTIALS_DIR})
|
file(COPY "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" DESTINATION "${LAMMPS_POTENTIALS_DIR}")
|
||||||
|
file(RENAME "${LAMMPS_POTENTIALS_DIR}/${pot}.${TMP_EXT}" "${LAMMPS_POTENTIALS_DIR}/${pot}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -6,10 +6,13 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT})
|
option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(DOWNLOAD_MDI)
|
if(DOWNLOAD_MDI)
|
||||||
message(STATUS "MDI download requested - we will build our own")
|
message(STATUS "MDI download requested - we will build our own")
|
||||||
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.1.tar.gz" CACHE STRING "URL for MDI tarball")
|
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.10.tar.gz" CACHE STRING "URL for MDI tarball")
|
||||||
set(MDI_MD5 "f9505fccd4c79301a619f6452dad4ad9" CACHE STRING "MD5 checksum for MDI tarball")
|
set(MDI_MD5 "1c203b7fd462d9934834f643f09f3c06" CACHE STRING "MD5 checksum for MDI tarball")
|
||||||
mark_as_advanced(MDI_URL)
|
mark_as_advanced(MDI_URL)
|
||||||
mark_as_advanced(MDI_MD5)
|
mark_as_advanced(MDI_MD5)
|
||||||
enable_language(C)
|
enable_language(C)
|
||||||
|
|||||||
@ -44,6 +44,7 @@ OPT.
|
|||||||
* :doc:`harmonic (iko) <bond_harmonic>`
|
* :doc:`harmonic (iko) <bond_harmonic>`
|
||||||
* :doc:`harmonic/shift (o) <bond_harmonic_shift>`
|
* :doc:`harmonic/shift (o) <bond_harmonic_shift>`
|
||||||
* :doc:`harmonic/shift/cut (o) <bond_harmonic_shift_cut>`
|
* :doc:`harmonic/shift/cut (o) <bond_harmonic_shift_cut>`
|
||||||
|
* :doc:`mesocnt <bond_mesocnt>`
|
||||||
* :doc:`mm3 <bond_mm3>`
|
* :doc:`mm3 <bond_mm3>`
|
||||||
* :doc:`morse (o) <bond_morse>`
|
* :doc:`morse (o) <bond_morse>`
|
||||||
* :doc:`nonlinear (o) <bond_nonlinear>`
|
* :doc:`nonlinear (o) <bond_nonlinear>`
|
||||||
@ -92,6 +93,7 @@ OPT.
|
|||||||
* :doc:`fourier/simple (o) <angle_fourier_simple>`
|
* :doc:`fourier/simple (o) <angle_fourier_simple>`
|
||||||
* :doc:`gaussian <angle_gaussian>`
|
* :doc:`gaussian <angle_gaussian>`
|
||||||
* :doc:`harmonic (iko) <angle_harmonic>`
|
* :doc:`harmonic (iko) <angle_harmonic>`
|
||||||
|
* :doc:`mesocnt <angle_mesocnt>`
|
||||||
* :doc:`mm3 <angle_mm3>`
|
* :doc:`mm3 <angle_mm3>`
|
||||||
* :doc:`quartic (o) <angle_quartic>`
|
* :doc:`quartic (o) <angle_quartic>`
|
||||||
* :doc:`spica (o) <angle_spica>`
|
* :doc:`spica (o) <angle_spica>`
|
||||||
|
|||||||
@ -201,6 +201,7 @@ OPT.
|
|||||||
* :doc:`meam/spline (o) <pair_meam_spline>`
|
* :doc:`meam/spline (o) <pair_meam_spline>`
|
||||||
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
|
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
|
||||||
* :doc:`mesocnt <pair_mesocnt>`
|
* :doc:`mesocnt <pair_mesocnt>`
|
||||||
|
* :doc:`mesocnt/viscous <pair_mesocnt>`
|
||||||
* :doc:`mesont/tpm <pair_mesont_tpm>`
|
* :doc:`mesont/tpm <pair_mesont_tpm>`
|
||||||
* :doc:`mgpt <pair_mgpt>`
|
* :doc:`mgpt <pair_mgpt>`
|
||||||
* :doc:`mie/cut (g) <pair_mie>`
|
* :doc:`mie/cut (g) <pair_mie>`
|
||||||
|
|||||||
@ -652,7 +652,7 @@ short-range or long-range interactions.
|
|||||||
* :doc:`pair_style lj/cut/dipole/cut <pair_dipole>`
|
* :doc:`pair_style lj/cut/dipole/cut <pair_dipole>`
|
||||||
* :doc:`pair_style lj/cut/dipole/long <pair_dipole>`
|
* :doc:`pair_style lj/cut/dipole/long <pair_dipole>`
|
||||||
* :doc:`pair_style lj/long/dipole/long <pair_dipole>`
|
* :doc:`pair_style lj/long/dipole/long <pair_dipole>`
|
||||||
* :doc: `angle_style dipole <angle_dipole>`
|
* :doc:`angle_style dipole <angle_dipole>`
|
||||||
* examples/dipole
|
* examples/dipole
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -1404,7 +1404,7 @@ This package has :ref:`specific installation instructions <machdyn>` on the :doc
|
|||||||
|
|
||||||
* src/MACHDYN: filenames -> commands
|
* src/MACHDYN: filenames -> commands
|
||||||
* src/MACHDYN/README
|
* src/MACHDYN/README
|
||||||
* doc/PDF/MACHDYN_LAMMPS_userguide.pdf
|
* `doc/PDF/MACHDYN_LAMMPS_userguide.pdf <PDF/MACHDYN_LAMMPS_userguide.pdf>`_
|
||||||
* examples/PACKAGES/machdyn
|
* examples/PACKAGES/machdyn
|
||||||
* https://www.lammps.org/movies.html#smd
|
* https://www.lammps.org/movies.html#smd
|
||||||
|
|
||||||
@ -1556,31 +1556,40 @@ MESONT package
|
|||||||
|
|
||||||
**Contents:**
|
**Contents:**
|
||||||
|
|
||||||
MESONT is a LAMMPS package for simulation of nanomechanics of
|
MESONT is a LAMMPS package for simulation of nanomechanics of nanotubes
|
||||||
nanotubes (NTs). The model is based on a coarse-grained representation
|
(NTs). The model is based on a coarse-grained representation of NTs as
|
||||||
of NTs as "flexible cylinders" consisting of a variable number of
|
"flexible cylinders" consisting of a variable number of
|
||||||
segments. Internal interactions within a NT and the van der Waals
|
segments. Internal interactions within a NT and the van der Waals
|
||||||
interaction between the tubes are described by a mesoscopic force field
|
interaction between the tubes are described by a mesoscopic force field
|
||||||
designed and parameterized based on the results of atomic-level
|
designed and parameterized based on the results of atomic-level
|
||||||
molecular dynamics simulations. The description of the force field is
|
molecular dynamics simulations. The description of the force field is
|
||||||
provided in the papers listed below. This package contains two
|
provided in the papers listed below.
|
||||||
independent implementations of this model: :doc:`pair_style mesocnt
|
|
||||||
<pair_mesocnt>` is a (minimal) C++ implementation, and :doc:`pair_style
|
This package contains two independent implementations of this model:
|
||||||
mesont/tpm <pair_mesont_tpm>` is a more general and feature rich
|
:doc:`pair_style mesont/tpm <pair_mesont_tpm>` is the original
|
||||||
implementation based on a Fortran library in the ``lib/mesont`` folder.
|
implementation of the model based on a Fortran library in the
|
||||||
|
``lib/mesont`` folder. The second implementation is provided by the
|
||||||
|
mesocnt styles (:doc:`bond_style mesocnt <bond_mesocnt>`,
|
||||||
|
:doc:`angle_style mesocnt <angle_mesocnt>` and :doc:`pair_style mesocnt
|
||||||
|
<pair_mesocnt>`). The mesocnt implementation has the same features as
|
||||||
|
the original implementation with the addition of friction, but is
|
||||||
|
directly implemented in C++, interfaces more cleanly with general LAMMPS
|
||||||
|
functionality, and is typically faster. It also does not require its own
|
||||||
|
atom style and can be installed without any external libraries.
|
||||||
|
|
||||||
**Download of potential files:**
|
**Download of potential files:**
|
||||||
|
|
||||||
The potential files for these pair styles are *very* large and thus
|
The potential files for these pair styles are *very* large and thus are
|
||||||
are not included in the regular downloaded packages of LAMMPS or the
|
not included in the regular downloaded packages of LAMMPS or the git
|
||||||
git repositories. Instead, they will be automatically downloaded
|
repositories. Instead, they will be automatically downloaded from a web
|
||||||
from a web server when the package is installed for the first time.
|
server when the package is installed for the first time.
|
||||||
|
|
||||||
**Authors of the *mesont* styles:**
|
**Authors of the *mesont* styles:**
|
||||||
|
|
||||||
Maxim V. Shugaev (University of Virginia), Alexey N. Volkov (University of Alabama), Leonid V. Zhigilei (University of Virginia)
|
Maxim V. Shugaev (University of Virginia), Alexey N. Volkov (University
|
||||||
|
of Alabama), Leonid V. Zhigilei (University of Virginia)
|
||||||
|
|
||||||
**Author of the *mesocnt* pair style:**
|
**Author of the *mesocnt* styles:**
|
||||||
Philipp Kloza (U Cambridge)
|
Philipp Kloza (U Cambridge)
|
||||||
|
|
||||||
**Supporting info:**
|
**Supporting info:**
|
||||||
@ -1590,6 +1599,8 @@ Philipp Kloza (U Cambridge)
|
|||||||
* :doc:`atom_style mesont <atom_style>`
|
* :doc:`atom_style mesont <atom_style>`
|
||||||
* :doc:`pair_style mesont/tpm <pair_mesont_tpm>`
|
* :doc:`pair_style mesont/tpm <pair_mesont_tpm>`
|
||||||
* :doc:`compute mesont <compute_mesont>`
|
* :doc:`compute mesont <compute_mesont>`
|
||||||
|
* :doc:`bond_style mesocnt <bond_mesocnt>`
|
||||||
|
* :doc:`angle_style mesocnt <angle_mesocnt>`
|
||||||
* :doc:`pair_style mesocnt <pair_mesocnt>`
|
* :doc:`pair_style mesocnt <pair_mesocnt>`
|
||||||
* examples/PACKAGES/mesont
|
* examples/PACKAGES/mesont
|
||||||
* tools/mesont
|
* tools/mesont
|
||||||
@ -2692,7 +2703,7 @@ Dynamics, Ernst Mach Institute, Germany).
|
|||||||
|
|
||||||
* src/SPH: filenames -> commands
|
* src/SPH: filenames -> commands
|
||||||
* src/SPH/README
|
* src/SPH/README
|
||||||
* doc/PDF/SPH_LAMMPS_userguide.pdf
|
* `doc/PDF/SPH_LAMMPS_userguide.pdf <PDF/SPH_LAMMPS_userguide.pdf>`_
|
||||||
* examples/PACKAGES/sph
|
* examples/PACKAGES/sph
|
||||||
* https://www.lammps.org/movies.html#sph
|
* https://www.lammps.org/movies.html#sph
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ page. The accelerated styles take the same arguments and should
|
|||||||
produce the same results, except for round-off and precision issues.
|
produce the same results, except for round-off and precision issues.
|
||||||
|
|
||||||
These accelerated styles are part of the GPU, INTEL, KOKKOS,
|
These accelerated styles are part of the GPU, INTEL, KOKKOS,
|
||||||
OPENMP and OPT packages, respectively. They are only enabled if
|
OPENMP, and OPT packages, respectively. They are only enabled if
|
||||||
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` page for more info.
|
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
You can specify the accelerated styles explicitly in your input script
|
You can specify the accelerated styles explicitly in your input script
|
||||||
|
|||||||
146
doc/src/angle_mesocnt.rst
Normal file
146
doc/src/angle_mesocnt.rst
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
.. index:: angle_style mesocnt
|
||||||
|
|
||||||
|
angle_style mesocnt command
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
angle_style mesocnt
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
angle_style mesocnt
|
||||||
|
angle_coeff 1 buckling C 10 10 20.0
|
||||||
|
angle_coeff 4 harmonic C 8 4 10.0
|
||||||
|
angle_coeff 2 buckling custom 400.0 50.0 5.0
|
||||||
|
angle_coeff 1 harmonic custom 300.0
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
The *mesocnt* angle style uses the potential
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
E = K_\text{H} \Delta \theta^2, \qquad |\Delta \theta| < \Delta
|
||||||
|
\theta_\text{B} \\
|
||||||
|
E = K_\text{H} \Delta \theta_\text{B}^2 +
|
||||||
|
K_\text{B} (\Delta \theta - \Delta \theta_\text{B}), \qquad |\Delta
|
||||||
|
\theta| \geq \Delta \theta_\text{B}
|
||||||
|
|
||||||
|
where :math:`\Delta \theta = \theta - \pi` is the bending angle of the
|
||||||
|
nanotube, :math:`K_\text{H}` and :math:`K_\text{B}` are prefactors for
|
||||||
|
the harmonic and linear regime respectively and :math:`\Delta
|
||||||
|
\theta_\text{B}` is the buckling angle. Note that the usual 1/2 factor
|
||||||
|
for the harmonic potential is included in :math:`K_\text{H}`.
|
||||||
|
|
||||||
|
The style implements parameterization presets of :math:`K_\text{H}`,
|
||||||
|
:math:`K_\text{B}` and :math:`\Delta \theta_\text{B}` for mesoscopic
|
||||||
|
simulations of carbon nanotubes based on the atomistic simulations of
|
||||||
|
:ref:`(Srivastava) <Srivastava_2>` and buckling considerations of
|
||||||
|
:ref:`(Zhigilei) <Zhigilei1_1>`.
|
||||||
|
|
||||||
|
The following coefficients must be defined for each angle type via the
|
||||||
|
:doc:`angle_coeff <angle_coeff>` command as in the examples above, or
|
||||||
|
in the data file or restart files read by the :doc:`read_data
|
||||||
|
<read_data>` or :doc:`read_restart <read_restart>` commands:
|
||||||
|
|
||||||
|
* mode = *buckling* or *harmonic*
|
||||||
|
* preset = *C* or *custom*
|
||||||
|
* additional parameters depending on preset
|
||||||
|
|
||||||
|
If mode *harmonic* is chosen, the potential is simply harmonic and
|
||||||
|
does not switch to the linear term when the buckling angle is
|
||||||
|
reached. In *buckling* mode, the full piecewise potential is used.
|
||||||
|
|
||||||
|
Preset *C* is for carbon nanotubes, and the additional parameters are:
|
||||||
|
|
||||||
|
* chiral index :math:`n` (unitless)
|
||||||
|
* chiral index :math:`m` (unitless)
|
||||||
|
* :math:`r_0` (distance)
|
||||||
|
|
||||||
|
Here, :math:`r_0` is the equilibrium distance of the bonds included in
|
||||||
|
the angle, see :doc:`bond_style mesocnt <bond_mesocnt>`.
|
||||||
|
|
||||||
|
In harmonic mode with preset *custom*, the additional parameter is:
|
||||||
|
|
||||||
|
* :math:`K_\text{H}` (energy)
|
||||||
|
|
||||||
|
Hence, this setting is simply a wrapper for :doc:`bond_style harmonic
|
||||||
|
<bond_harmonic>` with an equilibrium angle of 180 degrees.
|
||||||
|
|
||||||
|
In harmonic mode with preset *custom*, the additional parameters are:
|
||||||
|
|
||||||
|
* :math:`K_\text{H}` (energy)
|
||||||
|
* :math:`K_\text{B}` (energy)
|
||||||
|
* :math:`\Delta \theta_\text{B}` (degrees)
|
||||||
|
|
||||||
|
:math:`\Delta \theta_\text{B}` is specified in degrees, but LAMMPS
|
||||||
|
converts it to radians internally; hence :math:`K_\text{H}` is
|
||||||
|
effectively energy per radian\^2 and :math:`K_\text{B}` is energy per
|
||||||
|
radian.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
In *buckling* mode, this angle style adds the *buckled* property to
|
||||||
|
all atoms in the simulation, which is an integer flag indicating
|
||||||
|
whether the bending angle at a given atom has exceeded :math:`\Delta
|
||||||
|
\theta_\text{B}`. It can be accessed as an atomic variable, e.g. for
|
||||||
|
custom dump commands, as *i_buckled*.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If the initial state of the simulation contains buckled nanotubes
|
||||||
|
and :doc:`pair_style mesocnt <pair_mesocnt>` is used, the
|
||||||
|
*i_buckled* atomic variable needs to be initialized before the
|
||||||
|
pair_style is defined by doing a *run 0* command straight after the
|
||||||
|
angle_style command. See below for an example.
|
||||||
|
|
||||||
|
If CNTs are already buckled at the start of the simulation, this
|
||||||
|
script will correctly initialize *i_buckled*:
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
angle_style mesocnt
|
||||||
|
angle_coeff 1 buckling C 10 10 20.0
|
||||||
|
|
||||||
|
run 0
|
||||||
|
|
||||||
|
pair_style mesocnt 60.0
|
||||||
|
pair_coeff * * C_10_10.mesocnt 1
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
This angle style can only be used if LAMMPS was built with the
|
||||||
|
MOLECULE and MESONT packages. See the :doc:`Build package
|
||||||
|
<Build_package>` doc page for more info.
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`angle_coeff <angle_coeff>`
|
||||||
|
|
||||||
|
Default
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. _Srivastava_2:
|
||||||
|
|
||||||
|
**(Srivastava)** Zhigilei, Wei, Srivastava, Phys. Rev. B 71, 165417
|
||||||
|
(2005).
|
||||||
|
|
||||||
|
.. _Zhigilei1_1:
|
||||||
|
|
||||||
|
**(Zhigilei)** Volkov and Zhigilei, ACS Nano 4, 6187 (2010).
|
||||||
@ -10,7 +10,7 @@ Syntax
|
|||||||
|
|
||||||
angle_style style
|
angle_style style
|
||||||
|
|
||||||
* style = *none* or *hybrid* or *charmm* or *class2* or *cosine* or *cosine/squared* or *harmonic*
|
* style = *none* or *zero* or *hybrid* or *amoeba* or *charmm* or *class2* or *class2/p6* or *cosine* or *cosine/buck6d* or *cosine/delta* or *cosine/periodic* or *cosine/shift* or *cosine/shift/exp* or *cosine/squared* or *cross* or *dipole* or *fourier* or *fourier/simple* or *gaussian* or *harmonic* or *mm3* or *quartic* or *spica* or *table*
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -90,6 +90,7 @@ of (g,i,k,o,t) to indicate which accelerated styles exist.
|
|||||||
* :doc:`fourier/simple <angle_fourier_simple>` - angle with a single cosine term
|
* :doc:`fourier/simple <angle_fourier_simple>` - angle with a single cosine term
|
||||||
* :doc:`gaussian <angle_gaussian>` - multi-centered Gaussian-based angle potential
|
* :doc:`gaussian <angle_gaussian>` - multi-centered Gaussian-based angle potential
|
||||||
* :doc:`harmonic <angle_harmonic>` - harmonic angle
|
* :doc:`harmonic <angle_harmonic>` - harmonic angle
|
||||||
|
* :doc:`mesocnt <angle_mesocnt>` - piecewise harmonic and linear angle for bending-buckling of nanotubes
|
||||||
* :doc:`mm3 <angle_mm3>` - anharmonic angle
|
* :doc:`mm3 <angle_mm3>` - anharmonic angle
|
||||||
* :doc:`quartic <angle_quartic>` - angle with cubic and quartic terms
|
* :doc:`quartic <angle_quartic>` - angle with cubic and quartic terms
|
||||||
* :doc:`spica <angle_spica>` - harmonic angle with repulsive SPICA pair style between 1-3 atoms
|
* :doc:`spica <angle_spica>` - harmonic angle with repulsive SPICA pair style between 1-3 atoms
|
||||||
|
|||||||
@ -8,7 +8,10 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
angle_style zero *nocoeff*
|
angle_style zero keyword
|
||||||
|
|
||||||
|
* zero or more keywords may be appended
|
||||||
|
* keyword = *nocoeff*
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ balance command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
balance thresh style args ... keyword args ...
|
balance thresh style args ... keyword args ...
|
||||||
|
|
||||||
|
|||||||
84
doc/src/bond_mesocnt.rst
Normal file
84
doc/src/bond_mesocnt.rst
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
.. index:: bond_style mesocnt
|
||||||
|
|
||||||
|
bond_style mesocnt command
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
bond_style mesocnt
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
|
bond_style mesocnt
|
||||||
|
bond_coeff 1 C 10 10 20.0
|
||||||
|
bond_coeff 4 custom 800.0 10.0
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
.. versionadded:: TBD
|
||||||
|
|
||||||
|
The *mesocnt* bond style is a wrapper for the :doc:`harmonic
|
||||||
|
<bond_harmonic>` style, and uses the potential
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
E = K (r - r_0)^2
|
||||||
|
|
||||||
|
where :math:`r_0` is the equilibrium bond distance. Note that the
|
||||||
|
usual 1/2 factor is included in :math:`K`. The style implements
|
||||||
|
parameterization presets of :math:`K` for mesoscopic simulations of
|
||||||
|
carbon nanotubes based on the atomistic simulations of
|
||||||
|
:ref:`(Srivastava) <Srivastava_1>`.
|
||||||
|
|
||||||
|
Other presets can be readily implemented in the future.
|
||||||
|
|
||||||
|
The following coefficients must be defined for each bond type via the
|
||||||
|
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||||
|
the data file or restart files read by the :doc:`read_data
|
||||||
|
<read_data>` or :doc:`read_restart <read_restart>` commands:
|
||||||
|
|
||||||
|
* preset = *C* or *custom*
|
||||||
|
* additional parameters depending on preset
|
||||||
|
|
||||||
|
Preset *C* is for carbon nanotubes, and the additional parameters are:
|
||||||
|
|
||||||
|
* chiral index :math:`n` (unitless)
|
||||||
|
* chiral index :math:`m` (unitless)
|
||||||
|
* :math:`r_0` (distance)
|
||||||
|
|
||||||
|
Preset *custom* is simply a direct wrapper for the :doc:`harmonic
|
||||||
|
<bond_harmonic>` style, and the additional parameters are:
|
||||||
|
|
||||||
|
* :math:`K` (energy/distance\^2)
|
||||||
|
* :math:`r_0` (distance)
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
This bond style can only be used if LAMMPS was built with the MOLECULE
|
||||||
|
and MESONT packages. See the :doc:`Build package <Build_package>`
|
||||||
|
page for more info.
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>`
|
||||||
|
|
||||||
|
Default
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
none
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. _Srivastava_1:
|
||||||
|
|
||||||
|
**(Srivastava)** Zhigilei, Wei and Srivastava, Phys. Rev. B 71, 165417
|
||||||
|
(2005).
|
||||||
@ -10,7 +10,7 @@ Syntax
|
|||||||
|
|
||||||
bond_style style args
|
bond_style style args
|
||||||
|
|
||||||
* style = *none* or *hybrid* or *class2* or *fene* or *fene/expand* or *harmonic* or *morse* or *nonlinear* or *quartic*
|
* style = *none* or *zero* or *hybrid* or *bpm/rotational* or *bpm/spring* or *class2* or *fene* or *fene/expand* or *fene/nm* or *gaussian* or *gromos* or *harmonic* or *harmonic/shift* or *harmonic/shift/cut* or *morse* or *nonlinear* or *oxdna/fene* or *oxdena2/fene* or *oxrna2/fene* or *quartic* or *special* or *table*
|
||||||
|
|
||||||
* args = none for any style except *hybrid*
|
* args = none for any style except *hybrid*
|
||||||
|
|
||||||
@ -95,6 +95,7 @@ accelerated styles exist.
|
|||||||
* :doc:`harmonic <bond_harmonic>` - harmonic bond
|
* :doc:`harmonic <bond_harmonic>` - harmonic bond
|
||||||
* :doc:`harmonic/shift <bond_harmonic_shift>` - shifted harmonic bond
|
* :doc:`harmonic/shift <bond_harmonic_shift>` - shifted harmonic bond
|
||||||
* :doc:`harmonic/shift/cut <bond_harmonic_shift_cut>` - shifted harmonic bond with a cutoff
|
* :doc:`harmonic/shift/cut <bond_harmonic_shift_cut>` - shifted harmonic bond with a cutoff
|
||||||
|
* :doc:`mesocnt <bond_mesocnt>` - Harmonic bond wrapper with parameterization presets for nanotubes
|
||||||
* :doc:`mm3 <bond_mm3>` - MM3 anharmonic bond
|
* :doc:`mm3 <bond_mm3>` - MM3 anharmonic bond
|
||||||
* :doc:`morse <bond_morse>` - Morse bond
|
* :doc:`morse <bond_morse>` - Morse bond
|
||||||
* :doc:`nonlinear <bond_nonlinear>` - nonlinear bond
|
* :doc:`nonlinear <bond_nonlinear>` - nonlinear bond
|
||||||
|
|||||||
@ -8,7 +8,10 @@ Syntax
|
|||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
bond_style zero [nocoeff]
|
bond_style zero keyword
|
||||||
|
|
||||||
|
* zero or more keywords may be appended
|
||||||
|
* keyword = *nocoeff*
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ boundary command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
boundary x y z
|
boundary x y z
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ box command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
box keyword value ...
|
box keyword value ...
|
||||||
|
|
||||||
|
|||||||
@ -6,18 +6,18 @@ clear command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
clear
|
clear
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
(commands for 1st simulation)
|
# (commands for 1st simulation)
|
||||||
clear
|
clear
|
||||||
(commands for 2nd simulation)
|
# (commands for 2nd simulation)
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|||||||
@ -10,8 +10,8 @@ Syntax
|
|||||||
|
|
||||||
comm_modify keyword value ...
|
comm_modify keyword value ...
|
||||||
|
|
||||||
* zero or more keyword/value pairs may be appended
|
* one or more keyword/value pairs may be appended
|
||||||
* keyword = *mode* or *cutoff* or *cutoff/multi* or *multi/reduce* or *group* or *vel*
|
* keyword = *mode* or *cutoff* or *cutoff/multi* or *group* or *reduce/multi* or *vel*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID style args
|
compute ID group-ID style args
|
||||||
|
|
||||||
@ -33,8 +33,8 @@ they are calculated from information about atoms on the current
|
|||||||
timestep or iteration, though a compute may internally store some
|
timestep or iteration, though a compute may internally store some
|
||||||
information about a previous state of the system. Defining a compute
|
information about a previous state of the system. Defining a compute
|
||||||
does not perform a computation. Instead computes are invoked by other
|
does not perform a computation. Instead computes are invoked by other
|
||||||
LAMMPS commands as needed, e.g. to calculate a temperature needed for
|
LAMMPS commands as needed (e.g., to calculate a temperature needed for
|
||||||
a thermostat fix or to generate thermodynamic or dump file output.
|
a thermostat fix or to generate thermodynamic or dump file output).
|
||||||
See the :doc:`Howto output <Howto_output>` page for a summary of
|
See the :doc:`Howto output <Howto_output>` page for a summary of
|
||||||
various LAMMPS output options, many of which involve computes.
|
various LAMMPS output options, many of which involve computes.
|
||||||
|
|
||||||
@ -45,15 +45,15 @@ underscores.
|
|||||||
|
|
||||||
Computes calculate one of three styles of quantities: global,
|
Computes calculate one of three styles of quantities: global,
|
||||||
per-atom, or local. A global quantity is one or more system-wide
|
per-atom, or local. A global quantity is one or more system-wide
|
||||||
values, e.g. the temperature of the system. A per-atom quantity is
|
values (e.g., the temperature of the system). A per-atom quantity is
|
||||||
one or more values per atom, e.g. the kinetic energy of each atom.
|
one or more values per atom (e.g., the kinetic energy of each atom).
|
||||||
Per-atom values are set to 0.0 for atoms not in the specified compute
|
Per-atom values are set to 0.0 for atoms not in the specified compute
|
||||||
group. Local quantities are calculated by each processor based on the
|
group. Local quantities are calculated by each processor based on the
|
||||||
atoms it owns, but there may be zero or more per atom, e.g. a list of
|
atoms it owns, but there may be zero or more per atom (e.g., a list of
|
||||||
bond distances. Computes that produce per-atom quantities have the
|
bond distances). Computes that produce per-atom quantities have the
|
||||||
word "atom" in their style, e.g. *ke/atom*\ . Computes that produce
|
word "atom" in their style (e.g., *ke/atom*\ ). Computes that produce
|
||||||
local quantities have the word "local" in their style,
|
local quantities have the word "local" in their style
|
||||||
e.g. *bond/local*\ . Styles with neither "atom" or "local" in their
|
(e.g., *bond/local*\ ). Styles with neither "atom" or "local" in their
|
||||||
style produce global quantities.
|
style produce global quantities.
|
||||||
|
|
||||||
Note that a single compute can produce either global or per-atom or
|
Note that a single compute can produce either global or per-atom or
|
||||||
@ -64,8 +64,8 @@ compute page will explain.
|
|||||||
Global, per-atom, and local quantities each come in three kinds: a
|
Global, per-atom, and local quantities each come in three kinds: a
|
||||||
single scalar value, a vector of values, or a 2d array of values. The
|
single scalar value, a vector of values, or a 2d array of values. The
|
||||||
doc page for each compute describes the style and kind of values it
|
doc page for each compute describes the style and kind of values it
|
||||||
produces, e.g. a per-atom vector. Some computes produce more than one
|
produces (e.g., a per-atom vector). Some computes produce more than one
|
||||||
kind of a single style, e.g. a global scalar and a global vector.
|
kind of a single style (e.g., a global scalar and a global vector).
|
||||||
|
|
||||||
When a compute quantity is accessed, as in many of the output commands
|
When a compute quantity is accessed, as in many of the output commands
|
||||||
discussed below, it can be referenced via the following bracket
|
discussed below, it can be referenced via the following bracket
|
||||||
@ -80,14 +80,14 @@ notation, where ID is the ID of the compute:
|
|||||||
+-------------+--------------------------------------------+
|
+-------------+--------------------------------------------+
|
||||||
|
|
||||||
In other words, using one bracket reduces the dimension of the
|
In other words, using one bracket reduces the dimension of the
|
||||||
quantity once (vector -> scalar, array -> vector). Using two brackets
|
quantity once (vector :math:`\to` scalar, array :math:`\to` vector). Using two
|
||||||
reduces the dimension twice (array -> scalar). Thus a command that
|
brackets reduces the dimension twice (array :math:`\to` scalar). Thus a
|
||||||
uses scalar compute values as input can also process elements of a
|
command that uses scalar compute values as input can also process elements of a
|
||||||
vector or array.
|
vector or array.
|
||||||
|
|
||||||
Note that commands and :doc:`variables <variable>` which use compute
|
Note that commands and :doc:`variables <variable>` which use compute
|
||||||
quantities typically do not allow for all kinds, e.g. a command may
|
quantities typically do not allow for all kinds (e.g., a command may
|
||||||
require a vector of values, not a scalar. This means there is no
|
require a vector of values, not a scalar). This means there is no
|
||||||
ambiguity about referring to a compute quantity as c_ID even if it
|
ambiguity about referring to a compute quantity as c_ID even if it
|
||||||
produces, for example, both a scalar and vector. The doc pages for
|
produces, for example, both a scalar and vector. The doc pages for
|
||||||
various commands explain the details.
|
various commands explain the details.
|
||||||
@ -111,14 +111,14 @@ ways:
|
|||||||
|
|
||||||
The results of computes that calculate global quantities can be either
|
The results of computes that calculate global quantities can be either
|
||||||
"intensive" or "extensive" values. Intensive means the value is
|
"intensive" or "extensive" values. Intensive means the value is
|
||||||
independent of the number of atoms in the simulation,
|
independent of the number of atoms in the simulation
|
||||||
e.g. temperature. Extensive means the value scales with the number of
|
(e.g., temperature). Extensive means the value scales with the number of
|
||||||
atoms in the simulation, e.g. total rotational kinetic energy.
|
atoms in the simulation (e.g., total rotational kinetic energy).
|
||||||
:doc:`Thermodynamic output <thermo_style>` will normalize extensive
|
:doc:`Thermodynamic output <thermo_style>` will normalize extensive
|
||||||
values by the number of atoms in the system, depending on the
|
values by the number of atoms in the system, depending on the
|
||||||
"thermo_modify norm" setting. It will not normalize intensive values.
|
"thermo_modify norm" setting. It will not normalize intensive values.
|
||||||
If a compute value is accessed in another way, e.g. by a
|
If a compute value is accessed in another way (e.g., by a
|
||||||
:doc:`variable <variable>`, you may want to know whether it is an
|
:doc:`variable <variable>`), you may want to know whether it is an
|
||||||
intensive or extensive value. See the page for individual
|
intensive or extensive value. See the page for individual
|
||||||
computes for further info.
|
computes for further info.
|
||||||
|
|
||||||
@ -187,8 +187,8 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`cluster/atom <compute_cluster_atom>` - cluster ID for each atom
|
* :doc:`cluster/atom <compute_cluster_atom>` - cluster ID for each atom
|
||||||
* :doc:`cna/atom <compute_cna_atom>` - common neighbor analysis (CNA) for each atom
|
* :doc:`cna/atom <compute_cna_atom>` - common neighbor analysis (CNA) for each atom
|
||||||
* :doc:`cnp/atom <compute_cnp_atom>` - common neighborhood parameter (CNP) for each atom
|
* :doc:`cnp/atom <compute_cnp_atom>` - common neighborhood parameter (CNP) for each atom
|
||||||
* :doc:`com <compute_com>` - center-of-mass of group of atoms
|
* :doc:`com <compute_com>` - center of mass of group of atoms
|
||||||
* :doc:`com/chunk <compute_com_chunk>` - center-of-mass for each chunk
|
* :doc:`com/chunk <compute_com_chunk>` - center of mass for each chunk
|
||||||
* :doc:`contact/atom <compute_contact_atom>` - contact count for each spherical particle
|
* :doc:`contact/atom <compute_contact_atom>` - contact count for each spherical particle
|
||||||
* :doc:`coord/atom <compute_coord_atom>` - coordination number for each atom
|
* :doc:`coord/atom <compute_coord_atom>` - coordination number for each atom
|
||||||
* :doc:`damage/atom <compute_damage_atom>` - Peridynamic damage for each atom
|
* :doc:`damage/atom <compute_damage_atom>` - Peridynamic damage for each atom
|
||||||
@ -198,10 +198,10 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`dipole <compute_dipole>` - dipole vector and total dipole
|
* :doc:`dipole <compute_dipole>` - dipole vector and total dipole
|
||||||
* :doc:`dipole/chunk <compute_dipole_chunk>` - dipole vector and total dipole for each chunk
|
* :doc:`dipole/chunk <compute_dipole_chunk>` - dipole vector and total dipole for each chunk
|
||||||
* :doc:`displace/atom <compute_displace_atom>` - displacement of each atom
|
* :doc:`displace/atom <compute_displace_atom>` - displacement of each atom
|
||||||
* :doc:`dpd <compute_dpd>` -
|
* :doc:`dpd <compute_dpd>` - total values of internal conductive energy, internal mechanical energy, chemical energy, and harmonic average of internal temperature
|
||||||
* :doc:`dpd/atom <compute_dpd_atom>` -
|
* :doc:`dpd/atom <compute_dpd_atom>` - per-particle values of internal conductive energy, internal mechanical energy, chemical energy, and internal temperature
|
||||||
* :doc:`edpd/temp/atom <compute_edpd_temp_atom>` - per-atom temperature for each eDPD particle in a group
|
* :doc:`edpd/temp/atom <compute_edpd_temp_atom>` - per-atom temperature for each eDPD particle in a group
|
||||||
* :doc:`efield/atom <compute_efield_atom>` -
|
* :doc:`efield/atom <compute_efield_atom>` - electric field at each atom
|
||||||
* :doc:`entropy/atom <compute_entropy_atom>` - pair entropy fingerprint of each atom
|
* :doc:`entropy/atom <compute_entropy_atom>` - pair entropy fingerprint of each atom
|
||||||
* :doc:`erotate/asphere <compute_erotate_asphere>` - rotational energy of aspherical particles
|
* :doc:`erotate/asphere <compute_erotate_asphere>` - rotational energy of aspherical particles
|
||||||
* :doc:`erotate/rigid <compute_erotate_rigid>` - rotational energy of rigid bodies
|
* :doc:`erotate/rigid <compute_erotate_rigid>` - rotational energy of rigid bodies
|
||||||
@ -213,7 +213,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`fep/ta <compute_fep_ta>` - compute free energies for a test area perturbation
|
* :doc:`fep/ta <compute_fep_ta>` - compute free energies for a test area perturbation
|
||||||
* :doc:`force/tally <compute_tally>` - force between two groups of atoms via the tally callback mechanism
|
* :doc:`force/tally <compute_tally>` - force between two groups of atoms via the tally callback mechanism
|
||||||
* :doc:`fragment/atom <compute_cluster_atom>` - fragment ID for each atom
|
* :doc:`fragment/atom <compute_cluster_atom>` - fragment ID for each atom
|
||||||
* :doc:`global/atom <compute_global_atom>` -
|
* :doc:`global/atom <compute_global_atom>` - assign global values to each atom from arrays of global values
|
||||||
* :doc:`group/group <compute_group_group>` - energy/force between two groups of atoms
|
* :doc:`group/group <compute_group_group>` - energy/force between two groups of atoms
|
||||||
* :doc:`gyration <compute_gyration>` - radius of gyration of group of atoms
|
* :doc:`gyration <compute_gyration>` - radius of gyration of group of atoms
|
||||||
* :doc:`gyration/chunk <compute_gyration_chunk>` - radius of gyration for each chunk
|
* :doc:`gyration/chunk <compute_gyration_chunk>` - radius of gyration for each chunk
|
||||||
@ -232,7 +232,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`ke/atom/eff <compute_ke_atom_eff>` - per-atom translational and radial kinetic energy in the electron force field model
|
* :doc:`ke/atom/eff <compute_ke_atom_eff>` - per-atom translational and radial kinetic energy in the electron force field model
|
||||||
* :doc:`ke/eff <compute_ke_eff>` - kinetic energy of a group of nuclei and electrons in the electron force field model
|
* :doc:`ke/eff <compute_ke_eff>` - kinetic energy of a group of nuclei and electrons in the electron force field model
|
||||||
* :doc:`ke/rigid <compute_ke_rigid>` - translational kinetic energy of rigid bodies
|
* :doc:`ke/rigid <compute_ke_rigid>` - translational kinetic energy of rigid bodies
|
||||||
* :doc:`mliap <compute_mliap>` - gradients of energy and forces w.r.t. model parameters and related quantities for training machine learning interatomic potentials
|
* :doc:`mliap <compute_mliap>` - gradients of energy and forces with respect to model parameters and related quantities for training machine learning interatomic potentials
|
||||||
* :doc:`momentum <compute_momentum>` - translational momentum
|
* :doc:`momentum <compute_momentum>` - translational momentum
|
||||||
* :doc:`msd <compute_msd>` - mean-squared displacement of group of atoms
|
* :doc:`msd <compute_msd>` - mean-squared displacement of group of atoms
|
||||||
* :doc:`msd/chunk <compute_msd_chunk>` - mean-squared displacement for each chunk
|
* :doc:`msd/chunk <compute_msd_chunk>` - mean-squared displacement for each chunk
|
||||||
@ -254,35 +254,35 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`property/chunk <compute_property_chunk>` - extract various per-chunk attributes
|
* :doc:`property/chunk <compute_property_chunk>` - extract various per-chunk attributes
|
||||||
* :doc:`property/local <compute_property_local>` - convert local attributes to localvectors/arrays
|
* :doc:`property/local <compute_property_local>` - convert local attributes to localvectors/arrays
|
||||||
* :doc:`ptm/atom <compute_ptm_atom>` - determines the local lattice structure based on the Polyhedral Template Matching method
|
* :doc:`ptm/atom <compute_ptm_atom>` - determines the local lattice structure based on the Polyhedral Template Matching method
|
||||||
* :doc:`rdf <compute_rdf>` - radial distribution function g(r) histogram of group of atoms
|
* :doc:`rdf <compute_rdf>` - radial distribution function :math:`g(r)` histogram of group of atoms
|
||||||
* :doc:`reduce <compute_reduce>` - combine per-atom quantities into a single global value
|
* :doc:`reduce <compute_reduce>` - combine per-atom quantities into a single global value
|
||||||
* :doc:`reduce/chunk <compute_reduce_chunk>` - reduce per-atom quantities within each chunk
|
* :doc:`reduce/chunk <compute_reduce_chunk>` - reduce per-atom quantities within each chunk
|
||||||
* :doc:`reduce/region <compute_reduce>` - same as compute reduce, within a region
|
* :doc:`reduce/region <compute_reduce>` - same as compute reduce, within a region
|
||||||
* :doc:`rigid/local <compute_rigid_local>` - extract rigid body attributes
|
* :doc:`rigid/local <compute_rigid_local>` - extract rigid body attributes
|
||||||
* :doc:`saed <compute_saed>` - electron diffraction intensity on a mesh of reciprocal lattice nodes
|
* :doc:`saed <compute_saed>` - electron diffraction intensity on a mesh of reciprocal lattice nodes
|
||||||
* :doc:`slice <compute_slice>` - extract values from global vector or array
|
* :doc:`slice <compute_slice>` - extract values from global vector or array
|
||||||
* :doc:`smd/contact/radius <compute_smd_contact_radius>` -
|
* :doc:`smd/contact/radius <compute_smd_contact_radius>` - contact radius for Smooth Mach Dynamics
|
||||||
* :doc:`smd/damage <compute_smd_damage>` - damage status of SPH particles in Smooth Mach Dynamics
|
* :doc:`smd/damage <compute_smd_damage>` - damage status of SPH particles in Smooth Mach Dynamics
|
||||||
* :doc:`smd/hourglass/error <compute_smd_hourglass_error>` -
|
* :doc:`smd/hourglass/error <compute_smd_hourglass_error>` - error associated with approximated relative separation in Smooth Mach Dynamics
|
||||||
* :doc:`smd/internal/energy <compute_smd_internal_energy>` - per-particle enthalpy in Smooth Mach Dynamics
|
* :doc:`smd/internal/energy <compute_smd_internal_energy>` - per-particle enthalpy in Smooth Mach Dynamics
|
||||||
* :doc:`smd/plastic/strain <compute_smd_plastic_strain>` - equivalent plastic strain per particle in Smooth Mach Dynamics
|
* :doc:`smd/plastic/strain <compute_smd_plastic_strain>` - equivalent plastic strain per particle in Smooth Mach Dynamics
|
||||||
* :doc:`smd/plastic/strain/rate <compute_smd_plastic_strain_rate>` - time rate of the equivalent plastic strain in Smooth Mach Dynamics
|
* :doc:`smd/plastic/strain/rate <compute_smd_plastic_strain_rate>` - time rate of the equivalent plastic strain in Smooth Mach Dynamics
|
||||||
* :doc:`smd/rho <compute_smd_rho>` - per-particle mass density in Smooth Mach Dynamics
|
* :doc:`smd/rho <compute_smd_rho>` - per-particle mass density in Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/defgrad <compute_smd_tlsph_defgrad>` - deformation gradient in Smooth Mach Dynamics
|
* :doc:`smd/tlsph/defgrad <compute_smd_tlsph_defgrad>` - deformation gradient in Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/dt <compute_smd_tlsph_dt>` - CFL-stable time increment per particle in Smooth Mach Dynamics
|
* :doc:`smd/tlsph/dt <compute_smd_tlsph_dt>` - CFL-stable time increment per particle in Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/num/neighs <compute_smd_tlsph_num_neighs>` -
|
* :doc:`smd/tlsph/num/neighs <compute_smd_tlsph_num_neighs>` - number of particles inside the smoothing kernel radius for Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/shape <compute_smd_tlsph_shape>` -
|
* :doc:`smd/tlsph/shape <compute_smd_tlsph_shape>` - current shape of the volume of a particle for Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/strain <compute_smd_tlsph_strain>` -
|
* :doc:`smd/tlsph/strain <compute_smd_tlsph_strain>` - Green--Lagrange strain tensor for Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` -
|
* :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` - rate of strain for Smooth Mach Dynamics
|
||||||
* :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` - per-particle Cauchy stress tensor for SPH particles
|
* :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` - per-particle Cauchy stress tensor for SPH particles
|
||||||
* :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` -
|
* :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` - coordinates of vertices corresponding to the triangle elements of a mesh for Smooth Mach Dynamics
|
||||||
* :doc:`smd/ulsph/effm <compute_smd_ulsph_effm>` - per-particle effective shear modulus
|
* :doc:`smd/ulsph/effm <compute_smd_ulsph_effm>` - per-particle effective shear modulus
|
||||||
* :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` -
|
* :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` - number of neighbor particles inside the smoothing kernel radius for Smooth Mach Dynamics
|
||||||
* :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` -
|
* :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` - logarithmic strain tensor for Smooth Mach Dynamics
|
||||||
* :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` -
|
* :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` - logarithmic strain rate for Smooth Mach Dynamics
|
||||||
* :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics
|
* :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics
|
||||||
* :doc:`smd/vol <compute_smd_vol>` - per-particle volumes and their sum in Smooth Mach Dynamics
|
* :doc:`smd/vol <compute_smd_vol>` - per-particle volumes and their sum in Smooth Mach Dynamics
|
||||||
* :doc:`snap <compute_sna_atom>` - gradients of SNAP energy and forces w.r.t. linear coefficients and related quantities for fitting SNAP potentials
|
* :doc:`snap <compute_sna_atom>` - gradients of SNAP energy and forces with respect to linear coefficients and related quantities for fitting SNAP potentials
|
||||||
* :doc:`sna/atom <compute_sna_atom>` - bispectrum components for each atom
|
* :doc:`sna/atom <compute_sna_atom>` - bispectrum components for each atom
|
||||||
* :doc:`sna/grid <compute_sna_atom>` - global array of bispectrum components on a regular grid
|
* :doc:`sna/grid <compute_sna_atom>` - global array of bispectrum components on a regular grid
|
||||||
* :doc:`sna/grid/local <compute_sna_atom>` - local array of bispectrum components on a regular grid
|
* :doc:`sna/grid/local <compute_sna_atom>` - local array of bispectrum components on a regular grid
|
||||||
@ -308,7 +308,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`temp/cs <compute_temp_cs>` - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other
|
* :doc:`temp/cs <compute_temp_cs>` - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other
|
||||||
* :doc:`temp/deform <compute_temp_deform>` - temperature excluding box deformation velocity
|
* :doc:`temp/deform <compute_temp_deform>` - temperature excluding box deformation velocity
|
||||||
* :doc:`temp/deform/eff <compute_temp_deform_eff>` - temperature excluding box deformation velocity in the electron force field model
|
* :doc:`temp/deform/eff <compute_temp_deform_eff>` - temperature excluding box deformation velocity in the electron force field model
|
||||||
* :doc:`temp/drude <compute_temp_drude>` - temperature of Core-Drude pairs
|
* :doc:`temp/drude <compute_temp_drude>` - temperature of Core--Drude pairs
|
||||||
* :doc:`temp/eff <compute_temp_eff>` - temperature of a group of nuclei and electrons in the electron force field model
|
* :doc:`temp/eff <compute_temp_eff>` - temperature of a group of nuclei and electrons in the electron force field model
|
||||||
* :doc:`temp/partial <compute_temp_partial>` - temperature excluding one or more dimensions of velocity
|
* :doc:`temp/partial <compute_temp_partial>` - temperature excluding one or more dimensions of velocity
|
||||||
* :doc:`temp/profile <compute_temp_profile>` - temperature excluding a binned velocity profile
|
* :doc:`temp/profile <compute_temp_profile>` - temperature excluding a binned velocity profile
|
||||||
@ -324,7 +324,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
|||||||
* :doc:`vcm/chunk <compute_vcm_chunk>` - velocity of center-of-mass for each chunk
|
* :doc:`vcm/chunk <compute_vcm_chunk>` - velocity of center-of-mass for each chunk
|
||||||
* :doc:`viscosity/cos <compute_viscosity_cos>` - velocity profile under cosine-shaped acceleration
|
* :doc:`viscosity/cos <compute_viscosity_cos>` - velocity profile under cosine-shaped acceleration
|
||||||
* :doc:`voronoi/atom <compute_voronoi_atom>` - Voronoi volume and neighbors for each atom
|
* :doc:`voronoi/atom <compute_voronoi_atom>` - Voronoi volume and neighbors for each atom
|
||||||
* :doc:`xrd <compute_xrd>` - x-ray diffraction intensity on a mesh of reciprocal lattice nodes
|
* :doc:`xrd <compute_xrd>` - X-ray diffraction intensity on a mesh of reciprocal lattice nodes
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -333,7 +333,9 @@ Restrictions
|
|||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`uncompute <uncompute>`, :doc:`compute_modify <compute_modify>`, :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/time <fix_ave_time>`, :doc:`fix ave/histo <fix_ave_histo>`
|
:doc:`uncompute <uncompute>`, :doc:`compute_modify <compute_modify>`,
|
||||||
|
:doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||||
|
:doc:`fix ave/histo <fix_ave_histo>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute ackland/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ackland/atom keyword/value
|
compute ID group-ID ackland/atom keyword/value
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*legacy* yes/no = use (\ *yes*\ ) or do not use (\ *no*\ ) legacy ackland algorithm implementation
|
*legacy* args = *yes* or *no* = use (\ *yes*\ ) or do not use (\ *no*\ ) legacy Ackland algorithm implementation
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute adf command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID adf Nbin itype1 jtype1 ktype1 Rjinner1 Rjouter1 Rkinner1 Rkouter1 ...
|
compute ID group-ID adf Nbin itype1 jtype1 ktype1 Rjinner1 Rjouter1 Rkinner1 Rkouter1 ...
|
||||||
|
|
||||||
@ -16,10 +16,10 @@ Syntax
|
|||||||
* itypeN = central atom type for Nth ADF histogram (see asterisk form below)
|
* itypeN = central atom type for Nth ADF histogram (see asterisk form below)
|
||||||
* jtypeN = J atom type for Nth ADF histogram (see asterisk form below)
|
* jtypeN = J atom type for Nth ADF histogram (see asterisk form below)
|
||||||
* ktypeN = K atom type for Nth ADF histogram (see asterisk form below)
|
* ktypeN = K atom type for Nth ADF histogram (see asterisk form below)
|
||||||
* RjinnerN = inner radius of J atom shell for Nth ADF histogram (distance units)
|
* RjinnerN = inner radius of J atom shell for Nth ADF histogram (distance units)
|
||||||
* RjouterN = outer radius of J atom shell for Nth ADF histogram (distance units)
|
* RjouterN = outer radius of J atom shell for Nth ADF histogram (distance units)
|
||||||
* RkinnerN = inner radius of K atom shell for Nth ADF histogram (distance units)
|
* RkinnerN = inner radius of K atom shell for Nth ADF histogram (distance units)
|
||||||
* RkouterN = outer radius of K atom shell for Nth ADF histogram (distance units)
|
* RkouterN = outer radius of K atom shell for Nth ADF histogram (distance units)
|
||||||
* zero or one keyword/value pairs may be appended
|
* zero or one keyword/value pairs may be appended
|
||||||
* keyword = *ordinate*
|
* keyword = *ordinate*
|
||||||
|
|
||||||
@ -177,8 +177,8 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array with the number of rows =
|
This compute calculates a global array with the number of rows =
|
||||||
*Nbins*, and the number of columns = 1 + 2\*Ntriples, where Ntriples is the
|
*Nbins* and the number of columns = :math:`1 + 2 \times` *Ntriples*, where *Ntriples*
|
||||||
number of I,J,K triples specified. The first column has the bin
|
is the number of I,J,K triples specified. The first column has the bin
|
||||||
coordinate (angle-related ordinate at midpoint of bin). Each subsequent column has
|
coordinate (angle-related ordinate at midpoint of bin). Each subsequent column has
|
||||||
the two ADF values for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ )
|
the two ADF values for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ )
|
||||||
interactions, as described above. These values can be used
|
interactions, as described above. These values can be used
|
||||||
@ -192,10 +192,10 @@ The first column of array values is the angle-related ordinate, either
|
|||||||
the angle in degrees or radians, or the cosine of the angle. Each
|
the angle in degrees or radians, or the cosine of the angle. Each
|
||||||
subsequent pair of columns gives the first and second kinds of ADF
|
subsequent pair of columns gives the first and second kinds of ADF
|
||||||
for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ ). The values
|
for a specific set of (\ *itypeN*,\ *jtypeN*,\ *ktypeN*\ ). The values
|
||||||
in the first ADF column are normalized numbers >= 0.0,
|
in the first ADF column are normalized numbers :math:`\ge 0.0`,
|
||||||
whose integral w.r.t. the ordinate is 1,
|
whose integral w.r.t. the ordinate is 1,
|
||||||
i.e. the first ADF is a normalized probability distribution.
|
i.e. the first ADF is a normalized probability distribution.
|
||||||
The values in the second ADF column are also numbers >= 0.0.
|
The values in the second ADF column are also numbers :math:`\ge 0.0`.
|
||||||
They are the cumulative density distribution of angles per atom.
|
They are the cumulative density distribution of angles per atom.
|
||||||
By definition, this ADF is monotonically increasing from zero to
|
By definition, this ADF is monotonically increasing from zero to
|
||||||
a maximum value equal to the average total number of
|
a maximum value equal to the average total number of
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute angle command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID angle
|
compute ID group-ID angle
|
||||||
|
|
||||||
@ -35,12 +35,12 @@ the hybrid sub-styles.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length N where N is the number of
|
This compute calculates a global vector of length *N*, where *N* is the number
|
||||||
sub_styles defined by the :doc:`angle_style hybrid <angle_style>` command,
|
of sub_styles defined by the :doc:`angle_style hybrid <angle_style>` command,
|
||||||
which can be accessed by indices 1-N. These values can be used by any command
|
which can be accessed by indices 1 through *N*. These values can be used by
|
||||||
that uses global scalar or vector values from a compute as input. See the
|
any command that uses global scalar or vector values from a compute as input.
|
||||||
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
||||||
options.
|
output options.
|
||||||
|
|
||||||
The vector values are "extensive" and will be in energy
|
The vector values are "extensive" and will be in energy
|
||||||
:doc:`units <units>`.
|
:doc:`units <units>`.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute angle/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID angle/local value1 value2 ... keyword args ...
|
compute ID group-ID angle/local value1 value2 ... keyword args ...
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ interactions. The number of datums generated, aggregated across all
|
|||||||
processors, equals the number of angles in the system, modified by the
|
processors, equals the number of angles in the system, modified by the
|
||||||
group parameter as explained below.
|
group parameter as explained below.
|
||||||
|
|
||||||
The value *theta* is the angle for the 3 atoms in the interaction.
|
The value *theta* is the angle for the three atoms in the interaction.
|
||||||
|
|
||||||
The value *eng* is the interaction energy for the angle.
|
The value *eng* is the interaction energy for the angle.
|
||||||
|
|
||||||
@ -65,8 +65,8 @@ Note that the value of theta for each angle which stored in the
|
|||||||
internal variable is in radians, not degrees.
|
internal variable is in radians, not degrees.
|
||||||
|
|
||||||
As an example, these commands can be added to the bench/in.rhodo
|
As an example, these commands can be added to the bench/in.rhodo
|
||||||
script to compute the cosine and cosine\^2 of every angle in the system
|
script to compute the cosine and cosine-squared of every angle in the
|
||||||
and output the statistics in various ways:
|
system and output the statistics in various ways:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -83,19 +83,20 @@ and output the statistics in various ways:
|
|||||||
|
|
||||||
fix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo
|
fix 10 all ave/histo 10 10 100 -1 1 20 c_2[3] mode vector file tmp.histo
|
||||||
|
|
||||||
The :doc:`dump local <dump>` command will output the energy, angle,
|
The :doc:`dump local <dump>` command will output the potential energy
|
||||||
cosine(angle), cosine\^2(angle) for every angle in the system. The
|
(:math:`\phi`), the angle (:math:`\theta`), :math:`\cos(\theta`), and
|
||||||
:doc:`thermo_style <thermo_style>` command will print the average of
|
:math:`\cos^2(\theta)` for every angle :math:`\theta` in the system.
|
||||||
those quantities via the :doc:`compute reduce <compute_reduce>` command
|
The :doc:`thermo_style <thermo_style>` command will print the
|
||||||
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
|
average of those quantities via the :doc:`compute reduce <compute_reduce>`
|
||||||
command will histogram the cosine(angle) values and write them to a
|
command with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
|
||||||
|
command will histogram the :math:`\cos(\theta)` values and write them to a
|
||||||
file.
|
file.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The local data stored by this command is generated by looping over all
|
The local data stored by this command is generated by looping over all
|
||||||
the atoms owned on a processor and their angles. An angle will only
|
the atoms owned on a processor and their angles. An angle will only
|
||||||
be included if all 3 atoms in the angle are in the specified compute
|
be included if all three atoms in the angle are in the specified compute
|
||||||
group. Any angles that have been broken (see the
|
group. Any angles that have been broken (see the
|
||||||
:doc:`angle_style <angle_style>` command) by setting their angle type to
|
:doc:`angle_style <angle_style>` command) by setting their angle type to
|
||||||
0 are not included. Angles that have been turned off (see the :doc:`fix shake <fix_shake>` or :doc:`delete_bonds <delete_bonds>` commands) by
|
0 are not included. Angles that have been turned off (see the :doc:`fix shake <fix_shake>` or :doc:`delete_bonds <delete_bonds>` commands) by
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute angmom/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID angmom/chunk chunkID
|
compute ID group-ID angmom/chunk chunkID
|
||||||
|
|
||||||
@ -72,13 +72,13 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array where the number of rows = the
|
This compute calculates a global array where the number of rows = the
|
||||||
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns =
|
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns = 3 for the three
|
||||||
3 for the 3 xyz components of the angular momentum for each chunk.
|
(*x*, *y*, *z*) components of the angular momentum for each chunk.
|
||||||
These values can be accessed by any command that uses global array
|
These values can be accessed by any command that uses global array
|
||||||
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The array values are "intensive". The array values will be in
|
The array values are "intensive." The array values will be in
|
||||||
mass-velocity-distance :doc:`units <units>`.
|
mass-velocity-distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -9,7 +9,7 @@ Accelerator Variants: *ave/sphere/atom/kk*
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ave/sphere/atom keyword values ...
|
compute ID group-ID ave/sphere/atom keyword values ...
|
||||||
|
|
||||||
@ -37,13 +37,13 @@ Description
|
|||||||
|
|
||||||
Define a computation that calculates the local mass density and
|
Define a computation that calculates the local mass density and
|
||||||
temperature for each atom based on its neighbors inside a spherical
|
temperature for each atom based on its neighbors inside a spherical
|
||||||
cutoff. If an atom has M neighbors, then its local mass density is
|
cutoff. If an atom has :math:`M` neighbors, then its local mass density is
|
||||||
calculated as the sum of its mass and its M neighbor masses, divided
|
calculated as the sum of its mass and its :math:`M` neighbor masses, divided
|
||||||
by the volume of the cutoff sphere (or circle in 2d). The local
|
by the volume of the cutoff sphere (or circle in 2d). The local
|
||||||
temperature of the atom is calculated as the temperature of the
|
temperature of the atom is calculated as the temperature of the
|
||||||
collection of M+1 atoms, after subtracting the center-of-mass velocity
|
collection of :math:`M+1` atoms, after subtracting the center-of-mass velocity
|
||||||
of the M+1 atoms from each of the M+1 atom's velocities. This is
|
of the :math:`M+1` atoms from each of the :math:`M+1` atom's velocities. This
|
||||||
effectively the thermal velocity of the neighborhood of the central
|
is effectively the thermal velocity of the neighborhood of the central
|
||||||
atom, similar to :doc:`compute temp/com <compute_temp_com>`.
|
atom, similar to :doc:`compute temp/com <compute_temp_com>`.
|
||||||
|
|
||||||
The optional keyword *cutoff* defines the distance cutoff used when
|
The optional keyword *cutoff* defines the distance cutoff used when
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute basal/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID basal/atom
|
compute ID group-ID basal/atom
|
||||||
|
|
||||||
@ -47,12 +47,12 @@ in examples/PACKAGES/basal.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a per-atom array with 3 columns, which can be
|
This compute calculates a per-atom array with three columns, which can be
|
||||||
accessed by indices 1-3 by any command that uses per-atom values from
|
accessed by indices 1--3 by any command that uses per-atom values from
|
||||||
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector values are unitless since the 3 columns represent
|
The per-atom vector values are unitless since the three columns represent
|
||||||
components of a unit vector.
|
components of a unit vector.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute body/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID body/local input1 input2 ...
|
compute ID group-ID body/local input1 input2 ...
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates properties of individual body
|
Define a computation that calculates properties of individual body
|
||||||
sub-particles. The number of datums generated, aggregated across all
|
sub-particles. The number of data generated, aggregated across all
|
||||||
processors, equals the number of body sub-particles plus the number of
|
processors, equals the number of body sub-particles plus the number of
|
||||||
non-body particles in the system, modified by the group parameter as
|
non-body particles in the system, modified by the group parameter as
|
||||||
explained below. See the :doc:`Howto body <Howto_body>` page for
|
explained below. See the :doc:`Howto body <Howto_body>` page for
|
||||||
@ -41,8 +41,8 @@ more details on using body particles.
|
|||||||
|
|
||||||
The local data stored by this command is generated by looping over all
|
The local data stored by this command is generated by looping over all
|
||||||
the atoms. An atom will only be included if it is in the group. If
|
the atoms. An atom will only be included if it is in the group. If
|
||||||
the atom is a body particle, then its N sub-particles will be looped
|
the atom is a body particle, then its :math:`N` sub-particles will be looped
|
||||||
over, and it will contribute N datums to the count of datums. If it
|
over, and it will contribute :math:`N` data to the count of data. If it
|
||||||
is not a body particle, it will contribute 1 datum.
|
is not a body particle, it will contribute 1 datum.
|
||||||
|
|
||||||
For both body particles and non-body particles, the *id* keyword
|
For both body particles and non-body particles, the *id* keyword
|
||||||
@ -64,8 +64,8 @@ by the :doc:`atom_style body <atom_style>`, determines how many fields
|
|||||||
exist and what they are. See the :doc:`Howto_body <Howto_body>` doc
|
exist and what they are. See the :doc:`Howto_body <Howto_body>` doc
|
||||||
page for details of the different styles.
|
page for details of the different styles.
|
||||||
|
|
||||||
Here is an example of how to output body information using the :doc:`dump local <dump>` command with this compute. If fields 1,2,3 for the
|
Here is an example of how to output body information using the :doc:`dump local <dump>` command with this compute. If fields 1, 2, and 3 for the
|
||||||
body sub-particles are x,y,z coordinates, then the dump file will be
|
body sub-particles are (*x*, *y*, *z*) coordinates, then the dump file will be
|
||||||
formatted similar to the output of a :doc:`dump atom or custom <dump>`
|
formatted similar to the output of a :doc:`dump atom or custom <dump>`
|
||||||
command.
|
command.
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a local vector or local array depending on the
|
This compute calculates a local vector or local array depending on the
|
||||||
number of keywords. The length of the vector or number of rows in the
|
number of keywords. The length of the vector or number of rows in the
|
||||||
array is the number of datums as described above. If a single keyword
|
array is the number of data as described above. If a single keyword
|
||||||
is specified, a local vector is produced. If two or more keywords are
|
is specified, a local vector is produced. If two or more keywords are
|
||||||
specified, a local array is produced where the number of columns = the
|
specified, a local array is produced where the number of columns = the
|
||||||
number of keywords. The vector or array can be accessed by any
|
number of keywords. The vector or array can be accessed by any
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute bond command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID bond
|
compute ID group-ID bond
|
||||||
|
|
||||||
@ -35,10 +35,13 @@ or more of the hybrid sub-styles.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length N where N is the
|
This compute calculates a global vector of length :math:`N`, where :math:`N`
|
||||||
number of sub_styles defined by the :doc:`bond_style hybrid <bond_style>` command, which can be accessed by indices 1-N.
|
is the number of sub_styles defined by the
|
||||||
|
:doc:`bond_style hybrid <bond_style>` command,
|
||||||
|
which can be accessed by indices 1 through :math:`N`.
|
||||||
These values can be used by any command that uses global scalar or
|
These values can be used by any command that uses global scalar or
|
||||||
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
vector values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The vector values are "extensive" and will be in energy
|
The vector values are "extensive" and will be in energy
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute bond/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID bond/local value1 value2 ... keyword args ...
|
compute ID group-ID bond/local value1 value2 ... keyword args ...
|
||||||
|
|
||||||
@ -35,8 +35,8 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*set* args = dist name
|
*set* args = *dist* name
|
||||||
dist = only currently allowed arg
|
*dist* = only currently allowed arg
|
||||||
name = name of variable to set with distance (dist)
|
name = name of variable to set with distance (dist)
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
@ -49,7 +49,7 @@ Examples
|
|||||||
|
|
||||||
compute 1 all bond/local dist fx fy fz
|
compute 1 all bond/local dist fx fy fz
|
||||||
|
|
||||||
compute 1 all angle/local dist v_distsq set dist d
|
compute 1 all bond/local dist v_distsq set dist d
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -82,32 +82,34 @@ relative to the center of mass (COM) velocity of the 2 atoms in the
|
|||||||
bond.
|
bond.
|
||||||
|
|
||||||
The value *engvib* is the vibrational kinetic energy of the two atoms
|
The value *engvib* is the vibrational kinetic energy of the two atoms
|
||||||
in the bond, which is simply 1/2 m1 v1\^2 + 1/2 m2 v2\^2, where v1 and
|
in the bond, which is simply :math:`\frac12 m_1 v_1^2 + \frac12 m_2 v_2^2,`
|
||||||
v2 are the magnitude of the velocity of the 2 atoms along the bond
|
where :math:`v_1` and :math:`v_2` are the magnitude of the velocity of the two
|
||||||
direction, after the COM velocity has been subtracted from each.
|
atoms along the bond direction, after the COM velocity has been subtracted from
|
||||||
|
|
||||||
The value *engrot* is the rotational kinetic energy of the two atoms
|
|
||||||
in the bond, which is simply 1/2 m1 v1\^2 + 1/2 m2 v2\^2, where v1 and
|
|
||||||
v2 are the magnitude of the velocity of the 2 atoms perpendicular to
|
|
||||||
the bond direction, after the COM velocity has been subtracted from
|
|
||||||
each.
|
each.
|
||||||
|
|
||||||
The value *engtrans* is the translational kinetic energy associated
|
The value *engrot* is the rotational kinetic energy of the two atoms
|
||||||
with the motion of the COM of the system itself, namely 1/2 (m1+m2)
|
in the bond, which is simply :math:`\frac12 m_1 v_1^2 + \frac12 m_2 v_2^2,`
|
||||||
Vcm\^2 where Vcm = magnitude of the velocity of the COM.
|
where :math:`v_1` and :math:`v_2` are the magnitude of the velocity of the two
|
||||||
|
atoms perpendicular to the bond direction, after the COM velocity has been
|
||||||
|
subtracted from each.
|
||||||
|
|
||||||
Note that these 3 kinetic energy terms are simply a partitioning of
|
The value *engtrans* is the translational kinetic energy associated
|
||||||
the summed kinetic energy of the 2 atoms themselves. I.e. total KE =
|
with the motion of the COM of the system itself, namely :math:`\frac12(m_1+m_2)
|
||||||
1/2 m1 v1\^2 + 1/2 m2 v2\^2 = engvib + engrot + engtrans, where v1,v2
|
V_{\mathrm{cm}}^2`, where `Vcm` = magnitude of the velocity of the COM.
|
||||||
are the magnitude of the velocities of the 2 atoms, without any
|
|
||||||
adjustment for the COM velocity.
|
Note that these three kinetic energy terms are simply a partitioning of
|
||||||
|
the summed kinetic energy of the two atoms themselves. That is, the total
|
||||||
|
kinetic energy is
|
||||||
|
:math:`\frac12 m_1 v_1^2 + \frac12 m_2 v_2^2` = engvib + engrot + engtrans,
|
||||||
|
where :math:`v_1` and :math:`v_2` are the magnitude of the velocities of the
|
||||||
|
two atoms, without any adjustment for the COM velocity.
|
||||||
|
|
||||||
The value *omega* is the magnitude of the angular velocity of the
|
The value *omega* is the magnitude of the angular velocity of the
|
||||||
two atoms around their COM position.
|
two atoms around their COM position.
|
||||||
|
|
||||||
The value *velvib* is the magnitude of the relative velocity of the
|
The value *velvib* is the magnitude of the relative velocity of the
|
||||||
two atoms in the bond towards each other. A negative value means the
|
two atoms in the bond towards each other. A negative value means the
|
||||||
2 atoms are moving toward each other; a positive value means they are
|
two atoms are moving toward each other; a positive value means they are
|
||||||
moving apart.
|
moving apart.
|
||||||
|
|
||||||
The value *v_name* can be used together with the *set* keyword to
|
The value *v_name* can be used together with the *set* keyword to
|
||||||
@ -121,7 +123,7 @@ directly. The *set* keyword is used to identify the name of this
|
|||||||
other variable associated with theta.
|
other variable associated with theta.
|
||||||
|
|
||||||
As an example, these commands can be added to the bench/in.rhodo
|
As an example, these commands can be added to the bench/in.rhodo
|
||||||
script to compute the distance\^2 of every bond in the system and
|
script to compute the length\ :math:`^2` of every bond in the system and
|
||||||
output the statistics in various ways:
|
output the statistics in various ways:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
@ -138,12 +140,12 @@ output the statistics in various ways:
|
|||||||
|
|
||||||
fix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo
|
fix 10 all ave/histo 10 10 100 0 6 20 c_2[3] mode vector file tmp.histo
|
||||||
|
|
||||||
The :doc:`dump local <dump>` command will output the energy, distance,
|
The :doc:`dump local <dump>` command will output the energy, length,
|
||||||
distance\^2 for every bond in the system. The
|
and length\ :math:`^2` for every bond in the system. The
|
||||||
:doc:`thermo_style <thermo_style>` command will print the average of
|
:doc:`thermo_style <thermo_style>` command will print the average of
|
||||||
those quantities via the :doc:`compute reduce <compute_reduce>` command
|
those quantities via the :doc:`compute reduce <compute_reduce>` command
|
||||||
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
|
with thermo output, and the :doc:`fix ave/histo <fix_ave_histo>`
|
||||||
command will histogram the distance\^2 values and write them to a file.
|
command will histogram the length\ :math:`^2` values and write them to a file.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -6,20 +6,26 @@ compute born/matrix command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID born/matrix keyword value ...
|
compute ID group-ID born/matrix keyword value ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* born/matrix = style name of this compute command
|
* born/matrix = style name of this compute command
|
||||||
* zero or more keyword/value pairs may be appended
|
* zero or more keywords or keyword/value pairs may be appended
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
keyword = *numdiff*
|
keyword = *numdiff* or *pair* or *bond* or *angle* or *dihedral* or *improper*
|
||||||
*numdiff* values = delta virial-ID
|
*numdiff* values = delta virial-ID
|
||||||
delta = magnitude of strain (dimensionless)
|
delta = magnitude of strain (dimensionless)
|
||||||
virial-ID = ID of pressure compute for virial (string)
|
virial-ID = ID of pressure compute for virial (string)
|
||||||
|
(*numdiff* cannot be used with any other keyword)
|
||||||
|
*pair* = compute pair-wise contributions
|
||||||
|
*bond* = compute bonding contributions
|
||||||
|
*angle* = compute angle contributions
|
||||||
|
*dihedral* = compute dihedral contributions
|
||||||
|
*improper* = compute improper contributions
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -36,8 +42,8 @@ Description
|
|||||||
.. versionadded:: 4May2022
|
.. versionadded:: 4May2022
|
||||||
|
|
||||||
Define a compute that calculates
|
Define a compute that calculates
|
||||||
:math:`\frac{\partial{}^2U}{\partial\varepsilon_{i}\partial\varepsilon_{j}}` the
|
:math:`\frac{\partial{}^2U}{\partial\varepsilon_{i}\partial\varepsilon_{j}},` the
|
||||||
second derivatives of the potential energy :math:`U` w.r.t. strain
|
second derivatives of the potential energy :math:`U` with respect to the strain
|
||||||
tensor :math:`\varepsilon` elements. These values are related to:
|
tensor :math:`\varepsilon` elements. These values are related to:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
@ -69,14 +75,14 @@ whose 21 independent elements are output in this order:
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\begin{matrix}
|
\begin{bmatrix}
|
||||||
C_{1} & C_{7} & C_{8} & C_{9} & C_{10} & C_{11} \\
|
C_{1} & C_{7} & C_{8} & C_{9} & C_{10} & C_{11} \\
|
||||||
C_{7} & C_{2} & C_{12} & C_{13} & C_{14} & C_{15} \\
|
C_{7} & C_{2} & C_{12} & C_{13} & C_{14} & C_{15} \\
|
||||||
\vdots & C_{12} & C_{3} & C_{16} & C_{17} & C_{18} \\
|
\vdots & C_{12} & C_{3} & C_{16} & C_{17} & C_{18} \\
|
||||||
\vdots & C_{13} & C_{16} & C_{4} & C_{19} & C_{20} \\
|
\vdots & C_{13} & C_{16} & C_{4} & C_{19} & C_{20} \\
|
||||||
\vdots & \vdots & \vdots & C_{19} & C_{5} & C_{21} \\
|
\vdots & \vdots & \vdots & C_{19} & C_{5} & C_{21} \\
|
||||||
\vdots & \vdots & \vdots & \vdots & C_{21} & C_{6}
|
\vdots & \vdots & \vdots & \vdots & C_{21} & C_{6}
|
||||||
\end{matrix}
|
\end{bmatrix}
|
||||||
|
|
||||||
in this matrix the indices of :math:`C_{k}` value are the corresponding element
|
in this matrix the indices of :math:`C_{k}` value are the corresponding element
|
||||||
:math:`k` in the global vector output by this compute. Each term comes from the sum
|
:math:`k` in the global vector output by this compute. Each term comes from the sum
|
||||||
@ -169,14 +175,14 @@ requiring that it use the virial keyword e.g.
|
|||||||
**Output info:**
|
**Output info:**
|
||||||
|
|
||||||
This compute calculates a global vector with 21 values that are
|
This compute calculates a global vector with 21 values that are
|
||||||
the second derivatives of the potential energy w.r.t. strain.
|
the second derivatives of the potential energy with respect to strain.
|
||||||
The values are in energy units.
|
The values are in energy units.
|
||||||
The values are ordered as explained above. These values can be used
|
The values are ordered as explained above. These values can be used
|
||||||
by any command that uses global values from a compute as input. See
|
by any command that uses global values from a compute as input. See
|
||||||
the :doc:`Howto output <Howto_output>` doc page for an overview of
|
the :doc:`Howto output <Howto_output>` doc page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The array values calculated by this compute are all "extensive".
|
The array values calculated by this compute are all "extensive."
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -188,7 +194,7 @@ the :doc:`Build package <Build_package>` page for more info.
|
|||||||
|
|
||||||
The Born term can be decomposed as a product of two terms. The first one is a
|
The Born term can be decomposed as a product of two terms. The first one is a
|
||||||
general term which depends on the configuration. The second one is specific to
|
general term which depends on the configuration. The second one is specific to
|
||||||
every interaction composing your force field (non-bonded, bonds, angle...).
|
every interaction composing your force field (non-bonded, bonds, angle, ...).
|
||||||
Currently not all LAMMPS interaction styles implement the *born_matrix* method
|
Currently not all LAMMPS interaction styles implement the *born_matrix* method
|
||||||
giving first and second order derivatives and LAMMPS will exit with an error if
|
giving first and second order derivatives and LAMMPS will exit with an error if
|
||||||
this compute is used with such interactions unless the *numdiff* option is
|
this compute is used with such interactions unless the *numdiff* option is
|
||||||
|
|||||||
@ -6,17 +6,17 @@ compute centro/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID centro/atom lattice keyword value ...
|
compute ID group-ID centro/atom lattice keyword value ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
centro/atom = style name of this compute command
|
* centro/atom = style name of this compute command
|
||||||
lattice = *fcc* or *bcc* or N = # of neighbors per atom to include
|
* lattice = *fcc* or *bcc* or N = # of neighbors per atom to include
|
||||||
* zero or more keyword/value pairs may be appended
|
* zero or more keyword/value pairs may be appended
|
||||||
* keyword = *axes*
|
* keyword = *axes*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*axes* value = *no* or *yes*
|
*axes* value = *no* or *yes*
|
||||||
*no* = do not calculate 3 symmetry axes
|
*no* = do not calculate 3 symmetry axes
|
||||||
@ -83,12 +83,13 @@ atoms with smallest contributions to the centrosymmetry parameter,
|
|||||||
i.e. the two most symmetric pairs of atoms. The third vector is
|
i.e. the two most symmetric pairs of atoms. The third vector is
|
||||||
normal to the first two by the right-hand rule. All three vectors are
|
normal to the first two by the right-hand rule. All three vectors are
|
||||||
normalized to unit length. For FCC crystals, the first two vectors
|
normalized to unit length. For FCC crystals, the first two vectors
|
||||||
will lie along a <110> direction, while the third vector will lie
|
will lie along a :math:`\langle110\rangle` direction, while the third vector
|
||||||
along either a <100> or <111> direction. For HCP crystals, the first
|
will lie along either a :math:`\langle100\rangle` or :math:`\langle111\rangle`
|
||||||
two vectors will lie along <1000> directions, while the third vector
|
direction. For HCP crystals, the first two vectors will lie along
|
||||||
will lie along <0001>. This provides a simple way to measure local
|
:math:`\langle1000\rangle` directions, while the third vector
|
||||||
orientation in HCP structures. In general, the *axes* keyword can be
|
will lie along :math:`\langle0001\rangle`. This provides a simple way to
|
||||||
used to estimate the orientation of symmetry axes in the neighborhood
|
measure local orientation in HCP structures. In general, the *axes* keyword
|
||||||
|
can be used to estimate the orientation of symmetry axes in the neighborhood
|
||||||
of any atom.
|
of any atom.
|
||||||
|
|
||||||
Only atoms within the cutoff of the pairwise neighbor list are
|
Only atoms within the cutoff of the pairwise neighbor list are
|
||||||
@ -96,7 +97,7 @@ considered as possible neighbors. Atoms not in the compute group are
|
|||||||
included in the :math:`N` neighbors used in this calculation.
|
included in the :math:`N` neighbors used in this calculation.
|
||||||
|
|
||||||
The neighbor list needed to compute this quantity is constructed each
|
The neighbor list needed to compute this quantity is constructed each
|
||||||
time the calculation is performed (e.g. each time a snapshot of atoms
|
time the calculation is performed (e.g., each time a snapshot of atoms
|
||||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||||
too frequently or to have multiple compute/dump commands, each with a
|
too frequently or to have multiple compute/dump commands, each with a
|
||||||
*centro/atom* style.
|
*centro/atom* style.
|
||||||
@ -111,11 +112,11 @@ options.
|
|||||||
|
|
||||||
If the *axes* keyword setting is *yes*, then a per-atom array is
|
If the *axes* keyword setting is *yes*, then a per-atom array is
|
||||||
calculated. The first column is the centrosymmetry parameter. The
|
calculated. The first column is the centrosymmetry parameter. The
|
||||||
next three columns are the x, y, and z components of the first
|
next three columns are the *x*, *y*, and *z* components of the first
|
||||||
symmetry axis, followed by the second, and third symmetry axes in
|
symmetry axis, followed by the second, and third symmetry axes in
|
||||||
columns 5-7 and 8-10.
|
columns 5--7 and 8--10.
|
||||||
|
|
||||||
The centrosymmetry values are unitless values >= 0.0. Their magnitude
|
The centrosymmetry values are unitless values :math:`\ge 0.0`. Their magnitude
|
||||||
depends on the lattice style due to the number of contributing neighbor
|
depends on the lattice style due to the number of contributing neighbor
|
||||||
pairs in the summation in the formula above. And it depends on the
|
pairs in the summation in the formula above. And it depends on the
|
||||||
local defects surrounding the central atom, as described above. For
|
local defects surrounding the central atom, as described above. For
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute chunk/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID chunk/atom style args keyword values ...
|
compute ID group-ID chunk/atom style args keyword values ...
|
||||||
|
|
||||||
@ -150,14 +150,14 @@ The *binning* styles perform a spatial binning of atoms, and assign an
|
|||||||
atom the chunk ID corresponding to the bin number it is in. *Nchunk*
|
atom the chunk ID corresponding to the bin number it is in. *Nchunk*
|
||||||
is set to the number of bins, which can change if the simulation box
|
is set to the number of bins, which can change if the simulation box
|
||||||
size changes. This also depends on the setting of the *units*
|
size changes. This also depends on the setting of the *units*
|
||||||
keyword; e.g. for *reduced* units the number of chunks may not change
|
keyword (e.g., for *reduced* units the number of chunks may not change
|
||||||
even if the box size does.
|
even if the box size does).
|
||||||
|
|
||||||
The *bin/1d*, *bin/2d*, and *bin/3d* styles define bins as 1d layers
|
The *bin/1d*, *bin/2d*, and *bin/3d* styles define bins as 1d layers
|
||||||
(slabs), 2d pencils, or 3d boxes. The *dim*, *origin*, and *delta*
|
(slabs), 2d pencils, or 3d boxes. The *dim*, *origin*, and *delta*
|
||||||
settings are specified 1, 2, or 3 times. For 2d or 3d bins, there is
|
settings are specified 1, 2, or 3 times. For 2d or 3d bins, there is
|
||||||
no restriction on specifying dim = x before dim = y or z, or dim = y
|
no restriction on specifying dim = *x* before dim = *y* or *z*, or dim = *y*
|
||||||
before dim = z. Bins in a particular *dim* have a bin size in that
|
before dim = *z*. Bins in a particular *dim* have a bin size in that
|
||||||
dimension given by *delta*\ . In each dimension, bins are defined
|
dimension given by *delta*\ . In each dimension, bins are defined
|
||||||
relative to a specified *origin*, which may be the lower/upper edge of
|
relative to a specified *origin*, which may be the lower/upper edge of
|
||||||
the simulation box (in that dimension), or its center point, or a
|
the simulation box (in that dimension), or its center point, or a
|
||||||
@ -170,10 +170,11 @@ boxes aligned with the xyz coordinate axes. For triclinic
|
|||||||
(non-orthogonal) simulation boxes, the bin faces are parallel to the
|
(non-orthogonal) simulation boxes, the bin faces are parallel to the
|
||||||
tilted faces of the simulation box. See the :doc:`Howto triclinic <Howto_triclinic>` page for a discussion of the
|
tilted faces of the simulation box. See the :doc:`Howto triclinic <Howto_triclinic>` page for a discussion of the
|
||||||
geometry of triclinic boxes in LAMMPS. As described there, a tilted
|
geometry of triclinic boxes in LAMMPS. As described there, a tilted
|
||||||
simulation box has edge vectors a,b,c. In that nomenclature, bins in
|
simulation box has edge vectors :math:`\vec a`, :math:`\vec b`, and
|
||||||
the x dimension have faces with normals in the "b" cross "c"
|
:math:`\vec c`. In that nomenclature, bins in
|
||||||
direction. Bins in y have faces normal to the "a" cross "c"
|
the *x* dimension have faces with normals in the :math:`\vec b \times \vec c`
|
||||||
direction. And bins in z have faces normal to the "a" cross "b"
|
direction, bins in *y* have faces normal to the :math:`\vec a \times \vec c`
|
||||||
|
direction, and bins in *z* have faces normal to the :math:`\vec a \times \vec b`
|
||||||
direction. Note that in order to define the size and position of
|
direction. Note that in order to define the size and position of
|
||||||
these bins in an unambiguous fashion, the *units* option must be set
|
these bins in an unambiguous fashion, the *units* option must be set
|
||||||
to *reduced* when using a triclinic simulation box, as noted below.
|
to *reduced* when using a triclinic simulation box, as noted below.
|
||||||
@ -181,46 +182,46 @@ to *reduced* when using a triclinic simulation box, as noted below.
|
|||||||
The meaning of *origin* and *delta* for triclinic boxes is as follows.
|
The meaning of *origin* and *delta* for triclinic boxes is as follows.
|
||||||
Consider a triclinic box with bins that are 1d layers or slabs in the
|
Consider a triclinic box with bins that are 1d layers or slabs in the
|
||||||
x dimension. No matter how the box is tilted, an *origin* of 0.0
|
x dimension. No matter how the box is tilted, an *origin* of 0.0
|
||||||
means start layers at the lower "b" cross "c" plane of the simulation
|
means start layers at the lower :math:`\vec b \times \vec c` plane of the
|
||||||
box and an *origin* of 1.0 means to start layers at the upper "b"
|
simulation box and an *origin* of 1.0 means to start layers at the upper
|
||||||
cross "c" face of the box. A *delta* value of 0.1 in *reduced* units
|
:math:`\vec b \times \vec c` face of the box. A *delta* value of 0.1 in
|
||||||
means there will be 10 layers from 0.0 to 1.0, regardless of the
|
*reduced* units means there will be 10 layers from 0.0 to 1.0, regardless of
|
||||||
current size or shape of the simulation box.
|
the current size or shape of the simulation box.
|
||||||
|
|
||||||
The *bin/sphere* style defines a set of spherical shell bins around
|
The *bin/sphere* style defines a set of spherical shell bins around
|
||||||
the origin (\ *xorig*,\ *yorig*,\ *zorig*\ ), using *nsbin* bins with radii
|
the origin (\ *xorig*,\ *yorig*,\ *zorig*\ ), using *nsbin* bins with radii
|
||||||
equally spaced between *srmin* and *srmax*\ . This is effectively a 1d
|
equally spaced between *srmin* and *srmax*\ . This is effectively a 1d
|
||||||
vector of bins. For example, if *srmin* = 1.0 and *srmax* = 10.0 and
|
vector of bins. For example, if *srmin* = 1.0 and *srmax* = 10.0 and
|
||||||
*nsbin* = 9, then the first bin spans 1.0 < r < 2.0, and the last bin
|
*nsbin* = 9, then the first bin spans :math:`1.0 < r < 2.0`, and the last bin
|
||||||
spans 9.0 < r 10.0. The geometry of the bins is the same whether the
|
spans :math:`9.0 < r < 10.0`. The geometry of the bins is the same whether the
|
||||||
simulation box is orthogonal or triclinic; i.e. the spherical shells
|
simulation box is orthogonal or triclinic (i.e., the spherical shells
|
||||||
are not tilted or scaled differently in different dimensions to
|
are not tilted or scaled differently in different dimensions to
|
||||||
transform them into ellipsoidal shells.
|
transform them into ellipsoidal shells).
|
||||||
|
|
||||||
The *bin/cylinder* style defines bins for a cylinder oriented along
|
The *bin/cylinder* style defines bins for a cylinder oriented along
|
||||||
the axis *dim* with the axis coordinates in the other two radial
|
the axis *dim* with the axis coordinates in the other two radial
|
||||||
dimensions at (\ *c1*,\ *c2*\ ). For dim = x, c1/c2 = y/z; for dim = y,
|
dimensions at (\ *c1*,\ *c2*\ ). For dim = *x*, :math:`c_1/c_2 = y/z`;
|
||||||
c1/c2 = x/z; for dim = z, c1/c2 = x/y. This is effectively a 2d array
|
for dim = *y*, :math:`c_1/c_2 = x/z`; for dim = *z*,
|
||||||
of bins. The first dimension is along the cylinder axis, the second
|
:math:`c_1/c_2 = x/y`. This is effectively a 2d array of bins. The first
|
||||||
dimension is radially outward from the cylinder axis. The bin size
|
dimension is along the cylinder axis, the second dimension is radially outward
|
||||||
and positions along the cylinder axis are specified by the *origin*
|
from the cylinder axis. The bin size and positions along the cylinder axis are
|
||||||
and *delta* values, the same as for the *bin/1d*, *bin/2d*, and
|
specified by the *origin* and *delta* values, the same as for the *bin/1d*,
|
||||||
*bin/3d* styles. There are *ncbin* concentric circle bins in the
|
*bin/2d*, and *bin/3d* styles. There are *ncbin* concentric circle bins in the
|
||||||
radial direction from the cylinder axis with radii equally spaced
|
radial direction from the cylinder axis with radii equally spaced
|
||||||
between *crmin* and *crmax*\ . For example, if *crmin* = 1.0 and
|
between *crmin* and *crmax*\ . For example, if *crmin* = 1.0 and
|
||||||
*crmax* = 10.0 and *ncbin* = 9, then the first bin spans 1.0 < r <
|
*crmax* = 10.0 and *ncbin* = 9, then the first bin spans :math:`1.0 < r < 2.0`
|
||||||
2.0, and the last bin spans 9.0 < r 10.0. The geometry of the bins in
|
and the last bin spans :math:`9.0 < r < 10.0`. The geometry of the bins in
|
||||||
the radial dimensions is the same whether the simulation box is
|
the radial dimensions is the same whether the simulation box is
|
||||||
orthogonal or triclinic; i.e. the concentric circles are not tilted or
|
orthogonal or triclinic (i.e., the concentric circles are not tilted or
|
||||||
scaled differently in the two different dimensions to transform them
|
scaled differently in the two different dimensions to transform them
|
||||||
into ellipses.
|
into ellipses).
|
||||||
|
|
||||||
The created bins (and hence the chunk IDs) are numbered consecutively
|
The created bins (and hence the chunk IDs) are numbered consecutively
|
||||||
from 1 to the number of bins = *Nchunk*\ . For *bin2d* and *bin3d*, the
|
from 1 to the number of bins = *Nchunk*\ . For *bin2d* and *bin3d*, the
|
||||||
numbering varies most rapidly in the first dimension (which could be
|
numbering varies most rapidly in the first dimension (which could be
|
||||||
x, y, or z), next rapidly in the second dimension, and most slowly in the
|
*x*, *y*, or *z*), next rapidly in the second dimension, and most slowly in the
|
||||||
third dimension. For *bin/sphere*, the bin with smallest radii is chunk
|
third dimension. For *bin/sphere*, the bin with smallest radii is chunk
|
||||||
1 and the bni with largest radii is chunk Nchunk = *ncbin*\ . For
|
1 and the bin with largest radii is chunk Nchunk = *ncbin*\ . For
|
||||||
*bin/cylinder*, the numbering varies most rapidly in the dimension
|
*bin/cylinder*, the numbering varies most rapidly in the dimension
|
||||||
along the cylinder axis and most slowly in the radial direction.
|
along the cylinder axis and most slowly in the radial direction.
|
||||||
|
|
||||||
@ -236,8 +237,8 @@ assigned to the atom.
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
The *type* style uses the atom type as the chunk ID. *Nchunk* is set
|
The *type* style uses the atom type as the chunk ID. *Nchunk* is set
|
||||||
to the number of atom types defined for the simulation, e.g. via the
|
to the number of atom types defined for the simulation (e.g., via the
|
||||||
:doc:`create_box <create_box>` or :doc:`read_data <read_data>` commands.
|
:doc:`create_box <create_box>` or :doc:`read_data <read_data>` commands).
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -264,8 +265,8 @@ on a quantity calculated and stored by a compute, fix, or variable.
|
|||||||
In each case, it must be a per-atom quantity. In each case the
|
In each case, it must be a per-atom quantity. In each case the
|
||||||
referenced floating point values are converted to an integer chunk ID
|
referenced floating point values are converted to an integer chunk ID
|
||||||
as follows. The floating point value is truncated (rounded down) to
|
as follows. The floating point value is truncated (rounded down) to
|
||||||
an integer value. If the integer value is <= 0, then a chunk ID of 0
|
an integer value. If the integer value is :math:`\le 0`, then a chunk ID of 0
|
||||||
is assigned to the atom. If the integer value is > 0, it becomes the
|
is assigned to the atom. If the integer value is :math:`> 0`, it becomes the
|
||||||
chunk ID to the atom. *Nchunk* is set to the largest chunk ID. Note
|
chunk ID to the atom. *Nchunk* is set to the largest chunk ID. Note
|
||||||
that this excludes atoms which are not in the specified group or
|
that this excludes atoms which are not in the specified group or
|
||||||
optional region.
|
optional region.
|
||||||
@ -362,7 +363,7 @@ If *limit* is set to *Nc* = 0, then no limit is imposed on *Nchunk*,
|
|||||||
though the *compress* keyword can still be used to reduce *Nchunk*, as
|
though the *compress* keyword can still be used to reduce *Nchunk*, as
|
||||||
described below.
|
described below.
|
||||||
|
|
||||||
If *Nc* > 0, then the effect of the *limit* keyword depends on whether
|
If *Nc* :math:`>` 0, then the effect of the *limit* keyword depends on whether
|
||||||
the *compress* keyword is also used with a setting of *yes*, and
|
the *compress* keyword is also used with a setting of *yes*, and
|
||||||
whether the *compress* keyword is specified before the *limit* keyword
|
whether the *compress* keyword is specified before the *limit* keyword
|
||||||
or after.
|
or after.
|
||||||
@ -374,7 +375,7 @@ First, here is what occurs if *compress yes* is not set. If *limit*
|
|||||||
is set to *Nc max*, then *Nchunk* is reset to the smaller of *Nchunk*
|
is set to *Nc max*, then *Nchunk* is reset to the smaller of *Nchunk*
|
||||||
and *Nc*\ . If *limit* is set to *Nc exact*, then *Nchunk* is reset to
|
and *Nc*\ . If *limit* is set to *Nc exact*, then *Nchunk* is reset to
|
||||||
*Nc*, whether the original *Nchunk* was larger or smaller than *Nc*\ .
|
*Nc*, whether the original *Nchunk* was larger or smaller than *Nc*\ .
|
||||||
If *Nchunk* shrank due to the *limit* setting, then atom chunk IDs >
|
If *Nchunk* shrank due to the *limit* setting, then atom chunk IDs :math:`>`
|
||||||
*Nchunk* will be reset to 0 or *Nchunk*, depending on the setting of
|
*Nchunk* will be reset to 0 or *Nchunk*, depending on the setting of
|
||||||
the *discard* keyword. If *Nchunk* grew, there will simply be some
|
the *discard* keyword. If *Nchunk* grew, there will simply be some
|
||||||
chunks with no atoms assigned to them.
|
chunks with no atoms assigned to them.
|
||||||
@ -384,22 +385,22 @@ If *compress yes* is set, and the *compress* keyword comes before the
|
|||||||
described below, which resets *Nchunk*\ . The *limit* keyword is then
|
described below, which resets *Nchunk*\ . The *limit* keyword is then
|
||||||
applied to the new *Nchunk* value, exactly as described in the
|
applied to the new *Nchunk* value, exactly as described in the
|
||||||
preceding paragraph. Note that in this case, all atoms will end up
|
preceding paragraph. Note that in this case, all atoms will end up
|
||||||
with chunk IDs <= *Nc*, but their original values (e.g. molecule ID or
|
with chunk IDs :math:`\le` *Nc*, but their original values (e.g., molecule ID
|
||||||
compute/fix/variable) may have been > *Nc*, because of the compression
|
or compute/fix/variable) may have been :math:`>` *Nc*, because of the
|
||||||
operation.
|
compression operation.
|
||||||
|
|
||||||
If *compress yes* is set, and the *compress* keyword comes after the
|
If *compress yes* is set, and the *compress* keyword comes after the
|
||||||
*limit* keyword, then the *limit* value of *Nc* is applied first to
|
*limit* keyword, then the *limit* value of *Nc* is applied first to
|
||||||
the uncompressed value of *Nchunk*, but only if *Nc* < *Nchunk*
|
the uncompressed value of *Nchunk*, but only if *Nc* :math:`<` *Nchunk*
|
||||||
(whether *Nc max* or *Nc exact* is used). This effectively means all
|
(whether *Nc max* or *Nc exact* is used). This effectively means all
|
||||||
atoms with chunk IDs > *Nc* have their chunk IDs reset to 0 or *Nc*,
|
atoms with chunk IDs :math:`>` *Nc* have their chunk IDs reset to 0 or *Nc*,
|
||||||
depending on the setting of the *discard* keyword. The compression
|
depending on the setting of the *discard* keyword. The compression
|
||||||
operation is then performed, which may shrink *Nchunk* further. If
|
operation is then performed, which may shrink *Nchunk* further. If
|
||||||
the new *Nchunk* < *Nc* and *limit* = *Nc exact* is specified, then
|
the new *Nchunk* :math:`<` *Nc* and *limit* = *Nc exact* is specified, then
|
||||||
*Nchunk* is reset to *Nc*, which results in extra chunks with no atoms
|
*Nchunk* is reset to *Nc*, which results in extra chunks with no atoms
|
||||||
assigned to them. Note that in this case, all atoms will end up with
|
assigned to them. Note that in this case, all atoms will end up with
|
||||||
chunk IDs <= *Nc*, and their original values (e.g. molecule ID or
|
chunk IDs :math:`\le` *Nc*, and their original values (e.g., molecule ID or
|
||||||
compute/fix/variable value) will also have been <= *Nc*\ .
|
compute/fix/variable value) will also have been :math:`\le` *Nc*\ .
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -601,7 +602,8 @@ be used. For non-orthogonal (triclinic) simulation boxes, only the
|
|||||||
*reduced* option may be used.
|
*reduced* option may be used.
|
||||||
|
|
||||||
A *box* value selects standard distance units as defined by the
|
A *box* value selects standard distance units as defined by the
|
||||||
:doc:`units <units>` command, e.g. Angstroms for units = real or metal.
|
:doc:`units <units>` command (e.g., :math:`\mathrm{\mathring A}`
|
||||||
|
for units = *real* or *metal*).
|
||||||
A *lattice* value means the distance units are in lattice spacings.
|
A *lattice* value means the distance units are in lattice spacings.
|
||||||
The :doc:`lattice <lattice>` command must have been previously used to
|
The :doc:`lattice <lattice>` command must have been previously used to
|
||||||
define the lattice spacing. A *reduced* value means normalized
|
define the lattice spacing. A *reduced* value means normalized
|
||||||
@ -615,8 +617,8 @@ scaled by the lattice spacing or reduced value of the *x* dimension.
|
|||||||
|
|
||||||
Note that for the *bin/cylinder* style, the radii *crmin* and *crmax*
|
Note that for the *bin/cylinder* style, the radii *crmin* and *crmax*
|
||||||
are scaled by the lattice spacing or reduced value of the first
|
are scaled by the lattice spacing or reduced value of the first
|
||||||
dimension perpendicular to the cylinder axis. E.g. y for an x-axis
|
dimension perpendicular to the cylinder axis (e.g., *y* for an *x*-axis
|
||||||
cylinder, x for a y-axis cylinder, and x for a z-axis cylinder.
|
cylinder, *x* for a *y*-axis cylinder, and *x* for a *z*-axis cylinder).
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute chunk/spread/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID chunk/spread/atom chunkID input1 input2 ...
|
compute ID group-ID chunk/spread/atom chunkID input1 input2 ...
|
||||||
|
|
||||||
@ -18,10 +18,10 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
c_ID = global vector calculated by a compute with ID
|
c_ID = global vector calculated by a compute with ID
|
||||||
c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below)
|
c_ID[I] = Ith column of global array calculated by a compute with ID, I can include wildcard (see below)
|
||||||
f_ID = global vector calculated by a fix with ID
|
f_ID = global vector calculated by a fix with ID
|
||||||
f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below)
|
f_ID[I] = Ith column of global array calculated by a fix with ID, I can include wildcard (see below)
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|||||||
@ -14,7 +14,7 @@ compute aggregate/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID cluster/atom cutoff
|
compute ID group-ID cluster/atom cutoff
|
||||||
compute ID group-ID fragment/atom keyword value ...
|
compute ID group-ID fragment/atom keyword value ...
|
||||||
@ -69,9 +69,9 @@ fragments or not, based on the *yes* or *no* setting. If the setting
|
|||||||
is *no* (the default), their fragment IDs are set to 0.
|
is *no* (the default), their fragment IDs are set to 0.
|
||||||
|
|
||||||
An aggregate is defined by combining the rules for clusters and
|
An aggregate is defined by combining the rules for clusters and
|
||||||
fragments, i.e. a set of atoms, where each of it is within the cutoff
|
fragments (i.e., a set of atoms, where each of them is within the cutoff
|
||||||
distance from one or more atoms within a fragment that is part of
|
distance from one or more atoms within a fragment that is part of
|
||||||
the same cluster. This measure can be used to track molecular assemblies
|
the same cluster). This measure can be used to track molecular assemblies
|
||||||
like micelles.
|
like micelles.
|
||||||
|
|
||||||
For computes *cluster/atom* and *aggregate/atom* a neighbor list
|
For computes *cluster/atom* and *aggregate/atom* a neighbor list
|
||||||
@ -92,9 +92,9 @@ style computes.
|
|||||||
does not apply when using long-range coulomb (\ *coul/long*, *coul/msm*,
|
does not apply when using long-range coulomb (\ *coul/long*, *coul/msm*,
|
||||||
*coul/wolf* or similar. One way to get around this would be to set
|
*coul/wolf* or similar. One way to get around this would be to set
|
||||||
special_bond scaling factors to very tiny numbers that are not exactly
|
special_bond scaling factors to very tiny numbers that are not exactly
|
||||||
zero (e.g. 1.0e-50). Another workaround is to write a dump file, and
|
zero (e.g., :math:`1.0 \times 10^{-50}`). Another workaround is to write a
|
||||||
use the :doc:`rerun <rerun>` command to compute the clusters for
|
dump file and use the :doc:`rerun <rerun>` command to compute the clusters
|
||||||
snapshots in the dump file. The rerun script can use a
|
for snapshots in the dump file. The rerun script can use a
|
||||||
:doc:`special_bonds <special_bonds>` command that includes all pairs in
|
:doc:`special_bonds <special_bonds>` command that includes all pairs in
|
||||||
the neighbor list.
|
the neighbor list.
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ any command that uses per-atom values from a compute as input. See
|
|||||||
the :doc:`Howto output <Howto_output>` page for an overview of
|
the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector values will be an ID > 0, as explained above.
|
The per-atom vector values will be an ID :math:`> 0`, as explained above.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -129,5 +129,5 @@ Related commands
|
|||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
The default for fragment/atom is single no.
|
The default for fragment/atom is single=no.
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute cna/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID cna/atom cutoff
|
compute ID group-ID cna/atom cutoff
|
||||||
|
|
||||||
@ -44,20 +44,22 @@ performed on mono-component systems.
|
|||||||
|
|
||||||
The CNA calculation can be sensitive to the specified cutoff value.
|
The CNA calculation can be sensitive to the specified cutoff value.
|
||||||
You should insure the appropriate nearest neighbors of an atom are
|
You should insure the appropriate nearest neighbors of an atom are
|
||||||
found within the cutoff distance for the presumed crystal structure.
|
found within the cutoff distance for the presumed crystal structure
|
||||||
E.g. 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest
|
(e.g., 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest
|
||||||
neighbors for perfect BCC crystals. These formulas can be used to
|
neighbors for perfect BCC crystals). These formulas can be used to
|
||||||
obtain a good cutoff distance:
|
obtain a good cutoff distance:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
r_{c}^{fcc} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\
|
r_{c}^{\mathrm{fcc}} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) a
|
||||||
r_{c}^{bcc} = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\
|
\approx 0.8536 a \\
|
||||||
r_{c}^{hcp} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a}
|
r_{c}^{\mathrm{bcc}} = & \frac{1}{2}(\sqrt{2} + 1) a
|
||||||
|
\approx 1.207 a \\
|
||||||
|
r_{c}^{\mathrm{hcp}} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) a
|
||||||
|
|
||||||
where a is the lattice constant for the crystal structure concerned
|
where :math:`a` is the lattice constant for the crystal structure concerned
|
||||||
and in the HCP case, x = (c/a) / 1.633, where 1.633 is the ideal c/a
|
and in the HCP case, :math:`x = (c/a) / 1.633`, where 1.633 is the ideal
|
||||||
for HCP crystals.
|
:math:`c/a` for HCP crystals.
|
||||||
|
|
||||||
Also note that since the CNA calculation in LAMMPS uses the neighbors
|
Also note that since the CNA calculation in LAMMPS uses the neighbors
|
||||||
of an owned atom to find the nearest neighbors of a ghost atom, the
|
of an owned atom to find the nearest neighbors of a ghost atom, the
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute cnp/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID cnp/atom cutoff
|
compute ID group-ID cnp/atom cutoff
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ Define a computation that calculates the Common Neighborhood
|
|||||||
Parameter (CNP) for each atom in the group. In solid-state systems
|
Parameter (CNP) for each atom in the group. In solid-state systems
|
||||||
the CNP is a useful measure of the local crystal structure
|
the CNP is a useful measure of the local crystal structure
|
||||||
around an atom and can be used to characterize whether the
|
around an atom and can be used to characterize whether the
|
||||||
atom is part of a perfect lattice, a local defect (e.g. a dislocation
|
atom is part of a perfect lattice, a local defect (e.g., a dislocation
|
||||||
or stacking fault), or at a surface.
|
or stacking fault), or at a surface.
|
||||||
|
|
||||||
The value of the CNP parameter will be 0.0 for atoms not in the
|
The value of the CNP parameter will be 0.0 for atoms not in the
|
||||||
@ -40,7 +40,7 @@ This parameter is computed using the following formula from
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} \left | \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} \right | ^{2}
|
Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} \left\lVert \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} \right\rVert^{2}
|
||||||
|
|
||||||
where the index *j* goes over the :math:`n_i` nearest neighbors of atom
|
where the index *j* goes over the :math:`n_i` nearest neighbors of atom
|
||||||
*i*, and the index *k* goes over the :math:`n_{ij}` common nearest neighbors
|
*i*, and the index *k* goes over the :math:`n_{ij}` common nearest neighbors
|
||||||
@ -58,13 +58,15 @@ obtain a good cutoff distance:
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
r_{c}^{fcc} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\
|
r_{c}^{\mathrm{fcc}} = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) a
|
||||||
r_{c}^{bcc} = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\
|
\approx 0.8536 a \\
|
||||||
r_{c}^{hcp} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a}
|
r_{c}^{\mathrm{bcc}} = & \frac{1}{2}(\sqrt{2} + 1) a
|
||||||
|
\approx 1.207 a \\
|
||||||
|
r_{c}^{\mathrm{hcp}} = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) a
|
||||||
|
|
||||||
where a is the lattice constant for the crystal structure concerned
|
where :math:`a` is the lattice constant for the crystal structure concerned
|
||||||
and in the HCP case, x = (c/a) / 1.633, where 1.633 is the ideal c/a
|
and in the HCP case, :math:`x = (c/a) / 1.633`, where 1.633 is the ideal
|
||||||
for HCP crystals.
|
:math:`c/a` for HCP crystals.
|
||||||
|
|
||||||
Also note that since the CNP calculation in LAMMPS uses the neighbors
|
Also note that since the CNP calculation in LAMMPS uses the neighbors
|
||||||
of an owned atom to find the nearest neighbors of a ghost atom, the
|
of an owned atom to find the nearest neighbors of a ghost atom, the
|
||||||
@ -81,7 +83,7 @@ cutoff is the argument used with the compute cnp/atom command. LAMMPS
|
|||||||
will issue a warning if this is not the case.
|
will issue a warning if this is not the case.
|
||||||
|
|
||||||
The neighbor list needed to compute this quantity is constructed each
|
The neighbor list needed to compute this quantity is constructed each
|
||||||
time the calculation is performed (e.g. each time a snapshot of atoms
|
time the calculation is performed (e.g., each time a snapshot of atoms
|
||||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||||
too frequently or to have multiple compute/dump commands, each with a
|
too frequently or to have multiple compute/dump commands, each with a
|
||||||
*cnp/atom* style.
|
*cnp/atom* style.
|
||||||
@ -103,9 +105,9 @@ values:
|
|||||||
BCC lattice = 0.0
|
BCC lattice = 0.0
|
||||||
HCP lattice = 4.4
|
HCP lattice = 4.4
|
||||||
|
|
||||||
FCC (111) surface ~ 13.0
|
FCC (111) surface = 13.0
|
||||||
FCC (100) surface ~ 26.5
|
FCC (100) surface = 26.5
|
||||||
FCC dislocation core ~ 11
|
FCC dislocation core = 11
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute com command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID com
|
compute ID group-ID com
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ of atoms, including all effects due to atoms passing through periodic
|
|||||||
boundaries.
|
boundaries.
|
||||||
|
|
||||||
A vector of three quantities is calculated by this compute, which
|
A vector of three quantities is calculated by this compute, which
|
||||||
are the x,y,z coordinates of the center of mass.
|
are the :math:`(x,y,z)` coordinates of the center of mass.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -38,17 +38,18 @@ are the x,y,z coordinates of the center of mass.
|
|||||||
"unwrapped" coordinates. See the Atoms section of the
|
"unwrapped" coordinates. See the Atoms section of the
|
||||||
:doc:`read_data <read_data>` command for a discussion of image flags and
|
:doc:`read_data <read_data>` command for a discussion of image flags and
|
||||||
how they are set for each atom. You can reset the image flags
|
how they are set for each atom. You can reset the image flags
|
||||||
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command.
|
(e.g., to 0) before invoking this compute by using the
|
||||||
|
:doc:`set image <set>` command.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length 3, which can be
|
This compute calculates a global vector of length 3, which can be
|
||||||
accessed by indices 1-3 by any command that uses global vector values
|
accessed by indices 1--3 by any command that uses global vector values
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "intensive". The vector values will be in
|
The vector values are "intensive." The vector values will be in
|
||||||
distance :doc:`units <units>`.
|
distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute com/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID com/chunk chunkID
|
compute ID group-ID com/chunk chunkID
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_c
|
|||||||
doc pages for details of how chunks can be defined and examples of how
|
doc pages for details of how chunks can be defined and examples of how
|
||||||
they can be used to measure properties of a system.
|
they can be used to measure properties of a system.
|
||||||
|
|
||||||
This compute calculates the x,y,z coordinates of the center-of-mass
|
This compute calculates the :math:`(x,y,z)` coordinates of the center of mass
|
||||||
for each chunk, which includes all effects due to atoms passing through
|
for each chunk, which includes all effects due to atoms passing through
|
||||||
periodic boundaries.
|
periodic boundaries.
|
||||||
|
|
||||||
@ -54,7 +54,8 @@ non-zero chunk IDs.
|
|||||||
for a discussion of "unwrapped" coordinates. See the Atoms section of
|
for a discussion of "unwrapped" coordinates. See the Atoms section of
|
||||||
the :doc:`read_data <read_data>` command for a discussion of image flags
|
the :doc:`read_data <read_data>` command for a discussion of image flags
|
||||||
and how they are set for each atom. You can reset the image flags
|
and how they are set for each atom. You can reset the image flags
|
||||||
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command.
|
(e.g., to 0) before invoking this compute by using the
|
||||||
|
:doc:`set image <set>` command.
|
||||||
|
|
||||||
The simplest way to output the results of the compute com/chunk
|
The simplest way to output the results of the compute com/chunk
|
||||||
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
||||||
@ -70,13 +71,13 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array where the number of rows = the
|
This compute calculates a global array where the number of rows = the
|
||||||
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns =
|
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns is
|
||||||
3 for the x,y,z center-of-mass coordinates of each chunk. These
|
3 for the :math:`(x,y,z)` center-of-mass coordinates of each chunk. These
|
||||||
values can be accessed by any command that uses global array values
|
values can be accessed by any command that uses global array values
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive". The array values will be in
|
The array values are "intensive." The array values will be in
|
||||||
distance :doc:`units <units>`.
|
distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute contact/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID contact/atom group2-ID
|
compute ID group-ID contact/atom group2-ID
|
||||||
|
|
||||||
@ -44,11 +44,11 @@ accessed by any command that uses per-atom values from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector values will be a number >= 0.0, as explained
|
The per-atom vector values will be a number :math:`\ge 0.0`, as explained
|
||||||
above.
|
above.
|
||||||
|
|
||||||
The optional *group2-ID* argument allows to specify from which group atoms
|
The optional *group2-ID* argument allows to specify from which group atoms
|
||||||
contribute to the coordination number. Default setting is group 'all'.
|
contribute to the coordination number. Default setting is group 'all.'
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -9,23 +9,23 @@ Accelerator Variants: *coord/atom/kk*
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID coord/atom cstyle args ...
|
compute ID group-ID coord/atom style args ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* coord/atom = style name of this compute command
|
* coord/atom = style name of this compute command
|
||||||
* cstyle = *cutoff* or *orientorder*
|
* style = *cutoff* or *orientorder*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*cutoff* args = cutoff [group group2-ID] typeN
|
*cutoff* args = cutoff [*group* group2-ID] typeN
|
||||||
cutoff = distance within which to count coordination neighbors (distance units)
|
cutoff = distance within which to count coordination neighbors (distance units)
|
||||||
group *group2-ID* = select group-ID to restrict which atoms to consider for coordination number (optional)
|
*group* group2-ID = select group-ID to restrict which atoms to consider for coordination number (optional)
|
||||||
typeN = atom type for Nth coordination count (see asterisk form below)
|
typeN = atom type for Nth coordination count (see asterisk form below)
|
||||||
*orientorder* args = orientorderID threshold
|
*orientorder* args = orientorderID threshold
|
||||||
orientorderID = ID of an orientorder/atom compute
|
orientorderID = ID of an orientorder/atom compute
|
||||||
threshold = minimum value of the product of two "connected" atoms
|
threshold = minimum value of the product of two "connected" atoms
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -54,7 +54,7 @@ neighboring atoms, unless selected by type, type range, or group option,
|
|||||||
are included in the coordination number tally.
|
are included in the coordination number tally.
|
||||||
|
|
||||||
The optional *group* keyword allows to specify from which group atoms
|
The optional *group* keyword allows to specify from which group atoms
|
||||||
contribute to the coordination number. Default setting is group 'all'.
|
contribute to the coordination number. Default setting is group 'all.'
|
||||||
|
|
||||||
The *typeN* keywords allow specification of which atom types
|
The *typeN* keywords allow specification of which atom types
|
||||||
contribute to each coordination number. One coordination number is
|
contribute to each coordination number. One coordination number is
|
||||||
@ -65,15 +65,15 @@ includes atoms of all types (same as the "\*" format, see below).
|
|||||||
The *typeN* keywords can be specified in one of two ways. An explicit
|
The *typeN* keywords can be specified in one of two ways. An explicit
|
||||||
numeric value can be used, as in the second example above. Or a
|
numeric value can be used, as in the second example above. Or a
|
||||||
wild-card asterisk can be used to specify a range of atom types. This
|
wild-card asterisk can be used to specify a range of atom types. This
|
||||||
takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of
|
takes the form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is the number of
|
||||||
atom types, then an asterisk with no numeric values means all types
|
atom 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
|
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 trailing asterisk means all types from m to :math:`N`
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n
|
||||||
(inclusive).
|
(inclusive).
|
||||||
|
|
||||||
The *orientorder* cstyle calculates the number of "connected" neighbor
|
The *orientorder* cstyle calculates the number of "connected" neighbor
|
||||||
atoms J around each central atom I. For this *cstyle*, connected is
|
atoms *j* around each central atom *i*\ . For this *cstyle*, connected is
|
||||||
defined by the orientational order parameter calculated by the
|
defined by the orientational order parameter calculated by the
|
||||||
:doc:`compute orientorder/atom <compute_orientorder_atom>` command.
|
:doc:`compute orientorder/atom <compute_orientorder_atom>` command.
|
||||||
This *cstyle* thus allows one to apply the ten Wolde's criterion to
|
This *cstyle* thus allows one to apply the ten Wolde's criterion to
|
||||||
@ -84,16 +84,16 @@ The ID of the previously specified :doc:`compute orientorder/atom <compute_orien
|
|||||||
calculate components of the *Ybar_lm* vector for each atoms, as
|
calculate components of the *Ybar_lm* vector for each atoms, as
|
||||||
described in its documentation. Note that orientorder/atom compute
|
described in its documentation. Note that orientorder/atom compute
|
||||||
defines its own criteria for identifying neighboring atoms. If the
|
defines its own criteria for identifying neighboring atoms. If the
|
||||||
scalar product (*Ybar_lm(i)*,*Ybar_lm(j)*), calculated by the
|
scalar product (*Ybar_lm(i)*, *Ybar_lm(j)*), calculated by the
|
||||||
orientorder/atom compute is larger than the specified *threshold*,
|
orientorder/atom compute is larger than the specified *threshold*,
|
||||||
then I and J are connected, and the coordination value of I is
|
then *i* and *j* are connected, and the coordination value of *i* is
|
||||||
incremented by one.
|
incremented by one.
|
||||||
|
|
||||||
For all *cstyle* settings, all coordination values will be 0.0 for
|
For all *cstyle* settings, all coordination values will be 0.0 for
|
||||||
atoms not in the specified compute group.
|
atoms not in the specified compute group.
|
||||||
|
|
||||||
The neighbor list needed to compute this quantity is constructed each
|
The neighbor list needed to compute this quantity is constructed each
|
||||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
time the calculation is performed (i.e., each time a snapshot of atoms
|
||||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||||
too frequently.
|
too frequently.
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ For *cstyle* cutoff, this compute can calculate a per-atom vector or
|
|||||||
array. If single *type1* keyword is specified (or if none are
|
array. If single *type1* keyword is specified (or if none are
|
||||||
specified), this compute calculates a per-atom vector. If multiple
|
specified), this compute calculates a per-atom vector. If multiple
|
||||||
*typeN* keywords are specified, this compute calculates a per-atom
|
*typeN* keywords are specified, this compute calculates a per-atom
|
||||||
array, with N columns.
|
array, with :math:`N` columns.
|
||||||
|
|
||||||
For *cstyle* orientorder, this compute calculates a per-atom vector.
|
For *cstyle* orientorder, this compute calculates a per-atom vector.
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ These values can be accessed by any command that uses per-atom values
|
|||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector or array values will be a number >= 0.0, as
|
The per-atom vector or array values will be a number :math:`\ge 0.0`, as
|
||||||
explained above.
|
explained above.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute damage/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID damage/atom
|
compute ID group-ID damage/atom
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ any command that uses per-atom values from a compute as input. See
|
|||||||
the :doc:`Howto output <Howto_output>` page for an overview of
|
the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector values are unitless numbers (damage) >= 0.0.
|
The per-atom vector values are unitless numbers (damage) :math:`\ge 0.0`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute dihedral command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dihedral
|
compute ID group-ID dihedral
|
||||||
|
|
||||||
@ -34,10 +34,12 @@ total energy contributed by one or more of the hybrid sub-styles.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length N where N is the
|
This compute calculates a global vector of length :math:`N`, where :math:`N`
|
||||||
number of sub_styles defined by the :doc:`dihedral_style hybrid <dihedral_style>` command. which can be accessed by indices
|
is the number of sub_styles defined by the
|
||||||
1-N. These values can be used by any command that uses global scalar
|
:doc:`dihedral_style hybrid <dihedral_style>` command, which can be accessed by
|
||||||
or vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
the indices 1 through :math:`N`. These values can be used by any command that
|
||||||
|
uses global scalar or vector values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The vector values are "extensive" and will be in energy
|
The vector values are "extensive" and will be in energy
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute dihedral/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dihedral/local value1 value2 ... keyword args ...
|
compute ID group-ID dihedral/local value1 value2 ... keyword args ...
|
||||||
|
|
||||||
@ -35,7 +35,6 @@ Examples
|
|||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute 1 all dihedral/local phi
|
compute 1 all dihedral/local phi
|
||||||
|
|
||||||
compute 1 all dihedral/local phi v_cos set phi p
|
compute 1 all dihedral/local phi v_cos set phi p
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@ -46,25 +45,26 @@ interactions. The number of datums generated, aggregated across all
|
|||||||
processors, equals the number of dihedral angles in the system, modified
|
processors, equals the number of dihedral angles in the system, modified
|
||||||
by the group parameter as explained below.
|
by the group parameter as explained below.
|
||||||
|
|
||||||
The value *phi* is the dihedral angle, as defined in the diagram on
|
The value *phi* (:math:`\phi`) is the dihedral angle, as defined in the diagram
|
||||||
the :doc:`dihedral_style <dihedral_style>` doc page.
|
on the :doc:`dihedral_style <dihedral_style>` doc page.
|
||||||
|
|
||||||
The value *v_name* can be used together with the *set* keyword to
|
The value *v_name* can be used together with the *set* keyword to compute a
|
||||||
compute a user-specified function of the dihedral angle phi. The
|
user-specified function of the dihedral angle :math:`\phi`. The *name*
|
||||||
*name* specified for the *v_name* value is the name of an :doc:`equal-style variable <variable>` which should evaluate a formula based on a
|
specified for the *v_name* value is the name of an
|
||||||
variable which will store the angle phi. This other variable must
|
:doc:`equal-style variable <variable>` which should evaluate a formula based on
|
||||||
|
a variable which will store the angle :math:`\phi`. This other variable must
|
||||||
be an :doc:`internal-style variable <variable>` defined in the input
|
be an :doc:`internal-style variable <variable>` defined in the input
|
||||||
script; its initial numeric value can be anything. It must be an
|
script; its initial numeric value can be anything. It must be an
|
||||||
internal-style variable, because this command resets its value
|
internal-style variable, because this command resets its value
|
||||||
directly. The *set* keyword is used to identify the name of this
|
directly. The *set* keyword is used to identify the name of this
|
||||||
other variable associated with phi.
|
other variable associated with :math:`\phi`.
|
||||||
|
|
||||||
Note that the value of phi for each angle which stored in the internal
|
Note that the value of :math:`\phi` for each angle which stored in the internal
|
||||||
variable is in radians, not degrees.
|
variable is in radians, not degrees.
|
||||||
|
|
||||||
As an example, these commands can be added to the bench/in.rhodo
|
As an example, these commands can be added to the bench/in.rhodo
|
||||||
script to compute the cosine and cosine\^2 of every dihedral angle in
|
script to compute the :math:`\cos\phi` and :math:`\cos^2\phi` of every dihedral
|
||||||
the system and output the statistics in various ways:
|
angle in the system and output the statistics in various ways:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -81,19 +81,18 @@ the system and output the statistics in various ways:
|
|||||||
|
|
||||||
fix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo
|
fix 10 all ave/histo 10 10 100 -1 1 20 c_2[2] mode vector file tmp.histo
|
||||||
|
|
||||||
The :doc:`dump local <dump>` command will output the angle,
|
The :doc:`dump local <dump>` command will output the angle (:math:`\phi`),
|
||||||
cosine(angle), cosine\^2(angle) for every dihedral in the system. The
|
:math:`\cos(\phi)`, and :math:`\cos^2(\phi)` for every dihedral in the system.
|
||||||
:doc:`thermo_style <thermo_style>` command will print the average of
|
The :doc:`thermo_style <thermo_style>` command will print the average of
|
||||||
those quantities via the :doc:`compute reduce <compute_reduce>` command
|
those quantities via the :doc:`compute reduce <compute_reduce>` command
|
||||||
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
|
with thermo output. And the :doc:`fix ave/histo <fix_ave_histo>`
|
||||||
command will histogram the cosine(angle) values and write them to a
|
command will histogram the cosine(angle) values and write them to a file.
|
||||||
file.
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The local data stored by this command is generated by looping over all
|
The local data stored by this command is generated by looping over all
|
||||||
the atoms owned on a processor and their dihedrals. A dihedral will
|
the atoms owned on a processor and their dihedrals. A dihedral will
|
||||||
only be included if all 4 atoms in the dihedral are in the specified
|
only be included if all four atoms in the dihedral are in the specified
|
||||||
compute group.
|
compute group.
|
||||||
|
|
||||||
Note that as atoms migrate from processor to processor, there will be
|
Note that as atoms migrate from processor to processor, there will be
|
||||||
@ -101,7 +100,8 @@ no consistent ordering of the entries within the local vector or array
|
|||||||
from one timestep to the next. The only consistency that is
|
from one timestep to the next. The only consistency that is
|
||||||
guaranteed is that the ordering on a particular timestep will be the
|
guaranteed is that the ordering on a particular timestep will be the
|
||||||
same for local vectors or arrays generated by other compute commands.
|
same for local vectors or arrays generated by other compute commands.
|
||||||
For example, dihedral output from the :doc:`compute property/local <compute_property_local>` command can be combined
|
For example, dihedral output from the
|
||||||
|
:doc:`compute property/local <compute_property_local>` command can be combined
|
||||||
with data from this command and output by the :doc:`dump local <dump>`
|
with data from this command and output by the :doc:`dump local <dump>`
|
||||||
command in a consistent way.
|
command in a consistent way.
|
||||||
|
|
||||||
@ -120,9 +120,10 @@ This compute calculates a local vector or local array depending on the
|
|||||||
number of values. The length of the vector or number of rows in the
|
number of values. The length of the vector or number of rows in the
|
||||||
array is the number of dihedrals. If a single value is specified, a
|
array is the number of dihedrals. If a single value is specified, a
|
||||||
local vector is produced. If two or more values are specified, a
|
local vector is produced. If two or more values are specified, a
|
||||||
local array is produced where the number of columns = the number of
|
local array is produced where the number of columns is equal to the number of
|
||||||
values. The vector or array can be accessed by any command that uses
|
values. 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
|
local values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The output for *phi* will be in degrees.
|
The output for *phi* will be in degrees.
|
||||||
|
|||||||
@ -6,12 +6,12 @@ compute dilatation/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dilatation/atom
|
compute ID group-ID dilatation/atom
|
||||||
|
|
||||||
* ID, group-ID are documented in compute command
|
* ID, group-ID are documented in compute command
|
||||||
* dilation/atom = style name of this compute command
|
* dilatation/atom = style name of this compute command
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -30,13 +30,13 @@ for an overview of LAMMPS commands for Peridynamics modeling.
|
|||||||
For small deformation, dilatation of is the measure of the volumetric
|
For small deformation, dilatation of is the measure of the volumetric
|
||||||
strain.
|
strain.
|
||||||
|
|
||||||
The dilatation "theta" for each peridynamic particle I is calculated
|
The dilatation :math:`\theta` for each peridynamic particle :math:`i` is
|
||||||
as a sum over its neighbors with unbroken bonds, where the
|
calculated as a sum over its neighbors with unbroken bonds, where the
|
||||||
contribution of the IJ pair is a function of the change in bond length
|
contribution of the :math:`ij` pair is a function of the change in bond length
|
||||||
(versus the initial length in the reference state), the volume
|
(versus the initial length in the reference state), the volume
|
||||||
fraction of the particles and an influence function. See the
|
fraction of the particles and an influence function. See the
|
||||||
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for a formal
|
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for
|
||||||
definition of dilatation.
|
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.
|
||||||
|
|
||||||
@ -51,13 +51,14 @@ any command that uses per-atom values from a compute as input. See
|
|||||||
the :doc:`Howto output <Howto_output>` page for an overview of
|
the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector values are unitless numbers (theta) >= 0.0.
|
The per-atom vector values are unitless numbers :math:`(\theta \ge 0.0)`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This compute is part of the PERI package. It is only enabled if
|
This compute is part of the PERI package. It is only enabled if
|
||||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
LAMMPS was built with that package. See the
|
||||||
|
:doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -6,13 +6,13 @@ compute dipole command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dipole charge-correction
|
compute ID group-ID dipole arg
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* dipole = style name of this compute command
|
* dipole = style name of this compute command
|
||||||
* charge-correction = *mass* or *geometry*, use COM or geometric center for charged chunk correction (optional)
|
* arg = *mass* or *geometry* = use COM or geometric center for charged chunk correction (optional)
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -43,7 +43,7 @@ and per-atom dipole moments, if present, contribute to the computed dipole.
|
|||||||
:doc:`dump custom <dump>` command for a discussion of "unwrapped"
|
:doc:`dump custom <dump>` command for a discussion of "unwrapped"
|
||||||
coordinates. See the Atoms section of the :doc:`read_data
|
coordinates. See the Atoms section of the :doc:`read_data
|
||||||
<read_data>` command for a discussion of image flags and how they are
|
<read_data>` command for a discussion of image flags and how they are
|
||||||
set for each atom. You can reset the image flags (e.g. to 0) before
|
set for each atom. You can reset the image flags (e.g., to 0) before
|
||||||
invoking this compute by using the :doc:`set image <set>` command.
|
invoking this compute by using the :doc:`set image <set>` command.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
@ -54,8 +54,9 @@ the computed dipole moment and a global vector of length 3 with the
|
|||||||
dipole vector. See the :doc:`Howto output <Howto_output>` page for
|
dipole vector. See the :doc:`Howto output <Howto_output>` page for
|
||||||
an overview of LAMMPS output options.
|
an overview of LAMMPS output options.
|
||||||
|
|
||||||
The computed values are "intensive". The array values will be in
|
The computed values are "intensive." The array values will be in
|
||||||
dipole units, i.e. charge units times distance :doc:`units <units>`.
|
dipole units (i.e., charge :doc:`units <units>` times distance
|
||||||
|
:doc:`units <units>`).
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,14 +6,14 @@ compute dipole/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dipole/chunk chunkID charge-correction
|
compute ID group-ID dipole/chunk chunkID arg
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* dipole/chunk = style name of this compute command
|
* dipole/chunk = style name of this compute command
|
||||||
* chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command
|
* chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command
|
||||||
* charge-correction = *mass* or *geometry*, use COM or geometric center for charged chunk correction (optional)
|
* arg = *mass* or *geometry* = use COM or geometric center for charged chunk correction (optional)
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -38,8 +38,8 @@ or atoms in a spatial bin. See the :doc:`compute chunk/atom
|
|||||||
details of how chunks can be defined and examples of how they can be
|
details of how chunks can be defined and examples of how they can be
|
||||||
used to measure properties of a system.
|
used to measure properties of a system.
|
||||||
|
|
||||||
This compute calculates the x,y,z coordinates of the dipole vector and
|
This compute calculates the :math:`(x,y,z)` coordinates of the dipole vector
|
||||||
the total dipole moment for each chunk, which includes all effects due
|
and the total dipole moment for each chunk, which includes all effects due
|
||||||
to atoms passing through periodic boundaries. For chunks with a net
|
to atoms passing through periodic boundaries. For chunks with a net
|
||||||
charge the resulting dipole is made position independent by subtracting
|
charge the resulting dipole is made position independent by subtracting
|
||||||
the position vector of the center of mass or geometric center times the
|
the position vector of the center of mass or geometric center times the
|
||||||
@ -62,7 +62,7 @@ chunk IDs.
|
|||||||
"unwrapped" coordinates. See the Atoms section of the
|
"unwrapped" coordinates. See the Atoms section of the
|
||||||
:doc:`read_data <read_data>` command for a discussion of image flags
|
:doc:`read_data <read_data>` command for a discussion of image flags
|
||||||
and how they are set for each atom. You can reset the image flags
|
and how they are set for each atom. You can reset the image flags
|
||||||
(e.g. to 0) before invoking this compute by using the :doc:`set image
|
(e.g., to 0) before invoking this compute by using the :doc:`set image
|
||||||
<set>` command.
|
<set>` command.
|
||||||
|
|
||||||
The simplest way to output the results of the compute com/chunk
|
The simplest way to output the results of the compute com/chunk
|
||||||
@ -80,14 +80,15 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a global array where the number of rows = the
|
This compute calculates a global array where the number of rows = the
|
||||||
number of chunks *Nchunk* as calculated by the specified :doc:`compute
|
number of chunks *Nchunk* as calculated by the specified :doc:`compute
|
||||||
chunk/atom <compute_chunk_atom>` command. The number of columns = 4 for
|
chunk/atom <compute_chunk_atom>` command. The number of columns is 4 for
|
||||||
the x,y,z dipole vector components and the total dipole of each
|
the :math:`(x,y,z)` dipole vector components and the total dipole of each
|
||||||
chunk. These values can be accessed by any command that uses global
|
chunk. These values can be accessed by any command that uses global
|
||||||
array values from a compute as input. See the :doc:`Howto output
|
array values from a compute as input. See the :doc:`Howto output
|
||||||
<Howto_output>` page for an overview of LAMMPS output options.
|
<Howto_output>` page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive". The array values will be in
|
The array values are "intensive." The array values will be in
|
||||||
dipole units, i.e. charge units times distance :doc:`units <units>`.
|
dipole units (i.e., charge :doc:`units <units>` times distance
|
||||||
|
:doc:`units <units>`).
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute displace/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID displace/atom
|
compute ID group-ID displace/atom
|
||||||
|
|
||||||
@ -35,9 +35,9 @@ atom in the group from its original (reference) coordinates, including
|
|||||||
all effects due to atoms passing through periodic boundaries.
|
all effects due to atoms passing through periodic boundaries.
|
||||||
|
|
||||||
A vector of four quantities per atom is calculated by this compute.
|
A vector of four quantities per atom is calculated by this compute.
|
||||||
The first 3 elements of the vector are the dx,dy,dz displacements.
|
The first three elements of the vector are the :math:`(dx,dy,dz)`
|
||||||
The fourth component is the total displacement, i.e. sqrt(dx\*dx + dy\*dy +
|
displacements. The fourth component is the total displacement
|
||||||
dz\*dz).
|
(i.e., :math:`\sqrt{dx^2 + dy^2 + dz^2}`).
|
||||||
|
|
||||||
The displacement of an atom is from its original position at the time
|
The displacement of an atom is from its original position at the time
|
||||||
the compute command was issued. The value of the displacement will be
|
the compute command was issued. The value of the displacement will be
|
||||||
@ -50,7 +50,7 @@ the compute command was issued. The value of the displacement will be
|
|||||||
<dump>` command for a discussion of "unwrapped" coordinates. See
|
<dump>` command for a discussion of "unwrapped" coordinates. See
|
||||||
the Atoms section of the :doc:`read_data <read_data>` command for a
|
the Atoms section of the :doc:`read_data <read_data>` command for a
|
||||||
discussion of image flags and how they are set for each atom. You
|
discussion of image flags and how they are set for each atom. You
|
||||||
can reset the image flags (e.g. to 0) before invoking this compute
|
can reset the image flags (e.g., to 0) before invoking this compute
|
||||||
by using the :doc:`set image <set>` command.
|
by using the :doc:`set image <set>` command.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@ -60,7 +60,7 @@ the compute command was issued. The value of the displacement will be
|
|||||||
you should use the same ID for this compute, as in the original run.
|
you should use the same ID for this compute, as in the original run.
|
||||||
This is so that the fix this compute creates to store per-atom
|
This is so that the fix this compute creates to store per-atom
|
||||||
quantities will also have the same ID, and thus be initialized
|
quantities will also have the same ID, and thus be initialized
|
||||||
correctly with time=0 atom coordinates from the restart file.
|
correctly with time = 0 atom coordinates from the restart file.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -95,14 +95,15 @@ something like the following commands:
|
|||||||
refresh c_dsp delay 100
|
refresh c_dsp delay 100
|
||||||
|
|
||||||
The :doc:`dump_modify thresh <dump_modify>` command will only output
|
The :doc:`dump_modify thresh <dump_modify>` command will only output
|
||||||
atoms that have displaced more than 0.6 Angstroms on each snapshot
|
atoms that have displaced more than :math:`0.6~\mathrm{\mathring A}` on each
|
||||||
(assuming metal units). The dump_modify *refresh* option triggers a
|
snapshot (assuming metal units). The dump_modify *refresh* option triggers a
|
||||||
call to this compute at the end of every dump.
|
call to this compute at the end of every dump.
|
||||||
|
|
||||||
The *refresh* argument for this compute is the ID of an :doc:`atom-style variable <variable>` which calculates a Boolean value (0 or 1)
|
The *refresh* argument for this compute is the ID of an
|
||||||
|
:doc:`atom-style variable <variable>` which calculates a Boolean value (0 or 1)
|
||||||
based on the same criterion used by dump_modify thresh. This compute
|
based on the same criterion used by dump_modify thresh. This compute
|
||||||
evaluates the atom-style variable. For each atom that returns 1
|
evaluates the atom-style variable. For each atom that returns 1 (true),
|
||||||
(true), the original (reference) coordinates of the atom (stored by
|
the original (reference) coordinates of the atom (stored by
|
||||||
this compute) are updated.
|
this compute) are updated.
|
||||||
|
|
||||||
The effect of these commands is that a particular atom will only be
|
The effect of these commands is that a particular atom will only be
|
||||||
@ -125,8 +126,8 @@ would be empty.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a per-atom array with 4 columns, which can be
|
This compute calculates a per-atom array with four columns, which can be
|
||||||
accessed by indices 1-4 by any command that uses per-atom values from
|
accessed by indices 1--4 by any command that uses per-atom values from
|
||||||
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute dpd command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dpd
|
compute ID group-ID dpd
|
||||||
|
|
||||||
@ -24,9 +24,9 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that accumulates the total internal conductive
|
Define a computation that accumulates the total internal conductive
|
||||||
energy (:math:`U^{cond}`), the total internal mechanical energy
|
energy (:math:`U^{\text{cond}}`), the total internal mechanical energy
|
||||||
(:math:`U^{mech}`), the total chemical energy (:math:`U^{chem}`)
|
(:math:`U^{\text{mech}}`), the total chemical energy (:math:`U^\text{chem}`)
|
||||||
and the *harmonic* average of the internal temperature (:math:`\theta_{avg}`)
|
and the *harmonic* average of the internal temperature (:math:`\theta_\text{avg}`)
|
||||||
for the entire system of particles. See the
|
for the entire system of particles. See the
|
||||||
:doc:`compute dpd/atom <compute_dpd_atom>` command if you want
|
:doc:`compute dpd/atom <compute_dpd_atom>` command if you want
|
||||||
per-particle internal energies and internal temperatures.
|
per-particle internal energies and internal temperatures.
|
||||||
@ -36,22 +36,24 @@ relations:
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
U^{cond} = & \displaystyle\sum_{i=1}^{N} u_{i}^{cond} \\
|
U^\text{cond} = & \sum_{i=1}^{N} u_{i}^\text{cond} \\
|
||||||
U^{mech} = & \displaystyle\sum_{i=1}^{N} u_{i}^{mech} \\
|
U^\text{mech} = & \sum_{i=1}^{N} u_{i}^\text{mech} \\
|
||||||
U^{chem} = & \displaystyle\sum_{i=1}^{N} u_{i}^{chem} \\
|
U^\text{chem} = & \sum_{i=1}^{N} u_{i}^\text{chem} \\
|
||||||
U = & \displaystyle\sum_{i=1}^{N} (u_{i}^{cond} + u_{i}^{mech} + u_{i}^{chem}) \\
|
U = & \sum_{i=1}^{N} (u_{i}^\text{cond}
|
||||||
\theta_{avg} = & (\frac{1}{N}\displaystyle\sum_{i=1}^{N} \frac{1}{\theta_{i}})^{-1} \\
|
+ u_{i}^\text{mech} + u_{i}^\text{chem}) \\
|
||||||
|
\theta_{avg} = & \biggl(\frac{1}{N}\sum_{i=1}^{N}
|
||||||
|
\frac{1}{\theta_{i}}\biggr)^{-1} \\
|
||||||
|
|
||||||
where :math:`N` is the number of particles in the system
|
where :math:`N` is the number of particles in the system.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length 5 (:math:`U^{cond}`,
|
This compute calculates a global vector of length 5 (:math:`U^\text{cond}`,
|
||||||
:math:`U^{mech}`, :math:`U^{chem}`, :math:`\theta_{avg}`, :math:`N`),
|
:math:`U^\text{mech}`, :math:`U^\text{chem}`, :math:`\theta_\text{avg}`,
|
||||||
which can be accessed by indices 1-5.
|
:math:`N`), which can be accessed by indices 1 through 5.
|
||||||
See the :doc:`Howto output <Howto_output>` page for an overview of
|
See the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
@ -61,7 +63,8 @@ Restrictions
|
|||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This command is part of the DPD-REACT package. It is only enabled if
|
This command is part of the DPD-REACT package. It is only enabled if
|
||||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
LAMMPS was built with that package.
|
||||||
|
See the :doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
This command also requires use of the :doc:`atom_style dpd <atom_style>`
|
This command also requires use of the :doc:`atom_style dpd <atom_style>`
|
||||||
command.
|
command.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute dpd/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID dpd/atom
|
compute ID group-ID dpd/atom
|
||||||
|
|
||||||
@ -23,29 +23,28 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that accesses the per-particle internal
|
Define a computation that accesses the per-particle internal conductive energy
|
||||||
conductive energy (:math:`u^{cond}`), internal mechanical
|
(:math:`u^\text{cond}`), internal mechanical energy (:math:`u^\text{mech}`),
|
||||||
energy (:math:`u^{mech}`), internal chemical energy (:math:`u^{chem}`)
|
internal chemical energy (:math:`u^\text{chem}`) and internal temperatures
|
||||||
and internal temperatures (:math:`\theta`) for each particle in a group.
|
(:math:`\theta`) for each particle in a group.
|
||||||
See the :doc:`compute dpd <compute_dpd>` command if you want the total
|
See the :doc:`compute dpd <compute_dpd>` command if you want the total
|
||||||
internal conductive energy, the total internal mechanical energy, the
|
internal conductive energy, the total internal mechanical energy, the
|
||||||
total chemical energy and
|
total chemical energy and average internal temperature of the entire system or
|
||||||
average internal temperature of the entire system or group of dpd
|
group of dpd particles.
|
||||||
particles.
|
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a per-particle array with 4 columns (:math:`u^{cond}`,
|
This compute calculates a per-particle array with four columns
|
||||||
:math:`u^{mech}`, :math:`u^{chem}`, :math:`\theta`), which can be accessed
|
(:math:`u^\text{cond}`, :math:`u^\text{mech}`, :math:`u^\text{chem}`,
|
||||||
by indices 1-4 by any
|
:math:`\theta`), which can be accessed by indices 1--4 by any
|
||||||
command that uses per-particle values from a compute as input. See
|
command that uses per-particle values from a compute as input. See
|
||||||
the :doc:`Howto output <Howto_output>` page for an overview of
|
the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The per-particle array values will be in energy (:math:`u^{cond}`,
|
The per-particle array values will be in energy (:math:`u^\text{cond}`,
|
||||||
:math:`u^{mech}`, :math:`u^{chem}`)
|
:math:`u^\text{mech}`, :math:`u^\text{chem}`)
|
||||||
and temperature (:math:`theta`) :doc:`units <units>`.
|
and temperature (:math:`\theta`) :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute edpd/temp/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID edpd/temp/atom
|
compute ID group-ID edpd/temp/atom
|
||||||
|
|
||||||
|
|||||||
@ -6,12 +6,19 @@ compute efield/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID efield/atom
|
compute ID group-ID efield/atom keyword val
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* efield/atom = style name of this compute command
|
* efield/atom = style name of this compute command
|
||||||
|
* zero or more keyword/value pairs may be appended
|
||||||
|
* keyword = *pair* or *kspace*
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
*pair* args = *yes* or *no*
|
||||||
|
*kspace* args = *yes* or *no*
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -23,10 +30,10 @@ Examples
|
|||||||
|
|
||||||
Used in input scripts:
|
Used in input scripts:
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
examples/PACKAGES/dielectric/in.confined
|
examples/PACKAGES/dielectric/in.confined
|
||||||
examples/PACKAGES/dielectric/in.nopbc
|
examples/PACKAGES/dielectric/in.nopbc
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|||||||
@ -6,24 +6,23 @@ compute entropy/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID entropy/atom sigma cutoff keyword value ...
|
compute ID group-ID entropy/atom sigma cutoff keyword value ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* entropy/atom = style name of this compute command
|
* entropy/atom = style name of this compute command
|
||||||
* sigma = width of gaussians used in the g(r) smoothing
|
* sigma = width of Gaussians used in the :math:`g(r)` smoothing
|
||||||
* cutoff = cutoff for the g(r) calculation
|
* cutoff = cutoff for the :math:`g(r)` calculation
|
||||||
* one or more keyword/value pairs may be appended
|
* one or more keyword/value pairs may be appended
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
keyword = *avg* or *local*
|
keyword = *avg* or *local*
|
||||||
*avg* values = *yes* or *no* cutoff2
|
*avg* args = neigh cutoff2
|
||||||
*yes* = average the pair entropy over neighbors
|
neigh value = *yes* or *no* = whether to average the pair entropy over neighbors
|
||||||
*no* = do not average the pair entropy over neighbors
|
|
||||||
cutoff2 = cutoff for the averaging over neighbors
|
cutoff2 = cutoff for the averaging over neighbors
|
||||||
*local* values = *yes* or *no* = use the local density around each atom to normalize the g(r)
|
*local* arg = *yes* or *no* = use the local density around each atom to normalize the g(r)
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -53,31 +52,32 @@ This parameter for atom i is computed using the following formula from
|
|||||||
|
|
||||||
s_S^i=-2\pi\rho k_B \int\limits_0^{r_m} \left [ g(r) \ln g(r) - g(r) + 1 \right ] r^2 dr
|
s_S^i=-2\pi\rho k_B \int\limits_0^{r_m} \left [ g(r) \ln g(r) - g(r) + 1 \right ] r^2 dr
|
||||||
|
|
||||||
where r is a distance, g(r) is the radial distribution function of atom
|
where :math:`r` is a distance, :math:`g(r)` is the radial distribution function
|
||||||
i and rho is the density of the system. The g(r) computed for each
|
of atom :math:`i`, and :math:`\rho` is the density of the system.
|
||||||
atom i can be noisy and therefore it is smoothed using:
|
The :math:`g(r)` computed for each atom :math:`i` can be noisy and therefore it
|
||||||
|
is smoothed using
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
g_m^i(r) = \frac{1}{4 \pi \rho r^2} \sum\limits_{j} \frac{1}{\sqrt{2 \pi \sigma^2}} e^{-(r-r_{ij})^2/(2\sigma^2)}
|
g_m^i(r) = \frac{1}{4 \pi \rho r^2} \sum\limits_{j} \frac{1}{\sqrt{2 \pi \sigma^2}} e^{-(r-r_{ij})^2/(2\sigma^2)}
|
||||||
|
|
||||||
where the sum in j goes through the neighbors of atom i, and :math:`\sigma`
|
where the sum over :math:`j` goes through the neighbors of atom :math:`i` and
|
||||||
is a parameter to control the smoothing.
|
:math:`\sigma` is a parameter to control the smoothing.
|
||||||
|
|
||||||
The input parameters are *sigma* the smoothing parameter :math:`\sigma`,
|
The input parameters are *sigma* the smoothing parameter :math:`\sigma`,
|
||||||
and the *cutoff* for the calculation of g(r).
|
and the *cutoff* for the calculation of :math:`g(r)`.
|
||||||
|
|
||||||
If the keyword *avg* has the setting *yes*, then this compute also
|
If the keyword *avg* has the setting *yes*, then this compute also
|
||||||
averages the parameter over the neighbors of atom i according to:
|
averages the parameter over the neighbors of atom :math:`i` according to
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\left< s_S^i \right> = \frac{\sum_j s_S^j + s_S^i}{N + 1}
|
\left< s_S^i \right> = \frac{\sum_j s_S^j + s_S^i}{N + 1},
|
||||||
|
|
||||||
where the sum j goes over the neighbors of atom i and N is the number
|
where the sum over :math:`j` goes over the neighbors of atom :math:`i` and
|
||||||
of neighbors. This procedure provides a sharper distinction between
|
:math:`N` is the number of neighbors. This procedure provides a sharper
|
||||||
order and disorder environments. In this case the input parameter
|
distinction between order and disorder environments. In this case the input
|
||||||
*cutoff2* is the cutoff for the averaging over the neighbors and
|
parameter *cutoff2* is the cutoff for the averaging over the neighbors and
|
||||||
must also be specified.
|
must also be specified.
|
||||||
|
|
||||||
If the *avg yes* option is used, the effective cutoff of the neighbor
|
If the *avg yes* option is used, the effective cutoff of the neighbor
|
||||||
@ -90,14 +90,14 @@ to increase the skin of the neighbor list with:
|
|||||||
|
|
||||||
See :doc:`neighbor <neighbor>` for details.
|
See :doc:`neighbor <neighbor>` for details.
|
||||||
|
|
||||||
If the *local yes* option is used, the g(r) is normalized by the
|
If the *local yes* option is used, the :math:`g(r)` is normalized by the
|
||||||
local density around each atom, that is to say the density around each
|
local density around each atom, that is to say the density around each
|
||||||
atom is the number of neighbors within the neighbor list cutoff divided
|
atom is the number of neighbors within the neighbor list cutoff divided
|
||||||
by the corresponding volume. This option can be useful when dealing with
|
by the corresponding volume. This option can be useful when dealing with
|
||||||
inhomogeneous systems such as those that have surfaces.
|
inhomogeneous systems such as those that have surfaces.
|
||||||
|
|
||||||
Here are typical input parameters for fcc aluminum (lattice
|
Here are typical input parameters for fcc aluminum (lattice
|
||||||
constant 4.05 Angstroms),
|
constant :math:`4.05~\mathrm{\mathring A}`),
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -114,7 +114,8 @@ Output info
|
|||||||
|
|
||||||
By default, this compute calculates the pair entropy value for each
|
By default, this compute calculates the pair entropy value for each
|
||||||
atom as a per-atom vector, which can be accessed by any command that
|
atom as a per-atom vector, which can be accessed by any command that
|
||||||
uses per-atom values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
uses per-atom values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The pair entropy values have units of the Boltzmann constant. They are
|
The pair entropy values have units of the Boltzmann constant. They are
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute erotate/asphere command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID erotate/asphere
|
compute ID group-ID erotate/asphere
|
||||||
|
|
||||||
@ -30,9 +30,9 @@ ellipsoids, or line segments, or triangles. See the
|
|||||||
for descriptions of these options.
|
for descriptions of these options.
|
||||||
|
|
||||||
For all 3 types of particles, the rotational kinetic energy is
|
For all 3 types of particles, the rotational kinetic energy is
|
||||||
computed as 1/2 I w\^2, where I is the inertia tensor for the
|
computed as :math:`\frac12 I \omega^2`, where :math:`I` is the inertia tensor
|
||||||
aspherical particle and w is its angular velocity, which is computed
|
for the aspherical particle and :math:`\omega` is its angular velocity, which
|
||||||
from its angular momentum if needed.
|
is computed from its angular momentum if needed.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ used by any command that uses a global scalar value from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive". The
|
The scalar value calculated by this compute is "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
@ -65,7 +65,7 @@ This compute requires that triangular particles atoms store a size and
|
|||||||
shape and quaternion orientation and angular momentum as defined by
|
shape and quaternion orientation and angular momentum as defined by
|
||||||
the :doc:`atom_style tri <atom_style>` command.
|
the :doc:`atom_style tri <atom_style>` command.
|
||||||
|
|
||||||
All particles in the group must be finite-size. They cannot be point
|
All particles in the group must be of finite size. They cannot be point
|
||||||
particles.
|
particles.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute erotate/rigid command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID erotate/rigid fix-ID
|
compute ID group-ID erotate/rigid fix-ID
|
||||||
|
|
||||||
@ -25,18 +25,20 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the rotational kinetic energy of
|
Define a computation that calculates the rotational kinetic energy of
|
||||||
a collection of rigid bodies, as defined by one of the :doc:`fix rigid <fix_rigid>` command variants.
|
a collection of rigid bodies, as defined by one of the
|
||||||
|
:doc:`fix rigid <fix_rigid>` command variants.
|
||||||
|
|
||||||
The rotational energy of each rigid body is computed as 1/2 I Wbody\^2,
|
The rotational energy of each rigid body is computed as
|
||||||
where I is the inertia tensor for the rigid body, and Wbody is its
|
:math:`\frac12 I \omega_\text{body}^2`,
|
||||||
angular velocity vector. Both I and Wbody are in the frame of
|
where :math:`I` is the inertia tensor for the rigid body and
|
||||||
reference of the rigid body, i.e. I is diagonalized.
|
:math:`\omega_\text{body}` is its angular velocity vector.
|
||||||
|
Both :math:`I` and :math:`\omega_\text{body}` are in the frame of
|
||||||
|
reference of the rigid body (i.e., :math:`I` is diagonal).
|
||||||
|
|
||||||
The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>`
|
The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>`
|
||||||
commands which defines the rigid bodies. The group specified in the
|
commands which defines the rigid bodies. The group specified in the
|
||||||
compute command is ignored. The rotational energy of all the rigid
|
compute command is ignored. The rotational energy of all the rigid
|
||||||
bodies defined by the fix rigid command in included in the
|
bodies defined by the fix rigid command in included in the calculation.
|
||||||
calculation.
|
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -46,14 +48,15 @@ of all the rigid bodies). This value can be used by any command that
|
|||||||
uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
uses a global scalar value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive". The
|
The scalar value calculated by this compute is "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This compute is part of the RIGID package. It is only enabled if
|
This compute is part of the RIGID package. It is only enabled if
|
||||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
LAMMPS was built with that package. See the
|
||||||
|
:doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute erotate/sphere command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID erotate/sphere
|
compute ID group-ID erotate/sphere
|
||||||
|
|
||||||
@ -26,8 +26,9 @@ Description
|
|||||||
Define a computation that calculates the rotational kinetic energy of
|
Define a computation that calculates the rotational kinetic energy of
|
||||||
a group of spherical particles.
|
a group of spherical particles.
|
||||||
|
|
||||||
The rotational energy is computed as 1/2 I w\^2, where I is the moment
|
The rotational energy is computed as :math:`\frac12 I \omega^2`,
|
||||||
of inertia for a sphere and w is the particle's angular velocity.
|
where :math:`I` is the moment of inertia for a sphere and :math:`\omega`
|
||||||
|
is the particle's angular velocity.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -43,7 +44,7 @@ used by any command that uses a global scalar value from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive". The
|
The scalar value calculated by this compute is "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute erotate/sphere/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID erotate/sphere/atom
|
compute ID group-ID erotate/sphere/atom
|
||||||
|
|
||||||
@ -26,8 +26,9 @@ Description
|
|||||||
Define a computation that calculates the rotational kinetic energy for
|
Define a computation that calculates the rotational kinetic energy for
|
||||||
each particle in a group.
|
each particle in a group.
|
||||||
|
|
||||||
The rotational energy is computed as 1/2 I w\^2, where I is the moment
|
The rotational energy is computed as :math:`\frac12 I \omega^2`, where
|
||||||
of inertia for a sphere and w is the particle's angular velocity.
|
:math:`I` is the moment of inertia for a sphere and :math:`\omega` is the
|
||||||
|
particle's angular velocity.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -36,8 +37,7 @@ of inertia for a sphere and w is the particle's angular velocity.
|
|||||||
as in 3d.
|
as in 3d.
|
||||||
|
|
||||||
The value of the rotational kinetic energy will be 0.0 for atoms not
|
The value of the rotational kinetic energy will be 0.0 for atoms not
|
||||||
in the specified compute group or for point particles with a radius =
|
in the specified compute group or for point particles with a radius of 0.0.
|
||||||
0.0.
|
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute event/displace command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID event/displace threshold
|
compute ID group-ID event/displace threshold
|
||||||
|
|
||||||
@ -27,10 +27,9 @@ Description
|
|||||||
Define a computation that flags an "event" if any particle in the
|
Define a computation that flags an "event" if any particle in the
|
||||||
group has moved a distance greater than the specified threshold
|
group has moved a distance greater than the specified threshold
|
||||||
distance when compared to a previously stored reference state
|
distance when compared to a previously stored reference state
|
||||||
(i.e. the previous event). This compute is typically used in
|
(i.e., the previous event). This compute is typically used in
|
||||||
conjunction with the :doc:`prd <prd>` and :doc:`tad <tad>` commands,
|
conjunction with the :doc:`prd <prd>` and :doc:`tad <tad>` commands,
|
||||||
to detect if a transition
|
to detect if a transition to a new minimum energy basin has occurred.
|
||||||
to a new minimum energy basin has occurred.
|
|
||||||
|
|
||||||
This value calculated by the compute is equal to 0 if no particle has
|
This value calculated by the compute is equal to 0 if no particle has
|
||||||
moved far enough, and equal to 1 if one or more particles have moved
|
moved far enough, and equal to 1 if one or more particles have moved
|
||||||
@ -51,7 +50,7 @@ used by any command that uses a global scalar value from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "intensive". The
|
The scalar value calculated by this compute is "intensive." The
|
||||||
scalar value will be a 0 or 1 as explained above.
|
scalar value will be a 0 or 1 as explained above.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,9 +6,9 @@ compute fabric command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID fabric cutoff attribute1 attribute2 ... keyword values ...
|
compute ID group-ID fabric cutoff attribute ... keyword values ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* fabric = style name of this compute command
|
* fabric = style name of this compute command
|
||||||
@ -20,6 +20,7 @@ Syntax
|
|||||||
*radius* = cutoffs determined based on atom diameters (atom style sphere)
|
*radius* = cutoffs determined based on atom diameters (atom style sphere)
|
||||||
|
|
||||||
* one or more attributes may be appended
|
* one or more attributes may be appended
|
||||||
|
* attribute = *contact* or *branch* or *force/normal* or *force/tangential*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -63,7 +64,7 @@ tangential force tensor. The contact tensor is calculated as
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
C_{ab} = \frac{15}{2} (\phi_{ab} - \mathrm{tr}(\phi) \delta_{ab})
|
C_{ab} = \frac{15}{2} (\phi_{ab} - \mathrm{Tr}(\phi) \delta_{ab})
|
||||||
|
|
||||||
where :math:`a` and :math:`b` are the :math:`x`, :math:`y`, :math:`z`
|
where :math:`a` and :math:`b` are the :math:`x`, :math:`y`, :math:`z`
|
||||||
directions, :math:`\delta_{ab}` is the Kronecker delta function, and
|
directions, :math:`\delta_{ab}` is the Kronecker delta function, and
|
||||||
@ -75,13 +76,14 @@ the tensor :math:`\phi` is defined as
|
|||||||
|
|
||||||
where :math:`n` loops over the :math:`N_p` pair interactions in the simulation,
|
where :math:`n` loops over the :math:`N_p` pair interactions in the simulation,
|
||||||
:math:`r_{a}` is the :math:`a` component of the radial vector between the
|
:math:`r_{a}` is the :math:`a` component of the radial vector between the
|
||||||
two pairwise interacting particles, and :math:`r` is the magnitude of the radial vector.
|
two pairwise interacting particles, and :math:`r` is the magnitude of the
|
||||||
|
radial vector.
|
||||||
|
|
||||||
The branch tensor is calculated as
|
The branch tensor is calculated as
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
B_{ab} = \frac{15}{6 \mathrm{tr}(D)} (D_{ab} - \mathrm{tr}(D) \delta_{ab})
|
B_{ab} = \frac{15}{6 \mathrm{Tr}(D)} (D_{ab} - \mathrm{Tr}(D) \delta_{ab})
|
||||||
|
|
||||||
where the tensor :math:`D` is defined as
|
where the tensor :math:`D` is defined as
|
||||||
|
|
||||||
@ -91,14 +93,15 @@ where the tensor :math:`D` is defined as
|
|||||||
\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}
|
\frac{1}{N_c (r^2 + C_{cd} r_c r_d)}
|
||||||
\frac{r_{a} r_{b}}{r}
|
\frac{r_{a} r_{b}}{r}
|
||||||
|
|
||||||
where :math:`N_c` is the total number of contacts in the system and the subscripts
|
where :math:`N_c` is the total number of contacts in the system and the
|
||||||
:math:`c` and :math:`d` indices are summed according to Einstein notation.
|
subscripts :math:`c` and :math:`d` indices are summed according to Einstein
|
||||||
|
notation.
|
||||||
|
|
||||||
The normal force fabric tensor is calculated as
|
The normal force fabric tensor is calculated as
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
F^n_{ab} = \frac{15}{6 \mathrm{tr}(N)} (N_{ab} - \mathrm{tr}(N) \delta_{ab})
|
F^n_{ab} = \frac{15}{6\, \mathrm{Tr}(N)} (N_{ab} - \mathrm{Tr}(N) \delta_{ab})
|
||||||
|
|
||||||
where the tensor :math:`N` is defined as
|
where the tensor :math:`N` is defined as
|
||||||
|
|
||||||
@ -116,7 +119,7 @@ as
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
F^t_{ab} = \frac{15}{9 \mathrm{tr}(N)} (T_{ab} - \mathrm{tr}(T) \delta_{ab})
|
F^t_{ab} = \frac{15}{9\, \mathrm{Tr}(N)} (T_{ab} - \mathrm{Tr}(T) \delta_{ab})
|
||||||
|
|
||||||
where the tensor :math:`T` is defined as
|
where the tensor :math:`T` is defined as
|
||||||
|
|
||||||
@ -133,21 +136,23 @@ Interactions between two atoms are only included in calculations if the atom typ
|
|||||||
are in the two lists. Each list consists of a series of type
|
are in the two lists. Each list consists of a series of type
|
||||||
ranges separated by commas. The range can be specified as a
|
ranges separated by commas. The range can be specified as a
|
||||||
single numeric value, or a wildcard asterisk can be used to specify a range
|
single numeric value, or a wildcard asterisk can be used to specify a range
|
||||||
of values. This takes the form "\*" or "\*n" or "n\*" or "m\*n". For
|
of values. This takes the form "\*" or "\*n" or "m\*" or "m\*n". For
|
||||||
example, if M = the number of atom types, then an asterisk with no numeric
|
example, if :math:`M` is the number of atom types, then an asterisk with no
|
||||||
values means all types from 1 to M. A leading asterisk means all types
|
numeric values means all types from 1 to :math:`M`. A leading asterisk means
|
||||||
from 1 to n (inclusive). A trailing asterisk means all types from n to M
|
all types from 1 to n (inclusive). A trailing asterisk means all types from
|
||||||
(inclusive). A middle asterisk means all types from m to n (inclusive).
|
m to :math:`M` (inclusive). A middle asterisk means all types from m to n
|
||||||
Multiple *type/include* keywords may be added.
|
(inclusive). Multiple *type/include* keywords may be added.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a local vector of doubles and a scalar. The vector stores the
|
This compute calculates a local vector of doubles and a scalar. The vector
|
||||||
unique components of the first requested tensor in the order xx, yy, zz, xy, xz, yz
|
stores the unique components of the first requested tensor in the order
|
||||||
followed by the same components for all subsequent tensors. The length of the vector
|
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`
|
||||||
is therefore six times the number of requested tensors. The scalar output is the
|
followed by the same components for all subsequent tensors.
|
||||||
number of pairwise interactions included in the calculation of the fabric tensor.
|
The length of the vector is therefore six times the number of requested
|
||||||
|
tensors. The scalar output is the number of pairwise interactions included in
|
||||||
|
the calculation of the fabric tensor.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -164,7 +169,7 @@ following fixes which add rigid-body constraints: :doc:`fix shake
|
|||||||
<fix_shake>`, :doc:`fix rattle <fix_shake>`, :doc:`fix rigid
|
<fix_shake>`, :doc:`fix rattle <fix_shake>`, :doc:`fix rigid
|
||||||
<fix_rigid>`, :doc:`fix rigid/small <fix_rigid>`. It does not support
|
<fix_rigid>`, :doc:`fix rigid/small <fix_rigid>`. It does not support
|
||||||
granular pair styles that extend beyond the contact of atomic radii
|
granular pair styles that extend beyond the contact of atomic radii
|
||||||
(e.g. JKR and DMT).
|
(e.g., JKR and DMT).
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute fep command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID fep temp attribute args ... keyword value ...
|
compute ID group-ID fep temp attribute args ... keyword value ...
|
||||||
|
|
||||||
@ -19,12 +19,12 @@ Syntax
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*pair* args = pstyle pparam I J v_delta
|
*pair* args = pstyle pparam I J v_delta
|
||||||
pstyle = pair style name, e.g. lj/cut
|
pstyle = pair style name (e.g., *lj/cut*)
|
||||||
pparam = parameter to perturb
|
pparam = parameter to perturb
|
||||||
I,J = type pair(s) to set parameter for
|
I,J = type pair(s) to set parameter for
|
||||||
v_delta = variable with perturbation to apply (in the units of the parameter)
|
v_delta = variable with perturbation to apply (in the units of the parameter)
|
||||||
*atom* args = aparam I v_delta
|
*atom* args = aparam I v_delta
|
||||||
aparam = parameter to perturb
|
aparam = *charge* = parameter to perturb
|
||||||
I = type to set parameter for
|
I = type to set parameter for
|
||||||
v_delta = variable with perturbation to apply (in the units of the parameter)
|
v_delta = variable with perturbation to apply (in the units of the parameter)
|
||||||
|
|
||||||
@ -37,8 +37,8 @@ Syntax
|
|||||||
*no* = ignore tail correction to pair energies (usually small in fep)
|
*no* = ignore tail correction to pair energies (usually small in fep)
|
||||||
*yes* = include tail correction to pair energies
|
*yes* = include tail correction to pair energies
|
||||||
*volume* value = *no* or *yes*
|
*volume* value = *no* or *yes*
|
||||||
*no* = ignore volume changes (e.g. in *NVE* or *NVT* trajectories)
|
*no* = ignore volume changes (e.g., in *NVE* or *NVT* trajectories)
|
||||||
*yes* = include volume changes (e.g. in *NpT* trajectories)
|
*yes* = include volume changes (e.g., in *NPT* trajectories)
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -84,7 +84,7 @@ It is possible but not necessary that the coupling parameter (or a
|
|||||||
function thereof) appears as a multiplication factor of the potential
|
function thereof) appears as a multiplication factor of the potential
|
||||||
energy. Therefore, this compute can apply perturbations to interaction
|
energy. Therefore, this compute can apply perturbations to interaction
|
||||||
parameters that are not directly proportional to the potential energy
|
parameters that are not directly proportional to the potential energy
|
||||||
(e.g. :math:`\sigma` in Lennard-Jones potentials).
|
(e.g., :math:`\sigma` in Lennard-Jones potentials).
|
||||||
|
|
||||||
This command can be combined with :doc:`fix adapt <fix_adapt>` to
|
This command can be combined with :doc:`fix adapt <fix_adapt>` to
|
||||||
perform multistage free-energy perturbation calculations along
|
perform multistage free-energy perturbation calculations along
|
||||||
@ -92,9 +92,9 @@ stepwise alchemical transformations during a simulation run:
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\Delta_0^1 A = \sum_{i=0}^{n-1} \Delta_{\lambda_i}^{\lambda_{i+1}} A = - kT
|
\Delta_0^1 A = \sum_{i=0}^{n-1} \Delta_{\lambda_i}^{\lambda_{i+1}} A = - k_B T
|
||||||
\sum_{i=0}^{n-1} \ln \left< \exp \left( - \frac{U(\lambda_{i+1}) -
|
\sum_{i=0}^{n-1} \ln \left< \exp \left( - \frac{U(\lambda_{i+1}) -
|
||||||
U(\lambda_i)}{kT} \right) \right>_{\lambda_i}
|
U(\lambda_i)}{k_B T} \right) \right>_{\lambda_i}
|
||||||
|
|
||||||
This compute is suitable for the finite-difference thermodynamic
|
This compute is suitable for the finite-difference thermodynamic
|
||||||
integration (FDTI) method :ref:`(Mezei) <Mezei>`, which is based on an
|
integration (FDTI) method :ref:`(Mezei) <Mezei>`, which is based on an
|
||||||
@ -107,7 +107,8 @@ perturbation method using a very small :math:`\delta`:
|
|||||||
A(\lambda)}{\partial\lambda} \right)_\lambda \mathrm{d}\lambda \approx
|
A(\lambda)}{\partial\lambda} \right)_\lambda \mathrm{d}\lambda \approx
|
||||||
\sum_{i=0}^{n-1} w_i \frac{A(\lambda_{i} + \delta) - A(\lambda_i)}{\delta}
|
\sum_{i=0}^{n-1} w_i \frac{A(\lambda_{i} + \delta) - A(\lambda_i)}{\delta}
|
||||||
|
|
||||||
where :math:`w_i` are weights of a numerical quadrature. The :doc:`fix adapt <fix_adapt>` command can be used to define the stages of
|
where :math:`w_i` are weights of a numerical quadrature. The
|
||||||
|
:doc:`fix adapt <fix_adapt>` command can be used to define the stages of
|
||||||
:math:`\lambda` at which the derivative is calculated and averaged.
|
:math:`\lambda` at which the derivative is calculated and averaged.
|
||||||
|
|
||||||
The compute fep calculates the exponential Boltzmann term and also the
|
The compute fep calculates the exponential Boltzmann term and also the
|
||||||
@ -125,14 +126,14 @@ the derivative of the potential energy with respect to :math:`\lambda`:
|
|||||||
|
|
||||||
Another technique to calculate free energy differences is the
|
Another technique to calculate free energy differences is the
|
||||||
acceptance ratio method :ref:`(Bennet) <Bennet>`, which can be implemented
|
acceptance ratio method :ref:`(Bennet) <Bennet>`, which can be implemented
|
||||||
by calculating the potential energy differences with :math:`\delta` = 1.0 on
|
by calculating the potential energy differences with :math:`\delta = 1.0` on
|
||||||
both the forward and reverse routes:
|
both the forward and reverse routes:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\left< \frac{1}{1 + \exp\left[\left(U_1 - U_0 - \Delta_0^1A \right) /kT
|
\left< \frac{1}{1 + \exp\left[\left(U_1 - U_0 - \Delta_0^1A \right) /k_B T
|
||||||
\right]} \right>_0 = \left< \frac{1}{1 + \exp\left[\left(U_0 - U_1 +
|
\right]} \right>_0 = \left< \frac{1}{1 + \exp\left[\left(U_0 - U_1 +
|
||||||
\Delta_0^1A \right) /kT \right]} \right>_1
|
\Delta_0^1A \right) /k_B T \right]} \right>_1
|
||||||
|
|
||||||
The value of the free energy difference is determined by numerical
|
The value of the free energy difference is determined by numerical
|
||||||
root finding to establish the equality.
|
root finding to establish the equality.
|
||||||
@ -226,17 +227,17 @@ the pair\_\*.cpp file associated with the potential.
|
|||||||
|
|
||||||
Similar to the :doc:`pair_coeff <pair_coeff>` command, I and J can be
|
Similar to the :doc:`pair_coeff <pair_coeff>` command, I and J can be
|
||||||
specified in one of two ways. Explicit numeric values can be used for
|
specified in one of two ways. Explicit numeric values can be used for
|
||||||
each, as in the first example above. I <= J is required. LAMMPS sets
|
each, as in the first example above. I :math:`\le` J is required. LAMMPS sets
|
||||||
the coefficients for the symmetric J,I interaction to the same
|
the coefficients for the symmetric J,I interaction to the same
|
||||||
values. A wild-card asterisk can be used in place of or in conjunction
|
values. A wild-card asterisk can be used in place of or in conjunction
|
||||||
with the I,J arguments to set the coefficients for multiple pairs of
|
with the I,J arguments to set the coefficients for multiple pairs of
|
||||||
atom types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
atom types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If
|
||||||
the number of atom types, then an asterisk with no numeric values
|
:math:`N` is the number of atom types, then an asterisk with no numeric values
|
||||||
means all types from 1 to N. A leading asterisk means all types from
|
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
|
1 to n (inclusive). A trailing asterisk means all types from m to N
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n
|
||||||
(inclusive). Note that only type pairs with I <= J are considered; if
|
(inclusive). Note that only type pairs with I :math:`\le` J are considered; if
|
||||||
asterisks imply type pairs where J < I, they are ignored.
|
asterisks imply type pairs where J :math:`<` I, they are ignored.
|
||||||
|
|
||||||
If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is being
|
If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is being
|
||||||
used, then the *pstyle* will be a sub-style name. You must specify
|
used, then the *pstyle* will be a sub-style name. You must specify
|
||||||
@ -275,8 +276,8 @@ trajectories during which the volume fluctuates or changes :ref:`(Allen and Tild
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\Delta_0^1 A = - kT \sum_{i=0}^{n-1} \ln \frac{\left< V \exp \left( -
|
\Delta_0^1 A = - k_B T \sum_{i=0}^{n-1} \ln \frac{\left< V \exp \left( -
|
||||||
\frac{U(\lambda_{i+1}) - U(\lambda_i)}{kT} \right)
|
\frac{U(\lambda_{i+1}) - U(\lambda_i)}{k_B T} \right)
|
||||||
\right>_{\lambda_i}}{\left< V \right>_{\lambda_i}}
|
\right>_{\lambda_i}}{\left< V \right>_{\lambda_i}}
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -286,8 +287,8 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a global vector of length 3 which contains the
|
This compute calculates a global vector of length 3 which contains the
|
||||||
energy difference ( :math:`U_1-U_0` ) as c_ID[1], the
|
energy difference ( :math:`U_1-U_0` ) as c_ID[1], the
|
||||||
Boltzmann factor :math:`\exp(-(U_1-U_0)/kT)`, or
|
Boltzmann factor :math:`\exp(-(U_1-U_0)/k_B T)`, or
|
||||||
:math:`V \exp(-(U_1-U_0)/kT)`, as c_ID[2] and the
|
:math:`V \exp(-(U_1-U_0)/k_B T)`, as c_ID[2] and the
|
||||||
volume of the simulation box :math:`V` as c_ID[3]. :math:`U_1` is the
|
volume of the simulation box :math:`V` as c_ID[3]. :math:`U_1` is the
|
||||||
pair potential energy obtained with the perturbed parameters and
|
pair potential energy obtained with the perturbed parameters and
|
||||||
:math:`U_0` is the pair potential energy obtained with the
|
:math:`U_0` is the pair potential energy obtained with the
|
||||||
@ -298,7 +299,7 @@ These output results can be used by any command that uses a global
|
|||||||
scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
scalar or vector from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`.
|
options. For example, the computed values can be averaged using :doc:`fix ave/time <fix_ave_time>`.
|
||||||
|
|
||||||
The values calculated by this compute are "extensive".
|
The values calculated by this compute are "extensive."
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute fep/ta command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID fep/ta temp plane scale_factor keyword value ...
|
compute ID group-ID fep/ta temp plane scale_factor keyword value ...
|
||||||
|
|
||||||
@ -20,9 +20,9 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*tail* value = *no* or *yes*
|
*tail* value = *no* or *yes*
|
||||||
*no* = ignore tail correction to pair energies (usually small in fep)
|
*no* = ignore tail correction to pair energies (usually small in fep)
|
||||||
*yes* = include tail correction to pair energies
|
*yes* = include tail correction to pair energies
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -42,11 +42,12 @@ in a single simulation:
|
|||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\gamma = \lim_{\Delta \mathcal{A} \to 0} \left( \frac{\Delta A_{0 \to 1 }}{\Delta \mathcal{A}}\right)_{N,V,T}
|
\gamma = \lim_{\Delta \mathcal{A} \to 0} \left( \frac{\Delta A_{0 \to 1 }}{\Delta \mathcal{A}}\right)_{N,V,T}
|
||||||
= - \frac{kT}{\Delta \mathcal{A}} \ln \left< \exp(-(U_1 - U_0)/kT) \right>_0
|
= - \frac{k_B T}{\Delta \mathcal{A}} \ln \left\langle \exp\left(\frac{-(U_1 - U_0)}{k_B T}\right) \right\rangle_0
|
||||||
|
|
||||||
During the perturbation, both axes of *plane* are scaled by multiplying
|
During the perturbation, both axes of *plane* are scaled by multiplying
|
||||||
:math:`\sqrt{scale\_factor}`, while the other axis divided by
|
:math:`\sqrt{\mathrm{scale\_factor}}`, while the other axis divided by
|
||||||
*scale_factor* such that the overall volume of the system is maintained.
|
:math:`\mathrm{scale\_factor}` such that the overall volume of the system is
|
||||||
|
maintained.
|
||||||
|
|
||||||
The *tail* keyword controls the calculation of the tail correction to
|
The *tail* keyword controls the calculation of the tail correction to
|
||||||
"van der Waals" pair energies beyond the cutoff, if this has been
|
"van der Waals" pair energies beyond the cutoff, if this has been
|
||||||
@ -60,8 +61,8 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length 3 which contains the
|
This compute calculates a global vector of length 3 which contains the
|
||||||
energy difference ( :math:`U_1-U_0` ) as c_ID[1], the Boltzmann factor
|
energy difference :math:`(U_1-U_0)` as c_ID[1], the Boltzmann factor
|
||||||
:math:`\exp(-(U_1-U_0)/kT)`, as c_ID[2] and the change in the *plane*
|
:math:`\exp\bigl(-(U_1-U_0)/k_B T\bigr)`, as c_ID[2] and the change in the *plane*
|
||||||
area :math:`\Delta \mathcal{A}` as c_ID[3]. :math:`U_1` is the potential
|
area :math:`\Delta \mathcal{A}` as c_ID[3]. :math:`U_1` is the potential
|
||||||
energy of the perturbed state and :math:`U_0` is the potential energy of
|
energy of the perturbed state and :math:`U_0` is the potential energy of
|
||||||
the reference state. The energies include kspace terms if these are
|
the reference state. The energies include kspace terms if these are
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute global/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID style index input1 input2 ...
|
compute ID group-ID style index input1 input2 ...
|
||||||
|
|
||||||
@ -55,18 +55,20 @@ reference a global vector or array from a :doc:`compute <compute>` or
|
|||||||
:doc:`fix <fix>` or the evaluation of an vector-style
|
:doc:`fix <fix>` or the evaluation of an vector-style
|
||||||
:doc:`variable <variable>`. Details are given below.
|
:doc:`variable <variable>`. Details are given below.
|
||||||
|
|
||||||
The *index* value for an atom is used as a index I (from 1 to N) into
|
The *index* value for an atom is used as an index :math:`I` (from 1 to
|
||||||
the vector associated with each of the input values. The Ith value
|
:math:`N`, where :math:`N` is the number of atoms) into the vector
|
||||||
|
associated with each of the input values. The :math:`I`\ th value
|
||||||
from the input vector becomes one output value for that atom. If the
|
from the input vector becomes one output value for that atom. If the
|
||||||
atom is not in the specified group, or the index I < 1 or I > M, where
|
atom is not in the specified group, or the index :math:`I < 1` or
|
||||||
M is the actual length of the input vector, then an output value of
|
:math:`I > M`, where :math:`M` is the actual length of the input vector,
|
||||||
0.0 is assigned to the atom.
|
then an output value of 0.0 is assigned to the atom.
|
||||||
|
|
||||||
An example of how this command is useful, is in the context of
|
An example of how this command is useful, is in the context of
|
||||||
"chunks" which are static or dynamic subsets of atoms. The :doc:`compute chunk/atom <compute_chunk_atom>` command assigns unique chunk IDs
|
"chunks" which are static or dynamic subsets of atoms. The :doc:`compute chunk/atom <compute_chunk_atom>` command assigns unique chunk IDs
|
||||||
to each atom. It's output can be used as the *index* parameter for
|
to each atom. Its output can be used as the *index* parameter for
|
||||||
this command. Various other computes with "chunk" in their style
|
this command. Various other computes with "chunk" in their style
|
||||||
name, such as :doc:`compute com/chunk <compute_com_chunk>` or :doc:`compute msd/chunk <compute_msd_chunk>`, calculate properties for each
|
name, such as :doc:`compute com/chunk <compute_com_chunk>` or
|
||||||
|
:doc:`compute msd/chunk <compute_msd_chunk>`, calculate properties for each
|
||||||
chunk. The output of these commands are global vectors or arrays,
|
chunk. The output of these commands are global vectors or arrays,
|
||||||
with one or more values per chunk, and can be used as input values for
|
with one or more values per chunk, and can be used as input values for
|
||||||
this command. This command will then assign the global chunk value to
|
this command. This command will then assign the global chunk value to
|
||||||
@ -102,17 +104,18 @@ they work.
|
|||||||
Note that for input values from a compute or fix, the bracketed index
|
Note that for input values from a compute or fix, the bracketed index
|
||||||
I can be specified using a wildcard asterisk with the index to
|
I can be specified using a wildcard asterisk with the index to
|
||||||
effectively specify multiple values. This takes the form "\*" or "\*n"
|
effectively specify multiple values. This takes the form "\*" or "\*n"
|
||||||
or "n\*" or "m\*n". If N = the size of the vector (for *mode* = scalar)
|
or "m\*" or "m\*n". If :math:`N` is the size of the vector
|
||||||
|
(for *mode* = scalar)
|
||||||
or the number of columns in the array (for *mode* = vector), then an
|
or the number of columns in the array (for *mode* = vector), then an
|
||||||
asterisk with no numeric values means all indices from 1 to N. A
|
asterisk with no numeric values means all indices from 1 to :math:`N`.
|
||||||
leading asterisk means all indices from 1 to n (inclusive). A
|
A leading asterisk means all indices from 1 to n (inclusive). A
|
||||||
trailing asterisk means all indices from n to N (inclusive). A middle
|
trailing asterisk means all indices from m to :math:`N` (inclusive).
|
||||||
asterisk means all indices from m to n (inclusive).
|
A middle asterisk means all indices from m to n (inclusive).
|
||||||
|
|
||||||
Using a wildcard is the same as if the individual columns of the array
|
Using a wildcard is the same as if the individual columns of the array
|
||||||
had been listed one by one. E.g. these 2 compute global/atom commands
|
had been listed one by one. For example, the following two compute global/atom
|
||||||
are equivalent, since the :doc:`compute com/chunk <compute_com_chunk>`
|
commands are equivalent, since the :doc:`compute com/chunk <compute_com_chunk>`
|
||||||
command creates a global array with 3 columns:
|
command creates a global array with three columns:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -124,14 +127,14 @@ command creates a global array with 3 columns:
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
This section explains the *index* parameter. Note that it must
|
This section explains the *index* parameter. Note that it must
|
||||||
reference per-atom values, as contrasted with the *input* values which
|
reference per-atom values, as contrasted with the *input* values, which
|
||||||
must reference global values.
|
must reference global values.
|
||||||
|
|
||||||
Note that all of these options generate floating point values. When
|
Note that all of these options generate floating point values. When
|
||||||
they are used as an index into the specified input vectors, they
|
they are used as an index into the specified input vectors, they
|
||||||
simple rounded down to convert the value to integer indices. The
|
simple rounded down to convert the value to integer indices. The
|
||||||
final values should range from 1 to N (inclusive), since they are used
|
final values should range from 1 to :math:`N` (inclusive), since they are used
|
||||||
to access values from N-length vectors.
|
to access values from :math:`N`-length vectors.
|
||||||
|
|
||||||
If *index* begins with "c\_", a compute ID must follow which has been
|
If *index* begins with "c\_", a compute ID must follow which has been
|
||||||
previously defined in the input script. The compute must generate
|
previously defined in the input script. The compute must generate
|
||||||
@ -177,7 +180,8 @@ global vector or array. See the individual :doc:`compute <compute>` doc
|
|||||||
page for details. If no bracketed integer is appended, the vector
|
page for details. If no bracketed integer is appended, the vector
|
||||||
calculated by the compute is used. If a bracketed integer is
|
calculated by the compute is used. If a bracketed integer is
|
||||||
appended, the Ith column of the array calculated by the compute is
|
appended, the Ith column of the array calculated by the compute is
|
||||||
used. Users can also write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how
|
used. Users can also write code for their own compute styles and
|
||||||
|
:doc:`add them to LAMMPS <Modify>`. See the discussion above for how
|
||||||
I can be specified with a wildcard asterisk to effectively specify
|
I can be specified with a wildcard asterisk to effectively specify
|
||||||
multiple values.
|
multiple values.
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute group/group command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID group/group group2-ID keyword value ...
|
compute ID group-ID group/group group2-ID keyword value ...
|
||||||
|
|
||||||
@ -102,19 +102,20 @@ frequently.
|
|||||||
|
|
||||||
If you have a bonded system, then the settings of
|
If you have a bonded system, then the settings of
|
||||||
:doc:`special_bonds <special_bonds>` command can remove pairwise
|
:doc:`special_bonds <special_bonds>` command can remove pairwise
|
||||||
interactions between atoms in the same bond, angle, or dihedral. This
|
interactions between atoms in the same bond, angle, or dihedral. This is
|
||||||
is the default setting for the :doc:`special_bonds <special_bonds>`
|
the default setting for the :doc:`special_bonds <special_bonds>` command,
|
||||||
command, and means those pairwise interactions do not appear in the
|
and means those pairwise interactions do not appear in the neighbor list.
|
||||||
neighbor list. Because this compute uses a neighbor list, it also
|
Because this compute uses a neighbor list, it also means those pairs will
|
||||||
means those pairs will not be included in the group/group interaction.
|
not be included in the group/group interaction. This does not apply when
|
||||||
This does not apply when using long-range coulomb interactions
|
using long-range Coulomb interactions
|
||||||
(\ *coul/long*, *coul/msm*, *coul/wolf* or similar. One way to get
|
(\ *coul/long*, *coul/msm*, *coul/wolf* or similar). One way to get
|
||||||
around this would be to set special_bond scaling factors to very tiny
|
around this would be to set *special_bond* scaling factors to very tiny
|
||||||
numbers that are not exactly zero (e.g. 1.0e-50). Another workaround
|
numbers that are not exactly zero (e.g., :math:`1.0 \times 10^{-50}`).
|
||||||
is to write a dump file, and use the :doc:`rerun <rerun>` command to
|
Another workaround would be to write a dump file and use the
|
||||||
compute the group/group interactions for snapshots in the dump file.
|
:doc:`rerun <rerun>` command to compute the group/group interactions for
|
||||||
The rerun script can use a :doc:`special_bonds <special_bonds>` command
|
snapshots in the dump file. The rerun script can use a
|
||||||
that includes all pairs in the neighbor list.
|
:doc:`special_bonds <special_bonds>` command that includes all pairs in the
|
||||||
|
neighbor list.
|
||||||
|
|
||||||
If you desire a breakdown of the interactions into a pairwise and
|
If you desire a breakdown of the interactions into a pairwise and
|
||||||
Kspace component, simply invoke the compute twice with the appropriate
|
Kspace component, simply invoke the compute twice with the appropriate
|
||||||
@ -132,20 +133,21 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global scalar (the energy) and a global
|
This compute calculates a global scalar (the energy) and a global
|
||||||
vector of length 3 (force), which can be accessed by indices 1-3.
|
vector of length 3 (force), which can be accessed by indices 1--3.
|
||||||
These values can be used by any command that uses global scalar or
|
These values can be used by any command that uses global scalar or
|
||||||
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
vector values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
Both the scalar and vector values calculated by this compute are
|
Both the scalar and vector values calculated by this compute are
|
||||||
"extensive". The scalar value will be in energy :doc:`units <units>`.
|
"extensive." The scalar value will be in energy :doc:`units <units>`.
|
||||||
The vector values will be in force :doc:`units <units>`.
|
The vector values will be in force :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
Not all pair styles can be evaluated in a pairwise mode as required by
|
Not all pair styles can be evaluated in a pairwise mode as required by
|
||||||
this compute. For example, 3-body and other many-body potentials,
|
this compute. For example, three-body and other many-body potentials,
|
||||||
such as :doc:`Tersoff <pair_tersoff>` and
|
such as :doc:`Tersoff <pair_tersoff>` and
|
||||||
:doc:`Stillinger-Weber <pair_sw>` cannot be used. :doc:`EAM <pair_eam>`
|
:doc:`Stillinger-Weber <pair_sw>` cannot be used. :doc:`EAM <pair_eam>`
|
||||||
potentials will re-use previously computed embedding term contributions,
|
potentials will re-use previously computed embedding term contributions,
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute gyration command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID gyration
|
compute ID group-ID gyration
|
||||||
|
|
||||||
@ -23,51 +23,54 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the radius of gyration Rg of the
|
Define a computation that calculates the radius of gyration :math:`R_g` of the
|
||||||
group of atoms, including all effects due to atoms passing through
|
group of atoms, including all effects due to atoms passing through
|
||||||
periodic boundaries.
|
periodic boundaries.
|
||||||
|
|
||||||
Rg is a measure of the size of the group of atoms, and is computed as
|
:math:`R_g` is a measure of the size of the group of atoms, and is computed as
|
||||||
the square root of the Rg\^2 value in this formula
|
the square root of the :math:`R_g^2` value in this formula
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
{R_g}^2 = \frac{1}{M} \sum_i m_i (r_i - r_{cm})^2
|
R_g^2 = \frac{1}{M} \sum_i m_i (r_i - r_{\text{cm}})^2
|
||||||
|
|
||||||
where :math:`M` is the total mass of the group, :math:`r_{cm}` is the
|
where :math:`M` is the total mass of the group, :math:`r_{\text{cm}}` is the
|
||||||
center-of-mass position of the group, and the sum is over all atoms in
|
center-of-mass position of the group, and the sum is over all atoms in
|
||||||
the group.
|
the group.
|
||||||
|
|
||||||
A :math:`{R_g}^2` tensor, stored as a 6-element vector, is also calculated
|
A :math:`R_g^2` tensor, stored as a 6-element vector, is also calculated
|
||||||
by this compute. The formula for the components of the tensor is the
|
by this compute. The formula for the components of the tensor is the
|
||||||
same as the above formula, except that :math:`(r_i - r_{cm})^2` is replaced
|
same as the above formula, except that :math:`(r_i - r_{\text{cm}})^2` is
|
||||||
by :math:`(r_{i,x} - r_{cm,x}) \cdot (r_{i,y} - r_{cm,y})` for the xy component,
|
replaced by
|
||||||
and so on. The 6 components of the vector are ordered xx, yy, zz, xy, xz, yz.
|
:math:`(r_{i,x} - r_{\text{cm},x}) \cdot (r_{i,y} - r_{\text{cm},y})` for the
|
||||||
Note that unlike the scalar :math:`R_g`, each of the 6 values of the tensor
|
:math:`xy` component, and so on. The six components of the vector are ordered
|
||||||
|
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
|
||||||
|
Note that unlike the scalar :math:`R_g`, each of the six values of the tensor
|
||||||
is effectively a "squared" value, since the cross-terms may be negative
|
is effectively a "squared" value, since the cross-terms may be negative
|
||||||
and taking a sqrt() would be invalid.
|
and taking a square root would be invalid.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The coordinates of an atom contribute to :math:`R_g` in "unwrapped" form,
|
The coordinates of an atom contribute to :math:`R_g` in "unwrapped" form,
|
||||||
by using the image flags associated with each atom. See the :doc:`dump custom <dump>` command for a discussion of "unwrapped" coordinates.
|
by using the image flags associated with each atom. See the
|
||||||
|
:doc:`dump custom <dump>` command for a discussion of "unwrapped" coordinates.
|
||||||
See the Atoms section of the :doc:`read_data <read_data>` command for a
|
See the Atoms section of the :doc:`read_data <read_data>` command for a
|
||||||
discussion of image flags and how they are set for each atom. You can
|
discussion of image flags and how they are set for each atom. You can
|
||||||
reset the image flags (e.g. to 0) before invoking this compute by
|
reset the image flags (e.g., to 0) before invoking this compute by
|
||||||
using the :doc:`set image <set>` command.
|
using the :doc:`set image <set>` command.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global scalar (:math:`R_g`) and a global vector of
|
This compute calculates a global scalar (:math:`R_g`) and a global vector of
|
||||||
length 6 (:math:`{R_g}^2` tensor), which can be accessed by indices 1-6. These
|
length 6 (:math:`R_g^2` tensor), which can be accessed by indices 1--6. These
|
||||||
values can be used by any command that uses a global scalar value or
|
values can be used by any command that uses a global scalar value or
|
||||||
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar and vector values calculated by this compute are
|
The scalar and vector values calculated by this compute are
|
||||||
"intensive". The scalar and vector values will be in distance and
|
"intensive." The scalar and vector values will be in distance and
|
||||||
distance\^2 :doc:`units <units>` respectively.
|
distance\ :math:`^2` :doc:`units <units>`, respectively.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute gyration/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID gyration/chunk chunkID keyword value ...
|
compute ID group-ID gyration/chunk chunkID keyword value ...
|
||||||
|
|
||||||
@ -31,28 +31,31 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the radius of gyration Rg for
|
Define a computation that calculates the radius of gyration :math:`R_g` for
|
||||||
multiple chunks of atoms.
|
multiple chunks of atoms.
|
||||||
|
|
||||||
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
In LAMMPS, chunks are collections of atoms defined by a
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
||||||
to a single chunk (or no chunk). The ID for this command is specified
|
to a single chunk (or no chunk). The ID for this command is specified
|
||||||
as chunkID. For example, a single chunk could be the atoms in a
|
as chunkID. For example, a single chunk could be the atoms in a
|
||||||
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>`
|
molecule or atoms in a spatial bin.
|
||||||
|
See the :doc:`compute chunk/atom <compute_chunk_atom>` and
|
||||||
|
:doc:`Howto chunk <Howto_chunk>`
|
||||||
doc pages for details of how chunks can be defined and examples of how
|
doc pages for details of how chunks can be defined and examples of how
|
||||||
they can be used to measure properties of a system.
|
they can be used to measure properties of a system.
|
||||||
|
|
||||||
This compute calculates the radius of gyration Rg for each chunk,
|
This compute calculates the radius of gyration :math:`R_g` for each chunk,
|
||||||
which includes all effects due to atoms passing through periodic
|
which includes all effects due to atoms passing through periodic
|
||||||
boundaries.
|
boundaries.
|
||||||
|
|
||||||
Rg is a measure of the size of a chunk, and is computed by this
|
:math:`R_g` is a measure of the size of a chunk, and is computed by the
|
||||||
formula
|
formula
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
{R_g}^2 = \frac{1}{M} \sum_i m_i (r_i - r_{cm})^2
|
R_g^2 = \frac{1}{M} \sum_i m_i (r_i - r_{\text{cm}})^2
|
||||||
|
|
||||||
where :math:`M` is the total mass of the chunk, :math:`r_{cm}` is
|
where :math:`M` is the total mass of the chunk, :math:`r_{\text{cm}}` is
|
||||||
the center-of-mass position of the chunk, and the sum is over all atoms in the
|
the center-of-mass position of the chunk, and the sum is over all atoms in the
|
||||||
chunk.
|
chunk.
|
||||||
|
|
||||||
@ -64,13 +67,13 @@ thus also not contribute to this calculation. You can specify the
|
|||||||
"all" group for this command if you simply want to include atoms with
|
"all" group for this command if you simply want to include atoms with
|
||||||
non-zero chunk IDs.
|
non-zero chunk IDs.
|
||||||
|
|
||||||
If the *tensor* keyword is specified, then the scalar Rg value is not
|
If the *tensor* keyword is specified, then the scalar :math:`R_g` value is not
|
||||||
calculated, but an Rg tensor is instead calculated for each chunk.
|
calculated, but an :math:`R_g` tensor is instead calculated for each chunk.
|
||||||
The formula for the components of the tensor is the same as the above
|
The formula for the components of the tensor is the same as the above
|
||||||
formula, except that :math:`(r_i - r_{cm})^2` is replaced by
|
formula, except that :math:`(r_i - r_{\text{cm}})^2` is replaced by
|
||||||
:math:`(r_{i,x} - r_{cm,x}) \cdot (r_{i,y} - r_{cm,y})` for the xy
|
:math:`(r_{i,x} - r_{\text{cm},x}) \cdot (r_{i,y} - r_{\text{cm},y})` for the
|
||||||
component, and so on. The 6 components of the tensor are
|
:math:`xy` component, and so on. The six components of the tensor are
|
||||||
ordered xx, yy, zz, xy, xz, yz.
|
ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -79,7 +82,7 @@ ordered xx, yy, zz, xy, xz, yz.
|
|||||||
command for a discussion of "unwrapped" coordinates.
|
command for a discussion of "unwrapped" coordinates.
|
||||||
See the Atoms section of the :doc:`read_data <read_data>` command for a
|
See the Atoms section of the :doc:`read_data <read_data>` command for a
|
||||||
discussion of image flags and how they are set for each atom. You can
|
discussion of image flags and how they are set for each atom. You can
|
||||||
reset the image flags (e.g. to 0) before invoking this compute by
|
reset the image flags (e.g., to 0) before invoking this compute by
|
||||||
using the :doc:`set image <set>` command.
|
using the :doc:`set image <set>` command.
|
||||||
|
|
||||||
The simplest way to output the results of the compute gyration/chunk
|
The simplest way to output the results of the compute gyration/chunk
|
||||||
@ -98,8 +101,9 @@ Output info
|
|||||||
This compute calculates a global vector if the *tensor* keyword is not
|
This compute calculates a global vector if the *tensor* keyword is not
|
||||||
specified and a global array if it is. The length of the vector or
|
specified and a global array if it is. The length of the vector or
|
||||||
number of rows in the array = the number of chunks *Nchunk* as
|
number of rows in the array = the number of chunks *Nchunk* as
|
||||||
calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. If the *tensor* keyword
|
calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>`
|
||||||
is specified, the global array has 6 columns. The vector or array can
|
command. If the *tensor* keyword is specified, the global array has six
|
||||||
|
columns. The vector or array can
|
||||||
be accessed by any command that uses global values from a compute as
|
be accessed by any command that uses global values from a compute as
|
||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute gyration/shape command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID gyration/shape compute-ID
|
compute ID group-ID gyration/shape compute-ID
|
||||||
|
|
||||||
@ -28,30 +28,33 @@ Define a computation that calculates the eigenvalues of the gyration tensor of a
|
|||||||
group of atoms and three shape parameters. The computation includes all effects
|
group of atoms and three shape parameters. The computation includes all effects
|
||||||
due to atoms passing through periodic boundaries.
|
due to atoms passing through periodic boundaries.
|
||||||
|
|
||||||
The three computed shape parameters are the asphericity, b, the acylindricity, c,
|
The three computed shape parameters are the asphericity, :math:`b`,
|
||||||
and the relative shape anisotropy, k:
|
the acylindricity, :math:`c`, and the relative shape anisotropy, :math:`k`,
|
||||||
|
viz.,
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
c = & l_z - 0.5(l_y+l_x) \\
|
b &= l_z - \frac12(l_y+l_x) \\
|
||||||
b = & l_y - l_x \\
|
c &= l_y - l_x \\
|
||||||
k = & \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
k &= \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
||||||
|
|
||||||
where :math:`l_x` <= :math:`l_y` <= :math:`l_z` are the three eigenvalues of the gyration tensor. A general description
|
where :math:`l_x \le l_y \le l_z` are the three eigenvalues of the gyration
|
||||||
of these parameters is provided in :ref:`(Mattice) <Mattice1>` while an application to polymer systems
|
tensor. A general description of these parameters is provided in
|
||||||
|
:ref:`(Mattice) <Mattice1>` while an application to polymer systems
|
||||||
can be found in :ref:`(Theodorou) <Theodorou1>`.
|
can be found in :ref:`(Theodorou) <Theodorou1>`.
|
||||||
The asphericity is always non-negative and zero only when the three principal
|
The asphericity is always non-negative and zero only when the three principal
|
||||||
moments are equal. This zero condition is met when the distribution of particles
|
moments are equal. This zero condition is met when the distribution of
|
||||||
is spherically symmetric (hence the name asphericity) but also whenever the particle
|
particles is spherically symmetric (hence the name asphericity) but also
|
||||||
distribution is symmetric with respect to the three coordinate axes, e.g.,
|
whenever the particle distribution is symmetric with respect to the three
|
||||||
when the particles are distributed uniformly on a cube, tetrahedron or other Platonic
|
coordinate axes (e.g., when the particles are distributed uniformly on a cube,
|
||||||
solid. The acylindricity is always non-negative and zero only when the two principal
|
tetrahedron or other Platonic solid). The acylindricity is always non-negative
|
||||||
moments are equal. This zero condition is met when the distribution of particles is
|
and zero only when the two principal moments are equal. This zero condition is
|
||||||
cylindrically symmetric (hence the name, acylindricity), but also whenever the particle
|
met when the distribution of particles is cylindrically symmetric (hence the
|
||||||
distribution is symmetric with respect to the two coordinate axes, e.g., when the
|
name, acylindricity), but also whenever the particle distribution is symmetric
|
||||||
particles are distributed uniformly on a regular prism. the relative shape anisotropy
|
with respect to the two coordinate axes (e.g., when the
|
||||||
is bounded between zero (if all points are spherically symmetric) and one
|
particles are distributed uniformly on a regular prism).
|
||||||
(if all points lie on a line).
|
The relative shape anisotropy is bounded between zero (if all points are
|
||||||
|
spherically symmetric) and one (if all points lie on a line).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -60,22 +63,23 @@ is bounded between zero (if all points are spherically symmetric) and one
|
|||||||
See the :doc:`dump custom <dump>` command for a discussion of "unwrapped"
|
See the :doc:`dump custom <dump>` command for a discussion of "unwrapped"
|
||||||
coordinates. See the Atoms section of the :doc:`read_data <read_data>`
|
coordinates. See the Atoms section of the :doc:`read_data <read_data>`
|
||||||
command for a discussion of image flags and how they are set for each
|
command for a discussion of image flags and how they are set for each
|
||||||
atom. You can reset the image flags (e.g. to 0) before invoking this
|
atom. You can reset the image flags (e.g., to 0) before invoking this
|
||||||
compute by using the :doc:`set image <set>` command.
|
compute by using the :doc:`set image <set>` command.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of
|
This compute calculates a global vector of length 6, which can be accessed by
|
||||||
length 6, which can be accessed by indices 1-6. The first three values are the
|
indices 1--6. The first three values are the eigenvalues of the gyration tensor
|
||||||
eigenvalues of the gyration tensor followed by the asphericity, the acylindricity
|
followed by the asphericity, the acylindricity and the relative shape
|
||||||
and the relative shape anisotropy. The computed values can be used by any command
|
anisotropy. The computed values can be used by any command that uses global
|
||||||
that uses global vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
vector values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The vector values calculated by this compute are
|
The vector values calculated by this compute are
|
||||||
"intensive". The first five vector values will be in
|
"intensive." The first five vector values will be in
|
||||||
distance\^2 :doc:`units <units>` while the sixth one is dimensionless.
|
distance\ :math:`2` :doc:`units <units>` while the sixth one is dimensionless.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute gyration/shape/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID gyration/shape/chunk compute-ID
|
compute ID group-ID gyration/shape/chunk compute-ID
|
||||||
|
|
||||||
@ -28,28 +28,32 @@ Define a computation that calculates the eigenvalues of the gyration tensor and
|
|||||||
three shape parameters of multiple chunks of atoms. The computation includes
|
three shape parameters of multiple chunks of atoms. The computation includes
|
||||||
all effects due to atoms passing through periodic boundaries.
|
all effects due to atoms passing through periodic boundaries.
|
||||||
|
|
||||||
The three computed shape parameters are the asphericity, b, the acylindricity, c,
|
The three computed shape parameters are the asphericity, :math:`b`,
|
||||||
and the relative shape anisotropy, k:
|
the acylindricity, :math:`c`, and the relative shape anisotropy, :math:`k`,
|
||||||
|
viz.,
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
c = & l_z - 0.5(l_y+l_x) \\
|
b &= l_z - \frac12(l_y+l_x) \\
|
||||||
b = & l_y - l_x \\
|
c &= l_y - l_x \\
|
||||||
k = & \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
k &= \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
||||||
|
|
||||||
where :math:`l_x` <= :math:`l_y` <= :math:`l_z` are the three eigenvalues of the gyration tensor. A general description
|
where :math:`l_x \le l_y \le l_z` are the three eigenvalues of the gyration
|
||||||
of these parameters is provided in :ref:`(Mattice) <Mattice2>` while an application to polymer systems
|
tensor. A general description of these parameters is provided in
|
||||||
can be found in :ref:`(Theodorou) <Theodorou2>`. The asphericity is always non-negative and zero
|
:ref:`(Mattice) <Mattice2>` while an application to polymer systems
|
||||||
only when the three principal moments are equal. This zero condition is met when the distribution
|
can be found in :ref:`(Theodorou) <Theodorou2>`. The asphericity is always
|
||||||
of particles is spherically symmetric (hence the name asphericity) but also whenever the particle
|
non-negative and zero only when the three principal moments are equal.
|
||||||
distribution is symmetric with respect to the three coordinate axes, e.g.,
|
This zero condition is met when the distribution of particles is spherically
|
||||||
when the particles are distributed uniformly on a cube, tetrahedron or other Platonic
|
symmetric (hence the name asphericity) but also whenever the particle
|
||||||
solid. The acylindricity is always non-negative and zero only when the two principal
|
distribution is symmetric with respect to the three coordinate axes (e.g.,
|
||||||
moments are equal. This zero condition is met when the distribution of particles is
|
when the particles are distributed uniformly on a cube, tetrahedron, or other
|
||||||
cylindrically symmetric (hence the name, acylindricity), but also whenever the particle
|
Platonic solid). The acylindricity is always non-negative and zero only when
|
||||||
distribution is symmetric with respect to the two coordinate axes, e.g., when the
|
the two principal moments are equal. This zero condition is met when the
|
||||||
particles are distributed uniformly on a regular prism. the relative shape anisotropy
|
distribution of particles is cylindrically symmetric (hence the name,
|
||||||
is bounded between zero (if all points are spherically symmetric) and one
|
acylindricity), but also whenever the particle distribution is symmetric with
|
||||||
|
respect to the two coordinate axes (e.g., when the particles are distributed
|
||||||
|
uniformly on a regular prism). The relative shape anisotropy
|
||||||
|
is bounded between 0 (if all points are spherically symmetric) and 1
|
||||||
(if all points lie on a line).
|
(if all points lie on a line).
|
||||||
|
|
||||||
The tensor keyword must be specified in the compute gyration/chunk command.
|
The tensor keyword must be specified in the compute gyration/chunk command.
|
||||||
@ -61,22 +65,23 @@ The tensor keyword must be specified in the compute gyration/chunk command.
|
|||||||
See the :doc:`dump custom <dump>` command for a discussion of "unwrapped"
|
See the :doc:`dump custom <dump>` command for a discussion of "unwrapped"
|
||||||
coordinates. See the Atoms section of the :doc:`read_data <read_data>`
|
coordinates. See the Atoms section of the :doc:`read_data <read_data>`
|
||||||
command for a discussion of image flags and how they are set for each
|
command for a discussion of image flags and how they are set for each
|
||||||
atom. You can reset the image flags (e.g. to 0) before invoking this
|
atom. You can reset the image flags (e.g., to 0) before invoking this
|
||||||
compute by using the :doc:`set image <set>` command.
|
compute by using the :doc:`set image <set>` command.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array with six columns,
|
This compute calculates a global array with six columns,
|
||||||
which can be accessed by indices 1-6. The first three columns are the
|
which can be accessed by indices 1--6. The first three columns are the
|
||||||
eigenvalues of the gyration tensor followed by the asphericity, the acylindricity
|
eigenvalues of the gyration tensor followed by the asphericity, the
|
||||||
and the relative shape anisotropy. The computed values can be used by any command
|
acylindricity and the relative shape anisotropy. The computed values can be
|
||||||
that uses global array values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
used by any command that uses global array values from a compute as input.
|
||||||
options.
|
See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS
|
||||||
|
output options.
|
||||||
|
|
||||||
The array calculated by this compute is
|
The array calculated by this compute is
|
||||||
"intensive". The first five columns will be in
|
"intensive." The first five columns will be in
|
||||||
distance\^2 :doc:`units <units>` while the sixth one is dimensionless.
|
distance\ :math:`^2` :doc:`units <units>` while the sixth one is dimensionless.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute heat/flux command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID heat/flux ke-ID pe-ID stress-ID
|
compute ID group-ID heat/flux ke-ID pe-ID stress-ID
|
||||||
|
|
||||||
@ -28,13 +28,13 @@ Description
|
|||||||
|
|
||||||
Define a computation that calculates the heat flux vector based on
|
Define a computation that calculates the heat flux vector based on
|
||||||
contributions from atoms in the specified group. This can be used by
|
contributions from atoms in the specified group. This can be used by
|
||||||
itself to measure the heat flux through a set of atoms (e.g. a region
|
itself to measure the heat flux through a set of atoms (e.g., a region
|
||||||
between two thermostatted reservoirs held at different temperatures),
|
between two thermostatted reservoirs held at different temperatures),
|
||||||
or to calculate a thermal conductivity using the equilibrium
|
or to calculate a thermal conductivity using the equilibrium
|
||||||
Green-Kubo formalism.
|
Green-Kubo formalism.
|
||||||
|
|
||||||
For other non-equilibrium ways to compute a thermal conductivity, see
|
For other non-equilibrium ways to compute a thermal conductivity, see
|
||||||
the :doc:`Howto kappa <Howto_kappa>` doc page.. These include use of
|
the :doc:`Howto kappa <Howto_kappa>` doc page. These include use of
|
||||||
the :doc:`fix thermal/conductivity <fix_thermal_conductivity>` command
|
the :doc:`fix thermal/conductivity <fix_thermal_conductivity>` command
|
||||||
for the Muller-Plathe method. Or the :doc:`fix heat <fix_heat>` command
|
for the Muller-Plathe method. Or the :doc:`fix heat <fix_heat>` command
|
||||||
which can add or subtract heat from groups of atoms.
|
which can add or subtract heat from groups of atoms.
|
||||||
@ -52,12 +52,12 @@ third calculates per-atom stress (\ *stress-ID*\ ).
|
|||||||
(or any group whose atoms are superset of the atoms in this compute's
|
(or any group whose atoms are superset of the atoms in this compute's
|
||||||
group). LAMMPS does not check for this.
|
group). LAMMPS does not check for this.
|
||||||
|
|
||||||
In case of two-body interactions, the heat flux is defined as:
|
In case of two-body interactions, the heat flux :math:`\mathbf{J}` is defined as
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
\mathbf{J} &= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i - \sum_{i} \mathbf{S}_{i} \mathbf{v}_i \right] \\
|
\mathbf{J} &= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i - \sum_{i} \mathbf{S}_{i} \mathbf{v}_i \right] \\
|
||||||
&= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \sum_{i<j} \left( \mathbf{F}_{ij} \cdot \mathbf{v}_j \right) \mathbf{r}_{ij} \right] \\
|
&= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \sum_{i<j} \left( \mathbf{F}_{ij} \cdot \mathbf{v}_j \right) \mathbf{r}_{ij} \right] \\
|
||||||
&= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \frac{1}{2} \sum_{i<j} \left( \mathbf{F}_{ij} \cdot \left(\mathbf{v}_i + \mathbf{v}_j \right) \right) \mathbf{r}_{ij} \right]
|
&= \frac{1}{V} \left[ \sum_i e_i \mathbf{v}_i + \frac{1}{2} \sum_{i<j} \bigl( \mathbf{F}_{ij} \cdot \left(\mathbf{v}_i + \mathbf{v}_j \right) \bigr) \mathbf{r}_{ij} \right]
|
||||||
|
|
||||||
:math:`e_i` in the first term of the equation
|
:math:`e_i` in the first term of the equation
|
||||||
is the per-atom energy (potential and kinetic).
|
is the per-atom energy (potential and kinetic).
|
||||||
@ -68,12 +68,12 @@ See :doc:`compute stress/atom <compute_stress_atom>`
|
|||||||
and :doc:`compute centroid/stress/atom <compute_stress_atom>`
|
and :doc:`compute centroid/stress/atom <compute_stress_atom>`
|
||||||
for possible definitions of atomic stress :math:`\mathbf{S}_i`
|
for possible definitions of atomic stress :math:`\mathbf{S}_i`
|
||||||
in the case of bonded and many-body interactions.
|
in the case of bonded and many-body interactions.
|
||||||
The tensor multiplies :math:`\mathbf{v}_i` as a 3x3 matrix-vector multiply
|
The tensor multiplies :math:`\mathbf{v}_i` by a :math:`3\times3` matrix
|
||||||
to yield a vector.
|
to yield a vector.
|
||||||
Note that as discussed below, the 1/:math:`{V}` scaling factor in the
|
Note that as discussed below, the :math:`1/V` scaling factor in the
|
||||||
equation for :math:`\mathbf{J}` is NOT included in the calculation performed by
|
equation for :math:`\mathbf{J}` is **not** included in the calculation
|
||||||
these computes; you need to add it for a volume appropriate to the atoms
|
performed by these computes; you need to add it for a volume appropriate to the
|
||||||
included in the calculation.
|
atoms included in the calculation.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ included in the calculation.
|
|||||||
contribution when computed via :doc:`compute stress/atom <compute_stress_atom>`
|
contribution when computed via :doc:`compute stress/atom <compute_stress_atom>`
|
||||||
are highly unphysical and should not be used.
|
are highly unphysical and should not be used.
|
||||||
|
|
||||||
The Green-Kubo formulas relate the ensemble average of the
|
The Green--Kubo formulas relate the ensemble average of the
|
||||||
auto-correlation of the heat flux :math:`\mathbf{J}`
|
auto-correlation of the heat flux :math:`\mathbf{J}`
|
||||||
to the thermal conductivity :math:`\kappa`:
|
to the thermal conductivity :math:`\kappa`:
|
||||||
|
|
||||||
@ -112,17 +112,18 @@ to the thermal conductivity :math:`\kappa`:
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The heat flux can be output every so many timesteps (e.g. via the
|
The heat flux can be output every so many timesteps (e.g., via the
|
||||||
:doc:`thermo_style custom <thermo_style>` command). Then as a
|
:doc:`thermo_style custom <thermo_style>` command). Then as a
|
||||||
post-processing operation, an auto-correlation can be performed, its
|
post-processing operation, an auto-correlation can be performed, its
|
||||||
integral estimated, and the Green-Kubo formula above evaluated.
|
integral estimated, and the Green--Kubo formula above evaluated.
|
||||||
|
|
||||||
The :doc:`fix ave/correlate <fix_ave_correlate>` command can calculate
|
The :doc:`fix ave/correlate <fix_ave_correlate>` command can calculate
|
||||||
the auto-correlation. The trap() function in the
|
the auto-correlation. The trap() function in the
|
||||||
:doc:`variable <variable>` command can calculate the integral.
|
:doc:`variable <variable>` command can calculate the integral.
|
||||||
|
|
||||||
An example LAMMPS input script for solid Ar is appended below. The
|
An example LAMMPS input script for solid argon is appended below. The
|
||||||
result should be: average conductivity ~0.29 in W/mK.
|
result should be an average conductivity
|
||||||
|
:math:`\approx 0.29~\mathrm{W/m \cdot K}`.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -130,22 +131,22 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length 6.
|
This compute calculates a global vector of length 6.
|
||||||
The first 3 components are the :math:`x`, :math:`y`, :math:`z`
|
The first three components are the :math:`x`, :math:`y`, and :math:`z`
|
||||||
components of the full heat flux vector,
|
components of the full heat flux vector
|
||||||
i.e. (:math:`J_x`, :math:`J_y`, :math:`J_z`).
|
(i.e., :math:`J_x`, :math:`J_y`, and :math:`J_z`).
|
||||||
The next 3 components are the :math:`x`, :math:`y`, :math:`z` components
|
The next three components are the :math:`x`, :math:`y`, and :math:`z`
|
||||||
of just the convective portion of the flux, i.e. the
|
components of just the convective portion of the flux (i.e., the
|
||||||
first term in the equation for :math:`\mathbf{J}`.
|
first term in the equation for :math:`\mathbf{J}`).
|
||||||
Each component can be
|
Each component can be accessed by indices 1--6. These values can be used by any
|
||||||
accessed by indices 1-6. These values can be used by any command that
|
command that uses global vector values from a compute as input.
|
||||||
uses global vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
See the :doc:`Howto output <Howto_output>` documentation for an overview of
|
||||||
options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The vector values calculated by this compute are "extensive", meaning
|
The vector values calculated by this compute are "extensive," meaning
|
||||||
they scale with the number of atoms in the simulation. They can be
|
they scale with the number of atoms in the simulation. They can be
|
||||||
divided by the appropriate volume to get a flux, which would then be
|
divided by the appropriate volume to get a flux, which would then be
|
||||||
an "intensive" value, meaning independent of the number of atoms in
|
an "intensive" value, meaning independent of the number of atoms in
|
||||||
the simulation. Note that if the compute is "all", then the
|
the simulation. Note that if the compute is "all," then the
|
||||||
appropriate volume to divide by is the simulation box volume.
|
appropriate volume to divide by is the simulation box volume.
|
||||||
However, if a sub-group is used, it should be the volume containing
|
However, if a sub-group is used, it should be the volume containing
|
||||||
those atoms.
|
those atoms.
|
||||||
@ -172,6 +173,9 @@ none
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
Example Input File
|
||||||
|
------------------
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
# Sample LAMMPS input script for thermal conductivity of solid Ar
|
# Sample LAMMPS input script for thermal conductivity of solid Ar
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute hexorder/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID hexorder/atom keyword values ...
|
compute ID group-ID hexorder/atom keyword values ...
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a per-atom array with 2 columns, giving the
|
This compute calculates a per-atom array with 2 columns, giving the
|
||||||
real and imaginary parts :math:`q_n`, a complex number restricted to the
|
real and imaginary parts :math:`q_n`, a complex number restricted to the
|
||||||
unit disk of the complex plane i.e. :math:`Re(q_n)^2 + Im(q_n)^2 <= 1`.
|
unit disk of the complex plane (i.e., :math:`\Re(q_n)^2 + \Im(q_n)^2 \le 1`).
|
||||||
|
|
||||||
These values can be accessed by any command that uses per-atom values
|
These values can be accessed by any command that uses per-atom values
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
|
|||||||
@ -6,20 +6,23 @@ compute hma command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID hma temp-ID keyword ...
|
compute ID group-ID hma temp-ID keyword ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* hma = style name of this compute command
|
* hma = style name of this compute command
|
||||||
* temp-ID = ID of fix that specifies the set temperature during canonical simulation
|
* temp-ID = ID of fix that specifies the set temperature during canonical simulation
|
||||||
* keyword = *anharmonic* *u* *p Pharm* *cv*
|
* one or more keywords or keyword/argument pairs must be appended
|
||||||
|
* keyword = *anharmonic* or *u* or *p* or *cv*
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*anharmonic* = compute will return anharmonic property values
|
*anharmonic* = compute will return anharmonic property values
|
||||||
*u* = compute will return potential energy
|
*u* = compute will return potential energy
|
||||||
*p* = compute will return pressure. the following keyword must be the difference between the harmonic pressure and lattice pressure as described below
|
*p* value = Pharm = compute will return pressure
|
||||||
|
Pharm = difference between the harmonic pressure and lattice pressure
|
||||||
|
as described below
|
||||||
*cv* = compute will return the heat capacity
|
*cv* = compute will return the heat capacity
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
@ -74,44 +77,48 @@ A detailed description of this method can be found in (:ref:`Moustafa <hma-Moust
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\left< U\right>_{HMA} = \frac{d}{2} (N-1) k_B T + \left< U + \frac{1}{2} F\bullet\Delta r \right>
|
\left< U\right>_\text{HMA} = \frac{d}{2} (N-1) k_B T + \left< U + \frac{1}{2} \vec F\cdot\Delta \vec r \right>
|
||||||
|
|
||||||
where :math:`N` is the number of atoms in the system, :math:`k_B` is Boltzmann's
|
where :math:`N` is the number of atoms in the system, :math:`k_B` is Boltzmann's
|
||||||
constant, :math:`T` is the temperature, :math:`d` is the
|
constant, :math:`T` is the temperature, :math:`d` is the dimensionality of the
|
||||||
dimensionality of the system (2 or 3 for 2d/3d), :math:`F\bullet\Delta r` is the sum of dot products of the
|
system (2 or 3 for 2d/3d), :math:`\vec F\cdot\Delta\vec r` is the sum of dot
|
||||||
atomic force vectors and displacement (from lattice sites) vectors, and :math:`U` is the sum of
|
products of the atomic force vectors and displacement (from lattice sites)
|
||||||
pair, bond, angle, dihedral, improper, kspace (long-range), and fix energies.
|
vectors, and :math:`U` is the sum of pair, bond, angle, dihedral, improper,
|
||||||
|
kspace (long-range), and fix energies.
|
||||||
|
|
||||||
The pressure is computed by the formula:
|
The pressure is computed by the formula:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\left< P\right>_{HMA} = \Delta \hat P + \left< P_{vir} + \frac{\beta \Delta \hat P - \rho}{d(N-1)} F\bullet\Delta r \right>
|
\left< P\right>_{HMA} = \Delta \hat P + \left< P_\text{vir}
|
||||||
|
+ \frac{\beta \Delta \hat P - \rho}{d(N-1)} \vec F\cdot\Delta \vec r \right>
|
||||||
|
|
||||||
where :math:`\rho` is the number density of the system, :math:`\Delta \hat P` is the
|
where :math:`\rho` is the number density of the system, :math:`\Delta \hat P`
|
||||||
difference between the harmonic and lattice pressure, :math:`P_{vir}` is
|
is the difference between the harmonic and lattice pressure,
|
||||||
the virial pressure computed as the sum of pair, bond, angle, dihedral,
|
:math:`P_\text{vir}` is the virial pressure computed as the sum of pair, bond,
|
||||||
improper, kspace (long-range), and fix contributions to the force on each
|
angle, dihedral, improper, kspace (long-range), and fix contributions to the
|
||||||
atom, and :math:`k_B=1/k_B T`. Although the method will work for any value of :math:`\Delta \hat P`
|
force on each atom, and :math:`k_B=1/k_B T`. Although the method will work for
|
||||||
|
any value of :math:`\Delta \hat P`
|
||||||
specified (use pressure :doc:`units <units>`), the precision of the resultant
|
specified (use pressure :doc:`units <units>`), the precision of the resultant
|
||||||
pressure is sensitive to :math:`\Delta \hat P`; the precision tends to be
|
pressure is sensitive to :math:`\Delta \hat P`; the precision tends to be
|
||||||
best when :math:`\Delta \hat P` is the actual the difference between the lattice
|
best when :math:`\Delta \hat P` is the actual the difference between the
|
||||||
pressure and harmonic pressure.
|
lattice pressure and harmonic pressure.
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\left<C_V \right>_{HMA} = \frac{d}{2} (N-1) k_B + \frac{1}{k_B T^2} \left( \left<
|
\left<C_V \right>_\text{HMA} = \frac{d}{2} (N-1) k_B
|
||||||
U_{HMA}^2 \right> - \left<U_{HMA}\right>^2 \right) + \frac{1}{4 T}
|
+ \frac{1}{k_B T^2} \left( \left<U_\text{HMA}^2 \right>
|
||||||
\left< F\bullet\Delta r + \Delta r \bullet \Phi \bullet \Delta r \right>
|
- \left<U_\text{HMA}\right>^2 \right) + \frac{1}{4 T}
|
||||||
|
\left<\vec F\cdot\Delta\vec r + \Delta r \cdot\Phi\cdot \Delta\vec r\right>
|
||||||
|
|
||||||
where :math:`\Phi` is the Hessian matrix. The compute hma command
|
where :math:`\Phi` is the Hessian matrix. The compute hma command
|
||||||
computes the full expression for :math:`C_V` except for the
|
computes the full expression for :math:`C_V` except for the
|
||||||
:math:`\left<U_{HMA}^2\right>^2` in the variance term, which can be obtained by
|
:math:`\left<U_\text{HMA}\right>^2` in the variance term, which can be obtained
|
||||||
passing the *u* keyword; you must add this extra contribution to the :math:`C_V`
|
by passing the *u* keyword; you must add this extra contribution to the
|
||||||
value reported by this compute. The variance term can cause significant
|
:math:`C_V` value reported by this compute. The variance term can cause
|
||||||
round-off error when computing :math:`C_V`. To address this, the *anharmonic*
|
significant round-off error when computing :math:`C_V`. To address this, the
|
||||||
keyword can be passed and/or the output format can be specified with more
|
*anharmonic* keyword can be passed and/or the output format can be specified
|
||||||
digits.
|
with more digits.
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -124,8 +131,10 @@ When using this keyword, the compute must be first active (it must be included
|
|||||||
via a :doc:`thermo_style custom <thermo_style>` command) while the atoms are
|
via a :doc:`thermo_style custom <thermo_style>` command) while the atoms are
|
||||||
still at their lattice sites (before equilibration).
|
still at their lattice sites (before equilibration).
|
||||||
|
|
||||||
The temp-ID specified with compute hma command should be same as the fix-ID of Nose-Hoover (:doc:`fix nvt <fix_nh>`) or
|
The temp-ID specified with compute hma command should be same as the fix-ID of
|
||||||
Berendsen (:doc:`fix temp/berendsen <fix_temp_berendsen>`) thermostat used for the simulation. While using this command, Langevin thermostat
|
the Nose--Hoover (:doc:`fix nvt <fix_nh>`) or
|
||||||
|
Berendsen (:doc:`fix temp/berendsen <fix_temp_berendsen>`) thermostat used for
|
||||||
|
the simulation. While using this command, the Langevin thermostat
|
||||||
(:doc:`fix langevin <fix_langevin>`)
|
(:doc:`fix langevin <fix_langevin>`)
|
||||||
should be avoided as its extra forces interfere with the HMA implementation.
|
should be avoided as its extra forces interfere with the HMA implementation.
|
||||||
|
|
||||||
@ -160,10 +169,10 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a global vector that includes the n properties
|
This compute calculates a global vector that includes the n properties
|
||||||
requested as arguments to the command (the potential energy, pressure and/or heat
|
requested as arguments to the command (the potential energy, pressure and/or heat
|
||||||
capacity). The elements of the vector can be accessed by indices 1-n by any
|
capacity). The elements of the vector can be accessed by indices 1--n by any
|
||||||
command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
|
command that uses global vector values as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values calculated by this compute are "extensive". The
|
The vector values calculated by this compute are "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
@ -180,7 +189,7 @@ Related commands
|
|||||||
:doc:`compute pe <compute_pe>`, :doc:`compute pressure <compute_pressure>`
|
:doc:`compute pe <compute_pe>`, :doc:`compute pressure <compute_pressure>`
|
||||||
|
|
||||||
:doc:`dynamical matrix <dynamical_matrix>` provides a finite difference
|
:doc:`dynamical matrix <dynamical_matrix>` provides a finite difference
|
||||||
formulation of the hessian provided by Pair's single_hessian, which is used by
|
formulation of the Hessian provided by Pair's single_hessian, which is used by
|
||||||
this compute.
|
this compute.
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute improper command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID improper
|
compute ID group-ID improper
|
||||||
|
|
||||||
@ -34,11 +34,13 @@ total energy contributed by one or more of the hybrid sub-styles.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length N where N is the
|
This compute calculates a global vector of length :math:`N`, where :math:`N` is
|
||||||
number of sub_styles defined by the :doc:`improper_style hybrid <improper_style>` command. which can be accessed by indices
|
the number of sub_styles defined by the
|
||||||
1-N. These values can be used by any command that uses global scalar
|
:doc:`improper_style hybrid <improper_style>` command.
|
||||||
or vector values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
These styles can be accessed by the indices 1 through :math:`N`.
|
||||||
options.
|
These values can be used by any command that uses global scalar or vector
|
||||||
|
values from a compute as input. See the :doc:`Howto output <Howto_output>`
|
||||||
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "extensive" and will be in energy
|
The vector values are "extensive" and will be in energy
|
||||||
:doc:`units <units>`.
|
:doc:`units <units>`.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute improper/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID improper/local value1 value2 ...
|
compute ID group-ID improper/local value1 value2 ...
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ the individual improper styles listed on
|
|||||||
|
|
||||||
The local data stored by this command is generated by looping over all
|
The local data stored by this command is generated by looping over all
|
||||||
the atoms owned on a processor and their impropers. An improper will
|
the atoms owned on a processor and their impropers. An improper will
|
||||||
only be included if all 4 atoms in the improper are in the specified
|
only be included if all four atoms in the improper are in the specified
|
||||||
compute group.
|
compute group.
|
||||||
|
|
||||||
Note that as atoms migrate from processor to processor, there will be
|
Note that as atoms migrate from processor to processor, there will be
|
||||||
@ -69,7 +69,8 @@ array is the number of impropers. If a single keyword is specified, a
|
|||||||
local vector is produced. If two or more keywords are specified, a
|
local vector is produced. If two or more keywords are specified, a
|
||||||
local array is produced where the number of columns = the number of
|
local array is produced where the number of columns = the number of
|
||||||
keywords. The vector or array can be accessed by any command that
|
keywords. 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
|
uses local values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The output for *chi* will be in degrees.
|
The output for *chi* will be in degrees.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute inertia/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID inertia/chunk chunkID
|
compute ID group-ID inertia/chunk chunkID
|
||||||
|
|
||||||
@ -27,16 +27,20 @@ Description
|
|||||||
Define a computation that calculates the inertia tensor for multiple
|
Define a computation that calculates the inertia tensor for multiple
|
||||||
chunks of atoms.
|
chunks of atoms.
|
||||||
|
|
||||||
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
In LAMMPS, chunks are collections of atoms defined by a
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
||||||
to a single chunk (or no chunk). The ID for this command is specified
|
to a single chunk (or no chunk). The ID for this command is specified
|
||||||
as chunkID. For example, a single chunk could be the atoms in a
|
as chunkID. For example, a single chunk could be the atoms in a
|
||||||
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>`
|
molecule or atoms in a spatial bin. See the
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` and
|
||||||
|
:doc:`Howto chunk <Howto_chunk>`
|
||||||
doc pages for details of how chunks can be defined and examples of how
|
doc pages for details of how chunks can be defined and examples of how
|
||||||
they can be used to measure properties of a system.
|
they can be used to measure properties of a system.
|
||||||
|
|
||||||
This compute calculates the 6 components of the symmetric inertia
|
This compute calculates the six components of the symmetric inertia
|
||||||
tensor for each chunk, ordered Ixx,Iyy,Izz,Ixy,Iyz,Ixz. The
|
tensor for each chunk, ordered
|
||||||
calculation includes all effects due to atoms passing through periodic
|
:math:`I_{xx},I_{yy},I_{zz},I_{xy},I_{yz},I_{xz}`.
|
||||||
|
The calculation includes all effects due to atoms passing through periodic
|
||||||
boundaries.
|
boundaries.
|
||||||
|
|
||||||
Note that only atoms in the specified group contribute to the
|
Note that only atoms in the specified group contribute to the
|
||||||
@ -55,7 +59,8 @@ non-zero chunk IDs.
|
|||||||
of "unwrapped" coordinates. See the Atoms section of the
|
of "unwrapped" coordinates. See the Atoms section of the
|
||||||
:doc:`read_data <read_data>` command for a discussion of image flags and
|
:doc:`read_data <read_data>` command for a discussion of image flags and
|
||||||
how they are set for each atom. You can reset the image flags
|
how they are set for each atom. You can reset the image flags
|
||||||
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command.
|
(e.g., to 0) before invoking this compute by using the
|
||||||
|
:doc:`set image <set>` command.
|
||||||
|
|
||||||
The simplest way to output the results of the compute inertia/chunk
|
The simplest way to output the results of the compute inertia/chunk
|
||||||
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
||||||
@ -71,14 +76,16 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array where the number of rows = the
|
This compute calculates a global array where the number of rows = the
|
||||||
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns =
|
number of chunks *Nchunk* as calculated by the specified
|
||||||
6 for the 6 components of the inertia tensor for each chunk, ordered
|
:doc:`compute chunk/atom <compute_chunk_atom>` command.
|
||||||
as listed above. These values can be accessed by any command that
|
The number of columns is 6, one for each of the 6 components of the inertia
|
||||||
uses global array values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
tensor for each chunk, ordered as listed above. 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.
|
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\^2 :doc:`units <units>`.
|
mass\*distance\ :math:`^2` :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute ke command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ke
|
compute ID group-ID ke
|
||||||
|
|
||||||
@ -27,7 +27,8 @@ Define a computation that calculates the translational kinetic energy
|
|||||||
of a group of particles.
|
of a group of particles.
|
||||||
|
|
||||||
The kinetic energy of each particle is computed as :math:`\frac{1}{2} m
|
The kinetic energy of each particle is computed as :math:`\frac{1}{2} m
|
||||||
v^2`, where *m* and *v* are the mass and velocity of the particle.
|
v^2`, where *m* and *v* are the mass and velocity of the particle,
|
||||||
|
respectively.
|
||||||
|
|
||||||
There is a subtle difference between the quantity calculated by this
|
There is a subtle difference between the quantity calculated by this
|
||||||
compute and the kinetic energy calculated by the *ke* or *etotal*
|
compute and the kinetic energy calculated by the *ke* or *etotal*
|
||||||
@ -38,10 +39,10 @@ formula above. For thermodynamic output, the *ke* keyword infers
|
|||||||
kinetic energy from the temperature of the system with
|
kinetic energy from the temperature of the system with
|
||||||
:math:`\frac{1}{2} k_B T` of energy for each degree of freedom. For the
|
:math:`\frac{1}{2} k_B T` of energy for each degree of freedom. For the
|
||||||
default temperature computation via the :doc:`compute temp
|
default temperature computation via the :doc:`compute temp
|
||||||
<compute_temp>` command, these are the same. But different computes
|
<compute_temp>` command, these are the same.
|
||||||
that calculate temperature can subtract out different non-thermal
|
However, different computes that calculate temperature can subtract out
|
||||||
components of velocity and/or include different degrees of freedom
|
different non-thermal components of velocity and/or include different degrees
|
||||||
(translational, rotational, etc).
|
of freedom (translational, rotational, etc.).
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@ -51,7 +52,7 @@ can be used by any command that uses a global scalar value from a
|
|||||||
compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive". The
|
The scalar value calculated by this compute is "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute ke/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ke/atom
|
compute ID group-ID ke/atom
|
||||||
|
|
||||||
@ -26,8 +26,8 @@ Description
|
|||||||
Define a computation that calculates the per-atom translational
|
Define a computation that calculates the per-atom translational
|
||||||
kinetic energy for each atom in a group.
|
kinetic energy for each atom in a group.
|
||||||
|
|
||||||
The kinetic energy is simply 1/2 m v\^2, where m is the mass and v is
|
The kinetic energy is simply :math:`\frac12 m v^2`, where :math:`m` is the mass
|
||||||
the velocity of each atom.
|
and :math:`v` is the velocity of each atom.
|
||||||
|
|
||||||
The value of the kinetic energy will be 0.0 for atoms not in the
|
The value of the kinetic energy will be 0.0 for atoms not in the
|
||||||
specified compute group.
|
specified compute group.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute ke/atom/eff command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ke/atom/eff
|
compute ID group-ID ke/atom/eff
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute ke/eff command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ke/eff
|
compute ID group-ID ke/eff
|
||||||
|
|
||||||
@ -29,9 +29,9 @@ group of eFF particles (nuclei and electrons), as modeled with the
|
|||||||
|
|
||||||
The kinetic energy for each nucleus is computed as :math:`\frac{1}{2} m
|
The kinetic energy for each nucleus is computed as :math:`\frac{1}{2} m
|
||||||
v^2` and the kinetic energy for each electron is computed as
|
v^2` and the kinetic energy for each electron is computed as
|
||||||
:math:`\frac{1}{2}(m_e v^2 + \frac{3}{4} m_e s^2)`, where *m*
|
:math:`\frac{1}{2}(m_e v^2 + \frac{3}{4} m_e s^2)`, where :math:`m`
|
||||||
corresponds to the nuclear mass, :math:`m_e` to the electron mass, *v*
|
corresponds to the nuclear mass, :math:`m_e` to the electron mass, :math:`v`
|
||||||
to the translational velocity of each particle, and *s* to the radial
|
to the translational velocity of each particle, and :math:`s` to the radial
|
||||||
velocity of the electron, respectively.
|
velocity of the electron, respectively.
|
||||||
|
|
||||||
There is a subtle difference between the quantity calculated by this
|
There is a subtle difference between the quantity calculated by this
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute ke/rigid command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID ke/rigid fix-ID
|
compute ID group-ID ke/rigid fix-ID
|
||||||
|
|
||||||
@ -25,11 +25,13 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the translational kinetic energy
|
Define a computation that calculates the translational kinetic energy
|
||||||
of a collection of rigid bodies, as defined by one of the :doc:`fix rigid <fix_rigid>` command variants.
|
of a collection of rigid bodies, as defined by one of the
|
||||||
|
:doc:`fix rigid <fix_rigid>` command variants.
|
||||||
|
|
||||||
The kinetic energy of each rigid body is computed as 1/2 M Vcm\^2,
|
The kinetic energy of each rigid body is computed as
|
||||||
where M is the total mass of the rigid body, and Vcm is its
|
:math:`\frac12 M V_\text{cm}^2`,
|
||||||
center-of-mass velocity.
|
where :math:`M` is the total mass of the rigid body, and :math:`V_\text{cm}`
|
||||||
|
is its center-of-mass velocity.
|
||||||
|
|
||||||
The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>`
|
The *fix-ID* should be the ID of one of the :doc:`fix rigid <fix_rigid>`
|
||||||
commands which defines the rigid bodies. The group specified in the
|
commands which defines the rigid bodies. The group specified in the
|
||||||
@ -42,10 +44,11 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a global scalar (the summed KE of all the
|
This compute calculates a global scalar (the summed KE of all the
|
||||||
rigid bodies). This value can be used by any command that uses a
|
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
|
global scalar value from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive". The
|
The scalar value calculated by this compute is "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,30 +6,29 @@ compute mesont command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
.. parsed-literal::
|
compute ID group-ID mesont style
|
||||||
|
|
||||||
compute ID group-ID mesont mode
|
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* mesont = style name of the compute command
|
* mesont = style name of the compute command
|
||||||
* mode = one of estretch, ebend, etube (see details below)
|
* style = *estretch* or *ebend* or *etube*
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute 1 all mesont estretch
|
compute 1 all mesont estretch
|
||||||
|
|
||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
These computes define computations for the stretching (estretch), bending
|
These computes define computations for the stretching (*estretch*), bending
|
||||||
(ebend), and intertube (etube) per-node (atom) and total energies. The
|
(*ebend*), and intertube (*etube*) per-node (atom) and total energies. The
|
||||||
evaluated value is selected by a parameter passed to the compute: estretch,
|
evaluated value is selected by the style parameter passed to the compute
|
||||||
ebend, etube.
|
(*estretch*, *ebend*,or *etube*).
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|||||||
@ -36,10 +36,10 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Compute style *mliap* provides a general interface to the gradient
|
Compute style *mliap* provides a general interface to the gradient
|
||||||
of machine-learning interatomic potentials w.r.t. model parameters.
|
of machine-learning interatomic potentials with respect to model parameters.
|
||||||
It is used primarily for calculating the gradient of energy, force, and
|
It is used primarily for calculating the gradient of energy, force, and
|
||||||
stress components w.r.t. model parameters, which is useful when training
|
stress components with respect to model parameters, which is useful when
|
||||||
:doc:`mliap pair_style <pair_mliap>` models to match target data.
|
training :doc:`mliap pair_style <pair_mliap>` models to match target data.
|
||||||
It provides separate
|
It provides separate
|
||||||
definitions of the interatomic potential functional form (*model*)
|
definitions of the interatomic potential functional form (*model*)
|
||||||
and the geometric quantities that characterize the atomic positions
|
and the geometric quantities that characterize the atomic positions
|
||||||
@ -58,8 +58,8 @@ The compute *mliap* command must be followed by two keywords
|
|||||||
|
|
||||||
The *model* keyword is followed by the model style (*linear*,
|
The *model* keyword is followed by the model style (*linear*,
|
||||||
*quadratic* or *mliappy*). The *mliappy* model is only available if
|
*quadratic* or *mliappy*). The *mliappy* model is only available if
|
||||||
LAMMPS is built with the *mliappy* python module. There are
|
LAMMPS is built with the *mliappy* Python module. There are
|
||||||
:ref:`specific installation instructions <mliap>` for that.
|
:ref:`specific installation instructions <mliap>` for that module.
|
||||||
|
|
||||||
The *descriptor* keyword is followed by a descriptor style, and
|
The *descriptor* keyword is followed by a descriptor style, and
|
||||||
additional arguments. The compute currently supports two descriptor
|
additional arguments. The compute currently supports two descriptor
|
||||||
@ -79,13 +79,13 @@ described in detail there.
|
|||||||
must match the value of *nelems* in the descriptor file.
|
must match the value of *nelems* in the descriptor file.
|
||||||
|
|
||||||
Compute *mliap* calculates a global array containing gradient information.
|
Compute *mliap* calculates a global array containing gradient information.
|
||||||
The number of columns in the array is :math:`nelems \times nparams + 1`.
|
The number of columns in the array is *nelems* :math:`\times` *nparams* + 1.
|
||||||
The first row of the array contain the derivative of potential energy w.r.t. to
|
The first row of the array contain the derivative of potential energy with
|
||||||
each parameter and each element. The last six rows
|
respect to. to each parameter and each element. The last six rows
|
||||||
of the array contain the corresponding derivatives of the
|
of the array contain the corresponding derivatives of the
|
||||||
virial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*,
|
virial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*,
|
||||||
*pyz*, *pxz*, *pxy*. In between the energy and stress rows are
|
*pyz*, *pxz*, and *pxy*. In between the energy and stress rows are
|
||||||
the 3\*\ *N* rows containing the derivatives of the force components.
|
the :math:`3N` rows containing the derivatives of the force components.
|
||||||
See section below on output for a detailed description of how
|
See section below on output for a detailed description of how
|
||||||
rows and columns are ordered.
|
rows and columns are ordered.
|
||||||
|
|
||||||
@ -107,19 +107,19 @@ layout in the global array.
|
|||||||
|
|
||||||
The optional keyword *gradgradflag* controls how the force
|
The optional keyword *gradgradflag* controls how the force
|
||||||
gradient is calculated. A value of 1 requires that the model provide
|
gradient is calculated. A value of 1 requires that the model provide
|
||||||
the matrix of double gradients of energy w.r.t. both parameters
|
the matrix of double gradients of energy with respect to both parameters
|
||||||
and descriptors. For the linear and quadratic models this matrix is
|
and descriptors. For the linear and quadratic models this matrix is
|
||||||
sparse and so is easily calculated and stored. For other models, this
|
sparse and so is easily calculated and stored. For other models, this
|
||||||
matrix may be prohibitively expensive to calculate and store.
|
matrix may be prohibitively expensive to calculate and store.
|
||||||
A value of 0 requires that the descriptor provide the derivative
|
A value of 0 requires that the descriptor provide the derivative
|
||||||
of the descriptors w.r.t. the position of every neighbor atom.
|
of the descriptors with respect to the position of every neighbor atom.
|
||||||
This is not optimal for linear and quadratic models, but may be
|
This is not optimal for linear and quadratic models, but may be
|
||||||
a better choice for more complex models.
|
a better choice for more complex models.
|
||||||
|
|
||||||
Atoms not in the group do not contribute to this compute.
|
Atoms not in the group do not contribute to this compute.
|
||||||
Neighbor atoms not in the group do not contribute to this compute.
|
Neighbor atoms not in the group do not contribute to this compute.
|
||||||
The neighbor list needed to compute this quantity is constructed each
|
The neighbor list needed to compute this quantity is constructed each
|
||||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
time the calculation is performed (i.e., each time a snapshot of atoms
|
||||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||||
too frequently.
|
too frequently.
|
||||||
|
|
||||||
@ -144,17 +144,20 @@ too frequently.
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Compute *mliap* evaluates a global array.
|
Compute *mliap* evaluates a global array. The columns are arranged into
|
||||||
The columns are arranged into
|
|
||||||
*nelems* blocks, listed in order of element *I*\ . Each block
|
*nelems* blocks, listed in order of element *I*\ . Each block
|
||||||
contains one column for each of the *nparams* model parameters.
|
contains one column for each of the *nparams* model parameters.
|
||||||
A final column contains the corresponding energy, force component
|
A final column contains the corresponding energy, force component
|
||||||
on an atom, or virial stress component. The rows of the array appear
|
on an atom, or virial stress component. The rows of the array appear
|
||||||
in the following order:
|
in the following order:
|
||||||
|
|
||||||
* 1 row: Derivatives of potential energy w.r.t. each parameter of each element.
|
* 1 row: Derivatives of potential energy with respect to each parameter of each element.
|
||||||
* 3\*\ *N* rows: Derivatives of force components. x, y, and z components of force on atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID.
|
* :math:`3N` rows: Derivatives of force components; the *x*, *y*, and *z*
|
||||||
* 6 rows: Derivatives of virial stress tensor w.r.t. each parameter of each element. The ordering of the rows follows Voigt notation: *pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*.
|
components of the force on atom *i* appear in consecutive rows. The atoms are
|
||||||
|
sorted based on atom ID.
|
||||||
|
* 6 rows: Derivatives of the virial stress tensor with respect to each
|
||||||
|
parameter of each element. The ordering of the rows follows Voigt notation:
|
||||||
|
*pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*.
|
||||||
|
|
||||||
These values can be accessed by any command that uses a global array
|
These values can be accessed by any command that uses a global array
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
|
|||||||
@ -37,24 +37,27 @@ Description
|
|||||||
Modify one or more parameters of a previously defined compute. Not
|
Modify one or more parameters of a previously defined compute. Not
|
||||||
all compute styles support all parameters.
|
all compute styles support all parameters.
|
||||||
|
|
||||||
The *extra/dof* or *extra* keyword refers to how many
|
The *extra/dof* or *extra* keyword refers to how many degrees of freedom are
|
||||||
degrees-of-freedom are subtracted (typically from 3N) as a normalizing
|
subtracted (typically from :math:`3N`) as a normalizing
|
||||||
factor in a temperature computation. Only computes that compute a
|
factor in a temperature computation. Only computes that compute a
|
||||||
temperature use this option. The default is 2 or 3 for :doc:`2d or 3d systems <dimension>` which is a correction factor for an ensemble
|
temperature use this option. The default is 2 or 3 for
|
||||||
of velocities with zero total linear momentum. For compute
|
:doc:`2d or 3d systems <dimension>`, which is a correction factor for an
|
||||||
|
ensemble of velocities with zero total linear momentum. For compute
|
||||||
temp/partial, if one or more velocity components are excluded, the
|
temp/partial, if one or more velocity components are excluded, the
|
||||||
value used for *extra* is scaled accordingly. You can use a negative
|
value used for *extra* is scaled accordingly. You can use a negative
|
||||||
number for the *extra* parameter if you need to add
|
number for the *extra* parameter if you need to add
|
||||||
degrees-of-freedom. See the :doc:`compute temp/asphere <compute_temp_asphere>` command for an example.
|
degrees-of-freedom. See the :doc:`compute temp/asphere <compute_temp_asphere>` command for an example.
|
||||||
|
|
||||||
The *dynamic/dof* or *dynamic* keyword determines whether the number
|
The *dynamic/dof* or *dynamic* keyword determines whether the number
|
||||||
of atoms N in the compute group and their associated degrees of
|
of atoms :math:`N` in the compute group and their associated degrees of
|
||||||
freedom are re-computed each time a temperature is computed. Only
|
freedom (DOF) are re-computed each time a temperature is computed. Only
|
||||||
compute styles that calculate a temperature use this option. By
|
compute styles that calculate a temperature use this option. By
|
||||||
default, N and their DOF are assumed to be constant. If you are
|
default, :math:`N` and their DOF are assumed to be constant. If you are
|
||||||
adding atoms or molecules to the system (see the :doc:`fix pour <fix_pour>`, :doc:`fix deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or expect atoms or molecules to be lost
|
adding atoms or molecules to the system (see the :doc:`fix pour <fix_pour>`,
|
||||||
(e.g. due to exiting the simulation box or via :doc:`fix evaporate <fix_evaporate>`), then this option should be used to
|
:doc:`fix deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or
|
||||||
insure the temperature is correctly normalized.
|
expect atoms or molecules to be lost (e.g., due to exiting the simulation box
|
||||||
|
or via :doc:`fix evaporate <fix_evaporate>`), then this option should be used
|
||||||
|
to ensure the temperature is correctly normalized.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -75,4 +78,4 @@ Default
|
|||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and
|
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and
|
||||||
dynamic/dof = no.
|
dynamic/dof = *no*.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute momentum command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID momentum
|
compute ID group-ID momentum
|
||||||
|
|
||||||
@ -24,7 +24,8 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the translational momentum *p*
|
Define a computation that calculates the translational momentum *p*
|
||||||
of a group of particles. It is computed as the sum :math:`\vec{p} = \sum_i m_i \cdot \vec{v}_i`
|
of a group of particles. It is computed as the sum
|
||||||
|
:math:`\vec{p} = \sum_i m_i \cdot \vec{v}_i`
|
||||||
over all particles in the compute group, where *m* and *v* are
|
over all particles in the compute group, where *m* and *v* are
|
||||||
the mass and velocity vector of the particle, respectively.
|
the mass and velocity vector of the particle, respectively.
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ length 3. This value can be used by any command that uses a global
|
|||||||
vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
vector value from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The vector value calculated by this compute is "extensive". The vector
|
The vector value calculated by this compute is "extensive." The vector
|
||||||
value will be in mass\*velocity :doc:`units <units>`.
|
value will be in mass\*velocity :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute msd command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID msd keyword values ...
|
compute ID group-ID msd keyword values ...
|
||||||
|
|
||||||
@ -34,12 +34,13 @@ Description
|
|||||||
Define a computation that calculates the mean-squared displacement
|
Define a computation that calculates the mean-squared displacement
|
||||||
(MSD) of the group of atoms, including all effects due to atoms
|
(MSD) of the group of atoms, including all effects due to atoms
|
||||||
passing through periodic boundaries. For computation of the non-Gaussian
|
passing through periodic boundaries. For computation of the non-Gaussian
|
||||||
parameter of mean-squared displacement, see the :doc:`compute msd/nongauss <compute_msd_nongauss>` command.
|
parameter of mean-squared displacement, see the
|
||||||
|
:doc:`compute msd/nongauss <compute_msd_nongauss>` command.
|
||||||
|
|
||||||
A vector of four quantities is calculated by this compute. The first 3
|
A vector of four quantities is calculated by this compute. The first three
|
||||||
elements of the vector are the squared dx,dy,dz displacements, summed
|
elements of the vector are the squared *dx*, *dy*, and *dz* displacements,
|
||||||
and averaged over atoms in the group. The fourth element is the total
|
summed and averaged over atoms in the group. The fourth element is the total
|
||||||
squared displacement, i.e. (dx\*dx + dy\*dy + dz\*dz), summed and
|
squared displacement (i.e., :math:`dx^2 + dy^2 + dz^2`), summed and
|
||||||
averaged over atoms in the group.
|
averaged over atoms in the group.
|
||||||
|
|
||||||
The slope of the mean-squared displacement (MSD) versus time is
|
The slope of the mean-squared displacement (MSD) versus time is
|
||||||
@ -100,12 +101,12 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length 4, which can be
|
This compute calculates a global vector of length 4, which can be
|
||||||
accessed by indices 1-4 by any command that uses global vector values
|
accessed by indices 1--4 by any command that uses global vector values
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "intensive". The vector values will be in
|
The vector values are "intensive." The vector values will be in
|
||||||
distance\^2 :doc:`units <units>`.
|
distance\ :math:`^2` :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute msd/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID msd/chunk chunkID
|
compute ID group-ID msd/chunk chunkID
|
||||||
|
|
||||||
@ -27,19 +27,21 @@ Description
|
|||||||
Define a computation that calculates the mean-squared displacement
|
Define a computation that calculates the mean-squared displacement
|
||||||
(MSD) for multiple chunks of atoms.
|
(MSD) for multiple chunks of atoms.
|
||||||
|
|
||||||
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
In LAMMPS, chunks are collections of atoms defined by a
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
||||||
to a single chunk (or no chunk). The ID for this command is specified
|
to a single chunk (or no chunk). The ID for this command is specified
|
||||||
as chunkID. For example, a single chunk could be the atoms in a
|
as chunkID. For example, a single chunk could be the atoms in a
|
||||||
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>`
|
molecule or atoms in a spatial bin. See the
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` and
|
||||||
|
:doc:`Howto chunk <Howto_chunk>`
|
||||||
doc pages for details of how chunks can be defined and examples of how
|
doc pages for details of how chunks can be defined and examples of how
|
||||||
they can be used to measure properties of a system.
|
they can be used to measure properties of a system.
|
||||||
|
|
||||||
Four quantities are calculated by this compute for each chunk. The
|
Four quantities are calculated by this compute for each chunk. The
|
||||||
first 3 quantities are the squared dx,dy,dz displacements of the
|
first 3 quantities are the squared *dx*, *dy*, and *dz* displacements of the
|
||||||
center-of-mass. The fourth component is the total squared displacement,
|
center-of-mass. The fourth component is the total squared displacement
|
||||||
i.e. (dx\*dx + dy\*dy + dz\*dz) of the center-of-mass. These
|
(i.e., :math:`dx^2 + dy^2 + dz^2`) of the center-of-mass. These calculations
|
||||||
calculations include all effects due to atoms passing through periodic
|
include all effects due to atoms passing through periodic boundaries.
|
||||||
boundaries.
|
|
||||||
|
|
||||||
Note that only atoms in the specified group contribute to the
|
Note that only atoms in the specified group contribute to the
|
||||||
calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command
|
calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command
|
||||||
@ -58,12 +60,14 @@ compute command was first invoked.
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The number of chunks *Nchunk* calculated by the :doc:`compute chunk/atom <compute_chunk_atom>` command must remain constant each
|
The number of chunks *Nchunk* calculated by the
|
||||||
time this compute is invoked, so that the displacement for each chunk
|
:doc:`compute chunk/atom <compute_chunk_atom>` command must remain constant
|
||||||
|
each time this compute is invoked, so that the displacement for each chunk
|
||||||
from its original position can be computed consistently. If *Nchunk*
|
from its original position can be computed consistently. If *Nchunk*
|
||||||
does not remain constant, an error will be generated. If needed, you
|
does not remain constant, an error will be generated. If needed, you
|
||||||
can enforce a constant *Nchunk* by using the *nchunk once* or *ids
|
can enforce a constant *Nchunk* by using the *nchunk once* or *ids once*
|
||||||
once* options when specifying the :doc:`compute chunk/atom <compute_chunk_atom>` command.
|
options when specifying the :doc:`compute chunk/atom <compute_chunk_atom>`
|
||||||
|
command.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -84,7 +88,8 @@ compute command was first invoked.
|
|||||||
"unwrapped" coordinates. See the Atoms section of the
|
"unwrapped" coordinates. See the Atoms section of the
|
||||||
:doc:`read_data <read_data>` command for a discussion of image flags and
|
:doc:`read_data <read_data>` command for a discussion of image flags and
|
||||||
how they are set for each atom. You can reset the image flags
|
how they are set for each atom. You can reset the image flags
|
||||||
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command.
|
(e.g., to 0) before invoking this compute by using the
|
||||||
|
:doc:`set image <set>` command.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -109,14 +114,15 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array where the number of rows = the
|
This compute calculates a global array where the number of rows = the
|
||||||
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns =
|
number of chunks *Nchunk* as calculated by the specified
|
||||||
4 for dx,dy,dz and the total displacement. These values can be
|
:doc:`compute chunk/atom <compute_chunk_atom>` command.
|
||||||
accessed by any command that uses global array values from a compute
|
The number of columns = 4 for *dx*, *dy*, *dz*, and the total displacement.
|
||||||
as input. See the :doc:`Howto output <Howto_output>` page for an
|
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.
|
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\^2 :doc:`units <units>`.
|
distance\ :math:`^2` :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute msd/nongauss command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID msd/nongauss keyword values ...
|
compute ID group-ID msd/nongauss keyword values ...
|
||||||
|
|
||||||
@ -35,21 +35,21 @@ Define a computation that calculates the mean-squared displacement
|
|||||||
including all effects due to atoms passing through periodic boundaries.
|
including all effects due to atoms passing through periodic boundaries.
|
||||||
|
|
||||||
A vector of three quantities is calculated by this compute. The first
|
A vector of three quantities is calculated by this compute. The first
|
||||||
element of the vector is the total squared dx,dy,dz displacements
|
element of the vector is the total squared displacement,
|
||||||
drsquared = (dx\*dx + dy\*dy + dz\*dz) of atoms, and the second is the
|
:math:`dr^2 = dx^2 + dy^2 + dz^2`, of the atoms, and the second is the
|
||||||
fourth power of these displacements drfourth = (dx\*dx + dy\*dy +
|
fourth power of these displacements, :math:`dr^4 = (dx^2 + dy^2 + dz^2)^2`,
|
||||||
dz\*dz)\*(dx\*dx + dy\*dy + dz\*dz), summed and averaged over atoms in the
|
summed and averaged over atoms in the group. The third component is the
|
||||||
group. The third component is the nonGaussian diffusion parameter NGP =
|
non-Gaussian diffusion parameter NGP,
|
||||||
3\*drfourth/(5\*drsquared\*drsquared), i.e.
|
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
NGP(t) = 3<(r(t)-r(0))^4>/(5<(r(t)-r(0))^2>^2) - 1
|
\text{NGP}(t) = \frac{3\left\langle(r(t)-r(0))^4\right\rangle}
|
||||||
|
{5\left\langle(r(t)-r(0))^2\right\rangle^2} - 1.
|
||||||
|
|
||||||
The NGP is a commonly used quantity in studies of dynamical
|
The NGP is a commonly used quantity in studies of dynamical
|
||||||
heterogeneity. Its minimum theoretical value (-0.4) occurs when all
|
heterogeneity. Its minimum theoretical value :math:`(-0.4)` occurs when all
|
||||||
atoms have the same displacement magnitude. NGP=0 for Brownian
|
atoms have the same displacement magnitude. :math:`\text{NGP}=0` for Brownian
|
||||||
diffusion, while NGP > 0 when some mobile atoms move faster than
|
diffusion, while :math:`\text{NGP} > 0` when some mobile atoms move faster than
|
||||||
others.
|
others.
|
||||||
|
|
||||||
If the *com* option is set to *yes* then the effect of any drift in
|
If the *com* option is set to *yes* then the effect of any drift in
|
||||||
@ -63,13 +63,13 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global vector of length 3, which can be
|
This compute calculates a global vector of length 3, which can be
|
||||||
accessed by indices 1-3 by any command that uses global vector values
|
accessed by indices 1--3 by any command that uses global vector values
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector values are "intensive". The first vector value will be in
|
The vector values are "intensive." The first vector value will be in
|
||||||
distance\^2 :doc:`units <units>`, the second is in distance\^4 units, and
|
distance\ :math:`^2` :doc:`units <units>`, the second is in
|
||||||
the third is dimensionless.
|
distance\ :math:`^4` units, and the third is dimensionless.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute nbond/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID nbond/atom
|
compute ID group-ID nbond/atom
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute omega/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID omega/chunk chunkID
|
compute ID group-ID omega/chunk chunkID
|
||||||
|
|
||||||
@ -27,18 +27,23 @@ Description
|
|||||||
Define a computation that calculates the angular velocity (omega) of
|
Define a computation that calculates the angular velocity (omega) of
|
||||||
multiple chunks of atoms.
|
multiple chunks of atoms.
|
||||||
|
|
||||||
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
In LAMMPS, chunks are collections of atoms defined by a
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
||||||
to a single chunk (or no chunk). The ID for this command is specified
|
to a single chunk (or no chunk). The ID for this command is specified
|
||||||
as chunkID. For example, a single chunk could be the atoms in a
|
as chunkID. For example, a single chunk could be the atoms in a
|
||||||
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>`
|
molecule or atoms in a spatial bin. See the
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` and
|
||||||
|
:doc:`Howto chunk <Howto_chunk>`
|
||||||
doc pages for details of how chunks can be defined and examples of how
|
doc pages for details of how chunks can be defined and examples of how
|
||||||
they can be used to measure properties of a system.
|
they can be used to measure properties of a system.
|
||||||
|
|
||||||
This compute calculates the 3 components of the angular velocity
|
This compute calculates the three components of the angular velocity
|
||||||
vector for each chunk, via the formula L = Iw where L is the angular
|
vector for each chunk via the formula
|
||||||
momentum vector of the chunk, I is its moment of inertia tensor, and w
|
:math:`\vec L = \mathrm{I}\cdot \vec\omega`, where :math:`\vec L` is the
|
||||||
is omega = angular velocity of the chunk. The calculation includes
|
angular momentum vector of the chunk, :math:`\mathrm{I}` is its moment of
|
||||||
all effects due to atoms passing through periodic boundaries.
|
inertia tensor, and :math:`\omega` is the angular velocity of the chunk.
|
||||||
|
The calculation includes all effects due to atoms passing through periodic
|
||||||
|
boundaries.
|
||||||
|
|
||||||
Note that only atoms in the specified group contribute to the
|
Note that only atoms in the specified group contribute to the
|
||||||
calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command
|
calculation. The :doc:`compute chunk/atom <compute_chunk_atom>` command
|
||||||
@ -56,7 +61,8 @@ non-zero chunk IDs.
|
|||||||
of "unwrapped" coordinates. See the Atoms section of the
|
of "unwrapped" coordinates. See the Atoms section of the
|
||||||
:doc:`read_data <read_data>` command for a discussion of image flags and
|
:doc:`read_data <read_data>` command for a discussion of image flags and
|
||||||
how they are set for each atom. You can reset the image flags
|
how they are set for each atom. You can reset the image flags
|
||||||
(e.g. to 0) before invoking this compute by using the :doc:`set image <set>` command.
|
(e.g., to 0) before invoking this compute by using the
|
||||||
|
:doc:`set image <set>` command.
|
||||||
|
|
||||||
The simplest way to output the results of the compute omega/chunk
|
The simplest way to output the results of the compute omega/chunk
|
||||||
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
||||||
@ -71,14 +77,14 @@ command, for example:
|
|||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a global array where the number of rows = the
|
This compute calculates a global array where the number of rows is the
|
||||||
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns =
|
number of chunks *Nchunk* as calculated by the specified :doc:`compute chunk/atom <compute_chunk_atom>` command. The number of columns is 3 for the three
|
||||||
3 for the 3 xyz components of the angular velocity for each chunk.
|
(*x*, *y*, *z*) components of the angular velocity for each chunk.
|
||||||
These values can be accessed by any command that uses global array
|
These values can be accessed by any command that uses global array
|
||||||
values from a compute as input. See the :doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
values from a compute as input. See the :doc:`Howto output <Howto_output>`
|
||||||
options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The array values are "intensive". The array values will be in
|
The array values are "intensive." The array values will be in
|
||||||
velocity/distance :doc:`units <units>`.
|
velocity/distance :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -9,7 +9,7 @@ Accelerator Variants: *orientorder/atom/kk*
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID orientorder/atom keyword values ...
|
compute ID group-ID orientorder/atom keyword values ...
|
||||||
|
|
||||||
@ -42,30 +42,30 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates a set of bond-orientational
|
Define a computation that calculates a set of bond-orientational
|
||||||
order parameters :math:`Q_l` for each atom in a group. These order parameters
|
order parameters :math:`Q_\ell` for each atom in a group. These order parameters
|
||||||
were introduced by :ref:`Steinhardt et al. <Steinhardt>` as a way to
|
were introduced by :ref:`Steinhardt et al. <Steinhardt>` as a way to
|
||||||
characterize the local orientational order in atomic structures.
|
characterize the local orientational order in atomic structures.
|
||||||
For each atom, :math:`Q_l` is a real number defined as follows:
|
For each atom, :math:`Q_\ell` is a real number defined as follows:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\bar{Y}_{lm} = & \frac{1}{nnn}\sum_{j = 1}^{nnn} Y_{lm}( \theta( {\bf r}_{ij} ), \phi( {\bf r}_{ij} ) ) \\
|
\bar{Y}_{\ell m} = & \frac{1}{nnn}\sum_{j = 1}^{nnn} Y_{\ell m}\bigl( \theta( {\bf r}_{ij} ), \phi( {\bf r}_{ij} ) \bigr) \\
|
||||||
Q_l = & \sqrt{\frac{4 \pi}{2 l + 1} \sum_{m = -l}^{m = l} \bar{Y}_{lm} \bar{Y}^*_{lm}}
|
Q_\ell = & \sqrt{\frac{4 \pi}{2 \ell + 1} \sum_{m = -\ell }^{m = \ell } \bar{Y}_{\ell m} \bar{Y}^*_{\ell m}}
|
||||||
|
|
||||||
The first equation defines the local order parameters as averages
|
The first equation defines the local order parameters as averages
|
||||||
of the spherical harmonics :math:`Y_{lm}` for each neighbor.
|
of the spherical harmonics :math:`Y_{\ell m}` for each neighbor.
|
||||||
These are complex number components of the 3D analog of the 2D order
|
These are complex number components of the 3D analog of the 2D order
|
||||||
parameter :math:`q_n`, which is implemented as LAMMPS compute
|
parameter :math:`q_n`, which is implemented as LAMMPS compute
|
||||||
:doc:`hexorder/atom <compute_hexorder_atom>`.
|
:doc:`hexorder/atom <compute_hexorder_atom>`.
|
||||||
The summation is over the *nnn* nearest
|
The summation is over the *nnn* nearest
|
||||||
neighbors of the central atom.
|
neighbors of the central atom. The angles :math:`\theta` and :math:`\phi` are
|
||||||
The angles :math:`theta` and :math:`phi` are the standard spherical polar angles
|
the standard spherical polar angles
|
||||||
defining the direction of the bond vector :math:`r_{ij}`.
|
defining the direction of the bond vector :math:`r_{ij}`.
|
||||||
The phase and sign of :math:`Y_{lm}` follow the standard conventions,
|
The phase and sign of :math:`Y_{\ell m}` follow the standard conventions,
|
||||||
so that :math:`{\rm sign}(Y_{ll}(0,0)) = (-1)^l`.
|
so that :math:`\mathrm{sign}(Y_{\ell\ell}(0,0)) = (-1)^\ell`.
|
||||||
The second equation defines :math:`Q_l`, which is a
|
The second equation defines :math:`Q_\ell`, which is a
|
||||||
rotationally invariant non-negative amplitude obtained by summing
|
rotationally invariant non-negative amplitude obtained by summing
|
||||||
over all the components of degree *l*\ .
|
over all the components of degree :math:`\ell`.
|
||||||
|
|
||||||
The optional keyword *cutoff* defines the distance cutoff
|
The optional keyword *cutoff* defines the distance cutoff
|
||||||
used when searching for neighbors. The default value, also
|
used when searching for neighbors. The default value, also
|
||||||
@ -73,7 +73,7 @@ the maximum allowable value, is the cutoff specified
|
|||||||
by the pair style.
|
by the pair style.
|
||||||
|
|
||||||
The optional keyword *nnn* defines the number of nearest
|
The optional keyword *nnn* defines the number of nearest
|
||||||
neighbors used to calculate :math:`Q_l`. The default value is 12.
|
neighbors used to calculate :math:`Q_\ell`. The default value is 12.
|
||||||
If the value is NULL, then all neighbors up to the
|
If the value is NULL, then all neighbors up to the
|
||||||
specified distance cutoff are used.
|
specified distance cutoff are used.
|
||||||
|
|
||||||
@ -84,32 +84,45 @@ degree of each order parameter. Because :math:`Q_2` and all odd-degree order
|
|||||||
parameters are zero for atoms in cubic crystals (see
|
parameters are zero for atoms in cubic crystals (see
|
||||||
:ref:`Steinhardt <Steinhardt>`), the default order parameters are :math:`Q_4`,
|
:ref:`Steinhardt <Steinhardt>`), the default order parameters are :math:`Q_4`,
|
||||||
:math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`. For the FCC
|
:math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`. For the FCC
|
||||||
crystal with *nnn* =12, :math:`Q_4 = \sqrt{\frac{7}{192}} = 0.19094...`.
|
crystal with *nnn* =12,
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
Q_4 = \sqrt{\frac{7}{192}} \approx 0.19094
|
||||||
|
|
||||||
The numerical values of all order
|
The numerical values of all order
|
||||||
parameters up to :math:`Q_12` for a range of commonly encountered
|
parameters up to :math:`Q_{12}` for a range of commonly encountered
|
||||||
high-symmetry structures are given in Table I of :ref:`Mickel et al. <Mickel>`,
|
high-symmetry structures are given in Table I of :ref:`Mickel et al. <Mickel>`,
|
||||||
and these can be reproduced with this compute.
|
and these can be reproduced with this compute.
|
||||||
|
|
||||||
The optional keyword *wl* will output the third-order invariants :math:`W_l`
|
The optional keyword *wl* will output the third-order invariants :math:`W_\ell`
|
||||||
(see Eq. 1.4 in :ref:`Steinhardt <Steinhardt>`) for the same degrees as
|
(see Eq. 1.4 in :ref:`Steinhardt <Steinhardt>`) for the same degrees as
|
||||||
for the :math:`Q_l` parameters. For the FCC crystal with *nnn* =12,
|
for the :math:`Q_\ell` parameters. For the FCC crystal with *nnn* = 12,
|
||||||
:math:`W_4` = -sqrt(14/143).(49/4096)/Pi\^1.5 = -0.0006722136...
|
|
||||||
|
.. math::
|
||||||
|
|
||||||
|
W_4 = -\sqrt{\frac{14}{143}} \left(\frac{49}{4096}\right) \pi^{-3/2} \approx -0.0006722136
|
||||||
|
|
||||||
The optional keyword *wl/hat* will output the normalized third-order
|
The optional keyword *wl/hat* will output the normalized third-order
|
||||||
invariants :math:`\hat{W}_l` (see Eq. 2.2 in :ref:`Steinhardt <Steinhardt>`)
|
invariants :math:`\hat{W}_\ell` (see Eq. 2.2 in :ref:`Steinhardt <Steinhardt>`)
|
||||||
for the same degrees as for the :math:`Q_l` parameters. For the FCC crystal
|
for the same degrees as for the :math:`Q_\ell` parameters. For the FCC crystal
|
||||||
with *nnn* =12, :math:`\hat{W}_4 = -\frac{7}{3} \sqrt{\frac{2}{429}} = -0.159317...`
|
with *nnn* =12,
|
||||||
The numerical
|
|
||||||
values of :math:`\hat{W}_l` for a range of commonly encountered high-symmetry
|
.. math::
|
||||||
structures are given in Table I of :ref:`Steinhardt <Steinhardt>`, and these
|
|
||||||
can be reproduced with this keyword.
|
\hat{W}_4 = -\frac{7}{3} \sqrt{\frac{2}{429}} \approx -0.159317
|
||||||
|
|
||||||
|
The numerical values of :math:`\hat{W}_\ell` for a range of commonly
|
||||||
|
encountered high-symmetry structures are given in Table I of
|
||||||
|
:ref:`Steinhardt <Steinhardt>`, and these can be reproduced with this keyword.
|
||||||
|
|
||||||
The optional keyword *components* will output the components of the
|
The optional keyword *components* will output the components of the
|
||||||
*normalized* complex vector :math:`\hat{Y}_{lm} = \bar{Y}_{lm}/|\bar{Y}_{lm}|` of degree *ldegree*\,
|
*normalized* complex vector
|
||||||
which must be included in the list of order parameters to be computed. This option can be used
|
:math:`\hat{Y}_{\ell m} = \bar{Y}_{\ell m}/|\bar{Y}_{\ell m}|`
|
||||||
in conjunction with :doc:`compute coord_atom <compute_coord_atom>` to
|
of degree *ldegree*\, which must be included in the list of order parameters to
|
||||||
calculate the ten Wolde's criterion to identify crystal-like
|
be computed. This option can be used in conjunction with
|
||||||
particles, as discussed in :ref:`ten Wolde <tenWolde2>`.
|
:doc:`compute coord_atom <compute_coord_atom>` to calculate the ten Wolde's
|
||||||
|
criterion to identify crystal-like particles, as discussed in
|
||||||
|
:ref:`ten Wolde <tenWolde2>`.
|
||||||
|
|
||||||
The optional keyword *chunksize* is only applicable when using the
|
The optional keyword *chunksize* is only applicable when using the
|
||||||
the KOKKOS package and is ignored otherwise. This keyword controls
|
the KOKKOS package and is ignored otherwise. This keyword controls
|
||||||
@ -119,12 +132,12 @@ if there are 32768 atoms in the simulation and the *chunksize*
|
|||||||
is set to 16384, the parameter calculation will be broken up
|
is set to 16384, the parameter calculation will be broken up
|
||||||
into two passes.
|
into two passes.
|
||||||
|
|
||||||
The value of :math:`Q_l` is set to zero for atoms not in the
|
The value of :math:`Q_\ell` is set to zero for atoms not in the
|
||||||
specified compute group, as well as for atoms that have less than
|
specified compute group, as well as for atoms that have less than
|
||||||
*nnn* neighbors within the distance cutoff, unless *nnn* is NULL.
|
*nnn* neighbors within the distance cutoff, unless *nnn* is NULL.
|
||||||
|
|
||||||
The neighbor list needed to compute this quantity is constructed each
|
The neighbor list needed to compute this quantity is constructed each
|
||||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
time the calculation is performed (i.e., each time a snapshot of atoms
|
||||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||||
too frequently.
|
too frequently.
|
||||||
|
|
||||||
@ -155,19 +168,21 @@ Output info
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
This compute calculates a per-atom array with *nlvalues* columns,
|
This compute calculates a per-atom array with *nlvalues* columns,
|
||||||
giving the :math:`Q_l` values for each atom, which are real numbers on the
|
giving the :math:`Q_\ell` values for each atom, which are real numbers in the
|
||||||
range :math:`0 <= Q_l <= 1`.
|
range :math:`0 \le Q_\ell \le 1`.
|
||||||
|
|
||||||
If the keyword *wl* is set to yes, then the :math:`W_l` values for each
|
If the keyword *wl* is set to yes, then the :math:`W_\ell` values for each
|
||||||
atom will be added to the output array, which are real numbers.
|
atom will be added to the output array, which are real numbers.
|
||||||
|
|
||||||
If the keyword *wl/hat* is set to yes, then the :math:`\hat{W}_l`
|
If the keyword *wl/hat* is set to yes, then the :math:`\hat{W}_\ell`
|
||||||
values for each atom will be added to the output array, which are real numbers.
|
values for each atom will be added to the output array, which are real numbers.
|
||||||
|
|
||||||
If the keyword *components* is set, then the real and imaginary parts
|
If the keyword *components* is set, then the real and imaginary parts
|
||||||
of each component of *normalized* :math:`\hat{Y}_{lm}` will be added to the
|
of each component of *normalized* :math:`\hat{Y}_{\ell m}` will be added to the
|
||||||
output array in the following order: :math:`{\rm Re}(\hat{Y}_{-m}), {\rm Im}(\hat{Y}_{-m}),
|
output array in the following order:
|
||||||
{\rm Re}(\hat{Y}_{-m+1}), {\rm Im}(\hat{Y}_{-m+1}), \dots , {\rm Re}(\hat{Y}_m), {\rm Im}(\hat{Y}_m)`.
|
:math:`\Re(\hat{Y}_{-m}),` :math:`\Im(\hat{Y}_{-m}),`
|
||||||
|
:math:`\Re(\hat{Y}_{-m+1}),` :math:`\Im(\hat{Y}_{-m+1}), \dotsc,`
|
||||||
|
:math:`\Re(\hat{Y}_m),` :math:`\Im(\hat{Y}_m).`
|
||||||
|
|
||||||
In summary, the per-atom array will contain *nlvalues* columns, followed by
|
In summary, the per-atom array will contain *nlvalues* columns, followed by
|
||||||
an additional *nlvalues* columns if *wl* is set to yes, followed by
|
an additional *nlvalues* columns if *wl* is set to yes, followed by
|
||||||
@ -193,7 +208,7 @@ Default
|
|||||||
"""""""
|
"""""""
|
||||||
|
|
||||||
The option defaults are *cutoff* = pair style cutoff, *nnn* = 12,
|
The option defaults are *cutoff* = pair style cutoff, *nnn* = 12,
|
||||||
*degrees* = 5 4 6 8 10 12 i.e. :math:`Q_4`, :math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`,
|
*degrees* = 5 4 6 8 10 12 (i.e., :math:`Q_4`, :math:`Q_6`, :math:`Q_8`, :math:`Q_{10}`, and :math:`Q_{12}`),
|
||||||
*wl* = no, *wl/hat* = no, *components* off, and *chunksize* = 16384
|
*wl* = no, *wl/hat* = no, *components* off, and *chunksize* = 16384
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute pair command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID pair pstyle [nstyle] [evalue]
|
compute ID group-ID pair pstyle [nstyle] [evalue]
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a global scalar which is *epair* or *evdwl* or
|
This compute calculates a global scalar which is *epair* or *evdwl* or
|
||||||
*ecoul*\ . If the pair style supports it, it also calculates a global
|
*ecoul*\ . If the pair style supports it, it also calculates a global
|
||||||
vector of length >= 1, as determined by the pair style. These values
|
vector of length :math:`\ge` 1, as determined by the pair style. These values
|
||||||
can be used by any command that uses global scalar or vector values
|
can be used by any command that uses global scalar or vector values
|
||||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||||
page for an overview of LAMMPS output options.
|
page for an overview of LAMMPS output options.
|
||||||
|
|||||||
@ -6,14 +6,14 @@ compute pair/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID pair/local value1 value2 ... keyword args ...
|
compute ID group-ID pair/local value1 value2 ... keyword args ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* pair/local = style name of this compute command
|
* pair/local = style name of this compute command
|
||||||
* one or more values may be appended
|
* one or more values may be appended
|
||||||
* value = *dist* or *dx* or *dy* or *dz* or *eng* or *force* or *fx* or *fy* or *fz* or *pN*
|
* value = *dist* or *dx* or *dy* or *dz* or *eng* or *force* or *fx* or *fy* or *fz* or *p1* or *p2* or ...
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ Syntax
|
|||||||
*eng* = pairwise energy
|
*eng* = pairwise energy
|
||||||
*force* = pairwise force
|
*force* = pairwise force
|
||||||
*fx*,\ *fy*,\ *fz* = components of pairwise force
|
*fx*,\ *fy*,\ *fz* = components of pairwise force
|
||||||
*pN* = pair style specific quantities for allowed N values
|
*p1*, *p2*, ... = pair style specific quantities for allowed N values
|
||||||
|
|
||||||
* zero or more keyword/arg pairs may be appended
|
* zero or more keyword/arg pairs may be appended
|
||||||
* keyword = *cutoff*
|
* keyword = *cutoff*
|
||||||
@ -57,7 +57,7 @@ force cutoff distance for that interaction, as defined by the
|
|||||||
commands.
|
commands.
|
||||||
|
|
||||||
The value *dist* is the distance between the pair of atoms.
|
The value *dist* is the distance between the pair of atoms.
|
||||||
The values *dx*, *dy*, and *dz* are the xyz components of the
|
The values *dx*, *dy*, and *dz* are the :math:`(x,y,z)` components of the
|
||||||
*distance* between the pair of atoms. This value is always the
|
*distance* between the pair of atoms. This value is always the
|
||||||
distance from the atom of lower to the one with the higher id.
|
distance from the atom of lower to the one with the higher id.
|
||||||
|
|
||||||
@ -65,21 +65,21 @@ The value *eng* is the interaction energy for the pair of atoms.
|
|||||||
|
|
||||||
The value *force* is the force acting between the pair of atoms, which
|
The value *force* is the force acting between the pair of atoms, which
|
||||||
is positive for a repulsive force and negative for an attractive
|
is positive for a repulsive force and negative for an attractive
|
||||||
force. The values *fx*, *fy*, and *fz* are the xyz components of
|
force. The values *fx*, *fy*, and *fz* are the :math:`(x,y,z)` components of
|
||||||
*force* on atom I.
|
*force* on atom I.
|
||||||
|
|
||||||
A pair style may define additional pairwise quantities which can be
|
A pair style may define additional pairwise quantities which can be
|
||||||
accessed as *p1* to *pN*, where N is defined by the pair style. Most
|
accessed as *p1* to *pN*, where :math:`N` is defined by the pair style.
|
||||||
pair styles do not define any additional quantities, so N = 0. An
|
Most pair styles do not define any additional quantities, so :math:`N = 0`.
|
||||||
example of ones that do are the :doc:`granular pair styles <pair_gran>`
|
An example of ones that do are the :doc:`granular pair styles <pair_gran>`
|
||||||
which calculate the tangential force between two particles and return
|
which calculate the tangential force between two particles and return
|
||||||
its components and magnitude acting on atom I for N = 1,2,3,4. See
|
its components and magnitude acting on atom :math:`I` for
|
||||||
individual pair styles for details.
|
:math:`N \in \{1,2,3,4\}`. See individual pair styles for details.
|
||||||
|
|
||||||
When using *pN* with pair style *hybrid*, the output will be the Nth
|
When using *pN* with pair style *hybrid*, the output will be the Nth
|
||||||
quantity from the sub-style that computes the pairwise interaction
|
quantity from the sub-style that computes the pairwise interaction
|
||||||
(based on atom types). If that sub-style does not define a *pN*,
|
(based on atom types). If that sub-style does not define a *pN*,
|
||||||
the output will be 0.0. The maximum allowed N is the maximum number
|
the output will be 0.0. The maximum allowed :math:`N` is the maximum number
|
||||||
of quantities provided by any sub-style.
|
of quantities provided by any sub-style.
|
||||||
|
|
||||||
When using *pN* with pair style *hybrid/overlay* the quantities
|
When using *pN* with pair style *hybrid/overlay* the quantities
|
||||||
@ -104,7 +104,9 @@ the pairwise cutoff defined by the :doc:`pair_style <pair_style>`
|
|||||||
command for the types of the two atoms is used. For the *radius*
|
command for the types of the two atoms is used. For the *radius*
|
||||||
setting, the sum of the radii of the two particles is used as a
|
setting, the sum of the radii of the two particles is used as a
|
||||||
cutoff. For example, this is appropriate for granular particles which
|
cutoff. For example, this is appropriate for granular particles which
|
||||||
only interact when they are overlapping, as computed by :doc:`granular pair styles <pair_gran>`. Note that if a granular model defines atom
|
only interact when they are overlapping, as computed by
|
||||||
|
:doc:`granular pair styles <pair_gran>`.
|
||||||
|
Note that if a granular model defines atom
|
||||||
types such that all particles of a specific type are monodisperse
|
types such that all particles of a specific type are monodisperse
|
||||||
(same diameter), then the two settings are effectively identical.
|
(same diameter), then the two settings are effectively identical.
|
||||||
|
|
||||||
@ -113,7 +115,8 @@ no consistent ordering of the entries within the local vector or array
|
|||||||
from one timestep to the next. The only consistency that is
|
from one timestep to the next. The only consistency that is
|
||||||
guaranteed is that the ordering on a particular timestep will be the
|
guaranteed is that the ordering on a particular timestep will be the
|
||||||
same for local vectors or arrays generated by other compute commands.
|
same for local vectors or arrays generated by other compute commands.
|
||||||
For example, pair output from the :doc:`compute property/local <compute_property_local>` command can be combined
|
For example, pair output from the
|
||||||
|
:doc:`compute property/local <compute_property_local>` command can be combined
|
||||||
with data from this command and output by the :doc:`dump local <dump>`
|
with data from this command and output by the :doc:`dump local <dump>`
|
||||||
command in a consistent way.
|
command in a consistent way.
|
||||||
|
|
||||||
@ -127,13 +130,13 @@ Here is an example of how to do this:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For pairs, if two atoms I,J are involved in 1-2, 1-3, 1-4
|
For pairs, if two atoms I,J are involved in 1--2, 1--3, and 1--4
|
||||||
interactions within the molecular topology, their pairwise interaction
|
interactions within the molecular topology, their pairwise interaction
|
||||||
may be turned off, and thus they may not appear in the neighbor list,
|
may be turned off, and thus they may not appear in the neighbor list,
|
||||||
and will not be part of the local data created by this command. More
|
and will not be part of the local data created by this command. More
|
||||||
specifically, this will be true of I,J pairs with a weighting factor
|
specifically, this will be true of I,J pairs with a weighting factor
|
||||||
of 0.0; pairs with a non-zero weighting factor are included. The
|
of 0.0; pairs with a non-zero weighting factor are included. The
|
||||||
weighting factors for 1-2, 1-3, and 1-4 pairwise interactions are set
|
weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set
|
||||||
by the :doc:`special_bonds <special_bonds>` command. An exception is if
|
by the :doc:`special_bonds <special_bonds>` command. An exception is if
|
||||||
long-range Coulombics are being computed via the
|
long-range Coulombics are being computed via the
|
||||||
:doc:`kspace_style <kspace_style>` command, then atom pairs with
|
:doc:`kspace_style <kspace_style>` command, then atom pairs with
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute pe command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID pe keyword ...
|
compute ID group-ID pe keyword ...
|
||||||
|
|
||||||
@ -27,19 +27,19 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the potential energy of the
|
Define a computation that calculates the potential energy of the
|
||||||
entire system of atoms. The specified group must be "all". See the
|
entire system of atoms. The specified group must be "all." See the
|
||||||
:doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom
|
:doc:`compute pe/atom <compute_pe_atom>` command if you want per-atom
|
||||||
energies. These per-atom values could be summed for a group of atoms
|
energies. These per-atom values could be summed for a group of atoms
|
||||||
via the :doc:`compute reduce <compute_reduce>` command.
|
via the :doc:`compute reduce <compute_reduce>` command.
|
||||||
|
|
||||||
The energy is calculated by the various pair, bond, etc potentials
|
The energy is calculated by the various pair, bond, etc. potentials
|
||||||
defined for the simulation. If no extra keywords are listed, then the
|
defined for the simulation. If no extra keywords are listed, then the
|
||||||
potential energy is the sum of pair, bond, angle, dihedral, improper,
|
potential energy is the sum of pair, bond, angle, dihedral, improper,
|
||||||
kspace (long-range), and fix energy. I.e. it is as if all the
|
:math:`k`-space (long-range), and fix energy (i.e., it is as though all the
|
||||||
keywords were listed. If any extra keywords are listed, then only
|
keywords were listed). If any extra keywords are listed, then only
|
||||||
those components are summed to compute the potential energy.
|
those components are summed to compute the potential energy.
|
||||||
|
|
||||||
The Kspace contribution requires 1 extra FFT each timestep the energy
|
The :math:`k`-space contribution requires 1 extra FFT each timestep the energy
|
||||||
is calculated, if using the PPPM solver via the :doc:`kspace_style pppm <kspace_style>` command. Thus it can increase the cost of the
|
is calculated, if using the PPPM solver via the :doc:`kspace_style pppm <kspace_style>` command. Thus it can increase the cost of the
|
||||||
PPPM calculation if it is needed on a large fraction of the simulation
|
PPPM calculation if it is needed on a large fraction of the simulation
|
||||||
timesteps.
|
timesteps.
|
||||||
@ -73,7 +73,7 @@ value can be used by any command that uses a global scalar value from
|
|||||||
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
a compute as input. See the :doc:`Howto output <Howto_output>` doc page
|
||||||
for an overview of LAMMPS output options.
|
for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The scalar value calculated by this compute is "extensive". The
|
The scalar value calculated by this compute is "extensive." The
|
||||||
scalar value will be in energy :doc:`units <units>`.
|
scalar value will be in energy :doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute pe/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID pe/atom keyword ...
|
compute ID group-ID pe/atom keyword ...
|
||||||
|
|
||||||
@ -34,20 +34,20 @@ you want the potential energy of the entire system.
|
|||||||
The per-atom energy is calculated by the various pair, bond, etc
|
The per-atom energy is calculated by the various pair, bond, etc
|
||||||
potentials defined for the simulation. If no extra keywords are
|
potentials defined for the simulation. If no extra keywords are
|
||||||
listed, then the potential energy is the sum of pair, bond, angle,
|
listed, then the potential energy is the sum of pair, bond, angle,
|
||||||
dihedral,improper, kspace (long-range), and fix energy. I.e. it is as
|
dihedral, improper, :math:`k`-space (long-range), and fix energy (i.e., it is as
|
||||||
if all the keywords were listed. If any extra keywords are listed,
|
though all the keywords were listed). If any extra keywords are listed,
|
||||||
then only those components are summed to compute the potential energy.
|
then only those components are summed to compute the potential energy.
|
||||||
|
|
||||||
Note that the energy of each atom is due to its interaction with all
|
Note that the energy of each atom is due to its interaction with all
|
||||||
other atoms in the simulation, not just with other atoms in the group.
|
other atoms in the simulation, not just with other atoms in the group.
|
||||||
|
|
||||||
For an energy contribution produced by a small set of atoms (e.g. 4
|
For an energy contribution produced by a small set of atoms (e.g., 4
|
||||||
atoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that
|
atoms in a dihedral or 3 atoms in a Tersoff 3-body interaction), that
|
||||||
energy is assigned in equal portions to each atom in the set.
|
energy is assigned in equal portions to each atom in the set (e.g., 1/4 of the
|
||||||
E.g. 1/4 of the dihedral energy to each of the 4 atoms.
|
dihedral energy to each of the four atoms).
|
||||||
|
|
||||||
The :doc:`dihedral_style charmm <dihedral_charmm>` style calculates
|
The :doc:`dihedral_style charmm <dihedral_charmm>` style calculates
|
||||||
pairwise interactions between 1-4 atoms. The energy contribution of
|
pairwise interactions between 1--4 atoms. The energy contribution of
|
||||||
these terms is included in the pair energy, not the dihedral energy.
|
these terms is included in the pair energy, not the dihedral energy.
|
||||||
|
|
||||||
The KSpace contribution is calculated using the method in
|
The KSpace contribution is calculated using the method in
|
||||||
@ -81,8 +81,9 @@ in the last 2 columns of thermo output:
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The per-atom energy does not include any Lennard-Jones tail
|
The per-atom energy does not include any Lennard-Jones tail
|
||||||
corrections to the energy added by the :doc:`pair_modify tail yes <pair_modify>` command, since those are contributions to the
|
corrections to the energy added by the
|
||||||
global system energy.
|
:doc:`pair_modify tail yes <pair_modify>` command, since those are
|
||||||
|
contributions to the global system energy.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute plasticity/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID plasticity/atom
|
compute ID group-ID plasticity/atom
|
||||||
|
|
||||||
@ -24,16 +24,19 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the per-atom plasticity for each
|
Define a computation that calculates the per-atom plasticity for each
|
||||||
atom in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
|
atom in a group. This is a quantity relevant for
|
||||||
|
:doc:`Peridynamics models <pair_peri>`.
|
||||||
|
See `this document <PDF/PDLammps_overview.pdf>`_
|
||||||
for an overview of LAMMPS commands for Peridynamics modeling.
|
for an overview of LAMMPS commands for Peridynamics modeling.
|
||||||
|
|
||||||
The plasticity for a Peridynamic particle is the so-called consistency
|
The plasticity for a Peridynamic particle is the so-called consistency
|
||||||
parameter (lambda). For elastic deformation lambda = 0, otherwise
|
parameter (:math:`\lambda`). For elastic deformation, :math:`\lambda = 0`,
|
||||||
lambda > 0 for plastic deformation. For details, see
|
otherwise :math:`\lambda > 0` for plastic deformation. For details, see
|
||||||
:ref:`(Mitchell) <Mitchell>` and the PDF doc included in the LAMMPS
|
:ref:`(Mitchell) <Mitchell>` and the PDF doc included in the LAMMPS
|
||||||
distribution in `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_.
|
distribution in `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_.
|
||||||
|
|
||||||
This command can be invoked for one of the Peridynamic :doc:`pair styles <pair_peri>`: peri/eps.
|
This command can be invoked for one of the Peridynamic
|
||||||
|
:doc:`pair styles <pair_peri>`: peri/eps.
|
||||||
|
|
||||||
The plasticity value will be 0.0 for atoms not in the specified
|
The plasticity value will be 0.0 for atoms not in the specified
|
||||||
compute group.
|
compute group.
|
||||||
@ -46,7 +49,7 @@ any command that uses per-atom values from a compute as input. See
|
|||||||
the :doc:`Howto output <Howto_output>` page for an overview of
|
the :doc:`Howto output <Howto_output>` page for an overview of
|
||||||
LAMMPS output options.
|
LAMMPS output options.
|
||||||
|
|
||||||
The per-atom vector values are unitless numbers (lambda) >= 0.0.
|
The per-atom vector values are unitless numbers :math:`\lambda \ge 0.0`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -70,5 +73,5 @@ none
|
|||||||
.. _Mitchell:
|
.. _Mitchell:
|
||||||
|
|
||||||
**(Mitchell)** Mitchell, "A non-local, ordinary-state-based
|
**(Mitchell)** Mitchell, "A non-local, ordinary-state-based
|
||||||
viscoelasticity model for peridynamics", Sandia National Lab Report,
|
viscoelasticity model for peridynamics," Sandia National Lab Report,
|
||||||
8064:1-28 (2011).
|
8064:1-28 (2011).
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute pressure command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID pressure temp-ID keyword ...
|
compute ID group-ID pressure temp-ID keyword ...
|
||||||
|
|
||||||
@ -29,7 +29,8 @@ Description
|
|||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Define a computation that calculates the pressure of the entire system
|
Define a computation that calculates the pressure of the entire system
|
||||||
of atoms. The specified group must be "all". See the :doc:`compute stress/atom <compute_stress_atom>` command if you want per-atom
|
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
|
pressure (stress). These per-atom values could be summed for a group
|
||||||
of atoms via the :doc:`compute reduce <compute_reduce>` command.
|
of atoms via the :doc:`compute reduce <compute_reduce>` command.
|
||||||
|
|
||||||
@ -37,35 +38,37 @@ The pressure is computed by the formula
|
|||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
P = \frac{N k_B T}{V} + \frac{\sum_{i}^{N'} r_i \bullet f_i}{dV}
|
P = \frac{N k_B T}{V} + \frac{1}{V d}\sum_{i=1}^{N'} \vec r_i \cdot \vec f_i
|
||||||
|
|
||||||
where *N* is the number of atoms in the system (see discussion of DOF
|
where *N* is the number of atoms in the system (see discussion of DOF
|
||||||
below), :math:`k_B` is the Boltzmann constant, *T* is the temperature, d
|
below), :math:`k_B` is the Boltzmann constant, :math:`T` is the
|
||||||
is the dimensionality of the system (2 or 3 for 2d/3d), and *V* is the
|
temperature, *d* is the dimensionality of the system (2 for 2d, 3 for
|
||||||
system volume (or area in 2d). The second term is the virial, equal to
|
3d), and *V* is the system volume (or area in 2d). The second term is
|
||||||
-dU/dV, computed for all pairwise as well as 2-body, 3-body, 4-body,
|
the virial, equal to :math:`-dU/dV`, computed for all pairwise as well
|
||||||
many-body, and long-range interactions, where :math:`r_i` and
|
as 2-body, 3-body, 4-body, many-body, and long-range interactions, where
|
||||||
:math:`f_i` are the position and force vector of atom *i*, and the black
|
:math:`\vec r_i` and :math:`\vec f_i` are the position and force vector
|
||||||
dot indicates a dot product. This is computed in parallel for each
|
of atom *i*, and the dot indicates the dot product (scalar product).
|
||||||
sub-domain and then summed over all parallel processes. Thus N'
|
This is computed in parallel for each sub-domain and then summed over
|
||||||
necessarily includes atoms from neighboring sub-domains (so-called ghost
|
all parallel processes. Thus :math:`N'` necessarily includes atoms from
|
||||||
atoms) and the position and force vectors of ghost atoms are thus
|
neighboring sub-domains (so-called ghost atoms) and the position and
|
||||||
included in the summation. Only when running in serial and without
|
force vectors of ghost atoms are thus included in the summation. Only
|
||||||
periodic boundary conditions is N' = N = the number of atoms in the
|
when running in serial and without periodic boundary conditions is
|
||||||
system. :doc:`Fixes <fix>` that impose constraints (e.g. the :doc:`fix
|
:math:`N' = N` the number of atoms in the system. :doc:`Fixes <fix>`
|
||||||
shake <fix_shake>` command) may also contribute to the virial term.
|
that impose constraints (e.g., the :doc:`fix shake <fix_shake>` command)
|
||||||
|
may also contribute to the virial term.
|
||||||
|
|
||||||
A symmetric pressure tensor, stored as a 6-element vector, is also
|
A symmetric pressure tensor, stored as a 6-element vector, is also
|
||||||
calculated by this compute. The 6 components of the vector are
|
calculated by this compute. The six components of the vector are
|
||||||
ordered xx, yy, zz, xy, xz, yz. The equation for the I,J components
|
ordered :math:`xx,` :math:`yy,` :math:`zz,` :math:`xy,` :math:`xz,` :math:`yz.`
|
||||||
(where I and J = x,y,z) is similar to the above formula, except that
|
The equation for the :math:`(I,J)` components (where :math:`I` and :math:`J`
|
||||||
the first term uses components of the kinetic energy tensor and the
|
are :math:`x`, :math:`y`, or :math:`z`) is similar to the above formula,
|
||||||
|
except that the first term uses components of the kinetic energy tensor and the
|
||||||
second term uses components of the virial tensor:
|
second term uses components of the virial tensor:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
P_{IJ} = \frac{\sum_{k}^{N} m_k v_{k_I} v_{k_J}}{V} +
|
P_{IJ} = \frac{1}{V}\sum_{k=1}^{N} m_k v_{k_I} v_{k_J} +
|
||||||
\frac{\sum_{k}^{N'} r_{k_I} f_{k_J}}{V}
|
\frac{1}{V}\sum_{k=1}^{N'} r_{k_I} f_{k_J}.
|
||||||
|
|
||||||
If no extra keywords are listed, the entire equations above are
|
If no extra keywords are listed, the entire equations above are
|
||||||
calculated. This includes a kinetic energy (temperature) term and the
|
calculated. This includes a kinetic energy (temperature) term and the
|
||||||
@ -89,27 +92,30 @@ command. If the kinetic energy is not included in the pressure, than
|
|||||||
the temperature compute is not used and can be specified as NULL.
|
the temperature compute is not used and can be specified as NULL.
|
||||||
Normally the temperature compute used by compute pressure should
|
Normally the temperature compute used by compute pressure should
|
||||||
calculate the temperature of all atoms for consistency with the virial
|
calculate the temperature of all atoms for consistency with the virial
|
||||||
term, but any compute style that calculates temperature can be used,
|
term, but any compute style that calculates temperature can be used
|
||||||
e.g. one that excludes frozen atoms or other degrees of freedom.
|
(e.g., one that excludes frozen atoms or other degrees of freedom).
|
||||||
|
|
||||||
Note that if desired the specified temperature compute can be one that
|
Note that if desired the specified temperature compute can be one that
|
||||||
subtracts off a bias to calculate a temperature using only the thermal
|
subtracts off a bias to calculate a temperature using only the thermal
|
||||||
velocity of the atoms, e.g. by subtracting a background streaming
|
velocity of the atoms (e.g., by subtracting a background streaming
|
||||||
velocity. See the doc pages for individual :doc:`compute commands <compute>` to determine which ones include a bias.
|
velocity).
|
||||||
|
See the doc pages for individual :doc:`compute commands <compute>` to determine
|
||||||
|
which ones include a bias.
|
||||||
|
|
||||||
Also note that the N in the first formula above is really
|
Also note that the :math:`N` in the first formula above is really
|
||||||
degrees-of-freedom divided by d = dimensionality, where the DOF value
|
degrees-of-freedom divided by :math:`d` = dimensionality, where the DOF value
|
||||||
is calculated by the temperature compute. See the various :doc:`compute temperature <compute>` styles for details.
|
is calculated by the temperature compute.
|
||||||
|
See the various :doc:`compute temperature <compute>` styles for details.
|
||||||
|
|
||||||
A compute of this style with the ID of "thermo_press" is created when
|
A compute of this style with the ID of thermo_press is created when
|
||||||
LAMMPS starts up, as if this command were in the input script:
|
LAMMPS starts up, as if this command were in the input script:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute thermo_press all pressure thermo_temp
|
compute thermo_press all pressure thermo_temp
|
||||||
|
|
||||||
where "thermo_temp" is the ID of a similarly defined compute of style
|
where thermo_temp is the ID of a similarly defined compute of style
|
||||||
"temp". See the "thermo_style" command for more details.
|
"temp." See the :doc:`thermo_style <thermo_style>` command for more details.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -122,15 +128,16 @@ Output info
|
|||||||
|
|
||||||
This compute calculates a global scalar (the pressure) and a global
|
This compute calculates a global scalar (the pressure) and a global
|
||||||
vector of length 6 (pressure tensor), which can be accessed by indices
|
vector of length 6 (pressure tensor), which can be accessed by indices
|
||||||
1-6. These values can be used by any command that uses global scalar
|
1--6. These values can be used by any command that uses global scalar
|
||||||
or vector values from a compute as input. See the :doc:`Howto output
|
or vector values from a compute as input. See the :doc:`Howto output
|
||||||
<Howto_output>` page for an overview of LAMMPS output options.
|
<Howto_output>` page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The ordering of values in the symmetric pressure tensor is as follows:
|
The ordering of values in the symmetric pressure tensor is as follows:
|
||||||
pxx, pyy, pzz, pxy, pxz, pyz.
|
:math:`p_{xx},` :math:`p_{yy},` :math:`p_{zz},` :math:`p_{xy},`
|
||||||
|
:math:`p_{xz},` :math:`p_{yz}.`
|
||||||
|
|
||||||
The scalar and vector values calculated by this compute are
|
The scalar and vector values calculated by this compute are
|
||||||
"intensive". The scalar and vector values will be in pressure
|
"intensive." The scalar and vector values will be in pressure
|
||||||
:doc:`units <units>`.
|
:doc:`units <units>`.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute pressure/uef command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID pressure/uef temp-ID keyword ...
|
compute ID group-ID pressure/uef temp-ID keyword ...
|
||||||
|
|
||||||
@ -42,14 +42,14 @@ Restrictions
|
|||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This fix is part of the UEF package. It is only enabled if LAMMPS
|
This fix is part of the UEF package. It is only enabled if LAMMPS
|
||||||
was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
was built with that package. See the :doc:`Build package <Build_package>` page
|
||||||
|
for more info.
|
||||||
|
|
||||||
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`
|
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`
|
||||||
or :doc:`fix npt/uef <fix_nh_uef>` is active.
|
or :doc:`fix npt/uef <fix_nh_uef>` is active.
|
||||||
|
|
||||||
The kinetic contribution to the pressure tensor
|
The kinetic contribution to the pressure tensor
|
||||||
will be accurate only when
|
will be accurate only when the compute specified by *temp-ID* is a
|
||||||
the compute specified by *temp-ID* is a
|
|
||||||
:doc:`compute temp/uef <compute_temp_uef>`.
|
:doc:`compute temp/uef <compute_temp_uef>`.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute property/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID property/atom input1 input2 ...
|
compute ID group-ID property/atom input1 input2 ...
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ Syntax
|
|||||||
corner2x, corner2y, corner2z,
|
corner2x, corner2y, corner2z,
|
||||||
corner3x, corner3y, corner3z,
|
corner3x, corner3y, corner3z,
|
||||||
i_name, d_name, i2_name[I], d2_name[I],
|
i_name, d_name, i2_name[I], d2_name[I],
|
||||||
vfrac, s0, spin, eradius, ervel, erforce,
|
vfrac, s0, espin, eradius, ervel, erforce,
|
||||||
rho, drho, e, de, cv, buckling,
|
rho, drho, e, de, cv, buckling,
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
@ -76,7 +76,7 @@ Syntax
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
EFF and AWPMD package per-atom properties:
|
EFF and AWPMD package per-atom properties:
|
||||||
spin = electron spin
|
espin = electron spin
|
||||||
eradius = electron radius
|
eradius = electron radius
|
||||||
ervel = electron radial velocity
|
ervel = electron radial velocity
|
||||||
erforce = electron radial force
|
erforce = electron radial force
|
||||||
@ -127,7 +127,7 @@ LAMMPS.
|
|||||||
The values are stored in a per-atom vector or array as discussed
|
The values are stored in a per-atom vector or array as discussed
|
||||||
below. Zeroes are stored for atoms not in the specified group or for
|
below. Zeroes are stored for atoms not in the specified group or for
|
||||||
quantities that are not defined for a particular particle in the group
|
quantities that are not defined for a particular particle in the group
|
||||||
(e.g. *shapex* if the particle is not an ellipsoid).
|
(e.g., *shapex* if the particle is not an ellipsoid).
|
||||||
|
|
||||||
Attributes *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom
|
Attributes *i_name*, *d_name*, *i2_name*, *d2_name* refer to custom
|
||||||
per-atom integer and floating-point vectors or arrays that have been
|
per-atom integer and floating-point vectors or arrays that have been
|
||||||
@ -135,7 +135,7 @@ added via the :doc:`fix property/atom <fix_property_atom>` command.
|
|||||||
When that command is used specific names are given to each attribute
|
When that command is used specific names are given to each attribute
|
||||||
which are the "name" portion of these attributes. For arrays *i2_name*
|
which are the "name" portion of these attributes. For arrays *i2_name*
|
||||||
and *d2_name*, the column of the array must also be included following
|
and *d2_name*, the column of the array must also be included following
|
||||||
the name in brackets: e.g. d2_xyz[2], i2_mySpin[3].
|
the name in brackets (e.g., d2_xyz[2] or i2_mySpin[3]).
|
||||||
|
|
||||||
The additional quantities only accessible via this command, and not
|
The additional quantities only accessible via this command, and not
|
||||||
directly via the :doc:`dump custom <dump>` command, are as follows.
|
directly via the :doc:`dump custom <dump>` command, are as follows.
|
||||||
@ -144,21 +144,21 @@ directly via the :doc:`dump custom <dump>` command, are as follows.
|
|||||||
number of explicit bonds assigned to an atom. Note that if the
|
number of explicit bonds assigned to an atom. Note that if the
|
||||||
:doc:`newton bond <newton>` command is set to *on*\ , which is the
|
:doc:`newton bond <newton>` command is set to *on*\ , which is the
|
||||||
default, then every bond in the system is assigned to only one of the
|
default, then every bond in the system is assigned to only one of the
|
||||||
two atoms in the bond. Thus a bond between atoms I,J may be tallied
|
two atoms in the bond. Thus a bond between atoms :math:`I` and :math:`J` may
|
||||||
for either atom I or atom J. If :doc:`newton bond off <newton>` is
|
be tallied for either atom :math:`I` or atom :math:`J`.
|
||||||
set, it will be tallied with both atom I and atom J.
|
If :doc:`newton bond off <newton>` is set, it will be tallied with both atom
|
||||||
|
:math:`I` and atom :math:`J`.
|
||||||
|
|
||||||
*Shapex*, *shapey*, and *shapez* are defined for ellipsoidal particles
|
The quantities *shapex*, *shapey*, and *shapez* are defined for ellipsoidal
|
||||||
and define the 3d shape of each particle.
|
particles and define the 3d shape of each particle.
|
||||||
|
|
||||||
*Quatw*, *quati*, *quatj*, and *quatk* are defined for ellipsoidal
|
The quantities *quatw*, *quati*, *quatj*, and *quatk* are defined for
|
||||||
particles and body particles and store the 4-vector quaternion
|
ellipsoidal particles and body particles and store the 4-vector quaternion
|
||||||
representing the orientation of each particle. See the :doc:`set <set>`
|
representing the orientation of each particle. See the :doc:`set <set>`
|
||||||
command for an explanation of the quaternion vector.
|
command for an explanation of the quaternion vector.
|
||||||
|
|
||||||
*End1x*, *end1y*, *end1z*, *end2x*, *end2y*, *end2z*, are
|
*End1x*, *end1y*, *end1z*, *end2x*, *end2y*, *end2z*, are defined for line
|
||||||
defined for line segment particles and define the end points of each
|
segment particles and define the end points of each line segment.
|
||||||
line segment.
|
|
||||||
|
|
||||||
*Corner1x*, *corner1y*, *corner1z*, *corner2x*, *corner2y*,
|
*Corner1x*, *corner1y*, *corner1z*, *corner2x*, *corner2y*,
|
||||||
*corner2z*, *corner3x*, *corner3y*, *corner3z*, are defined for
|
*corner2z*, *corner3x*, *corner3y*, *corner3z*, are defined for
|
||||||
@ -167,6 +167,10 @@ triangular particles and define the corner points of each triangle.
|
|||||||
In addition, the various per-atom quantities listed above for specific
|
In addition, the various per-atom quantities listed above for specific
|
||||||
packages are only accessible by this command.
|
packages are only accessible by this command.
|
||||||
|
|
||||||
|
.. versionchanged:: TBD
|
||||||
|
|
||||||
|
The *espin* property was previously called *spin*.
|
||||||
|
|
||||||
Output info
|
Output info
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
@ -179,12 +183,12 @@ per-atom values from a compute as input. See the :doc:`Howto output
|
|||||||
<Howto_output>` page for an overview of LAMMPS output options.
|
<Howto_output>` page for an overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector or array values will be in whatever :doc:`units <units>` the
|
The vector or array values will be in whatever :doc:`units <units>` the
|
||||||
corresponding attribute is in, e.g. velocity units for vx, charge
|
corresponding attribute is in (e.g., velocity units for *vx*, charge
|
||||||
units for q, etc.
|
units for *q*).
|
||||||
|
|
||||||
For the spin quantities, sp is in the units of the Bohr magneton, spx,
|
For the spin quantities, *sp* is in the units of the Bohr magneton;
|
||||||
spy, and spz are unitless quantities, and fmx, fmy and fmz are given
|
*spx*, *spy*, and *spz* are unitless quantities; and *fmx*, *fmy*, and *fmz*
|
||||||
in rad/THz.
|
are given in rad/THz.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -194,8 +198,8 @@ Related commands
|
|||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`dump custom <dump>`, :doc:`compute reduce <compute_reduce>`,
|
:doc:`dump custom <dump>`, :doc:`compute reduce <compute_reduce>`,
|
||||||
:doc::doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk
|
:doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`,
|
||||||
:doc:<fix_ave_chunk>`, `fix property/atom <fix_property_atom>`
|
:doc:`fix property/atom <fix_property_atom>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ compute property/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID property/chunk chunkID input1 input2 ...
|
compute ID group-ID property/chunk chunkID input1 input2 ...
|
||||||
|
|
||||||
@ -35,19 +35,24 @@ Description
|
|||||||
Define a computation that stores the specified attributes of chunks of
|
Define a computation that stores the specified attributes of chunks of
|
||||||
atoms.
|
atoms.
|
||||||
|
|
||||||
In LAMMPS, chunks are collections of atoms defined by a :doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
In LAMMPS, chunks are collections of atoms defined by a
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` command, which assigns each atom
|
||||||
to a single chunk (or no chunk). The ID for this command is specified
|
to a single chunk (or no chunk). The ID for this command is specified
|
||||||
as chunkID. For example, a single chunk could be the atoms in a
|
as chunkID. For example, a single chunk could be the atoms in a molecule or
|
||||||
molecule or atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>` and :doc:`Howto chunk <Howto_chunk>`
|
atoms in a spatial bin. See the :doc:`compute chunk/atom <compute_chunk_atom>`
|
||||||
doc pages for details of how chunks can be defined and examples of how
|
and :doc:`Howto chunk <Howto_chunk>` doc pages for details of how chunks can be
|
||||||
they can be used to measure properties of a system.
|
defined and examples of how they can be used to measure properties of a system.
|
||||||
|
|
||||||
This compute calculates and stores the specified attributes of chunks
|
This compute calculates and stores the specified attributes of chunks
|
||||||
as global data so they can be accessed by other :doc:`output commands <Howto_output>` and used in conjunction with other
|
as global data so they can be accessed by other
|
||||||
commands that generate per-chunk data, such as :doc:`compute com/chunk <compute_com_chunk>` or :doc:`compute msd/chunk <compute_msd_chunk>`.
|
:doc:`output commands <Howto_output>` and used in conjunction with other
|
||||||
|
commands that generate per-chunk data, such as
|
||||||
|
:doc:`compute com/chunk <compute_com_chunk>` or
|
||||||
|
:doc:`compute msd/chunk <compute_msd_chunk>`.
|
||||||
|
|
||||||
Note that only atoms in the specified group contribute to the
|
Note that only atoms in the specified group contribute to the
|
||||||
calculation of the *count* attribute. The :doc:`compute chunk/atom <compute_chunk_atom>` command defines its own group;
|
calculation of the *count* attribute. The
|
||||||
|
:doc:`compute chunk/atom <compute_chunk_atom>` command defines its own group;
|
||||||
atoms will have a chunk ID = 0 if they are not in that group,
|
atoms will have a chunk ID = 0 if they are not in that group,
|
||||||
signifying they are not assigned to a chunk, and will thus also not
|
signifying they are not assigned to a chunk, and will thus also not
|
||||||
contribute to this calculation. You can specify the "all" group for
|
contribute to this calculation. You can specify the "all" group for
|
||||||
@ -59,7 +64,7 @@ The *count* attribute is the number of atoms in the chunk.
|
|||||||
The *id* attribute stores the original chunk ID for each chunk. It
|
The *id* attribute stores the original chunk ID for each chunk. It
|
||||||
can only be used if the *compress* keyword was set to *yes* for the
|
can only be used if the *compress* keyword was set to *yes* for the
|
||||||
:doc:`compute chunk/atom <compute_chunk_atom>` command referenced by
|
:doc:`compute chunk/atom <compute_chunk_atom>` command referenced by
|
||||||
chunkID. This means that the original chunk IDs (e.g. molecule IDs)
|
chunkID. This means that the original chunk IDs (e.g., molecule IDs)
|
||||||
will have been compressed to remove chunk IDs with no atoms assigned
|
will have been compressed to remove chunk IDs with no atoms assigned
|
||||||
to them. Thus a compressed chunk ID of 3 may correspond to an original
|
to them. Thus a compressed chunk ID of 3 may correspond to an original
|
||||||
chunk ID (molecule ID in this case) of 415. The *id* attribute will
|
chunk ID (molecule ID in this case) of 415. The *id* attribute will
|
||||||
@ -75,7 +80,7 @@ is the center point of the bin in the corresponding dimension. Style
|
|||||||
Note that if the value of the *units* keyword used in the :doc:`compute chunk/atom command <compute_chunk_atom>` is *box* or *lattice*, the
|
Note that if the value of the *units* keyword used in the :doc:`compute chunk/atom command <compute_chunk_atom>` is *box* or *lattice*, the
|
||||||
*coordN* attributes will be in distance :doc:`units <units>`. If the
|
*coordN* attributes will be in distance :doc:`units <units>`. If the
|
||||||
value of the *units* keyword is *reduced*, the *coordN* attributes
|
value of the *units* keyword is *reduced*, the *coordN* attributes
|
||||||
will be in unitless reduced units (0-1).
|
will be in unitless reduced units (0--1).
|
||||||
|
|
||||||
The simplest way to output the results of the compute property/chunk
|
The simplest way to output the results of the compute property/chunk
|
||||||
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
calculation to a file is to use the :doc:`fix ave/time <fix_ave_time>`
|
||||||
@ -105,7 +110,7 @@ accessed by any command that uses global values from a compute as
|
|||||||
input. See the :doc:`Howto output <Howto_output>` page for an
|
input. See the :doc:`Howto output <Howto_output>` page for an
|
||||||
overview of LAMMPS output options.
|
overview of LAMMPS output options.
|
||||||
|
|
||||||
The vector or array values are "intensive". The values will be
|
The vector or array values are "intensive." The values will be
|
||||||
unitless or in the units discussed above.
|
unitless or in the units discussed above.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
|
|||||||
@ -6,37 +6,65 @@ compute property/local command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
compute ID group-ID property/local attribute1 attribute2 ... keyword args ...
|
compute ID group-ID property/local attribute1 attribute2 ... keyword args ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
* property/local = style name of this compute command
|
* property/local = style name of this compute command
|
||||||
* one or more attributes may be appended
|
* one or more attributes of the same type (neighbor, pair, bond, angle,
|
||||||
|
dihedral, or improper) may be appended
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
possible attributes = natom1 natom2 ntype1 ntype2
|
possible attributes = natom1, natom2, ntype1, ntype2,
|
||||||
patom1 patom2 ptype1 ptype2
|
patom1, patom2, ptype1, ptype2,
|
||||||
batom1 batom2 btype
|
batom1, batom2, btype,
|
||||||
aatom1 aatom2 aatom3 atype
|
aatom1, aatom2, aatom3, atype,
|
||||||
datom1 datom2 datom3 datom4 dtype
|
datom1, datom2, datom3, datom4, dtype,
|
||||||
iatom1 iatom2 iatom3 iatom4 itype
|
iatom1, iatom2, iatom3, iatom4, itype
|
||||||
|
|
||||||
|
* Neighbor attributes
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
natom1, natom2 = IDs of 2 atoms in each pair (within neighbor cutoff)
|
natom1, natom2 = store IDs of 2 atoms in each pair (within neighbor cutoff)
|
||||||
ntype1, ntype2 = type of 2 atoms in each pair (within neighbor cutoff)
|
ntype1, ntype2 = store types of 2 atoms in each pair (within neighbor cutoff)
|
||||||
patom1, patom2 = IDs of 2 atoms in each pair (within force cutoff)
|
|
||||||
ptype1, ptype2 = type of 2 atoms in each pair (within force cutoff)
|
* Pair attributes
|
||||||
batom1, batom2 = IDs of 2 atoms in each bond
|
|
||||||
btype = bond type of each bond
|
.. parsed-literal::
|
||||||
aatom1, aatom2, aatom3 = IDs of 3 atoms in each angle
|
|
||||||
atype = angle type of each angle
|
patom1, patom2 = store IDs of 2 atoms in each pair (within force cutoff)
|
||||||
datom1, datom2, datom3, datom4 = IDs of 4 atoms in each dihedral
|
ptype1, ptype2 = store types of 2 atoms in each pair (within force cutoff)
|
||||||
dtype = dihedral type of each dihedral
|
|
||||||
iatom1, iatom2, iatom3, iatom4 = IDs of 4 atoms in each improper
|
* Bond attributes
|
||||||
itype = improper type of each improper
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
batom1, batom2 = store IDs of 2 atoms in each bond
|
||||||
|
btype = store bond type of each bond
|
||||||
|
|
||||||
|
* Angle attributes
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
aatom1, aatom2, aatom3 = store IDs of 3 atoms in each angle
|
||||||
|
atype = store angle type of each angle
|
||||||
|
|
||||||
|
* Dihedral attributes
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
datom1, datom2, datom3, datom4 = store IDs of 4 atoms in each dihedral
|
||||||
|
dtype = store dihedral type of each dihedral
|
||||||
|
|
||||||
|
* Improper attributes
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
iatom1, iatom2, iatom3, iatom4 = store IDs of 4 atoms in each improper
|
||||||
|
itype = store improper type of each improper
|
||||||
|
|
||||||
* zero or more keyword/arg pairs may be appended
|
* zero or more keyword/arg pairs may be appended
|
||||||
* keyword = *cutoff*
|
* keyword = *cutoff*
|
||||||
@ -66,7 +94,7 @@ If multiple attributes are specified then they must all generate the
|
|||||||
same amount of information, so that the resulting local array has the
|
same amount of information, so that the resulting local array has the
|
||||||
same number of rows for each column. This means that only bond
|
same number of rows for each column. This means that only bond
|
||||||
attributes can be specified together, or angle attributes, etc. Bond
|
attributes can be specified together, or angle attributes, etc. Bond
|
||||||
and angle attributes can not be mixed in the same compute
|
and angle attributes cannot be mixed in the same compute
|
||||||
property/local command.
|
property/local command.
|
||||||
|
|
||||||
If the inputs are pair attributes, the local data is generated by
|
If the inputs are pair attributes, the local data is generated by
|
||||||
@ -113,21 +141,21 @@ same for local vectors or arrays generated by other compute commands.
|
|||||||
For example, output from the :doc:`compute bond/local <compute_bond_local>` command can be combined with bond
|
For example, output from the :doc:`compute bond/local <compute_bond_local>` command can be combined with bond
|
||||||
atom indices from this command and output by the :doc:`dump local <dump>` command in a consistent way.
|
atom indices from this command and output by the :doc:`dump local <dump>` command in a consistent way.
|
||||||
|
|
||||||
The *natom1* and *natom2*, or *patom1* and *patom2* attributes refer
|
The *natom1* and *natom2* or *patom1* and *patom2* attributes refer
|
||||||
to the atom IDs of the 2 atoms in each pairwise interaction computed
|
to the atom IDs of the 2 atoms in each pairwise interaction computed
|
||||||
by the :doc:`pair_style <pair_style>` command. The *ntype1* and
|
by the :doc:`pair_style <pair_style>` command. The *ntype1* and
|
||||||
*ntype2*, or *ptype1* and *ptype2* attributes refer to the atom types
|
*ntype2* or *ptype1* and *ptype2* attributes refer to the atom types
|
||||||
of the 2 atoms in each pairwise interaction.
|
of the 2 atoms in each pairwise interaction.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
For pairs, if two atoms I,J are involved in 1-2, 1-3, 1-4
|
For pairs, if two atoms :math:`I,J` are involved in 1--2, 1--3, 1--4
|
||||||
interactions within the molecular topology, their pairwise interaction
|
interactions within the molecular topology, their pairwise interaction
|
||||||
may be turned off, and thus they may not appear in the neighbor list,
|
may be turned off, and thus they may not appear in the neighbor list,
|
||||||
and will not be part of the local data created by this command. More
|
and will not be part of the local data created by this command. More
|
||||||
specifically, this may be true of I,J pairs with a weighting factor of
|
specifically, this may be true of :math:`I,J` pairs with a weighting factor
|
||||||
0.0; pairs with a non-zero weighting factor are included. The
|
of 0.0; pairs with a non-zero weighting factor are included. The
|
||||||
weighting factors for 1-2, 1-3, and 1-4 pairwise interactions are set
|
weighting factors for 1--2, 1--3, and 1--4 pairwise interactions are set
|
||||||
by the :doc:`special_bonds <special_bonds>` command.
|
by the :doc:`special_bonds <special_bonds>` command.
|
||||||
|
|
||||||
The *batom1* and *batom2* attributes refer to the atom IDs of the 2
|
The *batom1* and *batom2* attributes refer to the atom IDs of the 2
|
||||||
@ -136,7 +164,7 @@ the type of the bond, from 1 to Nbtypes = # of bond types. The number
|
|||||||
of bond types is defined in the data file read by the
|
of bond types is defined in the data file read by the
|
||||||
:doc:`read_data <read_data>` command.
|
:doc:`read_data <read_data>` command.
|
||||||
|
|
||||||
The attributes that start with "a", "d", "i", refer to similar values
|
The attributes that start with "a," "d," and "i" refer to similar values
|
||||||
for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and
|
for :doc:`angles <angle_style>`, :doc:`dihedrals <dihedral_style>`, and
|
||||||
:doc:`impropers <improper_style>`.
|
:doc:`impropers <improper_style>`.
|
||||||
|
|
||||||
@ -149,7 +177,8 @@ the array is the number of bonds, angles, etc. If a single input is
|
|||||||
specified, a local vector is produced. If two or more inputs are
|
specified, a local vector is produced. If two or more inputs are
|
||||||
specified, a local array is produced where the number of columns = the
|
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
|
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
|
that uses local values from a compute as input. See the
|
||||||
|
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS output
|
||||||
options.
|
options.
|
||||||
|
|
||||||
The vector or array values will be integers that correspond to the
|
The vector or array values will be integers that correspond to the
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user