use dynamic/dof and extra/dof consistently. remove compatibility note in docs.

This commit is contained in:
Axel Kohlmeyer
2023-06-30 16:17:47 -04:00
parent 55918ebabf
commit c1213c5222
32 changed files with 688 additions and 688 deletions

View File

@ -12,16 +12,14 @@ Syntax
* compute-ID = ID of the compute to modify * compute-ID = ID of the compute to modify
* one or more keyword/value pairs may be listed * one or more keyword/value pairs may be listed
* keyword = *extra/dof* or *extra* or *dynamic/dof* or *dynamic* * keyword = *extra/dof* or *dynamic/dof*
.. parsed-literal:: .. parsed-literal::
*extra/dof* value = N *extra/dof* value = N
N = # of extra degrees of freedom to subtract N = # of extra degrees of freedom to subtract
*extra* syntax is identical to *extra/dof*, will be disabled at some point
*dynamic/dof* value = *yes* or *no* *dynamic/dof* value = *yes* or *no*
yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature yes/no = do or do not re-compute the number of degrees of freedom (DOF) contributing to the temperature
*dynamic* syntax is identical to *dynamic/dof*, will be disabled at some point
Examples Examples
"""""""" """"""""
@ -37,19 +35,18 @@ Description
Modify one or more parameters of a previously defined compute. Not Modify one or more parameters of a previously defined compute. Not
all compute styles support all parameters. all compute styles support all parameters.
The *extra/dof* or *extra* keyword refers to how many degrees of The *extra/dof* keyword refers to how many degrees of freedom are
freedom are subtracted (typically from :math:`3N`) as a normalizing subtracted (typically from :math:`3N`) as a normalizing factor in a
factor in a temperature computation. Only computes that compute a temperature computation. Only computes that compute a temperature use
temperature use this option. The default is 2 or 3 for :doc:`2d or 3d this option. The default is 2 or 3 for :doc:`2d or 3d systems
systems <dimension>` which is a correction factor for an ensemble of <dimension>` which is a correction factor for an ensemble of velocities
velocities with zero total linear momentum. For compute temp/partial, with zero total linear momentum. For compute temp/partial, if one or
if one or more velocity components are excluded, the value used for more velocity components are excluded, the value used for *extra/dof* is
*extra* is scaled accordingly. You can use a negative number for the scaled accordingly. You can use a negative number for the *extra/dof*
*extra* parameter if you need to add degrees-of-freedom. See the parameter if you need to add degrees-of-freedom. See the :doc:`compute
:doc:`compute temp/asphere <compute_temp_asphere>` command for an temp/asphere <compute_temp_asphere>` command for an example.
example.
The *dynamic/dof* or *dynamic* keyword determines whether the number The *dynamic/dof* keyword determines whether the number
of atoms :math:`N` in the compute group and their associated degrees of atoms :math:`N` in the compute group and their associated degrees
of freedom (DOF) are re-computed each time a temperature is computed. of freedom (DOF) are re-computed each time a temperature is computed.
Only compute styles that calculate a temperature use this option. By Only compute styles that calculate a temperature use this option. By
@ -61,12 +58,6 @@ are adding atoms or molecules to the system (see the :doc:`fix pour
<fix_evaporate>`), then this option should be used to ensure the <fix_evaporate>`), then this option should be used to ensure the
temperature is correctly normalized. temperature is correctly normalized.
.. note::
The *extra* and *dynamic* keywords should not be used as they
are deprecated (March 2017) and will eventually be disabled. Instead,
use the equivalent *extra/dof* and *dynamic/dof* keywords.
Restrictions Restrictions
"""""""""""" """"""""""""
none none
@ -79,5 +70,5 @@ Related commands
Default Default
""""""" """""""
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and The option defaults are extra/dof = 2 or 3 for 2d or 3d systems,
dynamic/dof = *no*. respectively, and dynamic/dof = *no*.

View File

@ -202,7 +202,7 @@ change from zero to one at the location of the spike in :math:`g(r)`.
parallel efficiency and scaling. For systems, where only the type parallel efficiency and scaling. For systems, where only the type
of atoms changes (e.g., when using :doc:`fix atom/swap <fix_atom_swap>`), of atoms changes (e.g., when using :doc:`fix atom/swap <fix_atom_swap>`),
you need to explicitly request the dynamic normalization updates you need to explicitly request the dynamic normalization updates
via :doc:`compute_modify dynamic yes <compute_modify>` via :doc:`compute_modify dynamic/dof yes <compute_modify>`
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -49,25 +49,26 @@ rotational).
.. note:: .. note::
This choice for degrees of freedom (DOF) assumes that all This choice for degrees of freedom (DOF) assumes that all finite-size
finite-size aspherical or spherical particles in your model will aspherical or spherical particles in your model will freely rotate,
freely rotate, sampling all their rotational DOF. It is possible to sampling all their rotational DOF. It is possible to use a
use a combination of interaction potentials and fixes that induce no combination of interaction potentials and fixes that induce no torque
torque or otherwise constrain some of all of your particles so that or otherwise constrain some of all of your particles so that this is
this is not the case. Then there are fewer DOF and you should use the not the case. Then there are fewer DOF and you should use the
:doc:`compute_modify extra <compute_modify>` command to adjust the DOF :doc:`compute_modify extra/dof <compute_modify>` command to adjust
accordingly. the DOF accordingly.
For example, an aspherical particle with all three of its shape For example, an aspherical particle with all three of its shape
parameters the same is a sphere. If it does not rotate, then it parameters the same is a sphere. If it does not rotate, then it should
should have 3 DOF instead of 6 in 3d (or two instead of three in 2d). have 3 DOF instead of 6 in 3d (or two instead of three in 2d). A
A uniaxial aspherical particle has two of its three shape parameters the uniaxial aspherical particle has two of its three shape parameters the
same. If it does not rotate around the axis perpendicular to its same. If it does not rotate around the axis perpendicular to its
circular cross section, then it should have 5 DOF instead of 6 in 3d. circular cross section, then it should have 5 DOF instead of 6 in 3d.
The latter is the case for uniaxial ellipsoids in a :doc:`GayBerne model <pair_gayberne>` since there is no induced torque around the The latter is the case for uniaxial ellipsoids in a :doc:`GayBerne model
optical axis. It will also be the case for biaxial ellipsoids when <pair_gayberne>` since there is no induced torque around the optical
exactly two of the semiaxes have the same length and the corresponding axis. It will also be the case for biaxial ellipsoids when exactly two
relative well depths are equal. of the semiaxes have the same length and the corresponding relative well
depths are equal.
The translational kinetic energy is computed the same as is described The translational kinetic energy is computed the same as is described
by the :doc:`compute temp <compute_temp>` command. The rotational by the :doc:`compute temp <compute_temp>` command. The rotational
@ -90,15 +91,17 @@ inertia tensor are used. The six components of the vector are ordered
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic/dof* option of
:doc:`compute_modify <compute_modify>` command if this is not the case. the :doc:`compute_modify <compute_modify>` command if this is not the
case.
This compute subtracts out translational degrees-of-freedom due to This compute subtracts out translational degrees-of-freedom due to fixes
fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>` and :doc:`fix rigid <fix_rigid>`. This means the that constrain molecular motion, such as :doc:`fix shake <fix_shake>`
temperature of groups of atoms that include these constraints will be and :doc:`fix rigid <fix_rigid>`. This means the temperature of groups
computed correctly. If needed, the subtracted degrees-of-freedom can of atoms that include these constraints will be computed correctly. If
be altered using the *extra* option of the needed, the subtracted degrees-of-freedom can be altered using the
:doc:`compute_modify <compute_modify>` command. *extra/dof* option of the :doc:`compute_modify <compute_modify>`
command.
See the :doc:`Howto thermostat <Howto_thermostat>` page for a See the :doc:`Howto thermostat <Howto_thermostat>` page for a
discussion of different ways to compute temperature and perform discussion of different ways to compute temperature and perform

