diff --git a/doc/fix_gcmc.html b/doc/fix_gcmc.html
index 1420ebd92..d4f70661d 100644
--- a/doc/fix_gcmc.html
+++ b/doc/fix_gcmc.html
@@ -1,350 +1,355 @@
 <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 gcmc command 
 </H3>
 <P><B>Syntax:</B>
 </P>
 <PRE>fix ID group-ID gcmc N X M type seed T mu displace keyword values ... 
 </PRE>
 <UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command 
 
 <LI>gcmc = style name of this fix command 
 
 <LI>N = invoke this fix every N steps 
 
 <LI>X = average number of GCMC exchanges to attempt every N steps 
 
 <LI>M = average number of MC moves to attempt every N steps 
 
 <LI>type = atom type to assign to inserted atoms (offset for molecule insertion) 
 
 <LI>seed = random # seed (positive integer) 
 
 <LI>T = temperature of the ideal gas reservoir (temperature units) 
 
 <LI>mu = chemical potential of the ideal gas reservoir (energy units) 
 
 <LI>translate = maximum Monte Carlo translation distance (length units) 
 
 <LI>zero or more keyword/value pairs may be appended to args 
 
 <PRE>keyword = <I>mol</I>, <I>region</I>, <I>maxangle</I>, <I>pressure</I>, <I>fugacity_coeff</I>, <I>full_energy</I>, <I>charge</I>, <I>group</I>, <I>grouptype</I>, or <I>intra_energy</I>
   <I>mol</I> value = template-ID
     template-ID = ID of molecule template specified in a separate <A HREF = "molecule.html">molecule</A> command
   <I>shake</I> value = fix-ID
     fix-ID = ID of <A HREF = "fix_shake.html">fix shake</A> command
   <I>region</I> value = region-ID
     region-ID = ID of region where MC moves are allowed 
   <I>maxangle</I> value = maximum molecular rotation angle (degrees) 
   <I>pressure</I> value = pressure of the gas reservoir (pressure units)
   <I>fugacity_coeff</I> value = fugacity coefficient of the gas reservoir (unitless) 
   <I>full_energy</I> = compute the entire system energy when performing MC moves
   <I>charge</I> value = charge of inserted atoms (charge units)
   <I>group</I> value = group-ID
     group-ID = group-ID for inserted atoms (string)
   <I>grouptype</I> values = type group-ID 
     type = atom type (int)
     group-ID = group-ID for inserted atoms (string)
   <I>intra_energy</I> value = intramolecular energy (energy units)  
 </PRE>
 
 </UL>
 <P><B>Examples:</B>
 </P>
 <PRE>fix 2 gas gcmc 10 1000 1000 2 29494 298.0 -0.5 0.01
 fix 3 water gcmc 10 100 100 0 3456543 3.0 -2.5 0.1 mol my_one_water maxangle 180 full_energy
 fix 4 my_gas gcmc 1 10 10 1 123456543 300.0 -12.5 1.0 region disk 
 </PRE>
 <P><B>Description:</B>
 </P>
 <P>This fix performs grand canonical Monte Carlo (GCMC) exchanges of
 atoms or molecules of the given type with an imaginary ideal gas reservoir at
 the specified T and chemical potential (mu) as discussed in
 <A HREF = "#Frenkel">(Frenkel)</A>. If used with the <A HREF = "fix_nh.html">fix nvt</A> command,
 simulations in the grand canonical ensemble (muVT, constant chemical
 potential, constant volume, and constant temperature) can be
 performed.  Specific uses include computing isotherms in microporous
 materials, or computing vapor-liquid coexistence curves.
 </P>
 <P>Every N timesteps the fix attempts a number of GCMC exchanges (insertions
 or deletions) of gas atoms or molecules of
 the given type between the simulation cell and the imaginary
 reservoir. It also attempts a number of Monte Carlo
 moves (translations and molecule rotations) of gas of the given type
 within the simulation cell or region.  The average number of 
 attempted GCMC exchanges is X. The average number of attempted MC moves is M.
 M should typically be chosen to be
 approximately equal to the expected number of gas atoms or molecules
 of the given type within the simulation cell or region, 
 which will result in roughly one
 MC translation per atom or molecule per MC cycle.
 </P>
 <P>For MC moves of molecular gasses, rotations and translations are each
 attempted with 50% probability. For MC moves of atomic gasses,
 translations are attempted 100% of the time. For MC exchanges of
 either molecular or atomic gasses, deletions and insertions are each
 attempted with 50% probability.
 </P>
 <P>All inserted particles are always assigned to two groups: the default group
 "all" and the group specified in the fix gcmc command (which can also
 be "all"). In addition, particles are also added to any groups specified
 by the <I>group</I> and <I>grouptype</I> keywords.
 If inserted particles are individual atoms, they are
 assigned the specified atom type.  If they are molecules, the type of
 each atom in the inserted molecule is specified in the file read by
 the <A HREF = "molecule.html">molecule</A> command, and those values are added to
 the specified atom type.  E.g. if <I>type</I> = 2, and the file specifies
 atom types 1,2,3, then the inserted molecule will have atom types
 3,4,5.
 </P>
 <P>This fix cannot be used to perform MC insertions of gas atoms or
 molecules other than the exchanged type, but MC deletions,
 translations, and rotations can be performed on any atom/molecule in
 the fix group.  All atoms in the simulation cell can be moved using
 regular time integration translations, e.g. via
 <A HREF = "fix_nvt.html">fix_nvt</A>, resulting in a hybrid GCMC+MD simulation. A
 smaller-than-usual timestep size may be needed when running such a
 hybrid simulation, especially if the inserted molecules are not well
 equilibrated.
 </P>
 <P>This command may optionally use the <I>region</I> keyword to define an 
 exchange and move volume.  The specified region must have been 
 previously defined with a <A HREF = "region.html">region</A> command.  It must be 
 defined with side = <I>in</I>.  Insertion attempts occur only within the 
 specified region. For non-rectangular regions, random trial 
 points are generated within the rectangular bounding box until a point is found
 that lies inside the region. If no valid point is generated after 1000 trials,
 no insertion is performed, but it is counted as an attempted insertion.
 Move and deletion attempt candidates are selected 
 from gas atoms or molecules within the region. If there are no candidates,
 no move or deletion is performed, but it is counted as an attempt move
 or deletion. If an attempted move places the atom or molecule center-of-mass outside 
 the specified region, a new attempted move is generated. This process is repeated 
 until the atom or molecule center-of-mass is inside the specified region.  
 </P>
 <P>If used with <A HREF = "fix_nvt.html">fix_nvt</A>, the temperature of the imaginary
 reservoir, T, should be set to be equivalent to the target temperature
 used in <A HREF = "fix_nvt.html">fix_nvt</A>. Otherwise, the imaginary reservoir
 will not be in thermal equilibrium with the simulation cell.
 </P>
 <P>Note that neighbor lists are re-built every timestep that this fix is
 invoked, so you should not set N to be too small.  However, periodic
 rebuilds are necessary in order to avoid dangerous rebuilds and missed
 interactions. Specifically, avoid performing so many MC translations
 per timestep that atoms can move beyond the neighbor list skin
 distance. See the <A HREF = "neighbor.html">neighbor</A> command for details.
 </P>
