LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands

### compute reduce command

### compute reduce/region command

Syntax:

    compute ID group-ID style arg mode input1 input2 ...

- ID, group-ID are documented in compute command
- style = reduce or reduce/region

        reduce arg = none
        reduce/region arg = region-ID
          region-ID = ID of region to use for choosing atoms

- mode = sum or min or max
- one or more inputs can be listed
- input = x, y, z, vx, vy, vz, fx, fy, fz, c_ID, c_ID[N], f_ID, f_ID[N], v_name

        x,y,z,vx,vy,vz,fx,fy,fz = atom attribute (position, velocity, force component)
        c_ID = per-atom scalar value calculated by a compute with ID
        c_ID[N] = Nth component of per-atom vector calculated by a compute with ID
        f_ID = per-atom scalar value calculated by a fix with ID
        f_ID[N] = Nth component of per-atom vector calculated by a fix with ID
        v_name = per-atom value calculated by an atom-style variable with name

Examples:

    compute 1 all reduce sum c_force
    compute 1 all reduce/region subbox sum c_force
    compute 2 all reduce min c_press2 f_ave v_myKE

Description:

Define a calculation that "reduces" one or more per-atom inputs across all atoms in the group to yield a single global scalar for each listed input. If the compute reduce/region command is used, the selection of atoms is limited to atoms in the region as well as in the group. The resulting value(s) can be accessed by any command that uses global computes, e.g. the thermo custom command or fix ave/time command or by a variable command. See this section of the documentation for an overview of output options.

The reduction operation is specified by the mode setting. The sum option adds the per-atom quantities into a global total. The min or max options find the minimum or maximum value across all per-atom quantities.

Each listed input is operated on independently. The group specified with the command means only atoms within the group contribute to the result. If the compute reduce/region command is used, the atoms must also be within the region. Note that the input that produces the per-atom quantities may define its own group which affects the quantities it returns. For example, if a per-atom compute is used as an input, it will generate values of 0.0 for atoms that are not in the group specified for that compute.

Each listed input can be an atom attribute (position, velocity, force component) or can be the result of a compute or fix or the evaluation of an atom-style variable. In the latter cases, the compute, fix, or variable must produce per-atom quantities, not a global quantity.

Computes that produce per-atom quantities are those which have the word atom in their style name. See the doc pages for individual fixes to determine which ones produce per-atom quantities. Variables of style atom are the only ones that can be used with this compute since all other variable styles produce global quantities.

If a single input is specified this compute produces a global scalar value. If multiple inputs are specified, this compute produces a vector of global values, the length of which is equal to the number of inputs specified.

As discussed below, for sum mode, the value(s) produced by this compute are all "extensive", meaning their value scales linearly with the number of atoms involved. If normalized values are desired, this compute can be accessed by the thermo_style custom command with thermo_modify norm yes set as an option. Or it can be accessed by a variable that divides by the appropriate atom count.

Output info:

For sum mode, the scalar and vector values calculated by this compute are "extensive", meaning they scale with the number of atoms in the simulation. For min and max modes, the value(s) are intensive.

Restrictions: none

Related commands:

compute, fix, variable

Default: none