View File

@ -51,11 +51,10 @@ rotational).
This choice for degrees of freedom (DOF) assumes that all body This choice for degrees of freedom (DOF) assumes that all body
particles in your model will freely rotate, sampling all their particles in your model will freely rotate, sampling all their
rotational DOF. It is possible to use a combination of interaction rotational DOF. It is possible to use a combination of interaction
potentials and fixes that induce no torque or otherwise constrain some potentials and fixes that induce no torque or otherwise constrain
of all of your particles so that this is not the case. Then there are some of all of your particles so that this is not the case. Then
less DOF and you should use the there are less DOF and you should use the :doc:`compute_modify
:doc:`compute_modify extra <compute_modify>` command to adjust the DOF extra/dof <compute_modify>` command to adjust the DOF accordingly.
accordingly.
The translational kinetic energy is computed the same as is described The translational kinetic energy is computed the same as is described
by the :doc:`compute temp <compute_temp>` command. The rotational by the :doc:`compute temp <compute_temp>` command. The rotational
@ -72,15 +71,16 @@ used. The six components of the vector are ordered :math:`xx`, :math:`yy`,
:math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic/dof* option of
:doc:`compute_modify <compute_modify>` command if this is not the case. the :doc:`compute_modify <compute_modify>` command if this is not the
case.
This compute subtracts out translational degrees-of-freedom due to This compute subtracts out translational degrees-of-freedom due to
fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>` fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>`
and :doc:`fix rigid <fix_rigid>`. This means the and :doc:`fix rigid <fix_rigid>`. This means the
temperature of groups of atoms that include these constraints will be temperature of groups of atoms that include these constraints will be
computed correctly. If needed, the subtracted degrees-of-freedom can computed correctly. If needed, the subtracted degrees-of-freedom can
be altered using the *extra* option of the be altered using the *extra/dof* option of the
:doc:`compute_modify <compute_modify>` command. :doc:`compute_modify <compute_modify>` command.
See the :doc:`Howto thermostat <Howto_thermostat>` page for a See the :doc:`Howto thermostat <Howto_thermostat>` page for a

