Merge pull request #3191 from akohlmey/collected-small-changes
Collected small changes and fixes
This commit is contained in:
@ -73,8 +73,9 @@ configuration should set this up automatically, but is untested.
|
||||
In case of problems, you are recommended to contact somebody with
|
||||
experience in using Cygwin. If you do come across portability problems
|
||||
requiring changes to the LAMMPS source code, or figure out corrections
|
||||
yourself, please report them on the lammps-users mailing list, or file
|
||||
them as an issue or pull request on the LAMMPS GitHub project.
|
||||
yourself, please report them on the
|
||||
`LAMMPS forum at MatSci <https://matsci.org/c/lammps/lammps-development/>`_,
|
||||
or file them as an issue or pull request on the LAMMPS GitHub project.
|
||||
|
||||
.. _msvc:
|
||||
|
||||
@ -117,8 +118,8 @@ LAMMPS with MPI enabled.
|
||||
.. note::
|
||||
|
||||
This is work in progress and you should contact the LAMMPS developers
|
||||
via GitHub, the forum, or the mailing list, if you have questions or
|
||||
LAMMPS specific problems.
|
||||
via GitHub or the `LAMMPS forum at MatSci <https://matsci.org/c/lammps/lammps-development/>`_,
|
||||
if you have questions or LAMMPS specific problems.
|
||||
|
||||
.. _cross:
|
||||
|
||||
|
||||
@ -68,7 +68,7 @@ Members of ``lammpsplugin_t``
|
||||
* - author
|
||||
- String with the name and email of the author
|
||||
* - creator.v1
|
||||
- Pointer to factory function for pair, bond, angle, dihedral, improper, command or kspace styles
|
||||
- Pointer to factory function for pair, bond, angle, dihedral, improper, kspace, or command styles
|
||||
* - creator.v2
|
||||
- Pointer to factory function for compute, fix, or region styles
|
||||
* - handle
|
||||
|
||||
@ -133,6 +133,9 @@ and parsing files or arguments.
|
||||
.. doxygenfunction:: trim_comment
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: star_subst
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: has_utf8
|
||||
:project: progguide
|
||||
|
||||
|
||||
@ -17,9 +17,8 @@ the steps outlined below:
|
||||
if your issue has already been reported and if it is still open.
|
||||
* Check the `GitHub Pull Requests page <https://github.com/lammps/lammps/pulls>`_
|
||||
to see if there is already a fix for your bug pending.
|
||||
* Check the `mailing list archives <https://www.lammps.org/mail.html>`_ or
|
||||
the `LAMMPS forum <https://www.lammps.org/forum.html>`_ to see if the
|
||||
issue has been discussed before.
|
||||
* Check the `LAMMPS forum at MatSci <https://matsci.org/lammps/>`_
|
||||
to see if the issue has been discussed before.
|
||||
|
||||
If none of these steps yields any useful information, please file a new
|
||||
bug report on the `GitHub Issue page <https://github.com/lammps/lammps/issues>`_.
|
||||
@ -38,12 +37,9 @@ generate this restart from a data file or a simple additional input.
|
||||
This input deck can be used with tools like a debugger or `valgrind
|
||||
<https://valgrind.org>`_ to further :doc:`debug the crash <Errors_debug>`.
|
||||
|
||||
You may also send an email to the LAMMPS mailing list at
|
||||
"lammps-users at lists.sourceforge.net" describing the problem with the
|
||||
same kind of information. The mailing list can provide a faster response,
|
||||
especially if the bug reported is actually expected behavior. But because
|
||||
of the high volume of the mailing list, it can happen that your e-mail
|
||||
is overlooked and then forgotten. Issues on GitHub have to be explicitly
|
||||
closed, so that will *guarantee* that at least one LAMMPS developer will
|
||||
have looked at it.
|
||||
You may also post a message in the `development category of the LAMMPS
|
||||
forum at MatSci <https://matsci.org/c/lammps/lammps-development/>`_
|
||||
describing the problem with the same kind of information. The forum can
|
||||
provide a faster response, especially if the bug reported is actually
|
||||
expected behavior or other LAMMPS users have come across it before.
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ of the `LAMMPS website <lws_>`_.
|
||||
|
||||
.. _download: https://www.lammps.org/download.html
|
||||
.. _bug: https://www.lammps.org/bug.html
|
||||
.. _older: https://www.lammps.org/tars
|
||||
.. _older: https://download.lammps.org/tars/
|
||||
.. _lws: https://www.lammps.org
|
||||
|
||||
You have two choices of tarballs, either the most recent stable
|
||||
|
||||
@ -46,7 +46,7 @@ In addition there are DOIs for individual stable releases. Currently there are:
|
||||
|
||||
- 3 March 2020 version: `DOI:10.5281/zenodo.3726417 <https://dx.doi.org/10.5281/zenodo.3726417>`_
|
||||
- 29 October 2020 version: `DOI:10.5281/zenodo.4157471 <https://dx.doi.org/10.5281/zenodo.4157471>`_
|
||||
|
||||
- 29 September 2021 version: `DOI:10.5281/zenodo.6386596 <https//dx.doi.org/10.5281/zenodo.6386596>`_
|
||||
|
||||
Home page
|
||||
^^^^^^^^^
|
||||
|
||||
@ -20,7 +20,6 @@ available online are listed below.
|
||||
* `Glossary of terms relevant to LAMMPS <https://www.lammps.org/glossary.html>`_
|
||||
* `LAMMPS highlights with images <https://www.lammps.org/pictures.html>`_
|
||||
* `LAMMPS highlights with movies <https://www.lammps.org/movies.html>`_
|
||||
* `Mailing list <https://www.lammps.org/mail.html>`_
|
||||
* `LAMMPS forum <https://www.lammps.org/forum.html>`_
|
||||
* `Workshops <https://www.lammps.org/workshops.html>`_
|
||||
* `Tutorials <https://www.lammps.org/tutorials.html>`_
|
||||
|
||||
@ -14,11 +14,11 @@ LAMMPS is an open-source code, distributed freely under the terms of
|
||||
the GNU Public License Version 2 (GPLv2).
|
||||
|
||||
The `LAMMPS website <lws_>`_ has a variety of information about the
|
||||
code. It includes links to an on-line version of this manual, a
|
||||
`mailing list <https://www.lammps.org/mail.html>`_ and
|
||||
`online forum <https://www.lammps.org/forum.html>`_ where users can
|
||||
post questions, and a `GitHub site <https://github.com/lammps/lammps>`_
|
||||
where all LAMMPS development is coordinated.
|
||||
code. It includes links to an on-line version of this manual, an
|
||||
`online forum <https://www.lammps.org/forum.html>`_ where users can post
|
||||
questions and discuss LAMMPS, and a `GitHub site
|
||||
<https://github.com/lammps/lammps>`_ where all LAMMPS development is
|
||||
coordinated.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -27,11 +27,10 @@ join the `LAMMPS developers on Slack <https://lammps.slack.com>`_. This
|
||||
slack work space is by invitation only. Thus for access, please send an
|
||||
e-mail to ``slack@lammps.org`` explaining what part of LAMMPS you are
|
||||
working on. Only discussions related to LAMMPS development are
|
||||
tolerated in that work space, so this is **NOT** for people that look for
|
||||
help with compiling, installing, or using LAMMPS. Please post a message
|
||||
to the `lammps-users mailing list <https://www.lammps.org/mail.html>`_
|
||||
or the `LAMMPS forum <https://www.lammps.org/forum.html>`_ for those
|
||||
purposes.
|
||||
tolerated in that work space, so this is **NOT** for people that look
|
||||
for help with compiling, installing, or using LAMMPS. Please post a
|
||||
message to the `LAMMPS forum <https://www.lammps.org/forum.html>`_ for
|
||||
those purposes.
|
||||
|
||||
Packages versus individual files
|
||||
--------------------------------
|
||||
|
||||
@ -35,13 +35,21 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Dump a snapshot of atom coordinates every N timesteps in the
|
||||
`ADIOS <adios_>`_ based "BP" file format, or using different I/O solutions in ADIOS,
|
||||
to a stream that can be read on-line by another program.
|
||||
Dump a snapshot of atom coordinates every N timesteps in the `ADIOS
|
||||
<adios_>`_ based "BP" file format, or using different I/O solutions in
|
||||
ADIOS, to a stream that can be read on-line by another program.
|
||||
ADIOS-BP files are binary, portable and self-describing.
|
||||
|
||||
.. _adios: https://github.com/ornladios/ADIOS2
|
||||
|
||||
.. note::
|
||||
|
||||
To be able to use ADIOS, a file ``adios2_config.xml`` with specific
|
||||
configuration settings is expected in the current working directory.
|
||||
If the file is not present, LAMMPS will try to create a minimal
|
||||
default file. Please refer to the ADIOS documentation for details on
|
||||
how to adjust this file for optimal performance and desired features.
|
||||
|
||||
**Use from write_dump:**
|
||||
|
||||
It is possible to use these dump styles with the
|
||||
|
||||
@ -294,11 +294,13 @@ group and running further.
|
||||
|
||||
.. note::
|
||||
|
||||
All fixes and computes take a group ID as an argument, but they
|
||||
do not all allow for use of a dynamic group. If you get an error
|
||||
All fixes and computes take a group ID as an argument, but they do
|
||||
not all allow for use of a dynamic group. If you get an error
|
||||
message that this is not allowed, but feel that it should be for the
|
||||
fix or compute in question, then please post your reasoning to the
|
||||
LAMMPS mail list and we can change it.
|
||||
`LAMMPS forum at MatSci <https://matsci.org/c/lammps-development/>`_
|
||||
and we can look into changing it. The same applies if you come
|
||||
across inconsistent behavior when dynamic groups are allowed.
|
||||
|
||||
The *static* style removes the setting for a dynamic group, converting
|
||||
it to a static group (the default). The atoms in the static group are
|
||||
|
||||
@ -75,16 +75,16 @@ N additional arguments after the second filename in the pair_coeff
|
||||
command, where N is the number of LAMMPS atom types:
|
||||
|
||||
* MEAM library file
|
||||
* Elem1, Elem2, ...
|
||||
* Element1, Element2, ...
|
||||
* MEAM parameter file
|
||||
* N element names = mapping of MEAM elements to atom types
|
||||
|
||||
See the :doc:`pair_coeff <pair_coeff>` page for alternate ways
|
||||
to specify the path for the potential files.
|
||||
|
||||
As an example, the potentials/library.meam file has generic MEAM
|
||||
settings for a variety of elements. The potentials/SiC.meam file has
|
||||
specific parameter settings for a Si and C alloy system. If your
|
||||
As an example, the ``potentials/library.meam`` file has generic MEAM
|
||||
settings for a variety of elements. The ``potentials/SiC.meam`` file
|
||||
has specific parameter settings for a Si and C alloy system. If your
|
||||
LAMMPS simulation has 4 atoms types and you want the first 3 to be Si,
|
||||
and the fourth to be C, you would use the following pair_coeff command:
|
||||
|
||||
@ -118,30 +118,30 @@ that will be used with other potentials.
|
||||
|
||||
If the second filename is NULL, the element names between the two
|
||||
filenames can appear in any order, e.g. "Si C" or "C Si" in the
|
||||
example above. However, if the second filename is not NULL (as in the
|
||||
example above), it contains settings that are Fortran-indexed for the
|
||||
elements that precede it. Thus you need to insure you list the
|
||||
elements between the filenames in an order consistent with how the
|
||||
example above. However, if the second filename is **not** NULL (as in the
|
||||
example above), it contains settings that are indexed **by numbers**
|
||||
for the elements that precede it. Thus you need to insure that you list
|
||||
the elements between the filenames in an order consistent with how the
|
||||
values in the second filename are indexed. See details below on the
|
||||
syntax for settings in the second file.
|
||||
|
||||
The MEAM library file provided with LAMMPS has the name
|
||||
potentials/library.meam. It is the "meamf" file used by other MD
|
||||
codes. Aside from blank and comment lines (start with #) which can
|
||||
appear anywhere, it is formatted as a series of entries, each of which
|
||||
``potentials/library.meam``. It is the "meamf" file used by other MD
|
||||
codes. Aside from blank and comment lines (starting with # which can
|
||||
appear anywhere), it is formatted as a series of entries, each of which
|
||||
has 19 parameters and can span multiple lines:
|
||||
|
||||
elt, lat, z, ielement, atwt, alpha, b0, b1, b2, b3, alat, esub, asub,
|
||||
t0, t1, t2, t3, rozero, ibar
|
||||
|
||||
The "elt" and "lat" parameters are text strings, such as elt = Si or
|
||||
Cu and lat = dia or fcc. Because the library file is used by Fortran
|
||||
The *elt* and *lat* parameters are text strings, such as *elt* = Si or
|
||||
Cu and *lat* = dia or fcc. Because the library file is used by Fortran
|
||||
MD codes, these strings may be enclosed in single quotes, but this is
|
||||
not required. The other numeric parameters match values in the
|
||||
formulas above. The value of the "elt" string is what is used in the
|
||||
formulas above. The value of the *elt* string is what is used in the
|
||||
pair_coeff command to identify which settings from the library file
|
||||
you wish to read in. There can be multiple entries in the library
|
||||
file with the same "elt" value; LAMMPS reads the first matching entry it
|
||||
file with the same *elt* value; LAMMPS reads the first matching entry it
|
||||
finds and ignores the rest.
|
||||
|
||||
Other parameters in the MEAM library file correspond to single-element
|
||||
@ -157,13 +157,13 @@ potential parameters:
|
||||
esub = energy per atom (eV) in the reference structure at equilibrium
|
||||
asub = "A" parameter for MEAM (see e.g. :ref:`(Baskes) <Baskes>`)
|
||||
|
||||
The alpha, b0, b1, b2, b3, t0, t1, t2, t3 parameters correspond to the
|
||||
The *alpha*, *b0*, *b1*, *b2*, *b3*, *t0*, *t1*, *t2*, *t3* parameters correspond to the
|
||||
standard MEAM parameters in the literature :ref:`(Baskes) <Baskes>` (the b
|
||||
parameters are the standard beta parameters). Note that only parameters
|
||||
normalized to t0 = 1.0 are supported. The rozero parameter is
|
||||
normalized to *t0 = 1.0* are supported. The *rozero* parameter is
|
||||
an element-dependent density scaling that weights the reference
|
||||
background density (see e.g. equation 4.5 in :ref:`(Gullet) <Gullet>`) and
|
||||
is typically 1.0 for single-element systems. The ibar parameter
|
||||
is typically 1.0 for single-element systems. The *ibar* parameter
|
||||
selects the form of the function G(Gamma) used to compute the electron
|
||||
density; options are
|
||||
|
||||
@ -180,7 +180,7 @@ If used, the MEAM parameter file contains settings that override or
|
||||
complement the library file settings. Examples of such parameter
|
||||
files are in the potentials directory with a ".meam" suffix. Their
|
||||
format is the same as is read by other Fortran MD codes. Aside from
|
||||
blank and comment lines (start with #) which can appear anywhere, each
|
||||
blank and comment lines (start with # which can appear anywhere), each
|
||||
line has one of the following forms. Each line can also have a
|
||||
trailing comment (starting with #) which is ignored.
|
||||
|
||||
@ -213,7 +213,7 @@ The recognized keywords for the parameter file are as follows:
|
||||
delta(I,J) = heat of formation for I-J alloy; if Ec_IJ is input as
|
||||
zero, then LAMMPS sets Ec_IJ = (Ec_II + Ec_JJ)/2 - delta_IJ
|
||||
alpha(I,J) = alpha parameter for pair potential between I and J (can
|
||||
be computed from bulk modulus of reference structure
|
||||
be computed from bulk modulus of reference structure)
|
||||
re(I,J) = equilibrium distance between I and J in the reference
|
||||
structure
|
||||
Cmax(I,J,K) = Cmax screening parameter when I-J pair is screened
|
||||
@ -283,8 +283,8 @@ The recognized keywords for the parameter file are as follows:
|
||||
1 = rho_bkgd = rho0_meam(a)\*Z_meam(a) (matches DYNAMO)
|
||||
default = 0
|
||||
|
||||
Rc, delr, re are in distance units (Angstroms in the case of metal
|
||||
units). Ec and delta are in energy units (eV in the case of metal
|
||||
*Rc*, *delr*, *re* are in distance units (Angstroms in the case of metal
|
||||
units). *Ec* and *delta* are in energy units (eV in the case of metal
|
||||
units).
|
||||
|
||||
Each keyword represents a quantity which is either a scalar, vector,
|
||||
@ -299,37 +299,37 @@ Thus these lines
|
||||
rho0(2) = 2.25
|
||||
alpha(1,2) = 4.37
|
||||
|
||||
set rho0 for the second element to the value 2.25 and set alpha for the
|
||||
set *rho0* for the second element to the value 2.25 and set *alpha* for the
|
||||
alloy interaction between elements 1 and 2 to 4.37.
|
||||
|
||||
The augt1 parameter is related to modifications in the MEAM
|
||||
The *augt1* parameter is related to modifications in the MEAM
|
||||
formulation of the partial electron density function. In recent
|
||||
literature, an extra term is included in the expression for the
|
||||
third-order density in order to make the densities orthogonal (see for
|
||||
example :ref:`(Wang) <Wang2>`, equation 3d); this term is included in the
|
||||
MEAM implementation in lammps. However, in earlier published work
|
||||
this term was not included when deriving parameters, including most of
|
||||
those provided in the library.meam file included with lammps, and to
|
||||
account for this difference the parameter t1 must be augmented by
|
||||
3/5\*t3. If augt1=1, the default, this augmentation is done
|
||||
those provided in the ``library.meam`` file included with lammps, and to
|
||||
account for this difference the parameter *t1* must be augmented by
|
||||
3/5\**t3*. If *augt1* = 1, the default, this augmentation is done
|
||||
automatically. When parameter values are fit using the modified
|
||||
density function, as in more recent literature, augt1 should be set to
|
||||
0.
|
||||
|
||||
The mixture_ref_t parameter is available to match results with those
|
||||
The *mixture_ref_t* parameter is available to match results with those
|
||||
of previous versions of lammps (before January 2011). Newer versions
|
||||
of lammps, by default, use the single-element values of the t
|
||||
of lammps, by default, use the single-element values of the *t*
|
||||
parameters to compute the background reference density. This is the
|
||||
proper way to compute these parameters. Earlier versions of lammps
|
||||
used an alloy mixture averaged value of t to compute the background
|
||||
reference density. Setting mixture_ref_t=1 gives the old behavior.
|
||||
WARNING: using mixture_ref_t=1 will give results that are demonstrably
|
||||
used an alloy mixture averaged value of *t* to compute the background
|
||||
reference density. Setting *mixture_ref_t* = 1 gives the old behavior.
|
||||
WARNING: using *mixture_ref_t* = 1 will give results that are demonstrably
|
||||
incorrect for second-neighbor MEAM, and non-standard for
|
||||
first-neighbor MEAM; this option is included only for matching with
|
||||
previous versions of lammps and should be avoided if possible.
|
||||
|
||||
The parameters attrac and repuls, along with the integer selection
|
||||
parameter erose_form, can be used to modify the Rose energy function
|
||||
The parameters *attrac* and *repuls*, along with the integer selection
|
||||
parameter *erose_form*, can be used to modify the Rose energy function
|
||||
used to compute the pair potential. This function gives the energy of
|
||||
the reference state as a function of interatomic spacing. The form of
|
||||
this function is:
|
||||
@ -343,19 +343,19 @@ this function is:
|
||||
a3 = repuls, astar < 0
|
||||
a3 = attrac, astar >= 0
|
||||
|
||||
Most published MEAM parameter sets use the default values attrac=repulse=0.
|
||||
Setting repuls=attrac=delta corresponds to the form used in several
|
||||
Most published MEAM parameter sets use the default values *attrac* = *repulse* = 0.
|
||||
Setting *repuls* = *attrac* = *delta* corresponds to the form used in several
|
||||
recent published MEAM parameter sets, such as :ref:`(Valone) <Valone>`
|
||||
|
||||
.. note::
|
||||
|
||||
The default form of the erose expression in LAMMPS was corrected
|
||||
The default form of the *erose* expression in LAMMPS was corrected
|
||||
in March 2009. The current version is correct, but may show different
|
||||
behavior compared with earlier versions of lammps with the attrac
|
||||
and/or repuls parameters are non-zero. To obtain the previous default
|
||||
form, use erose_form = 1 (this form does not seem to appear in the
|
||||
form, use *erose_form* = 1 (this form does not seem to appear in the
|
||||
literature). An alternative form (see e.g. :ref:`(Lee2) <Lee2>`) is
|
||||
available using erose_form = 2.
|
||||
available using *erose_form* = 2.
|
||||
|
||||
----------
|
||||
|
||||
@ -364,13 +364,13 @@ Mixing, shift, table, tail correction, restart, rRESPA info
|
||||
|
||||
For atom type pairs I,J and I != J, where types I and J correspond to
|
||||
two different element types, mixing is performed by LAMMPS with
|
||||
user-specifiable parameters as described above. You never need to
|
||||
specify a pair_coeff command with I != J arguments for this style.
|
||||
user-specifiable parameters as described above.
|
||||
|
||||
This pair style does not support the :doc:`pair_modify <pair_modify>`
|
||||
shift, table, and tail options.
|
||||
*shift*, *table*, and *tail* options.
|
||||
|
||||
This pair style does not write its information to :doc:`binary restart files <restart>`, since it is stored in potential files. Thus, you
|
||||
This pair style does not write its information to :doc:`binary restart files <restart>`,
|
||||
since it is stored in potential files. Thus, you
|
||||
need to re-specify the pair_style and pair_coeff commands in an input
|
||||
script that reads a restart file.
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ Syntax
|
||||
|
||||
*load* file = load plugin(s) from shared object in *file*
|
||||
*unload* style name = unload plugin *name* of style *style*
|
||||
*style* = *pair* or *bond* or *angle* or *dihedral* or *improper* or *compute* or *fix* or *region* or *command* or *kspace*
|
||||
*style* = *pair* or *bond* or *angle* or *dihedral* or *improper* or *kspace* or *compute* or *fix* or *region* or *command*
|
||||
*list* = print a list of currently loaded plugins
|
||||
*clear* = unload all currently loaded plugins
|
||||
|
||||
|
||||
@ -65,8 +65,8 @@ Syntax
|
||||
bound(group,dir,region), gyration(group,region), ke(group,reigon),
|
||||
angmom(group,dim,region), torque(group,dim,region),
|
||||
inertia(group,dimdim,region), omega(group,dim,region)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name)
|
||||
feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), extract_setting(name)
|
||||
feature functions = is_active(category,feature), is_available(category,feature), is_defined(category,id)
|
||||
atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i]
|
||||
atom vector = id, mass, type, mol, x, y, z, vx, vy, vz, fx, fy, fz, q
|
||||
compute references = c_ID, c_ID[i], c_ID[i][j], C_ID, C_ID[i]
|
||||
@ -823,10 +823,15 @@ Special Functions
|
||||
Special functions take specific kinds of arguments, meaning their
|
||||
arguments cannot be formulas themselves.
|
||||
|
||||
The is_file(x) function is a test whether 'x' is a (readable) file
|
||||
and returns 1 in this case, otherwise it returns 0. For that 'x'
|
||||
The is_file(name) function is a test whether *name* is a (readable) file
|
||||
and returns 1 in this case, otherwise it returns 0. For that *name*
|
||||
is taken as a literal string and must not have any blanks in it.
|
||||
|
||||
The extract_setting(name) function allows to access some basic settings
|
||||
through calling the :cpp:func:`lammps_extract_setting` library function.
|
||||
For available keywords *name* and their meaning, please see the
|
||||
documentation of that function.
|
||||
|
||||
The sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions
|
||||
each take 1 argument which is of the form "c_ID" or "c_ID[N]" or
|
||||
"f_ID" or "f_ID[N]" or "v_name". The first two are computes and the
|
||||
@ -911,30 +916,30 @@ Feature Functions
|
||||
-----------------
|
||||
|
||||
Feature functions allow to probe the running LAMMPS executable for
|
||||
whether specific features are either active, defined, or available.
|
||||
The functions take two arguments, a *category* and a corresponding
|
||||
*argument*\ . The arguments are strings thus cannot be formulas
|
||||
themselves (only $-style immediate variable expansion is possible).
|
||||
whether specific features are either active, defined, or available. The
|
||||
functions take two arguments, a *category* and a corresponding
|
||||
*argument*\ . The arguments are strings and thus cannot be formulas
|
||||
themselves; only $-style immediate variable expansion is possible.
|
||||
Return value is either 1.0 or 0.0 depending on whether the function
|
||||
evaluates to true or false, respectively.
|
||||
|
||||
The *is_active()* function allows to query for active settings which
|
||||
are grouped by categories. Currently supported categories and
|
||||
arguments are:
|
||||
The *is_active(category,feature)* function allows to query for active
|
||||
settings which are grouped by categories. Currently supported categories
|
||||
and arguments are:
|
||||
|
||||
* *package* (argument = *gpu* or *intel* or *kokkos* or *omp*\ )
|
||||
* *newton* (argument = *pair* or *bond* or *any*\ )
|
||||
* *pair* (argument = *single* or *respa* or *manybody* or *tail* or *shift*\ )
|
||||
* *comm_style* (argument = *brick* or *tiled*\ )
|
||||
* *min_style* (argument = any of the compiled in minimizer styles)
|
||||
* *run_style* (argument = any of the compiled in run styles)
|
||||
* *atom_style* (argument = any of the compiled in atom styles)
|
||||
* *pair_style* (argument = any of the compiled in pair styles)
|
||||
* *bond_style* (argument = any of the compiled in bond styles)
|
||||
* *angle_style* (argument = any of the compiled in angle styles)
|
||||
* *dihedral_style* (argument = any of the compiled in dihedral styles)
|
||||
* *improper_style* (argument = any of the compiled in improper styles)
|
||||
* *kspace_style* (argument = any of the compiled in kspace styles)
|
||||
* *package*\ : argument = *gpu* or *intel* or *kokkos* or *omp*
|
||||
* *newton*\ : argument = *pair* or *bond* or *any*
|
||||
* *pair*\ : argument = *single* or *respa* or *manybody* or *tail* or *shift*
|
||||
* *comm_style*\ : argument = *brick* or *tiled*
|
||||
* *min_style*\ : argument = any of the compiled in minimizer styles
|
||||
* *run_style*\ : argument = any of the compiled in run styles
|
||||
* *atom_style*\ : argument = any of the compiled in atom style)
|
||||
* *pair_style*\ : argument = any of the compiled in pair styles
|
||||
* *bond_style*\ : argument = any of the compiled in bond styles
|
||||
* *angle_style*\ : argument = any of the compiled in angle styles
|
||||
* *dihedral_style*\ : argument = any of the compiled in dihedral styles
|
||||
* *improper_style*\ : argument = any of the compiled in improper styles
|
||||
* *kspace_style*\ : argument = any of the compiled in kspace styles
|
||||
|
||||
Most of the settings are self-explanatory, the *single* argument in the
|
||||
*pair* category allows to check whether a pair style supports a
|
||||
@ -943,7 +948,9 @@ features or LAMMPS, *respa* allows to check whether the inner/middle/outer
|
||||
mode of r-RESPA is supported. In the various style categories,
|
||||
the checking is also done using suffix flags, if available and enabled.
|
||||
|
||||
Example 1: disable use of suffix for pppm when using GPU package (i.e. run it on the CPU concurrently to running the pair style on the GPU), but do use the suffix otherwise (e.g. with OPENMP).
|
||||
Example 1: disable use of suffix for pppm when using GPU package
|
||||
(i.e. run it on the CPU concurrently to running the pair style on the
|
||||
GPU), but do use the suffix otherwise (e.g. with OPENMP).
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
@ -951,17 +958,15 @@ Example 1: disable use of suffix for pppm when using GPU package (i.e. run it on
|
||||
if $(is_active(package,gpu)) then "suffix off"
|
||||
kspace_style pppm
|
||||
|
||||
Example 2: use r-RESPA with inner/outer cutoff, if supported by pair style, otherwise fall back to using pair and reducing the outer time step
|
||||
Example 2: use r-RESPA with inner/outer cutoff, if supported by pair
|
||||
style, otherwise fall back to using pair and reducing the outer time
|
||||
step
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
timestep $(2.0*(1.0+2.0*is_active(pair,respa))
|
||||
if $(is_active(pair,respa)) then "run_style respa 4 3 2 2 improper 1 inner 2 5.5 7.0 outer 3 kspace 4" else "run_style respa 3 3 2 improper 1 pair 2 kspace 3"
|
||||
|
||||
The *is_defined()* function allows to query categories like *compute*,
|
||||
*dump*, *fix*, *group*, *region*, and *variable* whether an entry
|
||||
with the provided name or id is defined.
|
||||
|
||||
The *is_available(category,name)* function allows to query whether
|
||||
a specific optional feature is available, i.e. compiled in.
|
||||
This currently works for the following categories: *command*,
|
||||
@ -983,6 +988,10 @@ the compiled binary supports it.
|
||||
|
||||
if "$(is_available(feature,ffmpeg)" then "dump 3 all movie 25 movie.mp4 type type zoom 1.6 adiam 1.0"
|
||||
|
||||
The *is_defined(categoy,id)* function allows to query categories like
|
||||
*compute*, *dump*, *fix*, *group*, *region*, and *variable* whether an
|
||||
entry with the provided name or id is defined.
|
||||
|
||||
----------
|
||||
|
||||
Atom Values and Vectors
|
||||
|
||||
Reference in New Issue
Block a user