mirror of https://github.com/lammps/lammps.git
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1810 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
e021fcc41e
commit
ee50fd70ed
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -380,6 +380,7 @@ of each style or click on the style itself for a full description:
|
|||
"ave/atom"_fix_ave_atom.html,
|
||||
"ave/spatial"_fix_ave_spatial.html,
|
||||
"ave/time"_fix_ave_time.html,
|
||||
"bond/swap"_fix_bond_swap.html,
|
||||
"com"_fix_com.html,
|
||||
"coord/original"_fix_coord_original.html,
|
||||
"deform"_fix_deform.html,
|
||||
|
|
|
@ -105,6 +105,7 @@ list of fix styles available in LAMMPS:
|
|||
"ave/atom"_fix_ave_atom.html - compute per-atom time-averaged quantities
|
||||
"ave/spatial"_fix_ave_spatial.html - output per-atom quantities by layer
|
||||
"ave/time"_fix_ave_time.html - output time-averaged compute quantities
|
||||
"bond/swap"_fix_bond_swap.html - Monte Carlo bond swapping
|
||||
"com"_fix_com.html - compute a center-of-mass
|
||||
"coord/original"_fix_coord_original.html - store original coords of each atom
|
||||
"deform"_fix_deform.html - change the simulation box size/shape
|
||||
|
|
|
@ -0,0 +1,182 @@
|
|||
<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/swap command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID bond/swap fraction cutoff seed
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
<LI>bond/swap = style name of this fix command
|
||||
<LI>fraction = fraction of group atoms to consider for swapping
|
||||
<LI>cutoff = distance at which swapping will be considered (distance units)
|
||||
<LI>seed = random # seed (positive integer)
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 1 all bond/swap 0.5 1.5 598934
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>In a simulation of polymer chains, this command attempts to swap bonds
|
||||
between two different chains, effectively grafting the end of one
|
||||
chain onto another chain and vice versa. This is done via Monte Carlo
|
||||
rules using the Boltzmann acceptance criterion. The purpose is to
|
||||
lower the energy of the system more rapidly than dynamics alone would
|
||||
do it, by enabling instantaneous large conformational changes in a
|
||||
dense polymer melt. It is designed for use with systems of
|
||||
<A HREF = "bond_fene.html">FENE</A> bead-spring polymer chains where each polymer is
|
||||
a linear chain of monomers, but LAMMPS does not enforce this
|
||||
requirement.
|
||||
</P>
|
||||
<P>A schematic of the kinds of bond swaps that can occur is shown here:
|
||||
</P>
|
||||
<CENTER><IMG SRC = "JPG/bondswap.jpg">
|
||||
</CENTER>
|
||||
<P>On the left, the red and blue chains have two monomers A1 and B1 close
|
||||
to each other, which are currently bonded to monomers A2 and B2
|
||||
respectively within their own chains. The bond swap operation will
|
||||
attempt to delete the A1-A2 and B1-B2 bonds and replace them with
|
||||
A1-B2 and B1-A2 bonds. If the swap is energetically favorable, the
|
||||
two chains on the right are the result and each polymer chain has
|
||||
undergone a dramatic conformational change. This reference provides
|
||||
more details on how the algorithm works and its application:
|
||||
<A HREF = "#Sides">(Sides)</A>.
|
||||
</P>
|
||||
<P>The bond swapping operation is invoked each time neighbor lists are
|
||||
built during a simulation, since it potentially alters the list of
|
||||
which neighbors are considered for pairwise interaction. At each
|
||||
reneighboring step, each processor considers a random specified
|
||||
<I>fraction</I> of its atoms as potential swapping monomers for this
|
||||
timestep. Choosing a small <I>fraction</I> value can reduce the likelihood
|
||||
of a reverse swap occurring soon after an initial swap.
|
||||
</P>
|
||||
<P>For each monomer A1, its neighbors are examined to find a possible B1
|
||||
monomer. Both A1 and B1 must be in the fix group, their separation
|
||||
must be less than the specified <I>cutoff</I>, and the molecule IDs of A1
|
||||
and B1 must be the same (see below). If a suitable partner is found,
|
||||
the energy change due to swapping the 2 bonds is computed. This
|
||||
includes changes in pairwise, bond, and angle energies due to the
|
||||
altered connectivity of the 2 chains. Dihedral and improper
|
||||
interactions are not allowed to be defined when this fix is used.
|
||||
</P>
|
||||
<P>If the energy decreases due to the swap operation, the bond swap is
|
||||
accepted. If the energy increases it is accepted with probability
|
||||
exp(-delta/kT) where delta is the increase in energy, k is the
|
||||
Boltzmann constant, and T is the current temperature of the system.
|
||||
Whether the swap is accepted or rejected, no other swaps are attempted
|
||||
by this processor on this timestep.
|
||||
</P>
|
||||
<P>The criterion for matching molecule IDs is how bond swaps performed by
|
||||
this fix conserve chain length. To use this features you must setup
|
||||
the molecule IDs for your polymer chains in a certain way, typically
|
||||
in the data file, read by the <A HREF = "read_data.html">read_data</A> comand.
|
||||
Consider a system of 6-mer chains. You have 3 choices. If the
|
||||
molecule IDs for monomers on each chain are set to 1,2,3,4,5,6 then
|
||||
swaps will conserve length. For a particular momoner there will be
|
||||
only one other monomer on another chain which is a potential swap
|
||||
partner. If the molecule IDs for monomers on each chain are set to
|
||||
1,2,3,3,2,1 then swaps will conserve length but swaps will be able to
|
||||
occur at either end of a chain. Thus for a particular monomer there
|
||||
will be 2 possible swap partners on another chain. In this scenario,
|
||||
swaps can also occur within a single chain, i.e. the two ends of a
|
||||
chain swap with each other. The third choice is to give all monomers
|
||||
on all chains the same molecule ID, e.g. 0. This will allow a wide
|
||||
variety of swaps to occur, but will NOT conserve chain lengths.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: If your simulation uses molecule IDs in the usual way,
|
||||
where all monomers on a single chain are assigned the same ID
|
||||
(different for each chain), then swaps will only occur within the same
|
||||
chain and will NOT conserve chain length. This is probably not what
|
||||
you want for this fix.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>This fix computes a temperature each time it is invoked for use by the
|
||||
Boltzmann criterion. To do this, the fix creates its own compute of
|
||||
style <I>temp</I>, as if this command had been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp all temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp.html">compute temp</A> command for details. Note
|
||||
that the ID of the new compute is the fix-ID with underscore + "temp"
|
||||
appended and the group for the new compute is "all", so that the
|
||||
temperature of the entire system is used.
|
||||
</P>
|
||||
<P>Note that this is NOT the compute used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
during thermodyanmic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> will have no
|
||||
effect on this fix.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restart, fix_modify, thermo 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>. Because the state of the random number generator
|
||||
is not saved in restart files, this means you cannot do "exact"
|
||||
restarts with this fix, where the simulation continues on the same as
|
||||
if no restart had taken place. However, in a statistical sense, a
|
||||
restarted simulation should produce the same behavior. Also note that
|
||||
each processor generates possible swaps independently of other
|
||||
processors. Thus if you repeat the same simulation on a different number
|
||||
of processors, the specific swaps performed will be different.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>temp</I> option is supported by this
|
||||
fix. You can use it to assign a <A HREF = "compute.html">compute</A> you have
|
||||
defined to this fix which will be used to compute the temperature for
|
||||
the Boltzmann criterion.
|
||||
</P>
|
||||
<P>This fix computes two statistical quantities as a 2-vector of output,
|
||||
which can be accessed by various <A HREF = "Section_howto.html#4_15">output
|
||||
commands</A>. The first component of the vector
|
||||
is the cummulative number of swaps performed by all processors. The
|
||||
second component of the vector is the cummulative number of swaps
|
||||
attempted (whether accepted or rejected). Note that a swap "attempt"
|
||||
only occurs when swap partners meeting the criteria described above
|
||||
are found on a particular timestep. The vector values calculated by
|
||||
this fix are "extensive", meaning they scale with the number of atoms
|
||||
in the simulation.
|
||||
</P>
|
||||
<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>The setings of the "special_bond" command must be 0,1,1 in order to
|
||||
use this fix, which is typical of FENE bead-spring chains.
|
||||
I.e. pairwise interactions between bonded atoms are turned off, but
|
||||
are turned on between atoms two or three hops away along the chain
|
||||
backbone.
|
||||
</P>
|
||||
<P>Currently, energy changes in dihedral and improper interactions due to
|
||||
a bond swap are not considered. Thus a simulation that uses this fix
|
||||
cannot use a dihedral or improper potential.
|
||||
</P>
|
||||
<P><B>Related commands:</B> none
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Sides"></A>
|
||||
|
||||
<P><B>(Sides)</B> Sides, Grest, Stevens, Plimpton, J Polymer Science B, 42,
|
||||
199-208 (2004).
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,176 @@
|
|||
"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/swap command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID bond/swap fraction cutoff seed :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
bond/swap = style name of this fix command
|
||||
fraction = fraction of group atoms to consider for swapping
|
||||
cutoff = distance at which swapping will be considered (distance units)
|
||||
seed = random # seed (positive integer) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all bond/swap 0.5 1.5 598934 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
In a simulation of polymer chains, this command attempts to swap bonds
|
||||
between two different chains, effectively grafting the end of one
|
||||
chain onto another chain and vice versa. This is done via Monte Carlo
|
||||
rules using the Boltzmann acceptance criterion. The purpose is to
|
||||
lower the energy of the system more rapidly than dynamics alone would
|
||||
do it, by enabling instantaneous large conformational changes in a
|
||||
dense polymer melt. It is designed for use with systems of
|
||||
"FENE"_bond_fene.html bead-spring polymer chains where each polymer is
|
||||
a linear chain of monomers, but LAMMPS does not enforce this
|
||||
requirement.
|
||||
|
||||
A schematic of the kinds of bond swaps that can occur is shown here:
|
||||
|
||||
:c,image(JPG/bondswap.jpg)
|
||||
|
||||
On the left, the red and blue chains have two monomers A1 and B1 close
|
||||
to each other, which are currently bonded to monomers A2 and B2
|
||||
respectively within their own chains. The bond swap operation will
|
||||
attempt to delete the A1-A2 and B1-B2 bonds and replace them with
|
||||
A1-B2 and B1-A2 bonds. If the swap is energetically favorable, the
|
||||
two chains on the right are the result and each polymer chain has
|
||||
undergone a dramatic conformational change. This reference provides
|
||||
more details on how the algorithm works and its application:
|
||||
"(Sides)"_#Sides.
|
||||
|
||||
The bond swapping operation is invoked each time neighbor lists are
|
||||
built during a simulation, since it potentially alters the list of
|
||||
which neighbors are considered for pairwise interaction. At each
|
||||
reneighboring step, each processor considers a random specified
|
||||
{fraction} of its atoms as potential swapping monomers for this
|
||||
timestep. Choosing a small {fraction} value can reduce the likelihood
|
||||
of a reverse swap occurring soon after an initial swap.
|
||||
|
||||
For each monomer A1, its neighbors are examined to find a possible B1
|
||||
monomer. Both A1 and B1 must be in the fix group, their separation
|
||||
must be less than the specified {cutoff}, and the molecule IDs of A1
|
||||
and B1 must be the same (see below). If a suitable partner is found,
|
||||
the energy change due to swapping the 2 bonds is computed. This
|
||||
includes changes in pairwise, bond, and angle energies due to the
|
||||
altered connectivity of the 2 chains. Dihedral and improper
|
||||
interactions are not allowed to be defined when this fix is used.
|
||||
|
||||
If the energy decreases due to the swap operation, the bond swap is
|
||||
accepted. If the energy increases it is accepted with probability
|
||||
exp(-delta/kT) where delta is the increase in energy, k is the
|
||||
Boltzmann constant, and T is the current temperature of the system.
|
||||
Whether the swap is accepted or rejected, no other swaps are attempted
|
||||
by this processor on this timestep.
|
||||
|
||||
The criterion for matching molecule IDs is how bond swaps performed by
|
||||
this fix conserve chain length. To use this features you must setup
|
||||
the molecule IDs for your polymer chains in a certain way, typically
|
||||
in the data file, read by the "read_data"_read_data.html comand.
|
||||
Consider a system of 6-mer chains. You have 3 choices. If the
|
||||
molecule IDs for monomers on each chain are set to 1,2,3,4,5,6 then
|
||||
swaps will conserve length. For a particular momoner there will be
|
||||
only one other monomer on another chain which is a potential swap
|
||||
partner. If the molecule IDs for monomers on each chain are set to
|
||||
1,2,3,3,2,1 then swaps will conserve length but swaps will be able to
|
||||
occur at either end of a chain. Thus for a particular monomer there
|
||||
will be 2 possible swap partners on another chain. In this scenario,
|
||||
swaps can also occur within a single chain, i.e. the two ends of a
|
||||
chain swap with each other. The third choice is to give all monomers
|
||||
on all chains the same molecule ID, e.g. 0. This will allow a wide
|
||||
variety of swaps to occur, but will NOT conserve chain lengths.
|
||||
|
||||
IMPORTANT NOTE: If your simulation uses molecule IDs in the usual way,
|
||||
where all monomers on a single chain are assigned the same ID
|
||||
(different for each chain), then swaps will only occur within the same
|
||||
chain and will NOT conserve chain length. This is probably not what
|
||||
you want for this fix.
|
||||
|
||||
:line
|
||||
|
||||
This fix computes a temperature each time it is invoked for use by the
|
||||
Boltzmann criterion. To do this, the fix creates its own compute of
|
||||
style {temp}, as if this command had been issued:
|
||||
|
||||
compute fix-ID_temp all temp :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html command for details. Note
|
||||
that the ID of the new compute is the fix-ID with underscore + "temp"
|
||||
appended and the group for the new compute is "all", so that the
|
||||
temperature of the entire system is used.
|
||||
|
||||
Note that this is NOT the compute used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
during thermodyanmic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} will have no
|
||||
effect on this fix.
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, thermo output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. Because the state of the random number generator
|
||||
is not saved in restart files, this means you cannot do "exact"
|
||||
restarts with this fix, where the simulation continues on the same as
|
||||
if no restart had taken place. However, in a statistical sense, a
|
||||
restarted simulation should produce the same behavior. Also note that
|
||||
each processor generates possible swaps independently of other
|
||||
processors. Thus if you repeat the same simulation on a different number
|
||||
of processors, the specific swaps performed will be different.
|
||||
|
||||
The "fix_modify"_fix_modify.html {temp} option is supported by this
|
||||
fix. You can use it to assign a "compute"_compute.html you have
|
||||
defined to this fix which will be used to compute the temperature for
|
||||
the Boltzmann criterion.
|
||||
|
||||
This fix computes two statistical quantities as a 2-vector of output,
|
||||
which can be accessed by various "output
|
||||
commands"_Section_howto.html#4_15. The first component of the vector
|
||||
is the cummulative number of swaps performed by all processors. The
|
||||
second component of the vector is the cummulative number of swaps
|
||||
attempted (whether accepted or rejected). Note that a swap "attempt"
|
||||
only occurs when swap partners meeting the criteria described above
|
||||
are found on a particular timestep. The vector values calculated by
|
||||
this fix are "extensive", meaning they scale with the number of atoms
|
||||
in the simulation.
|
||||
|
||||
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:]
|
||||
|
||||
The setings of the "special_bond" command must be 0,1,1 in order to
|
||||
use this fix, which is typical of FENE bead-spring chains.
|
||||
I.e. pairwise interactions between bonded atoms are turned off, but
|
||||
are turned on between atoms two or three hops away along the chain
|
||||
backbone.
|
||||
|
||||
Currently, energy changes in dihedral and improper interactions due to
|
||||
a bond swap are not considered. Thus a simulation that uses this fix
|
||||
cannot use a dihedral or improper potential.
|
||||
|
||||
[Related commands:] none
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Sides)
|
||||
[(Sides)] Sides, Grest, Stevens, Plimpton, J Polymer Science B, 42,
|
||||
199-208 (2004).
|
Loading…
Reference in New Issue