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

# delete_bonds command

## Syntax

    delete_bonds group-ID style arg keyword ...

- group-ID = group ID

- style = multi or atom or bond or angle or dihedral or improper or stats

      multi arg = none
      atom arg = an atom type or range of types (see below)
      bond arg = a bond type or range of types (see below)
      angle arg = an angle type or range of types (see below)
      dihedral arg = a dihedral type or range of types (see below)
      improper arg = an improper type or range of types (see below)
      stats arg = none

- zero or more keywords may be appended

- keyword = any or undo or remove or special

      any arg = none = turn off interactions if any atoms are in the group (or on if undo is also used)
      undo arg = none = turn specified bonds on instead of off
      remove arg = permanently remove bonds that have been turned off
      special arg = recompute pairwise 1-2, 1-3, and 1-4 lists

## Examples

    delete_bonds frozen multi remove
    delete_bonds all atom 4 special
    delete_bonds all bond 0*3 special
    delete_bonds all stats

    labelmap atom 4 hc
    delete_bonds all atom hc special

## Description

Turn off (or on) molecular topology interactions (i.e., bonds, angles, dihedrals, and/or impropers). This command is useful for deleting interactions that have been previously turned off by bond-breaking potentials. It is also useful for turning off topology interactions between frozen or rigid atoms. Pairwise interactions can be turned off via the neigh_modify exclude command. The fix shake command also effectively turns off certain bond and angle interactions.

For all styles, by default, an interaction is only turned off (or on) if all the atoms involved are in the specified group. See the any keyword to change the behavior.

Possible errors caused by using delete_bonds

Since this command by default only turns off bonded interactions, their definitions are still present and subject to the limitations due to LAMMPS’ domain decomposition based parallelization. That is, when a bond is turned off, the two constituent atoms may move apart and may reach a distance where they can lead to a “bond atoms missing” error and crash the simulation. Adding the remove keyword (see below) is required to fully remove those interactions and prevent the error.

Several of the styles (atom, bond, angle, dihedral, improper) take a type as an argument. The specified type can be a type label. Otherwise, the type should be an integer from 0 to \(N\), where \(N\) is the number of relevant types (atom types, bond types, etc.). A value of 0 is only relevant for style bond; see details below. For numeric types, a wildcard asterisk can be used in place of or in conjunction with the type argument to specify a range of types. This takes the form “*” or “*n” or “m*” or “m*n”. If \(N\) is the number of types, then an asterisk with no numeric values means all types from 0 to \(N\). A leading asterisk means all types from 0 to n (inclusive). A trailing asterisk means all types from m to N (inclusive). A middle asterisk means all types from m to n (inclusive). Note that it is fine to include a type of 0 for non-bond styles; it will simply be ignored.

For style multi all bond, angle, dihedral, and improper interactions of any type, involving atoms in the group, are turned off.

Style atom is the same as style multi except that in addition, one or more of the atoms involved in the bond, angle, dihedral, or improper interaction must also be of the specified atom type.

For style bond, only bonds are candidates for turn-off, and the bond must also be of the specified type. Styles angle, dihedral, and improper are treated similarly.

For style bond, you can set the type to 0 to delete bonds that have been previously broken by a bond-breaking potential (which sets the bond type to 0 when a bond is broken); for example, see the bond_style quartic command.

For style stats no interactions are turned off (or on); the status of all interactions in the specified group is simply reported. This is useful for diagnostic purposes if bonds have been turned off by a bond-breaking potential during a previous run.

Impact on special_bonds processing and exclusions

The default behavior of the delete_bonds command is to turn off interactions by toggling their type to a negative value, but not to permanently remove the interaction. For example, a bond_type of 2 is set to \(-2.\) The neighbor list creation routines will not include such an interaction in their interaction lists. The default is also to not alter the list of 1–2, 1–3, or 1–4 neighbors computed by the special_bonds command and used to weight pairwise force and energy calculations. This means that pairwise computations will proceed as if the bond (or angle, etc.) were still turned on.

Several keywords can be appended to the argument list to alter the default behaviors.

The any keyword changes the requirement that all atoms in the bond (angle, etc.) must be in the specified group in order to turn off the interaction. Instead, if any of the atoms in the interaction are in the specified group, it will be turned off (or on if the undo keyword is used).

The undo keyword inverts the delete_bonds command so that the specified bonds, angles, etc. are turned on if they are currently turned off. This means a negative value is toggled to positive. For example, for style angle, if type is specified as 2, then all angles with current type = \(-2\) are reset to type = \(2\). Note that the fix shake command also sets bond and angle types negative, so this option should not be used on those interactions.

The remove keyword is invoked at the end of the delete_bonds operation. It causes turned-off bonds (angles, etc.) to be removed from each atom’s data structure and then adjusts the global bond (angle, etc.) counts accordingly. Removal is a permanent change; removed bonds cannot be turned back on via the undo keyword. Removal does not alter the pairwise 1–2, 1–3, or 1–4 weighting list.

The special keyword is invoked at the end of the delete_bonds operation, after (optional) removal. It re-computes the pairwise 1–2, 1–3, 1–4 weighting list. The weighting list computation treats turned-off bonds the same as turned-on. Thus, turned-off bonds must be removed if you wish to change the weighting list.

Note

The choice of remove and special options affects how 1–2, 1–3, 1–4 pairwise interactions will be computed across bonds that have been modified by the delete_bonds command.

## Restrictions

This command requires inter-processor communication to acquire ghost atoms, to coordinate the deleting of bonds, angles, etc. between atoms shared by multiple processors. This means that your system must be ready to perform a simulation before using this command (force fields setup, atom masses set, etc.). Just as would be needed to run dynamics, the force field you define should define a cutoff (e.g., through a pair_style command) which is long enough for a processor to acquire the ghost atoms its needs to compute bond, angle, etc. interactions.

If deleted bonds (or angles, etc.) are removed but the 1–2, 1–3, and 1–4 weighting list is not recomputed, this can cause a later fix shake command to fail due to an atom’s bonds being inconsistent with the weighting list. This should only happen if the group used in the fix command includes both atoms in the bond, in which case you probably should be recomputing the weighting list.

## Related commands

neigh_modify exclude, special_bonds, fix shake

## Default

none