View File

@ -75,7 +75,8 @@ Restrictions
The number of degrees of freedom contributing to the temperature is The number of degrees of freedom contributing to the temperature is
assumed to be constant for the duration of the run unless the assumed to be constant for the duration of the run unless the
*fix_modify* command sets the option *dynamic yes*\ . :doc:`fix_modify command <fix_modify>` sets the option *dynamic/dof
yes*\ .
Related commands Related commands
"""""""""""""""" """"""""""""""""

View File

@ -49,14 +49,13 @@ each has three degrees of freedom (two translational, one rotational).
.. note:: .. note::
This choice for degrees of freedom (DOF) assumes that all This choice for degrees of freedom (DOF) assumes that all finite-size
finite-size spherical particles in your model will freely rotate, spherical particles in your model will freely rotate, sampling all
sampling all their rotational DOF. It is possible to use a their rotational DOF. It is possible to use a combination of
combination of interaction potentials and fixes that induce no torque interaction potentials and fixes that induce no torque or otherwise
or otherwise constrain some of all of your particles so that this is constrain some of all of your particles so that this is not the case.
not the case. Then there are less DOF and you should use the Then there are less DOF and you should use the :doc:`compute_modify
:doc:`compute_modify extra <compute_modify>` command to adjust the DOF extra/dof <compute_modify>` command to adjust the DOF accordingly.
accordingly.
The translational kinetic energy is computed the same as is described The translational kinetic energy is computed the same as is described
by the :doc:`compute temp <compute_temp>` command. The rotational by the :doc:`compute temp <compute_temp>` command. The rotational
@ -73,20 +72,22 @@ velocity.
A kinetic energy tensor, stored as a six-element vector, is also A kinetic energy tensor, stored as a six-element vector, is also
calculated by this compute. The formula for the components of the calculated by this compute. The formula for the components of the
tensor is the same as the above formulas, except that :math:`v^2` and tensor is the same as the above formulas, except that :math:`v^2` and
:math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x \omega_y` :math:`\omega^2` are replaced by :math:`v_x v_y` and :math:`\omega_x
for the :math:`xy` component. The six components of the vector are ordered \omega_y` for the :math:`xy` component. The six components of the
:math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`, :math:`xz`, :math:`yz`. vector are ordered :math:`xx`, :math:`yy`, :math:`zz`, :math:`xy`,
:math:`xz`, :math:`yz`.
The number of atoms contributing to the temperature is assumed to be The number of atoms contributing to the temperature is assumed to be
constant for the duration of the run; use the *dynamic* option of the constant for the duration of the run; use the *dynamic* option of the
:doc:`compute_modify <compute_modify>` command if this is not the case. :doc:`compute_modify <compute_modify>` command if this is not the case.
This compute subtracts out translational degrees-of-freedom due to This compute subtracts out translational degrees-of-freedom due to fixes
fixes that constrain molecular motion, such as :doc:`fix shake <fix_shake>` and :doc:`fix rigid <fix_rigid>`. This means the that constrain molecular motion, such as :doc:`fix shake <fix_shake>`
temperature of groups of atoms that include these constraints will be and :doc:`fix rigid <fix_rigid>`. This means the temperature of groups
computed correctly. If needed, the subtracted degrees of freedom can of atoms that include these constraints will be computed correctly. If
be altered using the *extra* option of the needed, the subtracted degrees of freedom can be altered using the
:doc:`compute_modify <compute_modify>` command. *extra/dof* option of the :doc:`compute_modify <compute_modify>`
command.
See the :doc:`Howto thermostat <Howto_thermostat>` page for a See the :doc:`Howto thermostat <Howto_thermostat>` page for a
discussion of different ways to compute temperature and perform discussion of different ways to compute temperature and perform

View File