-<P>When an atom or molecule is to be inserted, its center-of-mass
+<P>When an atom or molecule is to be inserted, its 
 coordinates are chosen at a random position within the current
 simulation cell or region, and new atom velocities are randomly chosen from
 the specified temperature distribution given by T.  Relative
 coordinates for atoms in a molecule are taken from the template
-molecule provided by the user. A random initial rotation is used in
-the case of molecule insertions.
+molecule provided by the user, with the origin of the relative 
+coordinates coinciding with the chosen insertion point. This means
+that if the origin of the template molecule coordinate system
+lies far from the center of the template molecule,
+the inserted molecule will lie far from the insertion point. 
+A random initial rotation is used in
+the case of molecule insertions. 
 </P>
 <P>Individual atoms are inserted, unless the <I>mol</I> keyword is used.  It
 specifies a <I>template-ID</I> previously defined using the
 <A HREF = "molecule.html">molecule</A> command, which reads a file that defines the
 molecule.  The coordinates, atom types, charges, etc, as well as any
 bond/angle/etc and special neighbor information for the molecule can
 be specified in the molecule file.  See the <A HREF = "molecule.html">molecule</A>
 command for details.  The only settings required to be in this file
 are the coordinates and types of atoms in the molecule.
 </P>
 <P>When not using the <I>mol</I> keyword, you should ensure you do not delete
 atoms that are bonded to other atoms, or LAMMPS will
 soon generate an error when it tries to find bonded neighbors.  LAMMPS will
 warn you if any of the atoms eligible for deletion have a non-zero
 molecule ID, but does not check for this at the time of deletion.
 </P>
 <P>If you wish to insert molecules via the <I>mol</I> keyword, that will have
 their bonds or angles constrained via SHAKE, use the <I>shake</I> keyword,
 specifying as its value the ID of a separate <A HREF = "fix_shake.html">fix
 shake</A> command which also appears in your input script.
 </P>
 <P>Optionally, users may specify the maximum rotation angle for 
 molecular rotations using the <I>maxangle</I> keyword and specifying
 the angle in degrees. Rotations are performed by generating a random
 point on the unit sphere and a random rotation angle on the
 range [0,maxangle). The molecule is then rotated by that angle about an
 axis passing through the molecule center of mass. The axis is parallel 
 to the unit vector defined by the point on the unit sphere. The
 same procedure is used for randomly rotating molecules when they
 are inserted, except that the rotation axis passes through whatever
 origin is used for the molecule template, and the maximum angle is 
 360 degrees.
 </P>
 <P>Note that fix GCMC does not use configurational bias 
 MC or any other kind of sampling of intramolecular degrees of freedom. 
 Inserted molecules can have different orientations, but they will all 
 have the same intramolecular configuration, 
 which was specified in the molecule command input. 
 </P>
 <P>For atomic gasses, inserted atoms have the specified atom type, but
 deleted atoms are any atoms that have been inserted or that belong 
 to the user-specified fix group. For molecular gasses, exchanged 
 molecules use the same atom types as in the template molecule 
 supplied by the user.  In both cases, exchanged
 atoms/molecules are assigned to two groups: the default group "all"
 and the group specified in the fix gcmc command (which can also be 
 "all"). 
 </P>
 <P>The gas reservoir pressure can be specified using the <I>pressure</I> 
 keyword, in which case the user-specified chemical potential is 
 ignored. For non-ideal gas reservoirs, the user may also specify the 
 fugacity coefficient using the <I>fugacity_coeff</I> keyword.
 </P>
 <P>The <I>full_energy</I> option means that fix GCMC will compute the total
 potential energy of the entire simulated system. The total system
 energy before and after the proposed GCMC move is then used in the
 Metropolis criterion to determine whether or not to accept the 
 proposed GCMC move. By default, this option is off, in which case
 only partial energies are computed to determine the difference in
 energy that would be caused by the proposed GCMC move.
 </P>
 <P>The <I>full_energy</I> option is needed for systems with complicated
 potential energy calculations, including the following:
 </P>
 <UL><LI>  long-range electrostatics (kspace)
 <LI>  many-body pair styles
 <LI>  hybrid pair styles
 <LI>  eam pair styles
 <LI>  triclinic systems
 <LI>  charged systems (b/c single() function for Coulombic pair styles requires an atom index to look up charges) 
 <LI>  need to include potential energy contributions from other fixes 
 </UL>
 <P>In these cases, LAMMPS will automatically apply the <I>full_energy</I>
 keyword and issue a warning message.
 </P>
 <P>When the <I>mol</I> keyword is used, the <I>full_energy</I> option also includes 
 the intramolecular energy of inserted and deleted molecules. If this 
 is not desired, the <I>intra_energy</I> keyword can be used to define an
 amount of energy that is subtracted from the final energy when a molecule
 is inserted, and added to the initial energy when a molecule is
 deleted. For molecules that have a non-zero intramolecular energy, this
 will ensure roughly the same behavior whether or not the <I>full_energy</I>
 option is used.
 </P>
 <P>Some fixes have an associated potential energy. Examples of such fixes
 include: <A HREF = "fix_efield.html">efield</A>, <A HREF = "fix_gravity.html">gravity</A>, 
 <A HREF = "fix_addforce.html">addforce</A>, <A HREF = "fix_langevin.html">langevin</A>, 
 <A HREF = "fix_restrain.html">restrain</A>, <A HREF = "fix_temp_berendsen.html">temp/berendsen</A>, 
 <A HREF = "fix_temp_rescale.html">temp/rescale</A>, and <A HREF = "fix_wall.html">wall fixes</A>. 
 For that energy to be included in the total potential energy of the 
 system (the quantity used when performing GCMC moves),
 you MUST enable the <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option for
 that fix.  The doc pages for individual <A HREF = "fix.html">fix</A> commands
 specify if this should be done.
 </P>
 <P>Use the <I>charge</I> option to insert atoms with a user-specified point 
 charge. Note that doing so will cause the system to become non-neutral. 
 LAMMPS issues a warning when using long-range electrostatics (kspace) 
 with non-neutral systems. See the 
 <A HREF = "compute_group_group.html">compute_group_group</A> documentation for more 
 details about simulating non-neutral systems with kspace on.
 </P>
 <P>Use of this fix typically will cause the number of atoms to fluctuate,
 therefore, you will want to use the
 <A HREF = "compute_modify.html">compute_modify</A> command to insure that the
 current number of atoms is used as a normalizing factor each time
 temperature is computed.  Here is the necessary command:
 </P>
 <PRE>compute_modify thermo_temp dynamic yes 
 </PRE>
 <P>If LJ units are used, note that a value of 0.18292026 is used by this
 fix as the reduced value for Planck's constant.  This value was
 derived from LJ parameters for argon, where h* = h/sqrt(sigma^2 *
 epsilon * mass), sigma = 3.429 angstroms, epsilon/k = 121.85 K, and
 mass = 39.948 amu.
 </P>
 <P>The <I>group</I> keyword assigns all inserted atoms to the <A HREF = "group.html">group</A> 
 of the group-ID value. The <I>grouptype</I> keyword assigns all 
 inserted atoms of the specified type to the <A HREF = "group.html">group</A> 
 of the group-ID value.
 </P>
 <P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
 </P>
 <P>This fix writes the state of the fix to <A HREF = "restart.html">binary restart
 files</A>.  This includes information about the random
 number generator seed, the next timestep for MC exchanges, etc.  See
 the <A HREF = "read_restart.html">read_restart</A> command for info on how to
 re-specify a fix in an input script that reads a restart file, so that
 the operation of the fix continues in an uninterrupted fashion.
 </P>
 <P>None of the <A HREF = "fix_modify.html">fix_modify</A> options are relevant to this
 fix.
 </P>
 <P>This fix computes a global vector of length 8, which can be accessed
 by various <A HREF = "Section_howto.html#howto_15">output commands</A>.  The vector
 values are the following global cumulative quantities:
 </P>
 <UL><LI>1 = translation attempts
 <LI>2 = translation successes
 <LI>3 = insertion attempts
 <LI>4 = insertion successes 
 <LI>5 = deletion attempts
 <LI>6 = deletion successes
 <LI>7 = rotation attempts
 <LI>8 = rotation successes 
 </UL>
 <P>The vector values calculated by this fix are "extensive".
 </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>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>Do not set "neigh_modify once yes" or else this fix will never be
 called.  Reneighboring is required.
 </P>
 <P>Can be run in parallel, but aspects of the GCMC part will not scale 
 well in parallel. Only usable for 3D simulations.
 </P>
 <P>Note that very lengthy simulations involving insertions/deletions of
 billions of gas molecules may run out of atom or molecule IDs and
 trigger an error, so it is better to run multiple shorter-duration 
 simulations. Likewise, very large molecules have not been tested
 and may turn out to be problematic.
 </P>
 <P>Use of multiple fix gcmc commands in the same input script can be 
 problematic if using a template molecule. The issue is that the 
 user-referenced template molecule in the second fix gcmc command
 may no longer exist since it might have been deleted by the first
 fix gcmc command. An existing template molecule will need to be
 referenced by the user for each subsequent fix gcmc command.
 </P>
 <P><B>Related commands:</B>
 </P>
 <P><A HREF = "fix_atom_swap.html">fix_atom_swap</A>,
 <A HREF = "fix_nvt.html">fix_nvt</A>, <A HREF = "neighbor.html">neighbor</A>, 
 <A HREF = "fix_deposit.html">fix_deposit</A>, <A HREF = "fix_evaporate.html">fix_evaporate</A>,
 <A HREF = "delete_atoms.html">delete_atoms</A>
 </P>
 <P><B>Default:</B>
 </P>
 <P>The option defaults are mol = no, maxangle = 10, full_energy = no,
 except for the situations where full_energy is required, as
 listed above.
 </P>
 <HR>
 
 <A NAME = "Frenkel"></A>
 
 <P><B>(Frenkel)</B> Frenkel and Smit, Understanding Molecular Simulation, 
 Academic Press, London, 2002.
 </P>
 </HTML>
