forked from lijiext/lammps
164 lines
6.6 KiB
HTML
164 lines
6.6 KiB
HTML
<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
|
|
local</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 global vector of
|
|
length 2, which can be accessed by various <A HREF = "Section_howto.html#howto_15">output
|
|
commands</A>. The vector values calculated
|
|
by this fix are "intensive".
|
|
</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>This fix is part of the MC package. It is only enabled if LAMMPS was
|
|
built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</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 local</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>
|