@ -171,7 +171,7 @@ Langevin thermostat:
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin 1.0 1.0 1.0 123 fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -95,10 +95,9 @@ default group "all" and the group specified in the fix deposit command
(which can also be "all"). (which can also be "all").
If you are computing temperature values which include inserted If you are computing temperature values which include inserted
particles, you will want to use the particles, you will want to use the :doc:`compute_modify dynamic/dof yes
:doc:`compute_modify <compute_modify>` dynamic option, which ensures the <compute_modify>` option, which ensures the current number of atoms is
current number of atoms is used as a normalizing factor each time the used as a normalizing factor each time the temperature is computed.
temperature is computed.
Care must be taken that inserted particles are not too near existing Care must be taken that inserted particles are not too near existing
atoms, using the options described below. When inserting particles atoms, using the options described below. When inserting particles
@ -160,15 +159,17 @@ command which also appears in your input script.
.. note:: .. note::
If you wish the new rigid molecules (and other rigid molecules) If you wish the new rigid molecules (and other rigid molecules) to be
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
or :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
"fix_modify dynamic/dof yes" command for the rigid fix. This is to :doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
inform that fix that the molecule count will vary dynamically. fix. This is to inform that fix that the molecule count will vary
dynamically.
If you wish to insert molecules via the *mol* keyword, that will have If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword, their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake <fix_shake>` command which also appears in your input script. specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Each timestep a particle is inserted, the coordinates for its atoms Each timestep a particle is inserted, the coordinates for its atoms
are chosen as follows. For insertion of individual atoms, the are chosen as follows. For insertion of individual atoms, the
@ -268,8 +269,8 @@ units of distance or velocity.
If you are monitoring the temperature of a system where the atom If you are monitoring the temperature of a system where the atom
count is changing due to adding particles, you typically should use count is changing due to adding particles, you typically should use
the :doc:`compute_modify dynamic yes <compute_modify>` command for the the :doc:`compute_modify dynamic/dof yes <compute_modify>` command
temperature compute you are using. for the temperature compute you are using.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""

View File

@ -69,14 +69,15 @@ incur overhead due to the cost of building neighbor lists.
If you are monitoring the temperature of a system where the atom If you are monitoring the temperature of a system where the atom
count is changing due to evaporation, you typically should use the count is changing due to evaporation, you typically should use the
:doc:`compute_modify dynamic yes <compute_modify>` command for the :doc:`compute_modify dynamic/dof yes <compute_modify>` command for the
temperature compute you are using. temperature compute you are using.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options No information about this fix is written to :doc:`binary restart files
are relevant to this fix. <restart>`. None of the :doc:`fix_modify <fix_modify>` options are
relevant to this fix.
This fix computes a global scalar, which can be accessed by various This fix computes a global scalar, which can be accessed by various
:doc:`output commands <Howto_output>`. The scalar is the cumulative :doc:`output commands <Howto_output>`. The scalar is the cumulative
@ -84,7 +85,8 @@ number of deleted atoms. The scalar value calculated by this fix is
"intensive". "intensive".
No parameter of this fix can be used with the *start/stop* keywords of No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`. the :doc:`run <run>` command. This fix is not invoked during
:doc:`energy minimization <minimize>`.
Restrictions Restrictions
"""""""""""" """"""""""""

View File

