forked from lijiext/lammps
107 lines
3.5 KiB
Plaintext
107 lines
3.5 KiB
Plaintext
.. index:: compute body/local
|
|
|
|
compute body/local command
|
|
==========================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
compute ID group-ID body/local input1 input2 ...
|
|
|
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
|
* body/local = style name of this compute command
|
|
* one or more keywords may be appended
|
|
* keyword = *id* or *type* or *integer*
|
|
.. parsed-literal::
|
|
|
|
*id* = atom ID of the body particle
|
|
*type* = atom type of the body particle
|
|
*integer* = 1,2,3,etc = index of fields defined by body style
|
|
|
|
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
compute 1 all body/local type 1 2 3
|
|
compute 1 all body/local 3 6
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Define a computation that calculates properties of individual body
|
|
sub-particles. The number of datums generated, aggregated across all
|
|
processors, equals the number of body sub-particles plus the number of
|
|
non-body particles in the system, modified by the group parameter as
|
|
explained below. See :ref:`Section_howto 14 <howto_14>`
|
|
of the manual and the :doc:`body <body>` doc page for more details on
|
|
using body particles.
|
|
|
|
The local data stored by this command is generated by looping over all
|
|
the atoms. An atom will only be included if it is in the group. If
|
|
the atom is a body particle, then its N sub-particles will be looped
|
|
over, and it will contribute N datums to the count of datums. If it
|
|
is not a body particle, it will contribute 1 datum.
|
|
|
|
For both body particles and non-body particles, the *id* keyword
|
|
will store the ID of the particle.
|
|
|
|
For both body particles and non-body particles, the *type* keyword
|
|
will store the type of the particle.
|
|
|
|
The *integer* keywords mean different things for body and non-body
|
|
particles. If the atom is not a body particle, only its *x*\ , *y*\ , *z*
|
|
coordinates can be referenced, using the *integer* keywords 1,2,3.
|
|
Note that this means that if you want to access more fields than this
|
|
for body particles, then you cannot include non-body particles in the
|
|
group.
|
|
|
|
For a body particle, the *integer* keywords refer to fields calculated
|
|
by the body style for each sub-particle. The body style, as specified
|
|
by the :doc:`atom_style body <atom_style>`, determines how many fields
|
|
exist and what they are. See the :doc:`body <body>` doc page for
|
|
details of the different styles.
|
|
|
|
Here is an example of how to output body information using the :doc:`dump local <dump>` command with this compute. If fields 1,2,3 for the
|
|
body sub-particles are x,y,z coordinates, then the dump file will be
|
|
formatted similar to the output of a :doc:`dump atom or custom <dump>`
|
|
command.
|
|
|
|
.. parsed-literal::
|
|
|
|
compute 1 all body/local type 1 2 3
|
|
dump 1 all local 1000 tmp.dump index c_1[1] c_1[2] c_1[3] c_1[4]
|
|
|
|
**Output info:**
|
|
|
|
This compute calculates a local vector or local array depending on the
|
|
number of keywords. The length of the vector or number of rows in the
|
|
array is the number of datums as described above. If a single keyword
|
|
is specified, a local vector is produced. If two or more keywords are
|
|
specified, a local array is produced where the number of columns = the
|
|
number of keywords. The vector or array can be accessed by any
|
|
command that uses local values from a compute as input. See :ref:`this section <howto_15>` for an overview of LAMMPS output
|
|
options.
|
|
|
|
The :doc:`units <units>` for output values depend on the body style.
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
none
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`dump local <dump>`
|
|
|
|
**Default:** none
|
|
|
|
|
|
.. _lws: http://lammps.sandia.gov
|
|
.. _ld: Manual.html
|
|
.. _lc: Section_commands.html#comm
|