Merge branch 'develop' into type-labels
This commit is contained in:
@ -6,10 +6,13 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT})
|
option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(DOWNLOAD_MDI)
|
if(DOWNLOAD_MDI)
|
||||||
message(STATUS "MDI download requested - we will build our own")
|
message(STATUS "MDI download requested - we will build our own")
|
||||||
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.1.tar.gz" CACHE STRING "URL for MDI tarball")
|
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.10.tar.gz" CACHE STRING "URL for MDI tarball")
|
||||||
set(MDI_MD5 "f9505fccd4c79301a619f6452dad4ad9" CACHE STRING "MD5 checksum for MDI tarball")
|
set(MDI_MD5 "1c203b7fd462d9934834f643f09f3c06" CACHE STRING "MD5 checksum for MDI tarball")
|
||||||
mark_as_advanced(MDI_URL)
|
mark_as_advanced(MDI_URL)
|
||||||
mark_as_advanced(MDI_MD5)
|
mark_as_advanced(MDI_MD5)
|
||||||
enable_language(C)
|
enable_language(C)
|
||||||
|
|||||||
@ -6,7 +6,7 @@ page. The accelerated styles take the same arguments and should
|
|||||||
produce the same results, except for round-off and precision issues.
|
produce the same results, except for round-off and precision issues.
|
||||||
|
|
||||||
These accelerated styles are part of the GPU, INTEL, KOKKOS,
|
These accelerated styles are part of the GPU, INTEL, KOKKOS,
|
||||||
OPENMP and OPT packages, respectively. They are only enabled if
|
OPENMP, and OPT packages, respectively. They are only enabled if
|
||||||
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` page for more info.
|
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` page for more info.
|
||||||
|
|
||||||
You can specify the accelerated styles explicitly in your input script
|
You can specify the accelerated styles explicitly in your input script
|
||||||
|
|||||||
@ -55,24 +55,24 @@ dump command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
dump ID group-ID style N file args
|
dump ID group-ID style N file args
|
||||||
|
|
||||||
* ID = user-assigned name for the dump
|
* ID = user-assigned name for the dump
|
||||||
* group-ID = ID of the group of atoms to be dumped
|
* 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 *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*
|
* 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 *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 a multiple of N
|
* N = dump on timesteps which are multiples of N
|
||||||
* file = name of file to write dump info to
|
* file = name of file to write dump info to
|
||||||
* args = list of arguments for a particular style
|
* args = list of arguments for a particular style
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*atom* args = none
|
*atom* args = none
|
||||||
|
*atom/adios* args = none, discussed on :doc:`dump atom/adios <dump_adios>` page
|
||||||
*atom/gz* args = none
|
*atom/gz* args = none
|
||||||
*atom/zstd* args = none
|
*atom/zstd* args = none
|
||||||
*atom/mpiio* 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* args = same as *custom* args, see below
|
||||||
*cfg/gz* 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
|
*cfg/zstd* args = same as *custom* args, see below
|
||||||
@ -224,7 +224,7 @@ page for details.
|
|||||||
|
|
||||||
The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles
|
The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles
|
||||||
are identical in command syntax to the corresponding styles without
|
are identical in command syntax to the corresponding styles without
|
||||||
"gz", however, they generate compressed files using the zlib
|
"gz," however, they generate compressed files using the zlib
|
||||||
library. Thus the filename suffix ".gz" is mandatory. This is an
|
library. Thus the filename suffix ".gz" is mandatory. This is an
|
||||||
alternative approach to writing compressed files via a pipe, as done
|
alternative approach to writing compressed files via a pipe, as done
|
||||||
by the regular dump styles, which may be required on clusters where
|
by the regular dump styles, which may be required on clusters where
|
||||||
@ -288,13 +288,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
|
: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
|
"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
|
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),
|
the six characters is one of *p* (periodic), *f* (fixed), *s* (shrink wrap),
|
||||||
or m (shrink wrapped with a minimum value). See the
|
or *m* (shrink wrapped with a minimum value). See the
|
||||||
:doc:`boundary <boundary>` command for details.
|
:doc:`boundary <boundary>` command for details.
|
||||||
|
|
||||||
For triclinic simulation boxes (non-orthogonal), an orthogonal
|
For triclinic simulation boxes (non-orthogonal), an orthogonal
|
||||||
bounding box which encloses the triclinic simulation box is output,
|
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:
|
formatted as follows:
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
@ -333,8 +333,8 @@ added for each atom via dump_modify.
|
|||||||
Style *custom* allows you to specify a list of atom attributes to be
|
Style *custom* allows you to specify a list of atom attributes to be
|
||||||
written to the dump file for each atom. Possible attributes are
|
written to the dump file for each atom. Possible attributes are
|
||||||
listed above and will appear in the order specified. You cannot
|
listed above and will appear in the order specified. You cannot
|
||||||
specify a quantity that is not defined for a particular simulation -
|
specify a quantity that is not defined for a particular simulation---such as
|
||||||
such as *q* for atom style *bond*, since that atom style does not
|
*q* for atom style *bond*, since that atom style does not
|
||||||
assign charges. Dumps occur at the very end of a timestep, so atom
|
assign charges. Dumps occur at the very end of a timestep, so atom
|
||||||
attributes will include effects due to fixes that are applied during
|
attributes will include effects due to fixes that are applied during
|
||||||
the timestep. An explanation of the possible dump custom attributes
|
the timestep. An explanation of the possible dump custom attributes
|
||||||
@ -575,7 +575,7 @@ files. You can use the ".bin" or ".lammpsbin" suffix described below in an
|
|||||||
MPI-IO dump file; again this file will be written in parallel and have the
|
MPI-IO dump file; again this file will be written in parallel and have the
|
||||||
same binary format as if it were written without MPI-IO.
|
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
|
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
|
"\*" 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
|
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
|
write out much faster. Of course, when post-processing, you will need
|
||||||
@ -584,7 +584,7 @@ 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
|
be understood by looking at the :file:`tools/binary2txt.cpp` file. This option
|
||||||
is only available for the *atom* and *custom* styles.
|
is only available for the *atom* and *custom* styles.
|
||||||
|
|
||||||
If the filename ends with ".gz", the dump file (or files, if "\*" or "%"
|
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
|
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
|
: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.
|
to write. This option is not available for the *dcd* and *xtc* styles.
|
||||||
@ -692,8 +692,8 @@ of atom velocity and force and atomic charge.
|
|||||||
There are several options for outputting atom coordinates. The *x*,
|
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}`,
|
appropriate distance :doc:`units <units>` (:math:`\mathrm{\mathring A}`,
|
||||||
:math:`\sigma`, etc.). Use *xs*, *ys*, *zs* if you want the coordinates
|
: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
|
"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
|
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
|
:math:`x_s a + y_s b + z_s c`, where :math:`(a,b,c)` are the non-orthogonal
|
||||||
@ -736,7 +736,7 @@ The *angmomx*, *angmomy*, and *angmomz* attributes are specific to
|
|||||||
finite-size aspherical particles that have an angular momentum. Only
|
finite-size aspherical particles that have an angular momentum. Only
|
||||||
the *ellipsoid* atom style defines this quantity.
|
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
|
can sustain a rotational torque due to interactions with other
|
||||||
particles.
|
particles.
|
||||||
|
|
||||||
@ -775,8 +775,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
|
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
|
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
|
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
|
discussion above for how :math:`i` can be specified with a wildcard asterisk
|
||||||
effectively specify multiple values.
|
to effectively specify multiple values.
|
||||||
|
|
||||||
The *v_name* attribute allows per-atom vectors calculated by a
|
The *v_name* attribute allows per-atom vectors calculated by a
|
||||||
:doc:`variable <variable>` to be output. The name in the attribute
|
:doc:`variable <variable>` to be output. The name in the attribute
|
||||||
|
|||||||
@ -10,10 +10,9 @@ dump custom/adios command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
dump ID group-ID atom/adios N file.bp
|
dump ID group-ID atom/adios N file.bp
|
||||||
|
|
||||||
dump ID group-ID custom/adios N file.bp args
|
dump ID group-ID custom/adios N file.bp args
|
||||||
|
|
||||||
* ID = user-assigned name for the dump
|
* 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)
|
* 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
|
* N = dump every this many timesteps
|
||||||
* file.bp = name of file/stream to write to
|
* 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
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
@ -35,10 +34,10 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Dump a snapshot of atom coordinates every N timesteps in the `ADIOS
|
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_>`_-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, 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
|
.. _adios: https://github.com/ornladios/ADIOS2
|
||||||
|
|
||||||
@ -67,7 +66,7 @@ create a new file at each individual dump.
|
|||||||
Restrictions
|
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,
|
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
|
bpls will print *__* for the size of the output table indicating that
|
||||||
its size is changing every step.
|
its size is changing every step.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ dump cfg/uef command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
dump ID group-ID cfg/uef N file mass type xs ys zs args
|
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
|
This command is used to dump atomic coordinates in the
|
||||||
reference frame of the applied flow field when
|
reference frame of the applied flow field when
|
||||||
:doc:`fix nvt/uef <fix_nh_uef>` or
|
:doc:`fix nvt/uef <fix_nh_uef>` or :doc:`fix npt/uef <fix_nh_uef>` is used.
|
||||||
:doc:`fix npt/uef <fix_nh_uef>` or is used. Only the atomic
|
Only the atomic coordinates and frame-invariant scalar quantities
|
||||||
coordinates and frame-invariant scalar quantities
|
|
||||||
will be in the flow frame. If velocities are selected
|
will be in the flow frame. If velocities are selected
|
||||||
as output, for example, they will not be in the same
|
as output, for example, they will not be in the same
|
||||||
reference frame as the atomic positions.
|
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
|
This fix is part of the UEF package. It is only enabled if LAMMPS
|
||||||
was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
was built with that package. See the :doc:`Build package <Build_package>`
|
||||||
|
page for more info.
|
||||||
|
|
||||||
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`
|
This command can only be used when :doc:`fix nvt/uef <fix_nh_uef>`
|
||||||
or :doc:`fix npt/uef <fix_nh_uef>` is active.
|
or :doc:`fix npt/uef <fix_nh_uef>` is active.
|
||||||
|
|||||||
@ -12,7 +12,7 @@ dump movie command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
dump ID group-ID style N file color diameter keyword value ...
|
dump ID group-ID style N file color diameter keyword value ...
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. 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)
|
*adiam* size = numeric value for atom diameter (distance units)
|
||||||
*bond* values = color width = color and width of bonds
|
*bond* values = color width = color and width of bonds
|
||||||
color = *atom* or *type* or *none*
|
color = *atom* or *type* or *none*
|
||||||
@ -68,21 +68,20 @@ Syntax
|
|||||||
*box* values = yes/no diam = draw outline of simulation box
|
*box* values = yes/no diam = draw outline of simulation box
|
||||||
yes/no = do or do not draw simulation box lines
|
yes/no = do or do not draw simulation box lines
|
||||||
diam = diameter of box lines as fraction of shortest box length
|
diam = diameter of box lines as fraction of shortest box length
|
||||||
*axes* values = yes/no length diam = draw xyz axes
|
*axes* values = axes length diam = draw xyz axes
|
||||||
yes/no = do or do not draw xyz axes lines next to simulation box
|
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
|
length = length of axes lines as fraction of respective box lengths
|
||||||
diam = diameter of axes lines as fraction of shortest box length
|
diam = diameter of axes lines as fraction of shortest box length
|
||||||
*subbox* values = yes/no diam = draw outline of processor sub-domains
|
*subbox* values = lines diam = draw outline of processor sub-domains
|
||||||
yes/no = do or do not draw sub-domain lines
|
lines = *yes* or *no* = do or do not draw sub-domain lines
|
||||||
diam = diameter of sub-domain lines as fraction of shortest box length
|
diam = diameter of sub-domain lines as fraction of shortest box length
|
||||||
*shiny* value = sfactor = shinyness of spheres and cylinders
|
*shiny* value = sfactor = shinyness of spheres and cylinders
|
||||||
sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
|
sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
|
||||||
*ssao* value = yes/no seed dfactor = SSAO depth shading
|
*ssao* value = shading seed dfactor = SSAO depth shading
|
||||||
yes/no = turn depth shading on/off
|
shading = *yes* or *no* = turn depth shading on/off
|
||||||
seed = random # seed (positive integer)
|
seed = random # seed (positive integer)
|
||||||
dfactor = strength of shading from 0.0 to 1.0
|
dfactor = strength of shading from 0.0 to 1.0
|
||||||
|
|
||||||
|
|
||||||
.. _dump_modify_image:
|
.. _dump_modify_image:
|
||||||
|
|
||||||
dump_modify options for dump image/movie
|
dump_modify options for dump image/movie
|
||||||
@ -162,7 +161,7 @@ Examples
|
|||||||
Description
|
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
|
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
|
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
|
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
|
from an existing dump file, and using these dump commands in the rerun
|
||||||
script to generate the images/movie.
|
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
|
.. |dump1| image:: img/dump1.jpg
|
||||||
:width: 48%
|
: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.
|
alter what atoms are included in the image.
|
||||||
The filename suffix determines whether a JPEG, PNG, or PPM file is
|
The filename suffix determines whether a JPEG, PNG, or PPM file is
|
||||||
created with the *image* dump style. If the suffix is ".jpg" or
|
created with the *image* dump style. If the suffix is ".jpg" or
|
||||||
".jpeg", then a `JPEG format <jpeg_format_>`_ file is created, if the
|
".jpeg," then a `JPEG format <jpeg_format_>`_ file is created, if the
|
||||||
suffix is ".png", then a `PNG format <png_format_>`_ is created, else
|
suffix is ".png," then a `PNG format <png_format_>`_ is created, else
|
||||||
a `PPM (aka NETPBM) format <ppm_format_>`_ file is created.
|
a `PPM (aka NETPBM) format <ppm_format_>`_ file is created.
|
||||||
The JPEG and PNG files are binary; PPM has a text mode header followed
|
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
|
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
|
timestep 0) and on the last timestep of a minimization if the
|
||||||
minimization converges. Note that this means a dump will not be
|
minimization converges. Note that this means a dump will not be
|
||||||
performed on the initial timestep after the dump command is invoked,
|
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
|
changed via the :doc:`dump_modify first <dump_modify>` command, which
|
||||||
can be useful if the dump command is invoked after a minimization
|
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.
|
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
|
one image file per snapshot is written. The "\*" character is replaced
|
||||||
with the timestep value. For example, tmp.dump.\*.jpg becomes
|
with the timestep value. For example, tmp.dump.\*.jpg becomes
|
||||||
tmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note
|
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
|
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
|
can make it easier to convert a series of images into a movie in the
|
||||||
correct ordering.
|
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
|
for the :doc:`dump custom <dump>` command, including *type* and
|
||||||
*element*\ . This includes per-atom quantities calculated by a
|
*element*\ . This includes per-atom quantities calculated by a
|
||||||
:doc:`compute <compute>`, :doc:`fix <fix>`, or :doc:`variable <variable>`,
|
: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
|
*diameter* setting can be overridden with a numeric value applied to
|
||||||
all atoms by the optional *adiam* keyword.
|
all atoms by the optional *adiam* keyword.
|
||||||
|
|
||||||
@ -277,7 +276,7 @@ to colors is as follows:
|
|||||||
* type 5 = aqua
|
* type 5 = aqua
|
||||||
* type 6 = cyan
|
* 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.
|
"dump_modify acolor" command, as described below.
|
||||||
|
|
||||||
If *type* is specified for the *diameter* setting then the diameter of
|
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*
|
If other atom attributes are used for the *color* or *diameter*
|
||||||
settings, they are interpreted in the following way.
|
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
|
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
|
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
|
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
|
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
|
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
|
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".
|
-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
|
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
|
diameter. If the per-atom value <= 0.0, them the atom will not be
|
||||||
drawn. Note that finite-size spherical particles, as defined by
|
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
|
The *delta* setting must be specified for all styles, but is only used
|
||||||
for the sequential style; otherwise the value is ignored. It
|
for the sequential style; otherwise the value is ignored. It
|
||||||
specifies the bin size to use within the range for assigning
|
specifies the bin size to use within the range for assigning
|
||||||
consecutive colors to. For example, if the range is from -10.0 to
|
consecutive colors to. For example, if the range is from :math:`-10.0` to
|
||||||
10.0 and a *delta* of 1.0 is used, then 20 colors will be assigned to
|
:math:`10.0` and a *delta* of :math:`1.0` is used, then 20 colors will be
|
||||||
the range. The first will be from -10.0 <= color1 < -9.0, then second
|
assigned to the range. The first will be from
|
||||||
from -9.0 <= color2 < -8.0, etc.
|
: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
|
The *N* setting is how many entries follow. The format of the entries
|
||||||
depends on whether the color map style is continuous, discrete or
|
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.
|
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
|
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
|
individual atom, given the value :math:`X` of its atom attribute.
|
||||||
between 2 of the entry values. The color of the atom is linearly
|
:math:`X` will fall between 2 of the entry values. The color of the atom is
|
||||||
interpolated (in each of the RGB values) between the 2 colors
|
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
|
associated with those entries. For example, if :math:`X = -5.0` and the two
|
||||||
surrounding entries are "red" at -10.0 and "blue" at 0.0, then the
|
surrounding entries are "red" at :math:`-10.0` and "blue" at :math:`0.0`,
|
||||||
atom's color will be halfway between "red" and "blue", which happens
|
then the atom's color will be halfway between "red" and "blue," which happens
|
||||||
to be "purple".
|
to be "purple."
|
||||||
|
|
||||||
For discrete color maps, each entry has a *lo* and *hi* value and a
|
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
|
*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
|
*bond* keyword, when its color setting is *type*, to set the color
|
||||||
that bonds of each type will be drawn in the image.
|
that bonds of each type will be drawn in the image.
|
||||||
|
|
||||||
The specified *type* should be an integer from 1 to Nbondtypes = the
|
The specified *type* should be an integer from 1 to :math:`N`, where :math:`N`
|
||||||
number of bond types. A wildcard asterisk can be used in place of or
|
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
|
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 =
|
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||||
the number of bond types, then an asterisk with no numeric values
|
is the number of bond types, then an asterisk with no numerical values
|
||||||
means all types from 1 to N. A leading asterisk means all types from
|
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n
|
||||||
(inclusive).
|
(inclusive).
|
||||||
|
|
||||||
The specified *color* can be a single color which is any of the 140
|
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
|
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
|
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
|
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
|
case, the list of colors are assigned in a round-robin fashion to each
|
||||||
of the specified bond types.
|
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
|
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
|
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
|
*type* should be an integer from 1 to Nbondtypes. As with the
|
||||||
*bcolor* keyword, a wildcard asterisk can be used as part of the
|
*bcolor* keyword, a wildcard asterisk can be used as part of the
|
||||||
*type* argument to specify a range of bond types. The specified
|
*type* argument to specify a range of bond types. The specified
|
||||||
*diam* is the size in whatever distance :doc:`units <units>` you are
|
*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
|
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
|
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
|
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
|
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
|
To write *movie* dumps, you must use the -DLAMMPS_FFMPEG switch when
|
||||||
building LAMMPS and have the FFmpeg executable available on the
|
building LAMMPS and have the FFmpeg executable available on the
|
||||||
machine where LAMMPS is being run. Typically it's name is lowercase,
|
machine where LAMMPS is being run. Typically its name is lowercase
|
||||||
i.e. ffmpeg.
|
(i.e., "ffmpeg").
|
||||||
|
|
||||||
See the :doc:`Build settings <Build_settings>` page for details.
|
See the :doc:`Build settings <Build_settings>` page for details.
|
||||||
|
|
||||||
Note that since FFmpeg is run as an external program via a pipe,
|
Note that since FFmpeg is run as an external program via a pipe,
|
||||||
LAMMPS has limited control over its execution and no knowledge about
|
LAMMPS has limited control over its execution and no knowledge about
|
||||||
errors and warnings printed by it. Those warnings and error messages
|
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
|
communicated to FFmpeg, it will often print the message
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
@ -976,7 +976,7 @@ communicated to FFmpeg, it will often print the message
|
|||||||
|
|
||||||
which can be safely ignored. Other warnings
|
which can be safely ignored. Other warnings
|
||||||
and errors have to be addressed according to the FFmpeg documentation.
|
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
|
and 2 format streams) have video bandwidth limits that can be crossed
|
||||||
when rendering too large of image sizes. Typical warnings look like
|
when rendering too large of image sizes. Typical warnings look like
|
||||||
this:
|
this:
|
||||||
@ -987,10 +987,9 @@ this:
|
|||||||
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018
|
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018
|
||||||
[mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 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
|
In this case it is recommended either to reduce the size of the image
|
||||||
or encode in a different format that is also supported by your copy of
|
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,
|
FFmpeg and which does not have this limitation (e.g., .avi, .mkv, mp4).
|
||||||
mp4).
|
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -6,13 +6,13 @@ dump vtk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
dump ID group-ID vtk N file args
|
dump ID group-ID vtk N file args
|
||||||
|
|
||||||
* ID = user-assigned name for the dump
|
* ID = user-assigned name for the dump
|
||||||
* group-ID = ID of the group of atoms to be dumped
|
* 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
|
* N = dump every this many timesteps
|
||||||
* file = name of file to write dump info to
|
* file = name of file to write dump info to
|
||||||
* args = same as arguments for :doc:`dump_style custom <dump>`
|
* args = same as arguments for :doc:`dump_style custom <dump>`
|
||||||
@ -28,17 +28,18 @@ Examples
|
|||||||
Description
|
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,
|
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
|
output is written can also be controlled by a variable; see the
|
||||||
:doc:`dump_modify every <dump_modify>` command for details.
|
:doc:`dump_modify every <dump_modify>` command for details.
|
||||||
|
|
||||||
This dump style is similar to :doc:`dump_style custom <dump>` but uses
|
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
|
depending on the filename extension specified for the dump file. This
|
||||||
can be either *\*.vtk* for the legacy format or *\*.vtp* and *\*.vtu*,
|
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
|
description of these formats. Since this naming convention conflicts
|
||||||
with the way binary output is usually specified (see below), the
|
with the way binary output is usually specified (see below), the
|
||||||
:doc:`dump_modify binary <dump_modify>` command allows setting of a
|
:doc:`dump_modify binary <dump_modify>` command allows setting of a
|
||||||
|
|||||||
@ -6,8 +6,7 @@ fix accelerate/cos command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
|
.. code-block:: LAMMPS
|
||||||
.. parsed-literal::
|
|
||||||
|
|
||||||
fix ID group-ID accelerate value
|
fix ID group-ID accelerate value
|
||||||
|
|
||||||
@ -19,7 +18,6 @@ Syntax
|
|||||||
Examples
|
Examples
|
||||||
""""""""
|
""""""""
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix 1 all accelerate/cos 0.02e-5
|
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)
|
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
|
where :math:`A` is the acceleration amplitude, :math:`l_z` is the
|
||||||
of the simulation box.
|
:math:`z`-length of the simulation box.
|
||||||
At steady state, the acceleration generates a velocity profile:
|
At steady state, the acceleration generates a velocity profile:
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
@ -49,17 +47,18 @@ shear viscosity :math:`\eta` by:
|
|||||||
|
|
||||||
V = \frac{A \rho}{\eta}\left(\frac{l_{z}}{2 \pi}\right)^{2}
|
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:
|
and it can be obtained from ensemble average of the velocity profile:
|
||||||
|
|
||||||
.. math::
|
.. 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,
|
where :math:`m_i`, :math:`v_{i,x}`, and :math:`z_i` are the mass,
|
||||||
x-component velocity and z coordinate of a particle.
|
: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,
|
which enables viscosity calculation with periodic perturbation method,
|
||||||
as described by :ref:`Hess<Hess2>`.
|
as described by :ref:`Hess<Hess2>`.
|
||||||
Because the applied acceleration drives the system away from equilibration,
|
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.
|
No information about this fix is written to binary restart files.
|
||||||
None of the fix_modify options are relevant to this fix.
|
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 global or per-atom quantities are stored by this fix for access by various
|
||||||
No parameter of this fix can be used with the start/stop keywords of the run command.
|
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.
|
This fix is not invoked during energy minimization.
|
||||||
|
|
||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This command is only available when LAMMPS was built with the MISC package.
|
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
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
@ -96,10 +97,10 @@ Related commands
|
|||||||
|
|
||||||
Default
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
none
|
none
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
.. _Hess2:
|
.. _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
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args
|
fix ID group-ID acks2/reaxff Nevery cutlo cuthi tolerance params args
|
||||||
|
|
||||||
@ -37,10 +37,10 @@ Examples
|
|||||||
Description
|
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>`.
|
equilibration method as described in :ref:`(Verstraelen) <Verstraelen>`.
|
||||||
ACKS2 impedes unphysical long-range charge transfer sometimes seen with
|
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
|
cost. It is typically used in conjunction with the ReaxFF force field
|
||||||
model as implemented in the :doc:`pair_style reaxff <pair_reaxff>`
|
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
|
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
|
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
|
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
|
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
|
The optional *maxiter* keyword allows changing the max number
|
||||||
of iterations in the linear solver. The default value is 200.
|
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
|
This fix does not correctly handle interactions involving multiple
|
||||||
periodic images of the same atom. Hence, it should not be used for
|
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>`
|
This fix may be used in combination with :doc:`fix efield <fix_efield>`
|
||||||
and will apply the external electric field during charge equilibration,
|
and will apply the external electric field during charge equilibration,
|
||||||
@ -132,7 +133,7 @@ maxiter 200
|
|||||||
|
|
||||||
.. _O'Hearn:
|
.. _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:
|
.. _Verstraelen:
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix adapt command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID adapt N attribute args ... keyword value ...
|
fix ID group-ID adapt N attribute args ... keyword value ...
|
||||||
|
|
||||||
@ -19,24 +19,24 @@ Syntax
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*pair* args = pstyle pparam I J v_name
|
*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
|
pparam = parameter to adapt over time
|
||||||
I,J = type pair(s) to set parameter for
|
I,J = type pair(s) to set parameter for
|
||||||
v_name = variable with name that calculates value of pparam
|
v_name = variable with name that calculates value of pparam
|
||||||
*bond* args = bstyle bparam I v_name
|
*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
|
bparam = parameter to adapt over time
|
||||||
I = type bond to set parameter for
|
I = type bond to set parameter for
|
||||||
v_name = variable with name that calculates value of bparam
|
v_name = variable with name that calculates value of bparam
|
||||||
*angle* args = astyle aparam I v_name
|
*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
|
aparam = parameter to adapt over time
|
||||||
I = type angle to set parameter for
|
I = type angle to set parameter for
|
||||||
v_name = variable with name that calculates value of aparam
|
v_name = variable with name that calculates value of aparam
|
||||||
*kspace* arg = v_name
|
*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
|
*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
|
v_name = variable with name that calculates value of atomparam
|
||||||
|
|
||||||
* zero or more keyword/value pairs may be appended
|
* zero or more keyword/value pairs may be appended
|
||||||
@ -70,22 +70,22 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Change or adapt one or more specific simulation attributes or settings
|
Change or adapt one or more specific simulation attributes or settings over
|
||||||
over time as a simulation runs. Pair potential and K-space and atom
|
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
|
attributes which can be varied by this fix are discussed below. Many other
|
||||||
other fixes can also be used to time-vary simulation parameters,
|
fixes can also be used to time-vary simulation parameters (e.g., the
|
||||||
e.g. the "fix deform" command will change the simulation box
|
:doc:`fix deform <fix_deform>` command will change the simulation box
|
||||||
size/shape and the "fix move" command will change atom positions and
|
size/shape and the :doc:`fix move <fix_move>` command will change atom
|
||||||
velocities in a prescribed manner. Also note that many commands allow
|
positions and velocities in a prescribed manner). Also note that many commands
|
||||||
variables as arguments for specific parameters, if described in that
|
allow variables as arguments for specific parameters, if described in that
|
||||||
manner on their doc pages. An equal-style variable can calculate a
|
manner on their doc pages. An equal-style variable can calculate a
|
||||||
time-dependent quantity, so this is another way to vary a simulation
|
time-dependent quantity, so this is another way to vary a simulation parameter
|
||||||
parameter over time.
|
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
|
once, before the simulation begins. This is all that is needed if the
|
||||||
associated variables are not time-dependent. If *N* > 0, then changes
|
associated variables are not time-dependent. If :math:`N > 0`, then changes
|
||||||
are made every *N* steps during the simulation, presumably with a
|
are made every :math:`N` steps during the simulation, presumably with a
|
||||||
variable that is time-dependent.
|
variable that is time-dependent.
|
||||||
|
|
||||||
Depending on the value of the *reset* keyword, attributes changed by
|
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
|
the value of the altered parameter will be whatever the variable
|
||||||
generates. If the *scale* keyword is set to *yes*, then the value
|
generates. If the *scale* keyword is set to *yes*, then the value
|
||||||
of the altered parameter will be the initial value of that parameter
|
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
|
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
|
Note that whether scale is *no* or *yes*, internally, the parameters
|
||||||
themselves are actually altered by this fix. Make sure you use the
|
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,
|
:doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is used,
|
||||||
*pstyle* should be a sub-style name. If there are multiple
|
*pstyle* should be a sub-style name. If there are multiple
|
||||||
sub-styles using the same pair style, then *pstyle* should be specified
|
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
|
as "style:N", where :math:`N` is which instance of the pair style you wish to
|
||||||
adapt, e.g. the first, second, etc. For example, *pstyle* could be
|
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
|
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
|
*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
|
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
|
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
|
to this list. All it typically takes is adding an extract() method to
|
||||||
the pair\_\*.cpp file associated with the potential.
|
the pair\_\*.cpp file associated with the potential.
|
||||||
|
|
||||||
Some parameters are global settings for the pair style, e.g. the
|
Some parameters are global settings for the pair style (e.g., the
|
||||||
viscosity setting "mu" for :doc:`pair_style lubricate <pair_lubricate>`.
|
viscosity setting "mu" for :doc:`pair_style lubricate <pair_lubricate>`).
|
||||||
Other parameters apply to atom type pairs within the pair style,
|
Other parameters apply to atom type pairs within the pair style (e.g., the
|
||||||
e.g. the prefactor "a" for :doc:`pair_style soft <pair_soft>`.
|
prefactor :math:`a` for :doc:`pair_style soft <pair_soft>`).
|
||||||
|
|
||||||
Note that for many of the potentials, the parameter that can be varied
|
Note that for many of the potentials, the parameter that can be varied
|
||||||
is effectively a prefactor on the entire energy expression for the
|
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
|
are exactly that, since the energy expression for the
|
||||||
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled
|
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled
|
||||||
prefactor in its formula. To apply an effective prefactor to some
|
prefactor in its formula. To apply an effective prefactor to some
|
||||||
potentials, multiple parameters need to be altered. For example, the
|
potentials, multiple parameters need to be altered. For example, the
|
||||||
:doc:`Buckingham potential <pair_buck>` needs both the A and C terms
|
:doc:`Buckingham potential <pair_buck>` needs both the :math:`A` and
|
||||||
altered together. To scale the Buckingham potential, you should thus
|
:math:`C` terms altered together. To scale the Buckingham potential, you
|
||||||
list the pair style twice, once for A and once for C.
|
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
|
If a type pair parameter is specified, the :math:`I` and :math:`J` settings
|
||||||
be specified to indicate which type pairs to apply it to. If a global
|
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
|
parameter is specified, the :math:`I` and :math:`J` settings still need to be
|
||||||
specified, but are ignored.
|
specified, but are ignored.
|
||||||
|
|
||||||
Similar to the :doc:`pair_coeff command <pair_coeff>`, I and J can be
|
Similar to the :doc:`pair_coeff command <pair_coeff>`, :math:`I` and :math:`J`
|
||||||
specified in one of two ways. Explicit numeric values can be used for
|
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.
|
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
|
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
|
the :math:`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 =
|
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||||
the number of atom types, then an asterisk with no numeric values
|
is the number of atom types, then an asterisk with no numeric values
|
||||||
means all types from 1 to N. A leading asterisk means all types from
|
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n
|
||||||
(inclusive). Note that only type pairs with I <= J are considered; if
|
(inclusive). Note that only type pairs with :math:`I \le J` are considered; if
|
||||||
asterisks imply type pairs where J < I, they are ignored.
|
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
|
<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
|
values defined (via the :doc:`pair_coeff <pair_coeff>` command) for
|
||||||
that sub-style.
|
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
|
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
|
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 =
|
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||||
the number of bond types, then an asterisk with no numeric values
|
is 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
|
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n (inclusive).
|
||||||
(inclusive).
|
|
||||||
|
|
||||||
Currently *bond* does not support bond_style hybrid nor bond_style
|
Currently *bond* does not support bond_style hybrid nor bond_style
|
||||||
hybrid/overlay as bond styles. The bond styles that currently work
|
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
|
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
|
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 =
|
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N`
|
||||||
the number of angle types, then an asterisk with no numeric values
|
is 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
|
means all types from 1 to :math:`N`. A leading asterisk means all types from
|
||||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
1 to n (inclusive). A trailing asterisk means all types from m to :math:`N`
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n (inclusive).
|
||||||
(inclusive).
|
|
||||||
|
|
||||||
Currently *angle* does not support angle_style hybrid nor angle_style
|
Currently *angle* does not support angle_style hybrid nor angle_style
|
||||||
hybrid/overlay as angle styles. The angle styles that currently work
|
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 *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
|
defined by the :doc:`kspace_style <kspace_style>` command. If the
|
||||||
variable has a value of 1.0, then the solver is unaltered.
|
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.
|
corresponding attribute for all atoms in the fix group.
|
||||||
|
|
||||||
If the atom parameter is *diameter* and per-atom density and per-atom
|
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
|
<atom_style>`), then the mass of each particle is, by default, also
|
||||||
changed when the diameter changes. The mass is set from the particle
|
changed when the diameter changes. The mass is set from the particle
|
||||||
volume for 3d systems (density is assumed to stay constant). For 2d,
|
volume for 3d systems (density is assumed to stay constant). For 2d,
|
||||||
the default is for LAMMPS to model particles with a radius attribute
|
the default is for LAMMPS to model particles with a radius attribute
|
||||||
as spheres. However, if the atom parameter is *diameter/disc*, then the
|
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 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
|
mass/distance\ :math:`^2` units). The mass of the particle may also be kept
|
||||||
if the *mass* keyword is set to *no*. This can be useful to account for
|
constant if the *mass* keyword is set to *no*. This can be useful to account
|
||||||
diameter changes that do not involve mass changes, e.g., thermal expansion.
|
for diameter changes that do not involve mass changes (e.g., thermal
|
||||||
|
expansion).
|
||||||
|
|
||||||
For example, these commands would shrink the diameter of all granular
|
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
|
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
|
Note that all the parameters changed by this fix are written into a
|
||||||
restart file in their current changed state. A new restarted
|
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
|
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
|
script should typically be written as a function of time elapsed since
|
||||||
the original simulation began.
|
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
|
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
|
run ends in this script (as opposed to just writing more restart
|
||||||
files, parameters will be restored to the values they were at the
|
files), parameters will be restored to the values they were at the
|
||||||
beginning of the run command in the restart script. Which as
|
beginning of the run command in the restart script, which as
|
||||||
explained above, may or may not be the original values of the
|
explained above, may or may not be the original values of the
|
||||||
parameters. Again, an exception is if the *atom* keyword is being
|
parameters. Again, an exception is if the *atom* keyword is being
|
||||||
used with *reset yes* (in all the runs). In that case, the original
|
used with *reset yes* (in all the runs). In that case, the original
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix adapt/fep command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID adapt/fep N attribute args ... keyword value ...
|
fix ID group-ID adapt/fep N attribute args ... keyword value ...
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ Syntax
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*pair* args = pstyle pparam I J v_name
|
*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
|
pparam = parameter to adapt over time
|
||||||
I,J = type pair(s) to set parameter for
|
I,J = type pair(s) to set parameter for
|
||||||
v_name = variable with name that calculates value of pparam
|
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.
|
over time as a simulation runs.
|
||||||
|
|
||||||
This is an enhanced version of the :doc:`fix adapt <fix_adapt>` command
|
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,
|
* It is possible to modify the charges of chosen atom types only,
|
||||||
instead of scaling all the charges in the system.
|
instead of scaling all the charges in the system.
|
||||||
* There is a new option *after* for better compatibility with "fix
|
* There is a new option *after* for better compatibility with
|
||||||
ave/time".
|
:doc:`fix ave/time <fix_ave_time>`.
|
||||||
|
|
||||||
This version is suited for free energy calculations using
|
This version is suited for free energy calculations using
|
||||||
:doc:`compute ti <compute_ti>` or :doc:`compute fep <compute_fep>`.
|
: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*
|
set to will be whatever the variable generates. If the *scale*
|
||||||
keyword is set to *yes*, then the value of the altered parameter will
|
keyword is set to *yes*, then the value of the altered parameter will
|
||||||
be the initial value of that parameter multiplied by whatever the
|
be the initial value of that parameter multiplied by whatever the
|
||||||
variable generates. I.e. the variable is now a "scale factor" applied
|
variable generates (i.e., the variable is now a "scale factor" applied
|
||||||
in (presumably) a time-varying fashion to the parameter. Internally,
|
in (presumably) a time-varying fashion to the parameter). Internally,
|
||||||
the parameters themselves are actually altered; make sure you use the
|
the parameters themselves are actually altered; make sure you use the
|
||||||
*reset yes* option if you want the parameters to be restored to their
|
*reset yes* option if you want the parameters to be restored to their
|
||||||
initial values after the run.
|
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
|
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"
|
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
|
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
|
can be varied by this fix. See the doc pages for individual pair
|
||||||
styles and their energy formulas for the meaning of these parameters:
|
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
|
Note that for many of the potentials, the parameter that can be varied
|
||||||
is effectively a prefactor on the entire energy expression for the
|
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
|
are exactly that, since the energy expression for the
|
||||||
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled
|
:doc:`coul/cut <pair_coul>` potential (for example) has no labeled
|
||||||
prefactor in its formula. To apply an effective prefactor to some
|
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
|
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
|
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.
|
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
|
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
|
the :math:`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
|
types. This takes the form "\*" or "\*n" or "m\*" or "m\*n." If :math:`N` is
|
||||||
number of atom types, then an asterisk with no numeric values means
|
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
|
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 trailing asterisk means all types from m to :math:`N`
|
||||||
(inclusive). A middle asterisk means all types from m to n
|
(inclusive). A middle asterisk means all types from m to n
|
||||||
(inclusive). Note that only type pairs with I <= J are considered; if
|
(inclusive). Note that only type pairs with :math:`I \le J` are considered; if
|
||||||
asterisks imply type pairs where J < I, they are ignored.
|
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
|
IMPROTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay <pair_hybrid>` is
|
||||||
be a sub-style name. You must specify I,J arguments that correspond
|
being used, then the *pstyle* will be a sub-style name. You must specify
|
||||||
to type pair values defined (via the :doc:`pair_coeff <pair_coeff>`
|
:math:`I,J` arguments that correspond to type pair values defined (via the
|
||||||
command) for that sub-style.
|
:doc:`pair_coeff <pair_coeff>` command) for that sub-style.
|
||||||
|
|
||||||
The *v_name* argument for keyword *pair* is the name of an
|
The *v_name* argument for keyword *pair* is the name of an
|
||||||
:doc:`equal-style variable <variable>` which will be evaluated each time
|
: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
|
easy to specify parameters that change as a function of time or span
|
||||||
consecutive runs in a continuous fashion. For the latter, see the
|
consecutive runs in a continuous fashion. For the latter, see the
|
||||||
*start* and *stop* keywords of the :doc:`run <run>` command and the
|
*start* and *stop* keywords of the :doc:`run <run>` command and the
|
||||||
*elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for
|
*elaplong* keyword of :doc:`thermo_style custom <thermo_style>` for details.
|
||||||
details.
|
|
||||||
|
|
||||||
For example, these commands would change the prefactor coefficient of
|
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
|
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 *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
|
defined by the :doc:`kspace_style <kspace_style>` command. If the
|
||||||
variable has a value of 1.0, then the solver is unaltered.
|
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
|
* charge = charge on particle
|
||||||
* diameter = diameter of particle
|
* diameter = diameter of particle
|
||||||
|
|
||||||
The *I* argument indicates which atom types are affected. A wild-card
|
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 I argument
|
asterisk can be used in place of or in conjunction with the :math:`I` argument
|
||||||
to set the coefficients for multiple atom types.
|
to set the coefficients for multiple atom types.
|
||||||
|
|
||||||
The *v_name* argument of the *atom* keyword is the name of an
|
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.
|
for all atoms in the fix group.
|
||||||
|
|
||||||
If the atom parameter is *diameter* and per-atom density and per-atom
|
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
|
mass are defined for particles (e.g., :doc:`atom_style granular <atom_style>`),
|
||||||
changed when the diameter changes (density is assumed to stay
|
then the mass of each particle is also changed when the diameter changes
|
||||||
constant).
|
(density is assumed to stay constant).
|
||||||
|
|
||||||
For example, these commands would shrink the diameter of all granular
|
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
|
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
|
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
|
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>`.
|
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
|
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
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -310,7 +312,8 @@ Restrictions
|
|||||||
Related commands
|
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
|
Default
|
||||||
"""""""
|
"""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix addforce command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID addforce fx fy fz keyword value ...
|
fix ID group-ID addforce fx fy fz keyword value ...
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ Syntax
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*every* value = Nevery
|
*every* value = Nevery
|
||||||
Nevery = add force every this many timesteps
|
Nevery = add force every this many time steps
|
||||||
*region* value = region-ID
|
*region* value = region-ID
|
||||||
region-ID = ID of region atoms must be in to have added force
|
region-ID = ID of region atoms must be in to have added force
|
||||||
*energy* value = v_name
|
*energy* value = v_name
|
||||||
@ -42,31 +42,31 @@ Examples
|
|||||||
Description
|
Description
|
||||||
"""""""""""
|
"""""""""""
|
||||||
|
|
||||||
Add fx,fy,fz to the corresponding component of force for each atom in
|
Add :math:`(f_x,f_y,f_z)` to the corresponding component of the force for each
|
||||||
the group. This command can be used to give an additional push to
|
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
|
atoms in a simulation, such as for a simulation of Poiseuille flow in
|
||||||
a channel.
|
a channel.
|
||||||
|
|
||||||
Any of the 3 quantities defining the force components can be specified
|
Any of the three quantities defining the force components, namely :math:`f_x`,
|
||||||
as an equal-style or atom-style :doc:`variable <variable>`, namely *fx*,
|
:math:`f_y`, and :math:`f_z`, can be specified as an equal-style or atom-style
|
||||||
*fy*, *fz*\ . If the value is a variable, it should be specified as
|
:doc:`variable <variable>`. If the value is a variable, it should be specified
|
||||||
v_name, where name is the variable name. In this case, the variable
|
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
|
will be evaluated each time step, and its value(s) will be used to determine
|
||||||
the force component.
|
the force component(s).
|
||||||
|
|
||||||
Equal-style variables can specify formulas with various mathematical
|
Equal-style variables can specify formulas with various mathematical
|
||||||
functions, and include :doc:`thermo_style <thermo_style>` command
|
functions and include :doc:`thermo_style <thermo_style>` command
|
||||||
keywords for the simulation box parameters and timestep and elapsed
|
keywords for the simulation box parameters, time step, and elapsed time.
|
||||||
time. Thus it is easy to specify a time-dependent force field.
|
Thus, it is easy to specify a time-dependent force field.
|
||||||
|
|
||||||
Atom-style variables can specify the same formulas as equal-style
|
Atom-style variables can specify the same formulas as equal-style
|
||||||
variables but can also include per-atom values, such as atom
|
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.
|
field with optional time-dependence as well.
|
||||||
|
|
||||||
If the *every* keyword is used, the *Nevery* setting determines how
|
If the *every* keyword is used, the *Nevery* setting determines how
|
||||||
often the forces are applied. The default value is 1, for every
|
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
|
If the *region* keyword is used, the atom must also be in the
|
||||||
specified geometric :doc:`region <region>` in order to have force added
|
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).
|
(see below).
|
||||||
|
|
||||||
The *energy* keyword is not allowed if the added force is a constant
|
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
|
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 +
|
the energy for each atom directly as
|
||||||
z\*fz), so that -Grad(E) = F.
|
|
||||||
|
.. 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
|
The *energy* keyword is optional if the added force is defined with
|
||||||
one or more variables, and if you are performing dynamics via the
|
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
|
the "minimize" command. The keyword specifies the name of an
|
||||||
atom-style :doc:`variable <variable>` which is used to compute the
|
atom-style :doc:`variable <variable>` which is used to compute the
|
||||||
energy of each atom as function of its position. Like variables used
|
energy of each atom as function of its position. Like variables used
|
||||||
for *fx*, *fy*, *fz*, the energy variable is specified as v_name,
|
for :math:`f_x`, :math:`f_y`, :math:`f_z`, the energy variable is specified as
|
||||||
where name is the variable name.
|
v_name, where name is the variable name.
|
||||||
|
|
||||||
Note that when the *energy* keyword is used during an energy
|
Note that when the *energy* keyword is used during an energy
|
||||||
minimization, you must insure that the formula defined for the
|
minimization, you must insure that the formula defined for the
|
||||||
atom-style :doc:`variable <variable>` is consistent with the force
|
atom-style :doc:`variable <variable>` is consistent with the force
|
||||||
variable formulas, i.e. that -Grad(E) = F. For example, if the force
|
variable formulas (i.e., that :math:`-\vec\nabla E = \vec F`).
|
||||||
were a spring-like F = kx, then the energy formula should be E =
|
For example, if the force were a spring-like, :math:`\vec F = -k\vec x`, then
|
||||||
-0.5kx\^2. If you don't do this correctly, the minimization will not
|
the energy formula should be :math:`E = \frac12 kx^2`. If you do not do this
|
||||||
converge properly.
|
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
|
this fix is :doc:`fix_modify energy no <fix_modify>`. Note that this
|
||||||
energy is a fictitious quantity but is needed so that the
|
energy is a fictitious quantity but is needed so that the
|
||||||
:doc:`minimize <minimize>` command can include the forces added by
|
:doc:`minimize <minimize>` command can include the forces added by
|
||||||
this fix in a consistent manner. I.e. there is a decrease in
|
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.
|
potential energy when atoms move in the direction of the added force).
|
||||||
|
|
||||||
The :doc:`fix_modify <fix_modify>` *virial* option is supported by
|
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
|
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
|
<run_style>` integrator the fix is adding its forces. Default is the
|
||||||
outermost level.
|
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
|
which can be accessed by various :doc:`output commands
|
||||||
<Howto_output>`. The scalar is the potential energy discussed above.
|
<Howto_output>`. The scalar is the potential energy discussed above.
|
||||||
The vector is the total force on the group of atoms before the forces
|
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
|
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
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
the :doc:`run <run>` command.
|
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,
|
The forces due to this fix are imposed during an energy minimization,
|
||||||
invoked by the :doc:`minimize <minimize>` command. You should not
|
invoked by the :doc:`minimize <minimize>` command. You should not
|
||||||
specify force components with a variable that has time-dependence for
|
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.
|
the iteration count during the minimization.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix addtorque command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID addtorque Tx Ty Tz
|
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 group such that:
|
||||||
|
|
||||||
* the components of the total torque applied on the group (around its
|
* 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
|
* the group would move as a rigid body in the absence of other
|
||||||
forces.
|
forces.
|
||||||
|
|
||||||
This command can be used to drive a group of atoms into rotation.
|
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*,
|
as an equal-style :doc:`variable <variable>`, namely *Tx*,
|
||||||
*Ty*, *Tz*\ . If the value is a variable, it should be specified as
|
*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
|
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
|
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
|
The :doc:`fix_modify <fix_modify>` *energy* option is supported by
|
||||||
this fix to add the potential "energy" inferred by the added torques
|
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
|
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
|
is a fictitious quantity but is needed so that the :doc:`minimize
|
||||||
<minimize>` command can include the forces added by this fix in a
|
<minimize>` command can include the forces added by this fix in a
|
||||||
consistent manner. I.e. there is a decrease in potential energy when
|
consistent manner (i.e., there is a decrease in potential energy when
|
||||||
atoms move in the direction of the added forces.
|
atoms move in the direction of the added forces).
|
||||||
|
|
||||||
The :doc:`fix_modify <fix_modify>` *respa* option is supported by
|
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>`
|
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
|
is the potential energy discussed above. The vector is the total
|
||||||
torque on the group of atoms before the forces on individual atoms are
|
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
|
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
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
the :doc:`run <run>` command.
|
the :doc:`run <run>` command.
|
||||||
@ -99,9 +100,9 @@ invoked by the :doc:`minimize <minimize>` command.
|
|||||||
Restrictions
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This fix is part of the EXTRA-FIX package. It is only enabled if
|
This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS was
|
||||||
LAMMPS was built with that package. See the :doc:`Build package
|
built with that package. See the :doc:`Build package <Build_package>` page for
|
||||||
<Build_package>` page for more info.
|
more info.
|
||||||
|
|
||||||
Related commands
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix amoeba/bitorsion command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ameoba/bitorsion filename
|
fix ID group-ID ameoba/bitorsion filename
|
||||||
|
|
||||||
@ -55,8 +55,8 @@ should have a line like this in its header section:
|
|||||||
|
|
||||||
N bitorsions
|
N bitorsions
|
||||||
|
|
||||||
where N is the number of bitorsion 5-body interactions. It should
|
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 N
|
also have a section in the body of the data file like this with :math:`N`
|
||||||
lines:
|
lines:
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
@ -68,7 +68,7 @@ lines:
|
|||||||
[...]
|
[...]
|
||||||
N 3 314 315 317 318 330
|
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
|
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
|
*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
|
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
|
This fix computes a global scalar which can be accessed by various
|
||||||
:doc:`output commands <Howto_output>`. The scalar is the potential
|
:doc:`output commands <Howto_output>`. The scalar is the potential
|
||||||
energy discussed above. The scalar value calculated by this fix is
|
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
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
the :doc:`run <run>` command.
|
the :doc:`run <run>` command.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix amoeba/pitorsion command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ameoba/pitorsion
|
fix ID group-ID ameoba/pitorsion
|
||||||
|
|
||||||
@ -29,14 +29,16 @@ Description
|
|||||||
This command enables 6-body pitorsion interactions to be added to
|
This command enables 6-body pitorsion interactions to be added to
|
||||||
simulations which use the AMOEBA and HIPPO force fields. It matches
|
simulations which use the AMOEBA and HIPPO force fields. It matches
|
||||||
how the Tinker MD code computes its pitorsion interactions for the
|
how the Tinker MD code computes its pitorsion interactions for the
|
||||||
AMOEBA and HIPPO force fields. See the :doc:`Howto amoeba
|
AMOEBA and HIPPO force fields. See the :doc:`Howto amoeba <Howto_amoeba>`
|
||||||
<Howto_amoeba>` doc page for more information about the implementation
|
doc page for more information about the implementation of AMOEBA and HIPPO in
|
||||||
of AMOEBA and HIPPO in LAMMPS.
|
LAMMPS.
|
||||||
|
|
||||||
Pitorsion interactions add additional potential energy contributions
|
Pitorsion interactions add additional potential energy contributions
|
||||||
to 6-tuples of atoms IJKLMN which have a bond between atoms K and L,
|
to 6-tuples of atoms :math:`IJKLMN` that have a bond between atoms
|
||||||
where both K and L are additionally bonded to exactly two other atoms.
|
:math:`K` and :math:`L`, where both :math:`K` and :math:`L` are additionally
|
||||||
Namely K is also bonded to I and J. And L is also bonded to M and N.
|
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
|
The examples/amoeba directory has a sample input script and data file
|
||||||
for ubiquitin, which illustrates use of the fix amoeba/pitorsion
|
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
|
The data file read by the :doc:`read_data <read_data>` command must
|
||||||
contain the topology of all the pitorsion interactions, similar to the
|
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:
|
should have two lines like these in its header section:
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
@ -55,9 +57,9 @@ should have two lines like these in its header section:
|
|||||||
M pitorsion types
|
M pitorsion types
|
||||||
N pitorsions
|
N pitorsions
|
||||||
|
|
||||||
where N is the number of pitorsion 5-body interactions and M is the
|
where :math:`N` is the number of pitorsion 5-body interactions and :math:`M` is
|
||||||
number of pitorsion types. It should also have two sections in the body
|
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:
|
of the data file like these with :math:`M` and :math:`N` lines each:
|
||||||
|
|
||||||
.. parsed-literal::
|
.. 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
|
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
|
enumerate the pitorsion types. The second column is the single
|
||||||
prefactor coefficient needed for each type.
|
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
|
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
|
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
|
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
|
Note that the *pitorsion types* and *pitorsions* and *PiTorsion
|
||||||
Coeffs* and *PiTorsions* keywords for the header and body sections of
|
Coeffs* and *PiTorsions* keywords for the header and body sections of
|
||||||
the data file match those specified in the :doc:`read_data
|
the data file match those specified in the :doc:`read_data <read_data>`
|
||||||
<read_data>` command following the data file name.
|
command following the data file name.
|
||||||
|
|
||||||
The data file should be generated by using the
|
The data file should be generated by using the
|
||||||
tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS
|
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
|
This fix computes a global scalar which can be accessed by various
|
||||||
:doc:`output commands <Howto_output>`. The scalar is the potential
|
:doc:`output commands <Howto_output>`. The scalar is the potential
|
||||||
energy discussed above. The scalar value calculated by this fix is
|
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
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
the :doc:`run <run>` command.
|
the :doc:`run <run>` command.
|
||||||
@ -161,8 +163,8 @@ Restrictions
|
|||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
To function as expected this fix command must be issued *before* a
|
To function as expected this fix command must be issued *before* a
|
||||||
:doc:`read_data <read_data>` command but *after* a :doc:`read_restart
|
:doc:`read_data <read_data>` command but *after* a
|
||||||
<read_restart>` command.
|
:doc:`read_restart <read_restart>` command.
|
||||||
|
|
||||||
This fix can only be used if LAMMPS was built with the AMOEBA package.
|
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.
|
See the :doc:`Build package <Build_package>` page for more info.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix append/atoms command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID append/atoms face ... keyword value ...
|
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
|
defined for the unit cell of the lattice. By default, all created
|
||||||
atoms are assigned type = 1 unless this keyword specifies differently.
|
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.
|
be added.
|
||||||
|
|
||||||
The *random* keyword will give the atoms random displacements around
|
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
|
The *units* keyword determines the meaning of the distance units used
|
||||||
to define a wall position, but only when a numeric constant is 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
|
A *box* value selects standard distance units as defined by the
|
||||||
:doc:`units <units>` command, e.g. Angstroms for units = real or metal.
|
:doc:`units <units>` command (e.g., :math:`\mathrm{\mathring A}`
|
||||||
|
for units = real or metal.
|
||||||
A *lattice* value means the distance units are in lattice spacings.
|
A *lattice* value means the distance units are in lattice spacings.
|
||||||
The :doc:`lattice <lattice>` command must have been previously used to
|
The :doc:`lattice <lattice>` command must have been previously used to
|
||||||
define the lattice spacings.
|
define the lattice spacings.
|
||||||
@ -89,17 +90,21 @@ define the lattice spacings.
|
|||||||
Restart, fix_modify, output, run start/stop, minimize info
|
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
|
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>`.
|
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
|
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
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
|
|
||||||
This fix style is part of the SHOCK package. It is only enabled if
|
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
|
The boundary on which atoms are added with append/atoms must be
|
||||||
shrink/minimum. The opposite boundary may be any boundary type other
|
shrink/minimum. The opposite boundary may be any boundary type other
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix atc command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix <fixID> <group> atc <type> <parameter_file>
|
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
|
an on-the-fly estimation of continuum fields. The coupled versions of
|
||||||
this fix do Verlet integration and the post-processing does not. After
|
this fix do Verlet integration and the post-processing does not. After
|
||||||
instantiating this fix, several other fix_modify commands will be
|
instantiating this fix, several other fix_modify commands will be
|
||||||
needed to set up the problem, e.g. define the finite element mesh and
|
needed to set up the problem (i.e., define the finite element mesh and
|
||||||
prescribe initial and boundary conditions.
|
prescribe initial and boundary conditions).
|
||||||
|
|
||||||
.. image:: JPG/atc_nanotube.jpg
|
.. image:: JPG/atc_nanotube.jpg
|
||||||
:align: center
|
:align: center
|
||||||
@ -135,7 +135,7 @@ fix are listed below.
|
|||||||
|
|
||||||
This fix computes a global scalar which can be accessed by various
|
This fix computes a global scalar which can be accessed by various
|
||||||
:doc:`output commands <Howto_output>`. The scalar is the energy
|
: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
|
No parameter of this fix can be used with the
|
||||||
*start/stop* keywords of the :doc:`run <run>` command. This fix is not
|
*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
|
Thermal and two_temperature (coupling) types use a Verlet
|
||||||
time-integration algorithm. The hardy type does not contain its own
|
time-integration algorithm. The hardy type does not contain its own
|
||||||
time-integrator and must be used with a separate fix that does contain
|
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 coupling is restricted to thermal physics
|
||||||
* the FE computations are done in serial on each processor.
|
* 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
|
After specifying this fix in your input script, several
|
||||||
:doc:`fix_modify AtC <fix_modify>` commands are used to setup the
|
:doc:`fix_modify AtC <fix_modify>` commands are used to setup the
|
||||||
problem, e.g. define the finite element mesh and prescribe initial and
|
problem (e.g., define the finite element mesh and prescribe initial and
|
||||||
boundary conditions. Each of these options has its own doc page.
|
boundary conditions). Each of these options has its own doc page.
|
||||||
|
|
||||||
*fix_modify* commands for setup:
|
*fix_modify* commands for setup:
|
||||||
|
|
||||||
@ -311,6 +311,6 @@ and Computation (2011), 7:1736.
|
|||||||
as a field variable from molecular dynamics simulations." Journal of
|
as a field variable from molecular dynamics simulations." Journal of
|
||||||
Chemical Physics (2013), 139:054115.
|
Chemical Physics (2013), 139:054115.
|
||||||
|
|
||||||
Please refer to the standard finite element (FE) texts, e.g. T.J.R
|
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
|
Hughes, *The Finite Element Method,* Dover 2003) for the basics of FE
|
||||||
simulation.
|
simulations.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix atom/swap command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID atom/swap N X seed T keyword values ...
|
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
|
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.
|
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
|
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
|
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
|
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.
|
nothing would happen.
|
||||||
|
|
||||||
All atoms in the simulation domain can be moved using regular time
|
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
|
in a hybrid MC+MD simulation. A smaller-than-usual timestep size may
|
||||||
be needed when running such a hybrid simulation, especially if the
|
be needed when running such a hybrid simulation, especially if the
|
||||||
swapped atoms are not well equilibrated.
|
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
|
that when using *semi-grand*, atoms in the fix group whose type is not
|
||||||
listed in the *types* keyword are ineligible for attempted
|
listed in the *types* keyword are ineligible for attempted
|
||||||
conversion. An attempt is made to switch the selected atom (if
|
conversion. An attempt is made to switch the selected atom (if
|
||||||
eligible) to one of the other listed types with equal
|
eligible) to one of the other listed types with equal probability.
|
||||||
probability. Acceptance of each attempt depends upon the Metropolis
|
Acceptance of each attempt depends upon the Metropolis criterion.
|
||||||
criterion.
|
|
||||||
|
|
||||||
The *mu* keyword allows users to specify chemical potentials. This is
|
The *mu* keyword allows users to specify chemical potentials. This is
|
||||||
required and allowed only when using *semi-grand*\ . All chemical
|
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
|
This command may optionally use the *region* keyword to define swap
|
||||||
volume. The specified region must have been previously defined with a
|
volume. The specified region must have been previously defined with a
|
||||||
:doc:`region <region>` command. It must be defined with side = *in*\
|
:doc:`region <region>` command. It must be defined with side = *in*\ .
|
||||||
. Swap attempts occur only between atoms that are both within the
|
Swap attempts occur only between atoms that are both within the
|
||||||
specified region. Swaps are not otherwise attempted.
|
specified region. Swaps are not otherwise attempted.
|
||||||
|
|
||||||
You should ensure you do not swap atoms belonging to a molecule, or
|
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
|
proposed swaps, so even complicated potential energy calculations are
|
||||||
OK, including the following:
|
OK, including the following:
|
||||||
|
|
||||||
* long-range electrostatics (kspace)
|
* long-range electrostatics (:math:`k`-space)
|
||||||
* many body pair styles
|
* many body pair styles
|
||||||
* hybrid pair styles
|
* hybrid pair styles
|
||||||
* eam 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
|
<fix_temp_berendsen>`, :doc:`temp/rescale <fix_temp_rescale>`, and
|
||||||
:doc:`wall fixes <fix_wall>`. For that energy to be included in the
|
:doc:`wall fixes <fix_wall>`. For that energy to be included in the
|
||||||
total potential energy of the system (the quantity used when
|
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
|
<fix_modify>` *energy* option for that fix. The doc pages for
|
||||||
individual :doc:`fix <fix>` commands specify if this should be done.
|
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
|
This fix writes the state of the fix to :doc:`binary restart files
|
||||||
<restart>`. This includes information about the random number
|
<restart>`. This includes information about the random number
|
||||||
generator seed, the next timestep for MC exchanges, the number of
|
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
|
<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
|
input script that reads a restart file, so that the operation of the
|
||||||
fix continues in an uninterrupted fashion.
|
fix continues in an uninterrupted fashion.
|
||||||
@ -168,7 +167,7 @@ the following global cumulative quantities:
|
|||||||
* 1 = swap attempts
|
* 1 = swap attempts
|
||||||
* 2 = swap accepts
|
* 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
|
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
|
the :doc:`run <run>` command. This fix is not invoked during
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix ave/atom command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ave/atom Nevery Nrepeat Nfreq value1 value2 ...
|
fix ID group-ID ave/atom Nevery Nrepeat Nfreq value1 value2 ...
|
||||||
|
|
||||||
@ -15,8 +15,8 @@ Syntax
|
|||||||
* Nevery = use input values every this many timesteps
|
* Nevery = use input values every this many timesteps
|
||||||
* Nrepeat = # of times to use input values for calculating averages
|
* Nrepeat = # of times to use input values for calculating averages
|
||||||
* Nfreq = calculate averages every this many timesteps
|
* Nfreq = calculate averages every this many timesteps
|
||||||
one or more input values can be listed
|
* 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
|
* value = *x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, c_ID, c_ID[i], f_ID, f_ID[i], v_name
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -41,7 +41,9 @@ Description
|
|||||||
|
|
||||||
Use one or more per-atom vectors as inputs every few timesteps, and
|
Use one or more per-atom vectors as inputs every few timesteps, and
|
||||||
average them atom by atom over longer timescales. The resulting
|
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
|
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
|
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
|
:doc:`variable <variable>`. In the latter cases, the compute, fix, or
|
||||||
variable must produce a per-atom vector, not a global quantity 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
|
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.
|
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
|
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
|
be specified using a wildcard asterisk with the index to effectively
|
||||||
specify multiple values. This takes the form "\*" or "\*n" or "n\*" or
|
specify multiple values. This takes the form "\*" or "\*n" or "m\*" or
|
||||||
"m\*n". If N = the size of the vector (for *mode* = scalar) or the
|
"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
|
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 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).
|
means all indices from m to n (inclusive).
|
||||||
|
|
||||||
Using a wildcard is the same as if the individual columns of the array
|
Using a wildcard is the same as if the individual columns of the array
|
||||||
had been listed one by one. E.g. these 2 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>`
|
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
|
.. 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
|
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||||
timesteps the input values will be used in order to contribute to the
|
arguments specify on what timesteps the input values will be used in order to
|
||||||
average. The final averaged quantities are generated on timesteps
|
contribute to the average. The final averaged quantities are generated on
|
||||||
that are a multiple of *Nfreq*\ . The average is over *Nrepeat*
|
timesteps that are a multiple of :math:`N_\text{freq}`\ . The average is over
|
||||||
quantities, computed in the preceding portion of the simulation every
|
:math:`N_\text{repeat}` quantities, computed in the preceding portion of the
|
||||||
*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and
|
simulation every :math:`N_\text{every}` timesteps. :math:`N_\text{freq}` must
|
||||||
*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
be a multiple of :math:`N_\text{every}` and :math:`N_\text{every}` must be
|
||||||
contributing to the average value cannot overlap,
|
non-zero even if :math:`N_\text{repeat}` is 1. Also, the timesteps
|
||||||
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
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
|
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||||
timesteps 90,92,94,96,98,100 will be used to compute the final average
|
:math:`N_\text{freq}=100`, then values on timesteps 90, 92, 94, 96, 98, and 100
|
||||||
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
will be used to compute the final average on time step 100. Similarly for
|
||||||
timestep 200, etc.
|
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
|
The atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and
|
||||||
self-explanatory. Note that other atom attributes can be used as
|
*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
|
inputs to this fix by using the
|
||||||
an input value from that compute.
|
:doc:`compute property/atom <compute_property_atom>` command and then
|
||||||
|
specifying an input value from that compute.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The x,y,z attributes are values that are re-wrapped inside the
|
The *x*\ , *y*\ , and *z* attributes are values that are re-wrapped inside
|
||||||
periodic box whenever an atom crosses a periodic boundary. Thus if
|
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
|
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
|
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,
|
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
|
which can be provided by the
|
||||||
attributes.
|
: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
|
previously defined in the input script. If no bracketed term is
|
||||||
appended, the per-atom vector calculated by the compute is used. If a
|
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
|
bracketed term containing an index :math:`I` is appended, the
|
||||||
the per-atom array calculated by the compute is used. Users can also
|
:math:`I^\text{th}` column of the per-atom array calculated by the compute is
|
||||||
write code for their own compute styles and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how I can
|
used. Users can also write code for their own compute styles and
|
||||||
be specified with a wildcard asterisk to effectively specify multiple
|
:doc:`add them to LAMMPS <Modify>`. See the discussion above for how
|
||||||
values.
|
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||||
|
multiple values.
|
||||||
|
|
||||||
If a value begins with "f\_", a fix ID must follow which has been
|
If a value begins with "f\_," a fix ID must follow which has been previously
|
||||||
previously defined in the input script. If no bracketed term is
|
defined in the input script. If no bracketed term is appended, the per-atom
|
||||||
appended, the per-atom vector calculated by the fix is used. If a
|
vector calculated by the fix is used. If a bracketed term containing an index
|
||||||
bracketed term containing an index I is appended, the Ith column of
|
:math:`I` is appended, the :math:`I^\text{th}` column of the per-atom array
|
||||||
the per-atom array calculated by the fix is used. Note that some
|
calculated by the fix is used. Note that some fixes only produce their values
|
||||||
fixes only produce their values on certain timesteps, which must be
|
on certain timesteps, which must be compatible with :math:`N_\text{every}`,
|
||||||
compatible with *Nevery*, else an error will result. Users can also
|
else an error will result. Users can also write code for their own fix styles
|
||||||
write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how I can be
|
and :doc:`add them to LAMMPS <Modify>`. See the discussion above for how
|
||||||
specified with a wildcard asterisk to effectively specify multiple
|
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||||
values.
|
multiple values.
|
||||||
|
|
||||||
If a value begins with "v\_", a variable name must follow which has
|
If a value begins with "v\_," a variable name must follow which has
|
||||||
been previously defined in the input script as an :doc:`atom-style variable <variable>` Variables of style *atom* can reference
|
been previously defined in the input script as an
|
||||||
thermodynamic keywords, or invoke other computes, fixes, or variables
|
: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
|
when they are evaluated, so this is a very general means of generating
|
||||||
per-atom quantities to time average.
|
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
|
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
|
||||||
are relevant to this fix. No global scalar or vector quantities are
|
:doc:`binary restart files <restart>`. None of the
|
||||||
stored by this fix for access by various :doc:`output commands <Howto_output>`.
|
: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
|
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
|
various :doc:`output commands <Howto_output>`. A vector is produced if
|
||||||
only a single quantity is averaged by this fix. If two or more
|
only a single quantity is averaged by this fix. If two or more
|
||||||
quantities are averaged, then an array of values is produced. The
|
quantities are averaged, then an array of values is produced. The
|
||||||
per-atom values can only be accessed on timesteps that are multiples
|
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
|
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
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -173,7 +184,8 @@ Restrictions
|
|||||||
Related commands
|
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>`,
|
:doc:`variable <variable>`,
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix ave/chunk command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ave/chunk Nevery Nrepeat Nfreq chunkID value1 value2 ... keyword args ...
|
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
|
* Nfreq = calculate averages every this many timesteps
|
||||||
* chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command
|
* chunkID = ID of :doc:`compute chunk/atom <compute_chunk_atom>` command
|
||||||
* one or more input values can be listed
|
* 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::
|
.. parsed-literal::
|
||||||
|
|
||||||
@ -143,19 +143,19 @@ produce global quantities.
|
|||||||
|
|
||||||
Note that for values from a compute or fix, the bracketed index I can
|
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
|
be specified using a wildcard asterisk with the index to effectively
|
||||||
specify multiple values. This takes the form "\*" or "\*n" or "n\*" or
|
specify multiple values. This takes the form "\*" or "\*n" or "m\*" or
|
||||||
"m\*n". If N = the size of the vector (for *mode* = scalar) or the
|
"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
|
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 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).
|
means all indices from m to n (inclusive).
|
||||||
|
|
||||||
Using a wildcard is the same as if the individual columns of the array
|
Using a wildcard is the same as if the individual columns of the array
|
||||||
had been listed one by one. E.g. these 2 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
|
equivalent, since the :doc:`compute property/atom
|
||||||
<compute_property_atom>` command creates, in this case, a per-atom
|
<compute_property_atom>` command creates, in this case, a per-atom
|
||||||
array with 3 columns:
|
array with three columns:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -165,105 +165,109 @@ array with 3 columns:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
This fix works by creating an array of size *Nchunk* by Nvalues
|
This fix works by creating an array of size
|
||||||
on each processor. *Nchunk* is the number of chunks which is defined
|
:math:`N_\text{chunk} \times N_\text{values}` on each processor.
|
||||||
by the :doc:`compute chunk/atom <compute_chunk_atom>` command.
|
:math:`N_\text{chunk}` is the number of chunks, which is defined by the
|
||||||
Nvalues is the number of input values specified. Each processor loops
|
:doc:`compute chunk/atom <compute_chunk_atom>` command.
|
||||||
over its atoms, tallying its values to the appropriate chunk. Then
|
:math:`N_\text{values}` is the number of input values specified.
|
||||||
the entire array is summed across all processors. This means that
|
Each processor loops over its atoms, tallying its values to the appropriate
|
||||||
using a large number of chunks will incur an overhead in memory and
|
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
|
computational cost (summing across processors), so be careful to
|
||||||
define a reasonable number of chunks.
|
define a reasonable number of chunks.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||||
timesteps the input values will be accessed and contribute to the
|
arguments specify on what time steps the input values will be accessed and
|
||||||
average. The final averaged quantities are generated on timesteps
|
contribute to the average. The final averaged quantities are generated on time
|
||||||
that are a multiples of *Nfreq*\ . The average is over *Nrepeat*
|
steps that are a multiples of :math:`N_\text{freq}`\ . The average is over
|
||||||
quantities, computed in the preceding portion of the simulation every
|
:math:`N_\text{repeat}` quantities, computed in the preceding portion of the
|
||||||
*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and
|
simulation every :math:`N_\text{every}` time steps. :math:`N_\text{freq}`
|
||||||
*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
must be a multiple of :math:`N_\text{every}` and :math:`N_\text{every}` must be
|
||||||
contributing to the average value cannot overlap, i.e. Nrepeat\*Nevery
|
non-zero even if :math:`N_\text{repeat} = 1`\ . Also, the time steps
|
||||||
can not exceed Nfreq.
|
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
|
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||||
timesteps 90,92,94,96,98,100 will be used to compute the final average
|
:math:`N_\text{freq}=100`, then values on
|
||||||
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
time steps 90, 92, 94, 96, 98, 100 will be used to compute the final average
|
||||||
timestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time
|
on time step 100. Similarly for time steps 190, 192, 194, 196, 198, 200 on
|
||||||
averaging is done; values are simply generated on timesteps
|
time step 200, etc. If :math:`N_\text{repeat}=1` and
|
||||||
100,200,etc.
|
: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.
|
Each input value can also be averaged over the atoms in each chunk.
|
||||||
The way the averaging is done across the *Nrepeat* timesteps to
|
The way the averaging is done across the :math:`N_\text{repeat}` time steps to
|
||||||
produce output on the *Nfreq* timesteps, and across multiple *Nfreq*
|
produce output on the :math:`N_\text{freq}` time steps, and across multiple
|
||||||
outputs, is determined by the *norm* and *ave* keyword settings, as
|
:math:`N_\text{freq}` outputs, is determined by the *norm* and *ave* keyword
|
||||||
discussed below.
|
settings, as discussed below.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
To perform per-chunk averaging within a *Nfreq* time window, the
|
To perform per-chunk averaging within a :math:`N_\text{freq}` time window,
|
||||||
number of chunks *Nchunk* defined by the :doc:`compute chunk/atom
|
the number of chunks :math:`N_\text{chunk}` defined by the
|
||||||
<compute_chunk_atom>` command must remain constant. If the *ave*
|
:doc:`compute chunk/atom <compute_chunk_atom>` command must remain
|
||||||
keyword is set to *running* or *window* then *Nchunk* must remain
|
constant. If the *ave* keyword is set to *running* or *window* then
|
||||||
constant for the duration of the simulation. This fix forces the
|
:math:`N_\text{chunk}` must remain constant for the duration of the
|
||||||
chunk/atom compute specified by chunkID to hold *Nchunk* constant
|
simulation. This fix forces the chunk/atom compute specified by chunkID to
|
||||||
for the appropriate time windows, by not allowing it to
|
hold :math:`N_\text{chunk}` constant for the appropriate time windows,
|
||||||
re-calculate *Nchunk*, which can also affect how it assigns chunk
|
by not allowing it to re-calculate :math:`N_\text{chunk}`, which can also
|
||||||
IDs to atoms. This is particularly important to understand if the
|
affect how it assigns chunk IDs to atoms. This is particularly important to
|
||||||
chunks defined by the :doc:`compute chunk/atom
|
understand if the chunks defined by the :doc:`compute chunk/atom
|
||||||
<compute_chunk_atom>` command are spatial bins. If its *units*
|
<compute_chunk_atom>` command are spatial bins. If its *units*
|
||||||
keyword is set to *box* or *lattice*, then the number of bins
|
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
|
:math:`N_\text{chunk}` and size of each bin will be fixed over the
|
||||||
window, which can affect which atoms are discarded if the
|
:math:`N_\text{freq}` time window, which can affect which atoms are
|
||||||
simulation box size changes. If its *units* keyword is set to
|
discarded if the simulation box size changes. If its *units* keyword is set
|
||||||
*reduced*, then the number of bins *Nchunk* will still be fixed,
|
to *reduced*, then the number of bins :math:`N_\text{chunk}` will still be
|
||||||
but the size of each bin can vary at each timestep if the
|
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.
|
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
|
self-explanatory. As noted above, any other atom attributes can be
|
||||||
used as input values to this fix by using the :doc:`compute
|
used as input values to this fix by using the :doc:`compute
|
||||||
property/atom <compute_property_atom>` command and then specifying an
|
property/atom <compute_property_atom>` command and then specifying an
|
||||||
input value from that compute.
|
input value from that compute.
|
||||||
|
|
||||||
The *density/number* value means the number density is computed for
|
The *density/number* value means the number density is computed for
|
||||||
each chunk, i.e. number/volume. The *density/mass* value means the
|
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
|
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
|
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
|
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
|
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.
|
entire simulation box.
|
||||||
|
|
||||||
The *temp* value means the temperature is computed for each chunk, by
|
The *temp* value means the temperature is computed for each chunk,
|
||||||
the formula
|
by the formula
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
\text{KE} = \frac{\text{DOF}}{2} k_B T,
|
\text{KE} = \frac{\text{DOF}}{2} k_B T,
|
||||||
|
|
||||||
where KE = total kinetic energy of the chunk of atoms (sum of
|
where KE is the 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
|
: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` = Boltzmann constant, and
|
for all atoms in the chunk, :math:`k_B` is the Boltzmann constant, and
|
||||||
:math:`T` = temperature.
|
:math:`T` is the absolute temperature.
|
||||||
|
|
||||||
The DOF is calculated as N\*adof + cdof, where N = number of atoms in
|
The DOF is calculated as :math:`N`\ \*adof + cdof, where :math:`N` is the
|
||||||
the chunk, adof = degrees of freedom per atom, and cdof = degrees of
|
number of atoms in the chunk, adof is the number of degrees of freedom per
|
||||||
freedom per chunk. By default adof = 2 or 3 = dimensionality of
|
atom, and cdof is the number of degrees of freedom per chunk. By default,
|
||||||
system, as set via the :doc:`dimension <dimension>` command, and cdof =
|
adof = 2 or 3 = dimensionality of system,
|
||||||
0.0. This gives the usual formula for temperature.
|
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
|
Note that currently this temperature only includes translational
|
||||||
degrees of freedom for each atom. No rotational degrees of freedom
|
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,
|
are subtracted for any velocity bias or constraints that are applied,
|
||||||
such as :doc:`compute temp/partial <compute_temp_partial>`, or
|
such as :doc:`compute temp/partial <compute_temp_partial>`,
|
||||||
:doc:`fix shake <fix_shake>` or :doc:`fix rigid <fix_rigid>`. This is
|
: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
|
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
|
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,
|
chunk, and hence the concept is somewhat ill-defined. In some cases,
|
||||||
you can use the *adof* and *cdof* keywords to adjust the calculated
|
you can use the *adof* and *cdof* keywords to adjust the calculated
|
||||||
@ -279,32 +283,32 @@ Note that the per-chunk temperature calculated by this fix and the
|
|||||||
different. The compute calculates the temperature for each chunk for
|
different. The compute calculates the temperature for each chunk for
|
||||||
a single snapshot. This fix can do that but can also time average
|
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
|
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
|
together as one set of atoms to calculate their temperature. The
|
||||||
compute allows the center-of-mass velocity of each chunk to be
|
compute allows the center-of-mass velocity of each chunk to be
|
||||||
subtracted before calculating the temperature; this fix does not.
|
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
|
previously defined in the input script. If no bracketed integer is
|
||||||
appended, the per-atom vector calculated by the compute is used. If a
|
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
|
bracketed integer is appended, the Ith column of the per-atom array
|
||||||
calculated by the compute is used. Users can also write code for
|
calculated by the compute is used. Users can also write code for
|
||||||
their own compute styles and :doc:`add them to LAMMPS <Modify>`. See
|
their own compute styles and :doc:`add them to LAMMPS <Modify>`.
|
||||||
the discussion above for how I can be specified with a wildcard
|
See the discussion above for how I can be specified with a wildcard
|
||||||
asterisk to effectively specify multiple values.
|
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
|
previously defined in the input script. If no bracketed integer is
|
||||||
appended, the per-atom vector calculated by the fix is used. If a
|
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
|
bracketed integer is appended, the Ith column of the per-atom array
|
||||||
calculated by the fix is used. Note that some fixes only produce
|
calculated by the fix is used. Note that some fixes only produce
|
||||||
their values on certain timesteps, which must be compatible with
|
their values on certain time steps, which must be compatible with
|
||||||
*Nevery*, else an error results. Users can also write code for their
|
:math:`N_\text{every}`, else an error results. Users can also write code for
|
||||||
own fix styles and :doc:`add them to LAMMPS <Modify>`. See the
|
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
|
discussion above for how I can be specified with a wildcard asterisk
|
||||||
to effectively specify multiple values.
|
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
|
been previously defined in the input script. Variables of style
|
||||||
*atom* can reference thermodynamic keywords and various per-atom
|
*atom* can reference thermodynamic keywords and various per-atom
|
||||||
attributes, or invoke other computes, fixes, or variables when they
|
attributes, or invoke other computes, fixes, or variables when they
|
||||||
@ -317,107 +321,107 @@ Additional optional keywords also affect the operation of this fix
|
|||||||
and its outputs.
|
and its outputs.
|
||||||
|
|
||||||
The *norm* keyword affects how averaging is done for the per-chunk
|
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
|
It the *norm* setting is *all*, which is the default, a chunk value is summed
|
||||||
summed over all atoms in all *Nrepeat* samples, as is the count of
|
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
|
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
|
:math:`N_\text{freq}` time steps is Total-sum / Total-count. In other words it
|
||||||
average over atoms across the entire *Nfreq* timescale. For the
|
is an average over atoms across the entire :math:`N_\text{freq}` timescale.
|
||||||
*density/number* and *density/mass* values, the volume (bin volume or
|
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
|
system volume) used in the final normalization will be the volume at
|
||||||
the final *Nfreq* timestep. For the *temp* values, degrees of freedom
|
the final :math:`N_\text{freq}` time step. For the *temp* values, degrees of
|
||||||
and kinetic energy are summed separately across the entire *Nfreq*
|
freedom and kinetic energy are summed separately across the entire
|
||||||
timescale, and the output value is calculated by dividing those two
|
:math:`N_\text{freq}` timescale, and the output value is calculated by dividing
|
||||||
sums.
|
those two sums.
|
||||||
|
|
||||||
If the *norm* setting is *sample*, the chunk value is summed over
|
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"
|
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
|
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
|
output value for the chunk on the :math:`N_\text{freq}` time steps is the
|
||||||
the *Nrepeat* "average sample values", i.e. the sum of *Nrepeat*
|
average of the :math:`N_\text{repeat}` "average sample values" (i.e., the sum
|
||||||
"average sample values" divided by *Nrepeat*\ . In other words it is an
|
of :math:`N_\text{repeat}` "average sample values" divided by
|
||||||
average of an average. For the *density/number* and *density/mass*
|
:math:`N_\text{repeat}`\ ). In other words, it is an average of an average.
|
||||||
values, the volume (bin volume or system volume) used in the
|
For the *density/number* and *density/mass* values, the volume (bin volume or
|
||||||
per-sample normalization will be the current volume at each sampling
|
system volume) used in the per-sample normalization will be the current volume
|
||||||
step.
|
at each sampling step.
|
||||||
|
|
||||||
If the *norm* setting is *none*, a similar computation as for the
|
If the *norm* setting is *none*, a similar computation as for the
|
||||||
*sample* setting is done, except the individual "average sample
|
*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 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 number of atoms in the sample. The output value for the chunk on
|
||||||
the *Nfreq* timesteps is the average of the *Nrepeat* "summed sample
|
the :math:`N_\text{freq}` timesteps is the average of the
|
||||||
values", i.e. the sum of *Nrepeat* "summed sample values" divided by
|
:math:`N_\text{repeat}` "summed sample values" (i.e., the sum of
|
||||||
*Nrepeat*\ . For the *density/number* and *density/mass* values, the
|
: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
|
volume (bin volume or system volume) used in the per-sample sum
|
||||||
normalization will be the current volume at each sampling step.
|
normalization will be the current volume at each sampling step.
|
||||||
|
|
||||||
The *ave* keyword determines how the per-chunk values produced every
|
The *ave* keyword determines how the per-chunk values produced every
|
||||||
*Nfreq* steps are averaged with values produced on previous steps that
|
:math:`N_\text{freq}` steps are averaged with values produced on previous steps
|
||||||
were multiples of *Nfreq*, before they are accessed by another output
|
that were multiples of :math:`N_\text{freq}`, before they are accessed by
|
||||||
command or written to a file.
|
another output command or written to a file.
|
||||||
|
|
||||||
If the *ave* setting is *one*, which is the default, then the chunk
|
If the *ave* setting is *one*, which is the default, then the chunk
|
||||||
values produced on timesteps that are multiples of *Nfreq* are
|
values produced on timesteps that are multiples of :math:`N_\text{freq}` are
|
||||||
independent of each other; they are output as-is without further
|
independent of each other; they are output as-is without further averaging.
|
||||||
averaging.
|
|
||||||
|
|
||||||
If the *ave* setting is *running*, then the chunk values produced on
|
If the *ave* setting is *running*, then the chunk values produced on
|
||||||
timesteps that are multiples of *Nfreq* are summed and averaged in a
|
timesteps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||||
cumulative sense before being output. Each output chunk value is thus
|
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
|
the average of the chunk value produced on that timestep with all
|
||||||
preceding values for the same chunk. This running average begins when
|
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 fix is defined; it can only be restarted by deleting the fix via
|
||||||
the :doc:`unfix <unfix>` command, or re-defining the fix by
|
the :doc:`unfix <unfix>` command, or re-defining the fix by re-specifying it.
|
||||||
re-specifying it.
|
|
||||||
|
|
||||||
If the *ave* setting is *window*, then the chunk values produced on
|
If the *ave* setting is *window*, then the chunk values produced on
|
||||||
timesteps that are multiples of *Nfreq* are summed and averaged within
|
timesteps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||||
a moving "window" of time, so that the last M values for the same
|
within a moving "window" of time, so that the last :math:`M` values for the
|
||||||
chunk are used to produce the output. E.g. if M = 3 and Nfreq = 1000,
|
same chunk are used to produce the output. For example, if :math:`M = 3` and
|
||||||
then the output on step 10000 will be the average of the individual
|
:math:`N_\text{freq} = 1000`, then the output on step 10000 will be the average
|
||||||
chunk values on steps 8000,9000,10000. Outputs on early steps will
|
of the individual chunk values on time steps 8000, 9000, and 10000. Outputs on
|
||||||
average over less than M values if they are not available.
|
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
|
The *bias* keyword specifies the ID of a temperature compute that
|
||||||
removes a "bias" velocity from each atom, specified as *bias-ID*\ . It
|
removes a "bias" velocity from each atom, specified as *bias-ID*\ .
|
||||||
is only used when the *temp* value is calculated, to compute the
|
It is only used when the *temp* value is calculated, to compute the
|
||||||
thermal temperature of each chunk after the translational kinetic
|
thermal temperature of each chunk after the translational kinetic
|
||||||
energy components have been altered in a prescribed way, e.g. to
|
energy components have been altered in a prescribed way (e.g., to
|
||||||
remove a flow velocity profile. See the doc pages for individual
|
remove a flow velocity profile). See the doc pages for individual
|
||||||
computes that calculate a temperature to see which ones implement a
|
computes that calculate a temperature to see which ones implement a bias.
|
||||||
bias.
|
|
||||||
|
|
||||||
The *adof* and *cdof* keywords define the values used in the degree of
|
The *adof* and *cdof* keywords define the values used in the degree of
|
||||||
freedom (DOF) formula described above for temperature calculation
|
freedom (DOF) formula described above for temperature calculation
|
||||||
for each chunk. They are only used when the *temp* value is
|
for each chunk. They are only used when the *temp* value is
|
||||||
calculated. They can be used to calculate a more appropriate
|
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
|
If spatially binned chunks contain some number of water molecules and
|
||||||
:doc:`fix shake <fix_shake>` is used to make each molecule rigid, then
|
: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
|
you could calculate a temperature with six degrees of freedom (DOF) (three
|
||||||
translational, 3 rotational) per molecule by setting *adof* to 2.0.
|
translational, three rotational) per molecule by setting *adof* to 2.0.
|
||||||
|
|
||||||
If :doc:`compute temp/partial <compute_temp_partial>` is used with the
|
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.
|
to the temperature, then *adof* = 1.0 would be appropriate.
|
||||||
|
|
||||||
If each chunk consists of a large molecule, with some number of its
|
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
|
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
|
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
|
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.
|
molecule.
|
||||||
|
|
||||||
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
The *file* keyword allows a filename to be specified. Every
|
||||||
timesteps, a section of chunk info will be written to a text file in
|
:math:`N_\text{freq}` timesteps, a section of chunk info will be written to a
|
||||||
the following format. A line with the timestep and number of chunks
|
text file in the following format. A line with the timestep and number of
|
||||||
is written. Then one line per chunk is written, containing the chunk
|
chunks is written. Then one line per chunk is written, containing the chunk
|
||||||
ID (1-Nchunk), an optional original ID value, optional coordinate
|
ID :math:`(1-N_\text{chunk}),` an optional original ID value, optional
|
||||||
values for chunks that represent spatial bins, the number of atoms in
|
coordinate values for chunks that represent spatial bins, the number of atoms
|
||||||
the chunk, and one or more calculated values. More explanation of the
|
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
|
optional values is given below. The number of values in each line
|
||||||
corresponds to the number of values specified in the fix ave/chunk
|
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
|
command. The number of atoms and the value(s) are summed or average
|
||||||
@ -430,10 +434,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
|
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
|
printed to a file via the *file* keyword. Note that all values are
|
||||||
floating point quantities. The default format is %g. You can specify
|
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 *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
|
file, assuming the *file* keyword was used. LAMMPS uses default
|
||||||
values for each of these, so they do not need to be specified.
|
values for each of these, so they do not need to be specified.
|
||||||
|
|
||||||
@ -448,34 +452,33 @@ By default, these header lines are as follows:
|
|||||||
In the first line, ID and name are replaced with the fix-ID and group
|
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
|
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
|
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
|
The words in parenthesis only appear with corresponding columns if the
|
||||||
chunk style specified for the :doc:`compute chunk/atom
|
chunk style specified for the :doc:`compute chunk/atom
|
||||||
<compute_chunk_atom>` command supports them. The OrigID column is
|
<compute_chunk_atom>` command supports them. The OrigID column is
|
||||||
only used if the *compress* keyword was set to *yes* for the
|
only used if the *compress* keyword was set to *yes* for the
|
||||||
:doc:`compute chunk/atom <compute_chunk_atom>` command. This means
|
: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 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
|
compressed chunk ID of 3 may correspond to an original chunk ID or
|
||||||
molecule ID of
|
molecule ID of 415. The OrigID column will list 415 for the third chunk.
|
||||||
415. The OrigID column will list 415 for the third chunk.
|
|
||||||
|
|
||||||
The CoordN columns only appear if a *binning* style was used in the
|
The CoordN columns only appear if a *binning* style was used in the
|
||||||
:doc:`compute chunk/atom <compute_chunk_atom>` command. For *bin/1d*,
|
:doc:`compute chunk/atom <compute_chunk_atom>` command. For *bin/1d*,
|
||||||
*bin/2d*, and *bin/3d* styles the column values are the center point
|
*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
|
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*\
|
*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
|
For *bin/sphere*, just Coord1 is used, and it is the radial
|
||||||
coordinate. For *bin/cylinder*, Coord1 and Coord2 are used. Coord1
|
coordinate. For *bin/cylinder*, Coord1 and Coord2 are used. Coord1
|
||||||
is the radial coordinate (away from the cylinder axis), and coord2 is
|
is the radial coordinate (away from the cylinder axis), and coord2 is
|
||||||
the coordinate along the cylinder axis.
|
the coordinate along the cylinder axis.
|
||||||
|
|
||||||
Note that if the value of the *units* keyword used in the
|
Note that if the value of the *units* keyword used in the
|
||||||
:doc:`compute chunk/atom command <compute_chunk_atom>` is *box* or
|
:doc:`compute chunk/atom command <compute_chunk_atom>` is *box* or
|
||||||
*lattice*, the coordinate values will be in distance :doc:`units
|
*lattice*, the coordinate values will be in distance :doc:`units <units>`.
|
||||||
<units>`. If the value of the *units* keyword is *reduced*, the
|
If the value of the *units* keyword is *reduced*, the
|
||||||
coordinate values will be in unitless reduced units (0-1). This is
|
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*
|
not true for the Coord1 value of style *bin/sphere* or *bin/cylinder*
|
||||||
which both represent radial dimensions. Those values are always in
|
which both represent radial dimensions. Those values are always in
|
||||||
distance :doc:`units <units>`.
|
distance :doc:`units <units>`.
|
||||||
@ -491,20 +494,21 @@ relevant to this fix.
|
|||||||
|
|
||||||
This fix computes a global array of values which can be accessed by
|
This fix computes a global array of values which can be accessed by
|
||||||
various :doc:`output commands <Howto_output>`. The values can only be
|
various :doc:`output commands <Howto_output>`. The values can only be
|
||||||
accessed on timesteps that are multiples of *Nfreq* since that is when
|
accessed on timesteps that are multiples of :math:`N_\text{freq}`, since that
|
||||||
averaging is performed. The global array has # of rows = the number
|
is when averaging is performed. The global array has # of rows = the number
|
||||||
of chunks *Nchunk* as calculated by the specified :doc:`compute
|
of chunks :math:`N_\text{chunk}`, as calculated by the specified
|
||||||
chunk/atom <compute_chunk_atom>` command. The # of columns =
|
:doc:`compute chunk/atom <compute_chunk_atom>` command. The # of columns is
|
||||||
M+1+Nvalues, where M = 1 to 4, depending on whether the optional
|
: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
|
columns for OrigID and CoordN are used, as explained above. Following
|
||||||
the optional columns, the next column contains the count of atoms in
|
the optional columns, the next column contains the count of atoms in
|
||||||
the chunk, and the remaining columns are the Nvalue quantities. When
|
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
|
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
|
the number of chunks can vary as a simulation runs depending on how
|
||||||
that value is computed by the compute chunk/atom command.
|
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
|
since they are typically already normalized by the count of atoms in
|
||||||
each chunk.
|
each chunk.
|
||||||
|
|
||||||
@ -519,7 +523,8 @@ Restrictions
|
|||||||
Related commands
|
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>`
|
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix ave/correlate command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ave/correlate Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
|
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,
|
Use one or more global scalar values as inputs every few timesteps,
|
||||||
calculate time correlations between them at varying time intervals,
|
calculate time correlations between them at varying time intervals,
|
||||||
and average the correlation data over longer timescales. The
|
and average the correlation data over longer timescales. The resulting
|
||||||
resulting correlation values can be time integrated by
|
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:`variables <variable>` or used by other
|
||||||
:doc:`fix ave/correlate/long <fix_ave_correlate_long>` command for an
|
: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
|
alternate method for computing correlation functions efficiently over
|
||||||
very long time windows.
|
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
|
:doc:`variable <variable>`. In each case, the compute, fix, or variable
|
||||||
must produce a global quantity, not a per-atom or local quantity. If
|
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
|
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
|
: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
|
The input values must be all scalars. What kinds of
|
||||||
correlations between input values are calculated is determined by the
|
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
|
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
|
index I can be specified using a wildcard asterisk with the index to
|
||||||
effectively specify multiple values. This takes the form "\*" or
|
effectively specify multiple values. This takes the form "\*" or
|
||||||
"\*n" or "n\*" or "m\*n". If N = the size of the vector, then an
|
"\*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 N. A
|
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
|
leading asterisk means all indices from 1 to n (inclusive). A
|
||||||
trailing asterisk means all indices from n to N (inclusive). A middle
|
trailing asterisk means all indices from m to :math:`N` (inclusive).
|
||||||
asterisk means all indices from m to n (inclusive).
|
A middle asterisk means all indices from m to n (inclusive).
|
||||||
|
|
||||||
Using a wildcard is the same as if the individual elements of the
|
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
|
vector had been listed one by one. For example, the following two fix
|
||||||
commands are equivalent, since the :doc:`compute pressure
|
ave/correlate commands are equivalent, since the :doc:`compute pressure
|
||||||
<compute_pressure>` command creates a global vector with 6 values.
|
<compute_pressure>` command creates a global vector with six values:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
@ -139,151 +143,161 @@ commands are equivalent, since the :doc:`compute pressure
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||||
timesteps the input values will be used to calculate correlation data.
|
arguments specify on what timesteps the input values will be used to calculate
|
||||||
The input values are sampled every *Nevery* timesteps. The
|
correlation data. The input values are sampled every :math:`N_\text{every}`
|
||||||
correlation data for the preceding samples is computed on timesteps
|
time steps. The correlation data for the preceding samples is computed on
|
||||||
that are a multiple of *Nfreq*\ . Consider a set of samples from some
|
time steps that are a multiple of :math:`N_\text{freq}`\ . Consider a set of
|
||||||
initial time up to an output timestep. The initial time could be the
|
samples from some initial time up to an output timestep. The initial time
|
||||||
beginning of the simulation or the last output time; see the *ave*
|
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
|
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,
|
which is the correlation value between input values :math:`V_i` and
|
||||||
separated by time delta. Note that the second value Vj in the pair is
|
:math:`V_j`, separated by time :math:`\Delta t`. Note that the second value
|
||||||
always the one sampled at the later time. The ave() represents an
|
:math:`V_j` in the pair is always the one sampled at the later time. The
|
||||||
average over every pair of samples in the set that are separated by
|
average is an average over every pair of samples in the set that are separated
|
||||||
time delta. The maximum delta used is of size (\ *Nrepeat*\ -1)\*\ *Nevery*\ .
|
by time :math:`\Delta t`. The maximum :math:`\Delta t` used is of size
|
||||||
Thus the correlation between a pair of input values yields *Nrepeat*
|
:math:`(N_\text{repeat} - 1) N_\text{every}`\ .
|
||||||
correlation datums:
|
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
|
For example, if :math:`N_\text{every}=5`, :math:`N_\text{repeat}=6`, and
|
||||||
timesteps 0,5,10,15,...,100 will be used to compute the final averages
|
:math:`N_\text{freq}=100`, then values on time steps
|
||||||
on timestep 100. Six averages will be computed: Cij(0), Cij(5),
|
:math:`0, 5, 10, 15,\dotsc,100` will be used to compute the final averages
|
||||||
Cij(10), Cij(15), Cij(20), and Cij(25). Cij(10) on timestep 100 will
|
on time step 100. Six averages will be computed: :math:`C_{ij}(0)`,
|
||||||
be the average of 19 samples, namely Vi(0)\*Vj(10), Vi(5)\*Vj(15),
|
:math:`C_{ij}(5)`, :math:`C_{ij}(10)`, :math:`C_{ij}(15)`, :math:`C_{ij}(20)`,
|
||||||
Vi(10)\*V j20), Vi(15)\*Vj(25), ..., Vi(85)\*Vj(95), Vi(90)\*Vj(100).
|
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
|
:math:`N_\text{freq}` must be a multiple of :math:`N_\text{every}`;
|
||||||
non-zero. Also, if the *ave* keyword is set to *one* which is the
|
:math:`N_\text{every}` and :math:`N_\text{repeat}` must be non-zero.
|
||||||
default, then *Nfreq* >= (\ *Nrepeat*\ -1)\*\ *Nevery* is required.
|
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
|
previously defined in the input script. If no bracketed term is
|
||||||
appended, the global scalar calculated by the compute is used. If a
|
appended, the global scalar calculated by the compute is used. If a
|
||||||
bracketed term is appended, the Ith element of the global vector
|
bracketed term is appended, the :math:`I^\text{th}` element of the global
|
||||||
calculated by the compute is used. See the discussion above for how I
|
vector calculated by the compute is used. See the discussion above for how
|
||||||
can be specified with a wildcard asterisk to effectively specify
|
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||||
multiple values.
|
multiple values.
|
||||||
|
|
||||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||||
which can sum per-atom quantities into a global scalar or vector which
|
that 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
|
can then be accessed by fix ave/correlate. It can also be a compute defined
|
||||||
defined not in your input script, but by :doc:`thermodynamic output <thermo_style>` or other fixes such as :doc:`fix nvt <fix_nh>`
|
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
|
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
|
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 no bracketed term is
|
previously defined in the input script. If no bracketed term is
|
||||||
appended, the global scalar calculated by the fix is used. If a
|
appended, the global scalar calculated by the fix is used. If a
|
||||||
bracketed term is appended, the Ith element of the global vector
|
bracketed term is appended, the :math:`I^\text{th}` element of the global
|
||||||
calculated by the fix is used. See the discussion above for how I can
|
vector calculated by the fix is used. See the discussion above for how
|
||||||
be specified with a wildcard asterisk to effectively specify multiple
|
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||||
values.
|
multiple values.
|
||||||
|
|
||||||
Note that some fixes only produce their values on certain timesteps,
|
Note that some fixes only produce their values on certain timesteps,
|
||||||
which must be compatible with *Nevery*, else an error will result.
|
which must be compatible with :math:`N_\text{every}`, else an error will
|
||||||
Users can also write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`.
|
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
|
||||||
been previously defined in the input script. Only equal-style or
|
previously defined in the input script. Only equal-style or vector-style
|
||||||
vector-style variables can be referenced; the latter requires a
|
variables can be referenced; the latter requires a bracketed term to specify
|
||||||
bracketed term to specify the Ith element of the vector calculated by
|
the :math:`I^\text{th}` element of the vector calculated by the variable.
|
||||||
the variable. See the :doc:`variable <variable>` command for details.
|
See the :doc:`variable <variable>` command for details. Note that variables of
|
||||||
Note that variables of style *equal* or *vector* define a formula
|
style *equal* or *vector* define a formula which can reference individual atom
|
||||||
which can reference individual atom properties or thermodynamic
|
properties or thermodynamic keywords, or they can invoke other computes, fixes,
|
||||||
keywords, or they can invoke other computes, fixes, or variables when
|
or variables when they are evaluated, so this is a very general means of
|
||||||
they are evaluated, so this is a very general means of specifying
|
specifying quantities to time correlate.
|
||||||
quantities to time correlate.
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Additional optional keywords also affect the operation of this fix.
|
Additional optional keywords also affect the operation of this fix.
|
||||||
|
|
||||||
The *type* keyword determines which pairs of input values are
|
The *type* keyword determines which pairs of input values are
|
||||||
correlated with each other. For N input values Vi, for i = 1 to N,
|
correlated with each other. For :math:`N` input values :math:`V_i`,
|
||||||
let the number of pairs = Npair. Note that the second value in the
|
with :math:`i \in \{1,\dotsc,N\}`, let the number of pairs be
|
||||||
pair Vi(t)\*Vj(t+delta) is always the one sampled at the later time.
|
: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
|
* 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.
|
itself (i.e., :math:`C_{ii} = V_i^2` for :math:`i \in \{1,\dotsc,N\}`,
|
||||||
* If *type* is set
|
so :math:`N_\text{pair} = N`).
|
||||||
to *upper* then each input value is correlated with every succeeding
|
* If *type* is set to *upper* then each input value is correlated with every
|
||||||
value. I.e. Cij = Vi\*Vj, for i < j, so Npair = N\*(N-1)/2.
|
succeeding value (i.e., :math:`C_{ij} = V_i V_j` for :math:`i < j`, so
|
||||||
* If *type* is set
|
:math:`N_\text{pair} = N (N-1)/2`).
|
||||||
to *lower* then each input value is correlated with every preceding
|
* If *type* is set to *lower* then each input value is correlated with every
|
||||||
value. I.e. Cij = Vi\*Vj, for i > j, so Npair = N\*(N-1)/2.
|
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
|
* 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,
|
with itself and every succeeding value (i.e., :math:`C_{ij} = V_i V_j`
|
||||||
so Npair = N\*(N+1)/2.
|
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
|
* 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,
|
with itself and every preceding value (i.e., :math:`C_{ij} = V_i V_j`
|
||||||
so Npair = N\*(N+1)/2.
|
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
|
* 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
|
itself and every other value (i.e., :math:`C_{ij} = V_i V_j` for
|
||||||
Npair = N\^2.
|
:math:`\{i,j\} = \{1,N\}`, so :math:`N_\text{pair} = N^2`).
|
||||||
|
|
||||||
The *ave* keyword determines what happens to the accumulation of
|
The *ave* keyword determines what happens to the accumulation of correlation
|
||||||
correlation samples every *Nfreq* timesteps. If the *ave* setting is
|
samples every :math:`N_\text{freq}` timesteps. If the *ave* setting is *one*,
|
||||||
*one*, then the accumulation is restarted or zeroed every *Nfreq*
|
then the accumulation is restarted or zeroed every :math:`N_\text{freq}`
|
||||||
timesteps. Thus the outputs on successive *Nfreq* timesteps are
|
timesteps. Thus the outputs on successive :math:`N_\text{freq}` timesteps are
|
||||||
essentially independent of each other. The exception is that the
|
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
|
:math:`C_{ij}(0) = V_i(t) V_j(t)` value at a time step :math:`t,` where
|
||||||
*Nfreq*, contributes to the correlation output both at time T and at
|
:math:`t` is a multiple of :math:`N_\text{freq}`, contributes to the
|
||||||
time T+Nfreq.
|
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
|
If the *ave* setting is *running*, then the accumulation is never zeroed.
|
||||||
zeroed. Thus the output of correlation data at any timestep is the
|
Thus the output of correlation data at any timestep is the average over samples
|
||||||
average over samples accumulated every *Nevery* steps since the fix
|
accumulated every :math:`N_\text{every}` steps since the fix was defined.
|
||||||
was defined. it can only be restarted by deleting the fix via the
|
It can only be restarted by deleting the fix via the :doc:`unfix <unfix>`
|
||||||
:doc:`unfix <unfix>` command, or by re-defining the fix by re-specifying
|
command, or by re-defining the fix by re-specifying it.
|
||||||
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
|
correlation samples will begin on. The default is step 0. Setting it
|
||||||
to a larger value can avoid adding non-equilibrated data to the
|
to a larger value can avoid adding non-equilibrated data to the
|
||||||
correlation averages.
|
correlation averages.
|
||||||
|
|
||||||
The *prefactor* keyword specifies a constant which will be used as a
|
The *prefactor* keyword specifies a constant which will be used as a multiplier
|
||||||
multiplier on the correlation data after it is averaged. It is
|
on the correlation data after it is averaged. It is effectively a scale factor
|
||||||
effectively a scale factor on Vi\*Vj, which can be used to account for
|
on :math:`V_i V_j`, which can be used to account for the size of the time
|
||||||
the size of the time window or other unit conversions.
|
window or other unit conversions.
|
||||||
|
|
||||||
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
The *file* keyword allows a filename to be specified. Every
|
||||||
steps, an array of correlation data is written to the file. The
|
:math:`N_\text{freq}` steps, an array of correlation data is written to the
|
||||||
number of rows is *Nrepeat*, as described above. The number of
|
file. The number of rows is :math:`N_\text{repeat}`, as described above.
|
||||||
columns is the Npair+2, also as described above. Thus the file ends
|
The number of columns is :math:`N_\text{pair}+2`, also as described above.
|
||||||
up to be a series of these array sections.
|
Thus the file ends up to be a series of these array sections.
|
||||||
|
|
||||||
The *overwrite* keyword will continuously overwrite the output file
|
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 timestep worth of
|
||||||
output. This option can only be used with the *ave running* setting.
|
output. This option can only be used with the *ave running* setting.
|
||||||
|
|
||||||
The *title1* and *title2* and *title3* keywords allow specification of
|
The *title1*, *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,
|
||||||
file, assuming the *file* keyword was used. LAMMPS uses default
|
assuming the *file* keyword was used. LAMMPS uses default values for each of
|
||||||
values for each of these, so they do not need to be specified.
|
these, so they do not need to be specified.
|
||||||
|
|
||||||
By default, these header lines are as follows:
|
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,
|
Let :math:`S_{ij}` be a set of time correlation data for input values
|
||||||
namely the *Nrepeat* 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.
|
array, which is effectively the correlation matrix.
|
||||||
|
|
||||||
The *trap* function defined for :doc:`equal-style variables <variable>`
|
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
|
using a trapezoidal rule. This is useful for calculating various
|
||||||
quantities which can be derived from time correlation data. If a
|
quantities which can be derived from time correlation data. If a
|
||||||
normalization factor is needed for the time integration, it can be
|
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
|
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
|
||||||
are relevant to this fix.
|
: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
|
This fix computes a global array of values which can be accessed by
|
||||||
various :doc:`output commands <Howto_output>`. The values can only be
|
various :doc:`output commands <Howto_output>`. The values can only be
|
||||||
accessed on timesteps that are multiples of *Nfreq* since that is when
|
accessed on timesteps that are multiples of :math:`N_\text{freq}` since that is
|
||||||
averaging is performed. The global array has # of rows = *Nrepeat*
|
when averaging is performed. The global array has # of rows
|
||||||
and # of columns = Npair+2. The first column has the time delta (in
|
:math:`N_\text{repeat}` and # of columns :math:`N_\text{pair}+2`. The first
|
||||||
timesteps) between the pairs of input values used to calculate the
|
column has the time :math:`\Delta t` (in time steps) between the pairs of input
|
||||||
correlation, as described above. The second column has the number of
|
values used to calculate the correlation, as described above. The second
|
||||||
samples contributing to the correlation average, as described above.
|
column has the number of samples contributing to the correlation average, as
|
||||||
The remaining Npair columns are for I,J pairs of the N input values,
|
described above. The remaining Npair columns are for :math:`I,J` pairs of the
|
||||||
as determined by the *type* keyword, as described above.
|
:math:`N` input values, as determined by the *type* keyword, as described
|
||||||
|
above.
|
||||||
|
|
||||||
* For *type* = *auto*, the Npair = N columns are ordered: C11, C22, ...,
|
* For *type* = *auto*, the :math:`N_\text{pair} = N` columns are ordered:
|
||||||
CNN.
|
:math:`C_{11}, C_{22}, \dotsc, C_{NN}`
|
||||||
* For *type* = *upper*, the Npair = N\*(N-1)/2 columns are ordered: C12,
|
* For *type* = *upper*, the :math:`N_\text{pair} = N(N-1)/2` columns are
|
||||||
C13, ..., C1N, C23, ..., C2N, C34, ..., CN-1N.
|
ordered: :math:`C_{12}, C_{13}, \dotsc, C_{1N}, C_{23}, \dotsc, C_{2N},
|
||||||
* For *type* = *lower*, the Npair = N\*(N-1)/2 columns are ordered: C21,
|
C_{34}, \dotsc, C_{N-1,N}`
|
||||||
C31, C32, C41, C42, C43, ..., CN1, CN2, ..., CNN-1.
|
* For *type* = *lower*, the :math:`N_\text{pair} = N(N-1)/2` columns are
|
||||||
* For *type* = *auto/upper*, the Npair = N\*(N+1)/2 columns are ordered:
|
ordered: :math:`C_{21}, C_{31}, C_{32}, C_{41}, C_{42}, C_{43I}, \dotsc,
|
||||||
C11, C12, C13, ..., C1N, C22, C23, ..., C2N, C33, C34, ..., CN-1N,
|
C_{N1}, C_{N2}, \dotsc, C_{N,N-1}`
|
||||||
CNN.
|
* For *type* = *auto/upper*, the :math:`N_\text{pair} = N(N+1)/2` columns are
|
||||||
* For *type* = *auto/lower*, the Npair = N\*(N+1)/2 columns are ordered:
|
ordered: :math:`C_{11}, C_{12}, C_{13}, \dotsc, C_{1N}, C_{22}, C_{23},
|
||||||
C11, C21, C22, C31, C32, C33, C41, ..., C44, CN1, CN2, ..., CNN-1,
|
\dotsc, C_{2N}, C_{33}, C_{34}, \dotsc, C_{N-1,N}, C_{NN}`
|
||||||
CNN.
|
* For *type* = *auto/lower*, the :math:`N_\text{pair} = N(N+1)/2` columns are
|
||||||
* For *type* = *full*, the Npair = N\^2 columns are ordered: C11, C12,
|
ordered: :math:`C_{11}, C_{21}, C_{22}, C_{31}, C_{32}, C_{33}, C_{41},
|
||||||
..., C1N, C21, C22, ..., C2N, C31, ..., C3N, ..., CN1, ..., CNN-1,
|
\dotsc, C_{44}, C_{N1}, C_{N2}, \dotsc, C_{N,N-1}, C_{NN}`
|
||||||
CNN.
|
* 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
|
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
|
later processing step (e.g., when using them in a :doc:`variable <variable>`).
|
||||||
:doc:`variable <variable>`.
|
|
||||||
|
|
||||||
No parameter of this fix can be used with the *start/stop* keywords of
|
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>`.
|
||||||
@ -368,7 +386,8 @@ Related commands
|
|||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
|
|
||||||
:doc:`fix ave/correlate/long <fix_ave_correlate_long>`,
|
: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>`
|
:doc:`fix ave/histo <fix_ave_histo>`, :doc:`variable <variable>`
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
@ -6,14 +6,14 @@ fix ave/correlate/long command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ave/correlate/long Nevery Nfreq value1 value2 ... keyword args ...
|
fix ID group-ID ave/correlate/long Nevery Nfreq value1 value2 ... keyword args ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* ave/correlate/long = style name of this fix command
|
* ave/correlate/long = style name of this fix command
|
||||||
* Nevery = use input values every this many timesteps
|
* Nevery = use input values every this many time steps
|
||||||
* Nfreq = save state of the time correlation functions every this many timesteps
|
* Nfreq = save state of the time correlation functions every this many time steps
|
||||||
* one or more input values can be listed
|
* one or more input values can be listed
|
||||||
* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ Syntax
|
|||||||
auto/lower = auto + lower
|
auto/lower = auto + lower
|
||||||
full = correlate each value with every other value, including itself = auto + upper + lower
|
full = correlate each value with every other value, including itself = auto + upper + lower
|
||||||
*start* args = Nstart
|
*start* args = Nstart
|
||||||
Nstart = start accumulating correlations on this timestep
|
Nstart = start accumulating correlations on this time step
|
||||||
*file* arg = filename
|
*file* arg = filename
|
||||||
filename = name of file to output correlation data to
|
filename = name of file to output correlation data to
|
||||||
*overwrite* arg = none = overwrite output file with only latest output
|
*overwrite* arg = none = overwrite output file with only latest output
|
||||||
@ -66,10 +66,11 @@ Examples
|
|||||||
Description
|
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
|
However, this fix allows the efficient calculation of time correlation
|
||||||
functions on-the-fly over extremely long time windows with little
|
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
|
:ref:`(Ramirez) <Ramirez>` that decreases the resolution of the stored
|
||||||
correlation function with time. It is not a full drop-in replacement.
|
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.
|
fixes which store their own "group" definitions.
|
||||||
|
|
||||||
Each listed value can be the result of a compute or fix or the
|
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
|
The *Nevery* and *Nfreq* arguments specify on what time steps the input
|
||||||
values will be used to calculate correlation data, and the frequency
|
values will be used to calculate correlation data and the frequency
|
||||||
with which the time correlation functions will be output to a file.
|
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.
|
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
|
The optional keywords *ncorr*, *nlen*, and *ncount* are unique to this
|
||||||
command and determine the number of correlation points calculated and
|
command and determine the number of correlation points calculated and
|
||||||
the memory and CPU overhead used by this calculation. *Nlen* and
|
the memory and CPU overhead used by this calculation. *Nlen* and
|
||||||
*ncount* determine the amount of averaging done at longer correlation
|
*ncount* determine the amount of averaging done at longer correlation
|
||||||
times. The default values *nlen=16*, *ncount=2* ensure that the
|
times. The default values *nlen* = 16 and *ncount* = 2 ensure that the
|
||||||
systematic error of the multiple-tau correlator is always below the
|
systematic error of the multiple-:math:`\tau` correlator is always below the
|
||||||
level of the statistical error of a typical simulation (which depends
|
level of the statistical error of a typical simulation (which depends
|
||||||
on the ensemble size and the simulation length).
|
on the ensemble size and the simulation length).
|
||||||
|
|
||||||
The maximum correlation time (in time steps) that can be reached is
|
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
|
times are discarded and not calculated. With the default values of
|
||||||
the parameters (ncorr=20, nlen=16 and ncount=2), this corresponds to
|
the parameters (:math:`ncorr=20`, :math:`nlen=16` and :math:`ncount=2`),
|
||||||
7864320 time steps. If longer correlation times are needed, the value
|
this corresponds to 7864320 time steps. If longer correlation times are
|
||||||
of ncorr should be increased. Using nlen=16 and ncount=2, with
|
needed, the value of ncorr should be increased. Using :math:`nlen=16` and
|
||||||
ncorr=30, the maximum number of steps that can be correlated is
|
:math:`ncount=2`, with :math:`ncorr=30`, the maximum number of steps that can
|
||||||
80530636808. If ncorr=40, correlation times in excess of 8e12 time
|
be correlated is 80530636808. If :math:`ncorr=40`, correlation times in excess
|
||||||
steps can be calculated.
|
of :math:`8\times 10^{12}` time steps can be calculated.
|
||||||
|
|
||||||
The total memory needed for each correlation pair is roughly
|
The total memory needed for each correlation pair is roughly
|
||||||
4\*ncorr\*nlen\*8 bytes. With the default values of the parameters, this
|
:math:`4 \times ncorr\times nlen \times 8` bytes.
|
||||||
corresponds to about 10 KB.
|
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
|
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
|
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
|
Related commands
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
@ -140,8 +146,9 @@ Default
|
|||||||
|
|
||||||
none
|
none
|
||||||
|
|
||||||
The option defaults for keywords that are also keywords for the :doc:`fix ave/correlate <fix_ave_correlate>` command are as follows: type =
|
The option defaults for keywords that are also keywords for the
|
||||||
auto, start = 0, no file output, title 1,2 = strings as described on
|
: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 :doc:`fix ave/correlate <fix_ave_correlate>` doc page.
|
||||||
|
|
||||||
The option defaults for keywords unique to this command are as
|
The option defaults for keywords unique to this command are as
|
||||||
|
|||||||
@ -10,7 +10,7 @@ fix ave/histo/weight command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID style Nevery Nrepeat Nfreq lo hi Nbin value1 value2 ... keyword args ...
|
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
|
* lo,hi = lo/hi bounds within which to histogram
|
||||||
* Nbin = # of histogram bins
|
* Nbin = # of histogram bins
|
||||||
* one or more input values can be listed
|
* 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::
|
.. 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
|
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
|
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
|
that instead of each value tallying a "1" to its bin, the
|
||||||
corresponding weight is tallied. E.g. The Nth entry (weight) in the
|
corresponding weight is tallied. For example, the :math:`N^\text{th}` entry
|
||||||
second vector is tallied to the bin corresponding to the Nth entry in
|
(weight) in the second vector is tallied to the bin corresponding to the
|
||||||
the first vector.
|
:math:`N^\text{th}` entry in the first vector.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
For input values from a compute or fix or variable, the bracketed
|
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
|
index I can be specified using a wildcard asterisk with the index to
|
||||||
effectively specify multiple values. This takes the form "\*" or
|
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
|
||||||
scalar) or the number of columns in the array (for *mode* = vector),
|
(for *mode* = scalar) or the number of columns in the array
|
||||||
then an asterisk with no numeric values means all indices from 1 to N.
|
(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
|
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).
|
asterisk means all indices from m to n (inclusive).
|
||||||
|
|
||||||
Using a wildcard is the same as if the individual elements of the
|
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
|
vector or columns of the array had been listed one by one. For example, the
|
||||||
2 fix ave/histo commands are equivalent, since the :doc:`compute
|
following two fix ave/histo commands are equivalent, since the :doc:`compute
|
||||||
com/chunk <compute_com_chunk>` command creates a global array with 3
|
com/chunk <compute_com_chunk>` command creates a global array with three
|
||||||
columns:
|
columns:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
@ -164,31 +165,35 @@ columns:
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||||
timesteps the input values will be used in order to contribute to the
|
arguments specify on what time steps the input values will be used in order to
|
||||||
histogram. The final histogram is generated on timesteps that are
|
contribute to the histogram. The final histogram is generated on time steps
|
||||||
multiple of *Nfreq*\ . It is averaged over *Nrepeat* histograms,
|
that are multiple of :math:`N_\text{freq}`\ . It is averaged over
|
||||||
computed in the preceding portion of the simulation every *Nevery*
|
:math:`N_\text{repeat}` histograms, computed in the preceding portion of the
|
||||||
timesteps. *Nfreq* must be a multiple of *Nevery* and *Nevery* must
|
simulation every :math:`N_\text{every}` time steps.
|
||||||
be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
:math:`N_\text{freq}` must be a multiple of :math:`N_\text{every}` and
|
||||||
contributing to the histogram value cannot overlap,
|
:math:`N_\text{every}` must be non-zero even if :math:`N_\text{repeat}` is 1.
|
||||||
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
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
|
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||||
on timesteps 90,92,94,96,98,100 will be used to compute the final
|
:math:`N_\text{freq}=100`, then input values on time steps 90, 92, 94, 96, 98,
|
||||||
histogram on timestep 100. Similarly for timesteps
|
and 100 will be used to compute the final histogram on timestep 100.
|
||||||
190,192,194,196,198,200 on timestep 200, etc. If Nrepeat=1 and Nfreq
|
Similarly for timesteps 190, 192, 194, 196, 198, and 200 on timestep 200, etc.
|
||||||
= 100, then no time averaging of the histogram is done; a histogram is
|
If :math:`N_\text{repeat}=1` and :math:`N_\text{freq} = 100`, then no time
|
||||||
simply generated on timesteps 100,200,etc.
|
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
|
The atom attribute values (*x*, *y*, *z*, *vx*, *vy*, *vz*, *fx*, *fy*, and
|
||||||
self-explanatory. Note that other atom attributes can be used as
|
*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
|
inputs to this fix by using the
|
||||||
an input value from that compute.
|
: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
|
previously defined in the input script. If *mode* = scalar, then if
|
||||||
no bracketed term is appended, the global scalar calculated by the
|
no bracketed term is appended, the global scalar calculated by the
|
||||||
compute is used. If a bracketed term is appended, the Ith element of
|
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.
|
multiple values.
|
||||||
|
|
||||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||||
which can sum per-atom quantities into a global scalar or vector which
|
that 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
|
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>`
|
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
|
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
|
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
|
previously defined in the input script. If *mode* = scalar, then if
|
||||||
no bracketed term is appended, the global scalar calculated by the fix
|
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
|
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
|
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
|
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
|
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
|
appended, the :math:`I^\text{th}` column of the global or per-atom or local
|
||||||
calculated by the fix is used. See the discussion above for how I can
|
array calculated by the fix is used. See the discussion above for how
|
||||||
be specified with a wildcard asterisk to effectively specify multiple
|
:math:`I` can be specified with a wildcard asterisk to effectively specify
|
||||||
values.
|
multiple values.
|
||||||
|
|
||||||
Note that some fixes only produce their values on certain timesteps,
|
Note that some fixes only produce their values on certain timesteps,
|
||||||
which must be compatible with *Nevery*, else an error will result.
|
which must be compatible with :math:`N_\text{every}`, else an error will
|
||||||
Users can also write code for their own fix styles and :doc:`add them to LAMMPS <Modify>`.
|
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
|
been previously defined in the input script. If *mode* = scalar, then
|
||||||
only equal-style or vector-style variables can be used, which both
|
only equal-style or vector-style variables can be used, which both
|
||||||
produce global values. In this mode, a vector-style variable requires
|
produce global values. In this mode, a vector-style variable requires
|
||||||
a bracketed term to specify the Ith element of the vector calculated
|
a bracketed term to specify the :math:`I^\text{th}` element of the vector
|
||||||
by the variable. If *mode* = vector, then only vector-style or
|
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
|
atom-style variables can be used, which produce a global or per-atom
|
||||||
vector respectively. The vector-style variable must be used without a
|
vector respectively. The vector-style variable must be used without a
|
||||||
bracketed term. See the :doc:`variable <variable>` command for details.
|
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.
|
remaining input arguments must still be consistent.
|
||||||
|
|
||||||
The *beyond* keyword determines how input values that fall outside the
|
The *beyond* keyword determines how input values that fall outside the
|
||||||
*lo* to *hi* bounds are treated. Values such that *lo* <= value <=
|
*lo* to *hi* bounds are treated. Values such that *lo* :math:`\le` value
|
||||||
*hi* are assigned to one bin. Values on a bin boundary are assigned
|
:math:`\le` *hi* are assigned to one bin. Values on a bin boundary are
|
||||||
to the lower of the 2 bins. If *beyond* is set to *ignore* then
|
assigned to the lower of the two bins. If *beyond* is set to *ignore* then
|
||||||
values < *lo* and values > *hi* are ignored, i.e. they are not binned.
|
values :math:`<` *lo* and values :math:`>` *hi* are ignored (i.e., they are not
|
||||||
If *beyond* is set to *end* then values < *lo* are counted in the
|
binned). If *beyond* is set to *end*, then values :math:`<` *lo* are counted in
|
||||||
first bin and values > *hi* are counted in the last bin. If *beyond*
|
the first bin and values :math:`>` *hi* are counted in the last bin.
|
||||||
is set to *extend* then two extra bins are created, so that there are
|
If *beyond* is set to *extend*, then two extra bins are created so that there
|
||||||
Nbins+2 total bins. Values < *lo* are counted in the first bin and
|
are :math:`N_\text{bins}+2` total bins. Values :math:`<` *lo* are counted in
|
||||||
values > *hi* are counted in the last bin (Nbins+2). Values between
|
the first bin and values :math:`>` *hi* are counted in the last bin
|
||||||
*lo* and *hi* (inclusive) are counted in bins 2 through Nbins+1. The
|
:math:`(N_\text{bins}+2)`\ . Values between
|
||||||
"coordinate" stored and printed for these two extra bins is *lo* and
|
*lo* and *hi* (inclusive) are counted in bins 2 through
|
||||||
*hi*\ .
|
: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*
|
The *ave* keyword determines how the histogram produced every
|
||||||
steps are averaged with histograms produced on previous steps that
|
:math:`N_\text{freq}` steps are averaged with histograms produced on previous
|
||||||
were multiples of *Nfreq*, before they are accessed by another output
|
steps that were multiples of :math:`N_\text{freq}`, before they are accessed by
|
||||||
command or written to a file.
|
another output command or written to a file.
|
||||||
|
|
||||||
If the *ave* setting is *one*, then the histograms produced on
|
If the *ave* setting is *one*, then the histograms produced on
|
||||||
timesteps that are multiples of *Nfreq* are independent of each other;
|
timesteps that are multiples of :math:`N_\text{freq}` are independent of each
|
||||||
they are output as-is without further averaging.
|
other; they are output as-is without further averaging.
|
||||||
|
|
||||||
If the *ave* setting is *running*, then the histograms produced on
|
If the *ave* setting is *running*, then the histograms produced on
|
||||||
timesteps that are multiples of *Nfreq* are summed and averaged in a
|
timesteps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||||
cumulative sense before being output. Each bin value in the histogram
|
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
|
is thus the average of the bin value produced on that timestep with all
|
||||||
all preceding values for the same bin. This running average begins
|
preceding values for the same bin. This running average begins when the fix is
|
||||||
when the fix is defined; it can only be restarted by deleting the fix
|
defined; it can only be restarted by deleting the fix via the
|
||||||
via the :doc:`unfix <unfix>` command, or by re-defining the fix by
|
:doc:`unfix <unfix>` command, or by re-defining the fix by re-specifying it.
|
||||||
re-specifying it.
|
|
||||||
|
|
||||||
If the *ave* setting is *window*, then the histograms produced on
|
If the *ave* setting is *window*, then the histograms produced on
|
||||||
timesteps that are multiples of *Nfreq* are summed within a moving
|
timesteps that are multiples of :math:`N_\text{freq}` are summed within a
|
||||||
"window" of time, so that the last M histograms are used to produce
|
moving "window" of time, so that the last :math:`M` histograms are used to
|
||||||
the output. E.g. if M = 3 and Nfreq = 1000, then the output on step
|
produce the output (e.g., if :math:`M = 3` and :math:`N_\text{freq} = 1000`,
|
||||||
10000 will be the combined histogram of the individual histograms on
|
then the output on step 10000 will be the combined histogram of the individual
|
||||||
steps 8000,9000,10000. Outputs on early steps will be sums over less
|
histograms on steps 8000, 9000, and 10000. Outputs on early steps will be sums
|
||||||
than M histograms if they are not available.
|
over less than :math:`M` histograms if they are not available.
|
||||||
|
|
||||||
The *start* keyword specifies what timestep histogramming will begin
|
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,
|
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
|
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.
|
output. This option can only be used with the *ave running* setting.
|
||||||
|
|
||||||
The *title1* and *title2* and *title3* keywords allow specification of
|
The *title1*, *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
|
file, assuming the *file* keyword was used. LAMMPS uses default
|
||||||
values for each of these, so they do not need to be specified.
|
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
|
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
|
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.
|
the histogram.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
@ -344,13 +352,14 @@ the histogram.
|
|||||||
Restart, fix_modify, output, run start/stop, minimize info
|
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
|
||||||
are relevant to this fix.
|
: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
|
This fix produces a global vector and global array which can be
|
||||||
accessed by various :doc:`output commands <Howto_output>`. The values
|
accessed by various :doc:`output commands <Howto_output>`. The values
|
||||||
can only be accessed on timesteps that are multiples of *Nfreq* since
|
can only be accessed on timesteps that are multiples of :math:`N_\text{freq}`
|
||||||
that is when a histogram is generated. The global vector has 4
|
since that is when a histogram is generated. The global vector has four
|
||||||
values:
|
values:
|
||||||
|
|
||||||
* 1 = total counts in the histogram
|
* 1 = total counts in the histogram
|
||||||
@ -358,19 +367,20 @@ values:
|
|||||||
* 3 = min value of all input values, including ones not histogrammed
|
* 3 = min value of all input values, including ones not histogrammed
|
||||||
* 4 = max 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
|
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
|
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
|
divided by the total count (not including missing counts), so that the
|
||||||
values in the third column sum to 1.0.
|
values in the third column sum to 1.0.
|
||||||
|
|
||||||
The vector and array values calculated by this fix are all treated as
|
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
|
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
|
per-atom input values), then you will need to account for that when
|
||||||
interpreting the values produced by this fix.
|
interpreting the values produced by this fix.
|
||||||
|
|
||||||
No parameter of this fix can be used with the *start/stop* keywords of
|
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
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -379,7 +389,8 @@ Restrictions
|
|||||||
Related commands
|
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>`,
|
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`,
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
@ -6,15 +6,15 @@ fix ave/time command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
|
fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
|
||||||
|
|
||||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||||
* ave/time = style name of this 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
|
* 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
|
* one or more input values can be listed
|
||||||
* value = c_ID, c_ID[N], f_ID, f_ID[N], v_name
|
* 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
|
running = output cumulative average of all previous Nfreq steps
|
||||||
window M = output average of M most recent Nfreq steps
|
window M = output average of M most recent Nfreq steps
|
||||||
*start* args = Nstart
|
*start* args = Nstart
|
||||||
Nstart = start averaging on this timestep
|
Nstart = start averaging on this time step
|
||||||
*off* arg = M = do not average this value
|
*off* arg = M = do not average this value
|
||||||
M = value # from 1 to Nvalues
|
M = value # from 1 to Nvalues
|
||||||
*file* arg = filename
|
*file* arg = filename
|
||||||
@ -69,7 +69,7 @@ Examples
|
|||||||
Description
|
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
|
average them over longer timescales. The resulting averages can be
|
||||||
used by other :doc:`output commands <Howto_output>` such as
|
used by other :doc:`output commands <Howto_output>` such as
|
||||||
:doc:`thermo_style custom <thermo_style>`, and can also be written to a
|
: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
|
:doc:`variable <variable>`. In each case, the compute, fix, or variable
|
||||||
must produce a global quantity, not a per-atom or local quantity. If
|
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
|
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
|
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
|
:doc:`Computes <compute>` that produce global quantities are those which
|
||||||
do not have the word *atom* in their style name. Only a few
|
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
|
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
|
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
|
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
|
If *mode* = scalar, then the input values must be scalars, or vectors
|
||||||
with a bracketed term appended, indicating the Ith value of the vector
|
with a bracketed term appended, indicating the :math:`I^\text{th}` value of the
|
||||||
is used.
|
vector is used.
|
||||||
|
|
||||||
If *mode* = vector, then the input values must be vectors, or arrays
|
If *mode* = vector, then the input values must be vectors, or arrays
|
||||||
with a bracketed term appended, indicating the Ith column of the array
|
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
|
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
|
index I can be specified using a wildcard asterisk with the index to
|
||||||
effectively specify multiple values. This takes the form "\*" or
|
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),
|
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.
|
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
|
A leading asterisk means all indices from 1 to n (inclusive). A trailing
|
||||||
trailing asterisk means all indices from n to N (inclusive). A middle
|
asterisk means all indices from n to :math:`N` (inclusive). A middle asterisk
|
||||||
asterisk means all indices from m to n (inclusive).
|
means all indices from m to n (inclusive).
|
||||||
|
|
||||||
Using a wildcard is the same as if the individual elements of the
|
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
|
vector or columns of the array had been listed one by one. For example, the
|
||||||
2 fix ave/time commands are equivalent, since the :doc:`compute rdf
|
following two fix ave/time commands are equivalent, since the :doc:`compute rdf
|
||||||
<compute_rdf>` command creates, in this case, a global array with 3
|
<compute_rdf>` command creates, in this case, a global array with three
|
||||||
columns, each of length 50:
|
columns, each of length 50:
|
||||||
|
|
||||||
.. code-block:: LAMMPS
|
.. code-block:: LAMMPS
|
||||||
@ -147,22 +149,24 @@ columns, each of length 50:
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The *Nevery*, *Nrepeat*, and *Nfreq* arguments specify on what
|
The :math:`N_\text{every}`, :math:`N_\text{repeat}`, and :math:`N_\text{freq}`
|
||||||
timesteps the input values will be used in order to contribute to the
|
arguments specify on what time steps the input values will be used in order to
|
||||||
average. The final averaged quantities are generated on timesteps
|
contribute to the average. The final averaged quantities are generated on
|
||||||
that are a multiple of *Nfreq*\ . The average is over *Nrepeat*
|
time steps that are a multiple of :math:`N_\text{freq}`\ . The average is over
|
||||||
quantities, computed in the preceding portion of the simulation every
|
:math:`N_\text{repeat}` quantities, computed in the preceding portion of the
|
||||||
*Nevery* timesteps. *Nfreq* must be a multiple of *Nevery* and
|
simulation every :math:`N_\text{every}` time steps. :math:`N_\text{freq}` must
|
||||||
*Nevery* must be non-zero even if *Nrepeat* is 1. Also, the timesteps
|
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,
|
contributing to the average value cannot overlap,
|
||||||
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
i.e. Nrepeat\*Nevery can not exceed Nfreq.
|
||||||
|
|
||||||
For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on
|
For example, if :math:`N_\text{every}=2`, :math:`N_\text{repeat}=6`, and
|
||||||
timesteps 90,92,94,96,98,100 will be used to compute the final average
|
:math:`N_\text{freq}=100`, then values on time steps 90, 92, 94, 96, 98, and
|
||||||
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
100 will be used to compute the final average on time step 100. Similarly for
|
||||||
timestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time
|
time steps 190, 192, 194, 196, 198, and 200 on time step 200, etc.
|
||||||
averaging is done; values are simply generated on timesteps
|
If :math:`N_\text{repeat}=1` and :math:`N_\text{freq} = 100`, then no time
|
||||||
100,200,etc.
|
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.
|
asterisk to effectively specify multiple values.
|
||||||
|
|
||||||
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
Note that there is a :doc:`compute reduce <compute_reduce>` command
|
||||||
which can sum per-atom quantities into a global scalar or vector which
|
that 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
|
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
|
not in your input script, but by :doc:`thermodynamic output
|
||||||
<thermo_style>` or other fixes such as :doc:`fix nvt <fix_nh>` or
|
<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
|
: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
|
for how I can be specified with a wildcard asterisk to effectively
|
||||||
specify multiple values.
|
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.
|
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>`.
|
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),
|
which are converted into a series of global vectors (one per column),
|
||||||
as explained above.
|
as explained above.
|
||||||
|
|
||||||
The *ave* keyword determines how the values produced every *Nfreq*
|
The *ave* keyword determines how the values produced every
|
||||||
steps are averaged with values produced on previous steps that were
|
:math:`N_\text{freq}` steps are averaged with values produced on previous steps
|
||||||
multiples of *Nfreq*, before they are accessed by another output
|
that were multiples of :math:`N_\text{freq}`, before they are accessed by
|
||||||
command or written to a file.
|
another output command or written to a file.
|
||||||
|
|
||||||
If the *ave* setting is *one*, then the values produced on timesteps
|
If the *ave* setting is *one*, then the values produced on time steps
|
||||||
that are multiples of *Nfreq* are independent of each other; they are
|
that are multiples of :math:`N_\text{freq}` are independent of each other; they
|
||||||
output as-is without further averaging.
|
are output as-is without further averaging.
|
||||||
|
|
||||||
If the *ave* setting is *running*, then the values produced on
|
If the *ave* setting is *running*, then the values produced on
|
||||||
timesteps that are multiples of *Nfreq* are summed and averaged in a
|
time steps that are multiples of :math:`N_\text{freq}` are summed and averaged
|
||||||
cumulative sense before being output. Each output value is thus the
|
in a cumulative sense before being output. Each output value is thus the
|
||||||
average of the value produced on that timestep with all preceding
|
average of the value produced on that time step with all preceding
|
||||||
values. This running average begins when the fix is defined; it can
|
values. This running average begins when the fix is defined; it can
|
||||||
only be restarted by deleting the fix via the :doc:`unfix <unfix>`
|
only be restarted by deleting the fix via the :doc:`unfix <unfix>`
|
||||||
command, or by re-defining the fix by re-specifying it.
|
command, or by re-defining the fix by re-specifying it.
|
||||||
|
|
||||||
If the *ave* setting is *window*, then the values produced on
|
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
|
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
|
produce the output. For example, if :math:`M = 3` and
|
||||||
on step 10000 will be the average of the individual values on steps
|
:math:`N_\text{freq} = 1000`, then the output on step 10000 will be the average
|
||||||
8000,9000,10000. Outputs on early steps will average over less than M
|
of the individual values on steps 8000, 9000, and 10000. Outputs on early
|
||||||
values if they are not available.
|
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
|
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
|
setting *start* to a larger value can avoid including a 0.0 in a
|
||||||
running or windowed average.
|
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
|
value is flagged, it will not be time averaged. Instead the most
|
||||||
recent input value will always be stored and output. This is useful
|
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
|
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
|
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*
|
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
||||||
steps, one quantity or vector of quantities is written to the file for
|
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.
|
packages.
|
||||||
|
|
||||||
The *overwrite* keyword will continuously overwrite the output file
|
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.
|
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
|
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
|
printed to a file via the *file* keyword. Note that all values are
|
||||||
floating point quantities. The default format is %g. You can specify
|
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 *title1* and *title2* and *title3* keywords allow specification of
|
||||||
the strings that will be printed as the first 2 or 3 lines of the
|
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
|
This fix produces a global scalar or global vector or global array
|
||||||
which can be accessed by various :doc:`output commands <Howto_output>`.
|
which can be accessed by various :doc:`output commands <Howto_output>`.
|
||||||
The values can only be accessed on timesteps that are multiples of
|
The values can only be accessed on time steps that are multiples of
|
||||||
*Nfreq* since that is when averaging is performed.
|
:math:`N_\text{freq}` since that is when averaging is performed.
|
||||||
|
|
||||||
A scalar is produced if only a single input value is averaged and
|
A scalar is produced if only a single input value is averaged and
|
||||||
*mode* = scalar. A vector is produced if multiple input values are
|
*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.
|
inputs.
|
||||||
|
|
||||||
If the fix produces a scalar or vector, then the scalar and each
|
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
|
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
|
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
|
averaged, then the compute or fix determines whether the value is
|
||||||
intensive or extensive; see the page for that compute or fix for
|
intensive or extensive; see the page for that compute or fix for
|
||||||
further info. Values produced by a variable are treated as intensive.
|
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
|
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
|
Restrictions
|
||||||
""""""""""""
|
""""""""""""
|
||||||
@ -373,7 +378,8 @@ Restrictions
|
|||||||
Related commands
|
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>`,
|
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`,
|
||||||
|
|
||||||
Default
|
Default
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix aveforce command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID aveforce fx fy fz keyword value ...
|
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
|
value plus the component specified in this command. This means each
|
||||||
atom in the group receives the same force.
|
atom in the group receives the same force.
|
||||||
|
|
||||||
Any of the fx,fy,fz values can be specified as NULL which means the
|
Any of the *fx*, *fy*, or *fz* values can be specified as :code:`NULL`, which
|
||||||
force in that dimension is not changed. Note that this is not the
|
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
|
same as specifying a 0.0 value, since that sets all forces to the same
|
||||||
average value without adding in any additional force.
|
average value without adding in any additional force.
|
||||||
|
|
||||||
Any of the 3 quantities defining the force components can be specified
|
Any of the three quantities defining the force components, namely *fx*, *fy*,
|
||||||
as an equal-style :doc:`variable <variable>`, namely *fx*, *fy*, *fz*\ .
|
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
|
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
|
name is the variable name. In this case, the variable will be
|
||||||
evaluated each timestep, and its value used to determine the average
|
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
|
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
|
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>`
|
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.
|
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
|
by various :doc:`output commands <Howto_output>`. This is the total
|
||||||
force on the group of atoms before the forces on individual atoms are
|
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
|
changed by the fix. The vector values calculated by this fix are "extensive".
|
||||||
"extensive".
|
|
||||||
|
|
||||||
No parameter of this fix can be used with the *start/stop* keywords of
|
No parameter of this fix can be used with the *start/stop* keywords of
|
||||||
the :doc:`run <run>` command.
|
the :doc:`run <run>` command.
|
||||||
|
|||||||
@ -6,7 +6,7 @@ fix balance command
|
|||||||
Syntax
|
Syntax
|
||||||
""""""
|
""""""
|
||||||
|
|
||||||
.. parsed-literal::
|
.. code-block:: LAMMPS
|
||||||
|
|
||||||
fix ID group-ID balance Nfreq thresh style args keyword args ...
|
fix ID group-ID balance Nfreq thresh style args keyword args ...
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ Syntax
|
|||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
shift args = dimstr Niter stopthresh
|
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
|
Niter = # of times to iterate within each dimension of dimstr sequence
|
||||||
stopthresh = stop balancing when this imbalance threshold is reached
|
stopthresh = stop balancing when this imbalance threshold is reached
|
||||||
*rcb* args = none
|
*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
|
Load-balancing is typically most useful if the particles in the
|
||||||
simulation box have a spatially-varying density distribution or
|
simulation box have a spatially-varying density distribution or
|
||||||
where the computational cost varies significantly between different
|
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
|
an irregular-shaped geometry containing void regions, or
|
||||||
:doc:`hybrid pair style simulations <pair_hybrid>` which combine
|
:doc:`hybrid pair style simulations <pair_hybrid>` that combine
|
||||||
pair styles with different computational cost. In these cases, the
|
pair styles with different computational cost). In these cases, the
|
||||||
LAMMPS default of dividing the simulation box volume into a
|
LAMMPS default of dividing the simulation box volume into a
|
||||||
regular-spaced grid of 3d bricks, with one equal-volume sub-domain
|
regular-spaced grid of 3d bricks, with one equal-volume sub-domain
|
||||||
per processor, may assign numbers of particles per processor in a
|
per processor, may assign numbers of particles per processor in a
|
||||||
@ -92,28 +92,30 @@ processor.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The weighting options listed above are documented with the
|
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
|
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
|
how they can be used. The weighting options are the same for both the
|
||||||
fix balance and :doc:`balance <balance>` commands.
|
fix balance and :doc:`balance <balance>` commands.
|
||||||
|
|
||||||
Note that the :doc:`processors <processors>` command allows some control
|
Note that the :doc:`processors <processors>` command allows some control
|
||||||
over how the box volume is split across processors. Specifically, for
|
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
|
a :math:`P_x \times P_y \times P_z` grid of processors, it allows choices of
|
||||||
Pz, subject to the constraint that Px \* Py \* Pz = P, the total number
|
:math:`P_x`, :math:`P_y`, and :math:`P_z` subject to the constraint that
|
||||||
of processors. This is sufficient to achieve good load-balance for
|
: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
|
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
|
if the current "imbalance factor" in particles owned by each processor
|
||||||
exceeds the specified *thresh* parameter. The imbalance factor is
|
exceeds the specified *thresh* parameter. The imbalance factor is
|
||||||
defined as the maximum number of particles (or weight) owned by any
|
defined as the maximum number of particles (or weight) owned by any
|
||||||
processor, divided by the average number of particles (or weight) per
|
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
|
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
|
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
|
forced even if the current balance is perfect (1.0) be specifying a
|
||||||
*thresh* < 1.0.
|
*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
|
may not be achieved. For example, "grid" methods (defined below) that
|
||||||
create a logical 3d grid cannot achieve perfect balance for many
|
create a logical 3d grid cannot achieve perfect balance for many
|
||||||
irregular distributions of particles. Likewise, if a portion of the
|
irregular distributions of particles. Likewise, if a portion of the
|
||||||
system is a perfect lattice, e.g. the initial system is generated by
|
system is a perfect, non-rotated lattice (e.g., the initial system is
|
||||||
the :doc:`create_atoms <create_atoms>` command, then "grid" methods may
|
generated by the :doc:`create_atoms <create_atoms>` command with no
|
||||||
be unable to achieve exact balance. This is because entire lattice
|
rotations), then "grid" methods may be unable to achieve exact balance.
|
||||||
planes will be owned or not owned by a single processor.
|
This is because entire lattice planes will be owned or not owned by a single
|
||||||
|
processor.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The imbalance factor is also an estimate of the maximum speed-up
|
The imbalance factor is also an estimate of the maximum speed-up
|
||||||
you can hope to achieve by running a perfectly balanced simulation
|
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,
|
simulation could run up to 20% faster if it were perfectly balanced,
|
||||||
versus when imbalanced. However, computational cost is not strictly
|
versus when imbalanced. However, computational cost is not strictly
|
||||||
proportional to particle count, and changing the relative size and
|
proportional to particle count, and changing the relative size and
|
||||||
shape of processor sub-domains may lead to additional computational
|
shape of processor sub-domains may lead to additional computational
|
||||||
and communication overheads, e.g. in the PPPM solver used via the
|
and communication overheads (e.g., in the PPPM solver used via the
|
||||||
:doc:`kspace_style <kspace_style>` command. Thus you should benchmark
|
:doc:`kspace_style <kspace_style>` command). Thus, you should benchmark
|
||||||
the run times of a simulation before and after balancing.
|
the run times of a simulation before and after balancing.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The method used to perform a load balance is specified by one of the
|
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.
|
of styles.
|
||||||
|
|
||||||
The *shift* style is a "grid" method which produces a logical 3d grid
|
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
|
different groups of atoms can be affected by using the *group* weight
|
||||||
style as described below.
|
style as described below.
|
||||||
|
|
||||||
The *Nfreq* setting determines how often a re-balance is performed. If
|
The :math:`N_\text{freq}` setting determines how often a re-balance is
|
||||||
*Nfreq* > 0, then re-balancing will occur every *Nfreq* steps. Each
|
performed. If :math:`N_\text{freq} > 0`, then re-balancing will occur every
|
||||||
time a re-balance occurs, a reneighboring is triggered, so *Nfreq*
|
:math:`N_\text{freq}` steps. Each time a re-balance occurs, a reneighboring is
|
||||||
should not be too small. If *Nfreq* = 0, then re-balancing will be
|
triggered, so :math:`N_\text{freq}` should not be too small. If
|
||||||
done every time reneighboring normally occurs, as determined by the
|
: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>`
|
the :doc:`neighbor <neighbor>` and :doc:`neigh_modify <neigh_modify>`
|
||||||
command settings.
|
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.
|
in an iterative fashion, seeking to reduce the imbalance factor.
|
||||||
|
|
||||||
The *dimstr* argument is a string of characters, each of which must be
|
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
|
since there is no advantage to balancing on a dimension more than
|
||||||
once. You should normally only list dimensions where you expect there
|
once. You should normally only list dimensions where you expect there
|
||||||
to be a density variation in the particles.
|
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
|
Balancing proceeds by adjusting the cutting planes in each of the
|
||||||
dimensions listed in *dimstr*, one dimension at a time. For a single
|
dimensions listed in *dimstr*, one dimension at a time. For a single
|
||||||
dimension, the balancing operation (described below) is iterated on up
|
dimension, the balancing operation (described below) is iterated on up
|
||||||
to *Niter* times. After each dimension finishes, the imbalance factor
|
to :math:`N_\text{iter}` times. After each dimension finishes, the imbalance
|
||||||
is re-computed, and the balancing operation halts if the *stopthresh*
|
factor is re-computed, and the balancing operation halts if the *stopthresh*
|
||||||
criterion is met.
|
criterion is met.
|
||||||
|
|
||||||
A re-balance operation in a single dimension is performed using a
|
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
|
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
|
of this bracketing region shrinks based on the local density, as
|
||||||
described above, which should typically be 1/2 or more every
|
described above, which should typically be 1/2 or more every
|
||||||
iteration. Thus if *Niter* is specified as 10, the cutting plane will
|
iteration. Thus if :math:`N_\text{iter}` is specified as 10, the cutting
|
||||||
typically be positioned to better than 1 part in 1000 accuracy
|
plane will typically be positioned to better than 1 part in 1000 accuracy
|
||||||
(relative to the perfect target position). For *Niter* = 20, it will
|
(relative to the perfect target position). For :math:`N_\text{iter} = 20`,
|
||||||
be accurate to better than 1 part in a million. Thus there is no need
|
it will be accurate to better than 1 part in a million. Thus there is no
|
||||||
to set *Niter* to a large value. This is especially true if you are
|
need to set :math:`N_\text{iter}` to a large value. This is especially true
|
||||||
re-balancing often enough that each time you expect only an incremental
|
if you are re-balancing often enough that each time you expect only an
|
||||||
adjustment in the cutting planes is necessary. LAMMPS will check if
|
incremental adjustment in the cutting planes is necessary. LAMMPS will
|
||||||
the threshold accuracy is reached (in a dimension) is less iterations
|
check if the threshold accuracy is reached (in a dimension) is less
|
||||||
than *Niter* and exit early.
|
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
|
above. It performs a recursive coordinate bisectioning (RCB) of the
|
||||||
simulation domain. The basic idea is as follows.
|
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.
|
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
|
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
|
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
|
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
|
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
|
box should own for load balance to be perfect. This also makes load
|
||||||
balance for the upper box perfect. The positioning is done
|
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
|
of the sub-domain for each processor after the balancing operation
|
||||||
completes. The format of the file is compatible with the
|
completes. The format of the file is compatible with the
|
||||||
`Pizza.py <pizza_>`_ *mdump* tool which has support for manipulating and
|
`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:
|
processors for a 2d problem:
|
||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
@ -349,27 +353,28 @@ processors for a 2d problem:
|
|||||||
3 1 9 10 11 12
|
3 1 9 10 11 12
|
||||||
4 1 13 14 15 16
|
4 1 13 14 15 16
|
||||||
|
|
||||||
The coordinates of all the vertices are listed in the NODES section, 5
|
The coordinates of all the vertices are listed in the NODES section, five
|
||||||
per processor. Note that the 4 sub-domains share vertices, so there
|
per processor. Note that the four sub-domains share vertices, so there
|
||||||
will be duplicate nodes in the list.
|
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).
|
rectangle for each processor (1 to 4).
|
||||||
|
|
||||||
For a 3d problem, the syntax is similar with 8 vertices listed for
|
For a 3d problem, the syntax is similar but with eight vertices listed for
|
||||||
each processor, instead of 4, and "SQUARES" replaced by "CUBES".
|
each processor instead of four, and "SQUARES" replaced by "CUBES."
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Restart, fix_modify, output, run start/stop, minimize info
|
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
|
||||||
are relevant to this fix.
|
: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
|
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
|
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:
|
values in the vector are as follows:
|
||||||
|
|
||||||
* 1 = max # of particles per processor
|
* 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) on any processor to the average
|
||||||
number of particles (or total weight) per processor.
|
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
|
These quantities can be accessed by various
|
||||||
by this fix are "intensive".
|
: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
|
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
|
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.
|
appear in *dimstr* for the *shift* style.
|
||||||
|
|
||||||
Balancing through recursive bisectioning (\ *rcb* style) requires
|
Balancing through recursive bisectioning (\ *rcb* style) requires
|
||||||
:doc:`comm_style tiled <comm_style>`
|
:doc:`comm_style tiled <comm_style>`\ .
|
||||||
|
|
||||||
Related commands
|
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
|
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
|
specified for each of the ntypes LAMMPS atom types. Ntypes is
|
||||||
typically specified via the create_box command or in the data file
|
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
|
read by the read_data command.
|
||||||
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
|
If this keyword is specified, then this fix will send the MDI
|
||||||
so that atom type values are consistent in both codes, then the
|
">ELEMENTS" command to the engine, to insure the two codes are
|
||||||
*elements* keyword is not needed. Otherwise the keyword can be used
|
consistent in their definition of atomic species. If this keyword is
|
||||||
to insure the two codes are consistent in their definition of atomic
|
not specified, then this fix will send the MDI >TYPES command to the
|
||||||
species.
|
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.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ Syntax
|
|||||||
|
|
||||||
.. parsed-literal::
|
.. parsed-literal::
|
||||||
|
|
||||||
*engine* args = zero or more keyword arg pairs
|
*engine* args = zero or more keyword/args pairs
|
||||||
keywords = *elements*
|
keywords = *elements*
|
||||||
*elements* args = N_1 N_2 ... N_ntypes
|
*elements* args = N_1 N_2 ... N_ntypes
|
||||||
N_1,N_2,...N_ntypes = atomic number for each of ntypes LAMMPS atom types
|
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*
|
keywords = *mdi* or *infile* or *extra* or *command*
|
||||||
*mdi* value = args passed to MDI for driver to operate with plugins (required)
|
*mdi* value = args passed to MDI for driver to operate with plugins (required)
|
||||||
*infile* value = filename the engine will read at start-up (optional)
|
*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)
|
*command* value = a LAMMPS input script command to execute (required)
|
||||||
*connect* args = none
|
*connect* args = none
|
||||||
*exit* 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
|
drivers and engines can query their names to verify they are values
|
||||||
they expect.
|
they expect.
|
||||||
|
|
||||||
The *infile* keyword is also required. It is the name of an input
|
The *infile* keyword is optional. It sets the name of an input script
|
||||||
script which the engine will open and process. MDI will pass it as a
|
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
|
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
|
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
|
The *extra* keyword is optional. It contains additional command-line
|
||||||
arguments which MDI will pass to the library when it is launched.
|
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::
|
.. note::
|
||||||
|
|
||||||
When the single *command* is complete, LAMMPS will send an MDI
|
When the *command* is complete, LAMMPS will send an MDI EXIT
|
||||||
EXIT command to the plugin engine and the plugin will be removed.
|
command to the plugin engine and the plugin will be removed. The
|
||||||
The "mdi plugin" command will then exit and the next command
|
"mdi plugin" command will then exit and the next command (if any)
|
||||||
(if any) in the LAMMPS input script will be processed. A subsequent
|
in the LAMMPS input script will be processed. A subsequent "mdi
|
||||||
"mdi plugin" command could then load the same library plugin or
|
plugin" command could then load the same or a different MDI
|
||||||
a different one if desired.
|
plugin if desired.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,7 @@ Syntax
|
|||||||
restart N root keyword value ...
|
restart N root keyword value ...
|
||||||
restart N file1 file2 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)
|
* N can be a variable (see below)
|
||||||
* root = filename to which timestep # is appended
|
* root = filename to which timestep # is appended
|
||||||
* file1,file2 = two full filenames, toggle between them when writing file
|
* 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
|
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
|
simulation on timesteps which are a multiple of N. A value of N = 0
|
||||||
a run proceeds. A value of 0 means do not write out any restart
|
means do not write out any restart files, which is the default.
|
||||||
files. The two modes are as follows. If one filename is specified, a
|
Restart files are written in one (or both) of two modes as a run
|
||||||
series of filenames will be created which include the timestep in the
|
proceeds. If one filename is specified, a series of filenames will be
|
||||||
filename. If two filenames are specified, only 2 restart files will
|
created which include the timestep in the filename. If two filenames
|
||||||
be created, with those names. LAMMPS will toggle between the 2 names
|
are specified, only 2 restart files will be created, with those names.
|
||||||
as it writes successive restart files.
|
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
|
Note that you can specify the restart command twice, once with a
|
||||||
single filename and once with two filenames. This would allow you,
|
single filename and once with two filenames. This would allow you,
|
||||||
|
|||||||
@ -6,7 +6,7 @@ LAMMPS_COMMANDS = ("angle_coeff", "angle_style", "atom_modify", "atom_style",
|
|||||||
"clear", "comm_modify", "comm_style",
|
"clear", "comm_modify", "comm_style",
|
||||||
"compute_modify", "create_atoms", "create_bonds", "create_box", "delete_atoms",
|
"compute_modify", "create_atoms", "create_bonds", "create_box", "delete_atoms",
|
||||||
"delete_bonds", "dielectric", "dihedral_coeff", "dihedral_style", "dimension",
|
"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",
|
"fix_modify", "group2ndx", "hyper", "if", "improper_coeff",
|
||||||
"improper_style", "include", "info", "jump", "kim",
|
"improper_style", "include", "info", "jump", "kim",
|
||||||
"kspace_modify", "kspace_style", "label", "lattice",
|
"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",
|
"partition", "prd", "print", "processors", "python", "quit", "read_data",
|
||||||
"read_dump", "read_restart", "replicate", "rerun", "reset_ids",
|
"read_dump", "read_restart", "replicate", "rerun", "reset_ids",
|
||||||
"reset_timestep", "restart", "run", "run_style", "server", "set", "shell",
|
"reset_timestep", "restart", "run", "run_style", "server", "set", "shell",
|
||||||
"special_bonds", "suffix", "tad", "temper", "temper/grem", "temper/npt",
|
"special_bonds", "suffix", "tad", "temper", "temper/grem", "temper/npt", "then",
|
||||||
"thermo", "thermo_modify", "thermo_style", "then", "third_order", "timer", "timestep",
|
"thermo", "thermo_modify", "thermo_style", "third_order", "timer", "timestep",
|
||||||
"units", "velocity", "write_coeff",
|
"units", "velocity", "write_coeff",
|
||||||
"write_data", "write_restart")
|
"write_data", "write_restart")
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ Masses
|
|||||||
2 1
|
2 1
|
||||||
3 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
|
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
|
2 0 1 0 0.500101 0.866201 9.99798 0 0 1 0.866 8 6 6 0
|
||||||
|
|||||||
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
|
||||||
149
examples/QM/LATTE/README
Normal file
149
examples/QM/LATTE/README
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
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 CMake (NOTE: do not use traditional make for this use case)
|
||||||
|
|
||||||
|
% 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 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
|
||||||
67
examples/QM/LATTE/latte.in
Executable file
67
examples/QM/LATTE/latte.in
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#General controls
|
||||||
|
CONTROL{
|
||||||
|
XCONTROL= 1
|
||||||
|
BASISTYPE= NONORTHO
|
||||||
|
PARAMPATH= './'
|
||||||
|
SCLTYPE= TABLE
|
||||||
|
DEBUGON= 0
|
||||||
|
FERMIM= 6
|
||||||
|
CGORLIB= 1 CGTOL= 1.0e-6
|
||||||
|
KBT= 1.0
|
||||||
|
NORECS= 5
|
||||||
|
ENTROPYKIND= 1
|
||||||
|
PPOTON= 2 VDWON= 0
|
||||||
|
SPINON= 0 SPINTOL= 1.0e-4
|
||||||
|
ELECTRO= 1 ELECMETH= 0 ELEC_ETOL= 0.001 ELEC_QTOL= 1.0e-12
|
||||||
|
COULACC= 1.0e-6 COULCUT= -500.0 COULR1= 500.0
|
||||||
|
MAXSCF= 250
|
||||||
|
BREAKTOL= 1.0E-12 MINSP2ITER= 22 SP2CONV= REL
|
||||||
|
FULLQCONV= 1 QITER= 0
|
||||||
|
QMIX= 0.05 SPINMIX= 0.05 MDMIX= 0.05
|
||||||
|
#QMIX= 0.25 SPINMIX= 0.25 MDMIX= 0.25
|
||||||
|
ORDERNMOL= 0
|
||||||
|
SPARSEON= 0 THRESHOLDON= 1 NUMTHRESH= 1.0e-6 FILLINSTOP= 100 BLKSZ= 4
|
||||||
|
MSPARSE= 3000
|
||||||
|
LCNON= 0 LCNITER= 4 CHTOL= 0.01
|
||||||
|
SKIN= 1.0
|
||||||
|
RELAX= 0 RELAXTYPE= SD MAXITER= 100 RLXFTOL= 0.001
|
||||||
|
MDON= 1
|
||||||
|
PBCON= 1
|
||||||
|
RESTART= 0
|
||||||
|
CHARGE= 0
|
||||||
|
XBO= 1
|
||||||
|
XBODISON= 1
|
||||||
|
XBODISORDER= 5
|
||||||
|
NGPU= 2
|
||||||
|
KON= 0
|
||||||
|
COMPFORCE= 1
|
||||||
|
DOSFIT= 0 INTS2FIT= 1 BETA= 1000.0 NFITSTEP= 5000 QFIT= 0 MCSIGMA= 0.2
|
||||||
|
PPFITON= 0
|
||||||
|
ALLFITON= 0
|
||||||
|
PPSTEP= 500 BISTEP= 500 PP2FIT= 2 BINT2FIT= 6
|
||||||
|
PPBETA= 1000.0 PPSIGMA= 0.01 PPNMOL= 10 PPNGEOM= 200
|
||||||
|
PARREP= 0
|
||||||
|
ER= 1.0
|
||||||
|
#DOKERNEL= T
|
||||||
|
}
|
||||||
|
|
||||||
|
MDCONTROL{
|
||||||
|
MAXITER= 2000
|
||||||
|
UDNEIGH= 1
|
||||||
|
DT= 0.5
|
||||||
|
TEMPERATURE= 1.0e-10 RNDIST= GAUSSIAN SEEDINIT= UNIFORM
|
||||||
|
DUMPFREQ= 250
|
||||||
|
RSFREQ= 500
|
||||||
|
WRTFREQ= 1
|
||||||
|
TOINITTEMP5= 1
|
||||||
|
THERMPER= 500
|
||||||
|
THERMRUN= 50000
|
||||||
|
NVTON= 0 NPTON= 0 AVEPER= 1000 FRICTION= 1000.0 SEED= 54
|
||||||
|
PTARGET= 0.0 NPTTYPE= ISO
|
||||||
|
SHOCKON= 0
|
||||||
|
SHOCKSTART= 100000
|
||||||
|
SHOCKDIR= 1
|
||||||
|
UPARTICLE= 500.0 USHOCK= -4590.0 C0= 1300.0
|
||||||
|
MDADAPT= 0
|
||||||
|
GETHUG= 0 E0= -795.725 V0= 896.984864 P0= 0.083149
|
||||||
|
}
|
||||||
102
examples/QM/LATTE/log.8Sep22.aimd.lammps.mpi.1
Normal file
102
examples/QM/LATTE/log.8Sep22.aimd.lammps.mpi.1
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
LAMMPS (23 Jun 2022)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 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
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
6 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.003 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 6.489 | 6.489 | 6.489 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 300 -50.539035 -50.345145 -120197.6
|
||||||
|
1 307.57345 -50.544722 -50.345937 -120123.27
|
||||||
|
2 316.3757 -50.551342 -50.346868 -120035.12
|
||||||
|
3 326.39203 -50.558885 -50.347938 -119933.11
|
||||||
|
4 337.60559 -50.567341 -50.349146 -119817.17
|
||||||
|
5 349.99734 -50.576697 -50.350493 -119687.24
|
||||||
|
6 363.54606 -50.586939 -50.351979 -119543.23
|
||||||
|
7 378.22834 -50.598054 -50.353605 -119385.07
|
||||||
|
8 394.0186 -50.610024 -50.355369 -119212.67
|
||||||
|
9 410.88903 -50.622831 -50.357273 -119025.94
|
||||||
|
10 428.80963 -50.636457 -50.359317 -118824.77
|
||||||
|
11 447.74819 -50.65088 -50.3615 -118609.06
|
||||||
|
12 467.67027 -50.666079 -50.363823 -118378.7
|
||||||
|
13 488.53922 -50.68203 -50.366287 -118133.58
|
||||||
|
14 510.31617 -50.698708 -50.36889 -117873.58
|
||||||
|
15 532.96002 -50.716086 -50.371633 -117598.57
|
||||||
|
16 556.42747 -50.734137 -50.374517 -117308.44
|
||||||
|
17 580.67298 -50.75283 -50.377541 -117003.05
|
||||||
|
18 605.64879 -50.772136 -50.380705 -116682.27
|
||||||
|
19 631.30497 -50.792023 -50.38401 -116345.95
|
||||||
|
20 657.58937 -50.812455 -50.387454 -115993.97
|
||||||
|
Loop time of 3.40001 on 1 procs for 20 steps with 6 atoms
|
||||||
|
|
||||||
|
Performance: 0.127 ns/day, 188.889 hours/ns, 5.882 timesteps/s
|
||||||
|
100.0% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 1.2223e-05 | 1.2223e-05 | 1.2223e-05 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 6.0971e-05 | 6.0971e-05 | 6.0971e-05 | 0.0 | 0.00
|
||||||
|
Output | 0.0009257 | 0.0009257 | 0.0009257 | 0.0 | 0.03
|
||||||
|
Modify | 3.3989 | 3.3989 | 3.3989 | 0.0 | 99.97
|
||||||
|
Other | | 6.824e-05 | | | 0.00
|
||||||
|
|
||||||
|
Nlocal: 6 ave 6 max 6 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 2 ave 2 max 2 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:03
|
||||||
102
examples/QM/LATTE/log.8Sep22.aimd.lammps.mpi.2
Normal file
102
examples/QM/LATTE/log.8Sep22.aimd.lammps.mpi.2
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
LAMMPS (23 Jun 2022)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 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
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
2 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
6 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.005 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.485 | 5.987 | 6.489 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 300 -50.539035 -50.345145 -120197.6
|
||||||
|
1 307.57345 -50.544722 -50.345937 -120123.27
|
||||||
|
2 316.3757 -50.551342 -50.346868 -120035.12
|
||||||
|
3 326.39203 -50.558885 -50.347938 -119933.11
|
||||||
|
4 337.60559 -50.567341 -50.349146 -119817.17
|
||||||
|
5 349.99734 -50.576697 -50.350493 -119687.24
|
||||||
|
6 363.54606 -50.586939 -50.351979 -119543.23
|
||||||
|
7 378.22834 -50.598054 -50.353605 -119385.07
|
||||||
|
8 394.0186 -50.610024 -50.355369 -119212.67
|
||||||
|
9 410.88903 -50.622831 -50.357273 -119025.94
|
||||||
|
10 428.80963 -50.636457 -50.359317 -118824.77
|
||||||
|
11 447.74819 -50.65088 -50.3615 -118609.06
|
||||||
|
12 467.67027 -50.666079 -50.363823 -118378.7
|
||||||
|
13 488.53922 -50.68203 -50.366287 -118133.58
|
||||||
|
14 510.31617 -50.698708 -50.36889 -117873.58
|
||||||
|
15 532.96002 -50.716086 -50.371633 -117598.57
|
||||||
|
16 556.42747 -50.734137 -50.374517 -117308.44
|
||||||
|
17 580.67298 -50.75283 -50.377541 -117003.05
|
||||||
|
18 605.64879 -50.772136 -50.380705 -116682.27
|
||||||
|
19 631.30497 -50.792023 -50.38401 -116345.95
|
||||||
|
20 657.58937 -50.812455 -50.387454 -115993.97
|
||||||
|
Loop time of 25.2055 on 2 procs for 20 steps with 6 atoms
|
||||||
|
|
||||||
|
Performance: 0.017 ns/day, 1400.306 hours/ns, 0.793 timesteps/s
|
||||||
|
99.9% CPU use with 2 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 1.746e-05 | 2.5213e-05 | 3.2966e-05 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 4.3862e-05 | 5.4267e-05 | 6.4671e-05 | 0.0 | 0.00
|
||||||
|
Output | 0.001642 | 0.0018189 | 0.0019957 | 0.4 | 0.01
|
||||||
|
Modify | 25.203 | 25.203 | 25.203 | 0.0 | 99.99
|
||||||
|
Other | | 0.000307 | | | 0.00
|
||||||
|
|
||||||
|
Nlocal: 3 ave 6 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Nghost: 1 ave 2 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 2 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:26
|
||||||
103
examples/QM/LATTE/log.8Sep22.aimd.lammps.plugin
Normal file
103
examples/QM/LATTE/log.8Sep22.aimd.lammps.plugin
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
LAMMPS (23 Jun 2022)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 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
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
6 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.004 seconds
|
||||||
|
|
||||||
|
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"
|
||||||
|
run 20
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 6.489 | 6.489 | 6.489 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 300 -50.539035 -50.345145 -120197.6
|
||||||
|
1 307.57345 -50.544722 -50.345937 -120123.27
|
||||||
|
2 316.3757 -50.551342 -50.346868 -120035.12
|
||||||
|
3 326.39203 -50.558885 -50.347938 -119933.11
|
||||||
|
4 337.60559 -50.567341 -50.349146 -119817.17
|
||||||
|
5 349.99734 -50.576697 -50.350493 -119687.24
|
||||||
|
6 363.54606 -50.586939 -50.351979 -119543.23
|
||||||
|
7 378.22834 -50.598054 -50.353605 -119385.07
|
||||||
|
8 394.0186 -50.610024 -50.355369 -119212.67
|
||||||
|
9 410.88903 -50.622831 -50.357273 -119025.94
|
||||||
|
10 428.80963 -50.636457 -50.359317 -118824.77
|
||||||
|
11 447.74819 -50.65088 -50.3615 -118609.06
|
||||||
|
12 467.67027 -50.666079 -50.363823 -118378.7
|
||||||
|
13 488.53922 -50.68203 -50.366287 -118133.58
|
||||||
|
14 510.31617 -50.698708 -50.36889 -117873.58
|
||||||
|
15 532.96002 -50.716086 -50.371633 -117598.57
|
||||||
|
16 556.42747 -50.734137 -50.374517 -117308.44
|
||||||
|
17 580.67298 -50.75283 -50.377541 -117003.05
|
||||||
|
18 605.64879 -50.772136 -50.380705 -116682.27
|
||||||
|
19 631.30497 -50.792023 -50.38401 -116345.95
|
||||||
|
20 657.58937 -50.812455 -50.387454 -115993.97
|
||||||
|
Loop time of 2.74435 on 1 procs for 20 steps with 6 atoms
|
||||||
|
|
||||||
|
Performance: 0.157 ns/day, 152.464 hours/ns, 7.288 timesteps/s
|
||||||
|
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 1.299e-05 | 1.299e-05 | 1.299e-05 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 7.9198e-05 | 7.9198e-05 | 7.9198e-05 | 0.0 | 0.00
|
||||||
|
Output | 0.001118 | 0.001118 | 0.001118 | 0.0 | 0.04
|
||||||
|
Modify | 2.743 | 2.743 | 2.743 | 0.0 | 99.95
|
||||||
|
Other | | 0.0001456 | | | 0.01
|
||||||
|
|
||||||
|
Nlocal: 6 ave 6 max 6 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 2 ave 2 max 2 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
Total wall time: 0:00:03
|
||||||
12604
examples/QM/LATTE/log.8Sep22.aimd.latte.1
Normal file
12604
examples/QM/LATTE/log.8Sep22.aimd.latte.1
Normal file
File diff suppressed because it is too large
Load Diff
12604
examples/QM/LATTE/log.8Sep22.aimd.latte.2
Normal file
12604
examples/QM/LATTE/log.8Sep22.aimd.latte.2
Normal file
File diff suppressed because it is too large
Load Diff
12604
examples/QM/LATTE/log.8Sep22.aimd.latte.plugin
Normal file
12604
examples/QM/LATTE/log.8Sep22.aimd.latte.plugin
Normal file
File diff suppressed because it is too large
Load Diff
263
examples/QM/LATTE/log.8Sep22.series.lammps.mpi.1
Normal file
263
examples/QM/LATTE/log.8Sep22.series.lammps.mpi.1
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
LAMMPS (23 Jun 2022)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 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
|
||||||
|
read_data 2uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
6 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.003 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -50.539035 -50.539035 -120855.2
|
||||||
|
Loop time of 1.397e-06 on 1 procs for 0 steps with 6 atoms
|
||||||
|
|
||||||
|
71.6% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.397e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 6 ave 6 max 6 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 2 ave 2 max 2 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.mpi.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.mpi.2uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
atom_modify sort 0 0.0
|
||||||
|
|
||||||
|
read_data ${files}.lmp
|
||||||
|
read_data 3uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (16.2 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
9 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.002 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 16.2, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -78.155679 -78.155679 -99931.431
|
||||||
|
Loop time of 1.117e-06 on 1 procs for 0 steps with 9 atoms
|
||||||
|
|
||||||
|
89.5% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.117e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 9 ave 9 max 9 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 3 ave 3 max 3 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.mpi.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.mpi.3uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
atom_modify sort 0 0.0
|
||||||
|
|
||||||
|
read_data ${files}.lmp
|
||||||
|
read_data 4uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 10.8 5.4) with tilt (6.6130927e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
12 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -102.35713 -102.35713 -31036.168
|
||||||
|
Loop time of 1.466e-06 on 1 procs for 0 steps with 12 atoms
|
||||||
|
|
||||||
|
136.4% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.466e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 12 ave 12 max 12 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 5 ave 5 max 5 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.mpi.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.mpi.4uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
mdi exit
|
||||||
|
Total wall time: 0:00:02
|
||||||
263
examples/QM/LATTE/log.8Sep22.series.lammps.mpi.2
Normal file
263
examples/QM/LATTE/log.8Sep22.series.lammps.mpi.2
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
LAMMPS (23 Jun 2022)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 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
|
||||||
|
read_data 2uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
2 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
6 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.004 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.234 | 5.236 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -50.539035 -50.539035 -120855.2
|
||||||
|
Loop time of 1.956e-06 on 2 procs for 0 steps with 6 atoms
|
||||||
|
|
||||||
|
127.8% CPU use with 2 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.956e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 3 ave 6 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Nghost: 1 ave 2 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 2 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.mpi.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.mpi.2uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
atom_modify sort 0 0.0
|
||||||
|
|
||||||
|
read_data ${files}.lmp
|
||||||
|
read_data 3uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (16.2 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
2 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
9 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 16.2, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.234 | 5.236 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -78.155679 -78.155679 -99931.431
|
||||||
|
Loop time of 2.375e-06 on 2 procs for 0 steps with 9 atoms
|
||||||
|
|
||||||
|
147.4% CPU use with 2 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 2.375e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 4.5 ave 9 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Nghost: 1.5 ave 3 max 0 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 2 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.mpi.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.mpi.3uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
atom_modify sort 0 0.0
|
||||||
|
|
||||||
|
read_data ${files}.lmp
|
||||||
|
read_data 4uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 10.8 5.4) with tilt (6.6130927e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 2 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
12 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.002 seconds
|
||||||
|
|
||||||
|
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
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -102.35713 -102.35713 -31036.168
|
||||||
|
Loop time of 2.4445e-06 on 2 procs for 0 steps with 12 atoms
|
||||||
|
|
||||||
|
122.7% CPU use with 2 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 2.444e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 6 ave 6 max 6 min
|
||||||
|
Histogram: 2 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 2.5 ave 4 max 1 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 1
|
||||||
|
Neighs: 0 ave 0 max 0 min
|
||||||
|
Histogram: 2 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.mpi.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.mpi.4uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
mdi exit
|
||||||
|
Total wall time: 0:00:08
|
||||||
256
examples/QM/LATTE/log.8Sep22.series.lammps.plugin
Normal file
256
examples/QM/LATTE/log.8Sep22.series.lammps.plugin
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
LAMMPS (23 Jun 2022)
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
# 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
|
||||||
|
read_data 2uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
6 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.004 seconds
|
||||||
|
|
||||||
|
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"
|
||||||
|
run 0
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -50.539035 -50.539035 -120855.2
|
||||||
|
Loop time of 1.396e-06 on 1 procs for 0 steps with 6 atoms
|
||||||
|
|
||||||
|
143.3% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.396e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 6 ave 6 max 6 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 2 ave 2 max 2 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.plugin.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.plugin.2uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
atom_modify sort 0 0.0
|
||||||
|
|
||||||
|
read_data ${files}.lmp
|
||||||
|
read_data 3uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (16.2 5.4 5.4) with tilt (3.3065464e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
9 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.002 seconds
|
||||||
|
|
||||||
|
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"
|
||||||
|
run 0
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 16.2, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -78.155679 -78.155679 -99931.431
|
||||||
|
Loop time of 1.117e-06 on 1 procs for 0 steps with 9 atoms
|
||||||
|
|
||||||
|
89.5% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.117e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 9 ave 9 max 9 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 3 ave 3 max 3 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.plugin.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.plugin.3uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
|
||||||
|
units metal
|
||||||
|
atom_style full
|
||||||
|
atom_modify sort 0 0.0
|
||||||
|
|
||||||
|
read_data ${files}.lmp
|
||||||
|
read_data 4uo2.lmp
|
||||||
|
Reading data file ...
|
||||||
|
triclinic box = (0 0 0) to (10.8 10.8 5.4) with tilt (6.6130927e-16 3.3065464e-16 3.3065464e-16)
|
||||||
|
1 by 1 by 1 MPI processor grid
|
||||||
|
reading atoms ...
|
||||||
|
12 atoms
|
||||||
|
Finding 1-2 1-3 1-4 neighbors ...
|
||||||
|
special bond factors lj: 0 0 0
|
||||||
|
special bond factors coul: 0 0 0
|
||||||
|
0 = max # of 1-2 neighbors
|
||||||
|
0 = max # of 1-3 neighbors
|
||||||
|
0 = max # of 1-4 neighbors
|
||||||
|
1 = max # of special neighbors
|
||||||
|
special bonds CPU = 0.000 seconds
|
||||||
|
read_data CPU = 0.001 seconds
|
||||||
|
|
||||||
|
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"
|
||||||
|
run 0
|
||||||
|
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
|
||||||
|
Neighbor list info ...
|
||||||
|
update every 1 steps, delay 0 steps, check yes
|
||||||
|
max neighbors/atom: 2000, page size: 100000
|
||||||
|
master list distance cutoff = 0
|
||||||
|
ghost atom cutoff = 0
|
||||||
|
binsize = 10.8, bins = 1 1 1
|
||||||
|
0 neighbor lists, perpetual/occasional/extra = 0 0 0
|
||||||
|
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:210)
|
||||||
|
Per MPI rank memory allocation (min/avg/max) = 5.238 | 5.238 | 5.238 Mbytes
|
||||||
|
Step Temp PotEng TotEng Press
|
||||||
|
0 0 -102.35713 -102.35713 -31036.168
|
||||||
|
Loop time of 1.048e-06 on 1 procs for 0 steps with 12 atoms
|
||||||
|
|
||||||
|
190.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
|
MPI task timing breakdown:
|
||||||
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Pair | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Bond | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Comm | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||||
|
Other | | 1.048e-06 | | |100.00
|
||||||
|
|
||||||
|
Nlocal: 12 ave 12 max 12 min
|
||||||
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
Nghost: 5 ave 5 max 5 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
|
||||||
|
|
||||||
|
Total # of neighbors = 0
|
||||||
|
Ave neighs/atom = 0
|
||||||
|
Ave special neighs/atom = 0
|
||||||
|
Neighbor list builds = 0
|
||||||
|
Dangerous builds = 0
|
||||||
|
|
||||||
|
write_dump all custom dump.series.plugin.${files} id type x y z fx fy fz modify sort id
|
||||||
|
write_dump all custom dump.series.plugin.4uo2 id type x y z fx fy fz modify sort id
|
||||||
|
|
||||||
|
clear
|
||||||
|
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||||
|
using 1 OpenMP thread(s) per MPI task
|
||||||
|
|
||||||
|
next files
|
||||||
|
|
||||||
|
jump SELF LOOP
|
||||||
|
Total wall time: 0:00:01
|
||||||
3209
examples/QM/LATTE/log.8Sep22.series.latte.1
Normal file
3209
examples/QM/LATTE/log.8Sep22.series.latte.1
Normal file
File diff suppressed because it is too large
Load Diff
3209
examples/QM/LATTE/log.8Sep22.series.latte.2
Normal file
3209
examples/QM/LATTE/log.8Sep22.series.latte.2
Normal file
File diff suppressed because it is too large
Load Diff
178
examples/QM/LATTE/ppots.dftb
Normal file
178
examples/QM/LATTE/ppots.dftb
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
3
|
||||||
|
U O
|
||||||
|
101
|
||||||
|
1.0000000000000000 53.452052832272599
|
||||||
|
1.0520000000000000 48.423668742582244
|
||||||
|
1.1040000000000001 43.721445018814535
|
||||||
|
1.1560000000000001 39.334296276283553
|
||||||
|
1.2080000000000000 35.251137130303420
|
||||||
|
1.2600000000000000 31.460882196188166
|
||||||
|
1.3120000000000001 27.952446089251964
|
||||||
|
1.3639999999999999 24.714743424808852
|
||||||
|
1.4159999999999999 21.736688818172937
|
||||||
|
1.4680000000000000 19.007196884658306
|
||||||
|
1.5200000000000000 16.515182239579076
|
||||||
|
1.5720000000000001 14.249559498249329
|
||||||
|
1.6240000000000001 12.199243275983154
|
||||||
|
1.6760000000000002 10.353148188094648
|
||||||
|
1.7280000000000000 8.7001888498979163
|
||||||
|
1.7800000000000000 7.2292798767070447
|
||||||
|
1.8320000000000001 5.9293358838361092
|
||||||
|
1.8839999999999999 4.7892714865992376
|
||||||
|
1.9359999999999999 3.7980013003104953
|
||||||
|
1.9880000000000000 2.9444399402839894
|
||||||
|
2.0400000000000000 2.2175020218338095
|
||||||
|
2.0920000000000001 1.6061021602740548
|
||||||
|
2.1440000000000001 1.0991549709188142
|
||||||
|
2.1960000000000002 0.68557506908218180
|
||||||
|
2.2480000000000002 0.35427707007825704
|
||||||
|
2.2999999999999998 9.4175589221130632E-002
|
||||||
|
2.3520000000000003 -0.10581475817510910
|
||||||
|
2.4039999999999999 -0.25677935679635860
|
||||||
|
2.4560000000000000 -0.36980359132853102
|
||||||
|
2.5080000000000000 -0.45596679597127698
|
||||||
|
2.5600000000000001 -0.52381995798172376
|
||||||
|
2.6120000000000001 -0.57548542297431915
|
||||||
|
2.6640000000000001 -0.61207888691334400
|
||||||
|
2.7160000000000002 -0.63471604576307783
|
||||||
|
2.7679999999999998 -0.64451259548780349
|
||||||
|
2.8200000000000003 -0.64258423205180126
|
||||||
|
2.8719999999999999 -0.63004665141935134
|
||||||
|
2.9240000000000004 -0.60801554955473625
|
||||||
|
2.9760000000000000 -0.57760662242223493
|
||||||
|
3.0280000000000000 -0.53993556598613002
|
||||||
|
3.0800000000000001 -0.49611807621070214
|
||||||
|
3.1320000000000001 -0.44726984906023193
|
||||||
|
3.1840000000000002 -0.39450658049900023
|
||||||
|
3.2359999999999998 -0.33894396649128961
|
||||||
|
3.2880000000000003 -0.28169770300137842
|
||||||
|
3.3399999999999999 -0.22388348599354982
|
||||||
|
3.3920000000000003 -0.16661701143208349
|
||||||
|
3.4440000000000000 -0.11101397528126161
|
||||||
|
3.4960000000000004 -5.8190073505363524E-002
|
||||||
|
3.5480000000000000 -9.2610020686722198E-003
|
||||||
|
3.6000000000000001 3.4657543064533058E-002
|
||||||
|
3.6519999999999997 7.2695102245010301E-002
|
||||||
|
3.7040000000000002 0.10496216108368017
|
||||||
|
3.7560000000000002 0.13181444150650151
|
||||||
|
3.8080000000000003 0.15360766543943441
|
||||||
|
3.8599999999999999 0.17069755480843840
|
||||||
|
3.9119999999999999 0.18343983153947352
|
||||||
|
3.9640000000000004 0.19219021755849935
|
||||||
|
4.0160000000000000 0.19730443479147558
|
||||||
|
4.0679999999999996 0.19913820516436204
|
||||||
|
4.1200000000000001 0.19804725060311840
|
||||||
|
4.1719999999999997 0.19438729303370450
|
||||||
|
4.2240000000000002 0.18851405438207983
|
||||||
|
4.2759999999999998 0.18078325657420447
|
||||||
|
4.3280000000000003 0.17155062153603778
|
||||||
|
4.3799999999999999 0.16117187119353987
|
||||||
|
4.4320000000000004 0.15000272747267010
|
||||||
|
4.4840000000000000 0.13839891229938861
|
||||||
|
4.5359999999999996 0.12671614759965491
|
||||||
|
4.5880000000000001 0.11531015529942858
|
||||||
|
4.6400000000000006 0.10450791010072910
|
||||||
|
4.6920000000000002 9.4401608127654982E-002
|
||||||
|
4.7439999999999998 8.4968801575229971E-002
|
||||||
|
4.7960000000000003 7.6186266463431560E-002
|
||||||
|
4.8480000000000008 6.8030778812237541E-002
|
||||||
|
4.9000000000000004 6.0479114641625663E-002
|
||||||
|
4.9520000000000000 5.3508049971573365E-002
|
||||||
|
5.0040000000000004 4.7094360822058187E-002
|
||||||
|
5.0560000000000000 4.1214823213057958E-002
|
||||||
|
5.1080000000000005 3.5846213164550077E-002
|
||||||
|
5.1600000000000001 3.0965306696512353E-002
|
||||||
|
5.2119999999999997 2.6548879828922314E-002
|
||||||
|
5.2640000000000002 2.2573708581757501E-002
|
||||||
|
5.3159999999999998 1.9016568974995669E-002
|
||||||
|
5.3680000000000003 1.5854237028614312E-002
|
||||||
|
5.4199999999999999 1.3063488762591162E-002
|
||||||
|
5.4719999999999995 1.0621100196903764E-002
|
||||||
|
5.5240000000000000 8.5038473515297100E-003
|
||||||
|
5.5760000000000005 6.6885062464466568E-003
|
||||||
|
5.6280000000000001 5.1518529016322447E-003
|
||||||
|
5.6799999999999997 3.8706633370640541E-003
|
||||||
|
5.7320000000000002 2.8217135727196876E-003
|
||||||
|
5.7840000000000007 1.9817796285767830E-003
|
||||||
|
5.8360000000000003 1.3276375246129659E-003
|
||||||
|
5.8879999999999999 8.3606328080583568E-004
|
||||||
|
5.9400000000000004 4.8383291713300426E-004
|
||||||
|
5.9920000000000009 2.4772245357209625E-004
|
||||||
|
6.0440000000000005 1.0450791010072858E-004
|
||||||
|
6.0960000000000001 3.0965306696512431E-005
|
||||||
|
6.1480000000000006 3.8706633370639547E-006
|
||||||
|
6.2000000000000002 0.0000000000000000
|
||||||
|
O O
|
||||||
|
20
|
||||||
|
0.59999999999999998 29923.073152218909
|
||||||
|
0.70000000000000007 4662.8666204588562
|
||||||
|
0.80000000000000004 849.06541460837946
|
||||||
|
0.90000000000000002 174.94775568214448
|
||||||
|
1.0000000000000000 39.499570511324919
|
||||||
|
1.1000000000000001 9.4630438308109763
|
||||||
|
1.2000000000000002 2.3294935751104737
|
||||||
|
1.3000000000000003 0.57058726754144162
|
||||||
|
1.4000000000000001 0.13466360499250576
|
||||||
|
1.5000000000000002 2.9654028763683022E-002
|
||||||
|
1.6000000000000001 5.9001110666872716E-003
|
||||||
|
1.7000000000000002 1.0271110256853976E-003
|
||||||
|
1.8000000000000003 1.5149315970664778E-004
|
||||||
|
1.9000000000000001 1.8332630772941197E-005
|
||||||
|
2.0000000000000000 1.7625863466525047E-006
|
||||||
|
2.1000000000000001 1.3037897449239816E-007
|
||||||
|
2.2000000000000002 7.1851191723432173E-009
|
||||||
|
2.3000000000000003 2.8567178835137876E-010
|
||||||
|
2.4000000000000004 7.9349720447872060E-012
|
||||||
|
2.5000000000000004 1.4910967552225071E-013
|
||||||
|
U U
|
||||||
|
50
|
||||||
|
0.10000000000000001 74348.981230147430
|
||||||
|
0.20000000000000001 40311.628875481227
|
||||||
|
0.30000000000000004 22512.215747793147
|
||||||
|
0.40000000000000002 12931.185562052075
|
||||||
|
0.50000000000000000 7629.3983056130000
|
||||||
|
0.59999999999999998 4617.1471175675460
|
||||||
|
0.70000000000000007 2862.1227331610016
|
||||||
|
0.80000000000000004 1814.8199558215895
|
||||||
|
0.90000000000000002 1175.4637167411634
|
||||||
|
1.0000000000000000 776.63138285251296
|
||||||
|
1.1000000000000001 522.69735907852555
|
||||||
|
1.2000000000000002 357.86149706462436
|
||||||
|
1.3000000000000003 248.89064787141209
|
||||||
|
1.4000000000000001 175.60252392080037
|
||||||
|
1.5000000000000002 125.51081146835013
|
||||||
|
1.6000000000000001 90.752660563379663
|
||||||
|
1.7000000000000002 66.292603562046978
|
||||||
|
1.8000000000000003 48.853749739571974
|
||||||
|
1.9000000000000001 36.270829284225563
|
||||||
|
2.0000000000000000 27.092149160250134
|
||||||
|
2.1000000000000001 20.330846347361575
|
||||||
|
2.2000000000000002 15.307107145388191
|
||||||
|
2.3000000000000003 11.546652254529212
|
||||||
|
2.4000000000000004 8.7145303726582952
|
||||||
|
2.5000000000000004 6.5713781993663156
|
||||||
|
2.6000000000000001 4.9441671799982290
|
||||||
|
2.7000000000000002 3.7064118746112378
|
||||||
|
2.8000000000000003 2.7646343058611356
|
||||||
|
2.9000000000000004 2.0490135318783476
|
||||||
|
3.0000000000000004 1.5068662861359490
|
||||||
|
3.1000000000000001 1.0980623443850352
|
||||||
|
3.2000000000000002 0.79177413418881881
|
||||||
|
3.3000000000000003 0.56415350027012756
|
||||||
|
3.4000000000000004 0.39665649152896415
|
||||||
|
3.5000000000000004 0.27482281511443302
|
||||||
|
3.6000000000000001 0.18737497023545538
|
||||||
|
3.7000000000000002 0.12554244470464804
|
||||||
|
3.8000000000000003 8.2544745767756542E-002
|
||||||
|
3.9000000000000004 5.3187278866042048E-002
|
||||||
|
4.0000000000000000 3.3538623216095062E-002
|
||||||
|
4.0999999999999996 2.0668142493140005E-002
|
||||||
|
4.2000000000000002 1.2430141080200409E-002
|
||||||
|
4.2999999999999998 7.2856566327403139E-003
|
||||||
|
4.3999999999999995 4.1560332011683883E-003
|
||||||
|
4.5000000000000000 2.3041281035584126E-003
|
||||||
|
4.5999999999999996 1.2397986929553748E-003
|
||||||
|
4.7000000000000002 6.4656516755885957E-004
|
||||||
|
4.7999999999999998 3.2635453161844339E-004
|
||||||
|
4.9000000000000004 1.5921458192287997E-004
|
||||||
|
5.0000000000000000 7.4970692168027886E-005
|
||||||
21
examples/QM/README
Normal file
21
examples/QM/README
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Each of the directories shows how to use LAMMPS in tandem with a
|
||||||
|
specific quantum code
|
||||||
|
|
||||||
|
LATTE = semi-empirical tight-binding code from LANL
|
||||||
|
https://www.osti.gov/biblio/1526907-los-alamos-transferable-tight-binding-energetics-latte-version
|
||||||
|
https://github.com/lanl/LATTE
|
||||||
|
|
||||||
|
To be added later (as of Aug 2022):
|
||||||
|
|
||||||
|
Quantum Espresso (QE) = DFT code for materials modeling
|
||||||
|
https://www.quantum-espresso.org/
|
||||||
|
|
||||||
|
DFT-FE = real-space DFT code from U Michigan
|
||||||
|
https://github.com/dftfeDevelopers/dftfe
|
||||||
|
|
||||||
|
INQ = DFT code from LLNL
|
||||||
|
https://github.com/LLNL/inq
|
||||||
|
|
||||||
|
NWChem = computational chemistry code from PNNL
|
||||||
|
focus here is on DFT portion of NWChem
|
||||||
|
https://www.nwchem-sw.org
|
||||||
@ -189,6 +189,9 @@ corresponding doc page in the manual for more info. See the
|
|||||||
https://docs.lammps.org/Build_package.html page for more info about
|
https://docs.lammps.org/Build_package.html page for more info about
|
||||||
installing and building packages.
|
installing and building packages.
|
||||||
|
|
||||||
|
The QM directory has examples of how to use LAMMPS in tandem with
|
||||||
|
several quantum codes.
|
||||||
|
|
||||||
The TIP4P directory has an example for testing forces computed on a
|
The TIP4P directory has an example for testing forces computed on a
|
||||||
GPU.
|
GPU.
|
||||||
|
|
||||||
|
|||||||
@ -2,15 +2,17 @@ These are examples that work the MDI package in LAMMPS which uses the
|
|||||||
MolSSI MDI library for coupling codes together and communicating
|
MolSSI MDI library for coupling codes together and communicating
|
||||||
between them with MDI messages.
|
between them with MDI messages.
|
||||||
|
|
||||||
Within the MDI context, one code is the driver and another code is
|
There are more examples of using LAMMPS with quantum codes via MDI in
|
||||||
the engine. The 2 codes can be written in any language; C++ (LAMMPS)
|
the examples/QM directory.
|
||||||
and Python are illustrated here. The 2 codes can each be stand-alone
|
|
||||||
codes, in which case they can be run on different numbers of processors.
|
Within the MDI context, one code is the driver and another code is the
|
||||||
The 2
|
engine. The 2 codes can be written in any language; C++ (LAMMPS) and
|
||||||
codes can communicate either via TCP (sockets) or via MPI. For the
|
Python are illustrated here. The 2 codes can each be stand-alone
|
||||||
TCP case, the driver and engine need to be launched separately,
|
codes, in which case they can be run on different numbers of
|
||||||
e.g. in 2 windows on your desktop machine. For the MPI case, a single
|
processors. The 2 codes can communicate either via TCP (sockets) or
|
||||||
mpirun command launches both codes.
|
via MPI. For the TCP case, the driver and engine need to be launched
|
||||||
|
separately, e.g. in 2 windows on your desktop machine. For the MPI
|
||||||
|
case, a single mpirun command launches both codes.
|
||||||
|
|
||||||
Alternatively the engine code can be a plugin library which the driver
|
Alternatively the engine code can be a plugin library which the driver
|
||||||
code loads, in which case the driver and engine run on the same
|
code loads, in which case the driver and engine run on the same
|
||||||
@ -19,17 +21,39 @@ processors.
|
|||||||
LAMMPS supports operating in all these MDI modes. It can be an engine
|
LAMMPS supports operating in all these MDI modes. It can be an engine
|
||||||
operating either as a stand-alone code or as a plugin. It can also be
|
operating either as a stand-alone code or as a plugin. It can also be
|
||||||
a driver and couple to an engine that is either a stand-alone code or
|
a driver and couple to an engine that is either a stand-alone code or
|
||||||
a plugin. Examples for all these use cases are in this directory.
|
a plugin.
|
||||||
The Run.sh file shows how run in all the modes. Type "sh Run.sh"
|
|
||||||
to try them all out.
|
|
||||||
|
|
||||||
To use LAMMPS as a plugin engine, you must build it as a shared
|
Examples for all these use cases, using LAMMPS as a driver and as an
|
||||||
library. Something like this with make, which also builds the normal
|
engine are in this directory. The Run.sh file shows how run in all
|
||||||
LAMMPS executable lmp_mpi:
|
the modes. Type "sh Run.sh" to try them all out.
|
||||||
|
|
||||||
cd src
|
Examples for using LAMMPS as a driver with the tight-binding code
|
||||||
make yes-mdi
|
LATTE are in the examples/QM/LATTE sub-directory. See its README file
|
||||||
make mode=shlib mpi
|
for more info.
|
||||||
|
|
||||||
|
-------------------------------------------------
|
||||||
|
|
||||||
|
Here is how to build LAMMPS with MDI support. Both as an executable
|
||||||
|
and a shared library. The former is needed to use LAMMPS as an MDI
|
||||||
|
driver or as an MDI engine in stand-alone mode. The latter is needed
|
||||||
|
to use LAMMPS as an MDI engine in plugin mode.
|
||||||
|
|
||||||
|
Build via regular make:
|
||||||
|
|
||||||
|
% cd lammps/src
|
||||||
|
% make lib-mdi args="-m mpi" # download, install MDI in lib/mdi w/ MPI support
|
||||||
|
% make yes-mdi # include MDI package in LAMMPS build
|
||||||
|
% make mode=shlib mpi # creates lmp_mpi and liblammps.so
|
||||||
|
|
||||||
|
Build via CMake:
|
||||||
|
|
||||||
|
cd lammps
|
||||||
|
mkdir build; cd build
|
||||||
|
cmake -D PKG_MDI=yes -D BUILD_SHARED_LIBS=yes ../cmake
|
||||||
|
make # creates lmp and liblammps.so
|
||||||
|
|
||||||
|
Both of these build procedures build LAMMPS both as an executable
|
||||||
|
(lmp_mpi) and as a shared library (liblammps.so).
|
||||||
|
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
@ -39,9 +63,9 @@ Python/mpi4py are using same the same version of MPI.
|
|||||||
|
|
||||||
You will also need MDI installed in your Python. You cannot use the
|
You will also need MDI installed in your Python. You cannot use the
|
||||||
LAMMPS build of the MDI library for this, b/c LAMMPS builds MDI as a
|
LAMMPS build of the MDI library for this, b/c LAMMPS builds MDI as a
|
||||||
static library, not shared, which Python requires.
|
static library, while Python requires a shared library.
|
||||||
|
|
||||||
You can install MDI in your Python via conda:
|
Instead you can install MDI in your Python via conda:
|
||||||
|
|
||||||
% conda install -c conda-forge pymdi=1.4.1
|
% conda install -c conda-forge pymdi=1.4.1
|
||||||
|
|
||||||
|
|||||||
@ -316,6 +316,9 @@ class UCL_Device {
|
|||||||
std::vector<CUstream> _cq;
|
std::vector<CUstream> _cq;
|
||||||
CUdevice _cu_device;
|
CUdevice _cu_device;
|
||||||
CUcontext _context;
|
CUcontext _context;
|
||||||
|
#if GERYON_NVD_PRIMARY_CONTEXT
|
||||||
|
CUcontext _old_context;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
// Grabs the properties for all devices
|
// Grabs the properties for all devices
|
||||||
@ -391,8 +394,14 @@ int UCL_Device::set_platform(const int pid) {
|
|||||||
int UCL_Device::set(int num) {
|
int UCL_Device::set(int num) {
|
||||||
clear();
|
clear();
|
||||||
_device=_properties[num].device_id;
|
_device=_properties[num].device_id;
|
||||||
|
#if GERYON_NVD_PRIMARY_CONTEXT
|
||||||
|
CU_SAFE_CALL_NS(cuCtxGetCurrent(&_old_context));
|
||||||
|
CU_SAFE_CALL_NS(cuDeviceGet(&_cu_device,_device));
|
||||||
|
CUresult err=cuDevicePrimaryCtxRetain(&_context,_cu_device);
|
||||||
|
#else
|
||||||
CU_SAFE_CALL_NS(cuDeviceGet(&_cu_device,_device));
|
CU_SAFE_CALL_NS(cuDeviceGet(&_cu_device,_device));
|
||||||
CUresult err=cuCtxCreate(&_context,0,_cu_device);
|
CUresult err=cuCtxCreate(&_context,0,_cu_device);
|
||||||
|
#endif
|
||||||
if (err!=CUDA_SUCCESS) {
|
if (err!=CUDA_SUCCESS) {
|
||||||
#ifndef UCL_NO_EXIT
|
#ifndef UCL_NO_EXIT
|
||||||
std::cerr << "UCL Error: Could not access accelerator number " << num
|
std::cerr << "UCL Error: Could not access accelerator number " << num
|
||||||
@ -401,13 +410,23 @@ int UCL_Device::set(int num) {
|
|||||||
#endif
|
#endif
|
||||||
return UCL_ERROR;
|
return UCL_ERROR;
|
||||||
}
|
}
|
||||||
|
#if GERYON_NVD_PRIMARY_CONTEXT
|
||||||
|
if (_context != _old_context) {
|
||||||
|
CU_SAFE_CALL_NS(cuCtxSetCurrent(_context));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return UCL_SUCCESS;
|
return UCL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UCL_Device::clear() {
|
void UCL_Device::clear() {
|
||||||
if (_device>-1) {
|
if (_device>-1) {
|
||||||
for (int i=1; i<num_queues(); i++) pop_command_queue();
|
for (int i=1; i<num_queues(); i++) pop_command_queue();
|
||||||
cuCtxDestroy(_context);
|
#if GERYON_NVD_PRIMARY_CONTEXT
|
||||||
|
CU_SAFE_CALL_NS(cuCtxSetCurrent(_old_context));
|
||||||
|
CU_SAFE_CALL_NS(cuDevicePrimaryCtxRelease(_cu_device));
|
||||||
|
#else
|
||||||
|
cuCtxDestroy(_context));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
_device=-1;
|
_device=-1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,13 @@
|
|||||||
|
|
||||||
#define CUDA_INT_TYPE size_t
|
#define CUDA_INT_TYPE size_t
|
||||||
|
|
||||||
|
// Use the primary context for GPU access to enable compatibility with tools
|
||||||
|
// like OpenMPI accessing the GPU through the runtime interface.
|
||||||
|
// Set to 0 to revert to old behavior
|
||||||
|
#ifndef GERYON_NVD_PRIMARY_CONTEXT
|
||||||
|
#define GERYON_NVD_PRIMARY_CONTEXT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef MPI_GERYON
|
#ifdef MPI_GERYON
|
||||||
#include "mpi.h"
|
#include "mpi.h"
|
||||||
#define NVD_GERYON_EXIT do { \
|
#define NVD_GERYON_EXIT do { \
|
||||||
|
|||||||
@ -27,19 +27,17 @@ specify -m and optionally -e, order does not matter
|
|||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
make lib-poems args="-m serial" # build POEMS lib with same settings as in the serial Makefile in src
|
make lib-mdi args="-m mpi" # build MDI lib with same settings as in the mpi Makefile in src
|
||||||
make lib-colvars args="-m mpi" # build COLVARS lib with same settings as in the mpi Makefile in src
|
|
||||||
make lib-meam args="-m ifort" # build MEAM lib with custom Makefile.ifort (using Intel Fortran)
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# settings
|
# settings
|
||||||
|
|
||||||
version = "1.4.1"
|
version = "1.4.10"
|
||||||
url = "https://github.com/MolSSI-MDI/MDI_Library/archive/v%s.tar.gz" % version
|
url = "https://github.com/MolSSI-MDI/MDI_Library/archive/v%s.tar.gz" % version
|
||||||
|
|
||||||
# known checksums for different MDI versions. used to validate the download.
|
# known checksums for different MDI versions. used to validate the download.
|
||||||
checksums = { \
|
checksums = { \
|
||||||
'1.4.1' : 'f9505fccd4c79301a619f6452dad4ad9', \
|
'1.4.10' : '1c203b7fd462d9934834f643f09f3c06', \
|
||||||
}
|
}
|
||||||
|
|
||||||
# print error message or help
|
# print error message or help
|
||||||
|
|||||||
@ -300,7 +300,7 @@ class ElemwiseModels(torch.nn.Module):
|
|||||||
self.subnets = subnets
|
self.subnets = subnets
|
||||||
self.n_types = n_types
|
self.n_types = n_types
|
||||||
|
|
||||||
def forward(self, descriptors, elems):
|
def forward(self, descriptors, elems, dtype=torch.float64):
|
||||||
"""
|
"""
|
||||||
Feeds descriptors to network model after adding zeros into
|
Feeds descriptors to network model after adding zeros into
|
||||||
descriptor columns relating to different atom types
|
descriptor columns relating to different atom types
|
||||||
@ -319,8 +319,12 @@ class ElemwiseModels(torch.nn.Module):
|
|||||||
Per atom attribute computed by the network model
|
Per atom attribute computed by the network model
|
||||||
"""
|
"""
|
||||||
|
|
||||||
per_atom_attributes = torch.zeros(elems.size[0])
|
self.dtype=dtype
|
||||||
|
self.to(self.dtype)
|
||||||
|
|
||||||
|
per_atom_attributes = torch.zeros(elems.size(dim=0), dtype=self.dtype)
|
||||||
given_elems, elem_indices = torch.unique(elems, return_inverse=True)
|
given_elems, elem_indices = torch.unique(elems, return_inverse=True)
|
||||||
for i, elem in enumerate(given_elems):
|
for i, elem in enumerate(given_elems):
|
||||||
per_atom_attribute[elem_indices == i] = self.subnets[elem](descriptors[elem_indices == i])
|
self.subnets[elem].to(self.dtype)
|
||||||
|
per_atom_attributes[elem_indices == i] = self.subnets[elem](descriptors[elem_indices == i]).flatten()
|
||||||
return per_atom_attributes
|
return per_atom_attributes
|
||||||
|
|||||||
@ -15,6 +15,10 @@
|
|||||||
|
|
||||||
#include "atom.h"
|
#include "atom.h"
|
||||||
#include "citeme.h"
|
#include "citeme.h"
|
||||||
|
#include "error.h"
|
||||||
|
#include "force.h"
|
||||||
|
#include "pair.h"
|
||||||
|
#include "pair_hybrid.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
@ -87,6 +91,42 @@ AtomVecDielectric::AtomVecDielectric(LAMMPS *_lmp) : AtomVec(_lmp)
|
|||||||
bond_per_atom = angle_per_atom = dihedral_per_atom = improper_per_atom = 0;
|
bond_per_atom = angle_per_atom = dihedral_per_atom = improper_per_atom = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void AtomVecDielectric::init()
|
||||||
|
{
|
||||||
|
AtomVec::init();
|
||||||
|
|
||||||
|
// since atom style dielectric modifies the charge q, it will produce incorrect results
|
||||||
|
// with pair styles using coulomb without dielectric support.
|
||||||
|
|
||||||
|
std::string pair_style(force->pair_style);
|
||||||
|
if ((pair_style != "none") && (pair_style != "zero") && !utils::strmatch(force->pair_style,"/dielectric")) {
|
||||||
|
bool mismatch = false;
|
||||||
|
if (utils::strmatch(force->pair_style,"^reaxff")) mismatch = true;
|
||||||
|
if (utils::strmatch(force->pair_style,"^comb")) mismatch = true;
|
||||||
|
if (utils::strmatch(force->pair_style,"coul")) mismatch = true;
|
||||||
|
if (utils::strmatch(force->pair_style,"tip4p")) mismatch = true;
|
||||||
|
if (utils::strmatch(force->pair_style,"dipole")) mismatch = true;
|
||||||
|
|
||||||
|
if (utils::strmatch(force->pair_style,"^hybrid")) {
|
||||||
|
auto hybrid = dynamic_cast<PairHybrid *>(force->pair);
|
||||||
|
if (hybrid) {
|
||||||
|
for (int i = 0; i < hybrid->nstyles; i++) {
|
||||||
|
if (utils::strmatch(hybrid->keywords[i],"^reaxff")) mismatch = true;
|
||||||
|
if (utils::strmatch(hybrid->keywords[i],"^comb")) mismatch = true;
|
||||||
|
if (utils::strmatch(hybrid->keywords[i],"coul")) mismatch = true;
|
||||||
|
if (utils::strmatch(hybrid->keywords[i],"tip4p")) mismatch = true;
|
||||||
|
if (utils::strmatch(hybrid->keywords[i],"dipole")) mismatch = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mismatch)
|
||||||
|
error->all(FLERR, "Pair style {} is not compatible with atom style {}",
|
||||||
|
pair_style, atom->get_style());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
set local copies of all grow ptrs used by this class, except defaults
|
set local copies of all grow ptrs used by this class, except defaults
|
||||||
needed in replicate when 2 atom classes exist and it calls pack_restart()
|
needed in replicate when 2 atom classes exist and it calls pack_restart()
|
||||||
|
|||||||
@ -31,6 +31,7 @@ class AtomVecDielectric : public AtomVec {
|
|||||||
public:
|
public:
|
||||||
AtomVecDielectric(class LAMMPS *);
|
AtomVecDielectric(class LAMMPS *);
|
||||||
|
|
||||||
|
void init() override;
|
||||||
void grow_pointers() override;
|
void grow_pointers() override;
|
||||||
void create_atom_post(int) override;
|
void create_atom_post(int) override;
|
||||||
void data_atom_post(int) override;
|
void data_atom_post(int) override;
|
||||||
|
|||||||
@ -38,6 +38,7 @@ static constexpr double EPSILON = 1.0e-6;
|
|||||||
PairCoulCutDielectric::PairCoulCutDielectric(LAMMPS *_lmp) : PairCoulCut(_lmp), efield(nullptr)
|
PairCoulCutDielectric::PairCoulCutDielectric(LAMMPS *_lmp) : PairCoulCut(_lmp), efield(nullptr)
|
||||||
{
|
{
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -41,6 +41,7 @@ PairCoulLongDielectric::PairCoulLongDielectric(LAMMPS *_lmp) :
|
|||||||
{
|
{
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
single_enable = 0;
|
single_enable = 0;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -40,6 +40,7 @@ PairLJCutCoulCutDielectric::PairLJCutCoulCutDielectric(LAMMPS *_lmp) : PairLJCut
|
|||||||
efield = nullptr;
|
efield = nullptr;
|
||||||
epot = nullptr;
|
epot = nullptr;
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -93,15 +94,16 @@ void PairLJCutCoulCutDielectric::compute(int eflag, int vflag)
|
|||||||
for (ii = 0; ii < inum; ii++) {
|
for (ii = 0; ii < inum; ii++) {
|
||||||
i = ilist[ii];
|
i = ilist[ii];
|
||||||
qtmp = q[i];
|
qtmp = q[i];
|
||||||
|
etmp = eps[i];
|
||||||
xtmp = x[i][0];
|
xtmp = x[i][0];
|
||||||
ytmp = x[i][1];
|
ytmp = x[i][1];
|
||||||
ztmp = x[i][2];
|
ztmp = x[i][2];
|
||||||
etmp = eps[i];
|
|
||||||
itype = type[i];
|
itype = type[i];
|
||||||
jlist = firstneigh[i];
|
jlist = firstneigh[i];
|
||||||
jnum = numneigh[i];
|
jnum = numneigh[i];
|
||||||
|
|
||||||
// self term Eq. (55) for I_{ii} and Eq. (52) and in Barros et al
|
// self term Eq. (55) for I_{ii} and Eq. (52) and in Barros et al
|
||||||
|
|
||||||
double curvature_threshold = sqrt(area[i]);
|
double curvature_threshold = sqrt(area[i]);
|
||||||
if (curvature[i] < curvature_threshold) {
|
if (curvature[i] < curvature_threshold) {
|
||||||
double sf = curvature[i] / (4.0 * MY_PIS * curvature_threshold) * area[i] * q[i];
|
double sf = curvature[i] / (4.0 * MY_PIS * curvature_threshold) * area[i] * q[i];
|
||||||
|
|||||||
@ -40,6 +40,7 @@ PairLJCutCoulDebyeDielectric::PairLJCutCoulDebyeDielectric(LAMMPS *_lmp) : PairL
|
|||||||
efield = nullptr;
|
efield = nullptr;
|
||||||
epot = nullptr;
|
epot = nullptr;
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -45,6 +45,7 @@ PairLJCutCoulLongDielectric::PairLJCutCoulLongDielectric(LAMMPS *_lmp) : PairLJC
|
|||||||
efield = nullptr;
|
efield = nullptr;
|
||||||
epot = nullptr;
|
epot = nullptr;
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -47,6 +47,7 @@ PairLJCutCoulMSMDielectric::PairLJCutCoulMSMDielectric(LAMMPS *_lmp) : PairLJCut
|
|||||||
nmax = 0;
|
nmax = 0;
|
||||||
ftmp = nullptr;
|
ftmp = nullptr;
|
||||||
efield = nullptr;
|
efield = nullptr;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -45,6 +45,7 @@ PairLJLongCoulLongDielectric::PairLJLongCoulLongDielectric(LAMMPS *_lmp) : PairL
|
|||||||
efield = nullptr;
|
efield = nullptr;
|
||||||
epot = nullptr;
|
epot = nullptr;
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
|
no_virial_fdotr_compute = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
|||||||
@ -33,8 +33,7 @@ FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
|
|||||||
{
|
{
|
||||||
// check requirements for LAMMPS to work with MDI as an engine
|
// check requirements for LAMMPS to work with MDI as an engine
|
||||||
|
|
||||||
if (atom->tag_enable == 0)
|
if (atom->tag_enable == 0) error->all(FLERR, "Cannot use MDI engine without atom IDs");
|
||||||
error->all(FLERR, "Cannot use MDI engine without atom IDs");
|
|
||||||
if (atom->natoms && atom->tag_consecutive() == 0)
|
if (atom->natoms && atom->tag_consecutive() == 0)
|
||||||
error->all(FLERR, "MDI engine requires consecutive atom IDs");
|
error->all(FLERR, "MDI engine requires consecutive atom IDs");
|
||||||
|
|
||||||
@ -55,41 +54,51 @@ FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
|
|||||||
|
|
||||||
int iarg = 3;
|
int iarg = 3;
|
||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (strcmp(arg[iarg],"virial") == 0) {
|
if (strcmp(arg[iarg], "virial") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command");
|
if (iarg + 2 > narg) error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
if (strcmp(arg[iarg+1],"yes") == 0) virialflag = 1;
|
if (strcmp(arg[iarg + 1], "yes") == 0)
|
||||||
else if (strcmp(arg[iarg+1],"no") == 0) virialflag = 0;
|
virialflag = 1;
|
||||||
else error->all(FLERR,"Illegal fix mdi/qm command");
|
else if (strcmp(arg[iarg + 1], "no") == 0)
|
||||||
|
virialflag = 0;
|
||||||
|
else
|
||||||
|
error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"add") == 0) {
|
} else if (strcmp(arg[iarg], "add") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command");
|
if (iarg + 2 > narg) error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
if (strcmp(arg[iarg+1],"yes") == 0) addflag = 1;
|
if (strcmp(arg[iarg + 1], "yes") == 0)
|
||||||
else if (strcmp(arg[iarg+1],"no") == 0) addflag = 0;
|
addflag = 1;
|
||||||
else error->all(FLERR,"Illegal fix mdi/qm command");
|
else if (strcmp(arg[iarg + 1], "no") == 0)
|
||||||
|
addflag = 0;
|
||||||
|
else
|
||||||
|
error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"every") == 0) {
|
} else if (strcmp(arg[iarg], "every") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command");
|
if (iarg + 2 > narg) error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
every = utils::inumeric(FLERR,arg[iarg+1],false,lmp);
|
every = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
|
||||||
if (every <= 0) error->all(FLERR,"Illegal fix mdi/qm command");
|
if (every <= 0) error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"connect") == 0) {
|
} else if (strcmp(arg[iarg], "connect") == 0) {
|
||||||
if (iarg+2 > narg) error->all(FLERR,"Illegal fix mdi/qm command");
|
if (iarg + 2 > narg) error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
if (strcmp(arg[iarg+1],"yes") == 0) connectflag = 1;
|
if (strcmp(arg[iarg + 1], "yes") == 0)
|
||||||
else if (strcmp(arg[iarg+1],"no") == 0) connectflag = 0;
|
connectflag = 1;
|
||||||
else error->all(FLERR,"Illegal fix mdi/qm command");
|
else if (strcmp(arg[iarg + 1], "no") == 0)
|
||||||
|
connectflag = 0;
|
||||||
|
else
|
||||||
|
error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"elements") == 0) {
|
} else if (strcmp(arg[iarg], "elements") == 0) {
|
||||||
int ntypes = atom->ntypes;
|
int ntypes = atom->ntypes;
|
||||||
if (iarg+ntypes+1 > narg) error->all(FLERR,"Illegal fix mdi/qm command");
|
if (iarg + ntypes + 1 > narg) error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
delete [] elements;
|
delete[] elements;
|
||||||
elements = new int[ntypes+1];
|
elements = new int[ntypes + 1];
|
||||||
for (int i = 1; i <= ntypes; i++) {
|
for (int i = 1; i <= ntypes; i++) {
|
||||||
elements[i] = utils::inumeric(FLERR,arg[iarg+i],false,lmp);
|
elements[i] = utils::inumeric(FLERR, arg[iarg + i], false, lmp);
|
||||||
if (elements[i] < 1 || elements[i] > MAXELEMENT)
|
if (elements[i] < 1 || elements[i] > MAXELEMENT)
|
||||||
error->all(FLERR,"Illegal fix mdi/qm command");
|
error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
}
|
}
|
||||||
iarg += ntypes+1;
|
iarg += ntypes + 1;
|
||||||
} else error->all(FLERR,"Illegal fix mdi/qm command");
|
} else
|
||||||
|
error->all(FLERR, "Illegal fix mdi/qm command");
|
||||||
}
|
}
|
||||||
|
|
||||||
// fix output settings are based on optional keywords
|
// fix output settings are based on optional keywords
|
||||||
@ -217,8 +226,7 @@ void FixMDIQM::init()
|
|||||||
plugin = 1;
|
plugin = 1;
|
||||||
int method;
|
int method;
|
||||||
MDI_Get_method(&method, mdicomm);
|
MDI_Get_method(&method, mdicomm);
|
||||||
if (method != MDI_PLUGIN)
|
if (method != MDI_PLUGIN) error->all(FLERR, "MDI internal error for plugin engine");
|
||||||
error->all(FLERR, "MDI internal error for plugin engine");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// connection should have been already made by "mdi connect" command
|
// connection should have been already made by "mdi connect" command
|
||||||
@ -228,15 +236,16 @@ void FixMDIQM::init()
|
|||||||
plugin = 0;
|
plugin = 0;
|
||||||
|
|
||||||
if (lmp->mdicomm == nullptr)
|
if (lmp->mdicomm == nullptr)
|
||||||
error->all(FLERR,"Fix mdi/qm is not connected to engine via mdi connect");
|
error->all(FLERR, "Fix mdi/qm is not connected to engine via mdi connect");
|
||||||
|
|
||||||
int nbytes = sizeof(MDI_Comm);
|
int nbytes = sizeof(MDI_Comm);
|
||||||
char *ptrcomm = (char *) lmp->mdicomm;
|
char *ptrcomm = (char *) lmp->mdicomm;
|
||||||
memcpy(&mdicomm,ptrcomm,nbytes);
|
memcpy(&mdicomm, ptrcomm, nbytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// send natoms, atom types or elements, and simulation box to engine
|
// send natoms, atom types or elements, and simulation box to engine
|
||||||
|
// confirm engine count of NATOMS is correct
|
||||||
// this will trigger setup of a new system
|
// this will trigger setup of a new system
|
||||||
// subsequent calls in post_force() will be for same system until new init()
|
// subsequent calls in post_force() will be for same system until new init()
|
||||||
|
|
||||||
@ -245,36 +254,41 @@ void FixMDIQM::init()
|
|||||||
int natoms_exists;
|
int natoms_exists;
|
||||||
int ierr = MDI_Check_command_exists("@DEFAULT", ">NATOMS", mdicomm, &natoms_exists);
|
int ierr = MDI_Check_command_exists("@DEFAULT", ">NATOMS", mdicomm, &natoms_exists);
|
||||||
if (ierr) error->all(FLERR, "MDI: >NATOMS command check");
|
if (ierr) error->all(FLERR, "MDI: >NATOMS command check");
|
||||||
if ( natoms_exists ) {
|
MPI_Bcast(&natoms_exists, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
|
if (natoms_exists) {
|
||||||
ierr = MDI_Send_command(">NATOMS", mdicomm);
|
ierr = MDI_Send_command(">NATOMS", mdicomm);
|
||||||
if (ierr) error->all(FLERR, "MDI: >NATOMS command");
|
if (ierr) error->all(FLERR, "MDI: >NATOMS command");
|
||||||
int n = static_cast<int> (atom->natoms);
|
int n = static_cast<int>(atom->natoms);
|
||||||
ierr = MDI_Send(&n, 1, MDI_INT, mdicomm);
|
ierr = MDI_Send(&n, 1, MDI_INT, mdicomm);
|
||||||
if (ierr) error->all(FLERR, "MDI: >NATOMS data");
|
if (ierr) error->all(FLERR, "MDI: >NATOMS data");
|
||||||
|
|
||||||
} else { // confirm that the engine's NATOMS is correct
|
} else {
|
||||||
|
|
||||||
ierr = MDI_Send_command("<NATOMS", mdicomm);
|
ierr = MDI_Send_command("<NATOMS", mdicomm);
|
||||||
if (ierr) error->all(FLERR, "MDI: <NATOMS command");
|
if (ierr) error->all(FLERR, "MDI: <NATOMS command");
|
||||||
int n;
|
int n;
|
||||||
ierr = MDI_Recv(&n, 1, MDI_INT, mdicomm);
|
ierr = MDI_Recv(&n, 1, MDI_INT, mdicomm);
|
||||||
if (ierr) error->all(FLERR, "MDI: <NATOMS data");
|
if (ierr) error->all(FLERR, "MDI: <NATOMS data");
|
||||||
if ( n != atom->natoms ) error->all(FLERR, "MDI: Engine has the wrong number of atoms, and does not support the >NATOMS command.");
|
MPI_Bcast(&n, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
|
if (n != atom->natoms)
|
||||||
|
error->all(FLERR, "MDI: Engine has wrong atom count and does not support >NATOMS command");
|
||||||
}
|
}
|
||||||
|
|
||||||
int elements_exists;
|
int elements_exists;
|
||||||
int types_exists;
|
int types_exists;
|
||||||
ierr = MDI_Check_command_exists("@DEFAULT", ">ELEMENTS", mdicomm, &elements_exists);
|
ierr = MDI_Check_command_exists("@DEFAULT", ">ELEMENTS", mdicomm, &elements_exists);
|
||||||
if (ierr) error->all(FLERR, "MDI: >ELEMENTS command check");
|
if (ierr) error->all(FLERR, "MDI: >ELEMENTS command check");
|
||||||
|
MPI_Bcast(&elements_exists, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
ierr = MDI_Check_command_exists("@DEFAULT", ">TYPES", mdicomm, &types_exists);
|
ierr = MDI_Check_command_exists("@DEFAULT", ">TYPES", mdicomm, &types_exists);
|
||||||
if (ierr) error->all(FLERR, "MDI: >TYPES command check");
|
if (ierr) error->all(FLERR, "MDI: >TYPES command check");
|
||||||
if ( elements && elements_exists ) {
|
MPI_Bcast(&types_exists, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
|
if (elements && elements_exists)
|
||||||
send_elements();
|
send_elements();
|
||||||
} else if ( types_exists ) {
|
else if (types_exists)
|
||||||
send_types();
|
send_types();
|
||||||
}
|
|
||||||
send_box();
|
send_box();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,8 +315,7 @@ void FixMDIQM::post_force(int vflag)
|
|||||||
|
|
||||||
// if simulation box dynamically changes, send current box to MDI engine
|
// if simulation box dynamically changes, send current box to MDI engine
|
||||||
|
|
||||||
if (domain->box_change_size || domain->box_change_shape)
|
if (domain->box_change_size || domain->box_change_shape) send_box();
|
||||||
send_box();
|
|
||||||
|
|
||||||
// gather all coords, ordered by atomID
|
// gather all coords, ordered by atomID
|
||||||
|
|
||||||
@ -319,7 +332,7 @@ void FixMDIQM::post_force(int vflag)
|
|||||||
buf3[3 * index + 2] = x[i][2] * lmp2mdi_length;
|
buf3[3 * index + 2] = x[i][2] * lmp2mdi_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int n = static_cast<int> (atom->natoms);
|
int n = static_cast<int>(atom->natoms);
|
||||||
MPI_Reduce(buf3, buf3all, 3 * n, MPI_DOUBLE, MPI_SUM, 0, world);
|
MPI_Reduce(buf3, buf3all, 3 * n, MPI_DOUBLE, MPI_SUM, 0, world);
|
||||||
|
|
||||||
// send current coords to MDI engine
|
// send current coords to MDI engine
|
||||||
@ -358,7 +371,6 @@ void FixMDIQM::post_force(int vflag)
|
|||||||
fqm[i][2] = buf3[3 * index + 2] * mdi2lmp_force;
|
fqm[i][2] = buf3[3 * index + 2] * mdi2lmp_force;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// optionally add forces to owned atoms
|
// optionally add forces to owned atoms
|
||||||
// use atomID of local atoms to index into ordered buf3
|
// use atomID of local atoms to index into ordered buf3
|
||||||
|
|
||||||
@ -372,7 +384,8 @@ void FixMDIQM::post_force(int vflag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// optionally request stress tensor from MDI engine, convert to virial
|
// optionally request stress tensor from MDI engine, convert to 6-value virial
|
||||||
|
// MDI defines virial tensor as intensive (divided by volume), LAMMPS does not
|
||||||
// qm_virial = fix output for global QM virial
|
// qm_virial = fix output for global QM virial
|
||||||
|
|
||||||
if (virialflag) {
|
if (virialflag) {
|
||||||
@ -385,9 +398,9 @@ void FixMDIQM::post_force(int vflag)
|
|||||||
qm_virial_symmetric[0] = qm_virial[0] * mdi2lmp_pressure;
|
qm_virial_symmetric[0] = qm_virial[0] * mdi2lmp_pressure;
|
||||||
qm_virial_symmetric[1] = qm_virial[4] * mdi2lmp_pressure;
|
qm_virial_symmetric[1] = qm_virial[4] * mdi2lmp_pressure;
|
||||||
qm_virial_symmetric[2] = qm_virial[8] * mdi2lmp_pressure;
|
qm_virial_symmetric[2] = qm_virial[8] * mdi2lmp_pressure;
|
||||||
qm_virial_symmetric[3] = 0.5*(qm_virial[1]+qm_virial[3]) * mdi2lmp_pressure;
|
qm_virial_symmetric[3] = 0.5 * (qm_virial[1] + qm_virial[3]) * mdi2lmp_pressure;
|
||||||
qm_virial_symmetric[4] = 0.5*(qm_virial[2]+qm_virial[6]) * mdi2lmp_pressure;
|
qm_virial_symmetric[4] = 0.5 * (qm_virial[2] + qm_virial[6]) * mdi2lmp_pressure;
|
||||||
qm_virial_symmetric[5] = 0.5*(qm_virial[5]+qm_virial[7]) * mdi2lmp_pressure;
|
qm_virial_symmetric[5] = 0.5 * (qm_virial[5] + qm_virial[7]) * mdi2lmp_pressure;
|
||||||
}
|
}
|
||||||
|
|
||||||
// optionally set fix->virial
|
// optionally set fix->virial
|
||||||
@ -402,8 +415,7 @@ void FixMDIQM::post_force(int vflag)
|
|||||||
volume = domain->xprd * domain->yprd;
|
volume = domain->xprd * domain->yprd;
|
||||||
else if (domain->dimension == 3)
|
else if (domain->dimension == 3)
|
||||||
volume = domain->xprd * domain->yprd * domain->zprd;
|
volume = domain->xprd * domain->yprd * domain->zprd;
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++) virial[i] = qm_virial_symmetric[i] * volume / nprocs;
|
||||||
virial[i] = qm_virial_symmetric[i]*volume/nprocs;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,10 +459,9 @@ void FixMDIQM::reallocate()
|
|||||||
|
|
||||||
if (atom->natoms > maxbuf) {
|
if (atom->natoms > maxbuf) {
|
||||||
bigint nsize = atom->natoms * 3;
|
bigint nsize = atom->natoms * 3;
|
||||||
if (nsize > MAXSMALLINT)
|
if (nsize > MAXSMALLINT) error->all(FLERR, "Natoms too large to use with fix mdi/qm");
|
||||||
error->all(FLERR, "Natoms too large to use with fix mdi/qm");
|
|
||||||
|
|
||||||
maxbuf = static_cast<int> (atom->natoms);
|
maxbuf = static_cast<int>(atom->natoms);
|
||||||
memory->destroy(ibuf1);
|
memory->destroy(ibuf1);
|
||||||
memory->destroy(buf3);
|
memory->destroy(buf3);
|
||||||
memory->destroy(buf3all);
|
memory->destroy(buf3all);
|
||||||
@ -467,7 +478,7 @@ void FixMDIQM::reallocate()
|
|||||||
|
|
||||||
void FixMDIQM::send_types()
|
void FixMDIQM::send_types()
|
||||||
{
|
{
|
||||||
int n = static_cast<int> (atom->natoms);
|
int n = static_cast<int>(atom->natoms);
|
||||||
memset(ibuf1, 0, n * sizeof(int));
|
memset(ibuf1, 0, n * sizeof(int));
|
||||||
|
|
||||||
// use local atomID to index into ordered ibuf1
|
// use local atomID to index into ordered ibuf1
|
||||||
@ -496,7 +507,7 @@ void FixMDIQM::send_types()
|
|||||||
|
|
||||||
void FixMDIQM::send_elements()
|
void FixMDIQM::send_elements()
|
||||||
{
|
{
|
||||||
int n = static_cast<int> (atom->natoms);
|
int n = static_cast<int>(atom->natoms);
|
||||||
memset(ibuf1, 0, n * sizeof(int));
|
memset(ibuf1, 0, n * sizeof(int));
|
||||||
|
|
||||||
// use local atomID to index into ordered ibuf1
|
// use local atomID to index into ordered ibuf1
|
||||||
@ -530,7 +541,9 @@ void FixMDIQM::send_box()
|
|||||||
int celldispl_exists;
|
int celldispl_exists;
|
||||||
int ierr = MDI_Check_command_exists("@DEFAULT", ">NATOMS", mdicomm, &celldispl_exists);
|
int ierr = MDI_Check_command_exists("@DEFAULT", ">NATOMS", mdicomm, &celldispl_exists);
|
||||||
if (ierr) error->all(FLERR, "MDI: >CELL_DISPL command check");
|
if (ierr) error->all(FLERR, "MDI: >CELL_DISPL command check");
|
||||||
if ( celldispl_exists ) {
|
MPI_Bcast(&celldispl_exists, 1, MPI_INT, 0, world);
|
||||||
|
|
||||||
|
if (celldispl_exists) {
|
||||||
ierr = MDI_Send_command(">CELL_DISPL", mdicomm);
|
ierr = MDI_Send_command(">CELL_DISPL", mdicomm);
|
||||||
if (ierr) error->all(FLERR, "MDI: >CELL_DISPL command");
|
if (ierr) error->all(FLERR, "MDI: >CELL_DISPL command");
|
||||||
cell[0] = domain->boxlo[0] * lmp2mdi_length;
|
cell[0] = domain->boxlo[0] * lmp2mdi_length;
|
||||||
@ -608,18 +621,17 @@ void FixMDIQM::unit_conversions()
|
|||||||
mdi2lmp_force = angstrom_to_bohr / ev_to_hartree;
|
mdi2lmp_force = angstrom_to_bohr / ev_to_hartree;
|
||||||
}
|
}
|
||||||
|
|
||||||
// pressure or stress units = force/area = energy/volume
|
// stress units = force/area = energy/volume
|
||||||
|
|
||||||
mdi2lmp_pressure = 1.0;
|
mdi2lmp_pressure = 1.0;
|
||||||
lmp2mdi_pressure = 1.0;
|
lmp2mdi_pressure = 1.0;
|
||||||
|
|
||||||
if (lmpunits == REAL) {
|
if (lmpunits == REAL) {
|
||||||
lmp2mdi_pressure = (kelvin_to_hartree / force->boltz) /
|
lmp2mdi_pressure = (kelvin_to_hartree / force->boltz) /
|
||||||
(angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr) / force->nktv2p;
|
(angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr);
|
||||||
mdi2lmp_pressure = 1.0 / lmp2mdi_pressure;
|
mdi2lmp_pressure = 1.0 / lmp2mdi_pressure;
|
||||||
} else if (lmpunits == METAL) {
|
} else if (lmpunits == METAL) {
|
||||||
lmp2mdi_pressure =
|
lmp2mdi_pressure = ev_to_hartree / (angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr);
|
||||||
ev_to_hartree / (angstrom_to_bohr * angstrom_to_bohr * angstrom_to_bohr) / force->nktv2p;
|
|
||||||
mdi2lmp_pressure = 1.0 / lmp2mdi_pressure;
|
mdi2lmp_pressure = 1.0 / lmp2mdi_pressure;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,7 +40,7 @@ class FixMDIQM : public Fix {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int nprocs;
|
int nprocs;
|
||||||
int every,virialflag,addflag,connectflag;
|
int every, virialflag, addflag, connectflag;
|
||||||
int plugin;
|
int plugin;
|
||||||
int maxlocal;
|
int maxlocal;
|
||||||
int sumflag;
|
int sumflag;
|
||||||
@ -48,7 +48,7 @@ class FixMDIQM : public Fix {
|
|||||||
|
|
||||||
double qm_energy;
|
double qm_energy;
|
||||||
int lmpunits;
|
int lmpunits;
|
||||||
double qm_virial[9],qm_virial_symmetric[6];
|
double qm_virial[9], qm_virial_symmetric[6];
|
||||||
double **fqm;
|
double **fqm;
|
||||||
|
|
||||||
MDI_Comm mdicomm;
|
MDI_Comm mdicomm;
|
||||||
|
|||||||
@ -23,12 +23,8 @@
|
|||||||
#define LAMMPS_LIB_MPI 1
|
#define LAMMPS_LIB_MPI 1
|
||||||
#include "library.h"
|
#include "library.h"
|
||||||
|
|
||||||
#include "mdi_engine.h"
|
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
using namespace LAMMPS_NS;
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
/** Initialize an instance of LAMMPS as an MDI plugin
|
/** Initialize an instance of LAMMPS as an MDI plugin
|
||||||
@ -52,15 +48,16 @@ command-line argument, which must be provided by the MDI driver.
|
|||||||
* \param class_obj pointer to an instance of an mdi/engine fix cast to ``void *``.
|
* \param class_obj pointer to an instance of an mdi/engine fix cast to ``void *``.
|
||||||
* \return 0 on no error. */
|
* \return 0 on no error. */
|
||||||
|
|
||||||
int MDI_Plugin_init_lammps()
|
int MDI_Plugin_init_lammps(void *plugin_state)
|
||||||
{
|
{
|
||||||
// initialize MDI
|
// initialize MDI
|
||||||
|
|
||||||
int mdi_argc;
|
int mdi_argc;
|
||||||
char **mdi_argv;
|
char **mdi_argv;
|
||||||
|
|
||||||
|
if (MDI_Set_plugin_state(plugin_state)) MPI_Abort(MPI_COMM_WORLD, 1);
|
||||||
if (MDI_Plugin_get_argc(&mdi_argc)) MPI_Abort(MPI_COMM_WORLD, 1);
|
if (MDI_Plugin_get_argc(&mdi_argc)) MPI_Abort(MPI_COMM_WORLD, 1);
|
||||||
if (MDI_Plugin_get_argv(&mdi_argv)) MPI_Abort(MPI_COMM_WORLD, 1);
|
if (MDI_Plugin_get_argv(&mdi_argv)) MPI_Abort(MPI_COMM_WORLD, 1);
|
||||||
if (MDI_Init(&mdi_argc, &mdi_argv)) MPI_Abort(MPI_COMM_WORLD, 1);
|
|
||||||
|
|
||||||
// get the MPI intra-communicator for this code
|
// get the MPI intra-communicator for this code
|
||||||
|
|
||||||
@ -90,14 +87,23 @@ int MDI_Plugin_init_lammps()
|
|||||||
if (!found_filename) MPI_Abort(MPI_COMM_WORLD, 1);
|
if (!found_filename) MPI_Abort(MPI_COMM_WORLD, 1);
|
||||||
|
|
||||||
// create and run a LAMMPS instance
|
// create and run a LAMMPS instance
|
||||||
// lammps_open() expects a first arg (not used) which is executable name
|
// need to add an initial pseudo arg to mdi_argc & mdi_argv
|
||||||
// same as if called from main.cpp
|
// b/c lammps_open() expects first arg to be an executable name
|
||||||
|
// same as if it were called from main.cpp
|
||||||
|
|
||||||
|
int mdi_argc_extra = mdi_argc + 1;
|
||||||
|
char **mdi_argv_extra = new char *[mdi_argc_extra];
|
||||||
|
|
||||||
|
mdi_argv_extra[0] = (char *) "MDI_plugin_engine";
|
||||||
|
for (int i = 0; i < mdi_argc; i++) mdi_argv_extra[i + 1] = mdi_argv[i];
|
||||||
|
|
||||||
void *lmp = nullptr;
|
void *lmp = nullptr;
|
||||||
if (lammps_config_has_mpi_support() > 0)
|
if (lammps_config_has_mpi_support() > 0)
|
||||||
lmp = lammps_open(mdi_argc + 1, &mdi_argv[-1], mpi_world_comm, nullptr);
|
lmp = lammps_open(mdi_argc_extra, mdi_argv_extra, mpi_world_comm, nullptr);
|
||||||
else
|
else
|
||||||
lmp = lammps_open_no_mpi(mdi_argc + 1, &mdi_argv[-1], nullptr);
|
lmp = lammps_open_no_mpi(mdi_argc_extra, mdi_argv_extra, nullptr);
|
||||||
|
|
||||||
|
delete[] mdi_argv_extra;
|
||||||
|
|
||||||
// process the specified input script
|
// process the specified input script
|
||||||
// must contain "mdi engine" command
|
// must contain "mdi engine" command
|
||||||
@ -110,25 +116,3 @@ int MDI_Plugin_init_lammps()
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/** Execute an MDI command
|
|
||||||
*
|
|
||||||
\verbatim embed:rst
|
|
||||||
|
|
||||||
This function is called by the MolSSI Driver Interface Library (MDI)
|
|
||||||
when LAMMPS is run as a plugin, and should not otherwise be used.
|
|
||||||
The function executes a single command from an external MDI driver.
|
|
||||||
|
|
||||||
\endverbatim
|
|
||||||
* \param command string buffer corresponding to the command to be executed
|
|
||||||
* \param comm MDI communicator that can be used to communicated with the driver.
|
|
||||||
* \param class_obj pointer to an instance of an mdi/engine fix cast to ``void *``.
|
|
||||||
* \return 0 on no error, 1 on error. */
|
|
||||||
|
|
||||||
int lammps_execute_mdi_command(const char *command, MDI_Comm comm, void *class_obj)
|
|
||||||
{
|
|
||||||
auto mdi_engine = (MDIEngine *) class_obj;
|
|
||||||
return mdi_engine->execute_command(command, comm);
|
|
||||||
}
|
|
||||||
|
|||||||
@ -14,13 +14,12 @@
|
|||||||
#ifndef LAMMPS_LIBRARY_MDI_H
|
#ifndef LAMMPS_LIBRARY_MDI_H
|
||||||
#define LAMMPS_LIBRARY_MDI_H
|
#define LAMMPS_LIBRARY_MDI_H
|
||||||
|
|
||||||
/* C style library calls to LAMMPS when a LAMMPS shared library is
|
/* C style library call to LAMMPS when a LAMMPS shared library is
|
||||||
* used as a plugin through MolSSI Driver Interface (MDI). */
|
* used as a plugin through MolSSI Driver Interface (MDI) */
|
||||||
|
|
||||||
#include <mdi.h>
|
#include <mdi.h>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
int MDI_Plugin_init_lammps();
|
int MDI_Plugin_init_lammps(void *plugin_state);
|
||||||
int lammps_execute_mdi_command(const char *, MDI_Comm, void *);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -44,7 +44,7 @@ void MDICommand::command(int narg, char **arg)
|
|||||||
} else if (strcmp(arg[0], "connect") == 0) {
|
} else if (strcmp(arg[0], "connect") == 0) {
|
||||||
|
|
||||||
if (lmp->mdicomm != nullptr)
|
if (lmp->mdicomm != nullptr)
|
||||||
error->all(FLERR,"MDI cannot connect to already connected engine");
|
error->all(FLERR, "MDI cannot connect to already connected engine");
|
||||||
|
|
||||||
MDI_Comm mdicomm;
|
MDI_Comm mdicomm;
|
||||||
MDI_Get_communicator(&mdicomm, 0);
|
MDI_Get_communicator(&mdicomm, 0);
|
||||||
@ -53,23 +53,23 @@ void MDICommand::command(int narg, char **arg)
|
|||||||
MDI_Accept_communicator(&mdicomm);
|
MDI_Accept_communicator(&mdicomm);
|
||||||
if (mdicomm == MDI_COMM_NULL)
|
if (mdicomm == MDI_COMM_NULL)
|
||||||
error->all(FLERR, "MDI unable to connect to stand-alone engine");
|
error->all(FLERR, "MDI unable to connect to stand-alone engine");
|
||||||
} else error->all(FLERR, "Cannot use mdi connect with plugin engine");
|
} else
|
||||||
|
error->all(FLERR, "Cannot use mdi connect with plugin engine");
|
||||||
|
|
||||||
int nbytes = sizeof(MDI_Comm);
|
int nbytes = sizeof(MDI_Comm);
|
||||||
char *ptrcomm = (char *) memory->smalloc(nbytes,"mdi:mdicomm");
|
char *ptrcomm = (char *) memory->smalloc(nbytes, "mdi:mdicomm");
|
||||||
memcpy(ptrcomm,&mdicomm,nbytes);
|
memcpy(ptrcomm, &mdicomm, nbytes);
|
||||||
|
|
||||||
lmp->mdicomm = (void *) ptrcomm;
|
lmp->mdicomm = (void *) ptrcomm;
|
||||||
|
|
||||||
} else if (strcmp(arg[0], "exit") == 0) {
|
} else if (strcmp(arg[0], "exit") == 0) {
|
||||||
|
|
||||||
if (lmp->mdicomm == nullptr)
|
if (lmp->mdicomm == nullptr) error->all(FLERR, "MDI cannot send exit to unconnected engine");
|
||||||
error->all(FLERR,"MDI cannot send exit to unconnected engine");
|
|
||||||
|
|
||||||
MDI_Comm mdicomm;
|
MDI_Comm mdicomm;
|
||||||
int nbytes = sizeof(MDI_Comm);
|
int nbytes = sizeof(MDI_Comm);
|
||||||
char *ptrcomm = (char *) lmp->mdicomm;
|
char *ptrcomm = (char *) lmp->mdicomm;
|
||||||
memcpy(&mdicomm,ptrcomm,nbytes);
|
memcpy(&mdicomm, ptrcomm, nbytes);
|
||||||
|
|
||||||
int ierr = MDI_Send_command("EXIT", mdicomm);
|
int ierr = MDI_Send_command("EXIT", mdicomm);
|
||||||
if (ierr) error->all(FLERR, "MDI: EXIT command");
|
if (ierr) error->all(FLERR, "MDI: EXIT command");
|
||||||
@ -77,5 +77,6 @@ void MDICommand::command(int narg, char **arg)
|
|||||||
memory->sfree(ptrcomm);
|
memory->sfree(ptrcomm);
|
||||||
lmp->mdicomm = nullptr;
|
lmp->mdicomm = nullptr;
|
||||||
|
|
||||||
} else error->all(FLERR, "Illegal mdi command");
|
} else
|
||||||
|
error->all(FLERR, "Illegal mdi command");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -65,7 +65,7 @@ enum { TYPE, CHARGE, MASS, COORD, VELOCITY, FORCE, ADDFORCE };
|
|||||||
when EXIT command is received, mdi engine command exits
|
when EXIT command is received, mdi engine command exits
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
|
||||||
MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** arg) : Pointers(_lmp)
|
MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp)
|
||||||
{
|
{
|
||||||
// check requirements for LAMMPS to work with MDI as an engine
|
// check requirements for LAMMPS to work with MDI as an engine
|
||||||
|
|
||||||
@ -80,18 +80,19 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** arg) : Pointers(_lmp)
|
|||||||
|
|
||||||
int iarg = 0;
|
int iarg = 0;
|
||||||
while (iarg < narg) {
|
while (iarg < narg) {
|
||||||
if (strcmp(arg[iarg],"elements") == 0) {
|
if (strcmp(arg[iarg], "elements") == 0) {
|
||||||
int ntypes = atom->ntypes;
|
int ntypes = atom->ntypes;
|
||||||
delete [] elements;
|
delete[] elements;
|
||||||
elements = new int[ntypes+1];
|
elements = new int[ntypes + 1];
|
||||||
if (iarg+ntypes+1 > narg) error->all(FLERR,"Illegal mdi engine command");
|
if (iarg + ntypes + 1 > narg) error->all(FLERR, "Illegal mdi engine command");
|
||||||
for (int i = 1; i <= ntypes; i++) {
|
for (int i = 1; i <= ntypes; i++) {
|
||||||
elements[i] = utils::inumeric(FLERR,arg[iarg+i],false,lmp);
|
elements[i] = utils::inumeric(FLERR, arg[iarg + i], false, lmp);
|
||||||
if (elements[i] < 0 || elements[i] > MAXELEMENT)
|
if (elements[i] < 0 || elements[i] > MAXELEMENT)
|
||||||
error->all(FLERR,"Illegal mdi engine command");
|
error->all(FLERR, "Illegal mdi engine command");
|
||||||
}
|
}
|
||||||
iarg += ntypes+1;
|
iarg += ntypes + 1;
|
||||||
} else error->all(FLERR,"Illegal mdi engine command");
|
} else
|
||||||
|
error->all(FLERR, "Illegal mdi engine command");
|
||||||
}
|
}
|
||||||
|
|
||||||
// error check an MDI element does not map to multiple atom types
|
// error check an MDI element does not map to multiple atom types
|
||||||
@ -99,10 +100,10 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** arg) : Pointers(_lmp)
|
|||||||
if (elements) {
|
if (elements) {
|
||||||
int ntypes = atom->ntypes;
|
int ntypes = atom->ntypes;
|
||||||
for (int i = 1; i < ntypes; i++)
|
for (int i = 1; i < ntypes; i++)
|
||||||
for (int j = i+1; j <= ntypes; j++) {
|
for (int j = i + 1; j <= ntypes; j++) {
|
||||||
if (elements[i] == 0 || elements[j] == 0) continue;
|
if (elements[i] == 0 || elements[j] == 0) continue;
|
||||||
if (elements[i] == elements[j])
|
if (elements[i] == elements[j])
|
||||||
error->all(FLERR,"MDI engine element cannot map to multiple types");
|
error->all(FLERR, "MDI engine element cannot map to multiple types");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +168,7 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** arg) : Pointers(_lmp)
|
|||||||
ibuf1 = ibuf1all = nullptr;
|
ibuf1 = ibuf1all = nullptr;
|
||||||
|
|
||||||
maxatom = 0;
|
maxatom = 0;
|
||||||
sys_natoms = static_cast<int> (atom->natoms);
|
sys_natoms = static_cast<int>(atom->natoms);
|
||||||
reallocate();
|
reallocate();
|
||||||
|
|
||||||
nsteps = 0;
|
nsteps = 0;
|
||||||
@ -184,10 +185,10 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char ** arg) : Pointers(_lmp)
|
|||||||
|
|
||||||
mdi_commands();
|
mdi_commands();
|
||||||
|
|
||||||
// register the execute_command function with MDI
|
// register a callback function with MDI used when engine runs in plugin mode
|
||||||
// only used when engine runs in plugin mode
|
// execute_command_plugin_wrapper() must be a static method
|
||||||
|
|
||||||
MDI_Set_execute_command_func(lammps_execute_mdi_command, this);
|
MDI_Set_execute_command_func(execute_command_plugin_wrapper, this);
|
||||||
|
|
||||||
// one-time operation to establish a connection with the driver
|
// one-time operation to establish a connection with the driver
|
||||||
|
|
||||||
@ -291,11 +292,22 @@ void MDIEngine::engine_node(const char *node)
|
|||||||
node_match = true;
|
node_match = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
wrapper function on execute_command()
|
||||||
|
invoked as callback by MDI when engine operates in plugin mode
|
||||||
|
this is a static method in mdi_engine.h
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
int MDIEngine::execute_command_plugin_wrapper(const char *command, MDI_Comm comm, void *class_obj)
|
||||||
|
{
|
||||||
|
auto mdi_engine = (MDIEngine *) class_obj;
|
||||||
|
return mdi_engine->execute_command(command, comm);
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
process a single driver command
|
process a single driver command
|
||||||
called by engine_node() in loop
|
called by engine_node() in loop when engine runs as stand-alone code
|
||||||
also called by MDI itself via lib::lammps_execute_mdi_command()
|
called by execute_command_plugin_wrapper() when engine runs as plugin lib
|
||||||
when LAMMPS is running as a plugin
|
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
|
||||||
int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm)
|
int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm)
|
||||||
@ -334,8 +346,7 @@ int MDIEngine::execute_command(const char *command, MDI_Comm mdicomm)
|
|||||||
receive_coords();
|
receive_coords();
|
||||||
|
|
||||||
} else if (strcmp(command, ">ELEMENTS") == 0) {
|
} else if (strcmp(command, ">ELEMENTS") == 0) {
|
||||||
if (!elements)
|
if (!elements) error->all(FLERR, "MDI engine command did not define element list");
|
||||||
error->all(FLERR,"MDI engine command did not define element list");
|
|
||||||
receive_elements();
|
receive_elements();
|
||||||
|
|
||||||
} else if (strcmp(command, ">FORCES") == 0) {
|
} else if (strcmp(command, ">FORCES") == 0) {
|
||||||
@ -998,9 +1009,9 @@ void MDIEngine::create_system()
|
|||||||
// create list of 1 to sys_natoms IDs
|
// create list of 1 to sys_natoms IDs
|
||||||
// optionally set charges if specified by ">CHARGES"
|
// optionally set charges if specified by ">CHARGES"
|
||||||
|
|
||||||
tagint* sys_ids;
|
tagint *sys_ids;
|
||||||
memory->create(sys_ids, sys_natoms, "mdi:sys_ids");
|
memory->create(sys_ids, sys_natoms, "mdi:sys_ids");
|
||||||
for (int i = 0; i < sys_natoms; i++) sys_ids[i] = i+1;
|
for (int i = 0; i < sys_natoms; i++) sys_ids[i] = i + 1;
|
||||||
|
|
||||||
if (flag_velocities)
|
if (flag_velocities)
|
||||||
lammps_create_atoms(lmp, sys_natoms, sys_ids, sys_types, sys_coords, sys_velocities, nullptr,
|
lammps_create_atoms(lmp, sys_natoms, sys_ids, sys_types, sys_coords, sys_velocities, nullptr,
|
||||||
@ -1148,9 +1159,16 @@ void MDIEngine::receive_cell()
|
|||||||
for (int icell = 0; icell < 9; icell++) sys_cell[icell] *= mdi2lmp_length;
|
for (int icell = 0; icell < 9; icell++) sys_cell[icell] *= mdi2lmp_length;
|
||||||
|
|
||||||
// error check that edge vectors match LAMMPS triclinic requirement
|
// error check that edge vectors match LAMMPS triclinic requirement
|
||||||
|
// 3,7,6 = xy, yz, xz tilt factors
|
||||||
|
|
||||||
if (sys_cell[1] != 0.0 || sys_cell[2] != 0.0 || sys_cell[5] != 0.0)
|
if (sys_cell[1] != 0.0 || sys_cell[2] != 0.0 || sys_cell[5] != 0.0)
|
||||||
error->all(FLERR, "MDI: Received cell edges are not LAMMPS compatible");
|
error->all(FLERR, "MDI: Received cell edges are not an upper triangular matrix");
|
||||||
|
|
||||||
|
if (sys_cell[3] != 0.0 || sys_cell[7] != 0.0 || sys_cell[6] != 0.0)
|
||||||
|
if (!domain->triclinic)
|
||||||
|
error->all(FLERR,
|
||||||
|
"MDI: Received cell edges are for a triclinic box, "
|
||||||
|
"but LAMMPS is using an orthogonal box");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
@ -1227,8 +1245,7 @@ void MDIEngine::receive_elements()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (itype > ntypes)
|
if (itype > ntypes) error->all(FLERR, "MDI element not found in element list");
|
||||||
error->all(FLERR,"MDI element not found in element list");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1493,6 +1510,9 @@ void MDIEngine::send_pe()
|
|||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
<STRESS command
|
<STRESS command
|
||||||
send 9-component stress tensor (no kinetic energy term)
|
send 9-component stress tensor (no kinetic energy term)
|
||||||
|
should be intensive quantity (divided by volume in pressure compute)
|
||||||
|
MDI stress tensor units are energy/volume,
|
||||||
|
so conversion factor includes nktv2p to convert pressure back to virial
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void MDIEngine::send_stress()
|
void MDIEngine::send_stress()
|
||||||
@ -1837,6 +1857,8 @@ void MDIEngine::unit_conversions()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pressure or stress units = force/area = energy/volume
|
// pressure or stress units = force/area = energy/volume
|
||||||
|
// MDI energy/volume = Hartree/Bohr^3,
|
||||||
|
// so need to remove LAMMPS nktv2p from pressure
|
||||||
|
|
||||||
mdi2lmp_pressure = 1.0;
|
mdi2lmp_pressure = 1.0;
|
||||||
lmp2mdi_pressure = 1.0;
|
lmp2mdi_pressure = 1.0;
|
||||||
|
|||||||
@ -22,8 +22,6 @@ namespace LAMMPS_NS {
|
|||||||
class MDIEngine : protected Pointers {
|
class MDIEngine : protected Pointers {
|
||||||
public:
|
public:
|
||||||
MDIEngine(class LAMMPS *, int, char **);
|
MDIEngine(class LAMMPS *, int, char **);
|
||||||
|
|
||||||
int execute_command(const char *command, MDI_Comm mdicomm);
|
|
||||||
void engine_node(const char *node);
|
void engine_node(const char *node);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -87,9 +85,13 @@ class MDIEngine : protected Pointers {
|
|||||||
class Irregular *irregular; // irregular comm if new COORDS
|
class Irregular *irregular; // irregular comm if new COORDS
|
||||||
// are highly displaced
|
// are highly displaced
|
||||||
|
|
||||||
|
// static method for MDI to callback to, when LAMMPS used as plugin engine
|
||||||
|
|
||||||
|
static int execute_command_plugin_wrapper(const char *, MDI_Comm, void *);
|
||||||
|
|
||||||
// class methods
|
// class methods
|
||||||
|
|
||||||
void mdi_engine(int, char **);
|
int execute_command(const char *, MDI_Comm);
|
||||||
void mdi_commands();
|
void mdi_commands();
|
||||||
|
|
||||||
void mdi_md();
|
void mdi_md();
|
||||||
|
|||||||
@ -72,18 +72,23 @@ MDIPlugin::MDIPlugin(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp)
|
|||||||
|
|
||||||
// error checks
|
// error checks
|
||||||
|
|
||||||
if (!mdi_arg || !infile_arg || !lammps_command)
|
if (!mdi_arg || !lammps_command)
|
||||||
error->all(FLERR, "MDI plugin must specify mdi, infile, command keywords");
|
error->all(FLERR, "MDI plugin must specify mdi and command keywords");
|
||||||
|
|
||||||
// build full plugin_args string for args to plugin library
|
// build full plugin_args string for args to plugin library
|
||||||
|
|
||||||
int n = strlen(mdi_arg) + strlen(infile_arg) + strlen(extra_arg) + 16;
|
int n = strlen(mdi_arg) + 16;
|
||||||
|
if (infile_arg) n += strlen(infile_arg);
|
||||||
|
if (extra_arg) n += strlen(extra_arg);
|
||||||
auto plugin_args = new char[n];
|
auto plugin_args = new char[n];
|
||||||
plugin_args[0] = 0;
|
plugin_args[0] = 0;
|
||||||
strcat(plugin_args, "-mdi \"");
|
strcat(plugin_args, "-mdi \"");
|
||||||
strcat(plugin_args, mdi_arg);
|
strcat(plugin_args, mdi_arg);
|
||||||
strcat(plugin_args, "\" -in ");
|
strcat(plugin_args, "\"");
|
||||||
|
if (infile_arg) {
|
||||||
|
strcat(plugin_args, " -in ");
|
||||||
strcat(plugin_args, infile_arg);
|
strcat(plugin_args, infile_arg);
|
||||||
|
}
|
||||||
if (extra_arg) {
|
if (extra_arg) {
|
||||||
strcat(plugin_args, " ");
|
strcat(plugin_args, " ");
|
||||||
strcat(plugin_args, extra_arg);
|
strcat(plugin_args, extra_arg);
|
||||||
@ -91,7 +96,8 @@ MDIPlugin::MDIPlugin(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp)
|
|||||||
|
|
||||||
// launch the MDI plugin library
|
// launch the MDI plugin library
|
||||||
// path for lib was specified in -mdi command-line arg when LAMMPS started
|
// path for lib was specified in -mdi command-line arg when LAMMPS started
|
||||||
// this calls back to plugin_wrapper, which must issue MDI EXIT at end
|
// this calls back to plugin_wrapper(), which issues MDI EXIT at end & returns
|
||||||
|
// plugin_wrapper() must be a static method
|
||||||
|
|
||||||
MDI_Launch_plugin(plugin_name, plugin_args, &world, plugin_wrapper, (void *) this);
|
MDI_Launch_plugin(plugin_name, plugin_args, &world, plugin_wrapper, (void *) this);
|
||||||
|
|
||||||
@ -99,8 +105,9 @@ MDIPlugin::MDIPlugin(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
callback function from MDI_Launch_plugin()
|
wrapper on entire interaction of LAMMPS as a driver with the plugin engine
|
||||||
this function wraps entire interaction of LAMMPS driver with the plugin
|
invoked as a callback by MDI once plugin library engine is launched
|
||||||
|
this is a static method in mdi_plugin.h
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
|
||||||
int MDIPlugin::plugin_wrapper(void * /*pmpicomm*/, MDI_Comm mdicomm, void *vptr)
|
int MDIPlugin::plugin_wrapper(void * /*pmpicomm*/, MDI_Comm mdicomm, void *vptr)
|
||||||
|
|||||||
@ -26,6 +26,9 @@ class MDIPlugin : protected Pointers {
|
|||||||
private:
|
private:
|
||||||
char *lammps_command;
|
char *lammps_command;
|
||||||
|
|
||||||
|
// static method for MDI to callback to
|
||||||
|
// when LAMMPS is a driver which launches a plugin engine
|
||||||
|
|
||||||
static int plugin_wrapper(void *, MDI_Comm, void *);
|
static int plugin_wrapper(void *, MDI_Comm, void *);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@
|
|||||||
#include "pair_mliap.h"
|
#include "pair_mliap.h"
|
||||||
#include "python_compat.h"
|
#include "python_compat.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "comm.h"
|
||||||
|
|
||||||
#include <Python.h>
|
#include <Python.h>
|
||||||
|
|
||||||
@ -104,7 +105,7 @@ void MLIAPModelPython::read_coeffs(char *fname)
|
|||||||
if (loaded) {
|
if (loaded) {
|
||||||
this->connect_param_counts();
|
this->connect_param_counts();
|
||||||
} else {
|
} else {
|
||||||
utils::logmesg(lmp, "Loading python model deferred.\n");
|
if (comm->me == 0) utils::logmesg(lmp, "Loading python model deferred.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
#include "math_const.h"
|
#include "math_const.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "neigh_list.h"
|
#include "neigh_list.h"
|
||||||
|
#include "suffix.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ static constexpr double EPSILON = 1.0e-6;
|
|||||||
PairLJCutCoulCutDielectricOMP::PairLJCutCoulCutDielectricOMP(LAMMPS *_lmp) :
|
PairLJCutCoulCutDielectricOMP::PairLJCutCoulCutDielectricOMP(LAMMPS *_lmp) :
|
||||||
PairLJCutCoulCutDielectric(_lmp), ThrOMP(_lmp, THR_PAIR)
|
PairLJCutCoulCutDielectric(_lmp), ThrOMP(_lmp, THR_PAIR)
|
||||||
{
|
{
|
||||||
|
suffix_flag |= Suffix::OMP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -99,7 +101,7 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
{
|
{
|
||||||
int i, j, ii, jj, jnum, itype, jtype;
|
int i, j, ii, jj, jnum, itype, jtype;
|
||||||
double qtmp, etmp, xtmp, ytmp, ztmp, delx, dely, delz, evdwl, ecoul;
|
double qtmp, etmp, xtmp, ytmp, ztmp, delx, dely, delz, evdwl, ecoul;
|
||||||
double fpair_i, fpair_j;
|
double fpair_i;
|
||||||
double rsq, r2inv, r6inv, forcecoul, forcelj, factor_coul, factor_lj;
|
double rsq, r2inv, r6inv, forcecoul, forcelj, factor_coul, factor_lj;
|
||||||
double efield_i, epot_i;
|
double efield_i, epot_i;
|
||||||
int *ilist, *jlist, *numneigh, **firstneigh;
|
int *ilist, *jlist, *numneigh, **firstneigh;
|
||||||
@ -130,10 +132,10 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
|
|
||||||
i = ilist[ii];
|
i = ilist[ii];
|
||||||
qtmp = q[i];
|
qtmp = q[i];
|
||||||
|
etmp = eps[i];
|
||||||
xtmp = x[i].x;
|
xtmp = x[i].x;
|
||||||
ytmp = x[i].y;
|
ytmp = x[i].y;
|
||||||
ztmp = x[i].z;
|
ztmp = x[i].z;
|
||||||
etmp = eps[i];
|
|
||||||
itype = type[i];
|
itype = type[i];
|
||||||
jlist = firstneigh[i];
|
jlist = firstneigh[i];
|
||||||
jnum = numneigh[i];
|
jnum = numneigh[i];
|
||||||
@ -141,6 +143,7 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
extmp = eytmp = eztmp = 0.0;
|
extmp = eytmp = eztmp = 0.0;
|
||||||
|
|
||||||
// self term Eq. (55) for I_{ii} and Eq. (52) and in Barros et al
|
// self term Eq. (55) for I_{ii} and Eq. (52) and in Barros et al
|
||||||
|
|
||||||
double curvature_threshold = sqrt(area[i]);
|
double curvature_threshold = sqrt(area[i]);
|
||||||
if (curvature[i] < curvature_threshold) {
|
if (curvature[i] < curvature_threshold) {
|
||||||
double sf = curvature[i] / (4.0 * MY_PIS * curvature_threshold) * area[i] * q[i];
|
double sf = curvature[i] / (4.0 * MY_PIS * curvature_threshold) * area[i] * q[i];
|
||||||
@ -151,7 +154,7 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
efield[i][0] = efield[i][1] = efield[i][2] = 0;
|
efield[i][0] = efield[i][1] = efield[i][2] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
epot[i] = 0;
|
epot[i] = 0.0;
|
||||||
|
|
||||||
for (jj = 0; jj < jnum; jj++) {
|
for (jj = 0; jj < jnum; jj++) {
|
||||||
j = jlist[jj];
|
j = jlist[jj];
|
||||||
@ -167,9 +170,10 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
|
|
||||||
if (rsq < cutsq[itype][jtype]) {
|
if (rsq < cutsq[itype][jtype]) {
|
||||||
r2inv = 1.0 / rsq;
|
r2inv = 1.0 / rsq;
|
||||||
|
const double rinv = sqrt(r2inv);
|
||||||
|
|
||||||
if (rsq < cut_coulsq[itype][jtype] && rsq > EPSILON) {
|
if (rsq < cut_coulsq[itype][jtype] && rsq > EPSILON) {
|
||||||
efield_i = qqrd2e * q[j] * sqrt(r2inv);
|
efield_i = qqrd2e * q[j] * rinv;
|
||||||
forcecoul = qtmp * efield_i;
|
forcecoul = qtmp * efield_i;
|
||||||
epot_i = efield_i;
|
epot_i = efield_i;
|
||||||
} else
|
} else
|
||||||
@ -182,7 +186,6 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
forcelj = 0.0;
|
forcelj = 0.0;
|
||||||
|
|
||||||
fpair_i = (factor_coul * etmp * forcecoul + factor_lj * forcelj) * r2inv;
|
fpair_i = (factor_coul * etmp * forcecoul + factor_lj * forcelj) * r2inv;
|
||||||
|
|
||||||
fxtmp += delx * fpair_i;
|
fxtmp += delx * fpair_i;
|
||||||
fytmp += dely * fpair_i;
|
fytmp += dely * fpair_i;
|
||||||
fztmp += delz * fpair_i;
|
fztmp += delz * fpair_i;
|
||||||
@ -193,29 +196,18 @@ void PairLJCutCoulCutDielectricOMP::eval(int iifrom, int iito, ThrData *const th
|
|||||||
eztmp += delz * efield_i;
|
eztmp += delz * efield_i;
|
||||||
epot[i] += epot_i;
|
epot[i] += epot_i;
|
||||||
|
|
||||||
if (NEWTON_PAIR || j >= nlocal) {
|
|
||||||
fpair_j = (factor_coul * eps[j] * forcecoul + factor_lj * forcelj) * r2inv;
|
|
||||||
f[j].x -= delx * fpair_j;
|
|
||||||
f[j].y -= dely * fpair_j;
|
|
||||||
f[j].z -= delz * fpair_j;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EFLAG) {
|
if (EFLAG) {
|
||||||
if (rsq < cut_coulsq[itype][jtype]) {
|
if (rsq < cut_coulsq[itype][jtype]) {
|
||||||
ecoul = factor_coul * qqrd2e * qtmp * q[j] * (etmp + eps[j]) * sqrt(r2inv);
|
ecoul = factor_coul * qqrd2e * qtmp * q[j] * 0.5 * (etmp + eps[j]) * rinv;
|
||||||
} else
|
} else
|
||||||
ecoul = 0.0;
|
ecoul = 0.0;
|
||||||
ecoul *= 0.5;
|
|
||||||
if (rsq < cut_ljsq[itype][jtype]) {
|
if (rsq < cut_ljsq[itype][jtype]) {
|
||||||
evdwl = r6inv * (lj3[itype][jtype] * r6inv - lj4[itype][jtype]) - offset[itype][jtype];
|
evdwl = r6inv * (lj3[itype][jtype] * r6inv - lj4[itype][jtype]) - offset[itype][jtype];
|
||||||
evdwl *= factor_lj;
|
evdwl *= factor_lj;
|
||||||
} else
|
} else
|
||||||
evdwl = 0.0;
|
evdwl = 0.0;
|
||||||
}
|
}
|
||||||
|
if (EVFLAG) ev_tally_full_thr(this, i, evdwl, ecoul, fpair_i, delx, dely, delz, thr);
|
||||||
if (EVFLAG)
|
|
||||||
ev_tally_thr(this, i, j, nlocal, NEWTON_PAIR, evdwl, ecoul, fpair_i, delx, dely, delz,
|
|
||||||
thr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f[i].x += fxtmp;
|
f[i].x += fxtmp;
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
#include "math_const.h"
|
#include "math_const.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "neigh_list.h"
|
#include "neigh_list.h"
|
||||||
|
#include "suffix.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ static constexpr double EPSILON = 1.0e-6;
|
|||||||
PairLJCutCoulDebyeDielectricOMP::PairLJCutCoulDebyeDielectricOMP(LAMMPS *_lmp) :
|
PairLJCutCoulDebyeDielectricOMP::PairLJCutCoulDebyeDielectricOMP(LAMMPS *_lmp) :
|
||||||
PairLJCutCoulDebyeDielectric(_lmp), ThrOMP(_lmp, THR_PAIR)
|
PairLJCutCoulDebyeDielectric(_lmp), ThrOMP(_lmp, THR_PAIR)
|
||||||
{
|
{
|
||||||
|
suffix_flag |= Suffix::OMP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -99,7 +101,7 @@ void PairLJCutCoulDebyeDielectricOMP::eval(int iifrom, int iito, ThrData *const
|
|||||||
{
|
{
|
||||||
int i, j, ii, jj, jnum, itype, jtype;
|
int i, j, ii, jj, jnum, itype, jtype;
|
||||||
double qtmp, etmp, xtmp, ytmp, ztmp, delx, dely, delz, evdwl, ecoul;
|
double qtmp, etmp, xtmp, ytmp, ztmp, delx, dely, delz, evdwl, ecoul;
|
||||||
double fpair_i, fpair_j;
|
double fpair_i;
|
||||||
double rsq, r2inv, r6inv, forcecoul, forcelj, factor_coul, factor_lj, efield_i, epot_i;
|
double rsq, r2inv, r6inv, forcecoul, forcelj, factor_coul, factor_lj, efield_i, epot_i;
|
||||||
double r, rinv, screening;
|
double r, rinv, screening;
|
||||||
int *ilist, *jlist, *numneigh, **firstneigh;
|
int *ilist, *jlist, *numneigh, **firstneigh;
|
||||||
@ -185,7 +187,6 @@ void PairLJCutCoulDebyeDielectricOMP::eval(int iifrom, int iito, ThrData *const
|
|||||||
forcelj = 0.0;
|
forcelj = 0.0;
|
||||||
|
|
||||||
fpair_i = (factor_coul * etmp * forcecoul + factor_lj * forcelj) * r2inv;
|
fpair_i = (factor_coul * etmp * forcecoul + factor_lj * forcelj) * r2inv;
|
||||||
|
|
||||||
fxtmp += delx * fpair_i;
|
fxtmp += delx * fpair_i;
|
||||||
fytmp += dely * fpair_i;
|
fytmp += dely * fpair_i;
|
||||||
fztmp += delz * fpair_i;
|
fztmp += delz * fpair_i;
|
||||||
@ -196,19 +197,11 @@ void PairLJCutCoulDebyeDielectricOMP::eval(int iifrom, int iito, ThrData *const
|
|||||||
eztmp += delz * efield_i;
|
eztmp += delz * efield_i;
|
||||||
epot[i] += epot_i;
|
epot[i] += epot_i;
|
||||||
|
|
||||||
if (NEWTON_PAIR || j >= nlocal) {
|
|
||||||
fpair_j = (factor_coul * eps[j] * forcecoul + factor_lj * forcelj) * r2inv;
|
|
||||||
f[j].x -= delx * fpair_j;
|
|
||||||
f[j].y -= dely * fpair_j;
|
|
||||||
f[j].z -= delz * fpair_j;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EFLAG) {
|
if (EFLAG) {
|
||||||
if (rsq < cut_coulsq[itype][jtype]) {
|
if (rsq < cut_coulsq[itype][jtype]) {
|
||||||
ecoul = factor_coul * qqrd2e * qtmp * q[j] * (etmp + eps[j]) * rinv * screening;
|
ecoul = factor_coul * qqrd2e * qtmp * q[j] * 0.5 * (etmp + eps[j]) * rinv * screening;
|
||||||
} else
|
} else
|
||||||
ecoul = 0.0;
|
ecoul = 0.0;
|
||||||
ecoul *= 0.5;
|
|
||||||
if (rsq < cut_ljsq[itype][jtype]) {
|
if (rsq < cut_ljsq[itype][jtype]) {
|
||||||
evdwl = r6inv * (lj3[itype][jtype] * r6inv - lj4[itype][jtype]) - offset[itype][jtype];
|
evdwl = r6inv * (lj3[itype][jtype] * r6inv - lj4[itype][jtype]) - offset[itype][jtype];
|
||||||
evdwl *= factor_lj;
|
evdwl *= factor_lj;
|
||||||
@ -216,9 +209,7 @@ void PairLJCutCoulDebyeDielectricOMP::eval(int iifrom, int iito, ThrData *const
|
|||||||
evdwl = 0.0;
|
evdwl = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EVFLAG)
|
if (EVFLAG) ev_tally_full_thr(this, i, evdwl, ecoul, fpair_i, delx, dely, delz, thr);
|
||||||
ev_tally_thr(this, i, j, nlocal, NEWTON_PAIR, evdwl, ecoul, fpair_i, delx, dely, delz,
|
|
||||||
thr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f[i].x += fxtmp;
|
f[i].x += fxtmp;
|
||||||
|
|||||||
@ -24,6 +24,7 @@
|
|||||||
#include "math_const.h"
|
#include "math_const.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "neigh_list.h"
|
#include "neigh_list.h"
|
||||||
|
#include "suffix.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
@ -39,6 +40,7 @@ static constexpr double EPSILON = 1.0e-6;
|
|||||||
PairLJCutCoulLongDielectricOMP::PairLJCutCoulLongDielectricOMP(LAMMPS *_lmp) :
|
PairLJCutCoulLongDielectricOMP::PairLJCutCoulLongDielectricOMP(LAMMPS *_lmp) :
|
||||||
PairLJCutCoulLongDielectric(_lmp), ThrOMP(_lmp, THR_PAIR)
|
PairLJCutCoulLongDielectric(_lmp), ThrOMP(_lmp, THR_PAIR)
|
||||||
{
|
{
|
||||||
|
suffix_flag |= Suffix::OMP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
@ -229,10 +231,10 @@ void PairLJCutCoulLongDielectricOMP::eval(int iifrom, int iito, ThrData *const t
|
|||||||
if (EFLAG) {
|
if (EFLAG) {
|
||||||
if (rsq < cut_coulsq) {
|
if (rsq < cut_coulsq) {
|
||||||
if (!ncoultablebits || rsq <= tabinnersq)
|
if (!ncoultablebits || rsq <= tabinnersq)
|
||||||
ecoul = prefactor * (etmp + eps[j]) * erfc;
|
ecoul = prefactor * 0.5 * (etmp + eps[j]) * erfc;
|
||||||
else {
|
else {
|
||||||
table = etable[itable] + fraction * detable[itable];
|
table = etable[itable] + fraction * detable[itable];
|
||||||
ecoul = qtmp * q[j] * (etmp + eps[j]) * table;
|
ecoul = qtmp * q[j] * 0.5 * (etmp + eps[j]) * table;
|
||||||
}
|
}
|
||||||
if (factor_coul < 1.0) ecoul -= (1.0 - factor_coul) * prefactor;
|
if (factor_coul < 1.0) ecoul -= (1.0 - factor_coul) * prefactor;
|
||||||
} else
|
} else
|
||||||
|
|||||||
@ -597,9 +597,8 @@ void ThrOMP::ev_tally_full_thr(Pair * const pair, const int i, const double evdw
|
|||||||
const double ecoul, const double fpair, const double delx,
|
const double ecoul, const double fpair, const double delx,
|
||||||
const double dely, const double delz, ThrData * const thr)
|
const double dely, const double delz, ThrData * const thr)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (pair->eflag_either)
|
if (pair->eflag_either)
|
||||||
e_tally_thr(pair, i, i+1, i, 0, evdwl, ecoul, thr);
|
e_tally_thr(pair, i, /*j*/ i+1, /*nlocal*/ i+1, /*newton_pair*/ 0, evdwl, ecoul, thr);
|
||||||
|
|
||||||
if (pair->vflag_either) {
|
if (pair->vflag_either) {
|
||||||
double v[6];
|
double v[6];
|
||||||
@ -610,7 +609,7 @@ void ThrOMP::ev_tally_full_thr(Pair * const pair, const int i, const double evdw
|
|||||||
v[4] = delx*delz*fpair;
|
v[4] = delx*delz*fpair;
|
||||||
v[5] = dely*delz*fpair;
|
v[5] = dely*delz*fpair;
|
||||||
|
|
||||||
v_tally_thr(pair, i, i+1, i, 0, v, thr);
|
v_tally_thr(pair, i, /*j*/ i+1, /*nlocal*/ i+1, /*newton_pair*/ 0, v, thr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pair->num_tally_compute > 0) {
|
if (pair->num_tally_compute > 0) {
|
||||||
|
|||||||
@ -1729,7 +1729,9 @@ void AtomVec::data_atom(double *coord, imageint imagetmp, const std::vector<std:
|
|||||||
|
|
||||||
// error checks applicable to all styles
|
// error checks applicable to all styles
|
||||||
|
|
||||||
if (tag[nlocal] <= 0) error->one(FLERR, "Invalid atom ID in Atoms section of data file");
|
if (tag[nlocal] <= 0)
|
||||||
|
error->one(FLERR, "Invalid atom ID {} in line {} of Atoms section of data file",
|
||||||
|
tag[nlocal], nlocal+1);
|
||||||
|
|
||||||
// if needed, modify unpacked values or initialize other peratom values
|
// if needed, modify unpacked values or initialize other peratom values
|
||||||
|
|
||||||
|
|||||||
@ -29,7 +29,7 @@ FixNVE::FixNVE(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
if (!utils::strmatch(style,"^nve/sphere") && narg < 3)
|
if (!utils::strmatch(style,"^nve/sphere") && narg < 3)
|
||||||
error->all(FLERR,"Illegal fix nve command");
|
utils::missing_cmd_args(FLERR, "fix nve", error);
|
||||||
|
|
||||||
dynamic_group_allow = 1;
|
dynamic_group_allow = 1;
|
||||||
time_integrate = 1;
|
time_integrate = 1;
|
||||||
|
|||||||
@ -32,7 +32,7 @@ using namespace FixConst;
|
|||||||
FixNVELimit::FixNVELimit(LAMMPS *lmp, int narg, char **arg) :
|
FixNVELimit::FixNVELimit(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
if (narg != 4) error->all(FLERR,"Illegal fix nve/limit command");
|
if (narg != 4) utils::missing_cmd_args(FLERR, "fix nve/limit", error);
|
||||||
|
|
||||||
time_integrate = 1;
|
time_integrate = 1;
|
||||||
scalar_flag = 1;
|
scalar_flag = 1;
|
||||||
|
|||||||
@ -25,7 +25,7 @@ using namespace FixConst;
|
|||||||
|
|
||||||
FixNVENoforce::FixNVENoforce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
|
FixNVENoforce::FixNVENoforce(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
if (narg != 3) error->all(FLERR, "Illegal fix nve/noforce command");
|
if (narg != 3) utils::missing_cmd_args(FLERR, "fix nve/noforce", error);
|
||||||
|
|
||||||
time_integrate = 1;
|
time_integrate = 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user