$$\renewcommand{\AA}{\text{Å}}$$

# 2.3.8. Compute, fixes, variables¶

This section documents accessing or modifying data from objects like computes, fixes, or variables in LAMMPS using the lammps module.

For lammps.extract_compute() and lammps.extract_fix(), the global, per-atom, or local data calculated by the compute or fix can be accessed. What is returned depends on whether the compute or fix calculates a scalar or vector or array. For a scalar, a single double value is returned. If the compute or fix calculates a vector or array, a pointer to the internal LAMMPS data is returned, which you can use via normal Python subscripting.

The one exception is that for a fix that calculates a global vector or array, a single double value from the vector or array is returned, indexed by I (vector) or I and J (array). I,J are zero-based indices. See the Howto output page for a discussion of global, per-atom, and local data, and of scalar, vector, and array data types. See the doc pages for individual computes and fixes for a description of what they calculate and store.

For lammps.extract_variable(), an equal-style or atom-style variable is evaluated and its result returned.

For equal-style variables a single c_double value is returned and the group argument is ignored. For atom-style variables, a vector of c_double is returned, one value per atom, which you can use via normal Python subscripting. The values will be zero for atoms not in the specified group.

lammps.numpy.extract_compute(), lammps.numpy.extract_fix(), and lammps.numpy.extract_variable() are equivalent NumPy implementations that return NumPy arrays instead of ctypes pointers.

The lammps.set_variable() method sets an existing string-style variable to a new string value, so that subsequent LAMMPS commands can access the variable.

Methods:

NumPy Methods: