From ee50fd70eddcae017faaefb71a18501f2142fc90 Mon Sep 17 00:00:00 2001 From: sjplimp Date: Thu, 15 May 2008 21:21:50 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1810 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- doc/JPG/bondswap.jpg | Bin 0 -> 10548 bytes doc/Section_commands.txt | 1 + doc/fix.txt | 1 + doc/fix_bond_swap.html | 182 +++++++++++++++++++++++++++++++++++++++ doc/fix_bond_swap.txt | 176 +++++++++++++++++++++++++++++++++++++ 5 files changed, 360 insertions(+) create mode 100644 doc/JPG/bondswap.jpg create mode 100644 doc/fix_bond_swap.html create mode 100755 doc/fix_bond_swap.txt diff --git a/doc/JPG/bondswap.jpg b/doc/JPG/bondswap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24b6028cafcb331377abf92725ad36df93ab2d03 GIT binary patch literal 10548 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 literal 0 HcmV?d00001 diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index da06a35161..0defe6f31a 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -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, diff --git a/doc/fix.txt b/doc/fix.txt index 258846fba4..7b84ab4c0c 100644 --- a/doc/fix.txt +++ b/doc/fix.txt @@ -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 diff --git a/doc/fix_bond_swap.html b/doc/fix_bond_swap.html new file mode 100644 index 0000000000..91209fc495 --- /dev/null +++ b/doc/fix_bond_swap.html @@ -0,0 +1,182 @@ + +
LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands +
+ + + + + + +
+ +

fix bond/swap command +

+

Syntax: +

+
fix ID group-ID bond/swap fraction cutoff seed 
+
+
  • ID, group-ID are documented in fix 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) +
+

Examples: +

+
fix 1 all bond/swap 0.5 1.5 598934 
+
+

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 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: +

+
+
+

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). +

+

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 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. +

+
+ +

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 
+
+

See the compute temp 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 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 command or print this temperature +during thermodyanmic output via the thermo_style +custom command using the appropriate compute-ID. +It also means that changing attributes of thermo_temp will have no +effect on this fix. +

+
+ +

Restart, fix_modify, thermo output, run start/stop, minimize info: +

+

No information about this fix is written to binary restart +files. 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 temp option is supported by this +fix. You can use it to assign a compute 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. 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 command. This fix is not invoked during energy +minimization. +

+

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 +

+
+ + + +

(Sides) Sides, Grest, Stevens, Plimpton, J Polymer Science B, 42, +199-208 (2004). +

+ diff --git a/doc/fix_bond_swap.txt b/doc/fix_bond_swap.txt new file mode 100755 index 0000000000..8ec804f599 --- /dev/null +++ b/doc/fix_bond_swap.txt @@ -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).