diff --git a/doc/fix_gcmc.txt b/doc/fix_gcmc.txt
index 5d94f0576..288e609f0 100644
--- a/doc/fix_gcmc.txt
+++ b/doc/fix_gcmc.txt
@@ -1,332 +1,337 @@
 "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 gcmc command :h3
 
 [Syntax:]
 
 fix ID group-ID gcmc N X M type seed T mu displace keyword values ... :pre
 
 ID, group-ID are documented in "fix"_fix.html command :ulb,l
 gcmc = style name of this fix command :l
 N = invoke this fix every N steps :l
 X = average number of GCMC exchanges to attempt every N steps :l
 M = average number of MC moves to attempt every N steps :l
 type = atom type to assign to inserted atoms (offset for molecule insertion) :l
 seed = random # seed (positive integer) :l
 T = temperature of the ideal gas reservoir (temperature units) :l
 mu = chemical potential of the ideal gas reservoir (energy units) :l
 translate = maximum Monte Carlo translation distance (length units) :l
 zero or more keyword/value pairs may be appended to args :l
 keyword = {mol}, {region}, {maxangle}, {pressure}, {fugacity_coeff}, {full_energy}, {charge}, {group}, {grouptype}, or {intra_energy}
   {mol} value = template-ID
     template-ID = ID of molecule template specified in a separate "molecule"_molecule.html command
   {shake} value = fix-ID
     fix-ID = ID of "fix shake"_fix_shake.html command
   {region} value = region-ID
     region-ID = ID of region where MC moves are allowed 
   {maxangle} value = maximum molecular rotation angle (degrees) 
   {pressure} value = pressure of the gas reservoir (pressure units)
   {fugacity_coeff} value = fugacity coefficient of the gas reservoir (unitless) 
   {full_energy} = compute the entire system energy when performing MC moves
   {charge} value = charge of inserted atoms (charge units)
   {group} value = group-ID
     group-ID = group-ID for inserted atoms (string)
   {grouptype} values = type group-ID 
     type = atom type (int)
     group-ID = group-ID for inserted atoms (string)
   {intra_energy} value = intramolecular energy (energy units)  :pre
 :ule
 
 [Examples:]
 
 fix 2 gas gcmc 10 1000 1000 2 29494 298.0 -0.5 0.01
 fix 3 water gcmc 10 100 100 0 3456543 3.0 -2.5 0.1 mol my_one_water maxangle 180 full_energy
 fix 4 my_gas gcmc 1 10 10 1 123456543 300.0 -12.5 1.0 region disk :pre
 
 [Description:]
 
 This fix performs grand canonical Monte Carlo (GCMC) exchanges of
 atoms or molecules of the given type with an imaginary ideal gas reservoir at
 the specified T and chemical potential (mu) as discussed in
 "(Frenkel)"_#Frenkel. If used with the "fix nvt"_fix_nh.html command,
 simulations in the grand canonical ensemble (muVT, constant chemical
 potential, constant volume, and constant temperature) can be
 performed.  Specific uses include computing isotherms in microporous
 materials, or computing vapor-liquid coexistence curves.
 
 Every N timesteps the fix attempts a number of GCMC exchanges (insertions
 or deletions) of gas atoms or molecules of
 the given type between the simulation cell and the imaginary
 reservoir. It also attempts a number of Monte Carlo
 moves (translations and molecule rotations) of gas of the given type
 within the simulation cell or region.  The average number of 
 attempted GCMC exchanges is X. The average number of attempted MC moves is M.
 M should typically be chosen to be
 approximately equal to the expected number of gas atoms or molecules
 of the given type within the simulation cell or region, 
 which will result in roughly one
 MC translation per atom or molecule per MC cycle.
 
 For MC moves of molecular gasses, rotations and translations are each
 attempted with 50% probability. For MC moves of atomic gasses,
 translations are attempted 100% of the time. For MC exchanges of
 either molecular or atomic gasses, deletions and insertions are each
 attempted with 50% probability.
 
 All inserted particles are always assigned to two groups: the default group
 "all" and the group specified in the fix gcmc command (which can also
 be "all"). In addition, particles are also added to any groups specified
 by the {group} and {grouptype} keywords.
 If inserted particles are individual atoms, they are
 assigned the specified atom type.  If they are molecules, the type of
 each atom in the inserted molecule is specified in the file read by
 the "molecule"_molecule.html command, and those values are added to
 the specified atom type.  E.g. if {type} = 2, and the file specifies
 atom types 1,2,3, then the inserted molecule will have atom types
 3,4,5.
 
 This fix cannot be used to perform MC insertions of gas atoms or
 molecules other than the exchanged type, but MC deletions,
 translations, and rotations can be performed on any atom/molecule in
 the fix group.  All atoms in the simulation cell can be moved using
 regular time integration translations, e.g. via
 "fix_nvt"_fix_nvt.html, resulting in a hybrid GCMC+MD simulation. A
 smaller-than-usual timestep size may be needed when running such a
 hybrid simulation, especially if the inserted molecules are not well
 equilibrated.
 
 This command may optionally use the {region} keyword to define an 
 exchange and move volume.  The specified region must have been 
 previously defined with a "region"_region.html command.  It must be 
 defined with side = {in}.  Insertion attempts occur only within the 
 specified region. For non-rectangular regions, random trial 
 points are generated within the rectangular bounding box until a point is found
 that lies inside the region. If no valid point is generated after 1000 trials,
 no insertion is performed, but it is counted as an attempted insertion.
 Move and deletion attempt candidates are selected 
 from gas atoms or molecules within the region. If there are no candidates,
 no move or deletion is performed, but it is counted as an attempt move
 or deletion. If an attempted move places the atom or molecule center-of-mass outside 
 the specified region, a new attempted move is generated. This process is repeated 
 until the atom or molecule center-of-mass is inside the specified region.  
 
 If used with "fix_nvt"_fix_nvt.html, the temperature of the imaginary
 reservoir, T, should be set to be equivalent to the target temperature
 used in "fix_nvt"_fix_nvt.html. Otherwise, the imaginary reservoir
 will not be in thermal equilibrium with the simulation cell.
 
 Note that neighbor lists are re-built every timestep that this fix is
 invoked, so you should not set N to be too small.  However, periodic
 rebuilds are necessary in order to avoid dangerous rebuilds and missed
 interactions. Specifically, avoid performing so many MC translations
 per timestep that atoms can move beyond the neighbor list skin
 distance. See the "neighbor"_neighbor.html command for details.
 
