.. index:: compute property/local compute property/local command ============================== Syntax """""" .. parsed-literal:: compute ID group-ID property/local general_keyword general_values input1 input2 ... * ID, group-ID are documented in :doc:`compute ` command * property/local = style name of this compute command * general_keywords general_values are documented in `compute `_ * input = one or more attributes .. parsed-literal:: possible attributes = natom1 natom2 ntype1 ntype2 patom1 patom2 ptype1 ptype2 batom1 batom2 btype .. parsed-literal:: natom1, natom2 = IDs of 2 atoms in each pair (within neighbor cutoff) ntype1, ntype2 = type of 2 atoms in each pair (within neighbor cutoff) patom1, patom2 = IDs of 2 atoms in each pair (within force cutoff) ptype1, ptype2 = type of 2 atoms in each pair (within force cutoff) batom1, batom2 = IDs of 2 atoms in each bond btype = bond type of each bond Examples """""""" .. parsed-literal:: compute 1 all property/local btype batom1 batom2 compute 1 all property/local atype aatom2 Description """"""""""" Define a computation that stores the specified attributes as local data so it can be accessed by other :ref:`output commands `. If the input attributes refer to bond information, then the number of datums generated, aggregated across all processors, equals the number of bonds in the system. Ditto for pairs. If multiple input attributes are specified then they must all generate the same amount of information, so that the resulting local array has the same number of rows for each column. This means that only bond attributes can be specified together. If the inputs are pair attributes, the local data is generated by looping over the pairwise neighbor list. Info about an individual pairwise interaction will only be included if both atoms in the pair are in the specified compute group. For *natom1* and *natom2*, all atom pairs in the neighbor list are considered (out to the neighbor cutoff = force cutoff + :doc:`neighbor skin `). For *patom1* and *patom2*, the distance between the atoms must be less than the force cutoff distance for that pair to be included, as defined by the :doc:`pair_style ` and :doc:`pair_coeff ` commands. If the inputs are bond, etc attributes, the local data is generated by looping over all the atoms owned on a processor and extracting bond, etc info. For bonds, info about an individual bond will only be included if both atoms in the bond are in the specified compute group. Likewise for angles, dihedrals, etc. Note that as atoms migrate from processor to processor, there will be no consistent ordering of the entries within the local vector or array from one timestep to the next. The only consistency that is guaranteed is that the ordering on a particular timestep will be the same for local vectors or arrays generated by other compute commands. For example, output from the :doc:`compute bond/local ` command can be combined with bond atom indices from this command and output by the :doc:`dump local ` command in a consistent way. The *natom1* and *natom2*, or *patom1* and *patom2* attributes refer to the atom IDs of the 2 atoms in each pairwise interaction computed by the :doc:`pair_style ` command. The *ntype1* and *ntype2*, or *ptype1* and *ptype2* attributes refer to the atom types of the 2 atoms in each pairwise interaction. .. warning:: For pairs, if two atoms I,J are involved in 1-2, 1-3, 1-4 interactions within the molecular topology, their pairwise interaction may be turned off, and thus they may not appear in the neighbor list, and will not be part of the local data created by this command. More specifically, this may be true of I,J pairs with a weighting factor of 0.0; pairs with a non-zero weighting factor are included. The weighting factors for 1-2, 1-3, and 1-4 pairwise interactions are set by the :doc:`special_bonds ` command. The *batom1* and *batom2* attributes refer to the atom IDs of the 2 atoms in each :doc:`bond `. The *btype* attribute refers to the type of the bond, from 1 to Nbtypes = # of bond types. The number of bond types is defined in the data file read by the :doc:`read_data ` command. Output info """"""""""" This compute calculates a local vector or local array depending on the number of input values. The length of the vector or number of rows in the array is the number of bonds. If a single input is specified, a local vector is produced. If two or more inputs are specified, a local array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command that uses local values from a compute as input. See :ref:`this section ` for an overview of LIGGGHTS(R)-PUBLIC output options. The vector or array values will be integers that correspond to the specified attribute. Restrictions """""""""""" none Related commands """""""""""""""" :doc:`dump local `, :doc:`compute reduce ` **Default:** none .. _liws: http://www.cfdem.com .. _ld: Manual.html .. _lc: Section_commands.html#comm