@ -146,8 +146,8 @@ center-of-mass is inside the specified region.
If used with :doc:`fix nvt <fix_nh>`, the temperature of the imaginary If used with :doc:`fix nvt <fix_nh>`, the temperature of the imaginary
reservoir, T, should be set to be equivalent to the target temperature reservoir, T, should be set to be equivalent to the target temperature
used in fix nvt. Otherwise, the imaginary reservoir will not be in used in fix nvt. Otherwise, the imaginary reservoir will not be in
thermal equilibrium with the simulation cell. Also, it is important thermal equilibrium with the simulation cell. Also, it is important that
that the temperature used by fix nvt be dynamic/dof, which can be the temperature used by *fix nvt* is dynamically updated, which can be
achieved as follows: achieved as follows:
.. code-block:: LAMMPS .. code-block:: LAMMPS
@ -197,15 +197,17 @@ which also appears in your input script.
.. note:: .. note::
If you wish the new rigid molecules (and other rigid molecules) If you wish the new rigid molecules (and other rigid molecules) to be
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
or :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
"fix_modify dynamic/dof yes" command for the rigid fix. This is to :doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
inform that fix that the molecule count will vary dynamically. fix. This is to inform that fix that the molecule count will vary
dynamically.
If you wish to insert molecules via the *mol* keyword, that will have If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword, their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake <fix_shake>` command which also appears in your input script. specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Optionally, users may specify the relative amounts of different MC Optionally, users may specify the relative amounts of different MC
moves using the *mcmoves* keyword. The values *Patomtrans*, moves using the *mcmoves* keyword. The values *Patomtrans*,
@ -335,31 +337,30 @@ temperature.
Some fixes have an associated potential energy. Examples of such fixes Some fixes have an associated potential energy. Examples of such fixes
include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`, include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`,
:doc:`addforce <fix_addforce>`, :doc:`langevin <fix_langevin>`, :doc:`addforce <fix_addforce>`, :doc:`langevin <fix_langevin>`,
:doc:`restrain <fix_restrain>`, :doc:`restrain <fix_restrain>`, :doc:`temp/berendsen
:doc:`temp/berendsen <fix_temp_berendsen>`, <fix_temp_berendsen>`, :doc:`temp/rescale <fix_temp_rescale>`, and
:doc:`temp/rescale <fix_temp_rescale>`, and :doc:`wall fixes <fix_wall>`. :doc:`wall fixes <fix_wall>`. For that energy to be included in the
For that energy to be included in the total potential energy of the total potential energy of the system (the quantity used when performing
system (the quantity used when performing GCMC exchange and MC moves), GCMC exchange and MC moves), you MUST enable the :doc:`fix_modify
you MUST enable <fix_modify>` *energy* option for that fix. The doc pages for
the :doc:`fix_modify <fix_modify>` *energy* option for that fix. The individual :doc:`fix <fix>` commands specify if this should be done.
doc pages for individual :doc:`fix <fix>` commands specify if this
should be done.
Use the *charge* option to insert atoms with a user-specified point Use the *charge* option to insert atoms with a user-specified point
charge. Note that doing so will cause the system to become charge. Note that doing so will cause the system to become non-neutral.
non-neutral. LAMMPS issues a warning when using long-range LAMMPS issues a warning when using long-range electrostatics (kspace)
electrostatics (kspace) with non-neutral systems. See the :doc:`compute group/group <compute_group_group>` documentation for more details with non-neutral systems. See the :doc:`compute group/group
about simulating non-neutral systems with kspace on. <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, Use of this fix typically will cause the number of atoms to fluctuate,
therefore, you will want to use the therefore, you will want to use the :doc:`compute_modify dynamic/dof
:doc:`compute_modify dynamic/dof <compute_modify>` command to ensure that the <compute_modify>` command to ensure that the current number of atoms is
current number of atoms is used as a normalizing factor each time used as a normalizing factor each time temperature is computed. A simple
temperature is computed. A simple example of this is: example of this is:
.. code-block:: LAMMPS .. code-block:: LAMMPS
compute_modify thermo_temp dynamic yes compute_modify thermo_temp dynamic/dof yes
A more complicated example is listed earlier on this page A more complicated example is listed earlier on this page
in the context of NVT dynamics. in the context of NVT dynamics.
@ -369,31 +370,29 @@ in the context of NVT dynamics.
If the density of the cell is initially very small or zero, and If the density of the cell is initially very small or zero, and
increases to a much larger density after a period of equilibration, increases to a much larger density after a period of equilibration,
then certain quantities that are only calculated once at the start then certain quantities that are only calculated once at the start
(kspace parameters) may no longer be accurate. The (kspace parameters) may no longer be accurate. The solution is to
solution is to start a new simulation after the equilibrium density start a new simulation after the equilibrium density has been
has been reached. reached.
With some pair_styles, such as :doc:`Buckingham <pair_buck>`, With some pair_styles, such as :doc:`Buckingham <pair_buck>`,
:doc:`Born-Mayer-Huggins <pair_born>` and :doc:`ReaxFF <pair_reaxff>`, two :doc:`Born-Mayer-Huggins <pair_born>` and :doc:`ReaxFF <pair_reaxff>`,
atoms placed close to each other may have an arbitrary large, negative two atoms placed close to each other may have an arbitrary large,
potential energy due to the functional form of the potential. While negative potential energy due to the functional form of the potential.
these unphysical configurations are inaccessible to typical dynamical While these unphysical configurations are inaccessible to typical
trajectories, they can be generated by Monte Carlo moves. The dynamical trajectories, they can be generated by Monte Carlo moves. The
*overlap_cutoff* keyword suppresses these moves by effectively *overlap_cutoff* keyword suppresses these moves by effectively assigning
assigning an infinite positive energy to all new configurations that an infinite positive energy to all new configurations that place any
place any pair of atoms closer than the specified overlap cutoff pair of atoms closer than the specified overlap cutoff distance.
distance.
The *max* and *min* keywords allow for the restriction of the number The *max* and *min* keywords allow for the restriction of the number of
of atoms in the simulation. They automatically reject all insertion atoms in the simulation. They automatically reject all insertion or
or deletion moves that would take the system beyond the set boundaries. deletion moves that would take the system beyond the set boundaries.
Should the system already be beyond the boundary, only moves that bring Should the system already be beyond the boundary, only moves that bring
the system closer to the bounds may be accepted. the system closer to the bounds may be accepted.
The *group* keyword adds all inserted atoms to the The *group* keyword adds all inserted atoms to the :doc:`group <group>`
:doc:`group <group>` of the group-ID value. The *grouptype* keyword of the group-ID value. The *grouptype* keyword adds all inserted atoms
adds all inserted atoms of the specified type to the of the specified type to the :doc:`group <group>` of the group-ID value.
:doc:`group <group>` of the group-ID value.
Restart, fix_modify, output, run start/stop, minimize info Restart, fix_modify, output, run start/stop, minimize info
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
@ -446,22 +445,21 @@ called. Reneighboring is required.
Only usable for 3D simulations. Only usable for 3D simulations.
Can be run in parallel, but aspects of the GCMC part will not scale This fix can be run in parallel, but aspects of the GCMC part will not
well in parallel. Currently, molecule translations and rotations scale well in parallel. Currently, molecule translations and rotations
are not supported with more than one MPI process. are not supported with more than one MPI process. It is still possible
It is still possible to do parallel molecule exchange without to do parallel molecule exchange without translation and rotation moves
translation and rotation moves by setting MC moves to zero by setting MC moves to zero and/or by using the *mcmoves* keyword with
and/or by using the *mcmoves* keyword with *Pmoltrans* = *Pmolrotate* = 0 . *Pmoltrans* = *Pmolrotate* = 0 .
When using fix gcmc in combination with fix shake or fix rigid, When using fix gcmc in combination with fix shake or fix rigid, only
only GCMC exchange moves are supported, so the argument GCMC exchange moves are supported, so the argument *M* must be zero.
*M* must be zero.
When using fix gcmc in combination with fix rigid, deletion When using fix gcmc in combination with fix rigid, deletion of the last
of the last remaining molecule is not allowed for technical reasons, remaining molecule is not allowed for technical reasons, and so the
and so the molecule count will never drop below 1, regardless of the molecule count will never drop below 1, regardless of the specified
specified chemical potential. chemical potential.
Note that very lengthy simulations involving insertions/deletions of Note that very lengthy simulations involving insertions/deletions of
billions of gas molecules may run out of atom or molecule IDs and billions of gas molecules may run out of atom or molecule IDs and

