\(\renewcommand{\AA}{\text{Å}}\)

# fix store/state command

## Syntax

    fix ID group-ID store/state N input1 input2 ... keyword value ...

- ID, group-ID are documented in fix command

- store/state = style name of this fix command

- N = store atom attributes every N steps, N = 0 for initial store only

- input = one or more atom attributes

      possible attributes = id, mol, type, mass,
                            x, y, z, xs, ys, zs, xu, yu, zu, xsu, ysu, zsu, ix, iy, iz,
                            vx, vy, vz, fx, fy, fz,
                            q, mux, muy, muz, mu,
                            radius, diameter, omegax, omegay, omegaz,
                            angmomx, angmomy, angmomz, tqx, tqy, tqz,
                            c_ID, c_ID[I], f_ID, f_ID[I], v_name,
                            d_name, i_name, i2_name[I], d2_name[I],

      id = atom ID
      mol = molecule ID
      type = atom type
      mass = atom mass
      x,y,z = unscaled atom coordinates
      xs,ys,zs = scaled atom coordinates
      xu,yu,zu = unwrapped atom coordinates
      xsu,ysu,zsu = scaled unwrapped atom coordinates
      ix,iy,iz = box image that the atom is in
      vx,vy,vz = atom velocities
      fx,fy,fz = forces on atoms
      q = atom charge
      mux,muy,muz = orientation of dipolar atom
      mu = magnitued of dipole moment of atom
      radius,diameter = radius.diameter of spherical particle
      omegax,omegay,omegaz = angular velocity of spherical particle
      angmomx,angmomy,angmomz = angular momentum of aspherical particle
      tqx,tqy,tqz = torque on finite-size particles
      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
      i_name = custom integer vector with name
      d_name = custom floating point vector with name
      i2_name[I] = Ith column of custom integer array with name
      d2_name[I] = Ith column of custom floating-point array with name

- zero or more keyword/value pairs may be appended

- keyword = com or thresh

      com value = yes or no
      thresh args = variable operator value
        variable = equal style or compatible variable reference
        operator = "<" or "<=" or ">" or ">=" or "==" or "!=" or "|^"
        value = numeric value to compare to

## Examples

    fix 1 all store/state 0 x y z
    fix 1 all store/state 0 xu yu zu com yes
    fix 2 all store/state 1000 vx vy vz
    fix 1 all store/state 0 x y z thresh v_dist < 5.0

## Description

Define a fix that stores attributes for each atom in the group at the time the fix is defined. If N is 0, then the values are never updated, so this is a way of archiving an atom attribute at a given time for future use in a calculation or output. See the discussion of output commands that take fixes as inputs.

If N is not zero, then the attributes will be updated every N steps.

Note

Actually, only atom attributes specified by keywords like xu or vy or radius are initially stored immediately at the point in your input script when the fix is defined. Attributes specified by a compute, fix, or variable are not initially stored until the first run following the fix definition begins. This is because calculating those attributes may require quantities that are not defined in between runs.

The list of possible attributes is the same as that used by the dump custom command, which describes their meaning.

The requested values are stored in a per-atom vector or array as discussed below. Zeroes are stored for atoms not in the specified group.

If the com keyword is set to yes then the xu, yu, and zu inputs store the position of each atom relative to the center-of-mass of the group of atoms, instead of storing the absolute position.

Added in version 10Dec2025.

If the thresh keyword is used, data is only stored on steps where also the threshold condition following the keyword is met. The first argument must be a variable reference to an equal-style or compatible variable. The second argument is a logical operator and the third argument is a number. The choice of operators listed above are the usual comparison operators. The XOR operation (exclusive or) is also included as “|^”. In this context, XOR means that if either the variable or the value is 0.0 and the other is non-zero, then the result is “true” and the threshold criterion is met. Otherwise it is not met.

The thresh keyword may be used exactly once. If a more complex threshold condition is needed or access to data from computes, fixes, or similar, this can be realized within the expression used when defining the referenced variable.

## Restart, fix_modify, output, run start/stop, minimize info

This fix writes the per-atom values it stores to binary restart files, so that the values can be restored when a simulation is restarted. See the read_restart command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion.

Warning

When reading data from a restart file, this fix command has to be specified exactly the same way as before. LAMMPS will only check whether a fix is of the same style and has the same fix ID and in case of a match will then try to initialize the fix with the data stored in the binary restart file. If the fix store/state command does not match exactly, data can be corrupted or LAMMPS may crash.

None of the fix_modify options are relevant to this fix.

If a single input is specified, this fix produces a per-atom vector. If multiple inputs are specified, a per-atom array is produced where the number of columns for each atom is the number of inputs. These can be accessed by various output commands. The per-atom values be accessed on any timestep.

No parameter of this fix can be used with the start/stop keywords of the run command. This fix is not invoked during energy minimization.

## Restrictions

none

## Related commands

dump custom, compute property/atom, fix property/atom, variable

## Default

The option default is com = no.