Merge branch 'develop' into distributed-grids
# Conflicts: # doc/src/Developer_utils.rst # doc/src/dump.rst # doc/src/fix_ave_chunk.rst # src/utils.h
This commit is contained in:
6
.github/workflows/compile-msvc.yml
vendored
6
.github/workflows/compile-msvc.yml
vendored
@ -3,9 +3,11 @@ name: "Native Windows Compilation and Unit Tests"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ develop ]
|
||||
branches:
|
||||
- develop
|
||||
pull_request:
|
||||
branches: [ $default-branch ]
|
||||
branches:
|
||||
- develop
|
||||
|
||||
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
|
||||
6
.github/workflows/unittest-macos.yml
vendored
6
.github/workflows/unittest-macos.yml
vendored
@ -3,9 +3,11 @@ name: "Unittest for MacOS"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ develop ]
|
||||
branches:
|
||||
- develop
|
||||
pull_request:
|
||||
branches: [ $default-branch ]
|
||||
branches:
|
||||
- develop
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
@ -376,6 +376,7 @@ pkg_depends(DIELECTRIC EXTRA-PAIR)
|
||||
pkg_depends(CG-DNA MOLECULE)
|
||||
pkg_depends(CG-DNA ASPHERE)
|
||||
pkg_depends(ELECTRODE KSPACE)
|
||||
pkg_depends(EXTRA-MOLECULE MOLECULE)
|
||||
|
||||
# detect if we may enable OpenMP support by default
|
||||
set(BUILD_OMP_DEFAULT OFF)
|
||||
|
||||
@ -110,14 +110,16 @@ function(FetchPotentials pkgfolder potfolder)
|
||||
math(EXPR plusone "${blank}+1")
|
||||
string(SUBSTRING ${line} 0 ${blank} pot)
|
||||
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)
|
||||
endif()
|
||||
if(NOT sum STREQUAL oldsum)
|
||||
message(STATUS "Checking external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
|
||||
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}"
|
||||
message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
|
||||
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)
|
||||
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()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al
|
||||
|
||||
if(DOWNLOAD_MDI)
|
||||
message(STATUS "MDI download requested - we will build our own")
|
||||
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.1.tar.gz" CACHE STRING "URL for MDI tarball")
|
||||
set(MDI_MD5 "f9505fccd4c79301a619f6452dad4ad9" CACHE STRING "MD5 checksum for MDI tarball")
|
||||
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.11.tar.gz" CACHE STRING "URL for MDI tarball")
|
||||
set(MDI_MD5 "3791fe5081405c14aac07d4687f1cc58" CACHE STRING "MD5 checksum for MDI tarball")
|
||||
mark_as_advanced(MDI_URL)
|
||||
mark_as_advanced(MDI_MD5)
|
||||
enable_language(C)
|
||||
|
||||
@ -3,6 +3,13 @@
|
||||
# prefer flang over gfortran, if available
|
||||
find_program(CLANG_FORTRAN NAMES flang gfortran f95)
|
||||
set(ENV{OMPI_FC} ${CLANG_FORTRAN})
|
||||
get_filename_component(_tmp_fc ${CLANG_FORTRAN} NAME)
|
||||
if (_tmp_fc STREQUAL "flang")
|
||||
set(FC_STD_VERSION "-std=f2018")
|
||||
set(BUILD_MPI OFF)
|
||||
else()
|
||||
set(FC_STD_VERSION "-std=f2003")
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
|
||||
@ -10,9 +17,9 @@ set(CMAKE_Fortran_COMPILER ${CLANG_FORTRAN} CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g -std=f2003" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g ${FC_STD_VERSION}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
|
||||
|
||||
@ -61,6 +61,7 @@ An alphabetic list of general LAMMPS commands.
|
||||
* :doc:`kspace_modify <kspace_modify>`
|
||||
* :doc:`kspace_style <kspace_style>`
|
||||
* :doc:`label <label>`
|
||||
* :doc:`labelmap <labelmap>`
|
||||
* :doc:`lattice <lattice>`
|
||||
* :doc:`log <log>`
|
||||
* :doc:`mass <mass>`
|
||||
|
||||
@ -44,6 +44,7 @@ OPT.
|
||||
* :doc:`harmonic (iko) <bond_harmonic>`
|
||||
* :doc:`harmonic/shift (o) <bond_harmonic_shift>`
|
||||
* :doc:`harmonic/shift/cut (o) <bond_harmonic_shift_cut>`
|
||||
* :doc:`mesocnt <bond_mesocnt>`
|
||||
* :doc:`mm3 <bond_mm3>`
|
||||
* :doc:`morse (o) <bond_morse>`
|
||||
* :doc:`nonlinear (o) <bond_nonlinear>`
|
||||
@ -92,6 +93,7 @@ OPT.
|
||||
* :doc:`fourier/simple (o) <angle_fourier_simple>`
|
||||
* :doc:`gaussian <angle_gaussian>`
|
||||
* :doc:`harmonic (iko) <angle_harmonic>`
|
||||
* :doc:`mesocnt <angle_mesocnt>`
|
||||
* :doc:`mm3 <angle_mm3>`
|
||||
* :doc:`quartic (o) <angle_quartic>`
|
||||
* :doc:`spica (o) <angle_spica>`
|
||||
|
||||
@ -201,6 +201,7 @@ OPT.
|
||||
* :doc:`meam/spline (o) <pair_meam_spline>`
|
||||
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
|
||||
* :doc:`mesocnt <pair_mesocnt>`
|
||||
* :doc:`mesocnt/viscous <pair_mesocnt>`
|
||||
* :doc:`mesont/tpm <pair_mesont_tpm>`
|
||||
* :doc:`mgpt <pair_mgpt>`
|
||||
* :doc:`mie/cut (g) <pair_mie>`
|
||||
|
||||
@ -175,6 +175,12 @@ and parsing files or arguments.
|
||||
.. doxygenfunction:: is_double
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: is_id
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: is_type
|
||||
:project: progguide
|
||||
|
||||
Potential file functions
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@ -208,6 +214,9 @@ Argument processing
|
||||
.. doxygenfunction:: parse_gridid
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: expand_type
|
||||
:project: progguide
|
||||
|
||||
Convenience functions
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@ -5453,6 +5453,11 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
Mass command must set a type from 1-N where N is the number of atom
|
||||
types.
|
||||
|
||||
*Invalid label2type() function syntax in variable formula*
|
||||
The first argument must be a label map kind (atom, bond, angle,
|
||||
dihedral, or improper) and the second argument must be a valid type
|
||||
label that has been assigned to a numeric type.
|
||||
|
||||
*Invalid use of library file() function*
|
||||
This function is called through the library interface. This
|
||||
error should not occur. Contact the developers if it does.
|
||||
@ -5585,9 +5590,18 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
*LJ6 off not supported in pair_style buck/long/coul/long*
|
||||
Self-explanatory.
|
||||
|
||||
*Label map is incomplete: all types must be assigned a unique type label*
|
||||
For a given type-kind (atom types, bond types, etc.) to be written to
|
||||
the data file, all associated types must be assigned a type label, and
|
||||
each type label can be assigned to only one numeric type.
|
||||
|
||||
*Label wasn't found in input script*
|
||||
Self-explanatory.
|
||||
|
||||
*Labelmap command before simulation box is defined*
|
||||
The labelmap command cannot be used before a read_data,
|
||||
read_restart, or create_box command.
|
||||
|
||||
*Lattice orient vectors are not orthogonal*
|
||||
The three specified lattice orientation vectors must be mutually
|
||||
orthogonal.
|
||||
@ -5863,6 +5877,12 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
*Must not have multiple fixes change box parameter ...*
|
||||
Self-explanatory.
|
||||
|
||||
*Must read Angle Type Labels before Angles*
|
||||
An Angle Type Labels section of a data file must come before the Angles section.
|
||||
|
||||
*Must read Atom Type Labels before Atoms*
|
||||
An Atom Type Labels section of a data file must come before the Atoms section.
|
||||
|
||||
*Must read Atoms before Angles*
|
||||
The Atoms section of a data file must come before an Angles section.
|
||||
|
||||
@ -5893,6 +5913,15 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
The Atoms section of a data file must come before a Velocities
|
||||
section.
|
||||
|
||||
*Must read Bond Type Labels before Bonds*
|
||||
A Bond Type Labels section of a data file must come before the Bonds section.
|
||||
|
||||
*Must read Dihedral Type Labels before Dihedrals*
|
||||
An Dihedral Type Labels section of a data file must come before the Dihedrals section.
|
||||
|
||||
*Must read Improper Type Labels before Impropers*
|
||||
An Improper Type Labels section of a data file must come before the Impropers section.
|
||||
|
||||
*Must re-specify non-restarted pair style (xxx) after read_restart*
|
||||
For pair styles, that do not store their settings in a restart file,
|
||||
it must be defined with a new 'pair_style' command after read_restart.
|
||||
@ -7849,6 +7878,10 @@ keyword to allow for additional bonds to be formed
|
||||
Number of local atoms times number of columns must fit in a 32-bit
|
||||
integer for dump.
|
||||
|
||||
*Topology type exceeds system topology type*
|
||||
The number of bond, angle, etc types exceeds the system setting. See
|
||||
the create_box or read_data command for how to specify these values.
|
||||
|
||||
*Tree structure in joint connections*
|
||||
Fix poems cannot (yet) work with coupled bodies whose joints connect
|
||||
the bodies in a tree structure.
|
||||
@ -7873,6 +7906,13 @@ keyword to allow for additional bonds to be formed
|
||||
*Two groups cannot be the same in fix spring couple*
|
||||
Self-explanatory.
|
||||
|
||||
*The %s type label %s is already in use for type %s*
|
||||
For a given type-kind (atom types, bond types, etc.), a given type
|
||||
label can be assigned to only one numeric type.
|
||||
|
||||
*Type label string %s for %s type %s is invalid*
|
||||
See the labelmap command documentation for valid type labels.
|
||||
|
||||
*Unable to initialize accelerator for use*
|
||||
There was a problem initializing an accelerator for the gpu package
|
||||
|
||||
|
||||
@ -34,6 +34,7 @@ Settings howto
|
||||
:maxdepth: 1
|
||||
|
||||
Howto_2d
|
||||
Howto_type_labels
|
||||
Howto_triclinic
|
||||
Howto_thermostat
|
||||
Howto_barostat
|
||||
|
||||
126
doc/src/Howto_type_labels.rst
Normal file
126
doc/src/Howto_type_labels.rst
Normal file
@ -0,0 +1,126 @@
|
||||
Type labels
|
||||
===========
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Each atom in LAMMPS has an associated numeric atom type. Similarly,
|
||||
each bond, angle, dihedral, and improper is assigned a bond type,
|
||||
angle type, and so on. The primary use of these types is to map
|
||||
potential (force field) parameters to the interactions of the atom,
|
||||
bond, angle, dihedral, and improper.
|
||||
|
||||
By default, type values are entered as integers from 1 to Ntypes
|
||||
wherever they appear in LAMMPS input or output files. The total number
|
||||
Ntypes for each interaction is "locked in" when the simulation box
|
||||
is created.
|
||||
|
||||
A recent addition to LAMMPS is the option to use strings - referred
|
||||
to as type labels - as an alternative. Using type labels instead of
|
||||
numeric types can be advantageous in various scenarios. For example,
|
||||
type labels can make inputs more readable and generic (i.e. usable through
|
||||
the :doc:`include command <include>` for different systems with different
|
||||
numerical values assigned to types. This generality also applies to
|
||||
other inputs like data files read by :doc:`read_data <read_data>` or
|
||||
molecule template files read by the :doc:`molecule <molecule>`
|
||||
command. See below for a list of other commands that can use
|
||||
type labels in different ways.
|
||||
|
||||
LAMMPS will *internally* continue to use numeric types, which means
|
||||
that many previous restrictions still apply. For example, the total
|
||||
number of types is locked in when creating the simulation box, and
|
||||
potential parameters for each type must be provided even if not used
|
||||
by any interactions.
|
||||
|
||||
A collection of type labels for all type-kinds (atom types, bond types,
|
||||
etc.) is stored as a "label map" which is simply a list of numeric types
|
||||
and their associated type labels. Within a type-kind, each type label
|
||||
must be unique. It can be assigned to only one numeric type. To read
|
||||
and write type labels to data files for a given type-kind, *all*
|
||||
associated numeric types need have a type label assigned. Partial
|
||||
maps can be saved with the :doc:`labelmap write <labelmap>` command
|
||||
and read back with the :doc:`include <include>` command.
|
||||
|
||||
Valid type labels can contain most ASCII characters, but cannot start
|
||||
with a number, a '#', or a '*'. Also, labels must not contain whitespace
|
||||
characters. When using the :doc:`labelmap command <labelmap>` in the
|
||||
LAMMPS input, if certain characters appear in the type label, such as
|
||||
the single (') or double (") quote or the '#' character, the label
|
||||
must be put in either double, single, or triple (""") quotes. Triple
|
||||
quotes allow for the most generic type label strings, but they require
|
||||
to have a leading and trailing blank space. When defining type labels
|
||||
the blanks will be ignored. Example:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
labelmap angle 1 """ C1'-C2"-C3# """
|
||||
|
||||
This command will map the string ```C1'-C2"-C3#``` to the angle type 1.
|
||||
|
||||
There are two ways to define label maps. One is via the :doc:`labelmap
|
||||
<labelmap>` command. The other is via the :doc:`read_data <read_data>`
|
||||
command. A data file can have sections such as *Atom Type Labels*, *Bond
|
||||
Type Labels*, etc., which assign type labels to numeric types. The
|
||||
label map can be written out to data files by the :doc:`write_data
|
||||
<write_data>` command. This map is also written to and read from
|
||||
restart files, by the :doc:`write_restart <write_restart>` and
|
||||
:doc:`read_restart <read_restart>` commands.
|
||||
|
||||
----------
|
||||
|
||||
Use of type labels in LAMMPS input or output
|
||||
""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
Many LAMMPS input script commands that take a numeric type as an
|
||||
argument can use the associated type label instead. If a type label
|
||||
is not defined for a particular numeric type, only its numeric type
|
||||
can be used.
|
||||
|
||||
This example assigns labels to the atom types, and then uses the type
|
||||
labels to redefine the pair coefficients.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_coeff 1 2 1.0 1.0 # numeric types
|
||||
labelmap atom 1 C 2 H
|
||||
pair_coeff C H 1.0 1.0 # type labels
|
||||
|
||||
Adding support for type labels to various commands is an ongoing
|
||||
project. If an input script command (or a section in a file read by a
|
||||
command) allows substituting a type label for a numeric type argument,
|
||||
it will be explicitly mentioned in that command's documentation page.
|
||||
|
||||
As a temporary measure, input script commands can take advantage of
|
||||
variables and how they can be expanded during processing of the input.
|
||||
The variables can use functions that will translate type label strings
|
||||
to their respective number as defined in the current label map. See the
|
||||
:doc:`variable <variable>` command for details.
|
||||
|
||||
For example, here is how the pair_coeff command could be used with
|
||||
type labels if it did not yet support them, either with an explicit
|
||||
variable command or an implicit variable used in the pair_coeff
|
||||
command.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
labelmap atom 1 C 2 H
|
||||
variable atom1 equal label2type(atom,C)
|
||||
variable atom2 equal label2type(atom,H)
|
||||
pair_coeff ${atom1} ${atom2} 1.0 1.0
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
labelmap atom 1 C 2 H
|
||||
pair_coeff $(label2type(atom,C)) $(label2type(atom,H)) 80.0 1.2
|
||||
|
||||
----------
|
||||
|
||||
Commands that can use label types
|
||||
"""""""""""""""""""""""""""""""""
|
||||
|
||||
Any workflow that involves reading multiple data files, molecule
|
||||
templates or a combination of the two can be streamlined by using type
|
||||
labels instead of numeric types, because types are automatically synced
|
||||
between the files. The creation of simulation-ready reaction templates
|
||||
for :doc:`fix bond/react <fix_bond_react>` is much simpler when using
|
||||
type labels, and results in templates that can be used without
|
||||
modification in multiple simulations or different systems.
|
||||
@ -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/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
|
||||
|
||||
----------
|
||||
@ -932,6 +932,10 @@ EXTRA-MOLECULE package
|
||||
|
||||
Additional bond, angle, dihedral, and improper styles that are less commonly used.
|
||||
|
||||
**Install:**
|
||||
|
||||
To use this package, also the :ref:`MOLECULE <PKG-MOLECULE>` package needs to be installed.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/EXTRA-MOLECULE: filenames -> commands
|
||||
@ -1404,7 +1408,7 @@ This package has :ref:`specific installation instructions <machdyn>` on the :doc
|
||||
|
||||
* src/MACHDYN: filenames -> commands
|
||||
* src/MACHDYN/README
|
||||
* doc/PDF/MACHDYN_LAMMPS_userguide.pdf
|
||||
* `doc/PDF/MACHDYN_LAMMPS_userguide.pdf <PDF/MACHDYN_LAMMPS_userguide.pdf>`_
|
||||
* examples/PACKAGES/machdyn
|
||||
* https://www.lammps.org/movies.html#smd
|
||||
|
||||
@ -1556,31 +1560,40 @@ MESONT package
|
||||
|
||||
**Contents:**
|
||||
|
||||
MESONT is a LAMMPS package for simulation of nanomechanics of
|
||||
nanotubes (NTs). The model is based on a coarse-grained representation
|
||||
of NTs as "flexible cylinders" consisting of a variable number of
|
||||
MESONT is a LAMMPS package for simulation of nanomechanics of nanotubes
|
||||
(NTs). The model is based on a coarse-grained representation of NTs as
|
||||
"flexible cylinders" consisting of a variable number of
|
||||
segments. Internal interactions within a NT and the van der Waals
|
||||
interaction between the tubes are described by a mesoscopic force field
|
||||
designed and parameterized based on the results of atomic-level
|
||||
molecular dynamics simulations. The description of the force field is
|
||||
provided in the papers listed below. This package contains two
|
||||
independent implementations of this model: :doc:`pair_style mesocnt
|
||||
<pair_mesocnt>` is a (minimal) C++ implementation, and :doc:`pair_style
|
||||
mesont/tpm <pair_mesont_tpm>` is a more general and feature rich
|
||||
implementation based on a Fortran library in the ``lib/mesont`` folder.
|
||||
provided in the papers listed below.
|
||||
|
||||
This package contains two independent implementations of this model:
|
||||
:doc:`pair_style mesont/tpm <pair_mesont_tpm>` is the original
|
||||
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:**
|
||||
|
||||
The potential files for these pair styles are *very* large and thus
|
||||
are not included in the regular downloaded packages of LAMMPS or the
|
||||
git repositories. Instead, they will be automatically downloaded
|
||||
from a web server when the package is installed for the first time.
|
||||
The potential files for these pair styles are *very* large and thus are
|
||||
not included in the regular downloaded packages of LAMMPS or the git
|
||||
repositories. Instead, they will be automatically downloaded from a web
|
||||
server when the package is installed for the first time.
|
||||
|
||||
**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)
|
||||
|
||||
**Supporting info:**
|
||||
@ -1590,6 +1603,8 @@ Philipp Kloza (U Cambridge)
|
||||
* :doc:`atom_style mesont <atom_style>`
|
||||
* :doc:`pair_style mesont/tpm <pair_mesont_tpm>`
|
||||
* :doc:`compute mesont <compute_mesont>`
|
||||
* :doc:`bond_style mesocnt <bond_mesocnt>`
|
||||
* :doc:`angle_style mesocnt <angle_mesocnt>`
|
||||
* :doc:`pair_style mesocnt <pair_mesocnt>`
|
||||
* examples/PACKAGES/mesont
|
||||
* tools/mesont
|
||||
@ -2692,7 +2707,7 @@ Dynamics, Ernst Mach Institute, Germany).
|
||||
|
||||
* src/SPH: filenames -> commands
|
||||
* src/SPH/README
|
||||
* doc/PDF/SPH_LAMMPS_userguide.pdf
|
||||
* `doc/PDF/SPH_LAMMPS_userguide.pdf <PDF/SPH_LAMMPS_userguide.pdf>`_
|
||||
* examples/PACKAGES/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.
|
||||
|
||||
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.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
angle_coeff N args
|
||||
|
||||
* N = angle type (see asterisk form below)
|
||||
* N = numeric angle type (see asterisk form below), or type label
|
||||
* args = coefficients for one or more angle types
|
||||
|
||||
Examples
|
||||
@ -22,6 +22,9 @@ Examples
|
||||
angle_coeff * 5.0
|
||||
angle_coeff 2*10 5.0
|
||||
|
||||
labelmap angle 1 hydroxyl
|
||||
angle_coeff hydroxyl 300.0 107.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -30,18 +33,24 @@ The number and meaning of the coefficients depends on the angle style.
|
||||
Angle coefficients can also be set in the data file read by the
|
||||
:doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
N can be specified in one of two ways. An explicit numeric value can
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple angle types. This takes the
|
||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of angle types,
|
||||
then an asterisk with no numeric values means all types from 1 to N. A
|
||||
leading asterisk means all types from 1 to n (inclusive). A trailing
|
||||
asterisk means all types from n to N (inclusive). A middle asterisk
|
||||
means all types from m to n (inclusive).
|
||||
:math:`N` can be specified in one of two ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or :math:`N` can be a
|
||||
type label, which is an alphanumeric string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||
by the :doc:`read_data <read_data>` command.
|
||||
|
||||
Note that using an :doc:`angle_coeff <angle_coeff>` command can override a previous setting
|
||||
for the same angle type. For example, these commands set the coeffs
|
||||
for all angle types, then overwrite the coeffs for just angle type 2:
|
||||
For numeric values only, a wild-card asterisk can be used to set the
|
||||
coefficients for multiple angle types. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n". If :math:`N` is the number of angle types,
|
||||
then an asterisk with no numeric values means all types from 1 to
|
||||
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
|
||||
A trailing asterisk means all types from n to :math:`N` (inclusive). A
|
||||
middle asterisk means all types from m to n (inclusive).
|
||||
|
||||
Note that using an :doc:`angle_coeff <angle_coeff>` command can
|
||||
override a previous setting for the same angle type. For example,
|
||||
these commands set the coeffs for all angle types, then overwrite the
|
||||
coeffs for just angle type 2:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -49,11 +58,11 @@ for all angle types, then overwrite the coeffs for just angle type 2:
|
||||
angle_coeff 2 50.0 107.0
|
||||
|
||||
A line in a data file that specifies angle coefficients uses the exact
|
||||
same format as the arguments of the :doc:`angle_coeff <angle_coeff>` command in an input
|
||||
script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Angle Coeffs" section of a data file, the line that
|
||||
corresponds to the first example above would be listed as
|
||||
same format as the arguments of the :doc:`angle_coeff <angle_coeff>`
|
||||
command in an input script, except that wild-card asterisks should not
|
||||
be used since coefficients for all :math:`N` types must be listed in the
|
||||
file. For example, under the "Angle Coeffs" section of a data file, the
|
||||
line that corresponds to the first example above would be listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -61,15 +70,14 @@ corresponds to the first example above would be listed as
|
||||
|
||||
The :doc:`angle_style class2 <angle_class2>` is an exception to this
|
||||
rule, in that an additional argument is used in the input script to
|
||||
allow specification of the cross-term coefficients. See its
|
||||
doc page for details.
|
||||
allow specification of the cross-term coefficients. See its doc page
|
||||
for details.
|
||||
|
||||
----------
|
||||
|
||||
The list of all angle styles defined in LAMMPS is given on the
|
||||
:doc:`angle_style <angle_style>` doc page. They are also listed in more
|
||||
compact form on the :ref:`Commands angle <angle>` doc
|
||||
page.
|
||||
compact form on the :ref:`Commands angle <angle>` doc page.
|
||||
|
||||
On either of those pages, click on the style to display the formula it
|
||||
computes and its coefficients as specified by the associated
|
||||
|
||||
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).
|
||||
@ -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:`gaussian <angle_gaussian>` - multi-centered Gaussian-based angle potential
|
||||
* :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:`quartic <angle_quartic>` - angle with cubic and quartic terms
|
||||
* :doc:`spica <angle_spica>` - harmonic angle with repulsive SPICA pair style between 1-3 atoms
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
bond_coeff N args
|
||||
|
||||
* N = bond type (see asterisk form below)
|
||||
* N = numeric bond type (see asterisk form below), or type label
|
||||
* args = coefficients for one or more bond types
|
||||
|
||||
Examples
|
||||
@ -21,7 +21,10 @@ Examples
|
||||
bond_coeff 5 80.0 1.2
|
||||
bond_coeff * 30.0 1.5 1.0 1.0
|
||||
bond_coeff 1*4 30.0 1.5 1.0 1.0
|
||||
bond_coeff 1 harmonic 200.0 1.0
|
||||
bond_coeff 1 harmonic 200.0 1.0 (for bond_style hybrid)
|
||||
|
||||
labelmap bond 5 carbonyl
|
||||
bond_coeff carbonyl 80.0 1.2
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -31,14 +34,19 @@ The number and meaning of the coefficients depends on the bond style.
|
||||
Bond coefficients can also be set in the data file read by the
|
||||
:doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
N can be specified in one of two ways. An explicit numeric value can
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple bond types. This takes the
|
||||
form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of bond types,
|
||||
then an asterisk with no numeric values means all types from 1 to N. A
|
||||
:math:`N` can be specified in one of several ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or :math:`N` can be a
|
||||
type label, which is an alphanumeric string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||
by the :doc:`read_data <read_data>` command.
|
||||
|
||||
For numeric values only, a wild-card asterisk can be used to set the
|
||||
coefficients for multiple bond types. This takes the form "\*" or "\*n"
|
||||
or "n\*" or "m\*n". If :math:`N` is the number of bond types, then an
|
||||
asterisk with no numeric values means all types from 1 to :math:`N`. A
|
||||
leading asterisk means all types from 1 to n (inclusive). A trailing
|
||||
asterisk means all types from n to N (inclusive). A middle asterisk
|
||||
means all types from m to n (inclusive).
|
||||
asterisk means all types from n to :math:`N` (inclusive). A middle
|
||||
asterisk means all types from m to n (inclusive).
|
||||
|
||||
Note that using a bond_coeff command can override a previous setting
|
||||
for the same bond type. For example, these commands set the coeffs
|
||||
@ -52,8 +60,8 @@ for all bond types, then overwrite the coeffs for just bond type 2:
|
||||
A line in a data file that specifies bond coefficients uses the exact
|
||||
same format as the arguments of the bond_coeff command in an input
|
||||
script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Bond Coeffs" section of a data file, the line that
|
||||
coefficients for all :math:`N` types must be listed in the file. For
|
||||
example, under the "Bond Coeffs" section of a data file, the line that
|
||||
corresponds to the first example above would be listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
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).
|
||||
@ -95,6 +95,7 @@ accelerated styles exist.
|
||||
* :doc:`harmonic <bond_harmonic>` - 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:`mesocnt <bond_mesocnt>` - Harmonic bond wrapper with parameterization presets for nanotubes
|
||||
* :doc:`mm3 <bond_mm3>` - MM3 anharmonic bond
|
||||
* :doc:`morse <bond_morse>` - Morse bond
|
||||
* :doc:`nonlinear <bond_nonlinear>` - nonlinear bond
|
||||
|
||||
@ -56,6 +56,7 @@ Commands
|
||||
kspace_modify
|
||||
kspace_style
|
||||
label
|
||||
labelmap
|
||||
lattice
|
||||
log
|
||||
mass
|
||||
|
||||
@ -198,8 +198,8 @@ Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`dump custom <dump>`, :doc:`compute reduce <compute_reduce>`,
|
||||
:doc::doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk
|
||||
:doc:<fix_ave_chunk>`, `fix property/atom <fix_property_atom>`
|
||||
:doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`,
|
||||
:doc:`fix property/atom <fix_property_atom>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -222,6 +222,26 @@ result. I.e. the last 2 columns of thermo output will be the same:
|
||||
<pair_modify>` command, since those are contributions to the global
|
||||
system pressure.
|
||||
|
||||
The compute stress/atom can be used in a number of ways. Here is an
|
||||
example to compute a 1-d pressure profile in z-direction across the
|
||||
complete simulation box. You will need to adjust the number of bins and the
|
||||
selections for time averaging to your specific simulation. This assumes
|
||||
that the dimensions of the simulation cell does not change.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
# set number of bins
|
||||
variable nbins index 20
|
||||
variable fraction equal 1.0/v_nbins
|
||||
# define bins as chunks
|
||||
compute cchunk all chunk/atom bin/1d x lower ${fraction} units reduced
|
||||
compute stress all stress/atom NULL
|
||||
# apply conversion to pressure early since we have no variable style for processing chunks
|
||||
variable press atom -(c_stress[1]+c_stress[2]+c_stress[3])/(3.0*vol*${fraction})
|
||||
compute binpress all reduce/chunk cchunk sum v_press
|
||||
fix avg all ave/time 10 40 400 c_binpress mode vector file ave_stress.txt
|
||||
|
||||
|
||||
Output info
|
||||
"""""""""""
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
dihedral_coeff N args
|
||||
|
||||
* N = dihedral type (see asterisk form below)
|
||||
* N = numeric dihedral type (see asterisk form below) or alphanumeric type label
|
||||
* args = coefficients for one or more dihedral types
|
||||
|
||||
Examples
|
||||
@ -22,26 +22,35 @@ Examples
|
||||
dihedral_coeff * 80.0 1 3 0.5
|
||||
dihedral_coeff 2* 80.0 1 3 0.5
|
||||
|
||||
labelmap dihedral 1 backbone
|
||||
dihedral_coeff backbone 80.0 1 3
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Specify the dihedral force field coefficients for one or more dihedral types.
|
||||
The number and meaning of the coefficients depends on the dihedral style.
|
||||
Dihedral coefficients can also be set in the data file read by the
|
||||
:doc:`read_data <read_data>` command or in a restart file.
|
||||
Specify the dihedral force field coefficients for one or more dihedral
|
||||
types. The number and meaning of the coefficients depends on the
|
||||
dihedral style. Dihedral coefficients can also be set in the data file
|
||||
read by the :doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
N can be specified in one of two ways. An explicit numeric value can
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple dihedral types. This takes the
|
||||
form "\*" or "\*n" or "m\*" or "m\*n". If :math:`N` is the number of dihedral
|
||||
types, then an asterisk with no numeric values means all types from 1 to
|
||||
:math:`N`. A leading asterisk means all types from 1 to n (inclusive). A
|
||||
trailing asterisk means all types from m to N (inclusive). A middle asterisk
|
||||
means all types from m to n (inclusive).
|
||||
:math:`N` can be specified in one of two ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or :math:`N` can be
|
||||
an alphanumeric type label, which is a string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a corresponding section of a
|
||||
data file read by the :doc:`read_data <read_data>` command.
|
||||
|
||||
For numeric values only, a wild-card asterisk can be used to set the
|
||||
coefficients for multiple dihedral types. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n". If :math:`N` is the number of dihedral types,
|
||||
then an asterisk with no numeric values means all types from 1 to
|
||||
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
|
||||
A trailing asterisk means all types from n to :math:`N` (inclusive). A
|
||||
middle asterisk means all types from m to n (inclusive).
|
||||
|
||||
Note that using a dihedral_coeff command can override a previous setting
|
||||
for the same dihedral type. For example, these commands set the coeffs
|
||||
for all dihedral types, then overwrite the coeffs for just dihedral type 2:
|
||||
for all dihedral types, then overwrite the coeffs for just dihedral type
|
||||
2:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
|
||||
111
doc/src/dump.rst
111
doc/src/dump.rst
@ -56,24 +56,24 @@ dump command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
dump ID group-ID style N file args
|
||||
|
||||
* ID = user-assigned name for the dump
|
||||
* group-ID = ID of the group of atoms to be dumped
|
||||
* style = *atom* or *atom/gz* or *atom/zstd* or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *dcd* or *grid* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml*
|
||||
* N = dump every this many timesteps
|
||||
* style = *atom* or *atom/adios* or *atom/gz* or *atom/zstd* or *atom/mpiio* or *cfg* or *cfg/gz* or *cfg/zstd* or *cfg/mpiio* or *cfg/uef* or *custom* or *custom/gz* or *custom/zstd* or *custom/mpiio* or *custom/adios* or *dcd* or *grid* or *h5md* or *image* or *local* or *local/gz* or *local/zstd* or *molfile* or *movie* or *netcdf* or *netcdf/mpiio* or *vtk* or *xtc* or *xyz* or *xyz/gz* or *xyz/zstd* or *xyz/mpiio* or *yaml*
|
||||
* N = dump on timesteps which are multiples of N
|
||||
* file = name of file to write dump info to
|
||||
* args = list of arguments for a particular style
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*atom* args = none
|
||||
*atom/adios* args = none, discussed on :doc:`dump atom/adios <dump_adios>` page
|
||||
*atom/gz* args = none
|
||||
*atom/zstd* args = none
|
||||
*atom/mpiio* args = none
|
||||
*atom/adios* args = none, discussed on :doc:`dump atom/adios <dump_adios>` page
|
||||
*cfg* args = same as *custom* args, see below
|
||||
*cfg/gz* args = same as *custom* args, see below
|
||||
*cfg/zstd* args = same as *custom* args, see below
|
||||
@ -190,14 +190,15 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Dump a snapshot of atom quantities to one or more files every :math:`N`
|
||||
timesteps in one of several styles. The *image* and *movie* styles are
|
||||
the exception: the *image* style renders a JPG, PNG, or PPM image file
|
||||
of the atom configuration every :math:`N` timesteps while the *movie* style
|
||||
combines and compresses them into a movie file; both are discussed in
|
||||
detail on the :doc:`dump image <dump_image>` page. The timesteps on
|
||||
which dump output is written can also be controlled by a variable.
|
||||
See the :doc:`dump_modify every <dump_modify>` command.
|
||||
Dump a snapshot of atom quantities to one or more files once every
|
||||
:math:`N` timesteps in one of several styles. The *image* and *movie*
|
||||
styles are the exception: the *image* style renders a JPG, PNG, or PPM
|
||||
image file of the atom configuration every :math:`N` timesteps while
|
||||
the *movie* style combines and compresses them into a movie file; both
|
||||
are discussed in detail on the :doc:`dump image <dump_image>` page.
|
||||
The timesteps on which dump output is written can also be controlled
|
||||
by a variable. See the :doc:`dump_modify every <dump_modify>`
|
||||
command.
|
||||
|
||||
Only information for atoms in the specified group is dumped. The
|
||||
:doc:`dump_modify thresh and region and refresh <dump_modify>` commands
|
||||
@ -256,7 +257,7 @@ the compression level in both variants.
|
||||
As explained below, the *atom/mpiio*, *cfg/mpiio*, *custom/mpiio*, and
|
||||
*xyz/mpiio* styles are identical in command syntax and in the format
|
||||
of the dump files they create, to the corresponding styles without
|
||||
"mpiio," except the single dump file they produce is written in
|
||||
"mpiio", except the single dump file they produce is written in
|
||||
parallel via the MPI-IO library. For the remainder of this page,
|
||||
you should thus consider the *atom* and *atom/mpiio* styles (etc.) to
|
||||
be inter-changeable. The one exception is how the filename is
|
||||
@ -301,13 +302,13 @@ where xlo,xhi are the maximum extents of the simulation box in the
|
||||
:math:`x`-dimension, and similarly for :math:`y` and :math:`z`. The
|
||||
"xx yy zz" terms are six characters that encode the style of boundary for each
|
||||
of the six simulation box boundaries (xlo,xhi; ylo,yhi; and zlo,zhi). Each of
|
||||
the six characters is either p (periodic), f (fixed), s (shrink wrap),
|
||||
or m (shrink wrapped with a minimum value). See the
|
||||
the six characters is one of *p* (periodic), *f* (fixed), *s* (shrink wrap),
|
||||
or *m* (shrink wrapped with a minimum value). See the
|
||||
:doc:`boundary <boundary>` command for details.
|
||||
|
||||
For triclinic simulation boxes (non-orthogonal), an orthogonal
|
||||
bounding box which encloses the triclinic simulation box is output,
|
||||
along with the 3 tilt factors (*xy*, *xz*, *yz*) of the triclinic box,
|
||||
along with the three tilt factors (*xy*, *xz*, *yz*) of the triclinic box,
|
||||
formatted as follows:
|
||||
|
||||
.. parsed-literal::
|
||||
@ -346,8 +347,8 @@ added for each atom via dump_modify.
|
||||
Style *custom* allows you to specify a list of atom attributes to be
|
||||
written to the dump file for each atom. Possible attributes are
|
||||
listed above and will appear in the order specified. You cannot
|
||||
specify a quantity that is not defined for a particular simulation -
|
||||
such as *q* for atom style *bond*, since that atom style does not
|
||||
specify a quantity that is not defined for a particular simulation---such as
|
||||
*q* for atom style *bond*, since that atom style does not
|
||||
assign charges. Dumps occur at the very end of a timestep, so atom
|
||||
attributes will include effects due to fixes that are applied during
|
||||
the timestep. An explanation of the possible dump custom attributes
|
||||
@ -447,7 +448,7 @@ Below is an example for a YAML format dump created by the following commands.
|
||||
dump out all yaml 100 dump.yaml id type x y z vx vy vz ix iy iz
|
||||
dump_modify out time yes units yes thermo yes format 1 %5d format "% 10.6e"
|
||||
|
||||
The tags "time," "units," and "thermo" are optional and enabled by the
|
||||
The tags "time", "units", and "thermo" are optional and enabled by the
|
||||
dump_modify command. The list under the "box" tag has three lines for
|
||||
orthogonal boxes and four lines for triclinic boxes, where the first three are
|
||||
the box boundaries and the fourth the three tilt factors (:math:`xy`,
|
||||
@ -499,21 +500,29 @@ popular molecular viewing program.
|
||||
|
||||
----------
|
||||
|
||||
Dumps are performed on timesteps that are a multiple of :math:`N` (including
|
||||
timestep 0) and on the last timestep of a minimization if the
|
||||
minimization converges. Note that this means a dump will not be
|
||||
Dumps are performed on timesteps that are a multiple of :math:`N`
|
||||
(including timestep 0) and on the last timestep of a minimization if
|
||||
the minimization converges. Note that this means a dump will not be
|
||||
performed on the initial timestep after the dump command is invoked,
|
||||
if the current timestep is not a multiple of :math:`N`. This behavior can be
|
||||
changed via the :doc:`dump_modify first <dump_modify>` command, which
|
||||
can also be useful if the dump command is invoked after a minimization
|
||||
ended on an arbitrary timestep. :math:`N` can be changed between runs by
|
||||
using the :doc:`dump_modify every <dump_modify>` command (not allowed
|
||||
for *dcd* style). The :doc:`dump_modify every <dump_modify>` command
|
||||
also allows a variable to be used to determine the sequence of
|
||||
timesteps on which dump files are written. In this mode a dump on the
|
||||
first timestep of a run will also not be written unless the
|
||||
if the current timestep is not a multiple of :math:`N`. This behavior
|
||||
can be changed via the :doc:`dump_modify first <dump_modify>` command,
|
||||
which can also be useful if the dump command is invoked after a
|
||||
minimization ended on an arbitrary timestep.
|
||||
|
||||
The value of :math:`N` can be changed between runs by using the
|
||||
:doc:`dump_modify every <dump_modify>` command (not allowed for *dcd*
|
||||
style). The :doc:`dump_modify every <dump_modify>` command also
|
||||
allows a variable to be used to determine the sequence of timesteps on
|
||||
which dump files are written. In this mode a dump on the first
|
||||
timestep of a run will also not be written unless the
|
||||
:doc:`dump_modify first <dump_modify>` command is used.
|
||||
|
||||
If you instead want to dump snapshots based on simulation time (in
|
||||
time units of the :doc:`units` command), the :doc:`dump_modify
|
||||
every/time <dump_modify>` command can be used. This can be useful
|
||||
when the timestep size varies during a simulation run, e.g. by use of
|
||||
the :doc:`fix dt/reset <fix_dt_reset>` command.
|
||||
|
||||
The specified filename determines how the dump file(s) is written.
|
||||
The default is to write one large text file, which is opened when the
|
||||
dump command is invoked and closed when an :doc:`undump <undump>`
|
||||
@ -559,7 +568,7 @@ package installed, viz.,
|
||||
make mpi # build LAMMPS for your platform
|
||||
|
||||
Second, use a dump filename which contains ".mpiio." Note that it
|
||||
does not have to end in ".mpiio," just contain those characters.
|
||||
does not have to end in ".mpiio", just contain those characters.
|
||||
Unlike MPI-IO restart files, which must be both written and read using
|
||||
MPI-IO, the dump files produced by these MPI-IO styles are identical
|
||||
in format to the files produced by their non-MPI-IO style
|
||||
@ -582,19 +591,19 @@ and have the same binary format as if it were written without MPI-IO.
|
||||
|
||||
If the filename ends with ".bin" or ".lammpsbin", the dump file (or
|
||||
files, if "\*" or "%" is also used) is written in binary format. A
|
||||
binary dump file will be about the same size as a text version, but
|
||||
will typically write out much faster. Of course, when
|
||||
post-processing, you will need to convert it back to text format (see
|
||||
the :ref:`binary2txt tool <binary>`) or write your own code to read
|
||||
the binary file. The format of the binary file can be understood by
|
||||
looking at the :file:`tools/binary2txt.cpp` file. This option is only
|
||||
available for the *atom* and *custom* styles.
|
||||
binary dump file will be about the same size as a text version, but will
|
||||
typically write out much faster. Of course, when post-processing, you
|
||||
will need to convert it back to text format (see the :ref:`binary2txt
|
||||
tool <binary>`) or write your own code to read the binary file. The
|
||||
format of the binary file can be understood by looking at the
|
||||
:file:`tools/binary2txt.cpp` file. This option is only available for
|
||||
the *atom* and *custom* styles.
|
||||
|
||||
If the filename ends with ".gz", the dump file (or files, if "\*" or
|
||||
"%" is also used) is written in gzipped format. A gzipped dump file
|
||||
will be about :math:`3\times` smaller than the text version, but will
|
||||
also take longer to write. This option is not available for the *dcd*
|
||||
and *xtc* styles.
|
||||
If the filename ends with ".gz", the dump file (or files, if "\*" or "%"
|
||||
is also used) is written in gzipped format. A gzipped dump file will be
|
||||
about :math:`3\times` smaller than the text version, but will also take
|
||||
longer to write. This option is not available for the *dcd* and *xtc*
|
||||
styles.
|
||||
|
||||
----------
|
||||
|
||||
@ -643,12 +652,12 @@ mass. The quantities *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, and *q* are components
|
||||
of atom velocity and force and atomic charge.
|
||||
|
||||
There are several options for outputting atom coordinates. The *x*,
|
||||
*y*, and *z* attributes write atom coordinates "unscaled," in the
|
||||
*y*, and *z* attributes write atom coordinates "unscaled", in the
|
||||
appropriate distance :doc:`units <units>` (:math:`\mathrm{\mathring A}`,
|
||||
:math:`\sigma`, etc.). Use *xs*, *ys*, *zs* if you want the coordinates
|
||||
"scaled" to the box size, so that each value is 0.0 to 1.0. If the simulation
|
||||
:math:`\sigma`, etc.). Use *xs*, *ys*, and *zs* if you want the coordinates
|
||||
"scaled" to the box size so that each value is 0.0 to 1.0. If the simulation
|
||||
box is triclinic (tilted), then all atom coords will still be between 0.0 and
|
||||
1.0. The actual unscaled :math:`(x,y,z)` coordinate is
|
||||
1.0. The actual unscaled :math:`(x,y,z)` coordinate is
|
||||
:math:`x_s a + y_s b + z_s c`, where :math:`(a,b,c)` are the non-orthogonal
|
||||
vectors of the simulation box edges, as discussed on the
|
||||
:doc:`Howto triclinic <Howto_triclinic>` page.
|
||||
@ -689,7 +698,7 @@ The *angmomx*, *angmomy*, and *angmomz* attributes are specific to
|
||||
finite-size aspherical particles that have an angular momentum. Only
|
||||
the *ellipsoid* atom style defines this quantity.
|
||||
|
||||
The *tqx*, *tqy*, *tqz* attributes are for finite-size particles that
|
||||
The *tqx*, *tqy*, and *tqz* attributes are for finite-size particles that
|
||||
can sustain a rotational torque due to interactions with other
|
||||
particles.
|
||||
|
||||
@ -728,8 +737,8 @@ If *f_ID* is used as a attribute, then the per-atom vector calculated
|
||||
by the fix is printed. If *f_ID[i]* is used, then :math:`i` must be in the
|
||||
range from 1 to :math:`M`, which will print the :math:`i`\ th column of the
|
||||
per-atom array with :math:`M` columns calculated by the fix. See the
|
||||
discussion above for how :math:`i` can be specified with a wildcard asterisk to
|
||||
effectively specify multiple values.
|
||||
discussion above for how :math:`i` can be specified with a wildcard asterisk
|
||||
to effectively specify multiple values.
|
||||
|
||||
The *v_name* attribute allows per-atom vectors calculated by a
|
||||
:doc:`variable <variable>` to be output. The name in the attribute
|
||||
|
||||
@ -10,10 +10,9 @@ dump custom/adios command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
dump ID group-ID atom/adios N file.bp
|
||||
|
||||
dump ID group-ID custom/adios N file.bp args
|
||||
|
||||
* ID = user-assigned name for the dump
|
||||
@ -21,7 +20,7 @@ Syntax
|
||||
* adios = style of dump command (other styles *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
|
||||
* N = dump every this many timesteps
|
||||
* file.bp = name of file/stream to write to
|
||||
* args = same options as in :doc:`\ *dump custom*\ <dump>` command
|
||||
* args = same options as in :doc:`dump custom <dump>` command
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -35,10 +34,10 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Dump a snapshot of atom coordinates every N timesteps in the `ADIOS
|
||||
<adios_>`_ based "BP" file format, or using different I/O solutions in
|
||||
Dump a snapshot of atom coordinates every :math:`N` timesteps in the `ADIOS
|
||||
<adios_>`_-based "BP" file format, or using different I/O solutions in
|
||||
ADIOS, to a stream that can be read on-line by another program.
|
||||
ADIOS-BP files are binary, portable and self-describing.
|
||||
ADIOS-BP files are binary, portable, and self-describing.
|
||||
|
||||
.. _adios: https://github.com/ornladios/ADIOS2
|
||||
|
||||
@ -67,7 +66,7 @@ create a new file at each individual dump.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
The number of atoms per snapshot CAN change with the adios style.
|
||||
The number of atoms per snapshot **can** change with the adios style.
|
||||
When using the ADIOS tool 'bpls' to list the content of a .bp file,
|
||||
bpls will print *__* for the size of the output table indicating that
|
||||
its size is changing every step.
|
||||
|
||||
@ -6,7 +6,7 @@ dump cfg/uef command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
dump ID group-ID cfg/uef N file mass type xs ys zs args
|
||||
|
||||
@ -32,9 +32,8 @@ Description
|
||||
|
||||
This command is used to dump atomic coordinates in the
|
||||
reference frame of the applied flow field when
|
||||
:doc:`fix nvt/uef <fix_nh_uef>` or
|
||||
:doc:`fix npt/uef <fix_nh_uef>` or is used. Only the atomic
|
||||
coordinates and frame-invariant scalar quantities
|
||||
:doc:`fix nvt/uef <fix_nh_uef>` or :doc:`fix npt/uef <fix_nh_uef>` is used.
|
||||
Only the atomic coordinates and frame-invariant scalar quantities
|
||||
will be in the flow frame. If velocities are selected
|
||||
as output, for example, they will not be in the same
|
||||
reference frame as the atomic positions.
|
||||
@ -43,7 +42,8 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
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>`
|
||||
or :doc:`fix npt/uef <fix_nh_uef>` is active.
|
||||
|
||||
@ -12,7 +12,7 @@ dump movie command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
dump ID group-ID style N file color diameter keyword value ...
|
||||
|
||||
@ -28,7 +28,7 @@ Syntax
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*atom* = yes/no = do or do not draw atoms
|
||||
*atom* = *yes* or *no* = do or do not draw atoms
|
||||
*adiam* size = numeric value for atom diameter (distance units)
|
||||
*bond* values = color width = color and width of bonds
|
||||
color = *atom* or *type* or *none*
|
||||
@ -68,21 +68,20 @@ Syntax
|
||||
*box* values = yes/no diam = draw outline of simulation box
|
||||
yes/no = do or do not draw simulation box lines
|
||||
diam = diameter of box lines as fraction of shortest box length
|
||||
*axes* values = yes/no length diam = draw xyz axes
|
||||
yes/no = do or do not draw xyz axes lines next to simulation box
|
||||
*axes* values = axes length diam = draw xyz axes
|
||||
axes = *yes* or *no = do or do not draw xyz axes lines next to simulation box
|
||||
length = length of axes lines as fraction of respective box lengths
|
||||
diam = diameter of axes lines as fraction of shortest box length
|
||||
*subbox* values = yes/no diam = draw outline of processor sub-domains
|
||||
yes/no = do or do not draw sub-domain lines
|
||||
*subbox* values = lines diam = draw outline of processor sub-domains
|
||||
lines = *yes* or *no* = do or do not draw sub-domain lines
|
||||
diam = diameter of sub-domain lines as fraction of shortest box length
|
||||
*shiny* value = sfactor = shinyness of spheres and cylinders
|
||||
sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
|
||||
*ssao* value = yes/no seed dfactor = SSAO depth shading
|
||||
yes/no = turn depth shading on/off
|
||||
*ssao* value = shading seed dfactor = SSAO depth shading
|
||||
shading = *yes* or *no* = turn depth shading on/off
|
||||
seed = random # seed (positive integer)
|
||||
dfactor = strength of shading from 0.0 to 1.0
|
||||
|
||||
|
||||
.. _dump_modify_image:
|
||||
|
||||
dump_modify options for dump image/movie
|
||||
@ -162,7 +161,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Dump a high-quality rendered image of the atom configuration every N
|
||||
Dump a high-quality rendered image of the atom configuration every :math:`N`
|
||||
timesteps and save the images either as a sequence of JPEG or PNG or
|
||||
PPM files, or as a single movie file. The options for this command as
|
||||
well as the :doc:`dump_modify <dump_modify>` command control what is
|
||||
@ -179,7 +178,7 @@ has been run, using the :doc:`rerun <rerun>` command to read snapshots
|
||||
from an existing dump file, and using these dump commands in the rerun
|
||||
script to generate the images/movie.
|
||||
|
||||
Here are two sample images, rendered as 1024x1024 JPEG files.
|
||||
Here are two sample images, rendered as :math:`1024\times 1024` JPEG files.
|
||||
|
||||
.. |dump1| image:: img/dump1.jpg
|
||||
:width: 48%
|
||||
@ -197,8 +196,8 @@ Only atoms in the specified group are rendered in the image. The
|
||||
alter what atoms are included in the image.
|
||||
The filename suffix determines whether a JPEG, PNG, or PPM file is
|
||||
created with the *image* dump style. If the suffix is ".jpg" or
|
||||
".jpeg", then a `JPEG format <jpeg_format_>`_ file is created, if the
|
||||
suffix is ".png", then a `PNG format <png_format_>`_ is created, else
|
||||
".jpeg," then a `JPEG format <jpeg_format_>`_ file is created, if the
|
||||
suffix is ".png," then a `PNG format <png_format_>`_ is created, else
|
||||
a `PPM (aka NETPBM) format <ppm_format_>`_ file is created.
|
||||
The JPEG and PNG files are binary; PPM has a text mode header followed
|
||||
by binary data. JPEG images have lossy compression, PNG has lossless
|
||||
@ -232,22 +231,22 @@ details.
|
||||
|
||||
----------
|
||||
|
||||
Dumps are performed on timesteps that are a multiple of N (including
|
||||
Dumps are performed on timesteps that are a multiple of :math:`N` (including
|
||||
timestep 0) and on the last timestep of a minimization if the
|
||||
minimization converges. Note that this means a dump will not be
|
||||
performed on the initial timestep after the dump command is invoked,
|
||||
if the current timestep is not a multiple of N. This behavior can be
|
||||
if the current timestep is not a multiple of :math:`N`. This behavior can be
|
||||
changed via the :doc:`dump_modify first <dump_modify>` command, which
|
||||
can be useful if the dump command is invoked after a minimization
|
||||
ended on an arbitrary timestep. N can be changed between runs by
|
||||
ended on an arbitrary timestep. :math:`N` can be changed between runs by
|
||||
using the :doc:`dump_modify every <dump_modify>` command.
|
||||
|
||||
Dump *image* filenames must contain a wildcard character "\*", so that
|
||||
Dump *image* filenames must contain a wildcard character "\*" so that
|
||||
one image file per snapshot is written. The "\*" character is replaced
|
||||
with the timestep value. For example, tmp.dump.\*.jpg becomes
|
||||
tmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note
|
||||
that the :doc:`dump_modify pad <dump_modify>` command can be used to
|
||||
insure all timestep numbers are the same length (e.g. 00010), which
|
||||
insure all timestep numbers are the same length (e.g., 00010), which
|
||||
can make it easier to convert a series of images into a movie in the
|
||||
correct ordering.
|
||||
|
||||
@ -262,7 +261,7 @@ atoms rendered in the image. They can be any atom attribute defined
|
||||
for the :doc:`dump custom <dump>` command, including *type* and
|
||||
*element*\ . This includes per-atom quantities calculated by a
|
||||
:doc:`compute <compute>`, :doc:`fix <fix>`, or :doc:`variable <variable>`,
|
||||
which are prefixed by "c\_", "f\_", or "v\_" respectively. Note that the
|
||||
which are prefixed by "c\_," "f\_," or "v\_," respectively. Note that the
|
||||
*diameter* setting can be overridden with a numeric value applied to
|
||||
all atoms by the optional *adiam* keyword.
|
||||
|
||||
@ -277,7 +276,7 @@ to colors is as follows:
|
||||
* type 5 = aqua
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for types > 6. This mapping can be changed by the
|
||||
and repeats itself for types :math:`> 6`. This mapping can be changed by the
|
||||
"dump_modify acolor" command, as described below.
|
||||
|
||||
If *type* is specified for the *diameter* setting then the diameter of
|
||||
@ -298,18 +297,18 @@ and sizes used by the `AtomEye <atomeye_>`_ visualization package.
|
||||
If other atom attributes are used for the *color* or *diameter*
|
||||
settings, they are interpreted in the following way.
|
||||
|
||||
If "vx", for example, is used as the *color* setting, then the color
|
||||
If "vx," for example, is used as the *color* setting, then the color
|
||||
of the atom will depend on the x-component of its velocity. The
|
||||
association of a per-atom value with a specific color is determined by
|
||||
a "color map", which can be specified via the dump_modify command, as
|
||||
a "color map," which can be specified via the dump_modify command, as
|
||||
described below. The basic idea is that the atom-attribute will be
|
||||
within a range of values, and every value within the range is mapped
|
||||
to a specific color. Depending on how the color map is defined, that
|
||||
mapping can take place via interpolation so that a value of -3.2 is
|
||||
halfway between "red" and "blue", or discretely so that the value of
|
||||
halfway between "red" and "blue," or discretely so that the value of
|
||||
-3.2 is "orange".
|
||||
|
||||
If "vx", for example, is used as the *diameter* setting, then the atom
|
||||
If "vx," for example, is used as the *diameter* setting, then the atom
|
||||
will be rendered using the x-component of its velocity as the
|
||||
diameter. If the per-atom value <= 0.0, them the atom will not be
|
||||
drawn. Note that finite-size spherical particles, as defined by
|
||||
@ -773,10 +772,11 @@ the number 5.0 would be used. But for a fractional map, the number
|
||||
The *delta* setting must be specified for all styles, but is only used
|
||||
for the sequential style; otherwise the value is ignored. It
|
||||
specifies the bin size to use within the range for assigning
|
||||
consecutive colors to. For example, if the range is from -10.0 to
|
||||
10.0 and a *delta* of 1.0 is used, then 20 colors will be assigned to
|
||||
the range. The first will be from -10.0 <= color1 < -9.0, then second
|
||||
from -9.0 <= color2 < -8.0, etc.
|
||||
consecutive colors to. For example, if the range is from :math:`-10.0` to
|
||||
:math:`10.0` and a *delta* of :math:`1.0` is used, then 20 colors will be
|
||||
assigned to the range. The first will be from
|
||||
:math:`-10.0 \le \text{color1} < -9.0`, then second from
|
||||
:math:`-9.0 \le color2 < -8.0`, etc.
|
||||
|
||||
The *N* setting is how many entries follow. The format of the entries
|
||||
depends on whether the color map style is continuous, discrete or
|
||||
@ -793,13 +793,13 @@ as absolute numbers or as fractions (0.0 to 1.0) of the range,
|
||||
depending on the "a" or "f" in the style setting for the color map.
|
||||
|
||||
Here is how the entries are used to determine the color of an
|
||||
individual atom, given the value X of its atom attribute. X will fall
|
||||
between 2 of the entry values. The color of the atom is linearly
|
||||
interpolated (in each of the RGB values) between the 2 colors
|
||||
associated with those entries. For example, if X = -5.0 and the 2
|
||||
surrounding entries are "red" at -10.0 and "blue" at 0.0, then the
|
||||
atom's color will be halfway between "red" and "blue", which happens
|
||||
to be "purple".
|
||||
individual atom, given the value :math:`X` of its atom attribute.
|
||||
:math:`X` will fall between 2 of the entry values. The color of the atom is
|
||||
linearly interpolated (in each of the RGB values) between the 2 colors
|
||||
associated with those entries. For example, if :math:`X = -5.0` and the two
|
||||
surrounding entries are "red" at :math:`-10.0` and "blue" at :math:`0.0`,
|
||||
then the atom's color will be halfway between "red" and "blue," which happens
|
||||
to be "purple."
|
||||
|
||||
For discrete color maps, each entry has a *lo* and *hi* value and a
|
||||
*color*\ . The *lo* and *hi* settings are either numbers within the
|
||||
@ -864,20 +864,20 @@ The *bcolor* keyword can be used with the dump image command, with its
|
||||
*bond* keyword, when its color setting is *type*, to set the color
|
||||
that bonds of each type will be drawn in the image.
|
||||
|
||||
The specified *type* should be an integer from 1 to Nbondtypes = the
|
||||
number of bond types. A wildcard asterisk can be used in place of or
|
||||
The specified *type* should be an integer from 1 to :math:`N`, where :math:`N`
|
||||
is the number of bond types. A wildcard asterisk can be used in place of or
|
||||
in conjunction with the *type* argument to specify a range of bond
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
||||
the number of bond types, then an asterisk with no numeric values
|
||||
means all types from 1 to N. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
||||
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||
is the number of bond types, then an asterisk with no numerical values
|
||||
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The specified *color* can be a single color which is any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option. Or it can be two or more colors separated
|
||||
by a "/" character, e.g. red/green/blue. In the former case, that
|
||||
by a "/" character (e.g., red/green/blue). In the former case, that
|
||||
color is assigned to all the specified bond types. In the latter
|
||||
case, the list of colors are assigned in a round-robin fashion to each
|
||||
of the specified bond types.
|
||||
@ -885,13 +885,13 @@ of the specified bond types.
|
||||
----------
|
||||
|
||||
The *bdiam* keyword can be used with the dump image command, with its
|
||||
*bond* keyword, when its diam setting is *type*, to set the diameter
|
||||
*bond* keyword, when its *diam* setting is *type*, to set the diameter
|
||||
that bonds of each type will be drawn in the image. The specified
|
||||
*type* should be an integer from 1 to Nbondtypes. As with the
|
||||
*bcolor* keyword, a wildcard asterisk can be used as part of the
|
||||
*type* argument to specify a range of bond types. The specified
|
||||
*diam* is the size in whatever distance :doc:`units <units>` you are
|
||||
using, e.g. Angstroms.
|
||||
using (e.g., Angstroms).
|
||||
|
||||
----------
|
||||
|
||||
@ -922,7 +922,7 @@ dump_modify color option.
|
||||
----------
|
||||
|
||||
The *color* keyword allows definition of a new color name, in addition
|
||||
to the 140-predefined colors (see below), and associates 3
|
||||
to the 140-predefined colors (see below), and associates three
|
||||
red/green/blue RGB values with that color name. The color name can
|
||||
then be used with any other dump_modify keyword that takes a color
|
||||
name as a value. The RGB values should each be floating point values
|
||||
@ -959,15 +959,15 @@ PNG library.
|
||||
|
||||
To write *movie* dumps, you must use the -DLAMMPS_FFMPEG switch when
|
||||
building LAMMPS and have the FFmpeg executable available on the
|
||||
machine where LAMMPS is being run. Typically it's name is lowercase,
|
||||
i.e. ffmpeg.
|
||||
machine where LAMMPS is being run. Typically its name is lowercase
|
||||
(i.e., "ffmpeg").
|
||||
|
||||
See the :doc:`Build settings <Build_settings>` page for details.
|
||||
|
||||
Note that since FFmpeg is run as an external program via a pipe,
|
||||
LAMMPS has limited control over its execution and no knowledge about
|
||||
errors and warnings printed by it. Those warnings and error messages
|
||||
will be printed to the screen only. Due to the way image data is
|
||||
will be printed to the screen only. Due to the way image data are
|
||||
communicated to FFmpeg, it will often print the message
|
||||
|
||||
.. parsed-literal::
|
||||
@ -976,7 +976,7 @@ communicated to FFmpeg, it will often print the message
|
||||
|
||||
which can be safely ignored. Other warnings
|
||||
and errors have to be addressed according to the FFmpeg documentation.
|
||||
One known issue is that certain movie file formats (e.g. MPEG level 1
|
||||
One known issue is that certain movie file formats (e.g., MPEG level 1
|
||||
and 2 format streams) have video bandwidth limits that can be crossed
|
||||
when rendering too large of image sizes. Typical warnings look like
|
||||
this:
|
||||
@ -987,10 +987,9 @@ this:
|
||||
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018
|
||||
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 size=285018
|
||||
|
||||
In this case it is recommended to either reduce the size of the image
|
||||
or encode in a different format that is also supported by your copy of
|
||||
FFmpeg, and which does not have this limitation (e.g. .avi, .mkv,
|
||||
mp4).
|
||||
In this case it is recommended either to reduce the size of the image
|
||||
or to encode in a different format that is also supported by your copy of
|
||||
FFmpeg and which does not have this limitation (e.g., .avi, .mkv, mp4).
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -35,10 +35,10 @@ Syntax
|
||||
*element* args = E1 E2 ... EN, where N = # of atom types
|
||||
E1,...,EN = element name (e.g., C or Fe or Ga)
|
||||
*every* arg = N
|
||||
N = dump every this many timesteps
|
||||
N = dump on timesteps which are a multiple of N
|
||||
N can be a variable (see below)
|
||||
*every/time* arg = Delta
|
||||
Delta = dump every this interval in simulation time (time units)
|
||||
Delta = dump once every Delta interval of simulation time (time units)
|
||||
Delta can be a variable (see below)
|
||||
*fileper* arg = Np
|
||||
Np = write one file for every this many processors
|
||||
@ -176,6 +176,31 @@ extra buffering.
|
||||
|
||||
----------
|
||||
|
||||
.. versionadded:: 4May2022
|
||||
|
||||
The *colname* keyword can be used to change the default header keyword
|
||||
for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS,
|
||||
and MPIIO variants. The setting for *ID string* replaces the default
|
||||
text with the provided string. *ID* can be a positive integer when it
|
||||
represents the column number counting from the left, a negative integer
|
||||
when it represents the column number from the right (i.e. -1 is the last
|
||||
column/keyword), or a custom dump keyword (or compute, fix, property, or
|
||||
variable reference) and then it replaces the string for that specific
|
||||
keyword. For *atom* dump styles only the keywords "id", "type", "x",
|
||||
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
|
||||
whether scaled or unwrapped coordinates were enabled or disabled, and
|
||||
it always assumes 8 columns for indexing regardless of whether image
|
||||
flags are enabled or not. For dump style *cfg* only changes to the
|
||||
"auxiliary" keywords (6th or later keyword) will become visible.
|
||||
|
||||
The *colname* keyword can be used multiple times. If multiple *colname*
|
||||
settings refer to the same keyword, the last setting has precedence. A
|
||||
setting of *default* clears all previous settings, reverting all values
|
||||
to their default names. Using the *scale* or *image* keyword will also
|
||||
reset all header keywords to their default values.
|
||||
|
||||
----------
|
||||
|
||||
The *delay* keyword applies to all dump styles. No snapshots will be
|
||||
output until the specified *Dstep* timestep or later. Specifying
|
||||
*Dstep* < 0 is the same as turning off the delay setting. This is a
|
||||
@ -207,13 +232,10 @@ will be accepted.
|
||||
----------
|
||||
|
||||
The *every* keyword can be used with any dump style except the *dcd*
|
||||
and *xtc* styles. It does two things. It specifies that the interval
|
||||
between dump snapshots will be set in timesteps, which is the default
|
||||
if the *every* or *every/time* keywords are not used. See the
|
||||
*every/time* keyword for how to specify the interval in simulation
|
||||
time, i.e. in time units of the :doc:`units <units>` command. The
|
||||
*every* keyword also sets the interval value, which overrides the dump
|
||||
frequency originally specified by the :doc:`dump <dump>` command.
|
||||
and *xtc* styles. It specifies that the output of dump snapshots will
|
||||
now be performed on timesteps which are a multiple of a new :math:`N`
|
||||
value, This overrides the dump frequency originally specified by the
|
||||
:doc:`dump <dump>` command.
|
||||
|
||||
The *every* keyword can be specified in one of two ways. It can be a
|
||||
numeric value in which case it must be > 0. Or it can be an
|
||||
@ -273,6 +295,17 @@ in file tmp.times:
|
||||
|
||||
----------
|
||||
|
||||
The *every/time* keyword can be used with any dump style except the
|
||||
*dcd* and *xtc* styles. It changes the frequency of dump snapshots
|
||||
from being based on the current timestep to being determined by
|
||||
elapsed simulation time, i.e. in time units of the :doc:`units
|
||||
<units>` command, and specifies *Delta* for the interval between
|
||||
snapshots. This can be useful when the timestep size varies during a
|
||||
simulation run, e.g. by use of the :doc:`fix dt/reset <fix_dt_reset>`
|
||||
command. The default is to perform output on timesteps which a
|
||||
multiples of specified timestep value :math:`N`; see the *every*
|
||||
keyword.
|
||||
|
||||
The *every/time* keyword can be used with any dump style except the
|
||||
*dcd* and *xtc* styles. It does two things. It specifies that the
|
||||
interval between dump snapshots will be set in simulation time
|
||||
@ -357,7 +390,7 @@ always occur if the current timestep is a multiple of $N$, the
|
||||
frequency specified in the :doc:`dump <dump>` command or
|
||||
:doc:`dump_modify every <dump_modify>` command, including timestep 0.
|
||||
It will also always occur if the current simulation time is a multiple
|
||||
of *Delta*, the time interval specified in the doc:`dump_modify
|
||||
of *Delta*, the time interval specified in the :doc:`dump_modify
|
||||
every/time <dump_modify>` command.
|
||||
|
||||
But if this is not the case, a dump snapshot will only be written if
|
||||
@ -365,7 +398,7 @@ the setting of this keyword is *yes*\ . If it is *no*, which is the
|
||||
default, then it will not be written.
|
||||
|
||||
Note that if the argument to the :doc:`dump_modify every
|
||||
<dump_modify>` doc:`dump_modify every/time <dump_modify>` commands is
|
||||
<dump_modify>` :doc:`dump_modify every/time <dump_modify>` commands is
|
||||
a variable and not a numeric value, then specifying *first yes* is the
|
||||
only way to write a dump snapshot on the first timestep after the dump
|
||||
command is invoked.
|
||||
@ -380,30 +413,6 @@ performed with dump style *xtc*\ .
|
||||
|
||||
----------
|
||||
|
||||
.. versionadded:: 4May2022
|
||||
|
||||
The *colname* keyword can be used to change the default header keyword
|
||||
for dump styles: *atom*, *custom*, and *cfg* and their compressed, ADIOS,
|
||||
and MPIIO variants. The setting for *ID string* replaces the default
|
||||
text with the provided string. *ID* can be a positive integer when it
|
||||
represents the column number counting from the left, a negative integer
|
||||
when it represents the column number from the right (i.e. -1 is the last
|
||||
column/keyword), or a custom dump keyword (or compute, fix, property, or
|
||||
variable reference) and then it replaces the string for that specific
|
||||
keyword. For *atom* dump styles only the keywords "id", "type", "x",
|
||||
"y", "z", "ix", "iy", "iz" can be accessed via string regardless of
|
||||
whether scaled or unwrapped coordinates were enabled or disabled, and
|
||||
it always assumes 8 columns for indexing regardless of whether image
|
||||
flags are enabled or not. For dump style *cfg* only changes to the
|
||||
"auxiliary" keywords (6th or later keyword) will become visible.
|
||||
|
||||
The *colname* keyword can be used multiple times. If multiple *colname*
|
||||
settings refer to the same keyword, the last setting has precedence. A
|
||||
setting of *default* clears all previous settings, reverting all values
|
||||
to their default names.
|
||||
|
||||
----------
|
||||
|
||||
The *format* keyword can be used to change the default numeric format output
|
||||
by the text-based dump styles: *atom*, *local*, *custom*, *cfg*, and
|
||||
*xyz* styles, and their MPIIO variants. Only the *line* or *none*
|
||||
@ -490,6 +499,8 @@ boundary twice and is really two box lengths to the left of its
|
||||
current coordinate. Note that for dump style *custom* these various
|
||||
values can be printed in the dump file by using the appropriate atom
|
||||
attributes in the dump command itself.
|
||||
Using this keyword will reset all custom header names set with
|
||||
*dump_modify colname* to their respective default values.
|
||||
|
||||
----------
|
||||
|
||||
@ -663,6 +674,8 @@ value of *yes* means atom coords are written in normalized units from
|
||||
(tilted), then all atom coords will still be between 0.0 and 1.0. A
|
||||
value of *no* means they are written in absolute distance units
|
||||
(e.g., :math:`\mathrm{\mathring A}` or :math:`\sigma`).
|
||||
Using this keyword will reset all custom header names set with
|
||||
*dump_modify colname* to their respective default values.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -6,13 +6,13 @@ dump vtk command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
dump ID group-ID vtk N file args
|
||||
|
||||
* ID = user-assigned name for the dump
|
||||
* group-ID = ID of the group of atoms to be dumped
|
||||
* vtk = style of dump command (other styles *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
|
||||
* vtk = style of dump command (other styles such as *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
|
||||
* N = dump every this many timesteps
|
||||
* file = name of file to write dump info to
|
||||
* args = same as arguments for :doc:`dump_style custom <dump>`
|
||||
@ -28,17 +28,18 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Dump a snapshot of atom quantities to one or more files every N
|
||||
Dump a snapshot of atom quantities to one or more files every :math:`N`
|
||||
timesteps in a format readable by the `VTK visualization toolkit <http://www.vtk.org>`_ or other visualization tools that use it,
|
||||
e.g. `ParaView <http://www.paraview.org>`_. The timesteps on which dump
|
||||
such as `ParaView <http://www.paraview.org>`_. The time steps on which dump
|
||||
output is written can also be controlled by a variable; see the
|
||||
:doc:`dump_modify every <dump_modify>` command for details.
|
||||
|
||||
This dump style is similar to :doc:`dump_style custom <dump>` but uses
|
||||
the VTK library to write data to VTK simple legacy or XML format
|
||||
the VTK library to write data to VTK simple legacy or XML format,
|
||||
depending on the filename extension specified for the dump file. This
|
||||
can be either *\*.vtk* for the legacy format or *\*.vtp* and *\*.vtu*,
|
||||
respectively, for XML format; see the `VTK homepage <http://www.vtk.org/VTK/img/file-formats.pdf>`_ for a detailed
|
||||
respectively, for XML format; see the
|
||||
`VTK homepage <http://www.vtk.org/VTK/img/file-formats.pdf>`_ for a detailed
|
||||
description of these formats. Since this naming convention conflicts
|
||||
with the way binary output is usually specified (see below), the
|
||||
:doc:`dump_modify binary <dump_modify>` command allows setting of a
|
||||
|
||||
@ -6,8 +6,7 @@ fix accelerate/cos command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID accelerate value
|
||||
|
||||
@ -19,7 +18,6 @@ Syntax
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix 1 all accelerate/cos 0.02e-5
|
||||
@ -34,8 +32,8 @@ The acceleration is a periodic function along the z-direction:
|
||||
|
||||
a_{x}(z) = A \cos \left(\frac{2 \pi z}{l_{z}}\right)
|
||||
|
||||
where :math:`A` is the acceleration amplitude, :math:`l_z` is the z-length
|
||||
of the simulation box.
|
||||
where :math:`A` is the acceleration amplitude, :math:`l_z` is the
|
||||
:math:`z`-length of the simulation box.
|
||||
At steady state, the acceleration generates a velocity profile:
|
||||
|
||||
.. math::
|
||||
@ -49,17 +47,18 @@ shear viscosity :math:`\eta` by:
|
||||
|
||||
V = \frac{A \rho}{\eta}\left(\frac{l_{z}}{2 \pi}\right)^{2}
|
||||
|
||||
|
||||
and it can be obtained from ensemble average of the velocity profile:
|
||||
|
||||
.. math::
|
||||
|
||||
V = \frac{\sum_i 2 m_{i} v_{i, x} \cos \left(\frac{2 \pi z_i}{l_{z}}\right)}{\sum_i m_{i}}
|
||||
V = \frac{\sum\limits_i 2 m_{i} v_{i, x} \cos \left(\frac{2 \pi z_i}{l_{z}}\right)}{\sum\limits_i m_{i}},
|
||||
|
||||
where :math:`m_i`, :math:`v_{i,x}` and :math:`z_i` are the mass,
|
||||
x-component velocity and z coordinate of a particle.
|
||||
where :math:`m_i`, :math:`v_{i,x}`, and :math:`z_i` are the mass,
|
||||
:math:`x`-component velocity, and :math:`z`-coordinate of a particle,
|
||||
respectively.
|
||||
|
||||
The velocity amplitude :math:`V` can be calculated with :doc:`compute viscosity/cos <compute_viscosity_cos>`,
|
||||
The velocity amplitude :math:`V` can be calculated with
|
||||
:doc:`compute viscosity/cos <compute_viscosity_cos>`,
|
||||
which enables viscosity calculation with periodic perturbation method,
|
||||
as described by :ref:`Hess<Hess2>`.
|
||||
Because the applied acceleration drives the system away from equilibration,
|
||||
@ -79,15 +78,17 @@ Restart, fix_modify, output, run start/stop, minimize info
|
||||
|
||||
No information about this fix is written to binary restart files.
|
||||
None of the fix_modify options are relevant to this fix.
|
||||
No global or per-atom quantities are stored by this fix for access by various output commands.
|
||||
No parameter of this fix can be used with the start/stop keywords of the run command.
|
||||
No global or per-atom quantities are stored by this fix for access by various
|
||||
output commands. No parameter of this fix can be used with the start/stop
|
||||
keywords of the run command.
|
||||
This fix is not invoked during energy minimization.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This command is only available when LAMMPS was built with the MISC package.
|
||||
Since this fix depends on the z-coordinate of atoms, it cannot be used in 2d simulations.
|
||||
Since this fix depends on the :math:`z`-coordinate of atoms, it cannot be used
|
||||
in 2d simulations.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
@ -96,10 +97,10 @@ Related commands
|
||||
|
||||
Default
|
||||
"""""""
|
||||
none
|
||||
none
|
||||
|
||||
----------
|
||||
|
||||
.. _Hess2:
|
||||
|
||||
**(Hess)** Hess, B. The Journal of Chemical Physics 2002, 116 (1), 209-217.
|
||||
**(Hess)** Hess, B. Journal of Chemical Physics 2002, 116 (1), 209--217.
|
||||
|
||||
@ -9,7 +9,7 @@ Accelerator Variants: *acks2/reaxff/kk*
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args
|
||||
|
||||
@ -37,10 +37,10 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Perform the atom-condensed Kohn-Sham DFT to second order (ACKS2) charge
|
||||
Perform the atom-condensed Kohn--Sham DFT to second order (ACKS2) charge
|
||||
equilibration method as described in :ref:`(Verstraelen) <Verstraelen>`.
|
||||
ACKS2 impedes unphysical long-range charge transfer sometimes seen with
|
||||
QEq (e.g. for dissociation of molecules), at increased computational
|
||||
QEq (e.g., for dissociation of molecules), at increased computational
|
||||
cost. It is typically used in conjunction with the ReaxFF force field
|
||||
model as implemented in the :doc:`pair_style reaxff <pair_reaxff>`
|
||||
command, but it can be used with any potential in LAMMPS, so long as it
|
||||
@ -71,7 +71,8 @@ potential in eV, *gamma*, the valence orbital exponent, and *bcut*, the
|
||||
bond cutoff distance. Note that these 4 quantities are also in the
|
||||
ReaxFF potential file, except that eta is defined here as twice the eta
|
||||
value in the ReaxFF file. Note that unlike the rest of LAMMPS, the units
|
||||
of this fix are hard-coded to be A, eV, and electronic charge.
|
||||
of this fix are hard-coded to be :math:`\mathrm{\mathring{A}}`, eV, and
|
||||
electronic charge.
|
||||
|
||||
The optional *maxiter* keyword allows changing the max number
|
||||
of iterations in the linear solver. The default value is 200.
|
||||
@ -110,7 +111,7 @@ LAMMPS was built with that package. See the :doc:`Build package
|
||||
|
||||
This fix does not correctly handle interactions involving multiple
|
||||
periodic images of the same atom. Hence, it should not be used for
|
||||
periodic cell dimensions less than 10 angstroms.
|
||||
periodic cell dimensions less than :math:`10~\mathrm{\mathring{A}}`.
|
||||
|
||||
This fix may be used in combination with :doc:`fix efield <fix_efield>`
|
||||
and will apply the external electric field during charge equilibration,
|
||||
@ -132,7 +133,7 @@ maxiter 200
|
||||
|
||||
.. _O'Hearn:
|
||||
|
||||
**(O'Hearn)** O'Hearn, Alperen, Aktulga, SIAM J. Sci. Comput., 42(1), C1-C22 (2020).
|
||||
**(O'Hearn)** O'Hearn, Alperen, Aktulga, SIAM J. Sci. Comput., 42(1), C1--C22 (2020).
|
||||
|
||||
.. _Verstraelen:
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ fix adapt command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID adapt N attribute args ... keyword value ...
|
||||
|
||||
@ -19,24 +19,24 @@ Syntax
|
||||
.. parsed-literal::
|
||||
|
||||
*pair* args = pstyle pparam I J v_name
|
||||
pstyle = pair style name, e.g. lj/cut
|
||||
pstyle = pair style name (e.g., lj/cut)
|
||||
pparam = parameter to adapt over time
|
||||
I,J = type pair(s) to set parameter for
|
||||
v_name = variable with name that calculates value of pparam
|
||||
*bond* args = bstyle bparam I v_name
|
||||
bstyle = bond style name, e.g. harmonic
|
||||
bstyle = bond style name (e.g., harmonic)
|
||||
bparam = parameter to adapt over time
|
||||
I = type bond to set parameter for
|
||||
v_name = variable with name that calculates value of bparam
|
||||
*angle* args = astyle aparam I v_name
|
||||
astyle = angle style name, e.g. harmonic
|
||||
astyle = angle style name (e.g., harmonic)
|
||||
aparam = parameter to adapt over time
|
||||
I = type angle to set parameter for
|
||||
v_name = variable with name that calculates value of aparam
|
||||
*kspace* arg = v_name
|
||||
v_name = variable with name that calculates scale factor on K-space terms
|
||||
v_name = variable with name that calculates scale factor on :math:`k`-space terms
|
||||
*atom* args = atomparam v_name
|
||||
atomparam = parameter to adapt over time
|
||||
atomparam = *charge* or *diameter* or *diameter/disc* = parameter to adapt over time
|
||||
v_name = variable with name that calculates value of atomparam
|
||||
|
||||
* zero or more keyword/value pairs may be appended
|
||||
@ -44,15 +44,15 @@ Syntax
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*scale* value = *no* or *yes*
|
||||
*no* = the variable value is the new setting
|
||||
*yes* = the variable value multiplies the original setting
|
||||
*reset* value = *no* or *yes*
|
||||
*no* = values will remain altered at the end of a run
|
||||
*yes* = reset altered values to their original values at the end of a run
|
||||
*mass* value = *no* or *yes*
|
||||
*no* = mass is not altered by changes in diameter
|
||||
*yes* = mass is altered by changes in diameter
|
||||
*scale* value = *no* or *yes*
|
||||
*no* = the variable value is the new setting
|
||||
*yes* = the variable value multiplies the original setting
|
||||
*reset* value = *no* or *yes*
|
||||
*no* = values will remain altered at the end of a run
|
||||
*yes* = reset altered values to their original values at the end of a run
|
||||
*mass* value = *no* or *yes*
|
||||
*no* = mass is not altered by changes in diameter
|
||||
*yes* = mass is altered by changes in diameter
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -70,22 +70,22 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Change or adapt one or more specific simulation attributes or settings
|
||||
over time as a simulation runs. Pair potential and K-space and atom
|
||||
attributes which can be varied by this fix are discussed below. Many
|
||||
other fixes can also be used to time-vary simulation parameters,
|
||||
e.g. the "fix deform" command will change the simulation box
|
||||
size/shape and the "fix move" command will change atom positions and
|
||||
velocities in a prescribed manner. Also note that many commands allow
|
||||
variables as arguments for specific parameters, if described in that
|
||||
Change or adapt one or more specific simulation attributes or settings over
|
||||
time as a simulation runs. Pair potential and :math:`k`-space and atom
|
||||
attributes which can be varied by this fix are discussed below. Many other
|
||||
fixes can also be used to time-vary simulation parameters (e.g., the
|
||||
:doc:`fix deform <fix_deform>` command will change the simulation box
|
||||
size/shape and the :doc:`fix move <fix_move>` command will change atom
|
||||
positions and velocities in a prescribed manner). Also note that many commands
|
||||
allow variables as arguments for specific parameters, if described in that
|
||||
manner on their doc pages. An equal-style variable can calculate a
|
||||
time-dependent quantity, so this is another way to vary a simulation
|
||||
parameter over time.
|
||||
time-dependent quantity, so this is another way to vary a simulation parameter
|
||||
over time.
|
||||
|
||||
If *N* is specified as 0, the specified attributes are only changed
|
||||
If :math:`N` is specified as 0, the specified attributes are only changed
|
||||
once, before the simulation begins. This is all that is needed if the
|
||||
associated variables are not time-dependent. If *N* > 0, then changes
|
||||
are made every *N* steps during the simulation, presumably with a
|
||||
associated variables are not time-dependent. If :math:`N > 0`, then changes
|
||||
are made every :math:`N` steps during the simulation, presumably with a
|
||||
variable that is time-dependent.
|
||||
|
||||
Depending on the value of the *reset* keyword, attributes changed by
|
||||
@ -98,9 +98,9 @@ If the *scale* keyword is set to *no*, which is the default, then
|
||||
the value of the altered parameter will be whatever the variable
|
||||
generates. If the *scale* keyword is set to *yes*, then the value
|
||||
of the altered parameter will be the initial value of that parameter
|
||||
multiplied by whatever the variable generates. I.e. the variable is
|
||||
multiplied by whatever the variable generates (i.e., the variable is
|
||||
now a "scale factor" applied in (presumably) a time-varying fashion to
|
||||
the parameter.
|
||||
the parameter).
|
||||
|
||||
Note that whether scale is *no* or *yes*, internally, the parameters
|
||||
themselves are actually altered by this fix. Make sure you use the
|
||||
@ -120,9 +120,9 @@ The *pstyle* argument is the name of the pair style. If
|
||||
:doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used,
|
||||
*pstyle* should be a sub-style name. If there are multiple
|
||||
sub-styles using the same pair style, then *pstyle* should be specified
|
||||
as "style:N" where N is which instance of the pair style you wish to
|
||||
adapt, e.g. the first, second, etc. For example, *pstyle* could be
|
||||
specified as "soft" or "lubricate" or "lj/cut:1" or "lj/cut:2". The
|
||||
as "style:N", where :math:`N` is which instance of the pair style you wish to
|
||||
adapt (e.g., the first or second). For example, *pstyle* could be
|
||||
specified as "soft" or "lubricate" or "lj/cut:1" or "lj/cut:2." The
|
||||
*pparam* argument is the name of the parameter to change. This is the
|
||||
current list of pair styles and parameters that can be varied by this
|
||||
fix. See the doc pages for individual pair styles and their energy
|
||||
@ -216,45 +216,46 @@ formulas for the meaning of these parameters:
|
||||
to this list. All it typically takes is adding an extract() method to
|
||||
the pair\_\*.cpp file associated with the potential.
|
||||
|
||||
Some parameters are global settings for the pair style, e.g. the
|
||||
viscosity setting "mu" for :doc:`pair_style lubricate <pair_lubricate>`.
|
||||
Other parameters apply to atom type pairs within the pair style,
|
||||
e.g. the prefactor "a" for :doc:`pair_style soft <pair_soft>`.
|
||||
Some parameters are global settings for the pair style (e.g., the
|
||||
viscosity setting "mu" for :doc:`pair_style lubricate <pair_lubricate>`).
|
||||
Other parameters apply to atom type pairs within the pair style (e.g., the
|
||||
prefactor :math:`a` for :doc:`pair_style soft <pair_soft>`).
|
||||
|
||||
Note that for many of the potentials, the parameter that can be varied
|
||||
is effectively a prefactor on the entire energy expression for the
|
||||
potential, e.g. the lj/cut epsilon. The parameters listed as "scale"
|
||||
potential (e.g., the lj/cut epsilon). The parameters listed as "scale"
|
||||
are exactly that, since the energy expression for the
|
||||
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled
|
||||
prefactor in its formula. To apply an effective prefactor to some
|
||||
potentials, multiple parameters need to be altered. For example, the
|
||||
:doc:`Buckingham potential <pair_buck>` needs both the A and C terms
|
||||
altered together. To scale the Buckingham potential, you should thus
|
||||
list the pair style twice, once for A and once for C.
|
||||
:doc:`Buckingham potential <pair_buck>` needs both the :math:`A` and
|
||||
:math:`C` terms altered together. To scale the Buckingham potential, you
|
||||
should thus list the pair style twice, once for :math:`A` and once for
|
||||
:math:`C`.
|
||||
|
||||
If a type pair parameter is specified, the *I* and *J* settings should
|
||||
be specified to indicate which type pairs to apply it to. If a global
|
||||
parameter is specified, the *I* and *J* settings still need to be
|
||||
If a type pair parameter is specified, the :math:`I` and :math:`J` settings
|
||||
should be specified to indicate which type pairs to apply it to. If a global
|
||||
parameter is specified, the :math:`I` and :math:`J` settings still need to be
|
||||
specified, but are ignored.
|
||||
|
||||
Similar to the :doc:`pair_coeff command <pair_coeff>`, I and J can be
|
||||
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
|
||||
the coefficients for the symmetric J,I interaction to the same values.
|
||||
Similar to the :doc:`pair_coeff command <pair_coeff>`, :math:`I` and :math:`J`
|
||||
can be specified in one of two ways. Explicit numeric values can be used for
|
||||
each, as in the first example above. :math:`I \le J` is required. LAMMPS sets
|
||||
the coefficients for the symmetric :math:`J,I` interaction to the same 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 atom
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
||||
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
|
||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
||||
the :math:`I,J` arguments to set the coefficients for multiple pairs of atom
|
||||
types. This 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 from 1 to :math:`N`. A leading asterisk means all types from
|
||||
1 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). Note that only type pairs with I <= J are considered; if
|
||||
asterisks imply type pairs where J < I, they are ignored.
|
||||
(inclusive). Note that only type pairs with :math:`I \le J` are considered; if
|
||||
asterisks imply type pairs where :math:`J < I`, they are ignored.
|
||||
|
||||
IMPROTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay
|
||||
IMPORTANT NOTE: 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 I,J arguments that correspond to type pair
|
||||
name. You must specify :math:`I,J` arguments that correspond to type pair
|
||||
values defined (via the :doc:`pair_coeff <pair_coeff>` command) for
|
||||
that sub-style.
|
||||
|
||||
@ -289,12 +290,11 @@ given bond type is adapted.
|
||||
|
||||
A wild-card asterisk can be used in place of or in conjunction with
|
||||
the bond type argument to set the coefficients for multiple bond
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
||||
the number of bond types, then an asterisk with no numeric values
|
||||
means all types from 1 to N. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||
is the number of bond types, then an asterisk with no numeric values
|
||||
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||
(inclusive). A middle asterisk means all types from m to n (inclusive).
|
||||
|
||||
Currently *bond* does not support bond_style hybrid nor bond_style
|
||||
hybrid/overlay as bond styles. The bond styles that currently work
|
||||
@ -325,12 +325,11 @@ given angle type is adapted.
|
||||
|
||||
A wild-card asterisk can be used in place of or in conjunction with
|
||||
the angle type argument to set the coefficients for multiple angle
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
||||
the number of angle types, then an asterisk with no numeric values
|
||||
means all types from 1 to N. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||
is the number of angle types, then an asterisk with no numeric values
|
||||
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||
(inclusive). A middle asterisk means all types from m to n (inclusive).
|
||||
|
||||
Currently *angle* does not support angle_style hybrid nor angle_style
|
||||
hybrid/overlay as angle styles. The angle styles that currently work
|
||||
@ -348,7 +347,7 @@ this fix uses to reset theta0 needs to generate values in radians.
|
||||
----------
|
||||
|
||||
The *kspace* keyword used the specified variable as a scale factor on
|
||||
the energy, forces, virial calculated by whatever K-Space solver is
|
||||
the energy, forces, virial calculated by whatever :math:`k`-space solver is
|
||||
defined by the :doc:`kspace_style <kspace_style>` command. If the
|
||||
variable has a value of 1.0, then the solver is unaltered.
|
||||
|
||||
@ -373,17 +372,17 @@ with equal-style variables. The new value is assigned to the
|
||||
corresponding attribute for all atoms in the fix group.
|
||||
|
||||
If the atom parameter is *diameter* and per-atom density and per-atom
|
||||
mass are defined for particles (e.g. :doc:`atom_style granular
|
||||
mass are defined for particles (e.g., :doc:`atom_style granular
|
||||
<atom_style>`), then the mass of each particle is, by default, also
|
||||
changed when the diameter changes. The mass is set from the particle
|
||||
volume for 3d systems (density is assumed to stay constant). For 2d,
|
||||
the default is for LAMMPS to model particles with a radius attribute
|
||||
as spheres. However, if the atom parameter is *diameter/disc*, then the
|
||||
mass is set from the particle area (the density is assumed to be in
|
||||
mass/distance^2 units). The mass of the particle may also be kept constant
|
||||
if the *mass* keyword is set to *no*. This can be useful to account for
|
||||
diameter changes that do not involve mass changes, e.g., thermal expansion.
|
||||
|
||||
mass/distance\ :math:`^2` units). The mass of the particle may also be kept
|
||||
constant if the *mass* keyword is set to *no*. This can be useful to account
|
||||
for diameter changes that do not involve mass changes (e.g., thermal
|
||||
expansion).
|
||||
|
||||
For example, these commands would shrink the diameter of all granular
|
||||
particles in the "center" group from 1.0 to 0.1 in a linear fashion
|
||||
@ -405,11 +404,11 @@ their original values at the end of the last restarted run.
|
||||
|
||||
Note that all the parameters changed by this fix are written into a
|
||||
restart file in their current changed state. A new restarted
|
||||
simulation does not know their original time=0 values, unless the
|
||||
simulation does not know the original time=0 values, unless the
|
||||
input script explicitly resets the parameters (after the restart file
|
||||
is read), to their original values.
|
||||
is read) to the original values.
|
||||
|
||||
Also note, that the time-dependent variable(s) used in the restart
|
||||
Also note that the time-dependent variable(s) used in the restart
|
||||
script should typically be written as a function of time elapsed since
|
||||
the original simulation began.
|
||||
|
||||
@ -430,8 +429,8 @@ the one used in the original script.
|
||||
|
||||
In a restarted run, if the *reset* keyword is set to *yes*, and the
|
||||
run ends in this script (as opposed to just writing more restart
|
||||
files, parameters will be restored to the values they were at the
|
||||
beginning of the run command in the restart script. Which as
|
||||
files), parameters will be restored to the values they were at the
|
||||
beginning of the run command in the restart script, which as
|
||||
explained above, may or may not be the original values of the
|
||||
parameters. Again, an exception is if the *atom* keyword is being
|
||||
used with *reset yes* (in all the runs). In that case, the original
|
||||
|
||||
@ -6,7 +6,7 @@ fix adapt/fep command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID adapt/fep N attribute args ... keyword value ...
|
||||
|
||||
@ -19,7 +19,7 @@ Syntax
|
||||
.. parsed-literal::
|
||||
|
||||
*pair* args = pstyle pparam I J v_name
|
||||
pstyle = pair style name, e.g. lj/cut
|
||||
pstyle = pair style name (e.g., lj/cut)
|
||||
pparam = parameter to adapt over time
|
||||
I,J = type pair(s) to set parameter for
|
||||
v_name = variable with name that calculates value of pparam
|
||||
@ -66,12 +66,12 @@ Change or adapt one or more specific simulation attributes or settings
|
||||
over time as a simulation runs.
|
||||
|
||||
This is an enhanced version of the :doc:`fix adapt <fix_adapt>` command
|
||||
with two differences,
|
||||
with two differences:
|
||||
|
||||
* It is possible to modify the charges of chosen atom types only,
|
||||
instead of scaling all the charges in the system.
|
||||
* There is a new option *after* for better compatibility with "fix
|
||||
ave/time".
|
||||
* There is a new option *after* for better compatibility with
|
||||
:doc:`fix ave/time <fix_ave_time>`.
|
||||
|
||||
This version is suited for free energy calculations using
|
||||
:doc:`compute ti <compute_ti>` or :doc:`compute fep <compute_fep>`.
|
||||
@ -92,8 +92,8 @@ If the *scale* keyword is set to *no*, then the value the parameter is
|
||||
set to will be whatever the variable generates. If the *scale*
|
||||
keyword is set to *yes*, then the value of the altered parameter will
|
||||
be the initial value of that parameter multiplied by whatever the
|
||||
variable generates. I.e. the variable is now a "scale factor" applied
|
||||
in (presumably) a time-varying fashion to the parameter. Internally,
|
||||
variable generates (i.e., the variable is now a "scale factor" applied
|
||||
in (presumably) a time-varying fashion to the parameter). Internally,
|
||||
the parameters themselves are actually altered; make sure you use the
|
||||
*reset yes* option if you want the parameters to be restored to their
|
||||
initial values after the run.
|
||||
@ -115,7 +115,7 @@ overrides the parameters.
|
||||
|
||||
The *pstyle* argument is the name of the pair style. If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used, *pstyle* should be
|
||||
a sub-style name. For example, *pstyle* could be specified as "soft"
|
||||
or "lubricate". The *pparam* argument is the name of the parameter to
|
||||
or "lubricate." The *pparam* argument is the name of the parameter to
|
||||
change. This is the current list of pair styles and parameters that
|
||||
can be varied by this fix. See the doc pages for individual pair
|
||||
styles and their energy formulas for the meaning of these parameters:
|
||||
@ -188,7 +188,7 @@ styles and their energy formulas for the meaning of these parameters:
|
||||
|
||||
Note that for many of the potentials, the parameter that can be varied
|
||||
is effectively a prefactor on the entire energy expression for the
|
||||
potential, e.g. the lj/cut epsilon. The parameters listed as "scale"
|
||||
potential (e.g., the lj/cut epsilon). The parameters listed as "scale"
|
||||
are exactly that, since the energy expression for the
|
||||
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled
|
||||
prefactor in its formula. To apply an effective prefactor to some
|
||||
@ -204,23 +204,23 @@ specified, but are ignored.
|
||||
|
||||
Similar to the :doc:`pair_coeff command <pair_coeff>`, I and J can be
|
||||
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. :math:`I \le J` is required. LAMMPS sets
|
||||
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 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 = 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 1 to n
|
||||
(inclusive). A trailing asterisk means all types from n to N
|
||||
the :math:`I,J` arguments to set the coefficients for multiple pairs of atom
|
||||
types. This 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 from 1 to :math:`N`. A leading asterisk means all types from 1 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). Note that only type pairs with I <= J are considered; if
|
||||
asterisks imply type pairs where J < I, they are ignored.
|
||||
(inclusive). Note that only type pairs with :math:`I \le J` are considered; if
|
||||
asterisks imply type pairs where :math:`J < I`, they are ignored.
|
||||
|
||||
IMPROTANT NOTE: 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 I,J arguments that correspond
|
||||
to type pair values defined (via the :doc:`pair_coeff <pair_coeff>`
|
||||
command) for that sub-style.
|
||||
IMPROTANT NOTE: 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
|
||||
:math:`I,J` arguments that correspond to type pair values defined (via the
|
||||
:doc:`pair_coeff <pair_coeff>` command) for that sub-style.
|
||||
|
||||
The *v_name* argument for keyword *pair* is the name of an
|
||||
:doc:`equal-style variable <variable>` which will be evaluated each time
|
||||
@ -232,8 +232,7 @@ simulation box parameters and timestep and elapsed time. Thus it is
|
||||
easy to specify parameters that change as a function of time or span
|
||||
consecutive runs in a continuous fashion. For the latter, see the
|
||||
*start* and *stop* keywords of the :doc:`run <run>` command and the
|
||||
*elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for
|
||||
details.
|
||||
*elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for details.
|
||||
|
||||
For example, these commands would change the prefactor coefficient of
|
||||
the :doc:`pair_style soft <pair_soft>` potential from 10.0 to 30.0 in a
|
||||
@ -247,7 +246,7 @@ linear fashion over the course of a simulation:
|
||||
----------
|
||||
|
||||
The *kspace* keyword used the specified variable as a scale factor on
|
||||
the energy, forces, virial calculated by whatever K-Space solver is
|
||||
the energy, forces, virial calculated by whatever :math:`k`-space solver is
|
||||
defined by the :doc:`kspace_style <kspace_style>` command. If the
|
||||
variable has a value of 1.0, then the solver is unaltered.
|
||||
|
||||
@ -263,8 +262,8 @@ current list of atom parameters that can be varied by this fix:
|
||||
* charge = charge on particle
|
||||
* diameter = diameter of particle
|
||||
|
||||
The *I* argument indicates which atom types are affected. A wild-card
|
||||
asterisk can be used in place of or in conjunction with the I argument
|
||||
The :math:`I` argument indicates which atom types are affected. A wild-card
|
||||
asterisk can be used in place of or in conjunction with the :math:`I` argument
|
||||
to set the coefficients for multiple atom types.
|
||||
|
||||
The *v_name* argument of the *atom* keyword is the name of an
|
||||
@ -276,9 +275,9 @@ variables. The new value is assigned to the corresponding attribute
|
||||
for all atoms in the fix group.
|
||||
|
||||
If the atom parameter is *diameter* and per-atom density and per-atom
|
||||
mass are defined for particles (e.g. :doc:`atom_style granular <atom_style>`), then the mass of each particle is also
|
||||
changed when the diameter changes (density is assumed to stay
|
||||
constant).
|
||||
mass are defined for particles (e.g., :doc:`atom_style granular <atom_style>`),
|
||||
then the mass of each particle is also changed when the diameter changes
|
||||
(density is assumed to stay constant).
|
||||
|
||||
For example, these commands would shrink the diameter of all granular
|
||||
particles in the "center" group from 1.0 to 0.1 in a linear fashion
|
||||
@ -297,11 +296,14 @@ parameters on the outermost rRESPA level.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
@ -310,7 +312,8 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute fep <compute_fep>`, :doc:`fix adapt <fix_adapt>`, :doc:`compute ti <compute_ti>`, :doc:`pair_style \*/soft <pair_fep_soft>`
|
||||
:doc:`compute fep <compute_fep>`, :doc:`fix adapt <fix_adapt>`,
|
||||
:doc:`compute ti <compute_ti>`, :doc:`pair_style \*/soft <pair_fep_soft>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -6,7 +6,7 @@ fix addforce command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID addforce fx fy fz keyword value ...
|
||||
|
||||
@ -24,7 +24,7 @@ Syntax
|
||||
.. parsed-literal::
|
||||
|
||||
*every* value = Nevery
|
||||
Nevery = add force every this many timesteps
|
||||
Nevery = add force every this many time steps
|
||||
*region* value = region-ID
|
||||
region-ID = ID of region atoms must be in to have added force
|
||||
*energy* value = v_name
|
||||
@ -42,31 +42,31 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Add fx,fy,fz to the corresponding component of force for each atom in
|
||||
the group. This command can be used to give an additional push to
|
||||
Add :math:`(f_x,f_y,f_z)` to the corresponding component of the force for each
|
||||
atom in the group. This command can be used to give an additional push to
|
||||
atoms in a simulation, such as for a simulation of Poiseuille flow in
|
||||
a channel.
|
||||
|
||||
Any of the 3 quantities defining the force components can be specified
|
||||
as an equal-style or atom-style :doc:`variable <variable>`, namely *fx*,
|
||||
*fy*, *fz*\ . If the value is a variable, it should be specified as
|
||||
v_name, where name is the variable name. In this case, the variable
|
||||
will be evaluated each timestep, and its value(s) used to determine
|
||||
the force component.
|
||||
Any of the three quantities defining the force components, namely :math:`f_x`,
|
||||
:math:`f_y`, and :math:`f_z`, can be specified as an equal-style or atom-style
|
||||
:doc:`variable <variable>`. If the value is a variable, it should be specified
|
||||
as v_name, where name is the variable name. In this case, the variable
|
||||
will be evaluated each time step, and its value(s) will be used to determine
|
||||
the force component(s).
|
||||
|
||||
Equal-style variables can specify formulas with various mathematical
|
||||
functions, and include :doc:`thermo_style <thermo_style>` command
|
||||
keywords for the simulation box parameters and timestep and elapsed
|
||||
time. Thus it is easy to specify a time-dependent force field.
|
||||
functions and include :doc:`thermo_style <thermo_style>` command
|
||||
keywords for the simulation box parameters, time step, and elapsed time.
|
||||
Thus, it is easy to specify a time-dependent force field.
|
||||
|
||||
Atom-style variables can specify the same formulas as equal-style
|
||||
variables but can also include per-atom values, such as atom
|
||||
coordinates. Thus it is easy to specify a spatially-dependent force
|
||||
coordinates. Thus, it is easy to specify a spatially-dependent force
|
||||
field with optional time-dependence as well.
|
||||
|
||||
If the *every* keyword is used, the *Nevery* setting determines how
|
||||
often the forces are applied. The default value is 1, for every
|
||||
timestep.
|
||||
time step.
|
||||
|
||||
If the *region* keyword is used, the atom must also be in the
|
||||
specified geometric :doc:`region <region>` in order to have force added
|
||||
@ -83,10 +83,14 @@ potential energy to formulate a self-consistent minimization problem
|
||||
(see below).
|
||||
|
||||
The *energy* keyword is not allowed if the added force is a constant
|
||||
vector F = (fx,fy,fz), with all components defined as numeric
|
||||
vector :math:`\vec F = (f_x,f_y,f_z)`, with all components defined as numeric
|
||||
constants and not as variables. This is because LAMMPS can compute
|
||||
the energy for each atom directly as E = -x dot F = -(x\*fx + y\*fy +
|
||||
z\*fz), so that -Grad(E) = F.
|
||||
the energy for each atom directly as
|
||||
|
||||
.. math::
|
||||
E = -\vec x \cdot \vec F = -(x f_x + y f_y + z f_z),
|
||||
|
||||
so that :math:`-\vec\nabla E = \vec F`.
|
||||
|
||||
The *energy* keyword is optional if the added force is defined with
|
||||
one or more variables, and if you are performing dynamics via the
|
||||
@ -98,16 +102,16 @@ one or more variables, and you are performing energy minimization via
|
||||
the "minimize" command. The keyword specifies the name of an
|
||||
atom-style :doc:`variable <variable>` which is used to compute the
|
||||
energy of each atom as function of its position. Like variables used
|
||||
for *fx*, *fy*, *fz*, the energy variable is specified as v_name,
|
||||
where name is the variable name.
|
||||
for :math:`f_x`, :math:`f_y`, :math:`f_z`, the energy variable is specified as
|
||||
v_name, where name is the variable name.
|
||||
|
||||
Note that when the *energy* keyword is used during an energy
|
||||
minimization, you must insure that the formula defined for the
|
||||
atom-style :doc:`variable <variable>` is consistent with the force
|
||||
variable formulas, i.e. that -Grad(E) = F. For example, if the force
|
||||
were a spring-like F = kx, then the energy formula should be E =
|
||||
-0.5kx\^2. If you don't do this correctly, the minimization will not
|
||||
converge properly.
|
||||
variable formulas (i.e., that :math:`-\vec\nabla E = \vec F`).
|
||||
For example, if the force were a spring-like, :math:`\vec F = -k\vec x`, then
|
||||
the energy formula should be :math:`E = \frac12 kx^2`. If you do not do this
|
||||
correctly, the minimization will not converge properly.
|
||||
|
||||
----------
|
||||
|
||||
@ -128,8 +132,8 @@ the global potential energy of the system as part of
|
||||
this fix is :doc:`fix_modify energy no <fix_modify>`. Note that this
|
||||
energy is a fictitious quantity but is needed so that the
|
||||
:doc:`minimize <minimize>` command can include the forces added by
|
||||
this fix in a consistent manner. I.e. there is a decrease in
|
||||
potential energy when atoms move in the direction of the added force.
|
||||
this fix in a consistent manner (i.e., there is a decrease in
|
||||
potential energy when atoms move in the direction of the added force).
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *virial* option is supported by
|
||||
this fix to add the contribution due to the added forces on atoms to
|
||||
@ -144,12 +148,12 @@ fix. This allows to set at which level of the :doc:`r-RESPA
|
||||
<run_style>` integrator the fix is adding its forces. Default is the
|
||||
outermost level.
|
||||
|
||||
This fix computes a global scalar and a global 3-vector of forces,
|
||||
This fix computes a global scalar and a global three-vector of forces,
|
||||
which can be accessed by various :doc:`output commands
|
||||
<Howto_output>`. The scalar is the potential energy discussed above.
|
||||
The vector is the total force on the group of atoms before the forces
|
||||
on individual atoms are changed by the fix. The scalar and vector
|
||||
values calculated by this fix are "extensive".
|
||||
values calculated by this fix are "extensive."
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
@ -157,7 +161,7 @@ the :doc:`run <run>` command.
|
||||
The forces due to this fix are imposed during an energy minimization,
|
||||
invoked by the :doc:`minimize <minimize>` command. You should not
|
||||
specify force components with a variable that has time-dependence for
|
||||
use with a minimizer, since the minimizer increments the timestep as
|
||||
use with a minimizer, since the minimizer increments the time step as
|
||||
the iteration count during the minimization.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -6,7 +6,7 @@ fix addtorque command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID addtorque Tx Ty Tz
|
||||
|
||||
@ -30,13 +30,13 @@ Add a set of forces to each atom in
|
||||
the group such that:
|
||||
|
||||
* the components of the total torque applied on the group (around its
|
||||
center of mass) are Tx,Ty,Tz
|
||||
center of mass) are :math:`T_x`, :math:`T_y`, and :math:`T_z`
|
||||
* the group would move as a rigid body in the absence of other
|
||||
forces.
|
||||
|
||||
This command can be used to drive a group of atoms into rotation.
|
||||
|
||||
Any of the 3 quantities defining the torque components can be specified
|
||||
Any of the three quantities defining the torque components can be specified
|
||||
as an equal-style :doc:`variable <variable>`, namely *Tx*,
|
||||
*Ty*, *Tz*\ . If the value is a variable, it should be specified as
|
||||
v_name, where name is the variable name. In this case, the variable
|
||||
@ -53,7 +53,8 @@ time. Thus it is easy to specify a time-dependent torque.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *energy* option is supported by
|
||||
this fix to add the potential "energy" inferred by the added torques
|
||||
@ -62,8 +63,8 @@ to the global potential energy of the system as part of
|
||||
this fix is :doc:`fix_modify energy no <fix_modify>`. Note that this
|
||||
is a fictitious quantity but is needed so that the :doc:`minimize
|
||||
<minimize>` command can include the forces added by this fix in a
|
||||
consistent manner. I.e. there is a decrease in potential energy when
|
||||
atoms move in the direction of the added forces.
|
||||
consistent manner (i.e., there is a decrease in potential energy when
|
||||
atoms move in the direction of the added forces).
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *respa* option is supported by
|
||||
this fix. This allows to set at which level of the :doc:`r-RESPA <run_style>`
|
||||
@ -74,7 +75,7 @@ accessed by various :doc:`output commands <Howto_output>`. The scalar
|
||||
is the potential energy discussed above. The vector is the total
|
||||
torque on the group of atoms before the forces on individual atoms are
|
||||
changed by the fix. The scalar and vector values calculated by this
|
||||
fix are "extensive".
|
||||
fix are "extensive."
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
@ -99,9 +100,9 @@ invoked by the :doc:`minimize <minimize>` command.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the EXTRA-FIX package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS was
|
||||
built with that package. See the :doc:`Build package <Build_package>` page for
|
||||
more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -6,7 +6,7 @@ fix amoeba/bitorsion command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ameoba/bitorsion filename
|
||||
|
||||
@ -55,8 +55,8 @@ should have a line like this in its header section:
|
||||
|
||||
N bitorsions
|
||||
|
||||
where N is the number of bitorsion 5-body interactions. It should
|
||||
also have a section in the body of the data file like this with N
|
||||
where :math:`N` is the number of bitorsion 5-body interactions. It should
|
||||
also have a section in the body of the data file like this with :math:`N`
|
||||
lines:
|
||||
|
||||
.. parsed-literal::
|
||||
@ -68,7 +68,7 @@ lines:
|
||||
[...]
|
||||
N 3 314 315 317 318 330
|
||||
|
||||
The first column is an index from 1 to N to enumerate the bitorsion
|
||||
The first column is an index from 1 to :math:`N` to enumerate the bitorsion
|
||||
5-atom tuples; it is ignored by LAMMPS. The second column is the
|
||||
*type* of the interaction; it is an index into the bitorsion force
|
||||
field file. The remaining 5 columns are the atom IDs of the atoms in
|
||||
@ -124,7 +124,7 @@ setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar is the potential
|
||||
energy discussed above. The scalar value calculated by this fix is
|
||||
"extensive".
|
||||
"extensive."
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
|
||||
@ -6,7 +6,7 @@ fix amoeba/pitorsion command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ameoba/pitorsion
|
||||
|
||||
@ -29,14 +29,16 @@ Description
|
||||
This command enables 6-body pitorsion interactions to be added to
|
||||
simulations which use the AMOEBA and HIPPO force fields. It matches
|
||||
how the Tinker MD code computes its pitorsion interactions for the
|
||||
AMOEBA and HIPPO force fields. See the :doc:`Howto amoeba
|
||||
<Howto_amoeba>` doc page for more information about the implementation
|
||||
of AMOEBA and HIPPO in LAMMPS.
|
||||
AMOEBA and HIPPO force fields. See the :doc:`Howto amoeba <Howto_amoeba>`
|
||||
doc page for more information about the implementation of AMOEBA and HIPPO in
|
||||
LAMMPS.
|
||||
|
||||
Pitorsion interactions add additional potential energy contributions
|
||||
to 6-tuples of atoms IJKLMN which have a bond between atoms K and L,
|
||||
where both K and L are additionally bonded to exactly two other atoms.
|
||||
Namely K is also bonded to I and J. And L is also bonded to M and N.
|
||||
to 6-tuples of atoms :math:`IJKLMN` that have a bond between atoms
|
||||
:math:`K` and :math:`L`, where both :math:`K` and :math:`L` are additionally
|
||||
bonded to exactly two other atoms. Namely, :math:`K` is also bonded to
|
||||
:math:`I` and :math:`J`, and :math:`L` is also bonded to :math:`M` and
|
||||
:math:`N`.
|
||||
|
||||
The examples/amoeba directory has a sample input script and data file
|
||||
for ubiquitin, which illustrates use of the fix amoeba/pitorsion
|
||||
@ -47,7 +49,7 @@ file that contains a listing of pitorsion interactions.
|
||||
|
||||
The data file read by the :doc:`read_data <read_data>` command must
|
||||
contain the topology of all the pitorsion interactions, similar to the
|
||||
topology data for bonds, angles, dihedrals, etc. Specifically it
|
||||
topology data for bonds, angles, dihedrals, etc. Specifically, it
|
||||
should have two lines like these in its header section:
|
||||
|
||||
.. parsed-literal::
|
||||
@ -55,9 +57,9 @@ should have two lines like these in its header section:
|
||||
M pitorsion types
|
||||
N pitorsions
|
||||
|
||||
where N is the number of pitorsion 5-body interactions and M is the
|
||||
number of pitorsion types. It should also have two sections in the body
|
||||
of the data file like these with M and N lines each:
|
||||
where :math:`N` is the number of pitorsion 5-body interactions and :math:`M` is
|
||||
the number of pitorsion types. It should also have two sections in the body
|
||||
of the data file like these with :math:`M` and :math:`N` lines each:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -77,11 +79,11 @@ of the data file like these with M and N lines each:
|
||||
[...]
|
||||
N 3 314 315 317 318 330
|
||||
|
||||
For PiTorsion Coeffs, the first column is an index from 1 to M to
|
||||
For PiTorsion Coeffs, the first column is an index from 1 to :math:`M` to
|
||||
enumerate the pitorsion types. The second column is the single
|
||||
prefactor coefficient needed for each type.
|
||||
|
||||
For PiTorsions, the first column is an index from 1 to N to enumerate
|
||||
For PiTorsions, the first column is an index from 1 to :math:`N` to enumerate
|
||||
the pitorsion 5-atom tuples; it is ignored by LAMMPS. The second
|
||||
column is the "type" of the interaction; it is an index into the
|
||||
PiTorsion Coeffs. The remaining 5 columns are the atom IDs of the
|
||||
@ -90,8 +92,8 @@ atoms in the two 4-atom dihedrals that overlap to create the pitorsion
|
||||
|
||||
Note that the *pitorsion types* and *pitorsions* and *PiTorsion
|
||||
Coeffs* and *PiTorsions* keywords for the header and body sections of
|
||||
the data file match those specified in the :doc:`read_data
|
||||
<read_data>` command following the data file name.
|
||||
the data file match those specified in the :doc:`read_data <read_data>`
|
||||
command following the data file name.
|
||||
|
||||
The data file should be generated by using the
|
||||
tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS
|
||||
@ -136,7 +138,7 @@ setting for this fix is :doc:`fix_modify virial yes <fix_modify>`.
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar is the potential
|
||||
energy discussed above. The scalar value calculated by this fix is
|
||||
"extensive".
|
||||
"extensive."
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
@ -161,8 +163,8 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
To function as expected this fix command must be issued *before* a
|
||||
:doc:`read_data <read_data>` command but *after* a :doc:`read_restart
|
||||
<read_restart>` command.
|
||||
:doc:`read_data <read_data>` command but *after* a
|
||||
:doc:`read_restart <read_restart>` command.
|
||||
|
||||
This fix can only be used if LAMMPS was built with the AMOEBA package.
|
||||
See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
@ -6,7 +6,7 @@ fix append/atoms command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID append/atoms face ... keyword value ...
|
||||
|
||||
@ -66,7 +66,7 @@ specific basis atoms as they are created. See the
|
||||
defined for the unit cell of the lattice. By default, all created
|
||||
atoms are assigned type = 1 unless this keyword specifies differently.
|
||||
|
||||
The *size* keyword defines the size in z of the chunk of material to
|
||||
The *size* keyword defines the size in :math:`z` of the chunk of material to
|
||||
be added.
|
||||
|
||||
The *random* keyword will give the atoms random displacements around
|
||||
@ -79,7 +79,8 @@ measured from zhi and is set with the *extent* argument.
|
||||
The *units* keyword determines the meaning of the distance units used
|
||||
to define a wall position, but only when a numeric constant is used.
|
||||
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.
|
||||
The :doc:`lattice <lattice>` command must have been previously used to
|
||||
define the lattice spacings.
|
||||
@ -89,17 +90,21 @@ define the lattice spacings.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`. None of the
|
||||
:doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix style is part of the SHOCK 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.
|
||||
|
||||
The boundary on which atoms are added with append/atoms must be
|
||||
shrink/minimum. The opposite boundary may be any boundary type other
|
||||
|
||||
@ -6,7 +6,7 @@ fix atc command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix <fixID> <group> atc <type> <parameter_file>
|
||||
|
||||
@ -40,8 +40,8 @@ This fix is the beginning to creating a coupled FE/MD simulation and/or
|
||||
an on-the-fly estimation of continuum fields. The coupled versions of
|
||||
this fix do Verlet integration and the post-processing does not. After
|
||||
instantiating this fix, several other fix_modify commands will be
|
||||
needed to set up the problem, e.g. define the finite element mesh and
|
||||
prescribe initial and boundary conditions.
|
||||
needed to set up the problem (i.e., define the finite element mesh and
|
||||
prescribe initial and boundary conditions).
|
||||
|
||||
.. image:: JPG/atc_nanotube.jpg
|
||||
:align: center
|
||||
@ -135,7 +135,7 @@ fix are listed below.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar is the energy
|
||||
discussed in the previous paragraph. The scalar value is "extensive".
|
||||
discussed in the previous paragraph. The scalar value is "extensive."
|
||||
|
||||
No parameter of this fix can be used with the
|
||||
*start/stop* keywords of the :doc:`run <run>` command. This fix is not
|
||||
@ -147,7 +147,7 @@ Restrictions
|
||||
Thermal and two_temperature (coupling) types use a Verlet
|
||||
time-integration algorithm. The hardy type does not contain its own
|
||||
time-integrator and must be used with a separate fix that does contain
|
||||
one, e.g. nve, nvt, etc. In addition, currently:
|
||||
one (e.g., nve, nvt). In addition, currently:
|
||||
|
||||
* the coupling is restricted to thermal physics
|
||||
* the FE computations are done in serial on each processor.
|
||||
@ -159,8 +159,8 @@ Related commands
|
||||
|
||||
After specifying this fix in your input script, several
|
||||
:doc:`fix_modify AtC <fix_modify>` commands are used to setup the
|
||||
problem, e.g. define the finite element mesh and prescribe initial and
|
||||
boundary conditions. Each of these options has its own doc page.
|
||||
problem (e.g., define the finite element mesh and prescribe initial and
|
||||
boundary conditions). Each of these options has its own doc page.
|
||||
|
||||
*fix_modify* commands for setup:
|
||||
|
||||
@ -311,6 +311,6 @@ and Computation (2011), 7:1736.
|
||||
as a field variable from molecular dynamics simulations." Journal of
|
||||
Chemical Physics (2013), 139:054115.
|
||||
|
||||
Please refer to the standard finite element (FE) texts, e.g. T.J.R
|
||||
Hughes " The finite element method ", Dover 2003, for the basics of FE
|
||||
simulation.
|
||||
Please refer to the standard finite element (FE) texts (e.g., T.J.R.
|
||||
Hughes, *The Finite Element Method,* Dover 2003) for the basics of FE
|
||||
simulations.
|
||||
|
||||
@ -6,7 +6,7 @@ fix atom/swap command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID atom/swap N X seed T keyword values ...
|
||||
|
||||
@ -45,10 +45,10 @@ Description
|
||||
"""""""""""
|
||||
|
||||
This fix performs Monte Carlo swaps of atoms of one given atom type
|
||||
with atoms of the other given atom types. The specified T is used in
|
||||
with atoms of the other given atom types. The specified :math:`T` is used in
|
||||
the Metropolis criterion dictating swap probabilities.
|
||||
|
||||
Perform X swaps of atoms of one type with atoms of another type
|
||||
Perform :math:`X` swaps of atoms of one type with atoms of another type
|
||||
according to a Monte Carlo probability. Swap candidates must be in the
|
||||
fix group, must be in the region (if specified), and must be of one of
|
||||
the listed types. Swaps are attempted between candidates that are
|
||||
@ -57,7 +57,7 @@ atoms. Swaps are not attempted between atoms of the same type since
|
||||
nothing would happen.
|
||||
|
||||
All atoms in the simulation domain can be moved using regular time
|
||||
integration displacements, e.g. via :doc:`fix nvt <fix_nh>`, resulting
|
||||
integration displacements (e.g., via :doc:`fix nvt <fix_nh>`), resulting
|
||||
in a hybrid MC+MD simulation. A smaller-than-usual timestep size may
|
||||
be needed when running such a hybrid simulation, especially if the
|
||||
swapped atoms are not well equilibrated.
|
||||
@ -83,9 +83,8 @@ canonical ensemble, the composition of the system can change. Note
|
||||
that when using *semi-grand*, atoms in the fix group whose type is not
|
||||
listed in the *types* keyword are ineligible for attempted
|
||||
conversion. An attempt is made to switch the selected atom (if
|
||||
eligible) to one of the other listed types with equal
|
||||
probability. Acceptance of each attempt depends upon the Metropolis
|
||||
criterion.
|
||||
eligible) to one of the other listed types with equal probability.
|
||||
Acceptance of each attempt depends upon the Metropolis criterion.
|
||||
|
||||
The *mu* keyword allows users to specify chemical potentials. This is
|
||||
required and allowed only when using *semi-grand*\ . All chemical
|
||||
@ -97,8 +96,8 @@ amount will have no effect on the simulation.
|
||||
|
||||
This command may optionally use the *region* keyword to define swap
|
||||
volume. The specified region must have been previously defined with a
|
||||
:doc:`region <region>` command. It must be defined with side = *in*\
|
||||
. Swap attempts occur only between atoms that are both within the
|
||||
:doc:`region <region>` command. It must be defined with side = *in*\ .
|
||||
Swap attempts occur only between atoms that are both within the
|
||||
specified region. Swaps are not otherwise attempted.
|
||||
|
||||
You should ensure you do not swap atoms belonging to a molecule, or
|
||||
@ -123,7 +122,7 @@ Since this fix computes total potential energies before and after
|
||||
proposed swaps, so even complicated potential energy calculations are
|
||||
OK, including the following:
|
||||
|
||||
* long-range electrostatics (kspace)
|
||||
* long-range electrostatics (:math:`k`-space)
|
||||
* many body pair styles
|
||||
* hybrid pair styles
|
||||
* eam pair styles
|
||||
@ -137,7 +136,7 @@ include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`,
|
||||
<fix_temp_berendsen>`, :doc:`temp/rescale <fix_temp_rescale>`, and
|
||||
:doc:`wall fixes <fix_wall>`. For that energy to be included in the
|
||||
total potential energy of the system (the quantity used when
|
||||
performing GCMC moves), you MUST enable the :doc:`fix_modify
|
||||
performing GCMC moves), you **must** enable the :doc:`fix_modify
|
||||
<fix_modify>` *energy* option for that fix. The doc pages for
|
||||
individual :doc:`fix <fix>` commands specify if this should be done.
|
||||
|
||||
@ -147,7 +146,7 @@ Restart, fix_modify, output, run start/stop, minimize info
|
||||
This fix writes the state of the fix to :doc:`binary restart files
|
||||
<restart>`. This includes information about the random number
|
||||
generator seed, the next timestep for MC exchanges, the number of
|
||||
exchange attempts and successes etc. See the :doc:`read_restart
|
||||
exchange attempts and successes, etc. See the :doc:`read_restart
|
||||
<read_restart>` command for info on how to re-specify a fix in an
|
||||
input script that reads a restart file, so that the operation of the
|
||||
fix continues in an uninterrupted fashion.
|
||||
@ -168,7 +167,7 @@ the following global cumulative quantities:
|
||||
* 1 = swap attempts
|
||||
* 2 = swap accepts
|
||||
|
||||
The vector values calculated by this fix are "extensive".
|
||||
The vector values calculated by this fix are "extensive."
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
|
||||
@ -6,7 +6,7 @@ fix ave/atom command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ave/atom Nevery Nrepeat Nfreq value1 value2 ...
|
||||
|
||||
@ -15,8 +15,8 @@ Syntax
|
||||
* Nevery = use input values every this many timesteps
|
||||
* Nrepeat = # of times to use input values for calculating averages
|
||||
* Nfreq = calculate averages every this many timesteps
|
||||
one or more input values can be listed
|
||||
* value = x, y, z, vx, vy, vz, fx, fy, fz, c_ID, c_ID[i], f_ID, f_ID[i], v_name
|
||||
* one or more input values can be listed
|
||||
* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[i], f_ID, f_ID[i], v_name
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -41,7 +41,9 @@ Description
|
||||
|
||||
Use one or more per-atom vectors as inputs every few timesteps, and
|
||||
average them atom by atom over longer timescales. The resulting
|
||||
per-atom averages can be used by other :doc:`output commands <Howto_output>` such as the :doc:`fix ave/chunk <fix_ave_chunk>` or :doc:`dump custom <dump>` commands.
|
||||
per-atom averages can be used by other :doc:`output commands <Howto_output>`
|
||||
such as the :doc:`fix ave/chunk <fix_ave_chunk>` or :doc:`dump custom <dump>`
|
||||
commands.
|
||||
|
||||
The group specified with the command means only atoms within the group
|
||||
have their averages computed. Results are set to 0.0 for atoms not in
|
||||
@ -53,7 +55,8 @@ component) or can be the result of a :doc:`compute <compute>` or
|
||||
:doc:`variable <variable>`. In the latter cases, the compute, fix, or
|
||||
variable must produce a per-atom vector, not a global quantity or
|
||||
local quantity. If you wish to time-average global quantities from a
|
||||
compute, fix, or variable, then see the :doc:`fix ave/time <fix_ave_time>` command.
|
||||
compute, fix, or variable, then see the :doc:`fix ave/time <fix_ave_time>`
|
||||
command.
|
||||
|
||||
Each per-atom value of each input vector is averaged independently.
|
||||
|
||||
@ -66,18 +69,18 @@ per-atom vectors.
|
||||
|
||||
Note that for values from a compute or fix, the bracketed index I can
|
||||
be specified using a wildcard asterisk with the index to 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 the
|
||||
specify multiple values. This takes the form "\*" or "\*n" 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 asterisk
|
||||
with no numeric values means all indices from 1 to N. A leading
|
||||
with no numeric values means all indices from 1 to :math:`N`. A leading
|
||||
asterisk means all indices from 1 to n (inclusive). A trailing
|
||||
asterisk means all indices from n to N (inclusive). A middle asterisk
|
||||
asterisk means all indices from m to :math:`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
|
||||
had been listed one by one. E.g. these 2 fix ave/atom commands are
|
||||
had been listed one by one. For example, these two fix ave/atom commands are
|
||||
equivalent, since the :doc:`compute stress/atom <compute_stress_atom>`
|
||||
command creates a per-atom array with 6 columns:
|
||||
command creates a per-atom array with six columns:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -89,61 +92,66 @@ command creates a per-atom array with 6 columns:
|
||||
|
||||
----------
|
||||
|
||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
||||
timesteps the input values will be used in order to contribute to the
|
||||
average. The final averaged quantities are generated on timesteps
|
||||
that are a multiple of *Nfreq*\ . The average is over *Nrepeat*
|
||||
quantities, computed in the preceding portion of the simulation every
|
||||
*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and
|
||||
*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
||||
contributing to the average value cannot overlap,
|
||||
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
||||
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||
arguments specify on what timesteps the input values will be used in order to
|
||||
contribute to the average. The final averaged quantities are generated on
|
||||
timesteps that are a multiple of :math:`N_\text{freq}`\ . The average is over
|
||||
:math:`N_\text{repeat}` quantities, computed in the preceding portion of the
|
||||
simulation every :math:`N_\text{every}` timesteps. :math:`N_\text{freq}` must
|
||||
be a multiple of :math:`N_\text{every}` and :math:`N_\text{every}` must be
|
||||
non-zero even if :math:`N_\text{repeat}` is 1. Also, the timesteps
|
||||
contributing to the average value cannot overlap; that is,
|
||||
:math:`N_\text{repeat} N_\text{every}` cannot exceed :math:`N_\text{freq}`.
|
||||
|
||||
For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on
|
||||
timesteps 90,92,94,96,98,100 will be used to compute the final average
|
||||
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
||||
timestep 200, etc.
|
||||
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||
:math:`N_\text{freq}=100`, then values on timesteps 90, 92, 94, 96, 98, and 100
|
||||
will be used to compute the final average on time step 100. Similarly for
|
||||
timesteps 190, 192, 194, 196, 198, and 200 on time step 200, etc.
|
||||
|
||||
----------
|
||||
|
||||
The atom attribute values (x,y,z,vx,vy,vz,fx,fy,fz) are
|
||||
self-explanatory. Note that other atom attributes can be used as
|
||||
inputs to this fix by using the :doc:`compute property/atom <compute_property_atom>` command and then specifying
|
||||
an input value from that compute.
|
||||
The atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and
|
||||
*fz*) are self-explanatory. Note that other atom attributes can be used as
|
||||
inputs to this fix by using the
|
||||
:doc:`compute property/atom <compute_property_atom>` command and then
|
||||
specifying an input value from that compute.
|
||||
|
||||
.. note::
|
||||
|
||||
The x,y,z attributes are values that are re-wrapped inside the
|
||||
periodic box whenever an atom crosses a periodic boundary. Thus if
|
||||
you time average an atom that spends half its time on either side of
|
||||
The *x*\ , *y*\ , and *z* attributes are values that are re-wrapped inside
|
||||
the periodic box whenever an atom crosses a periodic boundary. Thus, if
|
||||
you time-average an atom that spends half of its time on either side of
|
||||
the periodic box, you will get a value in the middle of the box. If
|
||||
this is not what you want, consider averaging unwrapped coordinates,
|
||||
which can be provided by the :doc:`compute property/atom <compute_property_atom>` command via its xu,yu,zu
|
||||
attributes.
|
||||
which can be provided by the
|
||||
:doc:`compute property/atom <compute_property_atom>`
|
||||
command via its *xu*, *yu*, and *zu* attributes.
|
||||
|
||||
If a value begins with "c\_", a compute ID must follow which has been
|
||||
If a value begins with "c\_," a compute ID must follow which has been
|
||||
previously defined in the input script. If no bracketed term is
|
||||
appended, the per-atom vector calculated by the compute is used. If a
|
||||
bracketed term containing an index I is appended, the Ith column of
|
||||
the per-atom 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 I can
|
||||
be specified with a wildcard asterisk to effectively specify multiple
|
||||
values.
|
||||
bracketed term containing an index :math:`I` is appended, the
|
||||
:math:`I^\text{th}` column of the per-atom 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
|
||||
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||
multiple values.
|
||||
|
||||
If a value begins with "f\_", a fix ID must follow which has been
|
||||
previously defined in the input script. If no bracketed term is
|
||||
appended, the per-atom vector calculated by the fix is used. If a
|
||||
bracketed term containing an index I is appended, the Ith column of
|
||||
the per-atom array calculated by the fix is used. Note that some
|
||||
fixes only produce their values on certain timesteps, which must be
|
||||
compatible with *Nevery*, else an error will result. Users can also
|
||||
write code for their own fix 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 multiple
|
||||
values.
|
||||
If a value begins with "f\_," a fix ID must follow which has been previously
|
||||
defined in the input script. If no bracketed term is appended, the per-atom
|
||||
vector calculated by the fix is used. If a bracketed term containing an index
|
||||
:math:`I` is appended, the :math:`I^\text{th}` column of the per-atom array
|
||||
calculated by the fix is used. Note that some fixes only produce their values
|
||||
on certain timesteps, which must be compatible with :math:`N_\text{every}`,
|
||||
else an error will result. Users can also write code for their own fix styles
|
||||
and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how
|
||||
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||
multiple values.
|
||||
|
||||
If a value begins with "v\_", a variable name must follow which has
|
||||
been previously defined in the input script as an :doc:`atom-style variable <variable>` Variables of style *atom* can reference
|
||||
thermodynamic keywords, or invoke other computes, fixes, or variables
|
||||
If a value begins with "v\_," a variable name must follow which has
|
||||
been previously defined in the input script as an
|
||||
:doc:`atom-style variable <variable>`. Variables of style *atom* can reference
|
||||
thermodynamic keywords or invoke other computes, fixes, or variables
|
||||
when they are evaluated, so this is a very general means of generating
|
||||
per-atom quantities to time average.
|
||||
|
||||
@ -152,19 +160,22 @@ per-atom quantities to time average.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix. No global scalar or vector quantities are
|
||||
stored by this fix for access by various :doc:`output commands <Howto_output>`.
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`. None of the
|
||||
:doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||
No global scalar or vector quantities are stored by this fix for access by
|
||||
various :doc:`output commands <Howto_output>`.
|
||||
|
||||
This fix produces a per-atom vector or array which can be accessed by
|
||||
various :doc:`output commands <Howto_output>`. A vector is produced if
|
||||
only a single quantity is averaged by this fix. If two or more
|
||||
quantities are averaged, then an array of values is produced. The
|
||||
per-atom values can only be accessed on timesteps that are multiples
|
||||
of *Nfreq* since that is when averaging is performed.
|
||||
of :math:`N_\text{freq}` since that is when averaging is performed.
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
@ -173,7 +184,8 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute <compute>`, :doc:`fix ave/histo <fix_ave_histo>`, :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`compute <compute>`, :doc:`fix ave/histo <fix_ave_histo>`,
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`variable <variable>`,
|
||||
|
||||
Default
|
||||
|
||||
@ -6,7 +6,7 @@ fix ave/chunk command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ave/chunk Nevery Nrepeat Nfreq chunkID value1 value2 ... keyword args ...
|
||||
|
||||
@ -17,7 +17,7 @@ Syntax
|
||||
* Nfreq = calculate averages every this many timesteps
|
||||
* chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command
|
||||
* one or more input values can be listed
|
||||
* value = vx, vy, vz, fx, fy, fz, density/mass, density/number, mass, temp, c_ID, c_ID[I], f_ID, f_ID[I], v_name
|
||||
* value = *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *density/mass*, *density/number*, *mass*, *temp*, c_ID, c_ID[I], f_ID, f_ID[I], v_name
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -145,18 +145,18 @@ Note that for values from a compute or fix that produces a per-atom
|
||||
array (multiple values per atom), the bracketed index I can be
|
||||
specified using a wildcard asterisk with the index to 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 the
|
||||
or "m\*n". If :math:`N` = the size of the vector (for *mode* = scalar) 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 leading
|
||||
with no numeric values means all indices from 1 to :math:`N`. A leading
|
||||
asterisk means all indices from 1 to n (inclusive). A trailing
|
||||
asterisk means all indices from n to N (inclusive). A middle asterisk
|
||||
asterisk means all indices from m to :math:`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
|
||||
had been listed one by one. E.g. these 2 fix ave/chunk commands are
|
||||
had been listed one by one. For example, these two fix ave/chunk commands are
|
||||
equivalent, since the :doc:`compute property/atom
|
||||
<compute_property_atom>` command creates, in this case, a per-atom
|
||||
array with 3 columns:
|
||||
array with three columns:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -166,105 +166,109 @@ array with 3 columns:
|
||||
|
||||
.. note::
|
||||
|
||||
This fix works by creating an array of size *Nchunk* by Nvalues
|
||||
on each processor. *Nchunk* is the number of chunks which is defined
|
||||
by the :doc:`compute chunk/atom <compute_chunk_atom>` command.
|
||||
Nvalues is the number of input values specified. Each processor loops
|
||||
over its atoms, tallying its values to the appropriate chunk. Then
|
||||
the entire array is summed across all processors. This means that
|
||||
using a large number of chunks will incur an overhead in memory and
|
||||
This fix works by creating an array of size
|
||||
:math:`N_\text{chunk} \times N_\text{values}` on each processor.
|
||||
:math:`N_\text{chunk}` is the number of chunks, which is defined by the
|
||||
:doc:`compute chunk/atom <compute_chunk_atom>` command.
|
||||
:math:`N_\text{values}` is the number of input values specified.
|
||||
Each processor loops over its atoms, tallying its values to the appropriate
|
||||
chunk. Then the entire array is summed across all processors. This means
|
||||
that using a large number of chunks will incur an overhead in memory and
|
||||
computational cost (summing across processors), so be careful to
|
||||
define a reasonable number of chunks.
|
||||
|
||||
----------
|
||||
|
||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
||||
timesteps the input values will be accessed and contribute to the
|
||||
average. The final averaged quantities are generated on timesteps
|
||||
that are a multiples of *Nfreq*\ . The average is over *Nrepeat*
|
||||
quantities, computed in the preceding portion of the simulation every
|
||||
*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and
|
||||
*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
||||
contributing to the average value cannot overlap, i.e. Nrepeat\*Nevery
|
||||
can not exceed Nfreq.
|
||||
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||
arguments specify on what time steps the input values will be accessed and
|
||||
contribute to the average. The final averaged quantities are generated on time
|
||||
steps that are a multiples of :math:`N_\text{freq}`\ . The average is over
|
||||
:math:`N_\text{repeat}` quantities, computed in the preceding portion of the
|
||||
simulation every :math:`N_\text{every}` time steps. :math:`N_\text{freq}`
|
||||
must be a multiple of :math:`N_\text{every}` and :math:`N_\text{every}` must be
|
||||
non-zero even if :math:`N_\text{repeat} = 1`\ . Also, the time steps
|
||||
contributing to the average value cannot overlap (i.e.,
|
||||
:math:`N_\text{repeat}N_\text{every}` cannot exceed :math:`N_\text{freq}`).
|
||||
|
||||
For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on
|
||||
timesteps 90,92,94,96,98,100 will be used to compute the final average
|
||||
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
||||
timestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time
|
||||
averaging is done; values are simply generated on timesteps
|
||||
100,200,etc.
|
||||
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||
:math:`N_\text{freq}=100`, then values on
|
||||
time steps 90, 92, 94, 96, 98, 100 will be used to compute the final average
|
||||
on time step 100. Similarly for time steps 190, 192, 194, 196, 198, 200 on
|
||||
time step 200, etc. If :math:`N_\text{repeat}=1` and
|
||||
:math:`N_\text{freq} = 100`, then no time averaging is done; values are simply
|
||||
generated on time steps 100, 200, etc.
|
||||
|
||||
Each input value can also be averaged over the atoms in each chunk.
|
||||
The way the averaging is done across the *Nrepeat* timesteps to
|
||||
produce output on the *Nfreq* timesteps, and across multiple *Nfreq*
|
||||
outputs, is determined by the *norm* and *ave* keyword settings, as
|
||||
discussed below.
|
||||
The way the averaging is done across the :math:`N_\text{repeat}` time steps to
|
||||
produce output on the :math:`N_\text{freq}` time steps, and across multiple
|
||||
:math:`N_\text{freq}` outputs, is determined by the *norm* and *ave* keyword
|
||||
settings, as discussed below.
|
||||
|
||||
.. note::
|
||||
|
||||
To perform per-chunk averaging within a *Nfreq* time window, the
|
||||
number of chunks *Nchunk* defined by the :doc:`compute chunk/atom
|
||||
<compute_chunk_atom>` command must remain constant. If the *ave*
|
||||
keyword is set to *running* or *window* then *Nchunk* must remain
|
||||
constant for the duration of the simulation. This fix forces the
|
||||
chunk/atom compute specified by chunkID to hold *Nchunk* constant
|
||||
for the appropriate time windows, by not allowing it to
|
||||
re-calculate *Nchunk*, which can also affect how it assigns chunk
|
||||
IDs to atoms. This is particularly important to understand if the
|
||||
chunks defined by the :doc:`compute chunk/atom
|
||||
To perform per-chunk averaging within a :math:`N_\text{freq}` time window,
|
||||
the number of chunks :math:`N_\text{chunk}` defined by the
|
||||
:doc:`compute chunk/atom <compute_chunk_atom>` command must remain
|
||||
constant. If the *ave* keyword is set to *running* or *window* then
|
||||
:math:`N_\text{chunk}` must remain constant for the duration of the
|
||||
simulation. This fix forces the chunk/atom compute specified by chunkID to
|
||||
hold :math:`N_\text{chunk}` constant for the appropriate time windows,
|
||||
by not allowing it to re-calculate :math:`N_\text{chunk}`, which can also
|
||||
affect how it assigns chunk IDs to atoms. This is particularly important to
|
||||
understand if the chunks defined by the :doc:`compute chunk/atom
|
||||
<compute_chunk_atom>` command are spatial bins. If its *units*
|
||||
keyword is set to *box* or *lattice*, then the number of bins
|
||||
*Nchunk* and size of each bin will be fixed over the *Nfreq* time
|
||||
window, which can affect which atoms are discarded if the
|
||||
simulation box size changes. If its *units* keyword is set to
|
||||
*reduced*, then the number of bins *Nchunk* will still be fixed,
|
||||
but the size of each bin can vary at each timestep if the
|
||||
simulation box size changes, e.g. for an NPT simulation.
|
||||
:math:`N_\text{chunk}` and size of each bin will be fixed over the
|
||||
:math:`N_\text{freq}` time window, which can affect which atoms are
|
||||
discarded if the simulation box size changes. If its *units* keyword is set
|
||||
to *reduced*, then the number of bins :math:`N_\text{chunk}` will still be
|
||||
fixed, but the size of each bin can vary at each time step if the
|
||||
simulation box size changes (e.g., for an NPT simulation).
|
||||
|
||||
----------
|
||||
|
||||
The atom attribute values (vx,vy,vz,fx,fy,fz,mass) are
|
||||
The atom attribute values (*vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *mass*) are
|
||||
self-explanatory. As noted above, any other atom attributes can be
|
||||
used as input values to this fix by using the :doc:`compute
|
||||
property/atom <compute_property_atom>` command and then specifying an
|
||||
input value from that compute.
|
||||
|
||||
The *density/number* value means the number density is computed for
|
||||
each chunk, i.e. number/volume. The *density/mass* value means the
|
||||
mass density is computed for each chunk, i.e. total-mass/volume. The
|
||||
output values are in units of 1/volume or density (mass/volume). See
|
||||
each chunk (i.e., number/volume). The *density/mass* value means the
|
||||
mass density is computed for each chunk (i.e., total-mass/volume). The
|
||||
output values are in units of 1/volume or mass density (mass/volume). See
|
||||
the :doc:`units <units>` command page for the definition of density
|
||||
for each choice of units, e.g. gram/cm\^3. If the chunks defined by
|
||||
for each choice of units (e.g., g/cm\ :math:`^3`). If the chunks defined by
|
||||
the :doc:`compute chunk/atom <compute_chunk_atom>` command are spatial
|
||||
bins, the volume is the bin volume. Otherwise it is the volume of the
|
||||
bins, the volume is the bin volume. Otherwise, it is the volume of the
|
||||
entire simulation box.
|
||||
|
||||
The *temp* value means the temperature is computed for each chunk, by
|
||||
the formula
|
||||
The *temp* value means the temperature is computed for each chunk,
|
||||
by the formula
|
||||
|
||||
.. math::
|
||||
|
||||
\text{KE} = \frac{\text{DOF}}{2} k_B T,
|
||||
|
||||
where KE = total kinetic energy of the chunk of atoms (sum of
|
||||
:math:`\frac{1}{2} m v^2`), DOF = the total number of degrees of freedom
|
||||
for all atoms in the chunk, :math:`k_B` = Boltzmann constant, and
|
||||
:math:`T` = temperature.
|
||||
where KE is the total kinetic energy of the chunk of atoms (sum of
|
||||
:math:`\frac{1}{2} m v^2`), DOF is the the total number of degrees of freedom
|
||||
for all atoms in the chunk, :math:`k_B` is the Boltzmann constant, and
|
||||
:math:`T` is the absolute temperature.
|
||||
|
||||
The DOF is calculated as N\*adof + cdof, where N = number of atoms in
|
||||
the chunk, adof = degrees of freedom per atom, and cdof = degrees of
|
||||
freedom per chunk. By default adof = 2 or 3 = dimensionality of
|
||||
system, as set via the :doc:`dimension <dimension>` command, and cdof =
|
||||
0.0. This gives the usual formula for temperature.
|
||||
The DOF is calculated as :math:`N`\ \*adof + cdof, where :math:`N` is the
|
||||
number of atoms in the chunk, adof is the number of degrees of freedom per
|
||||
atom, and cdof is the number of degrees of freedom per chunk. By default,
|
||||
adof = 2 or 3 = dimensionality of system,
|
||||
as set via the :doc:`dimension <dimension>` command, and cdof = 0.0.
|
||||
This gives the usual formula for temperature.
|
||||
|
||||
Note that currently this temperature only includes translational
|
||||
degrees of freedom for each atom. No rotational degrees of freedom
|
||||
are included for finite-size particles. Also no degrees of freedom
|
||||
are included for finite-size particles. Also, no degrees of freedom
|
||||
are subtracted for any velocity bias or constraints that are applied,
|
||||
such as :doc:`compute temp/partial <compute_temp_partial>`, or
|
||||
:doc:`fix shake <fix_shake>` or :doc:`fix rigid <fix_rigid>`. This is
|
||||
because those degrees of freedom (e.g. a constrained bond) could apply
|
||||
such as :doc:`compute temp/partial <compute_temp_partial>`,
|
||||
:doc:`fix shake <fix_shake>`, or :doc:`fix rigid <fix_rigid>`. This is
|
||||
because those degrees of freedom (e.g., a constrained bond) could apply
|
||||
to sets of atoms that are both included and excluded from a specific
|
||||
chunk, and hence the concept is somewhat ill-defined. In some cases,
|
||||
you can use the *adof* and *cdof* keywords to adjust the calculated
|
||||
@ -280,32 +284,32 @@ Note that the per-chunk temperature calculated by this fix and the
|
||||
different. The compute calculates the temperature for each chunk for
|
||||
a single snapshot. This fix can do that but can also time average
|
||||
those values over many snapshots, or it can compute a temperature as
|
||||
if the atoms in the chunk on different timesteps were collected
|
||||
if the atoms in the chunk on different time steps were collected
|
||||
together as one set of atoms to calculate their temperature. The
|
||||
compute allows the center-of-mass velocity of each chunk to be
|
||||
subtracted before calculating the temperature; this fix does not.
|
||||
|
||||
If a value begins with "c\_", a compute ID must follow which has been
|
||||
If a value begins with "c\_," a compute ID must follow which has been
|
||||
previously defined in the input script. If no bracketed integer is
|
||||
appended, the per-atom vector calculated by the compute is used. If a
|
||||
bracketed integer is appended, the Ith column of the per-atom 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 I can be specified with a wildcard
|
||||
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 multiple values.
|
||||
|
||||
If a value begins with "f\_", a fix ID must follow which has been
|
||||
If a value begins with "f\_," a fix ID must follow which has been
|
||||
previously defined in the input script. If no bracketed integer is
|
||||
appended, the per-atom vector calculated by the fix is used. If a
|
||||
bracketed integer is appended, the Ith column of the per-atom array
|
||||
calculated by the fix is used. Note that some fixes only produce
|
||||
their values on certain timesteps, which must be compatible with
|
||||
*Nevery*, else an error results. Users can also write code for their
|
||||
own fix styles and :doc:`add them to LAMMPS <Modify>`. See the
|
||||
their values on certain time steps, which must be compatible with
|
||||
:math:`N_\text{every}`, else an error results. Users can also write code for
|
||||
their own fix 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 multiple values.
|
||||
|
||||
If a value begins with "v\_", a variable name must follow which has
|
||||
If a value begins with "v\_," a variable name must follow which has
|
||||
been previously defined in the input script. Variables of style
|
||||
*atom* can reference thermodynamic keywords and various per-atom
|
||||
attributes, or invoke other computes, fixes, or variables when they
|
||||
@ -318,113 +322,113 @@ Additional optional keywords also affect the operation of this fix
|
||||
and its outputs.
|
||||
|
||||
The *norm* keyword affects how averaging is done for the per-chunk
|
||||
values that are output every *Nfreq* timesteps.
|
||||
values that are output every :math:`N_\text{freq}` time steps.
|
||||
|
||||
It the *norm* setting is *all*, which is the default, a chunk value is
|
||||
summed over all atoms in all *Nrepeat* samples, as is the count of
|
||||
It the *norm* setting is *all*, which is the default, a chunk value is summed
|
||||
over all atoms in all :math:`N_\text{repeat}` samples, as is the count of
|
||||
atoms in the chunk. The averaged output value for the chunk on the
|
||||
*Nfreq* timesteps is Total-sum / Total-count. In other words it is an
|
||||
average over atoms across the entire *Nfreq* timescale. For the
|
||||
*density/number* and *density/mass* values, the volume (bin volume or
|
||||
:math:`N_\text{freq}` time steps is Total-sum / Total-count. In other words it
|
||||
is an average over atoms across the entire :math:`N_\text{freq}` timescale.
|
||||
For the *density/number* and *density/mass* values, the volume (bin volume or
|
||||
system volume) used in the final normalization will be the volume at
|
||||
the final *Nfreq* timestep. For the *temp* values, degrees of freedom
|
||||
and kinetic energy are summed separately across the entire *Nfreq*
|
||||
timescale, and the output value is calculated by dividing those two
|
||||
sums.
|
||||
the final :math:`N_\text{freq}` time step. For the *temp* values, degrees of
|
||||
freedom and kinetic energy are summed separately across the entire
|
||||
:math:`N_\text{freq}` timescale, and the output value is calculated by dividing
|
||||
those two sums.
|
||||
|
||||
If the *norm* setting is *sample*, the chunk value is summed over
|
||||
atoms for each sample, as is the count, and an "average sample value"
|
||||
is computed for each sample, i.e. Sample-sum / Sample-count. The
|
||||
output value for the chunk on the *Nfreq* timesteps is the average of
|
||||
the *Nrepeat* "average sample values", i.e. the sum of *Nrepeat*
|
||||
"average sample values" divided by *Nrepeat*\ . In other words it is an
|
||||
average of an average. For the *density/number* and *density/mass*
|
||||
values, the volume (bin volume or system volume) used in the
|
||||
per-sample normalization will be the current volume at each sampling
|
||||
step.
|
||||
is computed for each sample (i.e., Sample-sum / Sample-count). The
|
||||
output value for the chunk on the :math:`N_\text{freq}` time steps is the
|
||||
average of the :math:`N_\text{repeat}` "average sample values" (i.e., the sum
|
||||
of :math:`N_\text{repeat}` "average sample values" divided by
|
||||
:math:`N_\text{repeat}`\ ). In other words, it is an average of an average.
|
||||
For the *density/number* and *density/mass* values, the volume (bin volume or
|
||||
system volume) used in the per-sample normalization will be the current volume
|
||||
at each sampling step.
|
||||
|
||||
If the *norm* setting is *none*, a similar computation as for the
|
||||
*sample* setting is done, except the individual "average sample
|
||||
values" are "summed sample values". A summed sample value is simply
|
||||
values" are "summed sample values." A summed sample value is simply
|
||||
the chunk value summed over atoms in the sample, without dividing by
|
||||
the number of atoms in the sample. The output value for the chunk on
|
||||
the *Nfreq* timesteps is the average of the *Nrepeat* "summed sample
|
||||
values", i.e. the sum of *Nrepeat* "summed sample values" divided by
|
||||
*Nrepeat*\ . For the *density/number* and *density/mass* values, the
|
||||
the :math:`N_\text{freq}` timesteps is the average of the
|
||||
:math:`N_\text{repeat}` "summed sample values" (i.e., the sum of
|
||||
:math:`N_\text{repeat}` "summed sample values" divided by
|
||||
:math:`N_\text{repeat}`\ ).
|
||||
For the *density/number* and *density/mass* values, the
|
||||
volume (bin volume or system volume) used in the per-sample sum
|
||||
normalization will be the current volume at each sampling step.
|
||||
|
||||
----------
|
||||
|
||||
The *ave* keyword determines how the per-chunk values produced every
|
||||
*Nfreq* steps are averaged with values produced on previous steps that
|
||||
were multiples of *Nfreq*, before they are accessed by another output
|
||||
command or written to a file.
|
||||
:math:`N_\text{freq}` steps are averaged with values produced on previous steps
|
||||
that were multiples of :math:`N_\text{freq}`, before they are accessed by
|
||||
another output command or written to a file.
|
||||
|
||||
If the *ave* setting is *one*, which is the default, then the chunk
|
||||
values produced on timesteps that are multiples of *Nfreq* are
|
||||
independent of each other; they are output as-is without further
|
||||
averaging.
|
||||
values produced on timesteps that are multiples of :math:`N_\text{freq}` are
|
||||
independent of each other; they are output as-is without further averaging.
|
||||
|
||||
If the *ave* setting is *running*, then the chunk values produced on
|
||||
timesteps that are multiples of *Nfreq* are summed and averaged in a
|
||||
cumulative sense before being output. Each output chunk value is thus
|
||||
timesteps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||
in a cumulative sense before being output. Each output chunk value is thus
|
||||
the average of the chunk value produced on that timestep with all
|
||||
preceding values for the same chunk. This running average begins when
|
||||
the fix is defined; it can only be restarted by deleting the fix via
|
||||
the :doc:`unfix <unfix>` command, or re-defining the fix by
|
||||
re-specifying it.
|
||||
the :doc:`unfix <unfix>` command, or re-defining the fix by re-specifying it.
|
||||
|
||||
If the *ave* setting is *window*, then the chunk values produced on
|
||||
timesteps that are multiples of *Nfreq* are summed and averaged within
|
||||
a moving "window" of time, so that the last M values for the same
|
||||
chunk are used to produce the output. E.g. if M = 3 and Nfreq = 1000,
|
||||
then the output on step 10000 will be the average of the individual
|
||||
chunk values on steps 8000,9000,10000. Outputs on early steps will
|
||||
average over less than M values if they are not available.
|
||||
timesteps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||
within a moving "window" of time, so that the last :math:`M` values for the
|
||||
same chunk are used to produce the output. For example, if :math:`M = 3` and
|
||||
:math:`N_\text{freq} = 1000`, then the output on step 10000 will be the average
|
||||
of the individual chunk values on time steps 8000, 9000, and 10000. Outputs on
|
||||
early steps will average over less than :math:`M` values if they are not
|
||||
available.
|
||||
|
||||
----------
|
||||
|
||||
The *bias* keyword specifies the ID of a temperature compute that
|
||||
removes a "bias" velocity from each atom, specified as *bias-ID*\ . It
|
||||
is only used when the *temp* value is calculated, to compute the
|
||||
removes a "bias" velocity from each atom, specified as *bias-ID*\ .
|
||||
It is only used when the *temp* value is calculated, to compute the
|
||||
thermal temperature of each chunk after the translational kinetic
|
||||
energy components have been altered in a prescribed way, e.g. to
|
||||
remove a flow velocity profile. See the doc pages for individual
|
||||
computes that calculate a temperature to see which ones implement a
|
||||
bias.
|
||||
energy components have been altered in a prescribed way (e.g., to
|
||||
remove a flow velocity profile). See the doc pages for individual
|
||||
computes that calculate a temperature to see which ones implement a bias.
|
||||
|
||||
The *adof* and *cdof* keywords define the values used in the degree of
|
||||
freedom (DOF) formula described above for temperature calculation
|
||||
for each chunk. They are only used when the *temp* value is
|
||||
calculated. They can be used to calculate a more appropriate
|
||||
temperature for some kinds of chunks. Here are 3 examples:
|
||||
temperature for some kinds of chunks. Here are three examples:
|
||||
|
||||
If spatially binned chunks contain some number of water molecules and
|
||||
:doc:`fix shake <fix_shake>` is used to make each molecule rigid, then
|
||||
you could calculate a temperature with 6 degrees of freedom (DOF) (3
|
||||
translational, 3 rotational) per molecule by setting *adof* to 2.0.
|
||||
you could calculate a temperature with six degrees of freedom (DOF) (three
|
||||
translational, three rotational) per molecule by setting *adof* to 2.0.
|
||||
|
||||
If :doc:`compute temp/partial <compute_temp_partial>` is used with the
|
||||
*bias* keyword to only allow the x component of velocity to contribute
|
||||
*bias* keyword to only allow the :math:`x` component of velocity to contribute
|
||||
to the temperature, then *adof* = 1.0 would be appropriate.
|
||||
|
||||
If each chunk consists of a large molecule, with some number of its
|
||||
bonds constrained by :doc:`fix shake <fix_shake>` or the entire molecule
|
||||
by :doc:`fix rigid/small <fix_rigid>`, *adof* = 0.0 and *cdof* could be
|
||||
set to the remaining degrees of freedom for the entire molecule
|
||||
(entire chunk in this case), e.g. 6 for 3d, or 3 for 2d, for a rigid
|
||||
(entire chunk in this case), that is, 6 for 3d or 3 for 2d for a rigid
|
||||
molecule.
|
||||
|
||||
----------
|
||||
|
||||
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
||||
timesteps, a section of chunk info will be written to a text file in
|
||||
the following format. A line with the timestep and number of chunks
|
||||
is written. Then one line per chunk is written, containing the chunk
|
||||
ID (1-Nchunk), an optional original ID value, optional coordinate
|
||||
values for chunks that represent spatial bins, the number of atoms in
|
||||
the chunk, and one or more calculated values. More explanation of the
|
||||
The *file* keyword allows a filename to be specified. Every
|
||||
:math:`N_\text{freq}` timesteps, a section of chunk info will be written to a
|
||||
text file in the following format. A line with the timestep and number of
|
||||
chunks is written. Then one line per chunk is written, containing the chunk
|
||||
ID :math:`(1-N_\text{chunk}),` an optional original ID value, optional
|
||||
coordinate values for chunks that represent spatial bins, the number of atoms
|
||||
in the chunk, and one or more calculated values. More explanation of the
|
||||
optional values is given below. The number of values in each line
|
||||
corresponds to the number of values specified in the fix ave/chunk
|
||||
command. The number of atoms and the value(s) are summed or average
|
||||
@ -437,10 +441,10 @@ output. This option can only be used with the *ave running* setting.
|
||||
The *format* keyword sets the numeric format of each value when it is
|
||||
printed to a file via the *file* keyword. Note that all values are
|
||||
floating point quantities. The default format is %g. You can specify
|
||||
a higher precision if desired, e.g. %20.16g.
|
||||
a higher precision if desired (e.g., %20.16g).
|
||||
|
||||
The *title1* and *title2* and *title3* keywords allow specification of
|
||||
the strings that will be printed as the first 3 lines of the output
|
||||
the strings that will be printed as the first three lines of the output
|
||||
file, assuming the *file* keyword was used. LAMMPS uses default
|
||||
values for each of these, so they do not need to be specified.
|
||||
|
||||
@ -455,34 +459,33 @@ By default, these header lines are as follows:
|
||||
In the first line, ID and name are replaced with the fix-ID and group
|
||||
name. The second line describes the two values that are printed at
|
||||
the first of each section of output. In the third line the values are
|
||||
replaced with the appropriate value names, e.g. fx or c_myCompute[2].
|
||||
replaced with the appropriate value names (e.g., *fx* or c_myCompute[2]).
|
||||
|
||||
The words in parenthesis only appear with corresponding columns if the
|
||||
chunk style specified for the :doc:`compute chunk/atom
|
||||
<compute_chunk_atom>` command supports them. The OrigID column is
|
||||
only used if the *compress* keyword was set to *yes* for the
|
||||
:doc:`compute chunk/atom <compute_chunk_atom>` command. This means
|
||||
that the original chunk IDs (e.g. molecule IDs) will have been
|
||||
that the original chunk IDs (e.g., molecule IDs) 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 chunk ID or
|
||||
molecule ID of
|
||||
415. The OrigID column will list 415 for the third chunk.
|
||||
molecule ID of 415. The OrigID column will list 415 for the third chunk.
|
||||
|
||||
The CoordN columns only appear if a *binning* style was used in the
|
||||
:doc:`compute chunk/atom <compute_chunk_atom>` command. For *bin/1d*,
|
||||
*bin/2d*, and *bin/3d* styles the column values are the center point
|
||||
of the bin in the corresponding dimension. Just Coord1 is used for
|
||||
*bin/1d*, Coord2 is added for *bin/2d*, Coord3 is added for *bin/3d*\
|
||||
. For *bin/sphere*, just Coord1 is used, and it is the radial
|
||||
*bin/1d*, Coord2 is added for *bin/2d*, Coord3 is added for *bin/3d*\ .
|
||||
For *bin/sphere*, just Coord1 is used, and it is the radial
|
||||
coordinate. For *bin/cylinder*, Coord1 and Coord2 are used. Coord1
|
||||
is the radial coordinate (away from the cylinder axis), and coord2 is
|
||||
the coordinate along the cylinder axis.
|
||||
|
||||
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 coordinate values will be in distance :doc:`units
|
||||
<units>`. If the value of the *units* keyword is *reduced*, the
|
||||
coordinate values will be in unitless reduced units (0-1). This is
|
||||
*lattice*, the coordinate values will be in distance :doc:`units <units>`.
|
||||
If the value of the *units* keyword is *reduced*, the
|
||||
coordinate values will be in unitless reduced units (0--1). This is
|
||||
not true for the Coord1 value of style *bin/sphere* or *bin/cylinder*
|
||||
which both represent radial dimensions. Those values are always in
|
||||
distance :doc:`units <units>`.
|
||||
@ -498,20 +501,21 @@ relevant to this fix.
|
||||
|
||||
This fix computes a global array of values which can be accessed by
|
||||
various :doc:`output commands <Howto_output>`. The values can only be
|
||||
accessed on timesteps that are multiples of *Nfreq* since that is when
|
||||
averaging is performed. The global array has # of rows = the number
|
||||
of chunks *Nchunk* as calculated by the specified :doc:`compute
|
||||
chunk/atom <compute_chunk_atom>` command. The # of columns =
|
||||
M+1+Nvalues, where M = 1 to 4, depending on whether the optional
|
||||
accessed on timesteps that are multiples of :math:`N_\text{freq}`, since that
|
||||
is when averaging is performed. The global array has # of rows = the number
|
||||
of chunks :math:`N_\text{chunk}`, as calculated by the specified
|
||||
:doc:`compute chunk/atom <compute_chunk_atom>` command. The # of columns is
|
||||
:math:`M+1+N_\text{values}`, where :math:`M \in \{1,\dotsc,4\}`,
|
||||
depending on whether the optional
|
||||
columns for OrigID and CoordN are used, as explained above. Following
|
||||
the optional columns, the next column contains the count of atoms in
|
||||
the chunk, and the remaining columns are the Nvalue quantities. When
|
||||
the array is accessed with a row I that exceeds the current number of
|
||||
the array is accessed with a row :math:`I` that exceeds the current number of
|
||||
chunks, than a 0.0 is returned by the fix instead of an error, since
|
||||
the number of chunks can vary as a simulation runs depending on how
|
||||
that value is computed by the compute chunk/atom command.
|
||||
|
||||
The array values calculated by this fix are treated as "intensive",
|
||||
The array values calculated by this fix are treated as "intensive,"
|
||||
since they are typically already normalized by the count of atoms in
|
||||
each chunk.
|
||||
|
||||
@ -526,7 +530,8 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/histo <fix_ave_histo>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`,
|
||||
:doc:`fix ave/histo <fix_ave_histo>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`
|
||||
|
||||
Default
|
||||
|
||||
@ -6,7 +6,7 @@ fix ave/correlate command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ave/correlate Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
|
||||
|
||||
@ -73,10 +73,12 @@ Description
|
||||
|
||||
Use one or more global scalar values as inputs every few timesteps,
|
||||
calculate time correlations between them at varying time intervals,
|
||||
and average the correlation data over longer timescales. The
|
||||
resulting correlation values can be time integrated by
|
||||
:doc:`variables <variable>` or used by other :doc:`output commands <Howto_output>` such as :doc:`thermo_style custom <thermo_style>`, and can also be written to a file. See the
|
||||
:doc:`fix ave/correlate/long <fix_ave_correlate_long>` command for an
|
||||
and average the correlation data over longer timescales. The resulting
|
||||
correlation values can be time integrated by
|
||||
:doc:`variables <variable>` or used by other
|
||||
:doc:`output commands <Howto_output>` such as
|
||||
:doc:`thermo_style custom <thermo_style>`, and can also be written to a file.
|
||||
See the :doc:`fix ave/correlate/long <fix_ave_correlate_long>` command for an
|
||||
alternate method for computing correlation functions efficiently over
|
||||
very long time windows.
|
||||
|
||||
@ -89,9 +91,11 @@ Each listed value can be the result of a :doc:`compute <compute>` or
|
||||
:doc:`variable <variable>`. In each case, the compute, fix, or variable
|
||||
must produce a global quantity, not a per-atom or local quantity. If
|
||||
you wish to spatial- or time-average or histogram per-atom quantities
|
||||
from a compute, fix, or variable, then see the :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/atom <fix_ave_atom>`, or
|
||||
from a compute, fix, or variable, then see the
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/atom <fix_ave_atom>`, or
|
||||
:doc:`fix ave/histo <fix_ave_histo>` commands. If you wish to convert a
|
||||
per-atom quantity into a single global value, see the :doc:`compute reduce <compute_reduce>` command.
|
||||
per-atom quantity into a single global value, see the
|
||||
:doc:`compute reduce <compute_reduce>` command.
|
||||
|
||||
The input values must be all scalars. What kinds of
|
||||
correlations between input values are calculated is determined by the
|
||||
@ -110,16 +114,16 @@ be used, since they produce per-atom values.
|
||||
For input values from a compute or fix or variable , the bracketed
|
||||
index I can be specified using a wildcard asterisk with the index to
|
||||
effectively specify multiple values. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n". If N = the size of the vector, then an
|
||||
asterisk with no numeric values means all indices from 1 to N. A
|
||||
"\*n" or "m\*" or "m\*n". If :math:`N` is the size of the vector, then an
|
||||
asterisk with no numeric values means all indices from 1 to :math:`N`. A
|
||||
leading asterisk means all indices from 1 to n (inclusive). A
|
||||
trailing asterisk means all indices from n to N (inclusive). A middle
|
||||
asterisk means all indices from m to n (inclusive).
|
||||
trailing asterisk means all indices from m to :math:`N` (inclusive).
|
||||
A middle asterisk means all indices from m to n (inclusive).
|
||||
|
||||
Using a wildcard is the same as if the individual elements of the
|
||||
vector had been listed one by one. E.g. these 2 fix ave/correlate
|
||||
commands are equivalent, since the :doc:`compute pressure
|
||||
<compute_pressure>` command creates a global vector with 6 values.
|
||||
vector had been listed one by one. For example, the following two fix
|
||||
ave/correlate commands are equivalent, since the :doc:`compute pressure
|
||||
<compute_pressure>` command creates a global vector with six values:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -139,151 +143,161 @@ commands are equivalent, since the :doc:`compute pressure
|
||||
|
||||
----------
|
||||
|
||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
||||
timesteps the input values will be used to calculate correlation data.
|
||||
The input values are sampled every *Nevery* timesteps. The
|
||||
correlation data for the preceding samples is computed on timesteps
|
||||
that are a multiple of *Nfreq*\ . Consider a set of samples from some
|
||||
initial time up to an output timestep. The initial time could be the
|
||||
beginning of the simulation or the last output time; see the *ave*
|
||||
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||
arguments specify on what timesteps the input values will be used to calculate
|
||||
correlation data. The input values are sampled every :math:`N_\text{every}`
|
||||
time steps. The correlation data for the preceding samples is computed on
|
||||
time steps that are a multiple of :math:`N_\text{freq}`\ . Consider a set of
|
||||
samples from some initial time up to an output timestep. The initial time
|
||||
could be the beginning of the simulation or the last output time; see the *ave*
|
||||
keyword for options. For the set of samples, the correlation value
|
||||
Cij is calculated as:
|
||||
:math:`C_{ij}` is calculated as:
|
||||
|
||||
.. parsed-literal::
|
||||
.. math::
|
||||
|
||||
Cij(delta) = ave(Vi(t)\*Vj(t+delta))
|
||||
C_{ij}(\Delta t) = \left\langle V_i(t) V_j(t+\Delta t)\right\rangle,
|
||||
|
||||
which is the correlation value between input values Vi and Vj,
|
||||
separated by time delta. Note that the second value Vj in the pair is
|
||||
always the one sampled at the later time. The ave() represents an
|
||||
average over every pair of samples in the set that are separated by
|
||||
time delta. The maximum delta used is of size (\ *Nrepeat*\ -1)\*\ *Nevery*\ .
|
||||
Thus the correlation between a pair of input values yields *Nrepeat*
|
||||
correlation datums:
|
||||
which is the correlation value between input values :math:`V_i` and
|
||||
:math:`V_j`, separated by time :math:`\Delta t`. Note that the second value
|
||||
:math:`V_j` in the pair is always the one sampled at the later time. The
|
||||
average is an average over every pair of samples in the set that are separated
|
||||
by time :math:`\Delta t`. The maximum :math:`\Delta t` used is of size
|
||||
:math:`(N_\text{repeat} - 1) N_\text{every}`\ .
|
||||
Thus the correlation between a pair of input values yields
|
||||
:math:`N_\text{repeat}` correlation data:
|
||||
|
||||
.. parsed-literal::
|
||||
.. math::
|
||||
|
||||
Cij(0), Cij(Nevery), Cij(2\*Nevery), ..., Cij((Nrepeat-1)\*Nevery)
|
||||
C_{ij}(0), C_{ij}(N_\text{every}), C_{ij}(2N_\text{every}), \dotsc,
|
||||
C_{ij}\bigl((N_\text{repeat}-1) N_\text{every}\bigr)
|
||||
|
||||
For example, if Nevery=5, Nrepeat=6, and Nfreq=100, then values on
|
||||
timesteps 0,5,10,15,...,100 will be used to compute the final averages
|
||||
on timestep 100. Six averages will be computed: Cij(0), Cij(5),
|
||||
Cij(10), Cij(15), Cij(20), and Cij(25). Cij(10) on timestep 100 will
|
||||
be the average of 19 samples, namely Vi(0)\*Vj(10), Vi(5)\*Vj(15),
|
||||
Vi(10)\*V j20), Vi(15)\*Vj(25), ..., Vi(85)\*Vj(95), Vi(90)\*Vj(100).
|
||||
For example, if :math:`N_\text{every}=5`, :math:`N_\text{repeat}=6`, and
|
||||
:math:`N_\text{freq}=100`, then values on time steps
|
||||
:math:`0, 5, 10, 15,\dotsc,100` will be used to compute the final averages
|
||||
on time step 100. Six averages will be computed: :math:`C_{ij}(0)`,
|
||||
:math:`C_{ij}(5)`, :math:`C_{ij}(10)`, :math:`C_{ij}(15)`, :math:`C_{ij}(20)`,
|
||||
and :math:`C_{ij}(25)`. :math:`C_{ij}(10)` on time step 100 will
|
||||
be the average of 19 samples, namely :math:`V_i(0) V_j(10)`,
|
||||
:math:`V_i(5) V_j(15)`, :math:`V_i(10) V_j(20)`,
|
||||
:math:`V_i(15) V_j(25), \dotsc,`
|
||||
:math:`V_i(85) V_j(95)`, and :math:`V_i(90) V_j(100)`.
|
||||
|
||||
*Nfreq* must be a multiple of *Nevery*\ ; *Nevery* and *Nrepeat* must be
|
||||
non-zero. Also, if the *ave* keyword is set to *one* which is the
|
||||
default, then *Nfreq* >= (\ *Nrepeat*\ -1)\*\ *Nevery* is required.
|
||||
:math:`N_\text{freq}` must be a multiple of :math:`N_\text{every}`;
|
||||
:math:`N_\text{every}` and :math:`N_\text{repeat}` must be non-zero.
|
||||
Also, if the *ave* keyword is set to *one* which is the default, then
|
||||
:math:`N_\text{freq} \ge (N_\text{repeat} -1) N_\text{every}` is required.
|
||||
|
||||
----------
|
||||
|
||||
If a value begins with "c\_", a compute ID must follow which has been
|
||||
If a value begins with "c\_," a compute ID must follow which has been
|
||||
previously defined in the input script. If no bracketed term is
|
||||
appended, the global scalar calculated by the compute is used. If a
|
||||
bracketed term is appended, the Ith element of the global vector
|
||||
calculated by the compute is used. See the discussion above for how I
|
||||
can be specified with a wildcard asterisk to effectively specify
|
||||
bracketed term is appended, the :math:`I^\text{th}` element of the global
|
||||
vector calculated by the compute is used. See the discussion above for how
|
||||
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||
multiple values.
|
||||
|
||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||
which can sum per-atom quantities into a global scalar or vector which
|
||||
can thus be accessed by fix ave/correlate. Or it can be a compute
|
||||
defined not in your input script, but by :doc:`thermodynamic output <thermo_style>` or other fixes such as :doc:`fix nvt <fix_nh>`
|
||||
that can sum per-atom quantities into a global scalar or vector which
|
||||
can then be accessed by fix ave/correlate. It can also be a compute defined
|
||||
not in your input script, but by :doc:`thermodynamic output <thermo_style>`
|
||||
or other fixes such as :doc:`fix nvt <fix_nh>`
|
||||
or :doc:`fix temp/rescale <fix_temp_rescale>`. See the doc pages for
|
||||
these commands which give the IDs of these computes. Users can also
|
||||
write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
|
||||
If a value begins with "f\_", a fix ID must follow which has been
|
||||
If a value begins with "f\_," a fix ID must follow which has been
|
||||
previously defined in the input script. If no bracketed term is
|
||||
appended, the global scalar calculated by the fix is used. If a
|
||||
bracketed term is appended, the Ith element of the global vector
|
||||
calculated by the fix is used. See the discussion above for how I can
|
||||
be specified with a wildcard asterisk to effectively specify multiple
|
||||
values.
|
||||
bracketed term is appended, the :math:`I^\text{th}` element of the global
|
||||
vector calculated by the fix is used. See the discussion above for how
|
||||
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||
multiple values.
|
||||
|
||||
Note that some fixes only produce their values on certain timesteps,
|
||||
which must be compatible with *Nevery*, else an error will result.
|
||||
Users can also write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
which must be compatible with :math:`N_\text{every}`, else an error will
|
||||
result. Users can also write code for their own fix styles and
|
||||
:doc:`add them to LAMMPS <Modify>`.
|
||||
|
||||
If a value begins with "v\_", a variable name must follow which has
|
||||
been previously defined in the input script. Only equal-style or
|
||||
vector-style variables can be referenced; the latter requires a
|
||||
bracketed term to specify the Ith element of the vector calculated by
|
||||
the variable. See the :doc:`variable <variable>` command for details.
|
||||
Note that variables of style *equal* or *vector* define a formula
|
||||
which can reference individual atom properties or thermodynamic
|
||||
keywords, or they can invoke other computes, fixes, or variables when
|
||||
they are evaluated, so this is a very general means of specifying
|
||||
quantities to time correlate.
|
||||
If a value begins with "v\_," a variable name must follow which has been
|
||||
previously defined in the input script. Only equal-style or vector-style
|
||||
variables can be referenced; the latter requires a bracketed term to specify
|
||||
the :math:`I^\text{th}` element of the vector calculated by the variable.
|
||||
See the :doc:`variable <variable>` command for details. Note that variables of
|
||||
style *equal* or *vector* define a formula which can reference individual atom
|
||||
properties or thermodynamic keywords, or they can invoke other computes, fixes,
|
||||
or variables when they are evaluated, so this is a very general means of
|
||||
specifying quantities to time correlate.
|
||||
|
||||
----------
|
||||
|
||||
Additional optional keywords also affect the operation of this fix.
|
||||
|
||||
The *type* keyword determines which pairs of input values are
|
||||
correlated with each other. For N input values Vi, for i = 1 to N,
|
||||
let the number of pairs = Npair. Note that the second value in the
|
||||
pair Vi(t)\*Vj(t+delta) is always the one sampled at the later time.
|
||||
correlated with each other. For :math:`N` input values :math:`V_i`,
|
||||
with :math:`i \in \{1,\dotsc,N\}`, let the number of pairs be
|
||||
:math:`N_\text{pair}`. Note that the second value in the
|
||||
pair, :math:`V_i(t) V_j(t+\Delta t)`, is always the one sampled at the later
|
||||
time.
|
||||
|
||||
* If *type* is set to *auto* then each input value is correlated with
|
||||
itself. I.e. Cii = Vi\*Vi, for i = 1 to N, so Npair = N.
|
||||
* If *type* is set
|
||||
to *upper* then each input value is correlated with every succeeding
|
||||
value. I.e. Cij = Vi\*Vj, for i < j, so Npair = N\*(N-1)/2.
|
||||
* If *type* is set
|
||||
to *lower* then each input value is correlated with every preceding
|
||||
value. I.e. Cij = Vi\*Vj, for i > j, so Npair = N\*(N-1)/2.
|
||||
itself (i.e., :math:`C_{ii} = V_i^2` for :math:`i \in \{1,\dotsc,N\}`,
|
||||
so :math:`N_\text{pair} = N`).
|
||||
* If *type* is set to *upper* then each input value is correlated with every
|
||||
succeeding value (i.e., :math:`C_{ij} = V_i V_j` for :math:`i < j`, so
|
||||
:math:`N_\text{pair} = N (N-1)/2`).
|
||||
* If *type* is set to *lower* then each input value is correlated with every
|
||||
preceding value (i.e., :math:`C_{ij} = V_i V_j` for :math:`i > j`, so
|
||||
:math:`N_\text{pair} = N(N-1)/2`).
|
||||
* If *type* is set to *auto/upper* then each input value is correlated
|
||||
with itself and every succeeding value. I.e. Cij = Vi\*Vj, for i >= j,
|
||||
so Npair = N\*(N+1)/2.
|
||||
with itself and every succeeding value (i.e., :math:`C_{ij} = V_i V_j`
|
||||
for :math:`i \ge j`, so :math:`N_\text{pair} = N(N+1)/2`).
|
||||
* If *type* is set to *auto/lower* then each input value is correlated
|
||||
with itself and every preceding value. I.e. Cij = Vi\*Vj, for i <= j,
|
||||
so Npair = N\*(N+1)/2.
|
||||
with itself and every preceding value (i.e., :math:`C_{ij} = V_i V_j`
|
||||
for :math:`i \le j`, so :math:`N_\text{pair} = N(N+1)/2`).
|
||||
* If *type* is set to *full* then each input value is correlated with
|
||||
itself and every other value. I.e. Cij = Vi\*Vj, for i,j = 1,N so
|
||||
Npair = N\^2.
|
||||
itself and every other value (i.e., :math:`C_{ij} = V_i V_j` for
|
||||
:math:`\{i,j\} = \{1,N\}`, so :math:`N_\text{pair} = N^2`).
|
||||
|
||||
The *ave* keyword determines what happens to the accumulation of
|
||||
correlation samples every *Nfreq* timesteps. If the *ave* setting is
|
||||
*one*, then the accumulation is restarted or zeroed every *Nfreq*
|
||||
timesteps. Thus the outputs on successive *Nfreq* timesteps are
|
||||
The *ave* keyword determines what happens to the accumulation of correlation
|
||||
samples every :math:`N_\text{freq}` timesteps. If the *ave* setting is *one*,
|
||||
then the accumulation is restarted or zeroed every :math:`N_\text{freq}`
|
||||
timesteps. Thus the outputs on successive :math:`N_\text{freq}` timesteps are
|
||||
essentially independent of each other. The exception is that the
|
||||
Cij(0) = Vi(T)\*Vj(T) value at a timestep T, where T is a multiple of
|
||||
*Nfreq*, contributes to the correlation output both at time T and at
|
||||
time T+Nfreq.
|
||||
:math:`C_{ij}(0) = V_i(t) V_j(t)` value at a time step :math:`t,` where
|
||||
:math:`t` is a multiple of :math:`N_\text{freq}`, contributes to the
|
||||
correlation output both at time :math:`t` and at time :math:`t+N_\text{freq}`.
|
||||
|
||||
If the *ave* setting is *running*, then the accumulation is never
|
||||
zeroed. Thus the output of correlation data at any timestep is the
|
||||
average over samples accumulated every *Nevery* steps since the fix
|
||||
was defined. it can only be restarted by deleting the fix via the
|
||||
:doc:`unfix <unfix>` command, or by re-defining the fix by re-specifying
|
||||
it.
|
||||
If the *ave* setting is *running*, then the accumulation is never zeroed.
|
||||
Thus the output of correlation data at any timestep is the average over samples
|
||||
accumulated every :math:`N_\text{every}` steps since the fix was defined.
|
||||
It can only be restarted by deleting the fix via the :doc:`unfix <unfix>`
|
||||
command, or by re-defining the fix by re-specifying it.
|
||||
|
||||
The *start* keyword specifies what timestep the accumulation of
|
||||
The *start* keyword specifies what time step the accumulation of
|
||||
correlation samples will begin on. The default is step 0. Setting it
|
||||
to a larger value can avoid adding non-equilibrated data to the
|
||||
correlation averages.
|
||||
|
||||
The *prefactor* keyword specifies a constant which will be used as a
|
||||
multiplier on the correlation data after it is averaged. It is
|
||||
effectively a scale factor on Vi\*Vj, which can be used to account for
|
||||
the size of the time window or other unit conversions.
|
||||
The *prefactor* keyword specifies a constant which will be used as a multiplier
|
||||
on the correlation data after it is averaged. It is effectively a scale factor
|
||||
on :math:`V_i V_j`, which can be used to account for the size of the time
|
||||
window or other unit conversions.
|
||||
|
||||
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
||||
steps, an array of correlation data is written to the file. The
|
||||
number of rows is *Nrepeat*, as described above. The number of
|
||||
columns is the Npair+2, also as described above. Thus the file ends
|
||||
up to be a series of these array sections.
|
||||
The *file* keyword allows a filename to be specified. Every
|
||||
:math:`N_\text{freq}` steps, an array of correlation data is written to the
|
||||
file. The number of rows is :math:`N_\text{repeat}`, as described above.
|
||||
The number of columns is :math:`N_\text{pair}+2`, also as described above.
|
||||
Thus the file ends up to be a series of these array sections.
|
||||
|
||||
The *overwrite* keyword will continuously overwrite the output file
|
||||
with the latest output, so that it only contains one timestep worth of
|
||||
output. This option can only be used with the *ave running* setting.
|
||||
|
||||
The *title1* and *title2* and *title3* keywords allow specification of
|
||||
the strings that will be printed as the first 3 lines of the output
|
||||
file, assuming the *file* keyword was used. LAMMPS uses default
|
||||
values for each of these, so they do not need to be specified.
|
||||
The *title1*, *title2*, and *title3* keywords allow specification of
|
||||
the strings that will be printed as the first three lines of the output file,
|
||||
assuming the *file* keyword was used. LAMMPS uses default values for each of
|
||||
these, so they do not need to be specified.
|
||||
|
||||
By default, these header lines are as follows:
|
||||
|
||||
@ -300,18 +314,19 @@ appropriate fields from the fix ave/correlate command.
|
||||
|
||||
----------
|
||||
|
||||
Let Sij = a set of time correlation data for input values I and J,
|
||||
namely the *Nrepeat* values:
|
||||
Let :math:`S_{ij}` be a set of time correlation data for input values
|
||||
:math:`I` and :math:`J`, namely the :math:`N_\text{repeat}` values:
|
||||
|
||||
.. parsed-literal::
|
||||
.. math::
|
||||
|
||||
Sij = Cij(0), Cij(Nevery), Cij(2\*Nevery), ..., Cij(\*Nrepeat-1)\*Nevery)
|
||||
S_{ij} = C_{ij}(0), C_{ij}(N_\text{every}), C_{ij}(2N_\text{every}),
|
||||
\dotsc, C_{ijI}\bigl((N_\text{repeat}-1) N_\text{every}\bigr)
|
||||
|
||||
As explained below, these datums are output as one column of a global
|
||||
As explained below, these data are output as one column of a global
|
||||
array, which is effectively the correlation matrix.
|
||||
|
||||
The *trap* function defined for :doc:`equal-style variables <variable>`
|
||||
can be used to perform a time integration of this vector of datums,
|
||||
can be used to perform a time integration of this vector of data,
|
||||
using a trapezoidal rule. This is useful for calculating various
|
||||
quantities which can be derived from time correlation data. If a
|
||||
normalization factor is needed for the time integration, it can be
|
||||
@ -322,40 +337,43 @@ included in the variable formula or via the *prefactor* keyword.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix.
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`. None of the
|
||||
:doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||
|
||||
This fix computes a global array of values which can be accessed by
|
||||
various :doc:`output commands <Howto_output>`. The values can only be
|
||||
accessed on timesteps that are multiples of *Nfreq* since that is when
|
||||
averaging is performed. The global array has # of rows = *Nrepeat*
|
||||
and # of columns = Npair+2. The first column has the time delta (in
|
||||
timesteps) between the pairs of input values used to calculate the
|
||||
correlation, as described above. The second column has the number of
|
||||
samples contributing to the correlation average, as described above.
|
||||
The remaining Npair columns are for I,J pairs of the N input values,
|
||||
as determined by the *type* keyword, as described above.
|
||||
accessed on timesteps that are multiples of :math:`N_\text{freq}` since that is
|
||||
when averaging is performed. The global array has # of rows
|
||||
:math:`N_\text{repeat}` and # of columns :math:`N_\text{pair}+2`. The first
|
||||
column has the time :math:`\Delta t` (in time steps) between the pairs of input
|
||||
values used to calculate the correlation, as described above. The second
|
||||
column has the number of samples contributing to the correlation average, as
|
||||
described above. The remaining Npair columns are for :math:`I,J` pairs of the
|
||||
:math:`N` input values, as determined by the *type* keyword, as described
|
||||
above.
|
||||
|
||||
* For *type* = *auto*, the Npair = N columns are ordered: C11, C22, ...,
|
||||
CNN.
|
||||
* For *type* = *upper*, the Npair = N\*(N-1)/2 columns are ordered: C12,
|
||||
C13, ..., C1N, C23, ..., C2N, C34, ..., CN-1N.
|
||||
* For *type* = *lower*, the Npair = N\*(N-1)/2 columns are ordered: C21,
|
||||
C31, C32, C41, C42, C43, ..., CN1, CN2, ..., CNN-1.
|
||||
* For *type* = *auto/upper*, the Npair = N\*(N+1)/2 columns are ordered:
|
||||
C11, C12, C13, ..., C1N, C22, C23, ..., C2N, C33, C34, ..., CN-1N,
|
||||
CNN.
|
||||
* For *type* = *auto/lower*, the Npair = N\*(N+1)/2 columns are ordered:
|
||||
C11, C21, C22, C31, C32, C33, C41, ..., C44, CN1, CN2, ..., CNN-1,
|
||||
CNN.
|
||||
* For *type* = *full*, the Npair = N\^2 columns are ordered: C11, C12,
|
||||
..., C1N, C21, C22, ..., C2N, C31, ..., C3N, ..., CN1, ..., CNN-1,
|
||||
CNN.
|
||||
* For *type* = *auto*, the :math:`N_\text{pair} = N` columns are ordered:
|
||||
:math:`C_{11}, C_{22}, \dotsc, C_{NN}`
|
||||
* For *type* = *upper*, the :math:`N_\text{pair} = N(N-1)/2` columns are
|
||||
ordered: :math:`C_{12}, C_{13}, \dotsc, C_{1N}, C_{23}, \dotsc, C_{2N},
|
||||
C_{34}, \dotsc, C_{N-1,N}`
|
||||
* For *type* = *lower*, the :math:`N_\text{pair} = N(N-1)/2` columns are
|
||||
ordered: :math:`C_{21}, C_{31}, C_{32}, C_{41}, C_{42}, C_{43I}, \dotsc,
|
||||
C_{N1}, C_{N2}, \dotsc, C_{N,N-1}`
|
||||
* For *type* = *auto/upper*, the :math:`N_\text{pair} = N(N+1)/2` columns are
|
||||
ordered: :math:`C_{11}, C_{12}, C_{13}, \dotsc, C_{1N}, C_{22}, C_{23},
|
||||
\dotsc, C_{2N}, C_{33}, C_{34}, \dotsc, C_{N-1,N}, C_{NN}`
|
||||
* For *type* = *auto/lower*, the :math:`N_\text{pair} = N(N+1)/2` columns are
|
||||
ordered: :math:`C_{11}, C_{21}, C_{22}, C_{31}, C_{32}, C_{33}, C_{41},
|
||||
\dotsc, C_{44}, C_{N1}, C_{N2}, \dotsc, C_{N,N-1}, C_{NN}`
|
||||
* For *type* = *full*, the :math:`N_\text{pair} = N^2` columns are ordered:
|
||||
:math:`C_{11}, C_{12}, \dotsc, C_{1N}, C_{21}, C_{22}, \dotsc, C_{2N},
|
||||
C_{31}, \dotsc, C_{3N}, \dotsc, C_{N1}, \dotsc, C_{N,N-1}, C_{NN}`
|
||||
|
||||
The array values calculated by this fix are treated as intensive. If
|
||||
The array values calculated by this fix are treated as extensive. If
|
||||
you need to divide them by the number of atoms, you must do this in a
|
||||
later processing step, e.g. when using them in a
|
||||
:doc:`variable <variable>`.
|
||||
later processing step (e.g., when using them in a :doc:`variable <variable>`).
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
@ -368,7 +386,8 @@ Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`fix ave/correlate/long <fix_ave_correlate_long>`,
|
||||
:doc:`compute <compute>`, :doc:`fix ave/time <fix_ave_time>`, :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`,
|
||||
:doc:`compute <compute>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`,
|
||||
:doc:`fix ave/histo <fix_ave_histo>`, :doc:`variable <variable>`
|
||||
|
||||
Default
|
||||
|
||||
@ -6,14 +6,14 @@ fix ave/correlate/long command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ave/correlate/long Nevery Nfreq value1 value2 ... keyword args ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* ave/correlate/long = style name of this fix command
|
||||
* Nevery = use input values every this many timesteps
|
||||
* Nfreq = save state of the time correlation functions every this many timesteps
|
||||
* Nevery = use input values every this many time steps
|
||||
* Nfreq = save state of the time correlation functions every this many time steps
|
||||
* one or more input values can be listed
|
||||
* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
||||
|
||||
@ -38,7 +38,7 @@ Syntax
|
||||
auto/lower = auto + lower
|
||||
full = correlate each value with every other value, including itself = auto + upper + lower
|
||||
*start* args = Nstart
|
||||
Nstart = start accumulating correlations on this timestep
|
||||
Nstart = start accumulating correlations on this time step
|
||||
*file* arg = filename
|
||||
filename = name of file to output correlation data to
|
||||
*overwrite* arg = none = overwrite output file with only latest output
|
||||
@ -66,10 +66,11 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This fix is similar in spirit and syntax to the :doc:`fix ave/correlate <fix_ave_correlate>`.
|
||||
This fix is similar in spirit and syntax to the
|
||||
:doc:`fix ave/correlate <fix_ave_correlate>`.
|
||||
However, this fix allows the efficient calculation of time correlation
|
||||
functions on-the-fly over extremely long time windows with little
|
||||
additional CPU overhead, using a multiple-tau method
|
||||
additional CPU overhead, using a multiple-:math:`\tau` method
|
||||
:ref:`(Ramirez) <Ramirez>` that decreases the resolution of the stored
|
||||
correlation function with time. It is not a full drop-in replacement.
|
||||
|
||||
@ -78,37 +79,41 @@ specified values may represent calculations performed by computes and
|
||||
fixes which store their own "group" definitions.
|
||||
|
||||
Each listed value can be the result of a compute or fix or the
|
||||
evaluation of an equal-style variable. See the :doc:`fix ave/correlate <fix_ave_correlate>` page for details.
|
||||
evaluation of an equal-style variable. See the
|
||||
:doc:`fix ave/correlate <fix_ave_correlate>` page for details.
|
||||
|
||||
The *Nevery* and *Nfreq* arguments specify on what timesteps the input
|
||||
values will be used to calculate correlation data, and the frequency
|
||||
with which the time correlation functions will be output to a file.
|
||||
Note that there is no *Nrepeat* argument, unlike the :doc:`fix ave/correlate <fix_ave_correlate>` command.
|
||||
The *Nevery* and *Nfreq* arguments specify on what time steps the input
|
||||
values will be used to calculate correlation data and the frequency
|
||||
with which the time correlation functions will be output to a file,
|
||||
respectively.
|
||||
Note that there is no *Nrepeat* argument, unlike the
|
||||
:doc:`fix ave/correlate <fix_ave_correlate>` command.
|
||||
|
||||
The optional keywords *ncorr*, *nlen*, and *ncount* are unique to this
|
||||
command and determine the number of correlation points calculated and
|
||||
the memory and CPU overhead used by this calculation. *Nlen* and
|
||||
*ncount* determine the amount of averaging done at longer correlation
|
||||
times. The default values *nlen=16*, *ncount=2* ensure that the
|
||||
systematic error of the multiple-tau correlator is always below the
|
||||
times. The default values *nlen* = 16 and *ncount* = 2 ensure that the
|
||||
systematic error of the multiple-:math:`\tau` correlator is always below the
|
||||
level of the statistical error of a typical simulation (which depends
|
||||
on the ensemble size and the simulation length).
|
||||
|
||||
The maximum correlation time (in time steps) that can be reached is
|
||||
given by the formula (nlen-1) \* ncount\^(ncorr-1). Longer correlation
|
||||
given by the formula :math:`(nlen-1) ncount^{(ncorr-1)}`. Longer correlation
|
||||
times are discarded and not calculated. With the default values of
|
||||
the parameters (ncorr=20, nlen=16 and ncount=2), this corresponds to
|
||||
7864320 time steps. If longer correlation times are needed, the value
|
||||
of ncorr should be increased. Using nlen=16 and ncount=2, with
|
||||
ncorr=30, the maximum number of steps that can be correlated is
|
||||
80530636808. If ncorr=40, correlation times in excess of 8e12 time
|
||||
steps can be calculated.
|
||||
the parameters (:math:`ncorr=20`, :math:`nlen=16` and :math:`ncount=2`),
|
||||
this corresponds to 7864320 time steps. If longer correlation times are
|
||||
needed, the value of ncorr should be increased. Using :math:`nlen=16` and
|
||||
:math:`ncount=2`, with :math:`ncorr=30`, the maximum number of steps that can
|
||||
be correlated is 80530636808. If :math:`ncorr=40`, correlation times in excess
|
||||
of :math:`8\times 10^{12}` time steps can be calculated.
|
||||
|
||||
The total memory needed for each correlation pair is roughly
|
||||
4\*ncorr\*nlen\*8 bytes. With the default values of the parameters, this
|
||||
corresponds to about 10 KB.
|
||||
:math:`4 \times ncorr\times nlen \times 8` bytes.
|
||||
With the default values of the parameters, this corresponds to about 10 KB.
|
||||
|
||||
For the meaning of the additional optional keywords, see the :doc:`fix ave/correlate <fix_ave_correlate>` doc page.
|
||||
For the meaning of the additional optional keywords, see the
|
||||
:doc:`fix ave/correlate <fix_ave_correlate>` doc page.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
@ -128,7 +133,8 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the EXTRA-FIX 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
|
||||
""""""""""""""""
|
||||
@ -140,8 +146,9 @@ Default
|
||||
|
||||
none
|
||||
|
||||
The option defaults for keywords that are also keywords for the :doc:`fix ave/correlate <fix_ave_correlate>` command are as follows: type =
|
||||
auto, start = 0, no file output, title 1,2 = strings as described on
|
||||
The option defaults for keywords that are also keywords for the
|
||||
:doc:`fix ave/correlate <fix_ave_correlate>` command are as follows:
|
||||
type = auto, start = 0, no file output, title 1,2 = strings as described on
|
||||
the :doc:`fix ave/correlate <fix_ave_correlate>` doc page.
|
||||
|
||||
The option defaults for keywords unique to this command are as
|
||||
|
||||
@ -10,7 +10,7 @@ fix ave/histo/weight command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID style Nevery Nrepeat Nfreq lo hi Nbin value1 value2 ... keyword args ...
|
||||
|
||||
@ -22,7 +22,7 @@ Syntax
|
||||
* lo,hi = lo/hi bounds within which to histogram
|
||||
* Nbin = # of histogram bins
|
||||
* one or more input values can be listed
|
||||
* value = x, y, z, vx, vy, vz, fx, fy, fz, c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
||||
* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -126,26 +126,27 @@ length. The first value (a scalar or vector) is what is histogrammed
|
||||
into bins, in the same manner the fix ave/histo command operates. The
|
||||
second value (a scalar or vector) is used as a "weight". This means
|
||||
that instead of each value tallying a "1" to its bin, the
|
||||
corresponding weight is tallied. E.g. The Nth entry (weight) in the
|
||||
second vector is tallied to the bin corresponding to the Nth entry in
|
||||
the first vector.
|
||||
corresponding weight is tallied. For example, the :math:`N^\text{th}` entry
|
||||
(weight) in the second vector is tallied to the bin corresponding to the
|
||||
:math:`N^\text{th}` entry in the first vector.
|
||||
|
||||
----------
|
||||
|
||||
For input values from a compute or fix or variable, the bracketed
|
||||
index I can be specified using a wildcard asterisk with the index to
|
||||
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 the number of columns in the array (for *mode* = vector),
|
||||
then an asterisk with no numeric values means all indices from 1 to N.
|
||||
"\*n" 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 asterisk with no numeric values means all
|
||||
indices from 1 to :math:`N`\ .
|
||||
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). A middle
|
||||
asterisk means all indices from m to n (inclusive).
|
||||
|
||||
Using a wildcard is the same as if the individual elements of the
|
||||
vector or columns of the array had been listed one by one. E.g. these
|
||||
2 fix ave/histo commands are equivalent, since the :doc:`compute
|
||||
com/chunk <compute_com_chunk>` command creates a global array with 3
|
||||
vector or columns of the array had been listed one by one. For example, the
|
||||
following two fix ave/histo commands are equivalent, since the :doc:`compute
|
||||
com/chunk <compute_com_chunk>` command creates a global array with three
|
||||
columns:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
@ -164,31 +165,35 @@ columns:
|
||||
|
||||
----------
|
||||
|
||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
||||
timesteps the input values will be used in order to contribute to the
|
||||
histogram. The final histogram is generated on timesteps that are
|
||||
multiple of *Nfreq*\ . It is averaged over *Nrepeat* histograms,
|
||||
computed in the preceding portion of the simulation every *Nevery*
|
||||
timesteps. *Nfreq* must be a multiple of *Nevery* and *Nevery* must
|
||||
be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
||||
contributing to the histogram value cannot overlap,
|
||||
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
||||
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||
arguments specify on what time steps the input values will be used in order to
|
||||
contribute to the histogram. The final histogram is generated on time steps
|
||||
that are multiple of :math:`N_\text{freq}`\ . It is averaged over
|
||||
:math:`N_\text{repeat}` histograms, computed in the preceding portion of the
|
||||
simulation every :math:`N_\text{every}` time steps.
|
||||
:math:`N_\text{freq}` must be a multiple of :math:`N_\text{every}` and
|
||||
:math:`N_\text{every}` must be non-zero even if :math:`N_\text{repeat}` is 1.
|
||||
Also, the time steps contributing to the histogram value cannot overlap
|
||||
(i.e., :math:`N_\text{repeat}\times N_\text{every}` cannot exceed
|
||||
:math:`N_\text{freq}`).
|
||||
|
||||
For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then input values
|
||||
on timesteps 90,92,94,96,98,100 will be used to compute the final
|
||||
histogram on timestep 100. Similarly for timesteps
|
||||
190,192,194,196,198,200 on timestep 200, etc. If Nrepeat=1 and Nfreq
|
||||
= 100, then no time averaging of the histogram is done; a histogram is
|
||||
simply generated on timesteps 100,200,etc.
|
||||
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||
:math:`N_\text{freq}=100`, then input values on time steps 90, 92, 94, 96, 98,
|
||||
and 100 will be used to compute the final histogram on timestep 100.
|
||||
Similarly for timesteps 190, 192, 194, 196, 198, and 200 on timestep 200, etc.
|
||||
If :math:`N_\text{repeat}=1` and :math:`N_\text{freq} = 100`, then no time
|
||||
averaging of the histogram is done; a histogram is simply generated on
|
||||
timesteps 100, 200, etc.
|
||||
|
||||
----------
|
||||
|
||||
The atom attribute values (x,y,z,vx,vy,vz,fx,fy,fz) are
|
||||
self-explanatory. Note that other atom attributes can be used as
|
||||
inputs to this fix by using the :doc:`compute property/atom <compute_property_atom>` command and then specifying
|
||||
an input value from that compute.
|
||||
The atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and
|
||||
*fz*) are self-explanatory. Note that other atom attributes can be used as
|
||||
inputs to this fix by using the
|
||||
:doc:`compute property/atom <compute_property_atom>` command and then
|
||||
specifying an input value from that compute.
|
||||
|
||||
If a value begins with "c\_", a compute ID must follow which has been
|
||||
If a value begins with "c\_," a compute ID must follow which has been
|
||||
previously defined in the input script. If *mode* = scalar, then if
|
||||
no bracketed term is appended, the global scalar calculated by the
|
||||
compute is used. If a bracketed term is appended, the Ith element of
|
||||
@ -201,35 +206,38 @@ how I can be specified with a wildcard asterisk to effectively specify
|
||||
multiple values.
|
||||
|
||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||
which can sum per-atom quantities into a global scalar or vector which
|
||||
can thus be accessed by fix ave/histo. Or it can be a compute defined
|
||||
not in your input script, but by :doc:`thermodynamic output <thermo_style>` or other fixes such as :doc:`fix nvt <fix_nh>`
|
||||
that can sum per-atom quantities into a global scalar or vector, which
|
||||
can then be accessed by fix ave/histo. It can also be a compute defined
|
||||
not in your input script, but by :doc:`thermodynamic output <thermo_style>`
|
||||
or other fixes such as :doc:`fix nvt <fix_nh>`
|
||||
or :doc:`fix temp/rescale <fix_temp_rescale>`. See the doc pages for
|
||||
these commands which give the IDs of these computes. Users can also
|
||||
write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
write code for their own compute styles and
|
||||
:doc:`add them to LAMMPS <Modify>`.
|
||||
|
||||
If a value begins with "f\_", a fix ID must follow which has been
|
||||
If a value begins with "f\_," a fix ID must follow which has been
|
||||
previously defined in the input script. If *mode* = scalar, then if
|
||||
no bracketed term is appended, the global scalar calculated by the fix
|
||||
is used. If a bracketed term is appended, the Ith element of the
|
||||
global vector calculated by the fix is used. If *mode* = vector, then
|
||||
if no bracketed term is appended, the global or per-atom or local
|
||||
vector calculated by the fix is used. If a bracketed term is
|
||||
appended, the Ith column of the global or per-atom or local array
|
||||
calculated by the fix is used. See the discussion above for how I can
|
||||
be specified with a wildcard asterisk to effectively specify multiple
|
||||
values.
|
||||
appended, the :math:`I^\text{th}` column of the global or per-atom or local
|
||||
array calculated by the fix is used. See the discussion above for how
|
||||
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||
multiple values.
|
||||
|
||||
Note that some fixes only produce their values on certain timesteps,
|
||||
which must be compatible with *Nevery*, else an error will result.
|
||||
Users can also write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
which must be compatible with :math:`N_\text{every}`, else an error will
|
||||
result. Users can also write code for their own fix styles and
|
||||
:doc:`add them to LAMMPS <Modify>`.
|
||||
|
||||
If a value begins with "v\_", a variable name must follow which has
|
||||
If a value begins with "v\_," a variable name must follow which has
|
||||
been previously defined in the input script. If *mode* = scalar, then
|
||||
only equal-style or vector-style variables can be used, which both
|
||||
produce global values. In this mode, a vector-style variable requires
|
||||
a bracketed term to specify the Ith element of the vector calculated
|
||||
by the variable. If *mode* = vector, then only vector-style or
|
||||
a bracketed term to specify the :math:`I^\text{th}` element of the vector
|
||||
calculated by the variable. If *mode* = vector, then only vector-style or
|
||||
atom-style variables can be used, which produce a global or per-atom
|
||||
vector respectively. The vector-style variable must be used without a
|
||||
bracketed term. See the :doc:`variable <variable>` command for details.
|
||||
@ -259,44 +267,44 @@ keyword should be used to specify which output will be used. The
|
||||
remaining input arguments must still be consistent.
|
||||
|
||||
The *beyond* keyword determines how input values that fall outside the
|
||||
*lo* to *hi* bounds are treated. Values such that *lo* <= value <=
|
||||
*hi* are assigned to one bin. Values on a bin boundary are assigned
|
||||
to the lower of the 2 bins. If *beyond* is set to *ignore* then
|
||||
values < *lo* and values > *hi* are ignored, i.e. they are not binned.
|
||||
If *beyond* is set to *end* then values < *lo* are counted in the
|
||||
first bin and values > *hi* are counted in the last bin. If *beyond*
|
||||
is set to *extend* then two extra bins are created, so that there are
|
||||
Nbins+2 total bins. Values < *lo* are counted in the first bin and
|
||||
values > *hi* are counted in the last bin (Nbins+2). Values between
|
||||
*lo* and *hi* (inclusive) are counted in bins 2 through Nbins+1. The
|
||||
"coordinate" stored and printed for these two extra bins is *lo* and
|
||||
*hi*\ .
|
||||
*lo* to *hi* bounds are treated. Values such that *lo* :math:`\le` value
|
||||
:math:`\le` *hi* are assigned to one bin. Values on a bin boundary are
|
||||
assigned to the lower of the two bins. If *beyond* is set to *ignore* then
|
||||
values :math:`<` *lo* and values :math:`>` *hi* are ignored (i.e., they are not
|
||||
binned). If *beyond* is set to *end*, then values :math:`<` *lo* are counted in
|
||||
the first bin and values :math:`>` *hi* are counted in the last bin.
|
||||
If *beyond* is set to *extend*, then two extra bins are created so that there
|
||||
are :math:`N_\text{bins}+2` total bins. Values :math:`<` *lo* are counted in
|
||||
the first bin and values :math:`>` *hi* are counted in the last bin
|
||||
:math:`(N_\text{bins}+2)`\ . Values between
|
||||
*lo* and *hi* (inclusive) are counted in bins 2 through
|
||||
:math:`N_\text{bins}+1`\ . The "coordinate" stored and printed for these two
|
||||
extra bins is *lo* and *hi*\ .
|
||||
|
||||
The *ave* keyword determines how the histogram produced every *Nfreq*
|
||||
steps are averaged with histograms produced on previous steps that
|
||||
were multiples of *Nfreq*, before they are accessed by another output
|
||||
command or written to a file.
|
||||
The *ave* keyword determines how the histogram produced every
|
||||
:math:`N_\text{freq}` steps are averaged with histograms produced on previous
|
||||
steps that were multiples of :math:`N_\text{freq}`, before they are accessed by
|
||||
another output command or written to a file.
|
||||
|
||||
If the *ave* setting is *one*, then the histograms produced on
|
||||
timesteps that are multiples of *Nfreq* are independent of each other;
|
||||
they are output as-is without further averaging.
|
||||
timesteps that are multiples of :math:`N_\text{freq}` are independent of each
|
||||
other; they are output as-is without further averaging.
|
||||
|
||||
If the *ave* setting is *running*, then the histograms produced on
|
||||
timesteps that are multiples of *Nfreq* are summed and averaged in a
|
||||
cumulative sense before being output. Each bin value in the histogram
|
||||
is thus the average of the bin value produced on that timestep with
|
||||
all preceding values for the same bin. This running average begins
|
||||
when the fix is defined; it can only be restarted by deleting the fix
|
||||
via the :doc:`unfix <unfix>` command, or by re-defining the fix by
|
||||
re-specifying it.
|
||||
timesteps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||
in a cumulative sense before being output. Each bin value in the histogram
|
||||
is thus the average of the bin value produced on that timestep with all
|
||||
preceding values for the same bin. This running average begins when the fix is
|
||||
defined; it can only be restarted by deleting the fix via the
|
||||
:doc:`unfix <unfix>` command, or by re-defining the fix by re-specifying it.
|
||||
|
||||
If the *ave* setting is *window*, then the histograms produced on
|
||||
timesteps that are multiples of *Nfreq* are summed within a moving
|
||||
"window" of time, so that the last M histograms are used to produce
|
||||
the output. E.g. if M = 3 and Nfreq = 1000, then the output on step
|
||||
10000 will be the combined histogram of the individual histograms on
|
||||
steps 8000,9000,10000. Outputs on early steps will be sums over less
|
||||
than M histograms if they are not available.
|
||||
timesteps that are multiples of :math:`N_\text{freq}` are summed within a
|
||||
moving "window" of time, so that the last :math:`M` histograms are used to
|
||||
produce the output (e.g., if :math:`M = 3` and :math:`N_\text{freq} = 1000`,
|
||||
then the output on step 10000 will be the combined histogram of the individual
|
||||
histograms on steps 8000, 9000, and 10000. Outputs on early steps will be sums
|
||||
over less than :math:`M` histograms if they are not available.
|
||||
|
||||
The *start* keyword specifies what timestep histogramming will begin
|
||||
on. The default is step 0. Often input values can be 0.0 at time 0,
|
||||
@ -321,8 +329,8 @@ The *overwrite* keyword will continuously overwrite the output file
|
||||
with the latest output, so that it only contains one timestep worth of
|
||||
output. This option can only be used with the *ave running* setting.
|
||||
|
||||
The *title1* and *title2* and *title3* keywords allow specification of
|
||||
the strings that will be printed as the first 3 lines of the output
|
||||
The *title1*, *title2*, and *title3* keywords allow specification of
|
||||
the strings that will be printed as the first three lines of the output
|
||||
file, assuming the *file* keyword was used. LAMMPS uses default
|
||||
values for each of these, so they do not need to be specified.
|
||||
|
||||
@ -336,7 +344,7 @@ By default, these header lines are as follows:
|
||||
|
||||
In the first line, ID is replaced with the fix-ID. The second line
|
||||
describes the six values that are printed at the first of each section
|
||||
of output. The third describes the 4 values printed for each bin in
|
||||
of output. The third describes the four values printed for each bin in
|
||||
the histogram.
|
||||
|
||||
----------
|
||||
@ -344,13 +352,14 @@ the histogram.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix.
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`.
|
||||
None of the :doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||
|
||||
This fix produces a global vector and global array which can be
|
||||
accessed by various :doc:`output commands <Howto_output>`. The values
|
||||
can only be accessed on timesteps that are multiples of *Nfreq* since
|
||||
that is when a histogram is generated. The global vector has 4
|
||||
can only be accessed on timesteps that are multiples of :math:`N_\text{freq}`
|
||||
since that is when a histogram is generated. The global vector has four
|
||||
values:
|
||||
|
||||
* 1 = total counts in the histogram
|
||||
@ -358,19 +367,20 @@ values:
|
||||
* 3 = min value of all input values, including ones not histogrammed
|
||||
* 4 = max value of all input values, including ones not histogrammed
|
||||
|
||||
The global array has # of rows = Nbins and # of columns = 3. The
|
||||
The global array has :math:`N_\text{bins}` rows and three columns. The
|
||||
first column has the bin coordinate, the second column has the count of
|
||||
values in that histogram bin, and the third column has the bin count
|
||||
divided by the total count (not including missing counts), so that the
|
||||
values in the third column sum to 1.0.
|
||||
|
||||
The vector and array values calculated by this fix are all treated as
|
||||
intensive. If this is not the case, e.g. due to histogramming
|
||||
per-atom input values, then you will need to account for that when
|
||||
intensive. If this is not the case (e.g., due to histogramming
|
||||
per-atom input values), then you will need to account for that when
|
||||
interpreting the values produced by this fix.
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command.
|
||||
This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
@ -379,7 +389,8 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`,
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/time <fix_ave_time>`,
|
||||
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`,
|
||||
|
||||
Default
|
||||
|
||||
@ -6,15 +6,15 @@ fix ave/time command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* ave/time = style name of this fix command
|
||||
* Nevery = use input values every this many timesteps
|
||||
* Nevery = use input values every this many time steps
|
||||
* Nrepeat = # of times to use input values for calculating averages
|
||||
* Nfreq = calculate averages every this many timesteps
|
||||
* Nfreq = calculate averages every this many time steps
|
||||
* one or more input values can be listed
|
||||
* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
||||
|
||||
@ -40,7 +40,7 @@ Syntax
|
||||
running = output cumulative average of all previous Nfreq steps
|
||||
window M = output average of M most recent Nfreq steps
|
||||
*start* args = Nstart
|
||||
Nstart = start averaging on this timestep
|
||||
Nstart = start averaging on this time step
|
||||
*off* arg = M = do not average this value
|
||||
M = value # from 1 to Nvalues
|
||||
*file* arg = filename
|
||||
@ -69,7 +69,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Use one or more global values as inputs every few timesteps, and
|
||||
Use one or more global values as inputs every few time steps, and
|
||||
average them over longer timescales. The resulting averages can be
|
||||
used by other :doc:`output commands <Howto_output>` such as
|
||||
:doc:`thermo_style custom <thermo_style>`, and can also be written to a
|
||||
@ -86,9 +86,11 @@ Each listed value can be the result of a :doc:`compute <compute>` or
|
||||
:doc:`variable <variable>`. In each case, the compute, fix, or variable
|
||||
must produce a global quantity, not a per-atom or local quantity. If
|
||||
you wish to spatial- or time-average or histogram per-atom quantities
|
||||
from a compute, fix, or variable, then see the :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/atom <fix_ave_atom>`,
|
||||
from a compute, fix, or variable, then see the
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/atom <fix_ave_atom>`,
|
||||
or :doc:`fix ave/histo <fix_ave_histo>` commands. If you wish to sum a
|
||||
per-atom quantity into a single global quantity, see the :doc:`compute reduce <compute_reduce>` command.
|
||||
per-atom quantity into a single global quantity, see the
|
||||
:doc:`compute reduce <compute_reduce>` command.
|
||||
|
||||
:doc:`Computes <compute>` that produce global quantities are those which
|
||||
do not have the word *atom* in their style name. Only a few
|
||||
@ -100,13 +102,13 @@ be used, since they produce per-atom values.
|
||||
|
||||
The input values must either be all scalars or all vectors depending
|
||||
on the setting of the *mode* keyword. In both cases, the averaging is
|
||||
performed independently on each input value. I.e. each input scalar
|
||||
performed independently on each input value (i.e., each input scalar
|
||||
is averaged independently or each element of each input vector is
|
||||
averaged independently.
|
||||
averaged independently).
|
||||
|
||||
If *mode* = scalar, then the input values must be scalars, or vectors
|
||||
with a bracketed term appended, indicating the Ith value of the vector
|
||||
is used.
|
||||
with a bracketed term appended, indicating the :math:`I^\text{th}` value of the
|
||||
vector is used.
|
||||
|
||||
If *mode* = vector, then the input values must be vectors, or arrays
|
||||
with a bracketed term appended, indicating the Ith column of the array
|
||||
@ -118,17 +120,17 @@ the vector or number of rows in the array.
|
||||
For input values from a compute or fix or variable, the bracketed
|
||||
index I can be specified using a wildcard asterisk with the index to
|
||||
effectively specify multiple values. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n". If N = the size of the vector (for *mode* =
|
||||
"\*n" 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 asterisk with no numeric values means all indices from 1 to N.
|
||||
A leading asterisk means all indices from 1 to n (inclusive). A
|
||||
trailing asterisk means all indices from n to N (inclusive). A middle
|
||||
asterisk means all indices from m to n (inclusive).
|
||||
then an asterisk with no numeric values means all indices from 1 to :math:`N`.
|
||||
A leading asterisk means all indices from 1 to n (inclusive). A trailing
|
||||
asterisk means all indices from n to :math:`N` (inclusive). A middle asterisk
|
||||
means all indices from m to n (inclusive).
|
||||
|
||||
Using a wildcard is the same as if the individual elements of the
|
||||
vector or columns of the array had been listed one by one. E.g. these
|
||||
2 fix ave/time commands are equivalent, since the :doc:`compute rdf
|
||||
<compute_rdf>` command creates, in this case, a global array with 3
|
||||
vector or columns of the array had been listed one by one. For example, the
|
||||
following two fix ave/time commands are equivalent, since the :doc:`compute rdf
|
||||
<compute_rdf>` command creates, in this case, a global array with three
|
||||
columns, each of length 50:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
@ -147,22 +149,24 @@ columns, each of length 50:
|
||||
|
||||
----------
|
||||
|
||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
||||
timesteps the input values will be used in order to contribute to the
|
||||
average. The final averaged quantities are generated on timesteps
|
||||
that are a multiple of *Nfreq*\ . The average is over *Nrepeat*
|
||||
quantities, computed in the preceding portion of the simulation every
|
||||
*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and
|
||||
*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
||||
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||
arguments specify on what time steps the input values will be used in order to
|
||||
contribute to the average. The final averaged quantities are generated on
|
||||
time steps that are a multiple of :math:`N_\text{freq}`\ . The average is over
|
||||
:math:`N_\text{repeat}` quantities, computed in the preceding portion of the
|
||||
simulation every :math:`N_\text{every}` time steps. :math:`N_\text{freq}` must
|
||||
be a multiple of :math:`N_\text{every}` and :math:`N_\text{every}` must be
|
||||
non-zero even if :math:`N_\text{repeat} = 1`. Also, the time steps
|
||||
contributing to the average value cannot overlap,
|
||||
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
||||
|
||||
For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on
|
||||
timesteps 90,92,94,96,98,100 will be used to compute the final average
|
||||
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
||||
timestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time
|
||||
averaging is done; values are simply generated on timesteps
|
||||
100,200,etc.
|
||||
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||
:math:`N_\text{freq}=100`, then values on time steps 90, 92, 94, 96, 98, and
|
||||
100 will be used to compute the final average on time step 100. Similarly for
|
||||
time steps 190, 192, 194, 196, 198, and 200 on time step 200, etc.
|
||||
If :math:`N_\text{repeat}=1` and :math:`N_\text{freq} = 100`, then no time
|
||||
averaging is done; values are simply generated on time steps
|
||||
100, 200, etc.
|
||||
|
||||
----------
|
||||
|
||||
@ -178,8 +182,8 @@ See the discussion above for how I can be specified with a wildcard
|
||||
asterisk to effectively specify multiple values.
|
||||
|
||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||
which can sum per-atom quantities into a global scalar or vector which
|
||||
can thus be accessed by fix ave/time. Or it can be a compute defined
|
||||
that can sum per-atom quantities into a global scalar or vector, which
|
||||
can then be accessed by fix ave/time. It can also be a compute defined
|
||||
not in your input script, but by :doc:`thermodynamic output
|
||||
<thermo_style>` or other fixes such as :doc:`fix nvt <fix_nh>` or
|
||||
:doc:`fix temp/rescale <fix_temp_rescale>`. See the doc pages for
|
||||
@ -198,7 +202,7 @@ global array calculated by the fix is used. See the discussion above
|
||||
for how I can be specified with a wildcard asterisk to effectively
|
||||
specify multiple values.
|
||||
|
||||
Note that some fixes only produce their values on certain timesteps,
|
||||
Note that some fixes only produce their values on certain time steps,
|
||||
which must be compatible with *Nevery*, else an error will result.
|
||||
Users can also write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`.
|
||||
|
||||
@ -228,32 +232,32 @@ vectors, or columns of global arrays. They can also be global arrays,
|
||||
which are converted into a series of global vectors (one per column),
|
||||
as explained above.
|
||||
|
||||
The *ave* keyword determines how the values produced every *Nfreq*
|
||||
steps are averaged with values produced on previous steps that were
|
||||
multiples of *Nfreq*, before they are accessed by another output
|
||||
command or written to a file.
|
||||
The *ave* keyword determines how the values produced every
|
||||
:math:`N_\text{freq}` steps are averaged with values produced on previous steps
|
||||
that were multiples of :math:`N_\text{freq}`, before they are accessed by
|
||||
another output command or written to a file.
|
||||
|
||||
If the *ave* setting is *one*, then the values produced on timesteps
|
||||
that are multiples of *Nfreq* are independent of each other; they are
|
||||
output as-is without further averaging.
|
||||
If the *ave* setting is *one*, then the values produced on time steps
|
||||
that are multiples of :math:`N_\text{freq}` are independent of each other; they
|
||||
are output as-is without further averaging.
|
||||
|
||||
If the *ave* setting is *running*, then the values produced on
|
||||
timesteps that are multiples of *Nfreq* are summed and averaged in a
|
||||
cumulative sense before being output. Each output value is thus the
|
||||
average of the value produced on that timestep with all preceding
|
||||
time steps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||
in a cumulative sense before being output. Each output value is thus the
|
||||
average of the value produced on that time step with all preceding
|
||||
values. This running average begins when the fix is defined; it can
|
||||
only be restarted by deleting the fix via the :doc:`unfix <unfix>`
|
||||
command, or by re-defining the fix by re-specifying it.
|
||||
|
||||
If the *ave* setting is *window*, then the values produced on
|
||||
timesteps that are multiples of *Nfreq* are summed and averaged within
|
||||
time steps that are multiples of *Nfreq* are summed and averaged within
|
||||
a moving "window" of time, so that the last M values are used to
|
||||
produce the output. E.g. if M = 3 and Nfreq = 1000, then the output
|
||||
on step 10000 will be the average of the individual values on steps
|
||||
8000,9000,10000. Outputs on early steps will average over less than M
|
||||
values if they are not available.
|
||||
produce the output. For example, if :math:`M = 3` and
|
||||
:math:`N_\text{freq} = 1000`, then the output on step 10000 will be the average
|
||||
of the individual values on steps 8000, 9000, and 10000. Outputs on early
|
||||
steps will average over less than :math:`M` values if they are not available.
|
||||
|
||||
The *start* keyword specifies what timestep averaging will begin on.
|
||||
The *start* keyword specifies what time step averaging will begin on.
|
||||
The default is step 0. Often input values can be 0.0 at time 0, so
|
||||
setting *start* to a larger value can avoid including a 0.0 in a
|
||||
running or windowed average.
|
||||
@ -262,9 +266,9 @@ The *off* keyword can be used to flag any of the input values. If a
|
||||
value is flagged, it will not be time averaged. Instead the most
|
||||
recent input value will always be stored and output. This is useful
|
||||
if one of more of the inputs produced by a compute or fix or variable
|
||||
are effectively constant or are simply current values. E.g. they are
|
||||
are effectively constant or are simply current values (e.g., they are
|
||||
being written to a file with other time-averaged values for purposes
|
||||
of creating well-formatted output.
|
||||
of creating well-formatted output).
|
||||
|
||||
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
||||
steps, one quantity or vector of quantities is written to the file for
|
||||
@ -288,13 +292,13 @@ effort in Python using the *pyyaml*, *pandas*, and *matplotlib*
|
||||
packages.
|
||||
|
||||
The *overwrite* keyword will continuously overwrite the output file
|
||||
with the latest output, so that it only contains one timestep worth of
|
||||
with the latest output, so that it only contains one time step worth of
|
||||
output. This option can only be used with the *ave running* setting.
|
||||
|
||||
The *format* keyword sets the numeric format of each value when it is
|
||||
printed to a file via the *file* keyword. Note that all values are
|
||||
floating point quantities. The default format is %g. You can specify
|
||||
a higher precision if desired, e.g. %20.16g.
|
||||
a higher precision if desired (e.g., %20.16g).
|
||||
|
||||
The *title1* and *title2* and *title3* keywords allow specification of
|
||||
the strings that will be printed as the first 2 or 3 lines of the
|
||||
@ -340,8 +344,8 @@ a YAML format file this name will be in the list of keywords.
|
||||
|
||||
This fix produces a global scalar or global vector or global array
|
||||
which can be accessed by various :doc:`output commands <Howto_output>`.
|
||||
The values can only be accessed on timesteps that are multiples of
|
||||
*Nfreq* since that is when averaging is performed.
|
||||
The values can only be accessed on time steps that are multiples of
|
||||
:math:`N_\text{freq}` since that is when averaging is performed.
|
||||
|
||||
A scalar is produced if only a single input value is averaged and
|
||||
*mode* = scalar. A vector is produced if multiple input values are
|
||||
@ -354,17 +358,18 @@ of rows = length of the input vectors and # of columns = number of
|
||||
inputs.
|
||||
|
||||
If the fix produces a scalar or vector, then the scalar and each
|
||||
element of the vector can be either "intensive" or "extensive",
|
||||
element of the vector can be either "intensive" or "extensive,"
|
||||
depending on whether the values contributing to the scalar or vector
|
||||
element are "intensive" or "extensive". If the fix produces an array,
|
||||
element are "intensive" or "extensive." If the fix produces an array,
|
||||
then all elements in the array must be the same, either "intensive" or
|
||||
"extensive". If a compute or fix provides the value being time
|
||||
"extensive." If a compute or fix provides the value being time
|
||||
averaged, then the compute or fix determines whether the value is
|
||||
intensive or extensive; see the page for that compute or fix for
|
||||
further info. Values produced by a variable are treated as intensive.
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
@ -373,7 +378,8 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`, :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/histo <fix_ave_histo>`,
|
||||
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`,
|
||||
:doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/histo <fix_ave_histo>`,
|
||||
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`,
|
||||
|
||||
Default
|
||||
|
||||
@ -6,7 +6,7 @@ fix aveforce command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID aveforce fx fy fz keyword value ...
|
||||
|
||||
@ -48,13 +48,13 @@ component. The actual force on each atom is then set to the average
|
||||
value plus the component specified in this command. This means each
|
||||
atom in the group receives the same force.
|
||||
|
||||
Any of the fx,fy,fz values can be specified as NULL which means the
|
||||
force in that dimension is not changed. Note that this is not the
|
||||
Any of the *fx*, *fy*, or *fz* values can be specified as :code:`NULL`, which
|
||||
means the force in that dimension is not changed. Note that this is not the
|
||||
same as specifying a 0.0 value, since that sets all forces to the same
|
||||
average value without adding in any additional force.
|
||||
|
||||
Any of the 3 quantities defining the force components can be specified
|
||||
as an equal-style :doc:`variable <variable>`, namely *fx*, *fy*, *fz*\ .
|
||||
Any of the three quantities defining the force components, namely *fx*, *fy*,
|
||||
and *fz*, can be specified as an equal-style :doc:`variable <variable>`\ .
|
||||
If the value is a variable, it should be specified as v_name, where
|
||||
name is the variable name. In this case, the variable will be
|
||||
evaluated each timestep, and its value used to determine the average
|
||||
@ -78,17 +78,17 @@ to it.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`.
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *respa* option is supported by this
|
||||
fix. This allows to set at which level of the :doc:`r-RESPA <run_style>`
|
||||
integrator the fix is adding its forces. Default is the outermost level.
|
||||
|
||||
This fix computes a global 3-vector of forces, which can be accessed
|
||||
This fix computes a global three-vector of forces, which can be accessed
|
||||
by various :doc:`output commands <Howto_output>`. This is the total
|
||||
force on the group of atoms before the forces on individual atoms are
|
||||
changed by the fix. The vector values calculated by this fix are
|
||||
"extensive".
|
||||
changed by the fix. The vector values calculated by this fix are "extensive".
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command.
|
||||
|
||||
@ -6,7 +6,7 @@ fix balance command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
fix ID group-ID balance Nfreq thresh style args keyword args ...
|
||||
|
||||
@ -19,7 +19,7 @@ Syntax
|
||||
.. parsed-literal::
|
||||
|
||||
shift args = dimstr Niter stopthresh
|
||||
dimstr = sequence of letters containing "x" or "y" or "z", each not more than once
|
||||
dimstr = sequence of letters containing *x* or *y* or *z*, each not more than once
|
||||
Niter = # of times to iterate within each dimension of dimstr sequence
|
||||
stopthresh = stop balancing when this imbalance threshold is reached
|
||||
*rcb* args = none
|
||||
@ -72,10 +72,10 @@ perform "static" balancing, before or between runs, see the
|
||||
Load-balancing is typically most useful if the particles in the
|
||||
simulation box have a spatially-varying density distribution or
|
||||
where the computational cost varies significantly between different
|
||||
atoms. E.g. a model of a vapor/liquid interface, or a solid with
|
||||
atoms (e.g., a model of a vapor/liquid interface, or a solid with
|
||||
an irregular-shaped geometry containing void regions, or
|
||||
:doc:`hybrid pair style simulations <pair_hybrid>` which combine
|
||||
pair styles with different computational cost. In these cases, the
|
||||
:doc:`hybrid pair style simulations <pair_hybrid>` that combine
|
||||
pair styles with different computational cost). In these cases, the
|
||||
LAMMPS default of dividing the simulation box volume into a
|
||||
regular-spaced grid of 3d bricks, with one equal-volume sub-domain
|
||||
per processor, may assign numbers of particles per processor in a
|
||||
@ -92,28 +92,30 @@ processor.
|
||||
.. note::
|
||||
|
||||
The weighting options listed above are documented with the
|
||||
:doc:`balance <balance>` command in :ref:`this section of the balance command <weighted_balance>` doc page. That section
|
||||
:doc:`balance <balance>` command in :ref:`this section of the balance
|
||||
command <weighted_balance>` doc page. That section
|
||||
describes the various weighting options and gives a few examples of
|
||||
how they can be used. The weighting options are the same for both the
|
||||
fix balance and :doc:`balance <balance>` commands.
|
||||
|
||||
Note that the :doc:`processors <processors>` command allows some control
|
||||
over how the box volume is split across processors. Specifically, for
|
||||
a Px by Py by Pz grid of processors, it allows choice of Px, Py, and
|
||||
Pz, subject to the constraint that Px \* Py \* Pz = P, the total number
|
||||
of processors. This is sufficient to achieve good load-balance for
|
||||
a :math:`P_x \times P_y \times P_z` grid of processors, it allows choices of
|
||||
:math:`P_x`, :math:`P_y`, and :math:`P_z` subject to the constraint that
|
||||
:math:`P_x P_y P_z = P`, the total number of processors.
|
||||
This is sufficient to achieve good load-balance for
|
||||
some problems on some processor counts. However, all the processor
|
||||
sub-domains will still have the same shape and same volume.
|
||||
sub-domains will still have the same shape and the same volume.
|
||||
|
||||
On a particular timestep, a load-balancing operation is only performed
|
||||
On a particular time step, a load-balancing operation is only performed
|
||||
if the current "imbalance factor" in particles owned by each processor
|
||||
exceeds the specified *thresh* parameter. The imbalance factor is
|
||||
defined as the maximum number of particles (or weight) owned by any
|
||||
processor, divided by the average number of particles (or weight) per
|
||||
processor. Thus an imbalance factor of 1.0 is perfect balance.
|
||||
processor. Thus, an imbalance factor of 1.0 is perfect balance.
|
||||
|
||||
As an example, for 10000 particles running on 10 processors, if the
|
||||
most heavily loaded processor has 1200 particles, then the factor is
|
||||
most heavily loaded processor has 1200 particles, then the imbalance factor is
|
||||
1.2, meaning there is a 20% imbalance. Note that re-balances can be
|
||||
forced even if the current balance is perfect (1.0) be specifying a
|
||||
*thresh* < 1.0.
|
||||
@ -125,28 +127,29 @@ forced even if the current balance is perfect (1.0) be specifying a
|
||||
may not be achieved. For example, "grid" methods (defined below) that
|
||||
create a logical 3d grid cannot achieve perfect balance for many
|
||||
irregular distributions of particles. Likewise, if a portion of the
|
||||
system is a perfect lattice, e.g. the initial system is generated by
|
||||
the :doc:`create_atoms <create_atoms>` command, then "grid" methods may
|
||||
be unable to achieve exact balance. This is because entire lattice
|
||||
planes will be owned or not owned by a single processor.
|
||||
system is a perfect, non-rotated lattice (e.g., the initial system is
|
||||
generated by the :doc:`create_atoms <create_atoms>` command with no
|
||||
rotations), then "grid" methods may be unable to achieve exact balance.
|
||||
This is because entire lattice planes will be owned or not owned by a single
|
||||
processor.
|
||||
|
||||
.. note::
|
||||
|
||||
The imbalance factor is also an estimate of the maximum speed-up
|
||||
you can hope to achieve by running a perfectly balanced simulation
|
||||
versus an imbalanced one. In the example above, the 10000 particle
|
||||
versus an imbalanced one. In the example above, the 10000-particle
|
||||
simulation could run up to 20% faster if it were perfectly balanced,
|
||||
versus when imbalanced. However, computational cost is not strictly
|
||||
proportional to particle count, and changing the relative size and
|
||||
shape of processor sub-domains may lead to additional computational
|
||||
and communication overheads, e.g. in the PPPM solver used via the
|
||||
:doc:`kspace_style <kspace_style>` command. Thus you should benchmark
|
||||
and communication overheads (e.g., in the PPPM solver used via the
|
||||
:doc:`kspace_style <kspace_style>` command). Thus, you should benchmark
|
||||
the run times of a simulation before and after balancing.
|
||||
|
||||
----------
|
||||
|
||||
The method used to perform a load balance is specified by one of the
|
||||
listed styles, which are described in detail below. There are 2 kinds
|
||||
listed styles, which are described in detail below. There are two kinds
|
||||
of styles.
|
||||
|
||||
The *shift* style is a "grid" method which produces a logical 3d grid
|
||||
@ -198,11 +201,12 @@ The *group-ID* is ignored. However the impact of balancing on
|
||||
different groups of atoms can be affected by using the *group* weight
|
||||
style as described below.
|
||||
|
||||
The *Nfreq* setting determines how often a re-balance is performed. If
|
||||
*Nfreq* > 0, then re-balancing will occur every *Nfreq* steps. Each
|
||||
time a re-balance occurs, a reneighboring is triggered, so *Nfreq*
|
||||
should not be too small. If *Nfreq* = 0, then re-balancing will be
|
||||
done every time reneighboring normally occurs, as determined by the
|
||||
The :math:`N_\text{freq}` setting determines how often a re-balance is
|
||||
performed. If :math:`N_\text{freq} > 0`, then re-balancing will occur every
|
||||
:math:`N_\text{freq}` steps. Each time a re-balance occurs, a reneighboring is
|
||||
triggered, so :math:`N_\text{freq}` should not be too small. If
|
||||
:math:`N_\text{freq} = 0`, then re-balancing will be done every time
|
||||
reneighboring normally occurs, as determined by the
|
||||
the :doc:`neighbor <neighbor>` and :doc:`neigh_modify <neigh_modify>`
|
||||
command settings.
|
||||
|
||||
@ -216,7 +220,7 @@ above. It changes the positions of cutting planes between processors
|
||||
in an iterative fashion, seeking to reduce the imbalance factor.
|
||||
|
||||
The *dimstr* argument is a string of characters, each of which must be
|
||||
an "x" or "y" or "z". Each character can appear zero or one time,
|
||||
*x* or *y* or *z*. Each character can appear zero or one time,
|
||||
since there is no advantage to balancing on a dimension more than
|
||||
once. You should normally only list dimensions where you expect there
|
||||
to be a density variation in the particles.
|
||||
@ -224,8 +228,8 @@ to be a density variation in the particles.
|
||||
Balancing proceeds by adjusting the cutting planes in each of the
|
||||
dimensions listed in *dimstr*, one dimension at a time. For a single
|
||||
dimension, the balancing operation (described below) is iterated on up
|
||||
to *Niter* times. After each dimension finishes, the imbalance factor
|
||||
is re-computed, and the balancing operation halts if the *stopthresh*
|
||||
to :math:`N_\text{iter}` times. After each dimension finishes, the imbalance
|
||||
factor is re-computed, and the balancing operation halts if the *stopthresh*
|
||||
criterion is met.
|
||||
|
||||
A re-balance operation in a single dimension is performed using a
|
||||
@ -265,15 +269,15 @@ the normal reneighboring procedure.
|
||||
by the extent of a processor's sub-domain in one dimension. The size
|
||||
of this bracketing region shrinks based on the local density, as
|
||||
described above, which should typically be 1/2 or more every
|
||||
iteration. Thus if *Niter* is specified as 10, the cutting plane will
|
||||
typically be positioned to better than 1 part in 1000 accuracy
|
||||
(relative to the perfect target position). For *Niter* = 20, it will
|
||||
be accurate to better than 1 part in a million. Thus there is no need
|
||||
to set *Niter* to a large value. This is especially true if you are
|
||||
re-balancing often enough that each time you expect only an incremental
|
||||
adjustment in the cutting planes is necessary. LAMMPS will check if
|
||||
the threshold accuracy is reached (in a dimension) is less iterations
|
||||
than *Niter* and exit early.
|
||||
iteration. Thus if :math:`N_\text{iter}` is specified as 10, the cutting
|
||||
plane will typically be positioned to better than 1 part in 1000 accuracy
|
||||
(relative to the perfect target position). For :math:`N_\text{iter} = 20`,
|
||||
it will be accurate to better than 1 part in a million. Thus there is no
|
||||
need to set :math:`N_\text{iter}` to a large value. This is especially true
|
||||
if you are re-balancing often enough that each time you expect only an
|
||||
incremental adjustment in the cutting planes is necessary. LAMMPS will
|
||||
check if the threshold accuracy is reached (in a dimension) is less
|
||||
iterations than :math:`N_\text{iter}` and exit early.
|
||||
|
||||
----------
|
||||
|
||||
@ -281,12 +285,12 @@ The *rcb* style invokes a "tiled" method for balancing, as described
|
||||
above. It performs a recursive coordinate bisectioning (RCB) of the
|
||||
simulation domain. The basic idea is as follows.
|
||||
|
||||
The simulation domain is cut into 2 boxes by an axis-aligned cut in
|
||||
The simulation domain is cut into two boxes by an axis-aligned cut in
|
||||
the longest dimension, leaving one new box on either side of the cut.
|
||||
All the processors are also partitioned into 2 groups, half assigned
|
||||
All the processors are also partitioned into two groups, half assigned
|
||||
to the box on the lower side of the cut, and half to the box on the
|
||||
upper side. (If the processor count is odd, one side gets an extra
|
||||
processor.) The cut is positioned so that the number of atoms in the
|
||||
upper side. If the processor count is odd, one side gets an extra
|
||||
processor. The cut is positioned so that the number of atoms in the
|
||||
lower box is exactly the number that the processors assigned to that
|
||||
box should own for load balance to be perfect. This also makes load
|
||||
balance for the upper box perfect. The positioning is done
|
||||
@ -309,7 +313,7 @@ results of each re-balancing operation. The file contains the bounds
|
||||
of the sub-domain for each processor after the balancing operation
|
||||
completes. The format of the file is compatible with the
|
||||
`Pizza.py <pizza_>`_ *mdump* tool which has support for manipulating and
|
||||
visualizing mesh files. An example is shown here for a balancing by 4
|
||||
visualizing mesh files. An example is shown here for a balancing by four
|
||||
processors for a 2d problem:
|
||||
|
||||
.. parsed-literal::
|
||||
@ -349,27 +353,28 @@ processors for a 2d problem:
|
||||
3 1 9 10 11 12
|
||||
4 1 13 14 15 16
|
||||
|
||||
The coordinates of all the vertices are listed in the NODES section, 5
|
||||
per processor. Note that the 4 sub-domains share vertices, so there
|
||||
The coordinates of all the vertices are listed in the NODES section, five
|
||||
per processor. Note that the four sub-domains share vertices, so there
|
||||
will be duplicate nodes in the list.
|
||||
|
||||
The "SQUARES" section lists the node IDs of the 4 vertices in a
|
||||
The "SQUARES" section lists the node IDs of the four vertices in a
|
||||
rectangle for each processor (1 to 4).
|
||||
|
||||
For a 3d problem, the syntax is similar with 8 vertices listed for
|
||||
each processor, instead of 4, and "SQUARES" replaced by "CUBES".
|
||||
For a 3d problem, the syntax is similar but with eight vertices listed for
|
||||
each processor instead of four, and "SQUARES" replaced by "CUBES."
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix.
|
||||
No information about this fix is written to
|
||||
:doc:`binary restart files <restart>`. None of the
|
||||
:doc:`fix_modify <fix_modify>` options are relevant to this fix.
|
||||
|
||||
This fix computes a global scalar which is the imbalance factor
|
||||
after the most recent re-balance and a global vector of length 3 with
|
||||
additional information about the most recent re-balancing. The 3
|
||||
additional information about the most recent re-balancing. The three
|
||||
values in the vector are as follows:
|
||||
|
||||
* 1 = max # of particles per processor
|
||||
@ -380,22 +385,24 @@ As explained above, the imbalance factor is the ratio of the maximum
|
||||
number of particles (or total weight) on any processor to the average
|
||||
number of particles (or total weight) per processor.
|
||||
|
||||
These quantities can be accessed by various :doc:`output commands <Howto_output>`. The scalar and vector values calculated
|
||||
by this fix are "intensive".
|
||||
These quantities can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar and vector values calculated
|
||||
by this fix are "intensive."
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
For 2d simulations, the *z* style cannot be used. Nor can a "z"
|
||||
For 2d simulations, the *z* style cannot be used, nor can *z*
|
||||
appear in *dimstr* for the *shift* style.
|
||||
|
||||
Balancing through recursive bisectioning (\ *rcb* style) requires
|
||||
:doc:`comm_style tiled <comm_style>`
|
||||
:doc:`comm_style tiled <comm_style>`\ .
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -125,13 +125,14 @@ LAMMPS atom type corresponds to. This is specified by the atomic
|
||||
number of the element, e.g. 13 for Al. An atomic number must be
|
||||
specified for each of the ntypes LAMMPS atom types. Ntypes is
|
||||
typically specified via the create_box command or in the data file
|
||||
read by the read_data command. If this keyword is not specified, then
|
||||
this fix will send the LAMMPS atom type for each atom to the MDI
|
||||
engine. If both the LAMMPS driver and the MDI engine are initialized
|
||||
so that atom type values are consistent in both codes, then the
|
||||
*elements* keyword is not needed. Otherwise the keyword can be used
|
||||
to insure the two codes are consistent in their definition of atomic
|
||||
species.
|
||||
read by the read_data command.
|
||||
|
||||
If this keyword is specified, then this fix will send the MDI
|
||||
">ELEMENTS" command to the engine, to insure the two codes are
|
||||
consistent in their definition of atomic species. If this keyword is
|
||||
not specified, then this fix will send the MDI >TYPES command to the
|
||||
engine. This is fine if both the LAMMPS driver and the MDI engine are
|
||||
initialized so that the atom type values are consistent in both codes.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ to track the grain boundary motion throughout the simulation.
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc: `binary restart
|
||||
No information about this fix is written to :doc:`binary restart
|
||||
files <restart>`.
|
||||
|
||||
The :doc:`fix_modify <fix_modify>` *energy* option is supported by
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
improper_coeff N args
|
||||
|
||||
* N = improper type (see asterisk form below)
|
||||
* N = numeric improper type (see asterisk form below), or type label
|
||||
* args = coefficients for one or more improper types
|
||||
|
||||
Examples
|
||||
@ -22,27 +22,34 @@ Examples
|
||||
improper_coeff * 80.2 -1 2
|
||||
improper_coeff *4 80.2 -1 2
|
||||
|
||||
labelmap improper 1 benzene
|
||||
improper_coeff benzene 300.0 0.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Specify the improper force field coefficients for one or more improper
|
||||
types. The number and meaning of the coefficients depends on the
|
||||
improper style. Improper coefficients can also be set in the data
|
||||
file read by the :doc:`read_data <read_data>` command or in a restart
|
||||
file.
|
||||
improper style. Improper coefficients can also be set in the data file
|
||||
read by the :doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
N can be specified in one of two ways. An explicit numeric value can
|
||||
be used, as in the first example above. Or a wild-card asterisk can be
|
||||
used to set the coefficients for multiple improper types. This takes
|
||||
the form "\*" or "\*n" or "n\*" or "m\*n". If N = the number of improper
|
||||
types, then an asterisk with no numeric values means all types from 1
|
||||
to N. A leading asterisk means all types from 1 to n (inclusive). A
|
||||
trailing asterisk means all types from n to N (inclusive). A middle
|
||||
asterisk means all types from m to n (inclusive).
|
||||
:math:`N` can be specified in one of two ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or :math:`N` can be a
|
||||
type label, which is an alphanumeric string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||
by the :doc:`read_data <read_data>` command.
|
||||
|
||||
For numeric values only, a wild-card asterisk can be used to set the
|
||||
coefficients for multiple improper types. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n". If :math:`N` = the number of improper types,
|
||||
then an asterisk with no numeric values means all types from 1 to
|
||||
:math:`N`. A leading asterisk means all types from 1 to n (inclusive).
|
||||
A trailing asterisk means all types from n to :math:`N` (inclusive). A
|
||||
middle asterisk means all types from m to n (inclusive).
|
||||
|
||||
Note that using an improper_coeff command can override a previous
|
||||
setting for the same improper type. For example, these commands set
|
||||
the coeffs for all improper types, then overwrite the coeffs for just
|
||||
setting for the same improper type. For example, these commands set the
|
||||
coeffs for all improper types, then overwrite the coeffs for just
|
||||
improper type 2:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
@ -53,9 +60,9 @@ improper type 2:
|
||||
A line in a data file that specifies improper coefficients uses the
|
||||
exact same format as the arguments of the improper_coeff command in an
|
||||
input script, except that wild-card asterisks should not be used since
|
||||
coefficients for all N types must be listed in the file. For example,
|
||||
under the "Improper Coeffs" section of a data file, the line that
|
||||
corresponds to the first example above would be listed as
|
||||
coefficients for all :math:`N` types must be listed in the file. For
|
||||
example, under the "Improper Coeffs" section of a data file, the line
|
||||
that corresponds to the first example above would be listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
100
doc/src/labelmap.rst
Normal file
100
doc/src/labelmap.rst
Normal file
@ -0,0 +1,100 @@
|
||||
.. index:: labelmap
|
||||
|
||||
labelmap command
|
||||
==================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
labelmap option args
|
||||
|
||||
* *option* = *atom* or *bond* or *angle* or *dihedral* or *improper* or *clear* or *write*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*clear* = no args
|
||||
*write* arg = filename
|
||||
*atom* or *bond* or *angle* or *dihedral* or *improper*
|
||||
args = list of one or more numeric-type/type-label pairs
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
labelmap atom 3 carbon 4 'c3"' 5 "c1'" 6 "c#"
|
||||
labelmap bond 1 carbonyl 2 nitrile 3 """ c1'-c2" """
|
||||
labelmap atom $(label2type(atom,carbon)) C # change type label from 'carbon' to 'C'
|
||||
labelmap clear
|
||||
labelmap write mymap.include
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
Define alphanumeric type labels to associate with one or more numeric
|
||||
atom, bond, angle, dihedral or improper types. A collection of type
|
||||
labels for all atom types, bond types, etc. is stored as a label map.
|
||||
|
||||
The label map can also be defined by the :doc:`read_data <read_data>`
|
||||
command when it reads these sections in a data file: Atom Type Labels,
|
||||
Bond Type Labels, etc. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for a general discussion of how type
|
||||
labels can be used.
|
||||
|
||||
Valid type labels can contain any alphanumeric character, but must not
|
||||
start with a number, a '#', or a '*' character. They can contain other
|
||||
standard ASCII characters such as angular or square brackets '<' and '>'
|
||||
or '[' and ']', parenthesis '(' and ')', dash '-', underscore '_', plus
|
||||
'+' and equals '=' signs and more. They must not contain blanks or any
|
||||
other whitespace. Note that type labels must be put in single or double
|
||||
quotation marks if they contain the '#' character or if they contain a
|
||||
double (") or single quotation mark ('). If the label contains both
|
||||
a single and a double quotation mark, then triple quotation (""") must
|
||||
be used. When enclosing a type label with quotation marks, the
|
||||
LAMMPS input parser may require adding leading or trailing blanks
|
||||
around the type label so it can identify the enclosing quotation
|
||||
marks. Those blanks will be removed when defining the label.
|
||||
|
||||
A *labelmap* command can only modify the label map for one type-kind
|
||||
(atom types, bond types, etc). Any number of numeric-type/type-label
|
||||
pairs may follow. If a type label already exists for the same numeric
|
||||
type, it will be overwritten. Type labels must be unique; assigning the
|
||||
same type label to multiple numeric types within the same type-kind is
|
||||
not allowed. When reading and writing data files, it is required that
|
||||
there is a label defined for *every* numeric type within a given
|
||||
type-kind in order to write out the type label section for that
|
||||
type-kind.
|
||||
|
||||
The *clear* option resets the labelmap and thus discards all previous
|
||||
settings.
|
||||
|
||||
The *write* option takes a filename as argument and writes the current
|
||||
label mappings to a file as labelmap commands, so the file can be copied
|
||||
into a new LAMMPS input file or read in using the :doc:`include
|
||||
<include>` command.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This command must come after the simulation box is defined by a
|
||||
:doc:`read_data <read_data>`, :doc:`read_restart <read_restart>`, or
|
||||
:doc:`create_box <create_box>` command.
|
||||
|
||||
Labelmaps are currently not supported when using the KOKKOS package.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`read_data <read_data>`, :doc:`write_data <write_data>`,
|
||||
:doc:`molecule <molecule>`, :doc:`fix bond/react <fix_bond_react>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
mass I value
|
||||
|
||||
* I = atom type (see asterisk form below)
|
||||
* I = atom type (see asterisk form below), or type label
|
||||
* value = mass
|
||||
|
||||
Examples
|
||||
@ -22,6 +22,9 @@ Examples
|
||||
mass * 62.5
|
||||
mass 2* 62.5
|
||||
|
||||
labelmap atom 1 C
|
||||
mass C 12.01
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -30,12 +33,16 @@ values can also be set in the :doc:`read_data <read_data>` data file
|
||||
using the "Masses" keyword. See the :doc:`units <units>` command for
|
||||
what mass units to use.
|
||||
|
||||
The I index can be specified in one of two ways. An explicit numeric
|
||||
value can be used, as in the first example above. Or a wild-card
|
||||
asterisk can be used to set the mass for multiple atom types. This
|
||||
takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = 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 1 to n
|
||||
The I index can be specified in one of several ways. An explicit
|
||||
numeric value can be used, as in the first example above. Or I can be
|
||||
a type label, which is an alphanumeric string defined by the
|
||||
:doc:`labelmap <labelmap>` command or in a section of a data file read
|
||||
by the :doc:`read_data <read_data>` command, and which converts
|
||||
internally to a numeric type. Or a wild-card asterisk can be used to
|
||||
set the mass for multiple atom types. This takes the form "\*" or
|
||||
"\*n" or "n\*" or "m\*n", where m and n are numbers. If N = 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 1 to n
|
||||
(inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
@ -14,7 +14,7 @@ Syntax
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*engine* args = zero or more keyword arg pairs
|
||||
*engine* args = zero or more keyword/args pairs
|
||||
keywords = *elements*
|
||||
*elements* args = N_1 N_2 ... N_ntypes
|
||||
N_1,N_2,...N_ntypes = atomic number for each of ntypes LAMMPS atom types
|
||||
@ -24,7 +24,7 @@ Syntax
|
||||
keywords = *mdi* or *infile* or *extra* or *command*
|
||||
*mdi* value = args passed to MDI for driver to operate with plugins (required)
|
||||
*infile* value = filename the engine will read at start-up (optional)
|
||||
*extra* value = aditional command-line args to pass to engine library when loaded
|
||||
*extra* value = aditional command-line args to pass to engine library when loaded (optional)
|
||||
*command* value = a LAMMPS input script command to execute (required)
|
||||
*connect* args = none
|
||||
*exit* args = none
|
||||
@ -289,11 +289,11 @@ are required. The -name setting can be anything you choose. MDI
|
||||
drivers and engines can query their names to verify they are values
|
||||
they expect.
|
||||
|
||||
The *infile* keyword is also required. It is the name of an input
|
||||
script which the engine will open and process. MDI will pass it as a
|
||||
The *infile* keyword is optional. It sets the name of an input script
|
||||
which the engine will open and process. MDI will pass it as a
|
||||
command-line argument to the library when it is launched. The file
|
||||
typically contains settings that an MD or QM code will use for its
|
||||
subsequent calculations.
|
||||
calculations.
|
||||
|
||||
The *extra* keyword is optional. It contains additional command-line
|
||||
arguments which MDI will pass to the library when it is launched.
|
||||
@ -309,12 +309,12 @@ could specify a filename with multiple LAMMPS commands.
|
||||
|
||||
.. note::
|
||||
|
||||
When the single *command* is complete, LAMMPS will send an MDI
|
||||
EXIT command to the plugin engine and the plugin will be removed.
|
||||
The "mdi plugin" command will then exit and the next command
|
||||
(if any) in the LAMMPS input script will be processed. A subsequent
|
||||
"mdi plugin" command could then load the same library plugin or
|
||||
a different one if desired.
|
||||
When the *command* is complete, LAMMPS will send an MDI EXIT
|
||||
command to the plugin engine and the plugin will be removed. The
|
||||
"mdi plugin" command will then exit and the next command (if any)
|
||||
in the LAMMPS input script will be processed. A subsequent "mdi
|
||||
plugin" command could then load the same or a different MDI
|
||||
plugin if desired.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -70,8 +70,9 @@ and underscores.
|
||||
A single template can contain multiple molecules, listed one per file.
|
||||
Some of the commands listed above currently use only the first
|
||||
molecule in the template, and will issue a warning if the template
|
||||
contains multiple molecules. The :doc:`atom_style template <atom_style>` command allows multiple-molecule templates
|
||||
to define a system with more than one templated molecule.
|
||||
contains multiple molecules. The :doc:`atom_style template
|
||||
<atom_style>` command allows multiple-molecule templates to define a
|
||||
system with more than one templated molecule.
|
||||
|
||||
Each filename can be followed by optional keywords which are applied
|
||||
only to the molecule in the file as used in this template. This is to
|
||||
@ -88,6 +89,12 @@ molecule file. E.g. if *toff* = 2, and the file uses atom types
|
||||
individual values will be ignored if the molecule template does not
|
||||
use that attribute (e.g. no bonds).
|
||||
|
||||
.. note::
|
||||
|
||||
Offsets are **ignored** on lines using type labels, as the type
|
||||
labels will determine the actual types directly depending on the
|
||||
current :doc:`labelmap <labelmap>` settings.
|
||||
|
||||
The *scale* keyword scales the size of the molecule. This can be
|
||||
useful for modeling polydisperse granular rigid bodies. The scale
|
||||
factor is applied to each of these properties in the molecule file, if
|
||||
@ -118,14 +125,18 @@ The format of an individual molecule file is similar but
|
||||
(not identical) to the data file read by the :doc:`read_data <read_data>`
|
||||
commands, and is as follows.
|
||||
|
||||
A molecule file has a header and a body. The header appears first.
|
||||
The first line of the header is always skipped; it typically contains
|
||||
a description of the file. Then lines are read one at a time. Lines
|
||||
can have a trailing comment starting with '#' that is ignored. If the
|
||||
line is blank (only white-space after comment is deleted), it is
|
||||
A molecule file has a header and a body. The header appears first. The
|
||||
first line of the header and thus of the molecule file is *always* skipped;
|
||||
it typically contains a description of the file or a comment from the software
|
||||
that created the file.
|
||||
|
||||
Then lines are read one line at a time. Lines can have a trailing
|
||||
comment starting with '#' that is ignored. There *must* be at least one
|
||||
blank between any valid content and the comment. If the line is blank
|
||||
(i.e. contains only white-space after comments are deleted), it is
|
||||
skipped. If the line contains a header keyword, the corresponding
|
||||
value(s) is read from the line. If it does not contain a header
|
||||
keyword, the line begins the body of the file.
|
||||
value(s) is/are read from the line. A line that is *not* blank and does
|
||||
*not* contains a header keyword begins the body of the file.
|
||||
|
||||
The body of the file contains zero or more sections. The first line
|
||||
of a section has only a keyword. The next line is skipped. The
|
||||
@ -173,31 +184,43 @@ These are the allowed section keywords for the body of the file.
|
||||
* *Special Bond Counts, Special Bonds* = special neighbor info
|
||||
* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info
|
||||
|
||||
For the Types, Bonds, Angles, Dihedrals, and Impropers sections, each
|
||||
atom/bond/angle/etc type can be specified either as a number (numeric
|
||||
type) or as an alphanumeric type label. The latter is only allowed if
|
||||
type labels have been defined, either by the :doc:`labelmap
|
||||
<labelmap>` command or in data files read by the :doc:`read_data
|
||||
<read_data>` command which have sections for Atom Type Labels, Bond
|
||||
Type Labels, Angle Type Labels, etc. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
When using type labels, any values specified as *offset* are ignored.
|
||||
|
||||
If a Bonds section is specified then the Special Bond Counts and
|
||||
Special Bonds sections can also be used, if desired, to explicitly
|
||||
list the 1-2, 1-3, 1-4 neighbors within the molecule topology (see
|
||||
details below). This is optional since if these sections are not
|
||||
included, LAMMPS will auto-generate this information. Note that
|
||||
LAMMPS uses this info to properly exclude or weight bonded pairwise
|
||||
interactions between bonded atoms. See the
|
||||
:doc:`special_bonds <special_bonds>` command for more details. One
|
||||
reason to list the special bond info explicitly is for the
|
||||
:doc:`thermalized Drude oscillator model <Howto_drude>` which treats the
|
||||
bonds between nuclear cores and Drude electrons in a different manner.
|
||||
interactions between bonded atoms. See the :doc:`special_bonds
|
||||
<special_bonds>` command for more details. One reason to list the
|
||||
special bond info explicitly is for the :doc:`thermalized Drude
|
||||
oscillator model <Howto_drude>` which treats the bonds between nuclear
|
||||
cores and Drude electrons in a different manner.
|
||||
|
||||
.. note::
|
||||
|
||||
Whether a section is required depends on how the molecule
|
||||
template is used by other LAMMPS commands. For example, to add a
|
||||
molecule via the :doc:`fix deposit <fix_deposit>` command, the Coords
|
||||
and Types sections are required. To add a rigid body via the :doc:`fix pour <fix_pour>` command, the Bonds (Angles, etc) sections are not
|
||||
Whether a section is required depends on how the molecule template
|
||||
is used by other LAMMPS commands. For example, to add a molecule
|
||||
via the :doc:`fix deposit <fix_deposit>` command, the Coords and
|
||||
Types sections are required. To add a rigid body via the :doc:`fix
|
||||
pour <fix_pour>` command, the Bonds (Angles, etc) sections are not
|
||||
required, since the molecule will be treated as a rigid body. Some
|
||||
sections are optional. For example, the :doc:`fix pour <fix_pour>`
|
||||
command can be used to add "molecules" which are clusters of
|
||||
finite-size granular particles. If the Diameters section is not
|
||||
specified, each particle in the molecule will have a default diameter
|
||||
of 1.0. See the doc pages for LAMMPS commands that use molecule
|
||||
templates for more details.
|
||||
specified, each particle in the molecule will have a default
|
||||
diameter of 1.0. See the doc pages for LAMMPS commands that use
|
||||
molecule templates for more details.
|
||||
|
||||
Each section is listed below in alphabetic order. The format of each
|
||||
section is described including the number of lines it must contain and
|
||||
@ -222,7 +245,7 @@ order.
|
||||
|
||||
* one line per atom
|
||||
* line syntax: ID type
|
||||
* type = atom type of atom
|
||||
* type = atom type of atom (1-Natomtype, or type label)
|
||||
|
||||
----------
|
||||
|
||||
@ -289,7 +312,7 @@ included, the default mass for each atom is derived from its volume
|
||||
|
||||
* one line per bond
|
||||
* line syntax: ID type atom1 atom2
|
||||
* type = bond type (1-Nbondtype)
|
||||
* type = bond type (1-Nbondtype, or type label)
|
||||
* atom1,atom2 = IDs of atoms in bond
|
||||
|
||||
The IDs for the two atoms in each bond should be values
|
||||
@ -301,7 +324,7 @@ from 1 to Natoms, where Natoms = # of atoms in the molecule.
|
||||
|
||||
* one line per angle
|
||||
* line syntax: ID type atom1 atom2 atom3
|
||||
* type = angle type (1-Nangletype)
|
||||
* type = angle type (1-Nangletype, or type label)
|
||||
* atom1,atom2,atom3 = IDs of atoms in angle
|
||||
|
||||
The IDs for the three atoms in each angle should be values from 1 to
|
||||
@ -315,7 +338,7 @@ which the angle is computed) is the atom2 in the list.
|
||||
|
||||
* one line per dihedral
|
||||
* line syntax: ID type atom1 atom2 atom3 atom4
|
||||
* type = dihedral type (1-Ndihedraltype)
|
||||
* type = dihedral type (1-Ndihedraltype, or type label)
|
||||
* atom1,atom2,atom3,atom4 = IDs of atoms in dihedral
|
||||
|
||||
The IDs for the four atoms in each dihedral should be values from 1 to
|
||||
@ -328,7 +351,7 @@ ordered linearly within the dihedral.
|
||||
|
||||
* one line per improper
|
||||
* line syntax: ID type atom1 atom2 atom3 atom4
|
||||
* type = improper type (1-Nimpropertype)
|
||||
* type = improper type (1-Nimpropertype, or type label)
|
||||
* atom1,atom2,atom3,atom4 = IDs of atoms in improper
|
||||
|
||||
The IDs for the four atoms in each improper should be values from 1 to
|
||||
@ -447,11 +470,15 @@ This section is only needed when molecules created using the template
|
||||
will be constrained by SHAKE via the "fix shake" command. The other
|
||||
two Shake sections must also appear in the file.
|
||||
|
||||
The a,b,c values are bond types (from 1 to Nbondtypes) for all bonds
|
||||
in the SHAKE cluster that this atom belongs to. The number of values
|
||||
that must appear is determined by the shake flag for the atom (see the
|
||||
Shake Flags section above). All atoms in a particular cluster should
|
||||
list their a,b,c values identically.
|
||||
The a,b,c values are bond types for all bonds in the SHAKE cluster that
|
||||
this atom belongs to. Bond types may be either numbers (from 1 to Nbondtypes)
|
||||
or bond type labels as defined by the :doc:`labelmap <labelmap>` command
|
||||
or a "Bond Type Labels" section of a data file.
|
||||
|
||||
|
||||
The number of values that must appear is determined by the shake flag
|
||||
for the atom (see the Shake Flags section above). All atoms in a
|
||||
particular cluster should list their a,b,c values identically.
|
||||
|
||||
If flag = 0, no a,b,c values are listed on the line, just the
|
||||
(ignored) ID.
|
||||
@ -459,8 +486,9 @@ If flag = 0, no a,b,c values are listed on the line, just the
|
||||
If flag = 1, a,b,c are listed, where a = bondtype of the bond between
|
||||
the central atom and the first non-central atom (value b in the Shake
|
||||
Atoms section), b = bondtype of the bond between the central atom and
|
||||
the second non-central atom (value c in the Shake Atoms section), and c =
|
||||
the angle type (1 to Nangletypes) of the angle between the 3 atoms.
|
||||
the second non-central atom (value c in the Shake Atoms section), and c
|
||||
= the angle type (1 to Nangletypes, or angle type label) of the angle
|
||||
between the 3 atoms.
|
||||
|
||||
If flag = 2, only a is listed, where a = bondtype of the bond between
|
||||
the 2 atoms in the cluster.
|
||||
@ -473,9 +501,9 @@ and the second non-central atom (value c in the Shake Atoms section).
|
||||
If flag = 4, a,b,c are listed, where a = bondtype of the bond between
|
||||
the central atom and the first non-central atom (value b in the Shake
|
||||
Atoms section), b = bondtype of the bond between the central atom and
|
||||
the second non-central atom (value c in the Shake Atoms section), and c =
|
||||
bondtype of the bond between the central atom and the third non-central
|
||||
atom (value d in the Shake Atoms section).
|
||||
the second non-central atom (value c in the Shake Atoms section), and c
|
||||
= bondtype of the bond between the central atom and the third
|
||||
non-central atom (value d in the Shake Atoms section).
|
||||
|
||||
See the :doc:`fix shake <fix_shake>` page for a further description
|
||||
of SHAKE clusters.
|
||||
|
||||
@ -10,7 +10,7 @@ Syntax
|
||||
|
||||
pair_coeff I J args
|
||||
|
||||
* I,J = atom types (see asterisk form below)
|
||||
* I,J = numeric atom types (see asterisk form below), or type labels
|
||||
* args = coefficients for one or more pairs of atom types
|
||||
|
||||
Examples
|
||||
@ -26,6 +26,10 @@ Examples
|
||||
pair_coeff * 3 morse.table ENTRY1
|
||||
pair_coeff 1 2 lj/cut 1.0 1.0 2.5 # (for pair_style hybrid)
|
||||
|
||||
labelmap atom 1 C
|
||||
labelmap atom 2 H
|
||||
pair_coeff C H 1.0 1.0 2.5
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -34,20 +38,27 @@ atom types. The number and meaning of the coefficients depends on the
|
||||
pair style. Pair coefficients can also be set in the data file read
|
||||
by the :doc:`read_data <read_data>` command or in a restart file.
|
||||
|
||||
I and J can be 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 the coefficients for the symmetric J,I
|
||||
interaction to the same values.
|
||||
I and J can be specified in one of several ways. Explicit numeric
|
||||
values can be used for each, as in the first example above. Or, one
|
||||
or both of the types in the I,J pair can be a type label, which is an
|
||||
alphanumeric string defined by the :doc:`labelmap <labelmap>` command
|
||||
or in a section of a data file read by the :doc:`read_data
|
||||
<read_data>` command, and which converts internally to a numeric type.
|
||||
Internally, LAMMPS will set coefficients for the symmetric J,I
|
||||
interaction to the same values as the I,J interaction.
|
||||
|
||||
A wildcard asterisk can be used in place of or in conjunction 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 = 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 1 to n
|
||||
(inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive). Note that only type pairs with I <= J are considered; if
|
||||
asterisks imply type pairs where J < I, they are ignored.
|
||||
For numeric values only, a wildcard asterisk can be used in place of or
|
||||
in conjunction 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 :math:`N` is the number of atom types, then an
|
||||
asterisk with no numeric values means all types from 1 to :math:`N`. A
|
||||
leading asterisk means all types from 1 to n (inclusive). A trailing
|
||||
asterisk means all types from n to :math:`N` (inclusive). A middle
|
||||
asterisk means all types from m to n (inclusive). For the asterisk
|
||||
syntax, only type pairs with I <= J are considered; if asterisks imply
|
||||
type pairs where J < I, they are ignored. Again internally, LAMMPS will
|
||||
set the coefficients for the symmetric J,I interactions to the same
|
||||
values as the I <= J interactions.
|
||||
|
||||
Note that a pair_coeff command can override a previous setting for the
|
||||
same I,J pair. For example, these commands set the coeffs for all I,J
|
||||
@ -63,11 +74,11 @@ same format as the arguments of the pair_coeff command in an input
|
||||
script, with the exception of the I,J type arguments. In each line of
|
||||
the "Pair Coeffs" section of a data file, only a single type I is
|
||||
specified, which sets the coefficients for type I interacting with
|
||||
type I. This is because the section has exactly N lines, where N =
|
||||
the number of atom types. For this reason, the wild-card asterisk
|
||||
should also not be used as part of the I argument. Thus in a data
|
||||
file, the line corresponding to the first example above would be listed
|
||||
as
|
||||
type I. This is because the section has exactly :math:`N` lines, where
|
||||
:math:`N` is the number of atom types. For this reason, the wild-card
|
||||
asterisk should also not be used as part of the I argument. Thus in a
|
||||
data file, the line corresponding to the first example above would be
|
||||
listed as
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
|
||||
@ -249,7 +249,7 @@ Style *lj/long/dipole/long* has the same functionality as style
|
||||
*lj/cut/dipole/long*, except it also has an option to compute 12/6
|
||||
Lennard-Jones interactions for use with a long-range dispersion kspace
|
||||
style. This is done by setting its *flag_lj* argument to *long*. For
|
||||
long-range LJ interactions, the doc:`kspace_style ewald/disp
|
||||
long-range LJ interactions, the :doc:`kspace_style ewald/disp
|
||||
<kspace_style>` command must be used.
|
||||
|
||||
----------
|
||||
|
||||
@ -33,7 +33,8 @@ Style *harmonic/cut* computes pairwise repulsive-only harmonic interactions with
|
||||
|
||||
E = k (r_c - r)^2 \qquad r < r_c
|
||||
|
||||
:math:`r_c` is the cutoff.
|
||||
where :math:`r_c` is the cutoff. Note that the usual 1/2 factor is
|
||||
included in :math:`k`.
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the :doc:`pair_coeff <pair_coeff>` command as in the examples
|
||||
@ -41,7 +42,7 @@ above, or in the data file or restart files read by the
|
||||
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
||||
commands:
|
||||
|
||||
* :math:`k` (energy units)
|
||||
* :math:`k` (energy/distance^2 units)
|
||||
* :math:`r_c` (distance units)
|
||||
|
||||
----------
|
||||
|
||||
@ -1,68 +1,153 @@
|
||||
.. index:: pair_style mesocnt
|
||||
.. index:: pair_style mesocnt/viscous
|
||||
|
||||
pair_style mesocnt command
|
||||
==========================
|
||||
|
||||
pair_style mesocnt/viscous command
|
||||
==================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style mesocnt
|
||||
pair_style style neigh_cutoff mode neigh_mode
|
||||
|
||||
* style = *mesocnt* or *mesocnt/viscous*
|
||||
* neigh_cutoff = neighbor list cutoff (distance units)
|
||||
* mode = *chain* or *segment* (optional)
|
||||
* neigh_mode = *id* or *topology* (optional)
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style mesocnt
|
||||
pair_coeff * * 10_10.cnt
|
||||
pair_style mesocnt 30.0
|
||||
pair_coeff * * C_10_10.mesocnt 2
|
||||
|
||||
pair_style mesocnt/viscous 60.0 chain topology
|
||||
pair_coeff * * C_10_10.mesocnt 0.001 20.0 0.2 2 4
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Style *mesocnt* implements a mesoscopic potential
|
||||
for the interaction of carbon nanotubes (CNTs). In this potential,
|
||||
CNTs are modelled as chains of cylindrical segments in which
|
||||
each infinitesimal surface element interacts with all other
|
||||
CNT surface elements with the Lennard-Jones (LJ) term adopted from
|
||||
the :doc:`airebo <pair_airebo>` style. The interaction energy
|
||||
is then computed by integrating over the surfaces of all interacting
|
||||
CNTs.
|
||||
Style *mesocnt* implements a mesoscopic potential for the interaction
|
||||
of carbon nanotubes (CNTs), or other quasi-1D objects such as other
|
||||
kinds of nanotubes or nanowires. In this potential, CNTs are modelled
|
||||
as chains of cylindrical segments in which each infinitesimal surface
|
||||
element interacts with all other CNT surface elements with the
|
||||
Lennard-Jones (LJ) term adopted from the :doc:`airebo <pair_airebo>`
|
||||
style. The interaction energy is then computed by integrating over the
|
||||
surfaces of all interacting CNTs.
|
||||
|
||||
The potential is based on interactions between one cylindrical
|
||||
segment and infinitely or semi-infinitely long CNTs as described
|
||||
in :ref:`(Volkov1) <Volkov1>`. Chains of segments are
|
||||
converted to these (semi-)infinite CNTs bases on an approximate
|
||||
chain approach outlined in :ref:`(Volkov2) <Volkov2>`.
|
||||
This allows to simplify the computation of the interactions
|
||||
significantly and reduces the computational times to the
|
||||
same order of magnitude as for regular bead spring models
|
||||
where beads interact with the standard :doc:`pair_lj/cut <pair_lj>`
|
||||
potential.
|
||||
In LAMMPS, cylindrical segments are represented by bonds. Each segment
|
||||
is defined by its two end points ("nodes") which correspond to atoms
|
||||
in LAMMPS. For the exact functional form of the potential and
|
||||
implementation details, the reader is referred to the original papers
|
||||
:ref:`(Volkov1) <Volkov1>` and :ref:`(Volkov2) <Volkov2>`.
|
||||
|
||||
In LAMMPS, cylindrical segments are represented by bonds. Each
|
||||
segment is defined by its two end points ("nodes") which correspond
|
||||
to atoms in LAMMPS. For the exact functional form of the potential
|
||||
and implementation details, the reader is referred to the
|
||||
original papers :ref:`(Volkov1) <Volkov1>` and
|
||||
:ref:`(Volkov2) <Volkov2>`.
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The potential requires tabulated data provided in a single ASCII
|
||||
text file specified in the :doc:`pair_coeff <pair_coeff>` command.
|
||||
The first line of the file provides a time stamp and
|
||||
general information. The second line lists four integers giving
|
||||
the number of data points provided in the subsequent four
|
||||
data tables. The third line lists four floating point numbers:
|
||||
the CNT radius R, the LJ parameter sigma and two numerical
|
||||
parameters delta1 and delta2. These four parameters are given
|
||||
in Angstroms. This is followed by four data tables each separated
|
||||
by a single empty line. The first two tables have two columns
|
||||
and list the parameters uInfParallel and Gamma respectively.
|
||||
The last two tables have three columns giving data on a quadratic
|
||||
array and list the parameters Phi and uSemiParallel respectively.
|
||||
uInfParallel and uSemiParallel are given in eV/Angstrom, Phi is
|
||||
given in eV and Gamma is unitless.
|
||||
The potential supports two modes, *segment* and *chain*. By default,
|
||||
*chain* mode is enabled. In *segment* mode, interactions are
|
||||
pair-wise between all neighboring segments based on a segment-segment
|
||||
approach (keyword *segment* in pair_style command). In *chain* mode,
|
||||
interactions are calculated between each segment and infinitely or
|
||||
semi-infinitely long CNTs as described in :ref:`(Volkov1) <Volkov1>`.
|
||||
Chains of segments are converted to these (semi-)infinite CNTs bases
|
||||
on an approximate chain approach outlined in :ref:`(Volkov2)
|
||||
<Volkov2>`. Hence, interactions are calculated on a segment-chain
|
||||
basis (keyword *chain* in the pair_style command). Using *chain* mode
|
||||
allows to simplify the computation of the interactions significantly
|
||||
and reduces the computational times to the same order of magnitude as
|
||||
for regular bead spring models where beads interact with the standard
|
||||
:doc:`pair_lj/cut <pair_lj>` potential. However, this method is only
|
||||
valid when the curvature of the CNTs in the system is small. When
|
||||
CNTs are buckled (see :doc:`angle_mesocnt <angle_mesocnt>`), local
|
||||
curvature can be very high and the pair_style automatically switches
|
||||
to *segment* mode for interactions involving buckled CNTs.
|
||||
|
||||
The potential further implements two different neighbor list
|
||||
construction modes. Mode *id* uses atom and mol IDs to construct
|
||||
neighbor lists while *topology* modes uses only the bond topology of
|
||||
the system. While *id* mode requires bonded atoms to have consecutive
|
||||
LAMMPS atom IDs and atoms in different CNTs to have different LAMMPS
|
||||
molecule IDs, *topology* mode has no such requirement. Using *id* mode
|
||||
is faster and is enabled by default.
|
||||
|
||||
.. note::
|
||||
|
||||
Neighbor *id* mode requires all CNTs in the system to have distinct
|
||||
LAMMPS molecule IDs and bonded atoms to have consecutive LAMMPS atom
|
||||
IDs. If this is not possible (e.g. in simulations of CNT rings),
|
||||
*topology* mode needs to be enabled in the pair_style command.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
In addition to the LJ interactions described above, style
|
||||
*mesocnt/viscous* explicitly models friction between neighboring
|
||||
segments. Friction forces are a function of the relative velocity
|
||||
between a segment and its neighboring approximate chain (even in
|
||||
*segment* mode) and only act along the axes of the interacting segment
|
||||
and chain. In this potential, friction forces acting per unit length
|
||||
of a nanotube segment are modelled as a shifted logistic function:
|
||||
|
||||
.. math::
|
||||
|
||||
F^{\text{FRICTION}}(v) / L = \frac{F^{\text{max}}}{1 +
|
||||
\exp(-k(v-v_0))} - \frac{F^{\text{max}}}{1 + \exp(k v_0)}
|
||||
|
||||
----------
|
||||
|
||||
In the pair_style command, the modes described above can be toggled
|
||||
using the *segment* or *chain* keywords. The neighbor list cutoff
|
||||
defines the cutoff within which atoms are included in the neighbor
|
||||
list for constructing neighboring CNT chains. This is different from
|
||||
the potential cutoff, which is directly calculated from parameters
|
||||
specified in the potential file. We recommend using a neighbor list
|
||||
cutoff of at least 3 times the maximum segment length used in the
|
||||
simulation to ensure proper neighbor chain construction.
|
||||
|
||||
.. note::
|
||||
|
||||
CNT ends are treated differently by all *mesocnt* styles. Atoms on
|
||||
CNT ends need to be assigned different LAMMPS atom types than atoms
|
||||
not on CNT ends.
|
||||
|
||||
Style *mesocnt* requires tabulated data provided in a single ASCII
|
||||
text file, as well as a list of integers corresponding to all LAMMPS
|
||||
atom types representing CNT ends:
|
||||
|
||||
* filename
|
||||
* :math:`N` CNT end atom types
|
||||
|
||||
For example, if your LAMMPS simulation of (10, 10) nanotubes has 4
|
||||
atom types where atom types 1 and 3 are assigned to 'inner' nodes and
|
||||
atom types 2 and 4 are assigned to CNT end nodes, the pair_coeff
|
||||
command would be:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_coeff * * C_10_10.mesocnt 2 4
|
||||
|
||||
Likewise, style *mesocnt/viscous* also requires the same information
|
||||
as style *mesocnt*, with the addition of 3 parameters for the viscous
|
||||
friction forces as listed above:
|
||||
|
||||
* filename
|
||||
* :math:`F^{\text{max}}`
|
||||
* :math:`k`
|
||||
* :math:`v_0`
|
||||
* :math:`N` CNT end atom types
|
||||
|
||||
Using the same example system as with style *mesocnt* with the
|
||||
addition of friction, the pair_coeff command is:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_coeff * * C_10_10.mesocnt 0.03 20.0 0.20 2 4
|
||||
|
||||
Potential files for CNTs can be readily generated using the freely
|
||||
available code provided on
|
||||
@ -71,45 +156,51 @@ available code provided on
|
||||
|
||||
https://github.com/phankl/cntpot
|
||||
|
||||
Using the same approach, it should also be possible to
|
||||
generate potential files for other 1D systems such as
|
||||
boron nitride nanotubes.
|
||||
Using the same approach, it should also be possible to generate
|
||||
potential files for other 1D systems mentioned above.
|
||||
|
||||
.. note::
|
||||
|
||||
Because of their size, *mesocnt* style potential files
|
||||
are not bundled with LAMMPS. When compiling LAMMPS from
|
||||
source code, the file ``C_10_10.mesocnt`` should be downloaded
|
||||
transparently from `https://download.lammps.org/potentials/C_10_10.mesocnt <https://download.lammps.org/potentials/C_10_10.mesocnt>`_
|
||||
This file has as number of data points per table 1001.
|
||||
This is sufficient for NVT simulations. For proper energy
|
||||
conservation, we recommend using a potential file where
|
||||
the resolution for Phi is at least 2001 data points.
|
||||
Because of their size, *mesocnt* style potential files are not
|
||||
bundled with LAMMPS. When compiling LAMMPS from source code, the
|
||||
file ``C_10_10.mesocnt`` should be downloaded separately from
|
||||
`https://download.lammps.org/potentials/C_10_10.mesocnt
|
||||
<https://download.lammps.org/potentials/C_10_10.mesocnt>`_
|
||||
|
||||
.. note::
|
||||
The first line of the potential file provides a time stamp and
|
||||
general information. The second line lists four integers giving the
|
||||
number of data points provided in the subsequent four data
|
||||
tables. The third line lists four floating point numbers: the CNT
|
||||
radius R, the LJ parameter sigma and two numerical parameters
|
||||
delta1 and delta2. These four parameters are given in
|
||||
Angstroms. This is followed by four data tables each separated by a
|
||||
single empty line. The first two tables have two columns and list
|
||||
the parameters uInfParallel and Gamma respectively. The last two
|
||||
tables have three columns giving data on a quadratic array and list
|
||||
the parameters Phi and uSemiParallel respectively. uInfParallel
|
||||
and uSemiParallel are given in eV/Angstrom, Phi is given in eV and
|
||||
Gamma is unitless.
|
||||
|
||||
The *mesocnt* style requires CNTs to be represented
|
||||
as a chain of atoms connected by bonds. Atoms need
|
||||
to be numbered consecutively within one chain.
|
||||
Atoms belonging to different CNTs need to be assigned
|
||||
different molecule IDs.
|
||||
If a simulation produces many warnings about segment-chain
|
||||
interactions falling outside the interpolation range, we recommend
|
||||
generating a potential file with lower values of delta1 and delta2.
|
||||
|
||||
----------
|
||||
|
||||
Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
This pair style does not support mixing.
|
||||
These pair styles does not support mixing.
|
||||
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
These pair styles does not support the :doc:`pair_modify
|
||||
<pair_modify>` shift, table, and tail options.
|
||||
|
||||
The *mesocnt* pair style do not write their information to :doc:`binary restart files <restart>`,
|
||||
since it is stored in tabulated potential files.
|
||||
Thus, you need to re-specify the pair_style and pair_coeff commands in
|
||||
an input script that reads a restart file.
|
||||
These pair styles do not write their information to :doc:`binary
|
||||
restart files <restart>`, since it is stored in tabulated potential
|
||||
files. Thus, you need to re-specify the pair_style and pair_coeff
|
||||
commands in an input script that reads a restart file.
|
||||
|
||||
This pair style can only be used via the *pair* keyword of the
|
||||
These pair styles can only be used via the *pair* keyword of the
|
||||
:doc:`run_style respa <run_style>` command. They do not support the
|
||||
*inner*, *middle*, *outer* keywords.
|
||||
|
||||
@ -118,12 +209,21 @@ This pair style can only be used via the *pair* keyword of the
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This style is part of the MESONT package. It is only
|
||||
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
These styles are part of the MESONT package. They are only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
This pair potential requires the :doc:`newton <newton>` setting to be
|
||||
These pair styles require the :doc:`newton <newton>` setting to be
|
||||
"on" for pair interactions.
|
||||
|
||||
These pair styles require all 3 :doc:`special_bonds lj
|
||||
<special_bonds>` settings to be non-zero for proper neighbor list
|
||||
construction.
|
||||
|
||||
Pair style *mesocnt/viscous* requires you to use the :doc:`comm_modify
|
||||
vel yes <comm_modify>` command so that velocities are stored by ghost
|
||||
atoms.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -132,7 +232,7 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
mode = chain, neigh_mode = id
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -81,12 +81,12 @@ only the global settings in that command are reset. Any previous
|
||||
doc:`pair_coeff <pair_coeff>` and :doc:`pair_modify <pair_modify>`
|
||||
command settings are preserved. The only exception is that if the
|
||||
global cutoff in the pair_style command is changed, it will override
|
||||
the corresponding cutoff in any of the previous doc:`pair_modify
|
||||
the corresponding cutoff in any of the previous :doc:`pair_modify
|
||||
<pair_coeff>` commands.
|
||||
|
||||
Two pair styles which do not follow this rule are the pair_style
|
||||
*table* and *hybrid* commands. A new pair_style command for these
|
||||
styles will wipe out all previously specified doc:`pair_coeff
|
||||
styles will wipe out all previously specified :doc:`pair_coeff
|
||||
<pair_coeff>` and :doc:`pair_modify <pair_modify>` settings, including
|
||||
for the sub-styles of the *hybrid* command.
|
||||
|
||||
@ -278,7 +278,8 @@ accelerated styles exist.
|
||||
* :doc:`meam <pair_meam>` - modified embedded atom method (MEAM) in C
|
||||
* :doc:`meam/spline <pair_meam_spline>` - splined version of MEAM
|
||||
* :doc:`meam/sw/spline <pair_meam_sw_spline>` - splined version of MEAM with a Stillinger-Weber term
|
||||
* :doc:`mesocnt <pair_mesocnt>` - mesoscale model for (carbon) nanotubes
|
||||
* :doc:`mesocnt <pair_mesocnt>` - mesoscopic vdW potential for (carbon) nanotubes
|
||||
* :doc:`mesocnt/viscous <pair_mesocnt>` - mesoscopic vdW potential for (carbon) nanotubes with friction
|
||||
* :doc:`mgpt <pair_mgpt>` - simplified model generalized pseudopotential theory (MGPT) potential
|
||||
* :doc:`mesont/tpm <pair_mesont_tpm>` - nanotubes mesoscopic force field
|
||||
* :doc:`mie/cut <pair_mie>` - Mie potential
|
||||
|
||||
@ -164,6 +164,12 @@ other types already exist. All five offset values must be specified,
|
||||
but individual values will be ignored if the data file does not use
|
||||
that attribute (e.g. no bonds).
|
||||
|
||||
.. note::
|
||||
|
||||
Offsets are **ignored** on lines using type labels, as the type
|
||||
labels will determine the actual types directly depending on the
|
||||
current :doc:`labelmap <labelmap>` settings.
|
||||
|
||||
The *shift* keyword can be used to specify an (Sx, Sy, Sz)
|
||||
displacement applied to the coordinates of each atom. Sz must be 0.0
|
||||
for a 2d simulation. This is a mechanism for adding structured
|
||||
@ -227,22 +233,27 @@ The file will be read line by line, but there is a limit of 254
|
||||
characters per line and characters beyond that limit will be ignored.
|
||||
|
||||
A data file has a header and a body. The header appears first. The
|
||||
first line of the header is always skipped; it typically contains a
|
||||
description of the file. Then lines are read one at a time. Lines
|
||||
can have a trailing comment starting with '#' that is ignored. If the
|
||||
line is blank (only white-space after comment is deleted), it is
|
||||
skipped. If the line contains a header keyword, the corresponding
|
||||
value(s) is read from the line. If it does not contain a header
|
||||
keyword, the line begins the body of the file.
|
||||
first line of the header and thus of the data file is *always* skipped;
|
||||
it typically contains a description of the file or a comment from the
|
||||
software that created the file.
|
||||
|
||||
The body of the file contains zero or more sections. The first line
|
||||
of a section has only a keyword. This line can have a trailing
|
||||
comment starting with '#' that is either ignored or can be used to
|
||||
check for a style match, as described below. The next line is
|
||||
skipped. The remaining lines of the section contain values. The
|
||||
number of lines depends on the section keyword as described below.
|
||||
Zero or more blank lines can be used between sections. Sections can
|
||||
appear in any order, with a few exceptions as noted below.
|
||||
Then lines are read one line at a time. Lines can have a trailing
|
||||
comment starting with '#' that is ignored. There *must* be at least one
|
||||
blank between any valid content and the comment. If a line is blank
|
||||
(i.e. contains only white-space after comments are deleted), it is
|
||||
skipped. If the line contains a header keyword, the corresponding
|
||||
value(s) is/are read from the line. A line that is *not* blank and does
|
||||
*not* contain a header keyword begins the body of the file.
|
||||
|
||||
The body of the file contains zero or more sections. The first line of
|
||||
a section has only a keyword. This line can have a trailing comment
|
||||
starting with '#' that is either ignored or can be used to check for a
|
||||
style match, as described below. There must be a blank between the
|
||||
keyword and any comment. The *next* line is *always* skipped. The
|
||||
remaining lines of the section contain values. The number of lines
|
||||
depends on the section keyword as described below. Zero or more blank
|
||||
lines can be used *between* sections. Sections can appear in any order,
|
||||
with a few exceptions as noted below.
|
||||
|
||||
The keyword *fix* can be used one or more times. Each usage specifies
|
||||
a fix that will be used to process a specific portion of the data
|
||||
@ -477,6 +488,7 @@ These are the section keywords for the body of the file.
|
||||
|
||||
* *Atoms, Velocities, Masses, Ellipsoids, Lines, Triangles, Bodies* = atom-property sections
|
||||
* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections
|
||||
* *Atom Type Labels, Bond Type Labels, Angle Type Labels, Dihedral Type Labels, Improper Type Labels* = type label maps
|
||||
* *Pair Coeffs, PairIJ Coeffs, Bond Coeffs, Angle Coeffs, Dihedral Coeffs, Improper Coeffs* = force field sections
|
||||
* *BondBond Coeffs, BondAngle Coeffs, MiddleBondTorsion Coeffs, EndBondTorsion Coeffs, AngleTorsion Coeffs, AngleAngleTorsion Coeffs, BondBond13 Coeffs, AngleAngle Coeffs* = class 2 force field sections
|
||||
|
||||
@ -503,7 +515,8 @@ section is described including the number of lines it must contain and
|
||||
rules (if any) for where it can appear in the data file.
|
||||
|
||||
Any individual line in the various sections can have a trailing
|
||||
comment starting with "#" for annotation purposes. E.g. in the
|
||||
comment starting with "#" for annotation purposes. There must be at least
|
||||
one blank between valid content and the comment. E.g. in the
|
||||
Atoms section:
|
||||
|
||||
.. parsed-literal::
|
||||
@ -536,6 +549,26 @@ input script.
|
||||
|
||||
----------
|
||||
|
||||
*Angle Type Labels* section:
|
||||
|
||||
* one line per angle type
|
||||
* line syntax: ID label
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ID = angle type (1-N)
|
||||
label = alphanumeric type label
|
||||
|
||||
Define alphanumeric type labels for each numeric angle type. These
|
||||
can be used in the Angles section in place of a numeric type, but only
|
||||
if the this section appears before the Angles section.
|
||||
|
||||
See the :doc:`Howto type labels <Howto_type_labels>` doc page for the
|
||||
allowed syntax of type labels and a general discussion of how type
|
||||
labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
*AngleAngle Coeffs* section:
|
||||
|
||||
* one line per improper type
|
||||
@ -568,7 +601,7 @@ input script.
|
||||
.. parsed-literal::
|
||||
|
||||
ID = number of angle (1-Nangles)
|
||||
type = angle type (1-Nangletype)
|
||||
type = angle type (1-Nangletype, or type label)
|
||||
atom1,atom2,atom3 = IDs of 1st,2nd,3rd atom in angle
|
||||
|
||||
example:
|
||||
@ -580,8 +613,15 @@ example:
|
||||
The 3 atoms are ordered linearly within the angle. Thus the central
|
||||
atom (around which the angle is computed) is the atom2 in the list.
|
||||
E.g. H,O,H for a water molecule. The *Angles* section must appear
|
||||
after the *Atoms* section. All values in this section must be
|
||||
integers (1, not 1.0).
|
||||
after the *Atoms* section.
|
||||
|
||||
All values in this section must be integers (1, not 1.0). However,
|
||||
the type can be a numeric value or an alphanumeric label. The latter
|
||||
is only allowed if the type label has been defined by the
|
||||
:doc:`labelmap <labelmap>` command or an Angle Type Labels section
|
||||
earlier in the data file. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
@ -597,6 +637,26 @@ integers (1, not 1.0).
|
||||
|
||||
----------
|
||||
|
||||
*Atom Type Labels* section:
|
||||
|
||||
* one line per atom type
|
||||
* line syntax: ID label
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ID = numeric atom type (1-N)
|
||||
label = alphanumeric type label
|
||||
|
||||
Define alphanumeric type labels for each numeric atom type. These
|
||||
can be used in the Atoms section in place of a numeric type, but only
|
||||
if the Atom Type Labels section appears before the Atoms section.
|
||||
|
||||
See the :doc:`Howto type labels <Howto_type_labels>` doc page for the
|
||||
allowed syntax of type labels and a general discussion of how type
|
||||
labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
*Atoms* section:
|
||||
|
||||
* one line per atom
|
||||
@ -670,7 +730,7 @@ of analysis.
|
||||
The per-atom values have these meanings and units, listed alphabetically:
|
||||
|
||||
* atom-ID = integer ID of atom
|
||||
* atom-type = type of atom (1-Ntype)
|
||||
* atom-type = type of atom (1-Ntype, or type label)
|
||||
* bodyflag = 1 for body particles, 0 for point particles
|
||||
* bond_nt = bond NT factor for MESONT particles (?? units)
|
||||
* buckling = buckling factor for MESONT particles (?? units)
|
||||
@ -722,6 +782,13 @@ not used (e.g. an atomic system with no bonds), and you don't care if
|
||||
unique atom IDs appear in dump files, then the atom-IDs can all be set
|
||||
to 0.
|
||||
|
||||
The atom-type can be a numeric value or an alphanumeric label. The
|
||||
latter is only allowed if the type label has been defined by the
|
||||
:doc:`labelmap <labelmap>` command or an Atom Type Labels section
|
||||
earlier in the data file. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
|
||||
The molecule ID is a second identifier attached to an atom. Normally, it
|
||||
is a number from 1 to N, identifying which molecule the atom belongs
|
||||
to. It can be 0 if it is a non-bonded atom or if you don't care to
|
||||
@ -932,6 +999,26 @@ script.
|
||||
|
||||
----------
|
||||
|
||||
*Bond Type Labels* section:
|
||||
|
||||
* one line per bond type
|
||||
* line syntax: ID label
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ID = bond type (1-N)
|
||||
label = alphanumeric type label
|
||||
|
||||
Define alphanumeric type labels for each numeric bond type. These can
|
||||
be used in the Bonds section in place of a numeric type, but only if
|
||||
the this section appears before the Angles section.
|
||||
|
||||
See the :doc:`Howto type labels <Howto_type_labels>` doc page for the
|
||||
allowed syntax of type labels and a general discussion of how type
|
||||
labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
*BondAngle Coeffs* section:
|
||||
|
||||
* one line per angle type
|
||||
@ -976,7 +1063,7 @@ script.
|
||||
.. parsed-literal::
|
||||
|
||||
ID = bond number (1-Nbonds)
|
||||
type = bond type (1-Nbondtype)
|
||||
type = bond type (1-Nbondtype, or type label)
|
||||
atom1,atom2 = IDs of 1st,2nd atom in bond
|
||||
|
||||
* example:
|
||||
@ -985,8 +1072,15 @@ script.
|
||||
|
||||
12 3 17 29
|
||||
|
||||
The *Bonds* section must appear after the *Atoms* section. All values
|
||||
in this section must be integers (1, not 1.0).
|
||||
The *Bonds* section must appear after the *Atoms* section.
|
||||
|
||||
All values in this section must be integers (1, not 1.0). However,
|
||||
the type can be a numeric value or an alphanumeric label. The latter
|
||||
is only allowed if the type label has been defined by the
|
||||
:doc:`labelmap <labelmap>` command or a Bond Type Labels section
|
||||
earlier in the data file. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
@ -1014,6 +1108,26 @@ Coefficients can also be set via the
|
||||
|
||||
----------
|
||||
|
||||
*Dihedral Type Labels* section:
|
||||
|
||||
* one line per dihedral type
|
||||
* line syntax: ID label
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ID = dihedral type (1-N)
|
||||
label = alphanumeric type label
|
||||
|
||||
Define alphanumeric type labels for each numeric dihedral type. These
|
||||
can be used in the Dihedrals section in place of a numeric type, but
|
||||
only if the this section appears before the Dihedrals section.
|
||||
|
||||
See the :doc:`Howto type labels <Howto_type_labels>` doc page for the
|
||||
allowed syntax of type labels and a general discussion of how type
|
||||
labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
*Dihedrals* section:
|
||||
|
||||
* one line per dihedral
|
||||
@ -1022,7 +1136,7 @@ Coefficients can also be set via the
|
||||
.. parsed-literal::
|
||||
|
||||
ID = number of dihedral (1-Ndihedrals)
|
||||
type = dihedral type (1-Ndihedraltype)
|
||||
type = dihedral type (1-Ndihedraltype, or type label)
|
||||
atom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atom in dihedral
|
||||
|
||||
* example:
|
||||
@ -1032,8 +1146,15 @@ Coefficients can also be set via the
|
||||
12 4 17 29 30 21
|
||||
|
||||
The 4 atoms are ordered linearly within the dihedral. The *Dihedrals*
|
||||
section must appear after the *Atoms* section. All values in this
|
||||
section must be integers (1, not 1.0).
|
||||
section must appear after the *Atoms* section.
|
||||
|
||||
All values in this section must be integers (1, not 1.0). However,
|
||||
the type can be a numeric value or an alphanumeric label. The latter
|
||||
is only allowed if the type label has been defined by the
|
||||
:doc:`labelmap <labelmap>` command or a Dihedral Type Labels section
|
||||
earlier in the data file. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
@ -1115,6 +1236,26 @@ Coefficients can also be set via the
|
||||
|
||||
----------
|
||||
|
||||
*Improper Type Labels* section:
|
||||
|
||||
* one line per improper type
|
||||
* line syntax: ID label
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ID = improper type (1-N)
|
||||
label = alphanumeric type label
|
||||
|
||||
Define alphanumeric type labels for each numeric improper type. These
|
||||
can be used in the Impropers section in place of a numeric type, but
|
||||
only if the this section appears before the Impropers section.
|
||||
|
||||
See the :doc:`Howto type labels <Howto_type_labels>` doc page for the
|
||||
allowed syntax of type labels and a general discussion of how type
|
||||
labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
*Impropers* section:
|
||||
|
||||
* one line per improper
|
||||
@ -1123,7 +1264,7 @@ Coefficients can also be set via the
|
||||
.. parsed-literal::
|
||||
|
||||
ID = number of improper (1-Nimpropers)
|
||||
type = improper type (1-Nimpropertype)
|
||||
type = improper type (1-Nimpropertype, or type label)
|
||||
atom1,atom2,atom3,atom4 = IDs of 1st,2nd,3rd,4th atom in improper
|
||||
|
||||
* example:
|
||||
@ -1133,11 +1274,19 @@ Coefficients can also be set via the
|
||||
12 3 17 29 13 100
|
||||
|
||||
The ordering of the 4 atoms determines the definition of the improper
|
||||
angle used in the formula for each :doc:`improper style <improper_style>`. See the doc pages for individual styles
|
||||
for details.
|
||||
angle used in the formula for each :doc:`improper style
|
||||
<improper_style>`. See the doc pages for individual styles for
|
||||
details.
|
||||
|
||||
The *Impropers* section must appear after the *Atoms* section. All
|
||||
values in this section must be integers (1, not 1.0).
|
||||
The *Impropers* section must appear after the *Atoms* section.
|
||||
|
||||
All values in this section must be integers (1, not 1.0). However,
|
||||
the type can be a numeric value or an alphanumeric label. The latter
|
||||
is only allowed if the type label has been defined by the
|
||||
:doc:`labelmap <labelmap>` command or a Improper Type Labels section
|
||||
earlier in the data file. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
|
||||
----------
|
||||
|
||||
@ -1181,7 +1330,7 @@ The *Lines* section must appear after the *Atoms* section.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ID = atom type (1-N)
|
||||
ID = atom type (1-N or atom type label)
|
||||
mass = mass value
|
||||
|
||||
* example:
|
||||
@ -1195,6 +1344,13 @@ This defines the mass of each atom type. This can also be set via the
|
||||
used for atom styles that define a mass for individual atoms -
|
||||
e.g. :doc:`atom_style sphere <atom_style>`.
|
||||
|
||||
Using type labels instead of atom type numbers is only allowed if the
|
||||
type label has been defined by the :doc:`labelmap <labelmap>` command or
|
||||
a Atom Type Labels section earlier in the data file. See the
|
||||
:doc:`Howto type labels <Howto_type_labels>` doc page for the allowed
|
||||
syntax of type labels and a general discussion of how type labels can be
|
||||
used.
|
||||
|
||||
----------
|
||||
|
||||
*MiddleBondTorsion Coeffs* section:
|
||||
@ -1363,11 +1519,14 @@ To read gzipped data files, you must compile LAMMPS with the
|
||||
-DLAMMPS_GZIP option. See the :doc:`Build settings <Build_settings>`
|
||||
doc page for details.
|
||||
|
||||
Labelmaps are currently not supported when using the KOKKOS package.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`read_dump <read_dump>`, :doc:`read_restart <read_restart>`,
|
||||
:doc:`create_atoms <create_atoms>`, :doc:`write_data <write_data>`
|
||||
:doc:`create_atoms <create_atoms>`, :doc:`write_data <write_data>`,
|
||||
:doc:`labelmap <labelmap>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -12,7 +12,7 @@ Syntax
|
||||
restart N root keyword value ...
|
||||
restart N file1 file2 keyword value ...
|
||||
|
||||
* N = write a restart file every this many timesteps
|
||||
* N = write a restart file on timesteps which are multipls of N
|
||||
* N can be a variable (see below)
|
||||
* root = filename to which timestep # is appended
|
||||
* file1,file2 = two full filenames, toggle between them when writing file
|
||||
@ -42,13 +42,14 @@ Description
|
||||
"""""""""""
|
||||
|
||||
Write out a binary restart file with the current state of the
|
||||
simulation every so many timesteps, in either or both of two modes, as
|
||||
a run proceeds. A value of 0 means do not write out any restart
|
||||
files. The two modes are as follows. If one filename is specified, a
|
||||
series of filenames will be created which include the timestep in the
|
||||
filename. If two filenames are specified, only 2 restart files will
|
||||
be created, with those names. LAMMPS will toggle between the 2 names
|
||||
as it writes successive restart files.
|
||||
simulation on timesteps which are a multiple of N. A value of N = 0
|
||||
means do not write out any restart files, which is the default.
|
||||
Restart files are written in one (or both) of two modes as a run
|
||||
proceeds. If one filename is specified, a series of filenames will be
|
||||
created which include the timestep in the filename. If two filenames
|
||||
are specified, only 2 restart files will be created, with those names.
|
||||
LAMMPS will toggle between the 2 names as it writes successive restart
|
||||
files.
|
||||
|
||||
Note that you can specify the restart command twice, once with a
|
||||
single filename and once with two filenames. This would allow you,
|
||||
|
||||
@ -66,7 +66,7 @@ Syntax
|
||||
bound(group,dir,region), gyration(group,region), ke(group,reigon),
|
||||
angmom(group,dim,region), torque(group,dim,region),
|
||||
inertia(group,dimdim,region), omega(group,dim,region)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label)
|
||||
feature functions = is_active(category,feature), is_available(category,feature), is_defined(category,id)
|
||||
atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i]
|
||||
atom vector = id, mass, type, mol, x, y, z, vx, vy, vz, fx, fy, fz, q
|
||||
@ -505,7 +505,7 @@ references, and references to other variables.
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x) |
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), label2type(kind,label) |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Atom values | id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] |
|
||||
+--------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
@ -962,6 +962,12 @@ types, bond types and so on. For the full list of available keywords
|
||||
*name* and their meaning, see the documentation for extract_setting()
|
||||
via the link in this paragraph.
|
||||
|
||||
The label2type() function converts type labels into numeric types, using label
|
||||
maps created by the :doc:`labelmap <labelmap>` or :doc:`read_data <read_data>`
|
||||
commands. The first argument is the label map kind (atom, bond, angle,
|
||||
dihedral, or improper) and the second argument is the label. The function
|
||||
returns the corresponding numeric type.
|
||||
|
||||
----------
|
||||
|
||||
Feature Functions
|
||||
|
||||
@ -12,12 +12,14 @@ Syntax
|
||||
|
||||
* file = name of data file to write out
|
||||
* zero or more keyword/value pairs may be appended
|
||||
* keyword = *pair* or *nocoeff*
|
||||
* keyword = *pair* or *nocoeff* or *nofix* or *nolabelmap*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*nocoeff* = do not write out force field info
|
||||
*nofix* = do not write out extra sections read by fixes
|
||||
*nolabelmap* = do not write out type labels
|
||||
*types* value = *numeric* or *labels*
|
||||
*pair* value = *ii* or *ij*
|
||||
*ii* = write one line of pair coefficient info per atom type
|
||||
*ij* = write one line of pair coefficient info per IJ atom type pair
|
||||
@ -94,16 +96,39 @@ data file is read.
|
||||
|
||||
----------
|
||||
|
||||
The *nocoeff* keyword requests that no force field parameters should
|
||||
be written to the data file. This can be very helpful, if one wants
|
||||
to make significant changes to the force field or if the parameters
|
||||
are read in separately anyway, e.g. from an include file.
|
||||
Use of the *nocoeff* keyword means no force field parameters are
|
||||
written to the data file. This can be helpful, for example, if you
|
||||
want to make significant changes to the force field or if the force
|
||||
field parameters are read in separately, e.g. from an include file.
|
||||
|
||||
The *nofix* keyword requests that no extra sections read by fixes
|
||||
should be written to the data file (see the *fix* option of the
|
||||
:doc:`read_data <read_data>` command for details). For example, this
|
||||
option excludes sections for user-created per-atom properties
|
||||
from :doc:`fix property/atom <fix_property_atom>`.
|
||||
Use of the *nofix* keyword means no extra sections read by fixes are
|
||||
written to the data file (see the *fix* option of the :doc:`read_data
|
||||
<read_data>` command for details). For example, this option excludes
|
||||
sections for user-created per-atom properties from :doc:`fix
|
||||
property/atom <fix_property_atom>`.
|
||||
|
||||
The *nolabelmap* and *types* keywords refer to type labels that may be
|
||||
defined for numeric atom types, bond types, angle types, etc. The
|
||||
label map can be defined in two ways, either by the :doc:`labelmap
|
||||
<labelmap>` command or in data files read by the :doc:`read_data
|
||||
<read_data>` command which have sections for Atom Type Labels, Bond
|
||||
Type Labels, Angle Type Labels, etc. See the :doc:`Howto type labels
|
||||
<Howto_type_labels>` doc page for the allowed syntax of type labels
|
||||
and a general discussion of how type labels can be used.
|
||||
|
||||
Use of the *nolabelmap* keyword means that even if type labels exist
|
||||
for a given type-kind (Atoms, Bonds, Angles, etc.), type labels are
|
||||
not written to the data file. By default, they are written if they
|
||||
exist. A type label must be defined for every numeric type (within a
|
||||
given type-kind) to be written to the data file.
|
||||
|
||||
The *types* keyword determines how atom types, bond types, angle
|
||||
types, etc are written into these data file sections: Atoms, Bonds,
|
||||
Angles, etc. The default is the *numeric* setting, even if type label
|
||||
maps exist. If the *labels* setting is used, type labels will be
|
||||
written to the data file, if the corresponding label map exists. Note
|
||||
that when using *types labels*, the *nolabelmap* keyword cannot be
|
||||
used.
|
||||
|
||||
The *pair* keyword lets you specify in what format the pair
|
||||
coefficient information is written into the data file. If the value
|
||||
@ -144,4 +169,4 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The option defaults are pair = ii.
|
||||
The option defaults are pair = ii and types_style = numeric.
|
||||
|
||||
@ -6,7 +6,7 @@ LAMMPS_COMMANDS = ("angle_coeff", "angle_style", "atom_modify", "atom_style",
|
||||
"clear", "comm_modify", "comm_style",
|
||||
"compute_modify", "create_atoms", "create_bonds", "create_box", "delete_atoms",
|
||||
"delete_bonds", "dielectric", "dihedral_coeff", "dihedral_style", "dimension",
|
||||
"displace_atoms", "dump_modify", "dynamical_matrix", "echo",
|
||||
"displace_atoms", "dump_modify", "dynamical_matrix", "echo", "elif", "else",
|
||||
"fix_modify", "group2ndx", "hyper", "if", "improper_coeff",
|
||||
"improper_style", "include", "info", "jump", "kim",
|
||||
"kspace_modify", "kspace_style", "label", "lattice",
|
||||
@ -16,8 +16,8 @@ LAMMPS_COMMANDS = ("angle_coeff", "angle_style", "atom_modify", "atom_style",
|
||||
"partition", "prd", "print", "processors", "python", "quit", "read_data",
|
||||
"read_dump", "read_restart", "replicate", "rerun", "reset_ids",
|
||||
"reset_timestep", "restart", "run", "run_style", "server", "set", "shell",
|
||||
"special_bonds", "suffix", "tad", "temper", "temper/grem", "temper/npt",
|
||||
"thermo", "thermo_modify", "thermo_style", "then", "third_order", "timer", "timestep",
|
||||
"special_bonds", "suffix", "tad", "temper", "temper/grem", "temper/npt", "then",
|
||||
"thermo", "thermo_modify", "thermo_style", "third_order", "timer", "timestep",
|
||||
"units", "velocity", "write_coeff",
|
||||
"write_data", "write_restart")
|
||||
|
||||
|
||||
@ -61,6 +61,7 @@ ajs
|
||||
akohlmey
|
||||
Aktulga
|
||||
al
|
||||
alabel
|
||||
alain
|
||||
Alain
|
||||
Alamos
|
||||
@ -287,6 +288,7 @@ bitrates
|
||||
Bitzek
|
||||
Bjerrum
|
||||
Bkappa
|
||||
blabel
|
||||
Blaise
|
||||
blanchedalmond
|
||||
blocksize
|
||||
@ -750,6 +752,7 @@ dissipative
|
||||
Dissipative
|
||||
distharm
|
||||
dl
|
||||
dlabel
|
||||
dlambda
|
||||
DLAMMPS
|
||||
dll
|
||||
@ -1427,6 +1430,7 @@ ijk
|
||||
ijkl
|
||||
ik
|
||||
Ikeshoji
|
||||
ilabel
|
||||
Ilie
|
||||
ilmenau
|
||||
Ilmenau
|
||||
@ -1716,6 +1720,8 @@ Kusters
|
||||
Kutta
|
||||
Kuznetsov
|
||||
kx
|
||||
labelmap
|
||||
Labelmap
|
||||
Lachet
|
||||
Lackmann
|
||||
Ladd
|
||||
@ -1939,6 +1945,8 @@ Manolopoulos
|
||||
manpages
|
||||
manybody
|
||||
MANYBODY
|
||||
mapID
|
||||
mapIDs
|
||||
Maras
|
||||
Marchetti
|
||||
Marchi
|
||||
@ -2252,6 +2260,7 @@ nanoparticles
|
||||
nanotube
|
||||
Nanotube
|
||||
nanotubes
|
||||
nanowires
|
||||
Narulkar
|
||||
nasa
|
||||
nasr
|
||||
@ -2259,6 +2268,7 @@ natively
|
||||
Natoli
|
||||
natoms
|
||||
Natoms
|
||||
Natomtype
|
||||
Nattempt
|
||||
navajowhite
|
||||
Navier
|
||||
@ -3555,6 +3565,7 @@ typeargs
|
||||
typedefs
|
||||
typeI
|
||||
typeJ
|
||||
typelabel
|
||||
typeN
|
||||
typesafe
|
||||
Tz
|
||||
|
||||
@ -13,7 +13,7 @@ Masses
|
||||
2 1
|
||||
3 1
|
||||
|
||||
Atoms # dielectric: id mol type q x y z normx normy normz area_per_patch ed em epsilon curvature
|
||||
Atoms # dielectric : id mol type q x y z normx normy normz area_per_patch ed em epsilon curvature
|
||||
|
||||
1 0 1 0 0 0 9.99798 0 0 1 0.866 8 6 6 0
|
||||
2 0 1 0 0.500101 0.866201 9.99798 0 0 1 0.866 8 6 6 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
237628
examples/PACKAGES/mesont/data.film_mesocnt
Normal file
237628
examples/PACKAGES/mesont/data.film_mesocnt
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,38 +0,0 @@
|
||||
#Initialisation
|
||||
|
||||
units nano
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style full
|
||||
comm_modify cutoff 11.0
|
||||
neighbor 7.80 bin
|
||||
newton on
|
||||
|
||||
#Read data
|
||||
|
||||
read_data cnt.data
|
||||
replicate 1 2 2
|
||||
|
||||
#Force field
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 268896.77 2.0
|
||||
|
||||
angle_style harmonic
|
||||
angle_coeff 1 46562.17 180.0
|
||||
|
||||
pair_style mesocnt
|
||||
pair_coeff * * C_10_10.mesocnt
|
||||
|
||||
#Output
|
||||
|
||||
thermo 1000
|
||||
dump xyz all xyz 1000 cnt.xyz
|
||||
|
||||
#Simulation setup
|
||||
|
||||
timestep 1.0e-05
|
||||
|
||||
#Nose-Hoover thermostat
|
||||
fix nvt all nvt temp 300 300 0.001
|
||||
run 10000
|
||||
46
examples/PACKAGES/mesont/in.film_mesocnt
Normal file
46
examples/PACKAGES/mesont/in.film_mesocnt
Normal file
@ -0,0 +1,46 @@
|
||||
# initialisation
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p s
|
||||
atom_style full
|
||||
special_bonds lj 1 1 1
|
||||
neigh_modify every 5 delay 0 check yes
|
||||
newton on
|
||||
|
||||
read_data data.film_mesocnt
|
||||
|
||||
# force field
|
||||
|
||||
bond_style mesocnt
|
||||
bond_coeff 1 C 10 10 10
|
||||
|
||||
angle_style mesocnt
|
||||
angle_coeff 1 buckling C 10 10 10
|
||||
|
||||
pair_style mesocnt 40 chain
|
||||
pair_coeff * * C_10_10.mesocnt 1
|
||||
|
||||
# output
|
||||
|
||||
compute epair all pe pair
|
||||
compute ebond all pe bond
|
||||
compute eangle all pe angle
|
||||
|
||||
compute epair_atom all pe/atom pair
|
||||
compute ebond_atom all pe/atom bond
|
||||
compute eangle_atom all pe/atom angle
|
||||
|
||||
fix angle_mesocnt_buckled all property/atom i_buckled ghost yes
|
||||
|
||||
thermo_style custom step temp etotal ke pe c_ebond c_eangle c_epair
|
||||
thermo 10
|
||||
#dump custom all custom 100 film_mesocnt.lmp id mol type x y z c_ebond_atom c_eangle_atom c_epair_atom i_buckled
|
||||
|
||||
# simulation setup
|
||||
|
||||
velocity all create 600.0 2022 loop geom
|
||||
timestep 0.01
|
||||
fix nvt all nvt temp 300.0 300.0 1
|
||||
|
||||
run 100
|
||||
126
examples/PACKAGES/mesont/log.31Aug2022.film_mesocnt.g++.1
Normal file
126
examples/PACKAGES/mesont/log.31Aug2022.film_mesocnt.g++.1
Normal file
@ -0,0 +1,126 @@
|
||||
LAMMPS (3 Aug 2022)
|
||||
# initialisation
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p s
|
||||
atom_style full
|
||||
special_bonds lj 1 1 1
|
||||
neigh_modify every 5 delay 0 check yes
|
||||
newton on
|
||||
|
||||
read_data data.film_mesocnt
|
||||
Reading data file ...
|
||||
orthogonal box = (-2500 -2500 -300) to (2500 2500 402.42)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
79596 atoms
|
||||
scanning bonds ...
|
||||
1 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
79200 bonds
|
||||
reading angles ...
|
||||
78804 angles
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 1 1 1
|
||||
special bond factors coul: 0 0 0
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of 1-3 neighbors
|
||||
4 = max # of 1-4 neighbors
|
||||
6 = max # of special neighbors
|
||||
special bonds CPU = 0.012 seconds
|
||||
read_data CPU = 0.160 seconds
|
||||
|
||||
# force field
|
||||
|
||||
bond_style mesocnt
|
||||
bond_coeff 1 C 10 10 10
|
||||
|
||||
angle_style mesocnt
|
||||
angle_coeff 1 buckling C 10 10 10
|
||||
|
||||
pair_style mesocnt 40 chain
|
||||
pair_coeff * * C_10_10.mesocnt 1
|
||||
Reading mesocnt potential file C_10_10.mesocnt with DATE: 2022-07-12
|
||||
|
||||
# output
|
||||
|
||||
compute epair all pe pair
|
||||
compute ebond all pe bond
|
||||
compute eangle all pe angle
|
||||
|
||||
compute epair_atom all pe/atom pair
|
||||
compute ebond_atom all pe/atom bond
|
||||
compute eangle_atom all pe/atom angle
|
||||
|
||||
fix angle_mesocnt_buckled all property/atom i_buckled ghost yes
|
||||
|
||||
thermo_style custom step temp etotal ke pe c_ebond c_eangle c_epair
|
||||
thermo 10
|
||||
#dump custom all custom 100 film_mesocnt.lmp id mol type x y z c_ebond_atom c_eangle_atom c_epair_atom i_buckled
|
||||
|
||||
# simulation setup
|
||||
|
||||
velocity all create 600.0 2022 loop geom
|
||||
timestep 0.01
|
||||
fix nvt all nvt temp 300.0 300.0 1
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update: every = 5 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 42
|
||||
ghost atom cutoff = 42
|
||||
binsize = 21, bins = 239 239 4
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair mesocnt, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 49.89 | 49.89 | 49.89 Mbytes
|
||||
Step Temp TotEng KinEng PotEng c_ebond c_eangle c_epair
|
||||
0 600 1355.8735 6173.0767 -4817.2032 28.668731 21.29199 -4867.1639
|
||||
10 389.92732 1373.1839 4011.7521 -2638.5683 848.77485 1387.6166 -4874.9597
|
||||
20 311.7468 1388.0161 3207.3949 -1819.3788 1211.534 1868.6817 -4899.5945
|
||||
30 291.75586 1385.2114 3001.7189 -1616.5075 1184.1423 2133.2088 -4933.8586
|
||||
40 320.42607 1364.2644 3296.6912 -1932.4267 951.62534 2088.33 -4972.382
|
||||
50 341.37701 1346.0547 3512.2441 -2166.1894 956.59158 1891.9196 -5014.7005
|
||||
60 333.15461 1337.5518 3427.6483 -2090.0965 1137.7331 1825.9946 -5053.8242
|
||||
70 324.47061 1328.7153 3338.3033 -2009.588 1133.3639 1953.8288 -5096.7807
|
||||
80 324.39487 1315.4948 3337.5241 -2022.0293 979.16213 2141.4697 -5142.6611
|
||||
90 323.39973 1302.3471 3327.2856 -2024.9385 972.70286 2185.7686 -5183.41
|
||||
100 322.73067 1289.0538 3320.402 -2031.3482 1100.1024 2088.3804 -5219.831
|
||||
Loop time of 4.1637 on 1 procs for 100 steps with 79596 atoms
|
||||
|
||||
Performance: 20.751 ns/day, 1.157 hours/ns, 24.017 timesteps/s
|
||||
99.5% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.705 | 3.705 | 3.705 | 0.0 | 88.98
|
||||
Bond | 0.29317 | 0.29317 | 0.29317 | 0.0 | 7.04
|
||||
Neigh | 0.078491 | 0.078491 | 0.078491 | 0.0 | 1.89
|
||||
Comm | 0.0019462 | 0.0019462 | 0.0019462 | 0.0 | 0.05
|
||||
Output | 0.00099817 | 0.00099817 | 0.00099817 | 0.0 | 0.02
|
||||
Modify | 0.079874 | 0.079874 | 0.079874 | 0.0 | 1.92
|
||||
Other | | 0.004224 | | | 0.10
|
||||
|
||||
Nlocal: 79596 ave 79596 max 79596 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 2567 ave 2567 max 2567 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 1.1337e+06 ave 1.1337e+06 max 1.1337e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 1133696
|
||||
Ave neighs/atom = 14.243128
|
||||
Ave special neighs/atom = 5.9402985
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:05
|
||||
126
examples/PACKAGES/mesont/log.31Aug2022.film_mesocnt.g++.4
Normal file
126
examples/PACKAGES/mesont/log.31Aug2022.film_mesocnt.g++.4
Normal file
@ -0,0 +1,126 @@
|
||||
LAMMPS (3 Aug 2022)
|
||||
# initialisation
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
boundary p p s
|
||||
atom_style full
|
||||
special_bonds lj 1 1 1
|
||||
neigh_modify every 5 delay 0 check yes
|
||||
newton on
|
||||
|
||||
read_data data.film_mesocnt
|
||||
Reading data file ...
|
||||
orthogonal box = (-2500 -2500 -300) to (2500 2500 402.42)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
79596 atoms
|
||||
scanning bonds ...
|
||||
1 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
79200 bonds
|
||||
reading angles ...
|
||||
78804 angles
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 1 1 1
|
||||
special bond factors coul: 0 0 0
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of 1-3 neighbors
|
||||
4 = max # of 1-4 neighbors
|
||||
6 = max # of special neighbors
|
||||
special bonds CPU = 0.005 seconds
|
||||
read_data CPU = 0.156 seconds
|
||||
|
||||
# force field
|
||||
|
||||
bond_style mesocnt
|
||||
bond_coeff 1 C 10 10 10
|
||||
|
||||
angle_style mesocnt
|
||||
angle_coeff 1 buckling C 10 10 10
|
||||
|
||||
pair_style mesocnt 40 chain
|
||||
pair_coeff * * C_10_10.mesocnt 1
|
||||
Reading mesocnt potential file C_10_10.mesocnt with DATE: 2022-07-12
|
||||
|
||||
# output
|
||||
|
||||
compute epair all pe pair
|
||||
compute ebond all pe bond
|
||||
compute eangle all pe angle
|
||||
|
||||
compute epair_atom all pe/atom pair
|
||||
compute ebond_atom all pe/atom bond
|
||||
compute eangle_atom all pe/atom angle
|
||||
|
||||
fix angle_mesocnt_buckled all property/atom i_buckled ghost yes
|
||||
|
||||
thermo_style custom step temp etotal ke pe c_ebond c_eangle c_epair
|
||||
thermo 10
|
||||
#dump custom all custom 100 film_mesocnt.lmp id mol type x y z c_ebond_atom c_eangle_atom c_epair_atom i_buckled
|
||||
|
||||
# simulation setup
|
||||
|
||||
velocity all create 600.0 2022 loop geom
|
||||
timestep 0.01
|
||||
fix nvt all nvt temp 300.0 300.0 1
|
||||
|
||||
run 100
|
||||
Neighbor list info ...
|
||||
update: every = 5 steps, delay = 0 steps, check = yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 42
|
||||
ghost atom cutoff = 42
|
||||
binsize = 21, bins = 239 239 4
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair mesocnt, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 16.47 | 16.58 | 16.89 Mbytes
|
||||
Step Temp TotEng KinEng PotEng c_ebond c_eangle c_epair
|
||||
0 600 1355.8735 6173.0767 -4817.2032 28.668731 21.29199 -4867.1639
|
||||
10 389.92732 1373.1839 4011.7521 -2638.5683 848.77485 1387.6166 -4874.9597
|
||||
20 311.7468 1388.0161 3207.3949 -1819.3788 1211.534 1868.6817 -4899.5945
|
||||
30 291.75586 1385.2114 3001.7189 -1616.5075 1184.1423 2133.2088 -4933.8586
|
||||
40 320.42607 1364.2644 3296.6912 -1932.4267 951.62534 2088.33 -4972.382
|
||||
50 341.37701 1346.0547 3512.2441 -2166.1894 956.59158 1891.9196 -5014.7005
|
||||
60 333.15461 1337.5518 3427.6483 -2090.0965 1137.7331 1825.9946 -5053.8242
|
||||
70 324.47061 1328.7153 3338.3033 -2009.588 1133.3639 1953.8288 -5096.7807
|
||||
80 324.39487 1315.4948 3337.5241 -2022.0293 979.16213 2141.4697 -5142.6611
|
||||
90 323.39973 1302.3471 3327.2856 -2024.9385 972.70286 2185.7686 -5183.41
|
||||
100 322.73067 1289.0538 3320.402 -2031.3482 1100.1024 2088.3804 -5219.831
|
||||
Loop time of 1.25052 on 4 procs for 100 steps with 79596 atoms
|
||||
|
||||
Performance: 69.091 ns/day, 0.347 hours/ns, 79.967 timesteps/s
|
||||
99.6% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.87036 | 0.97558 | 1.1135 | 9.0 | 78.01
|
||||
Bond | 0.071751 | 0.076357 | 0.084244 | 1.7 | 6.11
|
||||
Neigh | 0.023232 | 0.023239 | 0.023244 | 0.0 | 1.86
|
||||
Comm | 0.0046002 | 0.15227 | 0.26319 | 24.1 | 12.18
|
||||
Output | 0.00032696 | 0.00037811 | 0.00045537 | 0.0 | 0.03
|
||||
Modify | 0.019263 | 0.020646 | 0.023155 | 1.1 | 1.65
|
||||
Other | | 0.00204 | | | 0.16
|
||||
|
||||
Nlocal: 19899 ave 21951 max 18670 min
|
||||
Histogram: 1 1 0 1 0 0 0 0 0 1
|
||||
Nghost: 1323.5 ave 1412 max 1255 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 283424 ave 325466 max 258171 min
|
||||
Histogram: 1 0 2 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 1133696
|
||||
Ave neighs/atom = 14.243128
|
||||
Ave special neighs/atom = 5.9402985
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:02
|
||||
@ -1,126 +0,0 @@
|
||||
LAMMPS (09 Jan 2020)
|
||||
#Initialisation
|
||||
|
||||
units nano
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style full
|
||||
comm_modify cutoff 11.0
|
||||
neighbor 7.80 bin
|
||||
newton on
|
||||
|
||||
#Read data
|
||||
|
||||
read_data cnt.data
|
||||
orthogonal box = (0 0 0) to (600 600 60)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
500 atoms
|
||||
scanning bonds ...
|
||||
1 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
498 bonds
|
||||
reading angles ...
|
||||
496 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of 1-3 neighbors
|
||||
4 = max # of 1-4 neighbors
|
||||
6 = max # of special neighbors
|
||||
special bonds CPU = 0.000180006 secs
|
||||
read_data CPU = 0.00125766 secs
|
||||
replicate 1 2 2
|
||||
orthogonal box = (0 0 0) to (600 1200 120)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
2000 atoms
|
||||
1992 bonds
|
||||
1984 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of 1-3 neighbors
|
||||
4 = max # of 1-4 neighbors
|
||||
6 = max # of special neighbors
|
||||
special bonds CPU = 0.00054121 secs
|
||||
replicate CPU = 0.000902414 secs
|
||||
|
||||
#Force field
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 268896.77 2.0
|
||||
|
||||
angle_style harmonic
|
||||
angle_coeff 1 46562.17 180.0
|
||||
|
||||
pair_style mesocnt
|
||||
pair_coeff * * 10_10.cnt
|
||||
Reading potential file 10_10.cnt with DATE: 2020-01-13
|
||||
|
||||
#Output
|
||||
|
||||
thermo 1000
|
||||
dump xyz all xyz 1000 cnt.xyz
|
||||
|
||||
#Simulation setup
|
||||
|
||||
timestep 1.0e-05
|
||||
|
||||
#Nose-Hoover thermostat
|
||||
fix nvt all nvt temp 300 300 0.001
|
||||
run 10000
|
||||
WARNING: Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions (src/pair.cpp:226)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10.177
|
||||
ghost atom cutoff = 11
|
||||
binsize = 5.0885, bins = 118 236 24
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair mesocnt, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 11.21 | 11.21 | 11.21 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -4632.0136 5.7939238e-17 -4632.0136 -0.00015032304
|
||||
1000 298.82235 -19950.274 13208.089 5628.7024 -0.0056205182
|
||||
2000 300.43933 -28320.212 11980.296 -3902.0877 -0.0045324757
|
||||
3000 300.4263 -36049.855 11338.405 -12274.161 -0.0018833539
|
||||
4000 299.13368 -43471.21 11926.882 -19160.553 -0.00043030866
|
||||
5000 293.77858 -50083.893 12334.927 -25586.884 -0.0015653738
|
||||
6000 296.4851 -56330.135 12325.63 -31730.376 -0.0012795986
|
||||
7000 298.20879 -62120.359 12582.297 -37192.574 -0.0013845796
|
||||
8000 299.45547 -67881.692 13058.926 -42425.669 -0.00021100885
|
||||
9000 301.82622 -73333.698 13598.257 -47240.197 -0.0006009197
|
||||
10000 307.16873 -78292.306 13818.929 -51756.96 -0.0005609903
|
||||
Loop time of 4.0316 on 1 procs for 10000 steps with 2000 atoms
|
||||
|
||||
Performance: 2143.072 ns/day, 0.011 hours/ns, 2480.408 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 2.5955 | 2.5955 | 2.5955 | 0.0 | 64.38
|
||||
Bond | 1.1516 | 1.1516 | 1.1516 | 0.0 | 28.57
|
||||
Neigh | 0.001163 | 0.001163 | 0.001163 | 0.0 | 0.03
|
||||
Comm | 0.0019577 | 0.0019577 | 0.0019577 | 0.0 | 0.05
|
||||
Output | 0.020854 | 0.020854 | 0.020854 | 0.0 | 0.52
|
||||
Modify | 0.21637 | 0.21637 | 0.21637 | 0.0 | 5.37
|
||||
Other | | 0.04409 | | | 1.09
|
||||
|
||||
Nlocal: 2000 ave 2000 max 2000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 0 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 13320 ave 13320 max 13320 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 13320
|
||||
Ave neighs/atom = 6.66
|
||||
Ave special neighs/atom = 5.952
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:05
|
||||
@ -1,126 +0,0 @@
|
||||
LAMMPS (09 Jan 2020)
|
||||
#Initialisation
|
||||
|
||||
units nano
|
||||
dimension 3
|
||||
boundary p p p
|
||||
atom_style full
|
||||
comm_modify cutoff 11.0
|
||||
neighbor 7.80 bin
|
||||
newton on
|
||||
|
||||
#Read data
|
||||
|
||||
read_data cnt.data
|
||||
orthogonal box = (0 0 0) to (600 600 60)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
500 atoms
|
||||
scanning bonds ...
|
||||
1 = max bonds/atom
|
||||
scanning angles ...
|
||||
1 = max angles/atom
|
||||
reading bonds ...
|
||||
498 bonds
|
||||
reading angles ...
|
||||
496 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of 1-3 neighbors
|
||||
4 = max # of 1-4 neighbors
|
||||
6 = max # of special neighbors
|
||||
special bonds CPU = 0.000354767 secs
|
||||
read_data CPU = 0.00286365 secs
|
||||
replicate 1 2 2
|
||||
orthogonal box = (0 0 0) to (600 1200 120)
|
||||
1 by 4 by 1 MPI processor grid
|
||||
2000 atoms
|
||||
1992 bonds
|
||||
1984 angles
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of 1-3 neighbors
|
||||
4 = max # of 1-4 neighbors
|
||||
6 = max # of special neighbors
|
||||
special bonds CPU = 0.00019598 secs
|
||||
replicate CPU = 0.00055337 secs
|
||||
|
||||
#Force field
|
||||
|
||||
bond_style harmonic
|
||||
bond_coeff 1 268896.77 2.0
|
||||
|
||||
angle_style harmonic
|
||||
angle_coeff 1 46562.17 180.0
|
||||
|
||||
pair_style mesocnt
|
||||
pair_coeff * * 10_10.cnt
|
||||
Reading potential file 10_10.cnt with DATE: 2020-01-13
|
||||
|
||||
#Output
|
||||
|
||||
thermo 1000
|
||||
dump xyz all xyz 1000 cnt.xyz
|
||||
|
||||
#Simulation setup
|
||||
|
||||
timestep 1.0e-05
|
||||
|
||||
#Nose-Hoover thermostat
|
||||
fix nvt all nvt temp 300 300 0.001
|
||||
run 10000
|
||||
WARNING: Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions (src/pair.cpp:226)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10.177
|
||||
ghost atom cutoff = 11
|
||||
binsize = 5.0885, bins = 118 236 24
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair mesocnt, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 2.725 | 2.725 | 2.725 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 -4632.0136 5.7939238e-17 -4632.0136 -0.00015032304
|
||||
1000 298.82235 -19950.274 13208.089 5628.7024 -0.0056205182
|
||||
2000 300.43861 -28320.205 11980.287 -3902.1202 -0.0045324738
|
||||
3000 300.41076 -36049.308 11339.149 -12273.513 -0.0018848513
|
||||
4000 299.13326 -43471.424 11927.668 -19159.998 -0.00042845101
|
||||
5000 293.78857 -50083.216 12333.969 -25586.752 -0.0015664633
|
||||
6000 296.45482 -56329.621 12326.419 -31730.328 -0.0012773686
|
||||
7000 298.19097 -62119.086 12581.4 -37192.937 -0.0013862831
|
||||
8000 299.46424 -67880.989 13057.62 -42425.908 -0.00020874264
|
||||
9000 301.80677 -73332.208 13597.237 -47240.532 -0.00060074773
|
||||
10000 307.17104 -78292.912 13818.889 -51757.51 -0.00056148282
|
||||
Loop time of 1.23665 on 4 procs for 10000 steps with 2000 atoms
|
||||
|
||||
Performance: 6986.607 ns/day, 0.003 hours/ns, 8086.351 timesteps/s
|
||||
96.1% CPU use with 4 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.66321 | 0.68439 | 0.71413 | 2.5 | 55.34
|
||||
Bond | 0.28561 | 0.29434 | 0.30976 | 1.7 | 23.80
|
||||
Neigh | 0.00043321 | 0.00043637 | 0.00043917 | 0.0 | 0.04
|
||||
Comm | 0.026656 | 0.05346 | 0.097228 | 12.7 | 4.32
|
||||
Output | 0.0070224 | 0.0073031 | 0.0081415 | 0.6 | 0.59
|
||||
Modify | 0.12769 | 0.15394 | 0.18743 | 6.5 | 12.45
|
||||
Other | | 0.04279 | | | 3.46
|
||||
|
||||
Nlocal: 500 ave 504 max 496 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Nghost: 22 ave 24 max 20 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 3330 ave 3368 max 3292 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 13320
|
||||
Ave neighs/atom = 6.66
|
||||
Ave special neighs/atom = 5.952
|
||||
Neighbor list builds = 1
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:02
|
||||
24
examples/QM/LATTE/2uo2.lmp
Normal file
24
examples/QM/LATTE/2uo2.lmp
Normal file
@ -0,0 +1,24 @@
|
||||
LAMMPS Description
|
||||
|
||||
6 atoms
|
||||
|
||||
2 atom types
|
||||
|
||||
0.0000000000000000 10.800000000000001 xlo xhi
|
||||
0.0000000000000000 5.4000000000000004 ylo yhi
|
||||
0.0000000000000000 5.4000000000000004 zlo zhi
|
||||
3.3065463576978537E-016 3.3065463576978537E-016 3.3065463576978537E-016 xy xz yz
|
||||
|
||||
Masses
|
||||
|
||||
1 238.05078125000000
|
||||
2 15.994915008544922
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0.0 2.70000 8.10000 0.00000
|
||||
2 1 2 0.0 1.35000 9.45000 1.35000
|
||||
3 1 2 0.0 4.05000 9.45000 1.35000
|
||||
4 1 1 0.0 2.70000 10.80000 2.70000
|
||||
5 1 2 0.0 1.35000 12.15000 4.05000
|
||||
6 1 2 0.0 4.05000 12.15000 4.05000
|
||||
27
examples/QM/LATTE/3uo2.lmp
Normal file
27
examples/QM/LATTE/3uo2.lmp
Normal file
@ -0,0 +1,27 @@
|
||||
LAMMPS Description
|
||||
|
||||
9 atoms
|
||||
|
||||
2 atom types
|
||||
|
||||
0.0000000000000000 16.199999999999999 xlo xhi
|
||||
0.0000000000000000 5.4000000000000004 ylo yhi
|
||||
0.0000000000000000 5.4000000000000004 zlo zhi
|
||||
3.3065463576978537E-016 3.3065463576978537E-016 3.3065463576978537E-016 xy xz yz
|
||||
|
||||
Masses
|
||||
|
||||
1 238.05078125000000
|
||||
2 15.994915008544922
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0.0 2.70000 8.10000 0.00000
|
||||
2 1 2 0.0 1.35000 9.45000 1.35000
|
||||
3 1 2 0.0 4.05000 9.45000 1.35000
|
||||
4 1 1 0.0 2.70000 10.80000 2.70000
|
||||
5 1 2 0.0 1.35000 12.15000 4.05000
|
||||
6 1 2 0.0 4.05000 12.15000 4.05000
|
||||
7 1 1 0.0 2.70000 13.50000 5.40000
|
||||
8 1 2 0.0 1.35000 14.85000 6.75000
|
||||
9 1 2 0.0 4.05000 14.85000 6.75000
|
||||
30
examples/QM/LATTE/4uo2.lmp
Normal file
30
examples/QM/LATTE/4uo2.lmp
Normal file
@ -0,0 +1,30 @@
|
||||
LAMMPS Description
|
||||
|
||||
12 atoms
|
||||
|
||||
2 atom types
|
||||
|
||||
0.0000000000000000 10.800000000000001 xlo xhi
|
||||
0.0000000000000000 10.800000000000001 ylo yhi
|
||||
0.0000000000000000 5.4000000000000004 zlo zhi
|
||||
6.6130927153957075E-016 3.3065463576978537E-016 3.3065463576978537E-016 xy xz yz
|
||||
|
||||
Masses
|
||||
|
||||
1 238.05078125000000
|
||||
2 15.994915008544922
|
||||
|
||||
Atoms
|
||||
|
||||
1 1 1 0.0 2.70000 8.10000 0.00000
|
||||
2 1 2 0.0 1.35000 9.45000 1.35000
|
||||
3 1 2 0.0 4.05000 9.45000 1.35000
|
||||
4 1 1 0.0 5.40000 8.10000 2.70000
|
||||
5 1 2 0.0 4.05000 9.45000 4.05000
|
||||
6 1 2 0.0 6.75000 9.45000 4.05000
|
||||
7 1 1 0.0 2.70000 10.80000 2.70000
|
||||
8 1 2 0.0 1.35000 12.15000 4.05000
|
||||
9 1 2 0.0 4.05000 12.15000 4.05000
|
||||
10 1 1 0.0 5.40000 10.80000 5.40000
|
||||
11 1 2 0.0 4.05000 12.15000 6.75000
|
||||
12 1 2 0.0 6.75000 12.15000 6.75000
|
||||
161
examples/QM/LATTE/README
Normal file
161
examples/QM/LATTE/README
Normal file
@ -0,0 +1,161 @@
|
||||
LATTE is a semi-empirical tight-binding quantum code, developed
|
||||
primarily at Los Alamos National Labs.
|
||||
|
||||
See these links:
|
||||
|
||||
https://www.osti.gov/biblio/1526907-los-alamos-transferable-tight-binding-energetics-latte-version
|
||||
https://github.com/lanl/LATTE
|
||||
|
||||
LAMMPS has 2 ways of working with LATTE:
|
||||
|
||||
(1) Via its LATTE package and the fix latte command
|
||||
must run LAMMPS on a single processor, it calls LATTE as a library
|
||||
|
||||
(2) Via its MDI package and the code-coupling MDI library
|
||||
(a) can run LAMMPS and LATTE as stand-alone codes
|
||||
LAMMPS can be run on any number of procs
|
||||
LATTE must run on a single proc, but can use OpenMP
|
||||
(b) can run LAMMPS with LATTE as a plug-in library
|
||||
must run LAMMPS on a single processor
|
||||
|
||||
Examples for use case (1) are in the examples/latte dir. Use case (2)
|
||||
is illustrated in this dir.
|
||||
|
||||
NOTE: If you compare MDI runs in this dir to similar fix latte runs in
|
||||
examples/latte, the answers for energy and virial will be differnt.
|
||||
This is b/c the version of LATTE used by the fix latte command within
|
||||
the LATTE package is older than the version of LATTE used here.
|
||||
|
||||
------------------
|
||||
Building 3 codes needed to run these examples
|
||||
|
||||
(1) Download and build MDI
|
||||
|
||||
% git clone git@github.com:MolSSI-MDI/MDI_Library.git mdi
|
||||
% cd mdi
|
||||
% mkdir build; cd build
|
||||
% cmake .. # includes support for all langauges (incl Fortran, Python)
|
||||
% make
|
||||
|
||||
(2) Download and build LATTE with MDI support
|
||||
|
||||
% git clone git@github.com:lanl/LATTE.git latte
|
||||
% cd latte
|
||||
% git checkout skimLATTE-progress # goto branch with MDI support
|
||||
% cp makefiles/makefile.CHOICES.mdi makefile.CHOICES # so can now edit
|
||||
% edit makefile.CHOICES settings to have these settings:
|
||||
MAKELIB = OFF, SHARED = ON, MDI = ON
|
||||
MDI_PATH must point to CMake build of MDI in (1),
|
||||
e.g. /home/sjplimp/mdi/build/MDI_Library
|
||||
comment out 2 LIB lines with CUDA-CUDART_LIBRARY
|
||||
% make clean
|
||||
% make # creates liblatte.so and LATTE_DOUBLE with support for MDI
|
||||
|
||||
(3) Build LAMMPS with its MDI package
|
||||
also with the MOLECULE package for these example scripts
|
||||
|
||||
Build with traditional make
|
||||
|
||||
% cd lammps/lib/mdi
|
||||
% python Install.py -m mpi # downloads and builds MDI
|
||||
% cd ../../src
|
||||
% make yes-mdi yes-molecule
|
||||
$ make mpi # creates lmp_mpi
|
||||
|
||||
% mkdir build; cd build
|
||||
% cmake -D PKG_MDI=yes -D PKG_MOLECULE=yes ../cmake
|
||||
% make # creates lmp
|
||||
|
||||
Build with CMake
|
||||
|
||||
% cd lammps
|
||||
% mkdir build; cd build
|
||||
% cmake -D PKG_MDI=yes -D PKG_MOLECULE=yes ../cmake
|
||||
% make # creates lmp
|
||||
|
||||
(4) Copy LAMMPS and LATTE executables into this dir
|
||||
|
||||
Copy the LAMMPS executable (lmp_mpi or lmp) into this dir as lmp_mpi.
|
||||
Copy the LATTE executable LATTE_DOUBLE into this dir.
|
||||
The run commands below assume you have done this.
|
||||
|
||||
(5) Insure LD_LIBRARY_PATH includes the dir where MDI was built in (1)
|
||||
with its libmdi.so file, e.g. mdi/build/MDI_Library. This is needed
|
||||
so when LATTE_DOUBLE runs as an executable it will able to find
|
||||
libmdi.so.
|
||||
|
||||
------------------
|
||||
Notes on LATTE usage
|
||||
|
||||
You must run this version of LATTE on a single MPI processor.
|
||||
However, you can use OpenMP with LATTE. To do this you need to build
|
||||
LATTE with OpenMP support by editing the makefile.CHOICES file to
|
||||
include -fopenmp with FFLAGS and LINKFLAGS. Also -lapack and -lblas
|
||||
need to be added to LIB, and those libraries must be available on your
|
||||
system. For best performance you should also build LATTE with its
|
||||
PROGRESS and BML libraries. Building those libs is more complex,
|
||||
see details here:
|
||||
|
||||
https://github.com/lanl/LATTE_SUPER/tree/allMachines/Laptop
|
||||
|
||||
At run time, you need to also first set an environment variable for
|
||||
the number of OpenMP threads to use, e.g.
|
||||
|
||||
% export OMP_NUM_THREADS=12
|
||||
|
||||
By default LATTE reads the latte.in file for its parameters. That
|
||||
file specifies other files LATTE will read. With MDI, the driver code
|
||||
(e.g. LAMMPS) can use the >FNAME command to specify an alternate
|
||||
filename to use instead of latte.in.
|
||||
|
||||
By default LATTE writes out a log.latte file with info about its
|
||||
calculations. An "OUTFILE= logfile" setting in latte.in can rename
|
||||
this file.
|
||||
|
||||
---------
|
||||
Run example #1: AIMD
|
||||
|
||||
* Run with MPI: 1 proc each
|
||||
|
||||
mpirun -np 1 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" \
|
||||
-in in.aimd -log log.aimd.lammps.mpi : \
|
||||
-np 1 LATTE_DOUBLE -mdi "-name LATTE -role ENGINE -method MPI"
|
||||
|
||||
* Run with MPI: 2 procs for LAMMPS, 1 for LATTE
|
||||
|
||||
mpirun -np 2 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" \
|
||||
-in in.aimd -log log.aimd.lammps.mpi : \
|
||||
-np 1 LATTE_DOUBLE -mdi "-name LATTE -role ENGINE -method MPI"
|
||||
|
||||
* Run in plugin mode: 1 proc
|
||||
|
||||
lmp_mpi -mdi \
|
||||
"-name LMP -role DRIVER -method LINK -plugin_path /home/sjplimp/latte/git" \
|
||||
-in in.aimd.plugin -log log.aimd.lammps.plugin
|
||||
|
||||
NOTE: The -plugin_path needs to point to where LATTE was built in step
|
||||
(2).
|
||||
|
||||
---------
|
||||
Run example #2: sequence of configurations
|
||||
|
||||
* Run with MPI: 1 proc each
|
||||
|
||||
mpirun -np 1 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" \
|
||||
-in in.series -log log.series.lammps.mpi : \
|
||||
-np 1 LATTE_DOUBLE -mdi "-name LATTE -role ENGINE -method MPI"
|
||||
|
||||
* Run with MPI: 2 procs for LAMMPS, 1 for LATTE
|
||||
|
||||
mpirun -np 2 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" \
|
||||
-in in.series -log log.series.lammps.mpi : \
|
||||
-np 1 LATTE_DOUBLE -mdi "-name LATTE -role ENGINE -method MPI"
|
||||
|
||||
* Run in plugin mode: 1 proc
|
||||
|
||||
lmp_mpi -mdi \
|
||||
"-name LMP -role DRIVER -method LINK -plugin_path /home/sjplimp/latte/git" \
|
||||
-in in.series.plugin -log log.series.lammps.plugin
|
||||
|
||||
NOTE: The -plugin_path needs to point to where LATTE was built in step
|
||||
(2).
|
||||
1384
examples/QM/LATTE/bondints.table
Normal file
1384
examples/QM/LATTE/bondints.table
Normal file
File diff suppressed because it is too large
Load Diff
315
examples/QM/LATTE/dump.8Sep22.aimd.mpi.1
Normal file
315
examples/QM/LATTE/dump.8Sep22.aimd.mpi.1
Normal file
@ -0,0 +1,315 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.7 2.7 0 -0.601491 0.335597 -0.87242 -2.27066e-14 -1.33391e-14 2.31141e-14
|
||||
2 2 1.35 4.05 1.35 8.2897 4.55901 5.97376 2.35473 2.21578e-14 7.40069e-15
|
||||
3 2 4.05 4.05 1.35 1.7742 6.51885 0.385522 -2.35473 2.97071e-15 -2.01341e-14
|
||||
4 1 2.7 1.65327e-16 2.7 -0.325605 -1.03244 0.724324 -2.90278e-14 6.77422e-15 2.86766e-15
|
||||
5 2 1.35 1.35 4.05 2.42711 -1.49109 -2.41596 2.35473 5.79901e-15 -1.19594e-14
|
||||
6 2 4.05 1.35 4.05 1.30688 0.784281 -1.73922 -2.35473 -1.38761e-14 1.09382e-14
|
||||
ITEM: TIMESTEP
|
||||
1
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69985 2.70008 -0.000218105 -0.601467 0.335616 -0.872428 0.00470101 0.00380515 -0.00141625
|
||||
2 2 1.35212 4.05114 1.35149 8.64389 4.55886 5.97363 2.34251 -0.00209926 -0.00172976
|
||||
3 2 4.0504 4.05163 1.3501 1.41949 6.51866 0.385561 -2.34936 -0.00247497 0.00051716
|
||||
4 1 2.69992 -0.00025811 2.70018 -0.325581 -1.03243 0.724334 0.00481137 0.00249244 0.00195665
|
||||
5 2 1.35065 1.34963 4.0494 2.78199 -1.49112 -2.4159 2.3517 -0.00043711 0.000874754
|
||||
6 2 4.05028 1.3502 4.04957 0.951796 0.784184 -1.73923 -2.35436 -0.00128625 -0.00020256
|
||||
ITEM: TIMESTEP
|
||||
2
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6997 2.70017 -0.000436214 -0.601396 0.335673 -0.872449 0.00939888 0.00756163 -0.00288164
|
||||
2 2 1.35432 4.05228 1.35299 8.99615 4.55837 5.97323 2.32921 -0.00431846 -0.00355855
|
||||
3 2 4.05071 4.05326 1.35019 1.06567 6.5181 0.385678 -2.34304 -0.00494314 0.00103532
|
||||
4 1 2.69984 -0.000516214 2.70036 -0.325507 -1.03239 0.724364 0.00976944 0.00512657 0.00403686
|
||||
5 2 1.35139 1.34925 4.04879 3.13634 -1.49122 -2.4157 2.34776 -0.000851489 0.00177498
|
||||
6 2 4.05048 1.35039 4.04913 0.596838 0.783892 -1.73928 -2.3531 -0.00257512 -0.000406965
|
||||
ITEM: TIMESTEP
|
||||
3
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69955 2.70025 -0.00065433 -0.601277 0.335769 -0.872486 0.0141006 0.0112702 -0.00439552
|
||||
2 2 1.35661 4.05342 1.35448 9.34633 4.55754 5.97255 2.31482 -0.00666433 -0.00549143
|
||||
3 2 4.05093 4.05489 1.35029 0.712875 6.51717 0.385873 -2.33577 -0.00740896 0.00154764
|
||||
4 1 2.69976 -0.000774304 2.70054 -0.325382 -1.03232 0.724417 0.0148831 0.00790884 0.00624833
|
||||
5 2 1.35222 1.34888 4.04819 3.49003 -1.49137 -2.41536 2.3429 -0.0012407 0.00270313
|
||||
6 2 4.05058 1.35059 4.0487 0.242138 0.783407 -1.73935 -2.35094 -0.00386511 -0.000612161
|
||||
ITEM: TIMESTEP
|
||||
4
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6994 2.70034 -0.000872457 -0.60111 0.335902 -0.872539 0.0188131 0.0149318 -0.00595718
|
||||
2 2 1.359 4.05456 1.35597 9.69425 4.55635 5.97156 2.29933 -0.00914346 -0.00753331
|
||||
3 2 4.05107 4.05652 1.35039 0.361248 6.51586 0.386144 -2.32753 -0.00987687 0.00204727
|
||||
4 1 2.69967 -0.00103238 2.70072 -0.325204 -1.03223 0.724492 0.020161 0.0108455 0.00859866
|
||||
5 2 1.35314 1.34851 4.04758 3.84292 -1.49159 -2.41488 2.33711 -0.00160232 0.00366164
|
||||
6 2 4.0506 1.35078 4.04826 -0.112168 0.782727 -1.73946 -2.34789 -0.00515472 -0.000817084
|
||||
ITEM: TIMESTEP
|
||||
5
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69925 2.70042 -0.0010906 -0.600896 0.336071 -0.872607 0.0235434 0.0185473 -0.00756588
|
||||
2 2 1.36146 4.0557 1.35747 10.0397 4.55478 5.97026 2.2827 -0.0117623 -0.00968894
|
||||
3 2 4.05111 4.05815 1.35048 0.0109366 6.51419 0.386489 -2.31832 -0.0123511 0.00252727
|
||||
4 1 2.69959 -0.00129042 2.70091 -0.324972 -1.0321 0.724592 0.0256115 0.0139425 0.0110953
|
||||
5 2 1.35414 1.34814 4.04698 4.19487 -1.49186 -2.41425 2.33039 -0.00193394 0.0046529
|
||||
6 2 4.05052 1.35098 4.04783 -0.465946 0.781852 -1.7396 -2.34393 -0.00644244 -0.00102066
|
||||
ITEM: TIMESTEP
|
||||
6
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6991 2.7005 -0.00130876 -0.600633 0.336277 -0.872692 0.0282985 0.0221175 -0.00922083
|
||||
2 2 1.36401 4.05684 1.35896 10.3827 4.55279 5.96863 2.26494 -0.0145272 -0.0119629
|
||||
3 2 4.05107 4.05978 1.35058 -0.337913 6.51214 0.386904 -2.30814 -0.0148362 0.00298071
|
||||
4 1 2.69951 -0.00154843 2.70109 -0.324684 -1.03194 0.724717 0.0312427 0.0172058 0.0137455
|
||||
5 2 1.35523 1.34776 4.04638 4.54573 -1.49217 -2.41347 2.32273 -0.00223319 0.00567932
|
||||
6 2 4.05036 1.35117 4.04739 -0.819058 0.780784 -1.73977 -2.33906 -0.00772673 -0.00122181
|
||||
ITEM: TIMESTEP
|
||||
7
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69895 2.70059 -0.00152695 -0.600322 0.336519 -0.872794 0.0330853 0.0256435 -0.0109212
|
||||
2 2 1.36665 4.05797 1.36045 10.7228 4.55038 5.96665 2.24601 -0.0174443 -0.0143597
|
||||
3 2 4.05094 4.0614 1.35068 -0.685154 6.50971 0.387385 -2.29698 -0.0173365 0.00340068
|
||||
4 1 2.69943 -0.00180639 2.70127 -0.324338 -1.03175 0.724871 0.0370626 0.020641 0.0165564
|
||||
5 2 1.35641 1.34739 4.04577 4.89536 -1.49253 -2.41254 2.31411 -0.0024977 0.00674323
|
||||
6 2 4.05012 1.35137 4.04696 -1.17137 0.779522 -1.73997 -2.33329 -0.00900604 -0.00141944
|
||||
ITEM: TIMESTEP
|
||||
8
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6988 2.70067 -0.00174516 -0.599962 0.336797 -0.872914 0.0379108 0.0291262 -0.0126661
|
||||
2 2 1.36938 4.05911 1.36194 11.06 4.54752 5.96429 2.2259 -0.0205196 -0.0168834
|
||||
3 2 4.05073 4.06303 1.35077 -1.03064 6.50691 0.387927 -2.28482 -0.0198564 0.00378025
|
||||
4 1 2.69935 -0.0020643 2.70145 -0.323932 -1.03153 0.725054 0.0430788 0.0242538 0.0195348
|
||||
5 2 1.35768 1.34702 4.04517 5.24362 -1.49292 -2.41144 2.30452 -0.0027252 0.00784692
|
||||
6 2 4.04978 1.35156 4.04652 -1.52274 0.778068 -1.7402 -2.32659 -0.0102788 -0.00161245
|
||||
ITEM: TIMESTEP
|
||||
9
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69865 2.70076 -0.0019634 -0.599553 0.337109 -0.873051 0.0427817 0.0325667 -0.0144547
|
||||
2 2 1.37218 4.06025 1.36343 11.3941 4.54418 5.96155 2.20459 -0.023759 -0.019538
|
||||
3 2 4.05043 4.06466 1.35087 -1.37421 6.50372 0.388522 -2.27166 -0.0224003 0.00411244
|
||||
4 1 2.69927 -0.00232215 2.70163 -0.323464 -1.03126 0.725268 0.0492987 0.0280495 0.0226874
|
||||
5 2 1.35904 1.34664 4.04457 5.59036 -1.49335 -2.41017 2.29396 -0.00291347 0.00899259
|
||||
6 2 4.04935 1.35176 4.04609 -1.87303 0.776422 -1.74045 -2.31898 -0.0115434 -0.00179972
|
||||
ITEM: TIMESTEP
|
||||
10
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6985 2.70084 -0.00218168 -0.599095 0.337456 -0.873207 0.0477049 0.0359661 -0.0162858
|
||||
2 2 1.37507 4.06138 1.36492 11.7248 4.54034 5.95839 2.18206 -0.0271682 -0.0223275
|
||||
3 2 4.05004 4.06628 1.35097 -1.71572 6.50015 0.389163 -2.25748 -0.0249726 0.0043903
|
||||
4 1 2.69919 -0.00257993 2.70181 -0.322932 -1.03096 0.725515 0.0557294 0.0320331 0.0260207
|
||||
5 2 1.36048 1.34627 4.04397 5.93543 -1.4938 -2.40872 2.2824 -0.00306026 0.0101825
|
||||
6 2 4.04884 1.35195 4.04565 -2.2221 0.774587 -1.74074 -2.31042 -0.0127983 -0.00198013
|
||||
ITEM: TIMESTEP
|
||||
11
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69835 2.70092 -0.00240001 -0.598586 0.337838 -0.873382 0.0526872 0.0393256 -0.0181586
|
||||
2 2 1.37805 4.06252 1.36641 12.0521 4.53597 5.9548 2.15829 -0.0307526 -0.0252554
|
||||
3 2 4.04957 4.06791 1.35106 -2.05501 6.49619 0.389841 -2.24228 -0.0275775 0.00460683
|
||||
4 1 2.69911 -0.00283763 2.70199 -0.322334 -1.03061 0.725796 0.0623777 0.0362096 0.0295409
|
||||
5 2 1.362 1.3459 4.04336 6.27868 -1.49427 -2.40709 2.26985 -0.00316333 0.0114188
|
||||
6 2 4.04824 1.35215 4.04522 -2.56981 0.772563 -1.74105 -2.30093 -0.0140417 -0.00215255
|
||||
ITEM: TIMESTEP
|
||||
12
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6982 2.70101 -0.00261837 -0.598027 0.338253 -0.873575 0.0577351 0.0426463 -0.0200718
|
||||
2 2 1.3811 4.06365 1.3679 12.3757 4.53105 5.95076 2.13326 -0.0345179 -0.0283253
|
||||
3 2 4.04901 4.06953 1.35116 -2.39194 6.49183 0.390547 -2.22604 -0.0302194 0.00475506
|
||||
4 1 2.69903 -0.00309524 2.70217 -0.321667 -1.03022 0.726114 0.06925 0.0405836 0.0332542
|
||||
5 2 1.36362 1.34552 4.04276 6.61997 -1.49475 -2.40527 2.25627 -0.00322051 0.0127037
|
||||
6 2 4.04756 1.35234 4.04478 -2.91602 0.770353 -1.74139 -2.29048 -0.0152721 -0.00231583
|
||||
ITEM: TIMESTEP
|
||||
13
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69805 2.70109 -0.00283679 -0.597416 0.338702 -0.873788 0.0628554 0.0459295 -0.0220243
|
||||
2 2 1.38423 4.06478 1.36939 12.6954 4.52555 5.94625 2.10694 -0.0384688 -0.0315401
|
||||
3 2 4.04837 4.07115 1.35126 -2.72634 6.48707 0.39127 -2.20874 -0.0329024 0.00482793
|
||||
4 1 2.69895 -0.00335274 2.70236 -0.320929 -1.02979 0.726471 0.0763523 0.0451591 0.0371659
|
||||
5 2 1.36531 1.34515 4.04216 6.95912 -1.49523 -2.40326 2.24165 -0.00322965 0.0140393
|
||||
6 2 4.04678 1.35253 4.04434 -3.26057 0.767958 -1.74175 -2.27906 -0.0164877 -0.0024688
|
||||
ITEM: TIMESTEP
|
||||
14
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6979 2.70118 -0.00305527 -0.596753 0.339184 -0.874022 0.0680546 0.0491768 -0.0240145
|
||||
2 2 1.38745 4.06591 1.37087 13.0111 4.51944 5.94124 2.07932 -0.0426096 -0.0349018
|
||||
3 2 4.04765 4.07277 1.35136 -3.05804 6.4819 0.391997 -2.19038 -0.035631 0.00481829
|
||||
4 1 2.69887 -0.00361013 2.70254 -0.320118 -1.0293 0.726868 0.0836894 0.0499393 0.0412807
|
||||
5 2 1.3671 1.34478 4.04156 7.296 -1.49572 -2.40103 2.22598 -0.00318867 0.0154277
|
||||
6 2 4.04593 1.35272 4.04391 -3.60334 0.765381 -1.74213 -2.26667 -0.0176868 -0.00261028
|
||||
ITEM: TIMESTEP
|
||||
15
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69775 2.70126 -0.0032738 -0.596036 0.339698 -0.874275 0.0733392 0.0523895 -0.0260413
|
||||
2 2 1.39074 4.06704 1.37236 13.3225 4.51268 5.93571 2.05037 -0.0469451 -0.0384133
|
||||
3 2 4.04685 4.07439 1.35146 -3.3869 6.47632 0.392716 -2.17093 -0.038409 0.00471919
|
||||
4 1 2.69879 -0.00386739 2.70272 -0.319232 -1.02877 0.727309 0.0912666 0.0549279 0.0456036
|
||||
5 2 1.36896 1.3444 4.04096 7.63043 -1.49619 -2.3986 2.20924 -0.00309551 0.0168709
|
||||
6 2 4.04498 1.35291 4.04347 -3.94416 0.762625 -1.74253 -2.25329 -0.0188678 -0.0027391
|
||||
ITEM: TIMESTEP
|
||||
16
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6976 2.70135 -0.00349241 -0.595266 0.340245 -0.87455 0.0787153 0.055569 -0.0281032
|
||||
2 2 1.39411 4.06817 1.37384 13.6294 4.50526 5.92964 2.02007 -0.0514799 -0.042077
|
||||
3 2 4.04596 4.07601 1.35155 -3.71274 6.47031 0.393413 -2.15039 -0.0412405 0.00452364
|
||||
4 1 2.69871 -0.00412452 2.7029 -0.318268 -1.02819 0.727794 0.0990893 0.0601283 0.0501398
|
||||
5 2 1.37091 1.34403 4.04036 7.96225 -1.49665 -2.39594 2.19142 -0.00294819 0.0183708
|
||||
6 2 4.04395 1.3531 4.04304 -4.28288 0.759692 -1.74296 -2.2389 -0.0200287 -0.00285406
|
||||
ITEM: TIMESTEP
|
||||
17
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69745 2.70143 -0.00371108 -0.594441 0.340824 -0.874845 0.0841889 0.0587168 -0.0301987
|
||||
2 2 1.39755 4.0693 1.37532 13.9317 4.49714 5.92301 1.9884 -0.0562187 -0.0458954
|
||||
3 2 4.04499 4.07763 1.35165 -4.0354 6.46388 0.394073 -2.12872 -0.0441293 0.0042247
|
||||
4 1 2.69863 -0.00438149 2.70308 -0.317223 -1.02755 0.728326 0.107162 0.0655439 0.054894
|
||||
5 2 1.37294 1.34365 4.03976 8.2913 -1.49708 -2.39305 2.17248 -0.00274479 0.0199293
|
||||
6 2 4.04284 1.35329 4.0426 -4.61936 0.756586 -1.74339 -2.2235 -0.0211679 -0.00295392
|
||||
ITEM: TIMESTEP
|
||||
18
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69731 2.70152 -0.00392983 -0.593559 0.341435 -0.875162 0.0897661 0.0618346 -0.0323262
|
||||
2 2 1.40107 4.07042 1.3768 14.229 4.48829 5.91578 1.95532 -0.0611659 -0.0498706
|
||||
3 2 4.04394 4.07924 1.35175 -4.3547 6.457 0.394679 -2.10593 -0.0470792 0.0038154
|
||||
4 1 2.69855 -0.00463829 2.70327 -0.316095 -1.02686 0.728907 0.11549 0.0711775 0.0598705
|
||||
5 2 1.37506 1.34328 4.03916 8.61741 -1.49747 -2.38993 2.15241 -0.00248344 0.0215483
|
||||
6 2 4.04164 1.35348 4.04217 -4.95344 0.753309 -1.74385 -2.20706 -0.0222835 -0.00303744
|
||||
ITEM: TIMESTEP
|
||||
19
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69716 2.7016 -0.00414866 -0.592621 0.342077 -0.8755 0.0954526 0.0649239 -0.0344841
|
||||
2 2 1.40467 4.07154 1.37828 14.5213 4.47868 5.90795 1.92083 -0.0663258 -0.0540045
|
||||
3 2 4.04281 4.08086 1.35185 -4.67049 6.44967 0.395215 -2.08198 -0.050094 0.00328881
|
||||
4 1 2.69847 -0.00489492 2.70345 -0.314881 -1.02611 0.72954 0.124076 0.0770317 0.0650736
|
||||
5 2 1.37725 1.3429 4.03857 8.94041 -1.49782 -2.38655 2.13119 -0.00216234 0.0232295
|
||||
6 2 4.04036 1.35367 4.04173 -5.28496 0.749867 -1.74431 -2.18956 -0.0233735 -0.00310338
|
||||
ITEM: TIMESTEP
|
||||
20
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69701 2.70169 -0.00436758 -0.591624 0.342751 -0.875861 0.101254 0.0679866 -0.0366705
|
||||
2 2 1.40833 4.07266 1.37976 14.8083 4.46827 5.89948 1.88489 -0.0717024 -0.0582989
|
||||
3 2 4.0416 4.08247 1.35195 -4.98257 6.44189 0.395662 -2.05686 -0.0531772 0.00263798
|
||||
4 1 2.69839 -0.00515135 2.70363 -0.313579 -1.0253 0.730227 0.132925 0.0831089 0.0705072
|
||||
5 2 1.37953 1.34253 4.03797 9.26012 -1.49812 -2.38291 2.1088 -0.00177977 0.0249746
|
||||
6 2 4.039 1.35386 4.04129 -5.61376 0.746262 -1.74478 -2.171 -0.0244362 -0.00315046
|
||||
315
examples/QM/LATTE/dump.8Sep22.aimd.mpi.2
Normal file
315
examples/QM/LATTE/dump.8Sep22.aimd.mpi.2
Normal file
@ -0,0 +1,315 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.7 2.7 0 -0.601491 0.335597 -0.87242 -2.27066e-14 -1.33391e-14 2.31141e-14
|
||||
2 2 1.35 4.05 1.35 8.2897 4.55901 5.97376 2.35473 2.21578e-14 7.40069e-15
|
||||
3 2 4.05 4.05 1.35 1.7742 6.51885 0.385522 -2.35473 2.97071e-15 -2.01341e-14
|
||||
4 1 2.7 1.65327e-16 2.7 -0.325605 -1.03244 0.724324 -2.90278e-14 6.77422e-15 2.86766e-15
|
||||
5 2 1.35 1.35 4.05 2.42711 -1.49109 -2.41596 2.35473 5.79901e-15 -1.19594e-14
|
||||
6 2 4.05 1.35 4.05 1.30688 0.784281 -1.73922 -2.35473 -1.38761e-14 1.09382e-14
|
||||
ITEM: TIMESTEP
|
||||
1
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69985 2.70008 -0.000218105 -0.601467 0.335616 -0.872428 0.00470101 0.00380515 -0.00141625
|
||||
2 2 1.35212 4.05114 1.35149 8.64389 4.55886 5.97363 2.34251 -0.00209926 -0.00172976
|
||||
3 2 4.0504 4.05163 1.3501 1.41949 6.51866 0.385561 -2.34936 -0.00247497 0.00051716
|
||||
4 1 2.69992 -0.00025811 2.70018 -0.325581 -1.03243 0.724334 0.00481137 0.00249244 0.00195665
|
||||
5 2 1.35065 1.34963 4.0494 2.78199 -1.49112 -2.4159 2.3517 -0.00043711 0.000874754
|
||||
6 2 4.05028 1.3502 4.04957 0.951796 0.784184 -1.73923 -2.35436 -0.00128625 -0.00020256
|
||||
ITEM: TIMESTEP
|
||||
2
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6997 2.70017 -0.000436214 -0.601396 0.335673 -0.872449 0.00939888 0.00756163 -0.00288164
|
||||
2 2 1.35432 4.05228 1.35299 8.99615 4.55837 5.97323 2.32921 -0.00431846 -0.00355855
|
||||
3 2 4.05071 4.05326 1.35019 1.06567 6.5181 0.385678 -2.34304 -0.00494314 0.00103532
|
||||
4 1 2.69984 -0.000516214 2.70036 -0.325507 -1.03239 0.724364 0.00976944 0.00512657 0.00403686
|
||||
5 2 1.35139 1.34925 4.04879 3.13634 -1.49122 -2.4157 2.34776 -0.000851489 0.00177498
|
||||
6 2 4.05048 1.35039 4.04913 0.596838 0.783892 -1.73928 -2.3531 -0.00257512 -0.000406965
|
||||
ITEM: TIMESTEP
|
||||
3
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69955 2.70025 -0.00065433 -0.601277 0.335769 -0.872486 0.0141006 0.0112702 -0.00439552
|
||||
2 2 1.35661 4.05342 1.35448 9.34633 4.55754 5.97255 2.31482 -0.00666433 -0.00549143
|
||||
3 2 4.05093 4.05489 1.35029 0.712875 6.51717 0.385873 -2.33577 -0.00740896 0.00154764
|
||||
4 1 2.69976 -0.000774304 2.70054 -0.325382 -1.03232 0.724417 0.0148831 0.00790884 0.00624833
|
||||
5 2 1.35222 1.34888 4.04819 3.49003 -1.49137 -2.41536 2.3429 -0.0012407 0.00270313
|
||||
6 2 4.05058 1.35059 4.0487 0.242138 0.783407 -1.73935 -2.35094 -0.00386511 -0.000612161
|
||||
ITEM: TIMESTEP
|
||||
4
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6994 2.70034 -0.000872457 -0.60111 0.335902 -0.872539 0.0188131 0.0149318 -0.00595718
|
||||
2 2 1.359 4.05456 1.35597 9.69425 4.55635 5.97156 2.29933 -0.00914346 -0.00753331
|
||||
3 2 4.05107 4.05652 1.35039 0.361248 6.51586 0.386144 -2.32753 -0.00987687 0.00204727
|
||||
4 1 2.69967 -0.00103238 2.70072 -0.325204 -1.03223 0.724492 0.020161 0.0108455 0.00859866
|
||||
5 2 1.35314 1.34851 4.04758 3.84292 -1.49159 -2.41488 2.33711 -0.00160232 0.00366164
|
||||
6 2 4.0506 1.35078 4.04826 -0.112168 0.782727 -1.73946 -2.34789 -0.00515472 -0.000817084
|
||||
ITEM: TIMESTEP
|
||||
5
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69925 2.70042 -0.0010906 -0.600896 0.336071 -0.872607 0.0235434 0.0185473 -0.00756588
|
||||
2 2 1.36146 4.0557 1.35747 10.0397 4.55478 5.97026 2.2827 -0.0117623 -0.00968894
|
||||
3 2 4.05111 4.05815 1.35048 0.0109366 6.51419 0.386489 -2.31832 -0.0123511 0.00252727
|
||||
4 1 2.69959 -0.00129042 2.70091 -0.324972 -1.0321 0.724592 0.0256115 0.0139425 0.0110953
|
||||
5 2 1.35414 1.34814 4.04698 4.19487 -1.49186 -2.41425 2.33039 -0.00193394 0.0046529
|
||||
6 2 4.05052 1.35098 4.04783 -0.465946 0.781852 -1.7396 -2.34393 -0.00644244 -0.00102066
|
||||
ITEM: TIMESTEP
|
||||
6
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6991 2.7005 -0.00130876 -0.600633 0.336277 -0.872692 0.0282985 0.0221175 -0.00922083
|
||||
2 2 1.36401 4.05684 1.35896 10.3827 4.55279 5.96863 2.26494 -0.0145272 -0.0119629
|
||||
3 2 4.05107 4.05978 1.35058 -0.337913 6.51214 0.386904 -2.30814 -0.0148362 0.00298071
|
||||
4 1 2.69951 -0.00154843 2.70109 -0.324684 -1.03194 0.724717 0.0312427 0.0172058 0.0137455
|
||||
5 2 1.35523 1.34776 4.04638 4.54573 -1.49217 -2.41347 2.32273 -0.00223319 0.00567932
|
||||
6 2 4.05036 1.35117 4.04739 -0.819058 0.780784 -1.73977 -2.33906 -0.00772673 -0.00122181
|
||||
ITEM: TIMESTEP
|
||||
7
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69895 2.70059 -0.00152695 -0.600322 0.336519 -0.872794 0.0330853 0.0256435 -0.0109212
|
||||
2 2 1.36665 4.05797 1.36045 10.7228 4.55038 5.96665 2.24601 -0.0174443 -0.0143597
|
||||
3 2 4.05094 4.0614 1.35068 -0.685154 6.50971 0.387385 -2.29698 -0.0173365 0.00340068
|
||||
4 1 2.69943 -0.00180639 2.70127 -0.324338 -1.03175 0.724871 0.0370626 0.020641 0.0165564
|
||||
5 2 1.35641 1.34739 4.04577 4.89536 -1.49253 -2.41254 2.31411 -0.0024977 0.00674323
|
||||
6 2 4.05012 1.35137 4.04696 -1.17137 0.779522 -1.73997 -2.33329 -0.00900604 -0.00141944
|
||||
ITEM: TIMESTEP
|
||||
8
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6988 2.70067 -0.00174516 -0.599962 0.336797 -0.872914 0.0379108 0.0291262 -0.0126661
|
||||
2 2 1.36938 4.05911 1.36194 11.06 4.54752 5.96429 2.2259 -0.0205196 -0.0168834
|
||||
3 2 4.05073 4.06303 1.35077 -1.03064 6.50691 0.387927 -2.28482 -0.0198564 0.00378025
|
||||
4 1 2.69935 -0.0020643 2.70145 -0.323932 -1.03153 0.725054 0.0430788 0.0242538 0.0195348
|
||||
5 2 1.35768 1.34702 4.04517 5.24362 -1.49292 -2.41144 2.30452 -0.0027252 0.00784692
|
||||
6 2 4.04978 1.35156 4.04652 -1.52274 0.778068 -1.7402 -2.32659 -0.0102788 -0.00161245
|
||||
ITEM: TIMESTEP
|
||||
9
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69865 2.70076 -0.0019634 -0.599553 0.337109 -0.873051 0.0427817 0.0325667 -0.0144547
|
||||
2 2 1.37218 4.06025 1.36343 11.3941 4.54418 5.96155 2.20459 -0.023759 -0.019538
|
||||
3 2 4.05043 4.06466 1.35087 -1.37421 6.50372 0.388522 -2.27166 -0.0224003 0.00411244
|
||||
4 1 2.69927 -0.00232215 2.70163 -0.323464 -1.03126 0.725268 0.0492987 0.0280495 0.0226874
|
||||
5 2 1.35904 1.34664 4.04457 5.59036 -1.49335 -2.41017 2.29396 -0.00291347 0.00899259
|
||||
6 2 4.04935 1.35176 4.04609 -1.87303 0.776422 -1.74045 -2.31898 -0.0115434 -0.00179972
|
||||
ITEM: TIMESTEP
|
||||
10
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6985 2.70084 -0.00218168 -0.599095 0.337456 -0.873207 0.0477049 0.0359661 -0.0162858
|
||||
2 2 1.37507 4.06138 1.36492 11.7248 4.54034 5.95839 2.18206 -0.0271682 -0.0223275
|
||||
3 2 4.05004 4.06628 1.35097 -1.71572 6.50015 0.389163 -2.25748 -0.0249726 0.0043903
|
||||
4 1 2.69919 -0.00257993 2.70181 -0.322932 -1.03096 0.725515 0.0557294 0.0320331 0.0260207
|
||||
5 2 1.36048 1.34627 4.04397 5.93543 -1.4938 -2.40872 2.2824 -0.00306026 0.0101825
|
||||
6 2 4.04884 1.35195 4.04565 -2.2221 0.774587 -1.74074 -2.31042 -0.0127983 -0.00198013
|
||||
ITEM: TIMESTEP
|
||||
11
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69835 2.70092 -0.00240001 -0.598586 0.337838 -0.873382 0.0526872 0.0393256 -0.0181586
|
||||
2 2 1.37805 4.06252 1.36641 12.0521 4.53597 5.9548 2.15829 -0.0307526 -0.0252554
|
||||
3 2 4.04957 4.06791 1.35106 -2.05501 6.49619 0.389841 -2.24228 -0.0275775 0.00460683
|
||||
4 1 2.69911 -0.00283763 2.70199 -0.322334 -1.03061 0.725796 0.0623777 0.0362096 0.0295409
|
||||
5 2 1.362 1.3459 4.04336 6.27868 -1.49427 -2.40709 2.26985 -0.00316333 0.0114188
|
||||
6 2 4.04824 1.35215 4.04522 -2.56981 0.772563 -1.74105 -2.30093 -0.0140417 -0.00215255
|
||||
ITEM: TIMESTEP
|
||||
12
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6982 2.70101 -0.00261837 -0.598027 0.338253 -0.873575 0.0577351 0.0426463 -0.0200718
|
||||
2 2 1.3811 4.06365 1.3679 12.3757 4.53105 5.95076 2.13326 -0.0345179 -0.0283253
|
||||
3 2 4.04901 4.06953 1.35116 -2.39194 6.49183 0.390547 -2.22604 -0.0302194 0.00475506
|
||||
4 1 2.69903 -0.00309524 2.70217 -0.321667 -1.03022 0.726114 0.06925 0.0405836 0.0332542
|
||||
5 2 1.36362 1.34552 4.04276 6.61997 -1.49475 -2.40527 2.25627 -0.00322051 0.0127037
|
||||
6 2 4.04756 1.35234 4.04478 -2.91602 0.770353 -1.74139 -2.29048 -0.0152721 -0.00231583
|
||||
ITEM: TIMESTEP
|
||||
13
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69805 2.70109 -0.00283679 -0.597416 0.338702 -0.873788 0.0628554 0.0459295 -0.0220243
|
||||
2 2 1.38423 4.06478 1.36939 12.6954 4.52555 5.94625 2.10694 -0.0384688 -0.0315401
|
||||
3 2 4.04837 4.07115 1.35126 -2.72634 6.48707 0.39127 -2.20874 -0.0329024 0.00482793
|
||||
4 1 2.69895 -0.00335274 2.70236 -0.320929 -1.02979 0.726471 0.0763523 0.0451591 0.0371659
|
||||
5 2 1.36531 1.34515 4.04216 6.95912 -1.49523 -2.40326 2.24165 -0.00322965 0.0140393
|
||||
6 2 4.04678 1.35253 4.04434 -3.26057 0.767958 -1.74175 -2.27906 -0.0164877 -0.0024688
|
||||
ITEM: TIMESTEP
|
||||
14
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6979 2.70118 -0.00305527 -0.596753 0.339184 -0.874022 0.0680546 0.0491768 -0.0240145
|
||||
2 2 1.38745 4.06591 1.37087 13.0111 4.51944 5.94124 2.07932 -0.0426096 -0.0349018
|
||||
3 2 4.04765 4.07277 1.35136 -3.05804 6.4819 0.391997 -2.19038 -0.035631 0.00481829
|
||||
4 1 2.69887 -0.00361013 2.70254 -0.320118 -1.0293 0.726868 0.0836894 0.0499393 0.0412807
|
||||
5 2 1.3671 1.34478 4.04156 7.296 -1.49572 -2.40103 2.22598 -0.00318867 0.0154277
|
||||
6 2 4.04593 1.35272 4.04391 -3.60334 0.765381 -1.74213 -2.26667 -0.0176868 -0.00261028
|
||||
ITEM: TIMESTEP
|
||||
15
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69775 2.70126 -0.0032738 -0.596036 0.339698 -0.874275 0.0733392 0.0523895 -0.0260413
|
||||
2 2 1.39074 4.06704 1.37236 13.3225 4.51268 5.93571 2.05037 -0.0469451 -0.0384133
|
||||
3 2 4.04685 4.07439 1.35146 -3.3869 6.47632 0.392716 -2.17093 -0.038409 0.00471919
|
||||
4 1 2.69879 -0.00386739 2.70272 -0.319232 -1.02877 0.727309 0.0912666 0.0549279 0.0456036
|
||||
5 2 1.36896 1.3444 4.04096 7.63043 -1.49619 -2.3986 2.20924 -0.00309551 0.0168709
|
||||
6 2 4.04498 1.35291 4.04347 -3.94416 0.762625 -1.74253 -2.25329 -0.0188678 -0.0027391
|
||||
ITEM: TIMESTEP
|
||||
16
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6976 2.70135 -0.00349241 -0.595266 0.340245 -0.87455 0.0787153 0.055569 -0.0281032
|
||||
2 2 1.39411 4.06817 1.37384 13.6294 4.50526 5.92964 2.02007 -0.0514799 -0.042077
|
||||
3 2 4.04596 4.07601 1.35155 -3.71274 6.47031 0.393413 -2.15039 -0.0412405 0.00452364
|
||||
4 1 2.69871 -0.00412452 2.7029 -0.318268 -1.02819 0.727794 0.0990893 0.0601283 0.0501398
|
||||
5 2 1.37091 1.34403 4.04036 7.96225 -1.49665 -2.39594 2.19142 -0.00294819 0.0183708
|
||||
6 2 4.04395 1.3531 4.04304 -4.28288 0.759692 -1.74296 -2.2389 -0.0200287 -0.00285406
|
||||
ITEM: TIMESTEP
|
||||
17
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69745 2.70143 -0.00371108 -0.594441 0.340824 -0.874845 0.0841889 0.0587168 -0.0301987
|
||||
2 2 1.39755 4.0693 1.37532 13.9317 4.49714 5.92301 1.9884 -0.0562187 -0.0458954
|
||||
3 2 4.04499 4.07763 1.35165 -4.0354 6.46388 0.394073 -2.12872 -0.0441293 0.0042247
|
||||
4 1 2.69863 -0.00438149 2.70308 -0.317223 -1.02755 0.728326 0.107162 0.0655439 0.054894
|
||||
5 2 1.37294 1.34365 4.03976 8.2913 -1.49708 -2.39305 2.17248 -0.00274479 0.0199293
|
||||
6 2 4.04284 1.35329 4.0426 -4.61936 0.756586 -1.74339 -2.2235 -0.0211679 -0.00295392
|
||||
ITEM: TIMESTEP
|
||||
18
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69731 2.70152 -0.00392983 -0.593559 0.341435 -0.875162 0.0897661 0.0618346 -0.0323262
|
||||
2 2 1.40107 4.07042 1.3768 14.229 4.48829 5.91578 1.95532 -0.0611659 -0.0498706
|
||||
3 2 4.04394 4.07924 1.35175 -4.3547 6.457 0.394679 -2.10593 -0.0470792 0.0038154
|
||||
4 1 2.69855 -0.00463829 2.70327 -0.316095 -1.02686 0.728907 0.11549 0.0711775 0.0598705
|
||||
5 2 1.37506 1.34328 4.03916 8.61741 -1.49747 -2.38993 2.15241 -0.00248344 0.0215483
|
||||
6 2 4.04164 1.35348 4.04217 -4.95344 0.753309 -1.74385 -2.20706 -0.0222835 -0.00303744
|
||||
ITEM: TIMESTEP
|
||||
19
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69716 2.7016 -0.00414866 -0.592621 0.342077 -0.8755 0.0954526 0.0649239 -0.0344841
|
||||
2 2 1.40467 4.07154 1.37828 14.5213 4.47868 5.90795 1.92083 -0.0663258 -0.0540045
|
||||
3 2 4.04281 4.08086 1.35185 -4.67049 6.44967 0.395215 -2.08198 -0.050094 0.00328881
|
||||
4 1 2.69847 -0.00489492 2.70345 -0.314881 -1.02611 0.72954 0.124076 0.0770317 0.0650736
|
||||
5 2 1.37725 1.3429 4.03857 8.94041 -1.49782 -2.38655 2.13119 -0.00216234 0.0232295
|
||||
6 2 4.04036 1.35367 4.04173 -5.28496 0.749867 -1.74431 -2.18956 -0.0233735 -0.00310338
|
||||
ITEM: TIMESTEP
|
||||
20
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69701 2.70169 -0.00436758 -0.591624 0.342751 -0.875861 0.101254 0.0679866 -0.0366705
|
||||
2 2 1.40833 4.07266 1.37976 14.8083 4.46827 5.89948 1.88489 -0.0717024 -0.0582989
|
||||
3 2 4.0416 4.08247 1.35195 -4.98257 6.44189 0.395662 -2.05686 -0.0531772 0.00263798
|
||||
4 1 2.69839 -0.00515135 2.70363 -0.313579 -1.0253 0.730227 0.132925 0.0831089 0.0705072
|
||||
5 2 1.37953 1.34253 4.03797 9.26012 -1.49812 -2.38291 2.1088 -0.00177977 0.0249746
|
||||
6 2 4.039 1.35386 4.04129 -5.61376 0.746262 -1.74478 -2.171 -0.0244362 -0.00315046
|
||||
315
examples/QM/LATTE/dump.8Sep22.aimd.plugin
Normal file
315
examples/QM/LATTE/dump.8Sep22.aimd.plugin
Normal file
@ -0,0 +1,315 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.7 2.7 0 -0.601491 0.335597 -0.87242 -2.27066e-14 -1.33391e-14 2.31141e-14
|
||||
2 2 1.35 4.05 1.35 8.2897 4.55901 5.97376 2.35473 2.21578e-14 7.40069e-15
|
||||
3 2 4.05 4.05 1.35 1.7742 6.51885 0.385522 -2.35473 2.97071e-15 -2.01341e-14
|
||||
4 1 2.7 1.65327e-16 2.7 -0.325605 -1.03244 0.724324 -2.90278e-14 6.77422e-15 2.86766e-15
|
||||
5 2 1.35 1.35 4.05 2.42711 -1.49109 -2.41596 2.35473 5.79901e-15 -1.19594e-14
|
||||
6 2 4.05 1.35 4.05 1.30688 0.784281 -1.73922 -2.35473 -1.38761e-14 1.09382e-14
|
||||
ITEM: TIMESTEP
|
||||
1
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69985 2.70008 -0.000218105 -0.601467 0.335616 -0.872428 0.00470101 0.00380515 -0.00141625
|
||||
2 2 1.35212 4.05114 1.35149 8.64389 4.55886 5.97363 2.34251 -0.00209926 -0.00172976
|
||||
3 2 4.0504 4.05163 1.3501 1.41949 6.51866 0.385561 -2.34936 -0.00247497 0.00051716
|
||||
4 1 2.69992 -0.00025811 2.70018 -0.325581 -1.03243 0.724334 0.00481137 0.00249244 0.00195665
|
||||
5 2 1.35065 1.34963 4.0494 2.78199 -1.49112 -2.4159 2.3517 -0.00043711 0.000874754
|
||||
6 2 4.05028 1.3502 4.04957 0.951796 0.784184 -1.73923 -2.35436 -0.00128625 -0.00020256
|
||||
ITEM: TIMESTEP
|
||||
2
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6997 2.70017 -0.000436214 -0.601396 0.335673 -0.872449 0.00939888 0.00756163 -0.00288164
|
||||
2 2 1.35432 4.05228 1.35299 8.99615 4.55837 5.97323 2.32921 -0.00431846 -0.00355855
|
||||
3 2 4.05071 4.05326 1.35019 1.06567 6.5181 0.385678 -2.34304 -0.00494314 0.00103532
|
||||
4 1 2.69984 -0.000516214 2.70036 -0.325507 -1.03239 0.724364 0.00976944 0.00512657 0.00403686
|
||||
5 2 1.35139 1.34925 4.04879 3.13634 -1.49122 -2.4157 2.34776 -0.000851489 0.00177498
|
||||
6 2 4.05048 1.35039 4.04913 0.596838 0.783892 -1.73928 -2.3531 -0.00257512 -0.000406965
|
||||
ITEM: TIMESTEP
|
||||
3
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69955 2.70025 -0.00065433 -0.601277 0.335769 -0.872486 0.0141006 0.0112702 -0.00439552
|
||||
2 2 1.35661 4.05342 1.35448 9.34633 4.55754 5.97255 2.31482 -0.00666433 -0.00549143
|
||||
3 2 4.05093 4.05489 1.35029 0.712875 6.51717 0.385873 -2.33577 -0.00740896 0.00154764
|
||||
4 1 2.69976 -0.000774304 2.70054 -0.325382 -1.03232 0.724417 0.0148831 0.00790884 0.00624833
|
||||
5 2 1.35222 1.34888 4.04819 3.49003 -1.49137 -2.41536 2.3429 -0.0012407 0.00270313
|
||||
6 2 4.05058 1.35059 4.0487 0.242138 0.783407 -1.73935 -2.35094 -0.00386511 -0.000612161
|
||||
ITEM: TIMESTEP
|
||||
4
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6994 2.70034 -0.000872457 -0.60111 0.335902 -0.872539 0.0188131 0.0149318 -0.00595718
|
||||
2 2 1.359 4.05456 1.35597 9.69425 4.55635 5.97156 2.29933 -0.00914346 -0.00753331
|
||||
3 2 4.05107 4.05652 1.35039 0.361248 6.51586 0.386144 -2.32753 -0.00987687 0.00204727
|
||||
4 1 2.69967 -0.00103238 2.70072 -0.325204 -1.03223 0.724492 0.020161 0.0108455 0.00859866
|
||||
5 2 1.35314 1.34851 4.04758 3.84292 -1.49159 -2.41488 2.33711 -0.00160232 0.00366164
|
||||
6 2 4.0506 1.35078 4.04826 -0.112168 0.782727 -1.73946 -2.34789 -0.00515472 -0.000817084
|
||||
ITEM: TIMESTEP
|
||||
5
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69925 2.70042 -0.0010906 -0.600896 0.336071 -0.872607 0.0235434 0.0185473 -0.00756588
|
||||
2 2 1.36146 4.0557 1.35747 10.0397 4.55478 5.97026 2.2827 -0.0117623 -0.00968894
|
||||
3 2 4.05111 4.05815 1.35048 0.0109366 6.51419 0.386489 -2.31832 -0.0123511 0.00252727
|
||||
4 1 2.69959 -0.00129042 2.70091 -0.324972 -1.0321 0.724592 0.0256115 0.0139425 0.0110953
|
||||
5 2 1.35414 1.34814 4.04698 4.19487 -1.49186 -2.41425 2.33039 -0.00193394 0.0046529
|
||||
6 2 4.05052 1.35098 4.04783 -0.465946 0.781852 -1.7396 -2.34393 -0.00644244 -0.00102066
|
||||
ITEM: TIMESTEP
|
||||
6
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6991 2.7005 -0.00130876 -0.600633 0.336277 -0.872692 0.0282985 0.0221175 -0.00922083
|
||||
2 2 1.36401 4.05684 1.35896 10.3827 4.55279 5.96863 2.26494 -0.0145272 -0.0119629
|
||||
3 2 4.05107 4.05978 1.35058 -0.337913 6.51214 0.386904 -2.30814 -0.0148362 0.00298071
|
||||
4 1 2.69951 -0.00154843 2.70109 -0.324684 -1.03194 0.724717 0.0312427 0.0172058 0.0137455
|
||||
5 2 1.35523 1.34776 4.04638 4.54573 -1.49217 -2.41347 2.32273 -0.00223319 0.00567932
|
||||
6 2 4.05036 1.35117 4.04739 -0.819058 0.780784 -1.73977 -2.33906 -0.00772673 -0.00122181
|
||||
ITEM: TIMESTEP
|
||||
7
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69895 2.70059 -0.00152695 -0.600322 0.336519 -0.872794 0.0330853 0.0256435 -0.0109212
|
||||
2 2 1.36665 4.05797 1.36045 10.7228 4.55038 5.96665 2.24601 -0.0174443 -0.0143597
|
||||
3 2 4.05094 4.0614 1.35068 -0.685154 6.50971 0.387385 -2.29698 -0.0173365 0.00340068
|
||||
4 1 2.69943 -0.00180639 2.70127 -0.324338 -1.03175 0.724871 0.0370626 0.020641 0.0165564
|
||||
5 2 1.35641 1.34739 4.04577 4.89536 -1.49253 -2.41254 2.31411 -0.0024977 0.00674323
|
||||
6 2 4.05012 1.35137 4.04696 -1.17137 0.779522 -1.73997 -2.33329 -0.00900604 -0.00141944
|
||||
ITEM: TIMESTEP
|
||||
8
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6988 2.70067 -0.00174516 -0.599962 0.336797 -0.872914 0.0379108 0.0291262 -0.0126661
|
||||
2 2 1.36938 4.05911 1.36194 11.06 4.54752 5.96429 2.2259 -0.0205196 -0.0168834
|
||||
3 2 4.05073 4.06303 1.35077 -1.03064 6.50691 0.387927 -2.28482 -0.0198564 0.00378025
|
||||
4 1 2.69935 -0.0020643 2.70145 -0.323932 -1.03153 0.725054 0.0430788 0.0242538 0.0195348
|
||||
5 2 1.35768 1.34702 4.04517 5.24362 -1.49292 -2.41144 2.30452 -0.0027252 0.00784692
|
||||
6 2 4.04978 1.35156 4.04652 -1.52274 0.778068 -1.7402 -2.32659 -0.0102788 -0.00161245
|
||||
ITEM: TIMESTEP
|
||||
9
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69865 2.70076 -0.0019634 -0.599553 0.337109 -0.873051 0.0427817 0.0325667 -0.0144547
|
||||
2 2 1.37218 4.06025 1.36343 11.3941 4.54418 5.96155 2.20459 -0.023759 -0.019538
|
||||
3 2 4.05043 4.06466 1.35087 -1.37421 6.50372 0.388522 -2.27166 -0.0224003 0.00411244
|
||||
4 1 2.69927 -0.00232215 2.70163 -0.323464 -1.03126 0.725268 0.0492987 0.0280495 0.0226874
|
||||
5 2 1.35904 1.34664 4.04457 5.59036 -1.49335 -2.41017 2.29396 -0.00291347 0.00899259
|
||||
6 2 4.04935 1.35176 4.04609 -1.87303 0.776422 -1.74045 -2.31898 -0.0115434 -0.00179972
|
||||
ITEM: TIMESTEP
|
||||
10
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6985 2.70084 -0.00218168 -0.599095 0.337456 -0.873207 0.0477049 0.0359661 -0.0162858
|
||||
2 2 1.37507 4.06138 1.36492 11.7248 4.54034 5.95839 2.18206 -0.0271682 -0.0223275
|
||||
3 2 4.05004 4.06628 1.35097 -1.71572 6.50015 0.389163 -2.25748 -0.0249726 0.0043903
|
||||
4 1 2.69919 -0.00257993 2.70181 -0.322932 -1.03096 0.725515 0.0557294 0.0320331 0.0260207
|
||||
5 2 1.36048 1.34627 4.04397 5.93543 -1.4938 -2.40872 2.2824 -0.00306026 0.0101825
|
||||
6 2 4.04884 1.35195 4.04565 -2.2221 0.774587 -1.74074 -2.31042 -0.0127983 -0.00198013
|
||||
ITEM: TIMESTEP
|
||||
11
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69835 2.70092 -0.00240001 -0.598586 0.337838 -0.873382 0.0526872 0.0393256 -0.0181586
|
||||
2 2 1.37805 4.06252 1.36641 12.0521 4.53597 5.9548 2.15829 -0.0307526 -0.0252554
|
||||
3 2 4.04957 4.06791 1.35106 -2.05501 6.49619 0.389841 -2.24228 -0.0275775 0.00460683
|
||||
4 1 2.69911 -0.00283763 2.70199 -0.322334 -1.03061 0.725796 0.0623777 0.0362096 0.0295409
|
||||
5 2 1.362 1.3459 4.04336 6.27868 -1.49427 -2.40709 2.26985 -0.00316333 0.0114188
|
||||
6 2 4.04824 1.35215 4.04522 -2.56981 0.772563 -1.74105 -2.30093 -0.0140417 -0.00215255
|
||||
ITEM: TIMESTEP
|
||||
12
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6982 2.70101 -0.00261837 -0.598027 0.338253 -0.873575 0.0577351 0.0426463 -0.0200718
|
||||
2 2 1.3811 4.06365 1.3679 12.3757 4.53105 5.95076 2.13326 -0.0345179 -0.0283253
|
||||
3 2 4.04901 4.06953 1.35116 -2.39194 6.49183 0.390547 -2.22604 -0.0302194 0.00475506
|
||||
4 1 2.69903 -0.00309524 2.70217 -0.321667 -1.03022 0.726114 0.06925 0.0405836 0.0332542
|
||||
5 2 1.36362 1.34552 4.04276 6.61997 -1.49475 -2.40527 2.25627 -0.00322051 0.0127037
|
||||
6 2 4.04756 1.35234 4.04478 -2.91602 0.770353 -1.74139 -2.29048 -0.0152721 -0.00231583
|
||||
ITEM: TIMESTEP
|
||||
13
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69805 2.70109 -0.00283679 -0.597416 0.338702 -0.873788 0.0628554 0.0459295 -0.0220243
|
||||
2 2 1.38423 4.06478 1.36939 12.6954 4.52555 5.94625 2.10694 -0.0384688 -0.0315401
|
||||
3 2 4.04837 4.07115 1.35126 -2.72634 6.48707 0.39127 -2.20874 -0.0329024 0.00482793
|
||||
4 1 2.69895 -0.00335274 2.70236 -0.320929 -1.02979 0.726471 0.0763523 0.0451591 0.0371659
|
||||
5 2 1.36531 1.34515 4.04216 6.95912 -1.49523 -2.40326 2.24165 -0.00322965 0.0140393
|
||||
6 2 4.04678 1.35253 4.04434 -3.26057 0.767958 -1.74175 -2.27906 -0.0164877 -0.0024688
|
||||
ITEM: TIMESTEP
|
||||
14
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6979 2.70118 -0.00305527 -0.596753 0.339184 -0.874022 0.0680546 0.0491768 -0.0240145
|
||||
2 2 1.38745 4.06591 1.37087 13.0111 4.51944 5.94124 2.07932 -0.0426096 -0.0349018
|
||||
3 2 4.04765 4.07277 1.35136 -3.05804 6.4819 0.391997 -2.19038 -0.035631 0.00481829
|
||||
4 1 2.69887 -0.00361013 2.70254 -0.320118 -1.0293 0.726868 0.0836894 0.0499393 0.0412807
|
||||
5 2 1.3671 1.34478 4.04156 7.296 -1.49572 -2.40103 2.22598 -0.00318867 0.0154277
|
||||
6 2 4.04593 1.35272 4.04391 -3.60334 0.765381 -1.74213 -2.26667 -0.0176868 -0.00261028
|
||||
ITEM: TIMESTEP
|
||||
15
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69775 2.70126 -0.0032738 -0.596036 0.339698 -0.874275 0.0733392 0.0523895 -0.0260413
|
||||
2 2 1.39074 4.06704 1.37236 13.3225 4.51268 5.93571 2.05037 -0.0469451 -0.0384133
|
||||
3 2 4.04685 4.07439 1.35146 -3.3869 6.47632 0.392716 -2.17093 -0.038409 0.00471919
|
||||
4 1 2.69879 -0.00386739 2.70272 -0.319232 -1.02877 0.727309 0.0912666 0.0549279 0.0456036
|
||||
5 2 1.36896 1.3444 4.04096 7.63043 -1.49619 -2.3986 2.20924 -0.00309551 0.0168709
|
||||
6 2 4.04498 1.35291 4.04347 -3.94416 0.762625 -1.74253 -2.25329 -0.0188678 -0.0027391
|
||||
ITEM: TIMESTEP
|
||||
16
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.6976 2.70135 -0.00349241 -0.595266 0.340245 -0.87455 0.0787153 0.055569 -0.0281032
|
||||
2 2 1.39411 4.06817 1.37384 13.6294 4.50526 5.92964 2.02007 -0.0514799 -0.042077
|
||||
3 2 4.04596 4.07601 1.35155 -3.71274 6.47031 0.393413 -2.15039 -0.0412405 0.00452364
|
||||
4 1 2.69871 -0.00412452 2.7029 -0.318268 -1.02819 0.727794 0.0990893 0.0601283 0.0501398
|
||||
5 2 1.37091 1.34403 4.04036 7.96225 -1.49665 -2.39594 2.19142 -0.00294819 0.0183708
|
||||
6 2 4.04395 1.3531 4.04304 -4.28288 0.759692 -1.74296 -2.2389 -0.0200287 -0.00285406
|
||||
ITEM: TIMESTEP
|
||||
17
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69745 2.70143 -0.00371108 -0.594441 0.340824 -0.874845 0.0841889 0.0587168 -0.0301987
|
||||
2 2 1.39755 4.0693 1.37532 13.9317 4.49714 5.92301 1.9884 -0.0562187 -0.0458954
|
||||
3 2 4.04499 4.07763 1.35165 -4.0354 6.46388 0.394073 -2.12872 -0.0441293 0.0042247
|
||||
4 1 2.69863 -0.00438149 2.70308 -0.317223 -1.02755 0.728326 0.107162 0.0655439 0.054894
|
||||
5 2 1.37294 1.34365 4.03976 8.2913 -1.49708 -2.39305 2.17248 -0.00274479 0.0199293
|
||||
6 2 4.04284 1.35329 4.0426 -4.61936 0.756586 -1.74339 -2.2235 -0.0211679 -0.00295392
|
||||
ITEM: TIMESTEP
|
||||
18
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69731 2.70152 -0.00392983 -0.593559 0.341435 -0.875162 0.0897661 0.0618346 -0.0323262
|
||||
2 2 1.40107 4.07042 1.3768 14.229 4.48829 5.91578 1.95532 -0.0611659 -0.0498706
|
||||
3 2 4.04394 4.07924 1.35175 -4.3547 6.457 0.394679 -2.10593 -0.0470792 0.0038154
|
||||
4 1 2.69855 -0.00463829 2.70327 -0.316095 -1.02686 0.728907 0.11549 0.0711775 0.0598705
|
||||
5 2 1.37506 1.34328 4.03916 8.61741 -1.49747 -2.38993 2.15241 -0.00248344 0.0215483
|
||||
6 2 4.04164 1.35348 4.04217 -4.95344 0.753309 -1.74385 -2.20706 -0.0222835 -0.00303744
|
||||
ITEM: TIMESTEP
|
||||
19
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69716 2.7016 -0.00414866 -0.592621 0.342077 -0.8755 0.0954526 0.0649239 -0.0344841
|
||||
2 2 1.40467 4.07154 1.37828 14.5213 4.47868 5.90795 1.92083 -0.0663258 -0.0540045
|
||||
3 2 4.04281 4.08086 1.35185 -4.67049 6.44967 0.395215 -2.08198 -0.050094 0.00328881
|
||||
4 1 2.69847 -0.00489492 2.70345 -0.314881 -1.02611 0.72954 0.124076 0.0770317 0.0650736
|
||||
5 2 1.37725 1.3429 4.03857 8.94041 -1.49782 -2.38655 2.13119 -0.00216234 0.0232295
|
||||
6 2 4.04036 1.35367 4.04173 -5.28496 0.749867 -1.74431 -2.18956 -0.0233735 -0.00310338
|
||||
ITEM: TIMESTEP
|
||||
20
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z vx vy vz fx fy fz
|
||||
1 1 2.69701 2.70169 -0.00436758 -0.591624 0.342751 -0.875861 0.101254 0.0679866 -0.0366705
|
||||
2 2 1.40833 4.07266 1.37976 14.8083 4.46827 5.89948 1.88489 -0.0717024 -0.0582989
|
||||
3 2 4.0416 4.08247 1.35195 -4.98257 6.44189 0.395662 -2.05686 -0.0531772 0.00263798
|
||||
4 1 2.69839 -0.00515135 2.70363 -0.313579 -1.0253 0.730227 0.132925 0.0831089 0.0705072
|
||||
5 2 1.37953 1.34253 4.03797 9.26012 -1.49812 -2.38291 2.1088 -0.00177977 0.0249746
|
||||
6 2 4.039 1.35386 4.04129 -5.61376 0.746262 -1.74478 -2.171 -0.0244362 -0.00315046
|
||||
15
examples/QM/LATTE/dump.8Sep22.series.mpi.1.2uo2
Normal file
15
examples/QM/LATTE/dump.8Sep22.series.mpi.1.2uo2
Normal file
@ -0,0 +1,15 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 2.7 0 -2.27066e-14 -1.33391e-14 2.31141e-14
|
||||
2 2 1.35 4.05 1.35 2.35473 2.21578e-14 7.40069e-15
|
||||
3 2 4.05 4.05 1.35 -2.35473 2.97071e-15 -2.01341e-14
|
||||
4 1 2.7 1.65327e-16 2.7 -2.90278e-14 6.77422e-15 2.86766e-15
|
||||
5 2 1.35 1.35 4.05 2.35473 5.79901e-15 -1.19594e-14
|
||||
6 2 4.05 1.35 4.05 -2.35473 -1.38761e-14 1.09382e-14
|
||||
18
examples/QM/LATTE/dump.8Sep22.series.mpi.1.3uo2
Normal file
18
examples/QM/LATTE/dump.8Sep22.series.mpi.1.3uo2
Normal file
@ -0,0 +1,18 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
9
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.6199999999999999e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 2.7 0 -1.27436e-13 0.760572 0.760572
|
||||
2 2 1.35 4.05 1.35 0.682428 -0.329901 -0.329901
|
||||
3 2 4.05 4.05 1.35 -0.682428 -0.329901 -0.329901
|
||||
4 1 2.7 1.65327e-16 2.7 -8.06311e-14 -1.57101 -1.57101
|
||||
5 2 1.35 1.35 4.05 2.79365 0.684734 0.684734
|
||||
6 2 4.05 1.35 4.05 -2.79365 0.684734 0.684734
|
||||
7 1 2.7 2.7 0 -1.30843e-13 0.760572 0.760572
|
||||
8 2 1.35 4.05 1.35 0.682428 -0.329901 -0.329901
|
||||
9 2 4.05 4.05 1.35 -0.682428 -0.329901 -0.329901
|
||||
21
examples/QM/LATTE/dump.8Sep22.series.mpi.1.4uo2
Normal file
21
examples/QM/LATTE/dump.8Sep22.series.mpi.1.4uo2
Normal file
@ -0,0 +1,21 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
12
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 6.6130927153957075e-16
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 8.1 0 -0.433947 2.16479 1.55466
|
||||
2 2 1.35 9.45 1.35 1.64718 -0.119006 0.375837
|
||||
3 2 4.05 9.45 1.35 0.999862 -1.02573 0.037629
|
||||
4 1 5.4 8.1 2.7 0.433947 2.16479 1.55466
|
||||
5 2 4.05 9.45 4.05 -0.999862 -1.02573 0.037629
|
||||
6 2 6.75 9.45 4.05 -1.64718 -0.119006 0.375837
|
||||
7 1 2.7 1.65327e-16 2.7 -0.211437 1.63064 -0.0728897
|
||||
8 2 1.35 1.35 4.05 0.461807 -1.3955 -1.94959
|
||||
9 2 4.05 1.35 4.05 0.708573 -1.2552 0.0543549
|
||||
10 1 5.4 0 0 0.211437 1.63064 -0.0728897
|
||||
11 2 4.05 1.35 1.35 -0.708573 -1.2552 0.0543549
|
||||
12 2 6.75 1.35 1.35 -0.461807 -1.3955 -1.94959
|
||||
15
examples/QM/LATTE/dump.8Sep22.series.mpi.2.2uo2
Normal file
15
examples/QM/LATTE/dump.8Sep22.series.mpi.2.2uo2
Normal file
@ -0,0 +1,15 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 2.7 0 -2.27066e-14 -1.33391e-14 2.31141e-14
|
||||
2 2 1.35 4.05 1.35 2.35473 2.21578e-14 7.40069e-15
|
||||
3 2 4.05 4.05 1.35 -2.35473 2.97071e-15 -2.01341e-14
|
||||
4 1 2.7 1.65327e-16 2.7 -2.90278e-14 6.77422e-15 2.86766e-15
|
||||
5 2 1.35 1.35 4.05 2.35473 5.79901e-15 -1.19594e-14
|
||||
6 2 4.05 1.35 4.05 -2.35473 -1.38761e-14 1.09382e-14
|
||||
18
examples/QM/LATTE/dump.8Sep22.series.mpi.2.3uo2
Normal file
18
examples/QM/LATTE/dump.8Sep22.series.mpi.2.3uo2
Normal file
@ -0,0 +1,18 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
9
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.6199999999999999e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 2.7 0 -1.27436e-13 0.760572 0.760572
|
||||
2 2 1.35 4.05 1.35 0.682428 -0.329901 -0.329901
|
||||
3 2 4.05 4.05 1.35 -0.682428 -0.329901 -0.329901
|
||||
4 1 2.7 1.65327e-16 2.7 -8.06311e-14 -1.57101 -1.57101
|
||||
5 2 1.35 1.35 4.05 2.79365 0.684734 0.684734
|
||||
6 2 4.05 1.35 4.05 -2.79365 0.684734 0.684734
|
||||
7 1 2.7 2.7 0 -1.30843e-13 0.760572 0.760572
|
||||
8 2 1.35 4.05 1.35 0.682428 -0.329901 -0.329901
|
||||
9 2 4.05 4.05 1.35 -0.682428 -0.329901 -0.329901
|
||||
21
examples/QM/LATTE/dump.8Sep22.series.mpi.2.4uo2
Normal file
21
examples/QM/LATTE/dump.8Sep22.series.mpi.2.4uo2
Normal file
@ -0,0 +1,21 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
12
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 6.6130927153957075e-16
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 8.1 0 -0.433947 2.16479 1.55466
|
||||
2 2 1.35 9.45 1.35 1.64718 -0.119006 0.375837
|
||||
3 2 4.05 9.45 1.35 0.999862 -1.02573 0.037629
|
||||
4 1 5.4 8.1 2.7 0.433947 2.16479 1.55466
|
||||
5 2 4.05 9.45 4.05 -0.999862 -1.02573 0.037629
|
||||
6 2 6.75 9.45 4.05 -1.64718 -0.119006 0.375837
|
||||
7 1 2.7 1.65327e-16 2.7 -0.211437 1.63064 -0.0728897
|
||||
8 2 1.35 1.35 4.05 0.461807 -1.3955 -1.94959
|
||||
9 2 4.05 1.35 4.05 0.708573 -1.2552 0.0543549
|
||||
10 1 5.4 0 0 0.211437 1.63064 -0.0728897
|
||||
11 2 4.05 1.35 1.35 -0.708573 -1.2552 0.0543549
|
||||
12 2 6.75 1.35 1.35 -0.461807 -1.3955 -1.94959
|
||||
15
examples/QM/LATTE/dump.8Sep22.series.plugin.2uo2
Normal file
15
examples/QM/LATTE/dump.8Sep22.series.plugin.2uo2
Normal file
@ -0,0 +1,15 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
6
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 2.7 0 -2.27066e-14 -1.33391e-14 2.31141e-14
|
||||
2 2 1.35 4.05 1.35 2.35473 2.21578e-14 7.40069e-15
|
||||
3 2 4.05 4.05 1.35 -2.35473 2.97071e-15 -2.01341e-14
|
||||
4 1 2.7 1.65327e-16 2.7 -2.90278e-14 6.77422e-15 2.86766e-15
|
||||
5 2 1.35 1.35 4.05 2.35473 5.79901e-15 -1.19594e-14
|
||||
6 2 4.05 1.35 4.05 -2.35473 -1.38761e-14 1.09382e-14
|
||||
18
examples/QM/LATTE/dump.8Sep22.series.plugin.3uo2
Normal file
18
examples/QM/LATTE/dump.8Sep22.series.plugin.3uo2
Normal file
@ -0,0 +1,18 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
9
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.6199999999999999e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 2.7 0 -1.27436e-13 0.760572 0.760572
|
||||
2 2 1.35 4.05 1.35 0.682428 -0.329901 -0.329901
|
||||
3 2 4.05 4.05 1.35 -0.682428 -0.329901 -0.329901
|
||||
4 1 2.7 1.65327e-16 2.7 -8.06311e-14 -1.57101 -1.57101
|
||||
5 2 1.35 1.35 4.05 2.79365 0.684734 0.684734
|
||||
6 2 4.05 1.35 4.05 -2.79365 0.684734 0.684734
|
||||
7 1 2.7 2.7 0 -1.30843e-13 0.760572 0.760572
|
||||
8 2 1.35 4.05 1.35 0.682428 -0.329901 -0.329901
|
||||
9 2 4.05 4.05 1.35 -0.682428 -0.329901 -0.329901
|
||||
21
examples/QM/LATTE/dump.8Sep22.series.plugin.4uo2
Normal file
21
examples/QM/LATTE/dump.8Sep22.series.plugin.4uo2
Normal file
@ -0,0 +1,21 @@
|
||||
ITEM: TIMESTEP
|
||||
0
|
||||
ITEM: NUMBER OF ATOMS
|
||||
12
|
||||
ITEM: BOX BOUNDS xy xz yz pp pp pp
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 6.6130927153957075e-16
|
||||
0.0000000000000000e+00 1.0800000000000001e+01 3.3065463576978537e-16
|
||||
0.0000000000000000e+00 5.4000000000000004e+00 3.3065463576978537e-16
|
||||
ITEM: ATOMS id type x y z fx fy fz
|
||||
1 1 2.7 8.1 0 -0.433947 2.16479 1.55466
|
||||
2 2 1.35 9.45 1.35 1.64718 -0.119006 0.375837
|
||||
3 2 4.05 9.45 1.35 0.999862 -1.02573 0.037629
|
||||
4 1 5.4 8.1 2.7 0.433947 2.16479 1.55466
|
||||
5 2 4.05 9.45 4.05 -0.999862 -1.02573 0.037629
|
||||
6 2 6.75 9.45 4.05 -1.64718 -0.119006 0.375837
|
||||
7 1 2.7 1.65327e-16 2.7 -0.211437 1.63064 -0.0728897
|
||||
8 2 1.35 1.35 4.05 0.461807 -1.3955 -1.94959
|
||||
9 2 4.05 1.35 4.05 0.708573 -1.2552 0.0543549
|
||||
10 1 5.4 0 0 0.211437 1.63064 -0.0728897
|
||||
11 2 4.05 1.35 1.35 -0.708573 -1.2552 0.0543549
|
||||
12 2 6.75 1.35 1.35 -0.461807 -1.3955 -1.94959
|
||||
15
examples/QM/LATTE/electrons.dat
Normal file
15
examples/QM/LATTE/electrons.dat
Normal file
@ -0,0 +1,15 @@
|
||||
Noelem= 2
|
||||
Element basis Numel Es Ep Ed Ef Mass HubbardU Wss Wpp Wdd Wff
|
||||
U sdf 6.0 -4.08 0.0 0.816 -0.586 238.05078 9.0 0.0 0.0 0.0 0.0
|
||||
O sp 6.0 -23.77 -8.85 0.0 0.0 15.994915 12.2 0.0 0.0 0.0 0.0
|
||||
|
||||
|
||||
W spd 6.0 -4.52 0.53 -2.91 0.0 183.84 7.048 0.0 0.0 0.0 0.0
|
||||
Mo sd 6.0 -3.29 0.0 -1.98 0.0 95.95 6.48 0.0 0.0 0.0 0.0
|
||||
S sp 6.0 -14.00 -3.97 0.0 0.0 32.06 8.28 0.0 -0.4278 0.0 0.0
|
||||
|
||||
|
||||
N sp 5.000000 -18.543798 -7.862407 0.000000 0.000000 14.006700 17.053958 0.000000 -0.6934 0.000000 0.000000
|
||||
H s 1.000000 -6.237968 0.000000 0.000000 0.000000 1.007900 13.684855 -2.23400 0.000000 0.000000 0.000000
|
||||
C sp 4.000000 -13.736556 -4.748938 0.000000 0.000000 12.010000 10.522540 0.000000 -0.618100 0.000000 0.000000
|
||||
O sp 6.000000 -23.833752 -9.645001 0.000000 0.000000 15.999400 14.443874 0.000000 -0.757650 0.000000 0.000000
|
||||
26
examples/QM/LATTE/in.aimd
Normal file
26
examples/QM/LATTE/in.aimd
Normal file
@ -0,0 +1,26 @@
|
||||
# AIMD test of two UO2 molecules with LATTE in MDI stand-alone mode
|
||||
|
||||
units metal
|
||||
atom_style full
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
read_data 2uo2.lmp
|
||||
|
||||
velocity all create 300.0 87287 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
fix 2 all mdi/qm virial yes elements 92 8
|
||||
|
||||
thermo_style custom step temp pe etotal press
|
||||
thermo 1
|
||||
|
||||
dump 1 all custom 1 dump.aimd.mpi &
|
||||
id type x y z vx vy vz fx fy fz
|
||||
|
||||
run 20
|
||||
27
examples/QM/LATTE/in.aimd.plugin
Normal file
27
examples/QM/LATTE/in.aimd.plugin
Normal file
@ -0,0 +1,27 @@
|
||||
# AIMD test of two UO2 molecules with LATTE in MDI plugin mode
|
||||
|
||||
units metal
|
||||
atom_style full
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
read_data 2uo2.lmp
|
||||
|
||||
velocity all create 300.0 87287 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
fix 2 all mdi/qm virial yes elements 92 8
|
||||
|
||||
thermo_style custom step temp pe etotal press
|
||||
thermo 1
|
||||
|
||||
dump 1 all custom 1 dump.aimd.plugin &
|
||||
id type x y z vx vy vz fx fy fz
|
||||
|
||||
mdi plugin latte_mdi mdi "-role ENGINE -name LATTE -method LINK" &
|
||||
command "run 20"
|
||||
37
examples/QM/LATTE/in.series
Normal file
37
examples/QM/LATTE/in.series
Normal file
@ -0,0 +1,37 @@
|
||||
# Series of single-point calcs of 2,3,4 UO2 molecules
|
||||
# with LATTE in MDI stand-alone mode
|
||||
|
||||
variable files index 2uo2 3uo2 4uo2
|
||||
|
||||
mdi connect
|
||||
|
||||
label LOOP
|
||||
|
||||
units metal
|
||||
atom_style full
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
read_data ${files}.lmp
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
timestep 0.001
|
||||
|
||||
fix 1 all mdi/qm virial yes elements 92 8 connect no
|
||||
|
||||
thermo_style custom step temp pe etotal press
|
||||
thermo 1
|
||||
|
||||
run 0
|
||||
|
||||
write_dump all custom dump.series.mpi.${files} &
|
||||
id type x y z fx fy fz modify sort id
|
||||
|
||||
clear
|
||||
|
||||
next files
|
||||
|
||||
jump SELF LOOP
|
||||
|
||||
mdi exit
|
||||
32
examples/QM/LATTE/in.series.plugin
Normal file
32
examples/QM/LATTE/in.series.plugin
Normal file
@ -0,0 +1,32 @@
|
||||
# Series of single-point calcs of 2,3,4 UO2 molecules
|
||||
# with LATTE in MDI plugin mode
|
||||
|
||||
variable files index 2uo2 3uo2 4uo2
|
||||
|
||||
label LOOP
|
||||
|
||||
units metal
|
||||
atom_style full
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
read_data ${files}.lmp
|
||||
|
||||
neighbor 0.3 bin
|
||||
neigh_modify every 1 delay 0 check yes
|
||||
|
||||
fix 1 all mdi/qm virial yes elements 92 8
|
||||
|
||||
thermo_style custom step temp pe etotal press
|
||||
thermo 1
|
||||
|
||||
mdi plugin latte_mdi mdi "-role ENGINE -name LATTE -method LINK" &
|
||||
command "run 0"
|
||||
|
||||
write_dump all custom dump.series.plugin.${files} &
|
||||
id type x y z fx fy fz modify sort id
|
||||
|
||||
clear
|
||||
|
||||
next files
|
||||
|
||||
jump SELF LOOP
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user