forked from lijiext/lammps
121 lines
4.7 KiB
Plaintext
121 lines
4.7 KiB
Plaintext
.. index:: create_bonds
|
|
|
|
create_bonds command
|
|
====================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
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
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
create_bonds all all 1 1.0 1.2
|
|
create_bonds surf solvent 3 2.0 2.4
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
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
|
|
:doc:`bond_style <bond_style>` and :doc:`bond_coeff <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
|
|
:doc:`read_data <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. :doc:`angle <angle_style>`, :doc:`dihedral <dihedral_style>`, or
|
|
:doc:`improper <improper_style>` 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
|
|
:doc:`read_data <read_data>` command, or via the optional "bond/types"
|
|
argument of the :doc:`create_box <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:
|
|
|
|
* special_bonds weight for 1-2 interactions must be 0.0
|
|
* a :doc:`pair_style <pair_style>` must be defined
|
|
* no :doc:`kspace_style <kspace_style>` defined
|
|
* minimum :doc:`pair_style <pair_style>` cutoff + :doc:`neighbor <neighbor>` skin >= *rmax*
|
|
|
|
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
|
|
:doc:`pair_style <pair_style>` coefficients be set via the
|
|
:doc:`pair_coeff <pair_coeff>` command. A :doc:`bond_style <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 :doc:`run <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 :doc:`kspace_style <kspace_style>` command for your subsequent
|
|
simulation.
|
|
|
|
.. note::
|
|
|
|
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 :doc:`read_data <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 :doc:`create_box <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.
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
|
|
|
|
This command cannot be used with molecular systems defined using
|
|
molecule template files via the :doc:`molecule <molecule>` and
|
|
:doc:`atom_style template <atom_style>` commands.
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`create_atoms <create_atoms>`, :doc:`delete_bonds <delete_bonds>`
|
|
|
|
**Default:** none
|
|
|
|
|
|
.. _lws: http://lammps.sandia.gov
|
|
.. _ld: Manual.html
|
|
.. _lc: Section_commands.html#comm
|