LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands

### compute atom/molecule command

Syntax:

    compute ID group-ID atom/molecule input1 input2 ...

- ID, group-ID are documented in compute command
- atom/molecule = style name of this compute command
- one or more inputs can be listed
- input = c_ID, c_ID[N], f_ID, f_ID[N], v_name

        c_ID = per-atom vector calculated by a compute with ID
        c_ID[I] = Ith column of per-atom array calculated by a compute with ID
        f_ID = per-atom vector calculated by a fix with ID
        f_ID[I] = Ith column of per-atom array calculated by a fix with ID
        v_name = per-atom vector calculated by an atom-style variable with name

Examples:

    compute 1 all atom/molecule c_ke c_pe
    compute 1 top atom/molecule v_myFormula c_stress3

Description:

Define a calculation that sums per-atom values on a per-molecule basis, one per listed input. The inputs can computes, fixes, or variables that generate per-atom quantities. Note that attributes stored by atoms, such as mass or force, can also be summed on a per-molecule basis, by accessing these quantities via the compute property/atom command.

Each listed input is operated on independently. Only atoms within the specified group contribute to the per-molecule sum. Note that compute or fix inputs define their own group which may affect the quantities they return. For example, if a compute is used as an input which generates a per-atom vector, it will generate values of 0.0 for atoms that are not in the group specified for that compute.

The ordering of per-molecule quantities produced by this compute is consistent with the ordering produced by other compute commands that generate per-molecule datums. Conceptually, them molecule IDs will be in ascending order for any molecule with one or more of its atoms in the specified group.

If an input begins with "c_", a compute ID must follow which has been previously defined in the input script and which generates per-atom quantities. See the individual compute doc page for details. If no bracketed integer is appended, the vector calculated by the compute is used. If a bracketed interger is appended, the Ith column of the array calculated by the compute is used. Users can also write code for their own compute styles and add them to LAMMPS.

If an input begins with "f_", a fix ID must follow which has been previously defined in the input script and which generates per-atom quantities. See the individual fix doc page for details. Note that some fixes only produce their values on certain timesteps, which must be compatible with when compute atom/molecule references the values, else an error results. If no bracketed integer is appended, the vector calculated by the fix is used. If a bracketed integer is appended, the Ith column of the array calculated by the fix is used. Users can also write code for their own fix style and add them to LAMMPS.

If an input begins with "v_", a variable name must follow which has been previously defined in the input script. It must be an atom-style variable. Atom-style variables can reference thermodynamic keywords and various per-atom attributes, or invoke other computes, fixes, or variables when they are evaluated, so this is a very general means of generating per-atom quantities to sum on a per-molecule basis.

Output info:

This compute calculates a global vector or global array depending on the number of input values. The length of the vector or number of rows in the array is the number of molecules. If a single input is specified, a global vector is produced. If two or more inputs are specified, a global array is produced where the number of columns = the number of inputs. The vector or array can be accessed by any command that uses global values from a compute as input. See this section for an overview of LAMMPS output options.

All the vector or array values calculated by this compute are "extensive".

The vector or array values will be in whatever units the input quantities are in.

Restrictions: none

Related commands:

compute, fix, variable

Default: none