View File

@ -131,24 +131,24 @@ with their specified level at the beginning of a r-RESPA run.
The *dynamic/dof* keyword determines whether the number of atoms N in The *dynamic/dof* keyword determines whether the number of atoms N in
the fix group and their associated degrees of freedom are re-computed the fix group and their associated degrees of freedom are re-computed
each time a temperature is computed. Only fix styles that calculate each time a temperature is computed. Only fix styles that calculate
their own internal temperature use this option. Currently this is their own internal temperature use this option. Currently this is only
only the :doc:`fix rigid/nvt/small <fix_rigid>` and :doc:`fix the :doc:`fix rigid/nvt/small <fix_rigid>` and :doc:`fix rigid/npt/small
rigid/npt/small <fix_rigid>` commands for the purpose of <fix_rigid>` commands for the purpose of thermostatting rigid body
thermostatting rigid body translation and rotation. By default, N and translation and rotation. By default, N and their DOF are assumed to be
their DOF are assumed to be constant. If you are adding atoms or constant. If you are adding atoms or molecules to the system (see the
molecules to the system (see the :doc:`fix pour <fix_pour>`, :doc:`fix :doc:`fix pour <fix_pour>`, :doc:`fix deposit <fix_deposit>`, and
deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or :doc:`fix gcmc <fix_gcmc>` commands) or expect atoms or molecules to be
expect atoms or molecules to be lost (e.g. due to exiting the lost (e.g. due to exiting the simulation box or via :doc:`fix evaporate
simulation box or via :doc:`fix evaporate <fix_evaporate>`), then this <fix_evaporate>`), then this option should be used to ensure the
option should be used to ensure the temperature is correctly temperature is correctly normalized.
normalized.
.. note:: .. note::
Other thermostatting fixes, such as :doc:`fix nvt <fix_nh>`, do Other thermostatting fixes, such as :doc:`fix nvt <fix_nh>`, do not
not use the *dynamic/dof* keyword because they use a temperature use the *dynamic/dof* keyword because they use a temperature compute
compute to calculate temperature. See the :doc:`compute_modify dynamic/dof <compute_modify>` command for a similar way to ensure to calculate temperature. See the :doc:`compute_modify dynamic/dof
correct temperature normalization for those thermostats. <compute_modify>` command for a similar way to ensure correct
temperature normalization for those thermostats.
The *bodyforces* keyword determines whether the forces and torques The *bodyforces* keyword determines whether the forces and torques
acting on rigid bodies are computed *early* at the post-force stage of acting on rigid bodies are computed *early* at the post-force stage of
@ -156,7 +156,8 @@ each timestep (right after per-atom forces have been computed and
communicated among processors), or *late* at the final-integrate stage communicated among processors), or *late* at the final-integrate stage
of each timestep (after any other fixes have finished their post-force of each timestep (after any other fixes have finished their post-force
tasks). Only the rigid-body integration fixes use this option, which tasks). Only the rigid-body integration fixes use this option, which
includes :doc:`fix rigid <fix_rigid>` and :doc:`fix rigid/small <fix_rigid>`, and their variants, and also :doc:`fix poems <fix_poems>`. includes :doc:`fix rigid <fix_rigid>` and :doc:`fix rigid/small
<fix_rigid>`, and their variants, and also :doc:`fix poems <fix_poems>`.
The default is *late*\ . If there are other fixes that add forces to The default is *late*\ . If there are other fixes that add forces to
individual atoms, then the rigid-body constraints will include these individual atoms, then the rigid-body constraints will include these

View File

@ -123,15 +123,17 @@ command which also appears in your input script.
.. note:: .. note::
If you wish the new rigid molecules (and other rigid molecules) If you wish the new rigid molecules (and other rigid molecules) to be
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
or :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the :doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
"fix_modify dynamic/dof yes" command for the rigid fix. This is to :doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
inform that fix that the molecule count will vary dynamically. fix. This is to inform that fix that the molecule count will vary
dynamically.
If you wish to insert molecules via the *mol* keyword, that will have If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword, their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake <fix_shake>` command which also appears in your input script. specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Each timestep particles are inserted, they are placed randomly inside Each timestep particles are inserted, they are placed randomly inside
the insertion volume so as to mimic a stream of poured particles. If the insertion volume so as to mimic a stream of poured particles. If
@ -148,10 +150,10 @@ many timesteps until the desired # of particles has been inserted.
.. note:: .. note::
If you are monitoring the temperature of a system where the If you are monitoring the temperature of a system where the particle
particle count is changing due to adding particles, you typically count is changing due to adding particles, you typically should use
should use the :doc:`compute_modify dynamic yes <compute_modify>` the :doc:`compute_modify dynamic/dof yes <compute_modify>` command
command for the temperature compute you are using. for the temperature compute you are using.
---------- ----------

View File

@ -31,7 +31,7 @@ neigh_modify delay 0 every 200 check no
# neigh_modify delay 0 every $n # neigh_modify delay 0 every $n
reset_timestep 0 reset_timestep 0
thermo $s thermo $s
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
thermo_style custom step temp pxx pyy pzz etotal lx ly lz thermo_style custom step temp pxx pyy pzz etotal lx ly lz
timestep ${dt} timestep ${dt}
min_modify line quadratic min_modify line quadratic

View File

@ -27,7 +27,7 @@ neighbor 1.0 bin
neigh_modify delay 0 every 2000 check no neigh_modify delay 0 every 2000 check no
reset_timestep 0 reset_timestep 0
thermo $m thermo $m
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
variable nrepeat equal $n/$m variable nrepeat equal $n/$m
variable sxx equal -pxx variable sxx equal -pxx
variable intenergy equal etotal variable intenergy equal etotal

View File

@ -62,7 +62,7 @@ fix_modify AtC mesh create_nodeset rbc 6.2 6.3 -INF INF -INF INF
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
# equilibrate MD field # equilibrate MD field
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
#fix_modify AtC output bar1d_fluids_eqFE 200 text binary #fix_modify AtC output bar1d_fluids_eqFE 200 text binary

View File

@ -37,7 +37,7 @@ region FLUID block ${xlo} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
region R block ${xmid} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box region R block ${xmid} ${xhi} ${ylo} ${yhi} ${zlo} ${zhi} units box
group SOLID type 1 group SOLID type 1
variable xdof equal 3*count(SOLID) variable xdof equal 3*count(SOLID)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
#set group SOLID charge 0 #set group SOLID charge 0
group NEUTRAL type 2 group NEUTRAL type 2
group FLUID type 2 3 4 group FLUID type 2 3 4

View File

@ -37,7 +37,7 @@ neigh_modify every 10 delay 0 check no
# equilibrate MD field # equilibrate MD field
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe temp thermo_style custom step cpu etotal pe temp
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
#fix NVT internal nvt temp 100 100 10 drag 0.2 #fix NVT internal nvt temp 100 100 10 drag 0.2

View File

@ -50,7 +50,7 @@ neighbor 1.0 bin
neigh_modify delay 1000000 neigh_modify delay 1000000
neigh_modify exclude group abovecrack belowcrack neigh_modify exclude group abovecrack belowcrack
thermo 10 thermo 10
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
region FORCECHECK block -6 0 6 10 0 3 region FORCECHECK block -6 0 6 10 0 3
group FORCECHECK region FORCECHECK group FORCECHECK region FORCECHECK
compute fxsum FORCECHECK reduce sum fx compute fxsum FORCECHECK reduce sum fx

View File

@ -28,7 +28,7 @@ fix_modify PP fields add mass_density energy stress temperature kinetic_temper
fix_modify PP fields add velocity thermal_energy kinetic_energy fix_modify PP fields add velocity thermal_energy kinetic_energy
fix_modify PP output nvtPP 100 text fix_modify PP output nvtPP 100 text
thermo 100 thermo 100
compute_modify thermo_temp extra 0 compute_modify thermo_temp extra/dof 0
thermo_style custom step temp etotal ke pe press vol thermo_style custom step temp etotal ke pe press vol
timestep 4.0 timestep 4.0
reset_timestep 0 reset_timestep 0

View File

@ -48,7 +48,7 @@ fix_modify AtC control thermal rescale 10
#fix_modify AtC output bar1dfe 100 #fix_modify AtC output bar1dfe 100
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100

View File

@ -49,7 +49,7 @@ fix_modify AtC internal_quadrature off
#fix_modify AtC time_integration frac_step #fix_modify AtC time_integration frac_step
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100

View File

@ -49,7 +49,7 @@ fix_modify AtC fix temperature all 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
# equilibrate MD field # equilibrate MD field

View File

@ -47,7 +47,7 @@ fix_modify AtC fix temperature all 20.
# turn on thermostat # turn on thermostat
fix_modify AtC control thermal rescale 10 fix_modify AtC control thermal rescale 10
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
# equilibrate MD field # equilibrate MD field

View File

@ -54,7 +54,7 @@ fix_modify AtC control thermal rescale 10
#fix_modify AtC output bar1dfe 100 text #fix_modify AtC output bar1dfe 100 text
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100

View File

@ -66,7 +66,7 @@ fix_modify AtC time_integration fractional_step
fix_modify AtC temperature_definition total fix_modify AtC temperature_definition total
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100

View File

@ -49,7 +49,7 @@ fix_modify AtC control thermal rescale 10
#fix_modify AtC output bar1dfe_flux_init 100 #fix_modify AtC output bar1dfe_flux_init 100
timestep 5 timestep 5
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
thermo 100 thermo 100

View File

@ -50,7 +50,7 @@ fix_modify AtC control thermal rescale 10
# output # output
thermo 100 thermo 100
variable xdof equal 3*count(ghost) variable xdof equal 3*count(ghost)
compute_modify thermo_temp extra ${xdof} compute_modify thermo_temp extra/dof ${xdof}
thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2] thermo_style custom step cpu etotal pe f_AtC[1] temp f_AtC[2]
thermo_modify format 1 %6i format 2 %7.2g thermo_modify format 1 %6i format 2 %7.2g
# equilibrate MD field # equilibrate MD field