-When an atom or molecule is to be inserted, its center-of-mass
+When an atom or molecule is to be inserted, its 
 coordinates are chosen at a random position within the current
 simulation cell or region, and new atom velocities are randomly chosen from
 the specified temperature distribution given by T.  Relative
 coordinates for atoms in a molecule are taken from the template
-molecule provided by the user. A random initial rotation is used in
-the case of molecule insertions.
+molecule provided by the user, with the origin of the relative 
+coordinates coinciding with the chosen insertion point. This means
+that if the origin of the template molecule coordinate system
+lies far from the center of the template molecule,
+the inserted molecule will lie far from the insertion point. 
+A random initial rotation is used in
+the case of molecule insertions. 
 
 Individual atoms are inserted, unless the {mol} keyword is used.  It
 specifies a {template-ID} previously defined using the
 "molecule"_molecule.html command, which reads a file that defines the
 molecule.  The coordinates, atom types, charges, etc, as well as any
 bond/angle/etc and special neighbor information for the molecule can
 be specified in the molecule file.  See the "molecule"_molecule.html
 command for details.  The only settings required to be in this file
 are the coordinates and types of atoms in the molecule.
 
 When not using the {mol} keyword, you should ensure you do not delete
 atoms that are bonded to other atoms, or LAMMPS will
 soon generate an error when it tries to find bonded neighbors.  LAMMPS will
 warn you if any of the atoms eligible for deletion have a non-zero
 molecule ID, but does not check for this at the time of deletion.
 
 If you wish to insert molecules via the {mol} keyword, that will have
 their bonds or angles constrained via SHAKE, use the {shake} keyword,
 specifying as its value the ID of a separate "fix
 shake"_fix_shake.html command which also appears in your input script.
 
 Optionally, users may specify the maximum rotation angle for 
 molecular rotations using the {maxangle} keyword and specifying
 the angle in degrees. Rotations are performed by generating a random
 point on the unit sphere and a random rotation angle on the
 range \[0,maxangle). The molecule is then rotated by that angle about an
 axis passing through the molecule center of mass. The axis is parallel 
 to the unit vector defined by the point on the unit sphere. The
 same procedure is used for randomly rotating molecules when they
 are inserted, except that the rotation axis passes through whatever
 origin is used for the molecule template, and the maximum angle is 
 360 degrees.
 
 Note that fix GCMC does not use configurational bias 
 MC or any other kind of sampling of intramolecular degrees of freedom. 
 Inserted molecules can have different orientations, but they will all 
 have the same intramolecular configuration, 
 which was specified in the molecule command input. 
 
 For atomic gasses, inserted atoms have the specified atom type, but
 deleted atoms are any atoms that have been inserted or that belong 
 to the user-specified fix group. For molecular gasses, exchanged 
 molecules use the same atom types as in the template molecule 
 supplied by the user.  In both cases, exchanged
 atoms/molecules are assigned to two groups: the default group "all"
 and the group specified in the fix gcmc command (which can also be 
 "all"). 
 
 The gas reservoir pressure can be specified using the {pressure} 
 keyword, in which case the user-specified chemical potential is 
 ignored. For non-ideal gas reservoirs, the user may also specify the 
 fugacity coefficient using the {fugacity_coeff} keyword.
 
 The {full_energy} option means that fix GCMC will compute the total
 potential energy of the entire simulated system. The total system
 energy before and after the proposed GCMC move is then used in the
 Metropolis criterion to determine whether or not to accept the 
 proposed GCMC move. By default, this option is off, in which case
 only partial energies are computed to determine the difference in
 energy that would be caused by the proposed GCMC move.
 
 The {full_energy} option is needed for systems with complicated
 potential energy calculations, including the following:
 
   long-range electrostatics (kspace)
   many-body pair styles
   hybrid pair styles
   eam pair styles
   triclinic systems
   charged systems (b/c single() function for Coulombic pair styles requires an atom index to look up charges) 
   need to include potential energy contributions from other fixes :ul
 
 In these cases, LAMMPS will automatically apply the {full_energy}
 keyword and issue a warning message.
 
 When the {mol} keyword is used, the {full_energy} option also includes 
 the intramolecular energy of inserted and deleted molecules. If this 
 is not desired, the {intra_energy} keyword can be used to define an
 amount of energy that is subtracted from the final energy when a molecule
 is inserted, and added to the initial energy when a molecule is
 deleted. For molecules that have a non-zero intramolecular energy, this
 will ensure roughly the same behavior whether or not the {full_energy}
 option is used.
 
 Some fixes have an associated potential energy. Examples of such fixes
 include: "efield"_fix_efield.html, "gravity"_fix_gravity.html, 
 "addforce"_fix_addforce.html, "langevin"_fix_langevin.html, 
 "restrain"_fix_restrain.html, "temp/berendsen"_fix_temp_berendsen.html, 
 "temp/rescale"_fix_temp_rescale.html, and "wall fixes"_fix_wall.html. 
 For that energy to be included in the total potential energy of the 
 system (the quantity used when performing GCMC moves),
 you MUST enable the "fix_modify"_fix_modify.html {energy} option for
 that fix.  The doc pages for individual "fix"_fix.html commands
 specify if this should be done.
 
 Use the {charge} option to insert atoms with a user-specified point 
 charge. Note that doing so will cause the system to become non-neutral. 
 LAMMPS issues a warning when using long-range electrostatics (kspace) 
 with non-neutral systems. See the 
 "compute_group_group"_compute_group_group.html documentation for more 
 details about simulating non-neutral systems with kspace on.
 
 Use of this fix typically will cause the number of atoms to fluctuate,
 therefore, you will want to use the
 "compute_modify"_compute_modify.html command to insure that the
 current number of atoms is used as a normalizing factor each time
 temperature is computed.  Here is the necessary command:
 
 compute_modify thermo_temp dynamic yes :pre
 
 If LJ units are used, note that a value of 0.18292026 is used by this
 fix as the reduced value for Planck's constant.  This value was
 derived from LJ parameters for argon, where h* = h/sqrt(sigma^2 *
 epsilon * mass), sigma = 3.429 angstroms, epsilon/k = 121.85 K, and
 mass = 39.948 amu.
 
 The {group} keyword assigns all inserted atoms to the "group"_group.html 
 of the group-ID value. The {grouptype} keyword assigns all 
 inserted atoms of the specified type to the "group"_group.html 
 of the group-ID value.
 
 [Restart, fix_modify, output, run start/stop, minimize info:]
 
 This fix writes the state of the fix to "binary restart
 files"_restart.html.  This includes information about the random
 number generator seed, the next timestep for MC exchanges, etc.  See
 the "read_restart"_read_restart.html command for info on how to
 re-specify a fix in an input script that reads a restart file, so that
 the operation of the fix continues in an uninterrupted fashion.
 
 None of the "fix_modify"_fix_modify.html options are relevant to this
 fix.
 
 This fix computes a global vector of length 8, which can be accessed
 by various "output commands"_Section_howto.html#howto_15.  The vector
 values are the following global cumulative quantities:
 
 1 = translation attempts
 2 = translation successes
 3 = insertion attempts
 4 = insertion successes 
 5 = deletion attempts
 6 = deletion successes
 7 = rotation attempts
 8 = rotation successes :ul
 
 The vector values calculated by this fix are "extensive".
 
 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:]
 
 This fix is part of the MC package.  It is only enabled if LAMMPS was
 built with that package.  See the "Making
 LAMMPS"_Section_start.html#start_3 section for more info.
 
 Do not set "neigh_modify once yes" or else this fix will never be
 called.  Reneighboring is required.
 
 Can be run in parallel, but aspects of the GCMC part will not scale 
 well in parallel. Only usable for 3D simulations.
 
 Note that very lengthy simulations involving insertions/deletions of
 billions of gas molecules may run out of atom or molecule IDs and
 trigger an error, so it is better to run multiple shorter-duration 
 simulations. Likewise, very large molecules have not been tested
 and may turn out to be problematic.
 
 Use of multiple fix gcmc commands in the same input script can be 
 problematic if using a template molecule. The issue is that the 
 user-referenced template molecule in the second fix gcmc command
 may no longer exist since it might have been deleted by the first
 fix gcmc command. An existing template molecule will need to be
 referenced by the user for each subsequent fix gcmc command.
 
 [Related commands:]
 
 "fix_atom_swap"_fix_atom_swap.html,
 "fix_nvt"_fix_nvt.html, "neighbor"_neighbor.html, 
 "fix_deposit"_fix_deposit.html, "fix_evaporate"_fix_evaporate.html,
 "delete_atoms"_delete_atoms.html
 
 [Default:]
 
 The option defaults are mol = no, maxangle = 10, full_energy = no,
 except for the situations where full_energy is required, as
 listed above.
 
 :line
 
 :link(Frenkel)
 [(Frenkel)] Frenkel and Smit, Understanding Molecular Simulation, 
 Academic Press, London, 2002.