create_bonds command


create_bonds group-ID group2-ID btype rmin rmax
  • group-ID = ID of first group
  • group2-ID = ID of second group, bonds will be between atoms in the 2 groups
  • btype = bond type of created bonds
  • rmin = minimum distance between pair of atoms to bond together
  • rmax = minimum distance between pair of atoms to bond together


create_bonds all all 1 1.0 1.2
create_bonds surf solvent 3 2.0 2.4


Create bonds between pairs of atoms that meet specified distance criteria. The bond interactions can then be computed during a simulation by the bond potential defined by the bond_style and bond_coeff commands. This command is useful for adding bonds to a system, e.g. between nearest neighbors in a lattice of atoms, without having to enumerate all the bonds in the data file read by the read_data command.

Note that the flexibility of this command is limited. It can be used several times to create different types of bond at different distances. But it cannot typically create all the bonds that would normally be defined in a complex system of molecules. Also note that this command does not add any 3-body or 4-body interactions which, depending on your model, may be induced by added bonds, e.g. angle, dihedral, or improper interactions.

All created bonds will be between pairs of atoms I,J where I is in one of the two specified groups, and J is in the other. The two groups can be the same, e.g. group “all”. The created bonds will be of bond type btype, where btype must be a value between 1 and the number of bond types defined. This maximum value is set by the “bond types” field in the header of the data file read by the read_data command, or via the optional “bond/types” argument of the create_box command.

For a bond to be created, an I,J pair of atoms must be a distance D apart such that rmin <= D <= rmax.

The following settings must have been made in an input script before this command is used:

These settings are required so that a neighbor list can be created to search for nearby atoms. Pairs of atoms that are already bonded cannot appear in the neighbor list, to avoid creation of duplicate bonds. The neighbor list for all atom type pairs must also extend to a distance that encompasses the rmax for new bonds to create.

An additional requirement is that your system must be ready to perform a simulation. This means, for example, that all pair_style coefficients be set via the pair_coeff command. A bond_style command and all bond coefficients must also be set, even if no bonds exist before this command is invoked. This is because the building of neighbor list requires initialization and setup of a simulation, similar to what a run command would require.

Note that you can change any of these settings after this command executes, e.g. if you wish to use long-range Coulombic interactions via the kspace_style command for your subsequent simulation.


If the system has no bonds to begin with, or if more bonds per atom are being added than currently exist, then you must insure that the number of bond types and the maximum number of bonds per atom are set to large enough values. Otherwise an error may occur when too many bonds are added to an atom. If the read_data command is used to define the system, these 2 parameters can be set via the “bond types” and “extra bond per atom” fields in the header section of the data file. If the create_box command is used to define the system, these 2 parameters can be set via its optional “bond/types” and “extra/bond/per/atom” arguments. See the doc pages for the 2 commands for details.


This command cannot be used with molecular systems defined using molecule template files via the molecule and atom_style template commands.