fix spring/rg command


fix ID group-ID spring/rg K RG0
  • ID, group-ID are documented in fix command

  • spring/rg = style name of this fix command

  • K = harmonic force constant (force/distance units)

  • RG0 = target radius of gyration to constrain to (distance units)

if RG0 = NULL, use the current RG as the target value


fix 1 protein spring/rg 5.0 10.0
fix 2 micelle spring/rg 5.0 NULL


Apply a harmonic restraining force to atoms in the group to affect their central moment about the center of mass (radius of gyration). This fix is useful to encourage a protein or polymer to fold/unfold and also when sampling along the radius of gyration as a reaction coordinate (i.e. for protein folding).

The radius of gyration is defined as RG in the first formula. The energy of the constraint and associated force on each atom is given by the second and third formulas, when the group is at a different RG than the target value RG0.

\[\begin{split}{R_G}^2 & = \frac{1}{M}\sum_{i}^{N}{m_{i}\left( x_{i} - \frac{1}{M}\sum_{j}^{N}{m_{j}x_{j}} \right)^{2}} \\ E & = K\left( R_G - R_{G0} \right)^{2} \\ F_{i} & = 2K\frac{m_{i}}{M}\left( 1-\frac{R_{G0}}{R_G} \right)\left( x_{i} - \frac{1}{M}\sum_{j}^{N}{m_{j}x_{j}} \right)\end{split}\]

The (\(x_i\) - center-of-mass) term is computed taking into account periodic boundary conditions, \(m_i\) is the mass of the atom, and M is the mass of the entire group. Note that K is thus a force constant for the aggregate force on the group of atoms, not a per-atom force.

If \(R_{G0}\) is specified as NULL, then the RG of the group is computed at the time the fix is specified, and that value is used as the target.

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

This fix writes the currently used reference RG (\(R_{G0}\)) to binary restart files. 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 fix continues in an uninterrupted fashion.

None of the fix_modify options are relevant to this fix.

This fix computes a global scalar which can be accessed by various output commands. The scalar is the reference radius of gyration \(R_{G0}\) used by the fix. energy change due to this fix. The scalar value calculated by this fix is “intensive”.

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.

The fix_modify respa option is supported by this fix. This allows to set at which level of the r-RESPA integrator the fix is adding its forces. Default is the outermost level.


This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS was built with that package. See the Build package page for more info.