View File

@ -32,7 +32,7 @@ thermo 100
log uniform_heating.log log uniform_heating.log
# make thermo output the correct temperature by removing ghost dof # make thermo output the correct temperature by removing ghost dof
# variable xdof equal 3*count(ghost) # variable xdof equal 3*count(ghost)
# compute_modify thermo_temp extra ${xdof} # compute_modify thermo_temp extra/dof ${xdof}
# equilibrate MD field # equilibrate MD field
timestep 5 timestep 5
run 400 run 400

View File

@ -25,7 +25,7 @@ pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve fix fnve all nve
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin 1.0 1.0 1.0 123 fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -33,7 +33,7 @@ pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve fix fnve all nve
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123 fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -17,7 +17,7 @@ dielectric 1.0
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ########### ######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve fix fnve all nve
compute dtemp all temp compute dtemp all temp
compute_modify dtemp dynamic yes compute_modify dtemp dynamic/dof yes
fix fT all langevin 1.0 1.0 1.0 123 fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp fix_modify fT temp dtemp

View File

@ -61,7 +61,7 @@ variable n1av equal f_ave[4]
variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+${nugget}) variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+${nugget})
variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+${nugget}) variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+${nugget})
variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+${nugget}) variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+${nugget})
compute_modify thermo_temp dynamic yes compute_modify thermo_temp dynamic/dof yes
thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_rhoav v_pav v_muexav v_n1av thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_rhoav v_pav v_muexav v_n1av
thermo 1000 thermo 1000