121 lines
4.5 KiB
ReStructuredText
121 lines
4.5 KiB
ReStructuredText
Internal Styles
|
|
---------------
|
|
|
|
LAMMPS has a number of styles that are not meant to be used in an input
|
|
file and thus are not documented in the :doc:`LAMMPS command
|
|
documentation <Commands_all>`. The differentiation between user
|
|
commands and internal commands is through the case of the command name:
|
|
user commands and styles are all lower case, internal styles are all
|
|
upper case. Internal styles are not called from the input file, but
|
|
their classes are instantiated by other styles. Often they are
|
|
created by other styles to store internal data or to perform actions
|
|
regularly at specific steps of the simulation.
|
|
|
|
The paragraphs below document some of those styles that have general
|
|
utility and may be used to avoid redundant implementation.
|
|
|
|
DEPRECATED Styles
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
The styles called DEPRECATED (e.g. pair, bond, fix, compute, region, etc.)
|
|
have the purpose to inform users that a specific style has been removed
|
|
or renamed. This is achieved by creating an alias for the deprecated
|
|
style to the corresponding class. For example, the fix style DEPRECATED
|
|
is aliased to fix style ave/spatial and fix style ave/spatial/sphere with
|
|
the following code:
|
|
|
|
.. code-block:: c++
|
|
|
|
FixStyle(DEPRECATED,FixDeprecated);
|
|
FixStyle(ave/spatial,FixDeprecated);
|
|
FixStyle(ave/spatial/sphere,FixDeprecated);
|
|
|
|
The individual class will then determine based on the style name
|
|
what action to perform:
|
|
|
|
- inform that the style has been removed and what style replaces it, if any, and then error out
|
|
- inform that the style has been renamed and then either execute the replacement or error out
|
|
- inform that the style is no longer required, and it is thus ignored and continue
|
|
|
|
There is also a section in the user's guide for :doc:`removed commands
|
|
and packages <Commands_removed>` with additional explanations.
|
|
|
|
Internal fix styles
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
These provide an implementation of features that would otherwise have
|
|
been replicated across multiple styles. The used fix ID is generally
|
|
derived from the compute or fix ID creating the fix with some string
|
|
appended. When needed, the fix can be looked up with
|
|
``Modify::get_fix_by_id()``, which returns a pointer to the fix
|
|
instance. The data managed by the fix can be accessed just as for other
|
|
fixes that can be used in input files.
|
|
|
|
fix DUMMY
|
|
"""""""""
|
|
|
|
Most fix classes cannot be instantiated before the simulation box has
|
|
been created since they access data that is only available then.
|
|
However, in some cases it is required that a fix must be at or close to
|
|
the top of the list of all fixes. In those cases an instance of the
|
|
DUMMY fix style may be created by calling ``Modify::add_fix()`` and then
|
|
later replaced by the intended fix through calling ``Modify::replace_fix()``.
|
|
|
|
fix STORE/ATOM
|
|
""""""""""""""
|
|
|
|
Fix STORE/ATOM can be used as persistent storage of per-atom data.
|
|
|
|
**Syntax**
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
fix ID group-ID STORE/ATOM N1 N2 gflag rflag
|
|
|
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
|
* STORE/ATOM = style name of this fix command
|
|
* N1 = 1, N2 = 0 : data is per-atom vector = single value per atom
|
|
* N1 > 1, N2 = 0 : data is per-atom array = N1 values per atom
|
|
* N1 > 0, N2 > 0 : data is per-atom tensor = N1xN2 values per atom
|
|
* gflag = 1 communicate per-atom values with ghost atoms, 0 do not update ghost atom data
|
|
* rflag = 1 store per-atom value in restart file, 0 do not store data in restart
|
|
|
|
Similar functionality is also available through using custom per-atom
|
|
properties with :doc:`fix property/atom <fix_property_atom>`. The
|
|
choice between the two fixes should be based on whether the user should
|
|
be able to access this per-atom data: if yes, then fix property/atom is
|
|
preferred, otherwise fix STORE/ATOM.
|
|
|
|
fix STORE/GLOBAL
|
|
""""""""""""""""
|
|
|
|
Fix STORE/GLOBAL can be used as persistent storage of global data with support for restarts
|
|
|
|
**Syntax**
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
fix ID group-ID STORE/GLOBAL N1 N2
|
|
|
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
|
* STORE/GLOBAL = style name of this fix command
|
|
* N1 >=1 : number of global items to store
|
|
* N2 = 1 : data is global vector of length N1
|
|
* N2 > 1 : data is global N1xN2 array
|
|
|
|
fix STORE/LOCAL
|
|
"""""""""""""""
|
|
|
|
Fix STORE/LOCAL can be used as persistent storage for local data
|
|
|
|
**Syntax**
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
fix ID group-ID STORE/LOCAL Nreset Nvalues
|
|
|
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
|
* STORE/LOCAL = style name of this fix command
|
|
* Nreset = frequency at which local data is available
|
|
* Nvalues = number of values per local item, that is the number of columns
|