LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands

compute reduce command

Syntax:

compute ID group-ID reduce mode input1 input2 ... 

Examples:

compute 1 all reduce 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. 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. 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