diff --git a/doc/fix_gcmc.html b/doc/fix_gcmc.html
index a07c3987ac..39b18c10be 100644
--- a/doc/fix_gcmc.html
+++ b/doc/fix_gcmc.html
@@ -37,7 +37,7 @@
keyword = mol, region, maxangle, pressure, fugacity_coeff, full_energy, or charge
mol value = template-ID
template-ID = ID of molecule template specified in a separate molecule command
@@ -48,23 +48,25 @@
maxangle value = maximum molecular rotation angle (degrees)
pressure value = pressue 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)
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
+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
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). If used with the fix nvt
-command, simulations in the grand canonical enemble (muVT, constant
-chemical potential, constant volume, and constant temperature) can be
+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). If used with the fix nvt 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.
@@ -103,16 +105,16 @@ 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 command. It must be
-defined with side = in. Insertion attempts occur only within the
-specified region. Move and deletion attempt candidates are selected
-from gas atoms or molecules within the region. If no candidate can be
-found within the specified region after randomly selecting candidates
-1000 times, the move or deletion attempt is considered a
-failure. Moves must start within the specified region, but may move
-the atom or molecule slightly outside of the region.
+
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 command. It must be
+defined with side = in. Insertion attempts occur only within the
+specified region. Move and deletion attempt candidates are selected
+from gas atoms or molecules within the region. If no candidate can be
+found within the specified region after randomly selecting candidates
+1000 times, the move or deletion attempt is considered a failure. Moves
+must start and end with the atom or molecule center-of-mass within the
+specified region. Moves are not otherwise attempted.
If used with fix_nvt, the temperature of the imaginary
reservoir, T, should be set to be equivalent to the target temperature
@@ -160,7 +162,10 @@ the angle in degrees. The specified angle will apply to all three
Euler angles used internally to define the rotation matrix for
molecular rotations. The max angle can be set to zero, but rotations
will be pointless. Note that the default is ten degrees for each
-Euler angle.
+Euler angle. Also note that fix GCMC does not do configurational bias
+MC. In other words, while inserted molecules have different rotations,
+they all have the same molecular 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
@@ -176,6 +181,42 @@ 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
+
- need to include potential energy contributions from other fixes
+
+Some fixes have an associated potential energy. Examples of such fixes
+include: efield, gravity,
+addforce, langevin,
+restrain, temp/berendsen,
+temp/rescale, and wall fixes.
+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 energy option for
+that fix. The doc pages for individual fix 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 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 command to insure that the
@@ -192,7 +233,7 @@ mass = 39.948 amu.
Restart, fix_modify, output, run start/stop, minimize info:
-This fix writes the state of the deposition to binary restart
+This fix writes the state of the fix to binary restart
files. This includes information about the random
number generator seed, the next timestep for MC exchanges, etc. See
the read_restart command for info on how to
@@ -202,9 +243,9 @@ the operation of the fix continues in an uninterrupted fashion.
None of the fix_modify options are relevant to this
fix.
-This fix computes a global vector of length 6, which can be accessed
+
This fix computes a global vector of length 8, which can be accessed
by various output commands. The vector
-values are the following global cummulative quantities:
+values are the following global cumulative quantities:
- 1 = displacement attempts
- 2 = displacement successes
@@ -230,19 +271,8 @@ LAMMPS
section for more info.
Do not set "neigh_modify once yes" or else this fix will never be
called. Reneighboring is required.
-Only pairwise interactions, as defined by the
-pair_style command, are included in this
-calculation. Long-range interactions due to a
-kspace_style command are not included. Not all
-pair potentials can be evaluated in a pairwise mode as required by
-this fix. For example, 3-body potentials, such as
-Tersoff and Stillinger-Weber cannot
-be used. EAM potentials for metals only include the
-pair potential portion of the EAM interaction, not the embedding term.
-
Can be run in parallel, but aspects of the GCMC part will not scale
-well in parallel. Only usable for 3D simulations with orthogonal
-simulation cells.
+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
@@ -259,13 +289,14 @@ referenced by the user for each subsequent fix gcmc command.
Related commands:
-fix_nvt, neighbor,
+
fix_atom_swap,
+fix_nvt, neighbor,
fix_deposit, fix_evaporate,
delete_atoms
Default:
-The option defaults are mol = no, maxangle = 10.
+
The option defaults are mol = no, maxangle = 10, full_energy = no.
diff --git a/doc/fix_gcmc.txt b/doc/fix_gcmc.txt
index 48d23d9943..7b21f3b10a 100644
--- a/doc/fix_gcmc.txt
+++ b/doc/fix_gcmc.txt
@@ -23,7 +23,7 @@ T = temperature of the ideal gas reservoir (temperature units) :l
mu = chemical potential of the ideal gas reservoir (energy units) :l
displace = maximum Monte Carlo displacement distance (length units) :l
zero or more keyword/value pairs may be appended to args :l
-keyword = {mol}, {region}, {maxangle}, {pressure}, or {fugacity_coeff} :l
+keyword = {mol}, {region}, {maxangle}, {pressure}, {fugacity_coeff}, {full_energy}, or {charge} :l
{mol} value = template-ID
template-ID = ID of molecule template specified in a separate "molecule"_molecule.html command
{shake} value = fix-ID
@@ -32,23 +32,25 @@ keyword = {mol}, {region}, {maxangle}, {pressure}, or {fugacity_coeff} :l
region-ID = ID of region to use as an exchange/move volume
{maxangle} value = maximum molecular rotation angle (degrees)
{pressure} value = pressue of the gas reservoir (pressure units)
- {fugacity_coeff} value = fugacity coefficient of the gas reservoir (unitless) :pre
+ {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) :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
+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 enemble (muVT, constant
-chemical potential, constant volume, and constant temperature) can be
+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.
@@ -87,16 +89,16 @@ 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. Move and deletion attempt candidates are selected
-from gas atoms or molecules within the region. If no candidate can be
-found within the specified region after randomly selecting candidates
-1000 times, the move or deletion attempt is considered a
-failure. Moves must start within the specified region, but may move
-the atom or molecule slightly outside of the region.
+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. Move and deletion attempt candidates are selected
+from gas atoms or molecules within the region. If no candidate can be
+found within the specified region after randomly selecting candidates
+1000 times, the move or deletion attempt is considered a failure. Moves
+must start and end with the atom or molecule center-of-mass within the
+specified region. Moves are not otherwise attempted.
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
@@ -144,7 +146,10 @@ the angle in degrees. The specified angle will apply to all three
Euler angles used internally to define the rotation matrix for
molecular rotations. The max angle can be set to zero, but rotations
will be pointless. Note that the default is ten degrees for each
-Euler angle.
+Euler angle. Also note that fix GCMC does not do configurational bias
+MC. In other words, while inserted molecules have different rotations,
+they all have the same molecular 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
@@ -160,6 +165,42 @@ 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
+ need to include potential energy contributions from other fixes :ul
+
+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
@@ -176,7 +217,7 @@ mass = 39.948 amu.
[Restart, fix_modify, output, run start/stop, minimize info:]
-This fix writes the state of the deposition to "binary restart
+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
@@ -186,9 +227,9 @@ 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 6, which can be accessed
+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 cummulative quantities:
+values are the following global cumulative quantities:
1 = displacement attempts
2 = displacement successes
@@ -214,19 +255,8 @@ 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.
-Only pairwise interactions, as defined by the
-"pair_style"_pair_style.html command, are included in this
-calculation. Long-range interactions due to a
-"kspace_style"_kspace_style.html command are not included. Not all
-pair potentials can be evaluated in a pairwise mode as required by
-this fix. For example, 3-body potentials, such as
-"Tersoff"_pair_tersoff.html and "Stillinger-Weber"_pair_sw.html cannot
-be used. "EAM"_pair_eam.html potentials for metals only include the
-pair potential portion of the EAM interaction, not the embedding term.
-
Can be run in parallel, but aspects of the GCMC part will not scale
-well in parallel. Only usable for 3D simulations with orthogonal
-simulation cells.
+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
@@ -243,13 +273,14 @@ 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.
+The option defaults are mol = no, maxangle = 10, full_energy = no.
:line