compute body/local command


compute ID group-ID body/local input1 input2 ...
  • ID, group-ID are documented in compute command

  • body/local = style name of this compute command

  • one or more keywords may be appended

  • keyword = id or type or integer

    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


compute 1 all body/local type 1 2 3
compute 1 all body/local 3 6


Define a computation that calculates properties of individual body sub-particles. The number of data 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 the Howto body 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\) data to the count of data. 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 atom_style body, determines how many fields exist and what they are. See the Howto_body doc page for details of the different styles.

Here is an example of how to output body information using the dump local command with this compute. If fields 1, 2, and 3 for the body sub-particles are (x, y, z) coordinates, then the dump file will be formatted similar to the output of a dump atom or custom command.

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 data 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 the Howto output page for an overview of LAMMPS output options.

The units for output values depend on the body style.