forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@2523 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
7a04359a4b
commit
2b589450bb
|
@ -0,0 +1,160 @@
|
|||
<HTML>
|
||||
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
||||
</CENTER>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<HR>
|
||||
|
||||
<H3>fix bond/break command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID bond/break Nevery bondtype Rmax keyword values ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
|
||||
<LI>bond/break = style name of this fix command
|
||||
|
||||
<LI>Nevery = attempt bond breaking every this many steps
|
||||
|
||||
<LI>bondtype = type of bonds to break
|
||||
|
||||
<LI>Rmax = bond longer than Rmax can break (distance units)
|
||||
|
||||
<LI>zero or more keyword/value pairs may be appended to args
|
||||
|
||||
<LI>keyword = <I>prob</I>
|
||||
|
||||
<PRE> <I>prob</I> values = fraction seed
|
||||
fraction = break a bond with this probability if otherwise eligible
|
||||
seed = random number seed (positive integer)
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 5 all bond/break 10 2 1.2
|
||||
fix 5 polymer bond/break 1 1 2.0 prob 0.5 49829
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Break bonds between pairs of atoms as a simulation runs according to
|
||||
specified criteria. This can be used to model the dissolution of a
|
||||
polymer network due to stretching of the simulation box or other
|
||||
deformations. In this context, a bond means an interaction between a
|
||||
pair of atoms computed by the <A HREF = "bond_style.html">bond_style</A> command.
|
||||
Once the bond is broken it will be permanently deleted. This is
|
||||
different than a <A HREF = "pair_style.html">pairwise</A> bond-order potential such
|
||||
as Tersoff or AIREBO which infers bonds and many-body interactions
|
||||
based on the current geometry of a small cluster of atoms and
|
||||
effectively creates and destroys bonds from timestep to timestep as
|
||||
atoms move.
|
||||
</P>
|
||||
<P>A check for possible bond breakage is performed every <I>Nevery</I>
|
||||
timesteps. If two bonded atoms I,J are further than a distance <I>Rmax</I>
|
||||
of each other, if the bond is of type <I>bondtype</I>, and if both I and J
|
||||
are in the specified fix group, then I,J is labeled as a "possible"
|
||||
bond to break.
|
||||
</P>
|
||||
<P>If several bonds involving an atom are stretched, it may have multiple
|
||||
possible bonds to break. Every atom checks its list of possible bonds
|
||||
to break and labels the longest such bond as its "sole" bond to break.
|
||||
After this is done, if atom I is bonded to atom J in its sole bond,
|
||||
and atom J is bonded to atom I in its sole bond, then the I,J bond is
|
||||
"eligible" to be broken.
|
||||
</P>
|
||||
<P>Note that these rules mean an atom will only be part of at most one
|
||||
broken bond on a given timestep. It also means that if atom I chooses
|
||||
atom J as its sole partner, but atom J chooses atom K is its sole
|
||||
partner (due to Rjk > Rij), then this means atom I will not be part of
|
||||
a broken bond on this timestep, even if it has other possible bond
|
||||
partners.
|
||||
</P>
|
||||
<P>The <I>prob</I> keyword can effect whether an eligible bond is actually
|
||||
broken. The <I>fraction</I> setting must be a value between 0.0 and 1.0.
|
||||
A uniform random number between 0.0 and 1.0 is generated and the
|
||||
eligible bond is only broken if the random number < fraction.
|
||||
</P>
|
||||
<P>When a bond is broken, data structures within LAMMPS that store bond
|
||||
topology are updated to reflect the breakage. This can also affect
|
||||
subsequent computation of pairwise interactions involving the atoms in
|
||||
the bond. See the Restriction section below for additional
|
||||
information.
|
||||
</P>
|
||||
<P>Computationally, each timestep this fix operates, it loops over bond
|
||||
lists and computes distances between pairs of bonded atoms in the
|
||||
list. It also communicates between neighboring processors to
|
||||
coordinate which bonds are broken. Thus it will increase the cost of
|
||||
a timestep. Thus you should be cautious about invoking this fix too
|
||||
frequently.
|
||||
</P>
|
||||
<P>You can dump out snapshots of the current bond topology via the <A HREF = "dump.html">dump
|
||||
bond</A> command.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: Breaking a bond typically alters the energy of a
|
||||
system. You should be careful not to choose bond breaking criteria
|
||||
that induce a dramatic change in energy. For example, if you define a
|
||||
very stiff harmonic bond and break it when 2 atoms are separated by a
|
||||
distance far from the equilibribum bond length, then the 2 atoms will
|
||||
be dramatically released when the bond is broken. More generally, you
|
||||
may need to thermostat your system to compensate for energy changes
|
||||
resulting from broken bonds.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
|
||||
files</A>. None of the <A HREF = "fix_modify.html">fix_modify</A> options
|
||||
are relevant to this fix.
|
||||
</P>
|
||||
<P>This fix computes two statistics which it stores in a vector of length
|
||||
2, which can be accessed by various <A HREF = "Section_howto.html#4_15">output
|
||||
commands</A>. The vector values
|
||||
calculated by this fix are "extensive", meaning they scale with the
|
||||
number of atoms in the simulation.
|
||||
</P>
|
||||
<P>These are the 2 quantities:
|
||||
</P>
|
||||
<UL><LI>(1) # of bonds broken on the most recent breakage timestep
|
||||
<LI>(2) cummulative # of bonds broken
|
||||
</UL>
|
||||
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
|
||||
the <A HREF = "run.html">run</A> command. This fix is not invoked during <A HREF = "minimize.html">energy
|
||||
minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>Currently, there are 2 restrictions for using this fix. We may relax
|
||||
these in the future if there are new models that would be enabled by
|
||||
it.
|
||||
</P>
|
||||
<P>When a bond is broken, you might wish to turn off angle and dihedral
|
||||
interactions that include that bond. However, LAMMPS does not check
|
||||
for these angles and dihedrals, even if your simulation defines an
|
||||
<A HREF = "angle_style.html">angle_style</A> or
|
||||
<A HREF = "dihedral_style.html">dihedral_style</A>.
|
||||
</P>
|
||||
<P>This fix requires that the pairwise weightings defined by the
|
||||
<A HREF = "special_bonds.html">special_bonds</A> command be 0,1,1 for 1-2, 1-3, and
|
||||
1-4 neighbors within the bond topology. This effectively means that
|
||||
the pairwise interaction between atoms I and J is turned off when a
|
||||
bond between them exists and will be turned on when the bond is
|
||||
broken. It also means that the pairwise interaction of I with J's
|
||||
other bond partners is unaffected by the existence of the bond.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_bond_create.html">fix bond/create</A>, <A HREF = "fix_bond_swap.html">fix
|
||||
bond/swap</A>, <A HREF = "dump.html">dump bond</A>,
|
||||
<A HREF = "special_bonds.html">special_bonds</A>
|
||||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>The option defaults are prob = 1.0.
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,147 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix bond/break command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID bond/break Nevery bondtype Rmax keyword values ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
bond/break = style name of this fix command :l
|
||||
Nevery = attempt bond breaking every this many steps :l
|
||||
bondtype = type of bonds to break :l
|
||||
Rmax = bond longer than Rmax can break (distance units) :l
|
||||
zero or more keyword/value pairs may be appended to args :l
|
||||
keyword = {prob} :l
|
||||
{prob} values = fraction seed
|
||||
fraction = break a bond with this probability if otherwise eligible
|
||||
seed = random number seed (positive integer) :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 5 all bond/break 10 2 1.2
|
||||
fix 5 polymer bond/break 1 1 2.0 prob 0.5 49829 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Break bonds between pairs of atoms as a simulation runs according to
|
||||
specified criteria. This can be used to model the dissolution of a
|
||||
polymer network due to stretching of the simulation box or other
|
||||
deformations. In this context, a bond means an interaction between a
|
||||
pair of atoms computed by the "bond_style"_bond_style.html command.
|
||||
Once the bond is broken it will be permanently deleted. This is
|
||||
different than a "pairwise"_pair_style.html bond-order potential such
|
||||
as Tersoff or AIREBO which infers bonds and many-body interactions
|
||||
based on the current geometry of a small cluster of atoms and
|
||||
effectively creates and destroys bonds from timestep to timestep as
|
||||
atoms move.
|
||||
|
||||
A check for possible bond breakage is performed every {Nevery}
|
||||
timesteps. If two bonded atoms I,J are further than a distance {Rmax}
|
||||
of each other, if the bond is of type {bondtype}, and if both I and J
|
||||
are in the specified fix group, then I,J is labeled as a "possible"
|
||||
bond to break.
|
||||
|
||||
If several bonds involving an atom are stretched, it may have multiple
|
||||
possible bonds to break. Every atom checks its list of possible bonds
|
||||
to break and labels the longest such bond as its "sole" bond to break.
|
||||
After this is done, if atom I is bonded to atom J in its sole bond,
|
||||
and atom J is bonded to atom I in its sole bond, then the I,J bond is
|
||||
"eligible" to be broken.
|
||||
|
||||
Note that these rules mean an atom will only be part of at most one
|
||||
broken bond on a given timestep. It also means that if atom I chooses
|
||||
atom J as its sole partner, but atom J chooses atom K is its sole
|
||||
partner (due to Rjk > Rij), then this means atom I will not be part of
|
||||
a broken bond on this timestep, even if it has other possible bond
|
||||
partners.
|
||||
|
||||
The {prob} keyword can effect whether an eligible bond is actually
|
||||
broken. The {fraction} setting must be a value between 0.0 and 1.0.
|
||||
A uniform random number between 0.0 and 1.0 is generated and the
|
||||
eligible bond is only broken if the random number < fraction.
|
||||
|
||||
When a bond is broken, data structures within LAMMPS that store bond
|
||||
topology are updated to reflect the breakage. This can also affect
|
||||
subsequent computation of pairwise interactions involving the atoms in
|
||||
the bond. See the Restriction section below for additional
|
||||
information.
|
||||
|
||||
Computationally, each timestep this fix operates, it loops over bond
|
||||
lists and computes distances between pairs of bonded atoms in the
|
||||
list. It also communicates between neighboring processors to
|
||||
coordinate which bonds are broken. Thus it will increase the cost of
|
||||
a timestep. Thus you should be cautious about invoking this fix too
|
||||
frequently.
|
||||
|
||||
You can dump out snapshots of the current bond topology via the "dump
|
||||
bond"_dump.html command.
|
||||
|
||||
IMPORTANT NOTE: Breaking a bond typically alters the energy of a
|
||||
system. You should be careful not to choose bond breaking criteria
|
||||
that induce a dramatic change in energy. For example, if you define a
|
||||
very stiff harmonic bond and break it when 2 atoms are separated by a
|
||||
distance far from the equilibribum bond length, then the 2 atoms will
|
||||
be dramatically released when the bond is broken. More generally, you
|
||||
may need to thermostat your system to compensate for energy changes
|
||||
resulting from broken bonds.
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix.
|
||||
|
||||
This fix computes two statistics which it stores in a vector of length
|
||||
2, which can be accessed by various "output
|
||||
commands"_Section_howto.html#4_15. The vector values
|
||||
calculated by this fix are "extensive", meaning they scale with the
|
||||
number of atoms in the simulation.
|
||||
|
||||
These are the 2 quantities:
|
||||
|
||||
(1) # of bonds broken on the most recent breakage timestep
|
||||
(2) cummulative # of bonds broken :ul
|
||||
|
||||
No parameter of this fix can be used with the {start/stop} keywords of
|
||||
the "run"_run.html command. This fix is not invoked during "energy
|
||||
minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
Currently, there are 2 restrictions for using this fix. We may relax
|
||||
these in the future if there are new models that would be enabled by
|
||||
it.
|
||||
|
||||
When a bond is broken, you might wish to turn off angle and dihedral
|
||||
interactions that include that bond. However, LAMMPS does not check
|
||||
for these angles and dihedrals, even if your simulation defines an
|
||||
"angle_style"_angle_style.html or
|
||||
"dihedral_style"_dihedral_style.html.
|
||||
|
||||
This fix requires that the pairwise weightings defined by the
|
||||
"special_bonds"_special_bonds.html command be 0,1,1 for 1-2, 1-3, and
|
||||
1-4 neighbors within the bond topology. This effectively means that
|
||||
the pairwise interaction between atoms I and J is turned off when a
|
||||
bond between them exists and will be turned on when the bond is
|
||||
broken. It also means that the pairwise interaction of I with J's
|
||||
other bond partners is unaffected by the existence of the bond.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix bond/create"_fix_bond_create.html, "fix
|
||||
bond/swap"_fix_bond_swap.html, "dump bond"_dump.html,
|
||||
"special_bonds"_special_bonds.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The option defaults are prob = 1.0.
|
|
@ -0,0 +1,218 @@
|
|||
<HTML>
|
||||
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
||||
</CENTER>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<HR>
|
||||
|
||||
<H3>fix bond/create command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID bond/create Nevery itype jtype Rmin bondtype keyword values ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
|
||||
<LI>bond/create = style name of this fix command
|
||||
|
||||
<LI>Nevery = attempt bond creation every this many steps
|
||||
|
||||
<LI>itype,jtype = atoms of itype can bond to atoms of jtype
|
||||
|
||||
<LI>Rmin = 2 atoms separated by less than Rmin can bond (distance units)
|
||||
|
||||
<LI>bondtype = type of created bonds
|
||||
|
||||
<LI>zero or more keyword/value pairs may be appended to args
|
||||
|
||||
<LI>keyword = <I>iparam</I> or <I>jparam</I> or <I>prob</I>
|
||||
|
||||
<PRE> <I>iparam</I> values = maxbond, newtype
|
||||
maxbond = max # of bonds of bondtype the itype atom can have
|
||||
newtype = change the itype atom to this type when maxbonds exist
|
||||
<I>jparam</I> values = maxbond, newtype
|
||||
maxbond = max # of bonds of bondtype the jtype atom can have
|
||||
newtype = change the jtype atom to this type when maxbonds exist
|
||||
<I>prob</I> values = fraction seed
|
||||
fraction = create a bond with this probability if otherwise eligible
|
||||
seed = random number seed (positive integer)
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 5 all bond/create 10 1 2 0.8 1
|
||||
fix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Create bonds between pairs of atoms as a simulation runs according to
|
||||
specified criteria. This can be used to model cross-linking of
|
||||
polymers, the formation of a percolation network, etc. In this
|
||||
context, a bond means an interaction between a pair of atoms computed
|
||||
by the <A HREF = "bond_style.html">bond_style</A> command. Once the bond is created
|
||||
it will be permanently in place. This is different than a
|
||||
<A HREF = "pair_style.html">pairwise</A> bond-order potential such as Tersoff or
|
||||
AIREBO which infers bonds and many-body interactions based on the
|
||||
current geometry of a small cluster of atoms and effectively creates
|
||||
and destroys bonds from timestep to timestep as atoms move.
|
||||
</P>
|
||||
<P>A check for possible new bonds is performed every <I>Nevery</I> timesteps.
|
||||
If two atoms I,J are within a distance <I>Rmin</I> of each other, if I is
|
||||
of atom type <I>itype</I>, if J is of atom type <I>jtype</I>, if both I and J
|
||||
are in the specified fix group, if a bond does not already exist
|
||||
between I and J, and if both I and J meet their respective <I>maxbond</I>
|
||||
requirement (explained below), then I,J is labeled as a "possible"
|
||||
bond pair.
|
||||
</P>
|
||||
<P>If several atoms are close to an atom, it may have multiple possible
|
||||
bond partners. Every atom checks its list of possible bond partners
|
||||
and labels the closest such partner as its "sole" bond partner. After
|
||||
this is done, if atom I has atom J as its sole partner, and atom J has
|
||||
atom I as its sole partner, then the I,J bond is "eligible" to be
|
||||
formed.
|
||||
</P>
|
||||
<P>Note that these rules mean an atom will only be part of at most one
|
||||
created bond on a given timestep. It also means that if atom I
|
||||
chooses atom J as its sole partner, but atom J chooses atom K is its
|
||||
sole partner (due to Rjk < Rij), then this means atom I will not form
|
||||
a bond on this timestep, even if it has other possible bond partners.
|
||||
</P>
|
||||
<P>It is permissible to have <I>itype</I> = <I>jtype</I>. <I>Rmin</I> must be <= the
|
||||
pairwise cutoff distance between <I>itype</I> and <I>jtype</I> atoms, as defined
|
||||
by the <A HREF = "pair_style.html">pair_style</A> command.
|
||||
</P>
|
||||
<P>The <I>iparam</I> and <I>jparam</I> keywords can be used to limit the bonding
|
||||
functionality of the participating atoms. Each atom keeps track of
|
||||
how many bonds of <I>bondtype</I> it already has. If atom I of
|
||||
itype already has <I>maxbond</I> bonds (as set by the <I>iparam</I>
|
||||
keyword), then it will not form any more. Likewise for atom J. If
|
||||
<I>maxbond</I> is set to 0, then there is no limit on the number of bonds
|
||||
that can be formed with that atom.
|
||||
</P>
|
||||
<P>The <I>newtype</I> value for <I>iparam</I> and <I>jparam</I> can be used to change
|
||||
the atom type of atom I or J when it reaches <I>maxbond</I> number of bonds
|
||||
of type <I>bondtype</I>. This means it can now interact in a pairwise
|
||||
fashion with other atoms in a different way by specifying different
|
||||
<A HREF = "pair_coeff.html">pair_coeff</A> coefficients. If you do not wish the
|
||||
atom type to change, simply specify <I>newtype</I> as <I>itype</I> or <I>jtype</I>.
|
||||
</P>
|
||||
<P>The <I>prob</I> keyword can also effect whether an eligible bond is
|
||||
actually created. The <I>fraction</I> setting must be a value between 0.0
|
||||
and 1.0. A uniform random number between 0.0 and 1.0 is generated and
|
||||
the eligible bond is only created if the random number < fraction.
|
||||
</P>
|
||||
<P>Any bond that is created is assigned a bond type of <I>bondtype</I>. Data
|
||||
structures within LAMMPS that store bond topology are updated to
|
||||
reflect the new bond. This can also affect subsequent computation of
|
||||
pairwise interactions involving the atoms in the bond. See the
|
||||
Restriction section below for additional information.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: To create a new bond, the internal LAMMPS data
|
||||
structures that store this information must have space for it. When
|
||||
LAMMPS is initialized from a data file, the list of bonds is scanned
|
||||
and the maximum number of bonds per atom is tallied. If some atom
|
||||
will acquire more bonds than this limit as this fix operates, then the
|
||||
"extra bonds per atom" parameter in the data file header must be set
|
||||
to allow for it. See the <A HREF = "read_data.html">read_data</A> command for more
|
||||
details. Note that if this parameter needs to be set, it means a data
|
||||
file must be used to initialize the system, even if it initially has
|
||||
no bonds. A data file with no atoms can be used if you wish to add
|
||||
unbonded atoms via the <A HREF = "create_atoms.html">create atoms</A> command,
|
||||
e.g. for a percolation simulation.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: LAMMPS also maintains a data structure that stores a
|
||||
list of 1st, 2nd, and 3rd neighbors of each atom (in the bond topology
|
||||
of the system) for use in weighting pairwise interactions for bonded
|
||||
atoms. Adding a bond adds a single entry to this list. The "extra"
|
||||
keyword of the <A HREF = "special_bonds.html">special_bonds</A> command should be
|
||||
used to leave space for new bonds if the maximum number of entries for
|
||||
any atom will be exceeded as this fix operates. See the
|
||||
<A HREF = "special_bonds.html">special_bonds</A> command for details.
|
||||
</P>
|
||||
<P>Note that even if your simulation starts with no bonds, you must
|
||||
define a <A HREF = "bond_style.html">bond_style</A> and use the
|
||||
<A HREF = "bond_coeff.html">bond_coeff</A> command to specify coefficients for the
|
||||
<I>bondtype</I>. Similarly, if new atom types are specified by the
|
||||
<I>iparam</I> or <I>jparam</I> keywords, they must be within the range of atom
|
||||
types allowed by the simulation and pairwise coefficients must be
|
||||
specified for the new types.
|
||||
</P>
|
||||
<P>Computationally, each timestep this fix operates, it loops over
|
||||
neighbor lists and computes distances between pairs of atoms in the
|
||||
list. It also communicates between neighboring processors to
|
||||
coordinate which bonds are created. Thus it roughly doubles the cost
|
||||
of a timestep. Thus you should be cautious about invoking this fix
|
||||
too frequently.
|
||||
</P>
|
||||
<P>You can dump out snapshots of the current bond topology via the <A HREF = "dump.html">dump
|
||||
bond</A> command.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: Creating a bond typically alters the energy of a
|
||||
system. You should be careful not to choose bond creation criteria
|
||||
that induce a dramatic change in energy. For example, if you define a
|
||||
very stiff harmonic bond and create it when 2 atoms are separated by a
|
||||
distance far from the equilibribum bond length, then the 2 atoms will
|
||||
oscillate dramatically when the bond is formed. More generally, you
|
||||
may need to thermostat your system to compensate for energy changes
|
||||
resulting from created bonds.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
|
||||
files</A>. None of the <A HREF = "fix_modify.html">fix_modify</A> options
|
||||
are relevant to this fix.
|
||||
</P>
|
||||
<P>This fix computes two statistics which it stores in a vector of length
|
||||
2, which can be accessed by various <A HREF = "Section_howto.html#4_15">output
|
||||
commands</A>. The vector values
|
||||
calculated by this fix are "extensive", meaning they scale with the
|
||||
number of atoms in the simulation.
|
||||
</P>
|
||||
<P>These are the 2 quantities:
|
||||
</P>
|
||||
<UL><LI>(1) # of bonds created on the most recent creation timestep
|
||||
<LI>(2) cummulative # of bonds created
|
||||
</UL>
|
||||
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
|
||||
the <A HREF = "run.html">run</A> command. This fix is not invoked during <A HREF = "minimize.html">energy
|
||||
minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>Currently, there are 2 restrictions for using this fix. We may relax
|
||||
these in the future if there are new models that would be enabled by
|
||||
it.
|
||||
</P>
|
||||
<P>When a bond is created, you might wish to induce new angle and
|
||||
dihedral interactions that include that bond. However, LAMMPS does
|
||||
not create these angles and dihedrals, even if your simulation defines
|
||||
an <A HREF = "angle_style.html">angle_style</A> or
|
||||
<A HREF = "dihedral_style.html">dihedral_style</A>.
|
||||
</P>
|
||||
<P>This fix requires that the pairwise weightings defined by the
|
||||
<A HREF = "special_bonds.html">special_bonds</A> command be 0,1,1 for 1-2, 1-3, and
|
||||
1-4 neighbors within the bond topology. This effectively means that
|
||||
the pairwise interaction between atoms I and J will be turned off when
|
||||
a bond between them is created. It also means that the pairwise
|
||||
interaction of I with J's other bond partners will be unaffected by
|
||||
the new bond.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_bond_break.html">fix bond/break</A>, <A HREF = "fix_bond_swap.html">fix
|
||||
bond/swap</A>, <A HREF = "dump.html">dump bond</A>,
|
||||
<A HREF = "special_bonds.html">special_bonds</A>
|
||||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>The option defaults are iparam = (0,itype), jparam = (0,jtype), and
|
||||
prob = 1.0.
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,204 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix bond/create command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID bond/create Nevery itype jtype Rmin bondtype keyword values ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
bond/create = style name of this fix command :l
|
||||
Nevery = attempt bond creation every this many steps :l
|
||||
itype,jtype = atoms of itype can bond to atoms of jtype :l
|
||||
Rmin = 2 atoms separated by less than Rmin can bond (distance units) :l
|
||||
bondtype = type of created bonds :l
|
||||
zero or more keyword/value pairs may be appended to args :l
|
||||
keyword = {iparam} or {jparam} or {prob} :l
|
||||
{iparam} values = maxbond, newtype
|
||||
maxbond = max # of bonds of bondtype the itype atom can have
|
||||
newtype = change the itype atom to this type when maxbonds exist
|
||||
{jparam} values = maxbond, newtype
|
||||
maxbond = max # of bonds of bondtype the jtype atom can have
|
||||
newtype = change the jtype atom to this type when maxbonds exist
|
||||
{prob} values = fraction seed
|
||||
fraction = create a bond with this probability if otherwise eligible
|
||||
seed = random number seed (positive integer) :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 5 all bond/create 10 1 2 0.8 1
|
||||
fix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Create bonds between pairs of atoms as a simulation runs according to
|
||||
specified criteria. This can be used to model cross-linking of
|
||||
polymers, the formation of a percolation network, etc. In this
|
||||
context, a bond means an interaction between a pair of atoms computed
|
||||
by the "bond_style"_bond_style.html command. Once the bond is created
|
||||
it will be permanently in place. This is different than a
|
||||
"pairwise"_pair_style.html bond-order potential such as Tersoff or
|
||||
AIREBO which infers bonds and many-body interactions based on the
|
||||
current geometry of a small cluster of atoms and effectively creates
|
||||
and destroys bonds from timestep to timestep as atoms move.
|
||||
|
||||
A check for possible new bonds is performed every {Nevery} timesteps.
|
||||
If two atoms I,J are within a distance {Rmin} of each other, if I is
|
||||
of atom type {itype}, if J is of atom type {jtype}, if both I and J
|
||||
are in the specified fix group, if a bond does not already exist
|
||||
between I and J, and if both I and J meet their respective {maxbond}
|
||||
requirement (explained below), then I,J is labeled as a "possible"
|
||||
bond pair.
|
||||
|
||||
If several atoms are close to an atom, it may have multiple possible
|
||||
bond partners. Every atom checks its list of possible bond partners
|
||||
and labels the closest such partner as its "sole" bond partner. After
|
||||
this is done, if atom I has atom J as its sole partner, and atom J has
|
||||
atom I as its sole partner, then the I,J bond is "eligible" to be
|
||||
formed.
|
||||
|
||||
Note that these rules mean an atom will only be part of at most one
|
||||
created bond on a given timestep. It also means that if atom I
|
||||
chooses atom J as its sole partner, but atom J chooses atom K is its
|
||||
sole partner (due to Rjk < Rij), then this means atom I will not form
|
||||
a bond on this timestep, even if it has other possible bond partners.
|
||||
|
||||
It is permissible to have {itype} = {jtype}. {Rmin} must be <= the
|
||||
pairwise cutoff distance between {itype} and {jtype} atoms, as defined
|
||||
by the "pair_style"_pair_style.html command.
|
||||
|
||||
The {iparam} and {jparam} keywords can be used to limit the bonding
|
||||
functionality of the participating atoms. Each atom keeps track of
|
||||
how many bonds of {bondtype} it already has. If atom I of
|
||||
itype already has {maxbond} bonds (as set by the {iparam}
|
||||
keyword), then it will not form any more. Likewise for atom J. If
|
||||
{maxbond} is set to 0, then there is no limit on the number of bonds
|
||||
that can be formed with that atom.
|
||||
|
||||
The {newtype} value for {iparam} and {jparam} can be used to change
|
||||
the atom type of atom I or J when it reaches {maxbond} number of bonds
|
||||
of type {bondtype}. This means it can now interact in a pairwise
|
||||
fashion with other atoms in a different way by specifying different
|
||||
"pair_coeff"_pair_coeff.html coefficients. If you do not wish the
|
||||
atom type to change, simply specify {newtype} as {itype} or {jtype}.
|
||||
|
||||
The {prob} keyword can also effect whether an eligible bond is
|
||||
actually created. The {fraction} setting must be a value between 0.0
|
||||
and 1.0. A uniform random number between 0.0 and 1.0 is generated and
|
||||
the eligible bond is only created if the random number < fraction.
|
||||
|
||||
Any bond that is created is assigned a bond type of {bondtype}. Data
|
||||
structures within LAMMPS that store bond topology are updated to
|
||||
reflect the new bond. This can also affect subsequent computation of
|
||||
pairwise interactions involving the atoms in the bond. See the
|
||||
Restriction section below for additional information.
|
||||
|
||||
IMPORTANT NOTE: To create a new bond, the internal LAMMPS data
|
||||
structures that store this information must have space for it. When
|
||||
LAMMPS is initialized from a data file, the list of bonds is scanned
|
||||
and the maximum number of bonds per atom is tallied. If some atom
|
||||
will acquire more bonds than this limit as this fix operates, then the
|
||||
"extra bonds per atom" parameter in the data file header must be set
|
||||
to allow for it. See the "read_data"_read_data.html command for more
|
||||
details. Note that if this parameter needs to be set, it means a data
|
||||
file must be used to initialize the system, even if it initially has
|
||||
no bonds. A data file with no atoms can be used if you wish to add
|
||||
unbonded atoms via the "create atoms"_create_atoms.html command,
|
||||
e.g. for a percolation simulation.
|
||||
|
||||
IMPORTANT NOTE: LAMMPS also maintains a data structure that stores a
|
||||
list of 1st, 2nd, and 3rd neighbors of each atom (in the bond topology
|
||||
of the system) for use in weighting pairwise interactions for bonded
|
||||
atoms. Adding a bond adds a single entry to this list. The "extra"
|
||||
keyword of the "special_bonds"_special_bonds.html command should be
|
||||
used to leave space for new bonds if the maximum number of entries for
|
||||
any atom will be exceeded as this fix operates. See the
|
||||
"special_bonds"_special_bonds.html command for details.
|
||||
|
||||
Note that even if your simulation starts with no bonds, you must
|
||||
define a "bond_style"_bond_style.html and use the
|
||||
"bond_coeff"_bond_coeff.html command to specify coefficients for the
|
||||
{bondtype}. Similarly, if new atom types are specified by the
|
||||
{iparam} or {jparam} keywords, they must be within the range of atom
|
||||
types allowed by the simulation and pairwise coefficients must be
|
||||
specified for the new types.
|
||||
|
||||
Computationally, each timestep this fix operates, it loops over
|
||||
neighbor lists and computes distances between pairs of atoms in the
|
||||
list. It also communicates between neighboring processors to
|
||||
coordinate which bonds are created. Thus it roughly doubles the cost
|
||||
of a timestep. Thus you should be cautious about invoking this fix
|
||||
too frequently.
|
||||
|
||||
You can dump out snapshots of the current bond topology via the "dump
|
||||
bond"_dump.html command.
|
||||
|
||||
IMPORTANT NOTE: Creating a bond typically alters the energy of a
|
||||
system. You should be careful not to choose bond creation criteria
|
||||
that induce a dramatic change in energy. For example, if you define a
|
||||
very stiff harmonic bond and create it when 2 atoms are separated by a
|
||||
distance far from the equilibribum bond length, then the 2 atoms will
|
||||
oscillate dramatically when the bond is formed. More generally, you
|
||||
may need to thermostat your system to compensate for energy changes
|
||||
resulting from created bonds.
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix.
|
||||
|
||||
This fix computes two statistics which it stores in a vector of length
|
||||
2, which can be accessed by various "output
|
||||
commands"_Section_howto.html#4_15. The vector values
|
||||
calculated by this fix are "extensive", meaning they scale with the
|
||||
number of atoms in the simulation.
|
||||
|
||||
These are the 2 quantities:
|
||||
|
||||
(1) # of bonds created on the most recent creation timestep
|
||||
(2) cummulative # of bonds created :ul
|
||||
|
||||
No parameter of this fix can be used with the {start/stop} keywords of
|
||||
the "run"_run.html command. This fix is not invoked during "energy
|
||||
minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
Currently, there are 2 restrictions for using this fix. We may relax
|
||||
these in the future if there are new models that would be enabled by
|
||||
it.
|
||||
|
||||
When a bond is created, you might wish to induce new angle and
|
||||
dihedral interactions that include that bond. However, LAMMPS does
|
||||
not create these angles and dihedrals, even if your simulation defines
|
||||
an "angle_style"_angle_style.html or
|
||||
"dihedral_style"_dihedral_style.html.
|
||||
|
||||
This fix requires that the pairwise weightings defined by the
|
||||
"special_bonds"_special_bonds.html command be 0,1,1 for 1-2, 1-3, and
|
||||
1-4 neighbors within the bond topology. This effectively means that
|
||||
the pairwise interaction between atoms I and J will be turned off when
|
||||
a bond between them is created. It also means that the pairwise
|
||||
interaction of I with J's other bond partners will be unaffected by
|
||||
the new bond.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix bond/break"_fix_bond_break.html, "fix
|
||||
bond/swap"_fix_bond_swap.html, "dump bond"_dump.html,
|
||||
"special_bonds"_special_bonds.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The option defaults are iparam = (0,itype), jparam = (0,jtype), and
|
||||
prob = 1.0.
|
Loading…
Reference in New Issue