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
* 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::
*extra/dof* value = N
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*
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
""""""""
@ -37,19 +35,18 @@ Description
Modify one or more parameters of a previously defined compute. Not
all compute styles support all parameters.
The *extra/dof* or *extra* keyword refers to how many degrees of
freedom are subtracted (typically from :math:`3N`) as a normalizing
factor in a temperature computation. Only computes that compute a
temperature use this option. The default is 2 or 3 for :doc:`2d or 3d
systems <dimension>` which is a correction factor for an ensemble of
velocities with zero total linear momentum. For compute temp/partial,
if one or more velocity components are excluded, the value used for
*extra* is scaled accordingly. You can use a negative number for the
*extra* parameter if you need to add degrees-of-freedom. See the
:doc:`compute temp/asphere <compute_temp_asphere>` command for an
example.
The *extra/dof* keyword refers to how many degrees of freedom are
subtracted (typically from :math:`3N`) as a normalizing factor in a
temperature computation. Only computes that compute a temperature use
this option. The default is 2 or 3 for :doc:`2d or 3d systems
<dimension>` which is a correction factor for an ensemble of velocities
with zero total linear momentum. For compute temp/partial, if one or
more velocity components are excluded, the value used for *extra/dof* is
scaled accordingly. You can use a negative number for the *extra/dof*
parameter if you need to add degrees-of-freedom. See the :doc:`compute
temp/asphere <compute_temp_asphere>` command for an 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 freedom (DOF) are re-computed each time a temperature is computed.
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
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
""""""""""""
none
@ -79,5 +70,5 @@ Related commands
Default
"""""""
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems and
dynamic/dof = *no*.
The option defaults are extra/dof = 2 or 3 for 2d or 3d systems,
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
of atoms changes (e.g., when using :doc:`fix atom/swap <fix_atom_swap>`),
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
""""""""""""""""

View File

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

View File

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

View File

@ -171,7 +171,7 @@ Langevin thermostat:
.. code-block:: LAMMPS
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_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").
If you are computing temperature values which include inserted
particles, you will want to use the
:doc:`compute_modify <compute_modify>` dynamic option, which ensures the
current number of atoms is used as a normalizing factor each time the
temperature is computed.
particles, you will want to use the :doc:`compute_modify dynamic/dof yes
<compute_modify>` option, which ensures the current number of atoms is
used as a normalizing factor each time the temperature is computed.
Care must be taken that inserted particles are not too near existing
atoms, using the options described below. When inserting particles
@ -160,15 +159,17 @@ command which also appears in your input script.
.. note::
If you wish the new rigid molecules (and other rigid molecules)
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>`
or :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
inform that fix that the molecule count will vary dynamically.
If you wish the new rigid molecules (and other rigid molecules) to be
thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
:doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
:doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
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
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
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
count is changing due to adding particles, you typically should use
the :doc:`compute_modify dynamic yes <compute_modify>` command for the
temperature compute you are using.
the :doc:`compute_modify dynamic/dof yes <compute_modify>` command
for the temperature compute you are using.
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
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.
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
are relevant to this fix.
No information about this fix is written to :doc:`binary restart files
<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
: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".
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
""""""""""""

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
reservoir, T, should be set to be equivalent to the target temperature
used in fix nvt. Otherwise, the imaginary reservoir will not be in
thermal equilibrium with the simulation cell. Also, it is important
that the temperature used by fix nvt be dynamic/dof, which can be
thermal equilibrium with the simulation cell. Also, it is important that
the temperature used by *fix nvt* is dynamically updated, which can be
achieved as follows:
.. code-block:: LAMMPS
@ -197,15 +197,17 @@ which also appears in your input script.
.. note::
If you wish the new rigid molecules (and other rigid molecules)
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>`
or :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
inform that fix that the molecule count will vary dynamically.
If you wish the new rigid molecules (and other rigid molecules) to be
thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
:doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
:doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
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
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
moves using the *mcmoves* keyword. The values *Patomtrans*,
@ -335,31 +337,30 @@ temperature.
Some fixes have an associated potential energy. Examples of such fixes
include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`,
:doc:`addforce <fix_addforce>`, :doc:`langevin <fix_langevin>`,
:doc:`restrain <fix_restrain>`,
:doc:`temp/berendsen <fix_temp_berendsen>`,
:doc:`temp/rescale <fix_temp_rescale>`, and :doc:`wall fixes <fix_wall>`.
For that energy to be included in the total potential energy of the
system (the quantity used when performing GCMC exchange and MC moves),
you MUST enable
the :doc:`fix_modify <fix_modify>` *energy* option for that fix. The
doc pages for individual :doc:`fix <fix>` commands specify if this
should be done.
:doc:`restrain <fix_restrain>`, :doc:`temp/berendsen
<fix_temp_berendsen>`, :doc:`temp/rescale <fix_temp_rescale>`, and
:doc:`wall fixes <fix_wall>`. For that energy to be included in the
total potential energy of the system (the quantity used when performing
GCMC exchange and MC moves), you MUST enable the :doc:`fix_modify
<fix_modify>` *energy* option for that fix. The 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
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 :doc:`compute group/group <compute_group_group>` documentation for more details
about simulating non-neutral systems with kspace on.
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 :doc:`compute group/group
<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
:doc:`compute_modify dynamic/dof <compute_modify>` command to ensure that the
current number of atoms is used as a normalizing factor each time
temperature is computed. A simple example of this is:
therefore, you will want to use the :doc:`compute_modify dynamic/dof
<compute_modify>` command to ensure that the current number of atoms is
used as a normalizing factor each time temperature is computed. A simple
example of this is:
.. 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
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
increases to a much larger density after a period of equilibration,
then certain quantities that are only calculated once at the start
(kspace parameters) may no longer be accurate. The
solution is to start a new simulation after the equilibrium density
has been reached.
(kspace parameters) may no longer be accurate. The solution is to
start a new simulation after the equilibrium density has been
reached.
With some pair_styles, such as :doc:`Buckingham <pair_buck>`,
:doc:`Born-Mayer-Huggins <pair_born>` and :doc:`ReaxFF <pair_reaxff>`, two
atoms placed close to each other may have an arbitrary large, negative
potential energy due to the functional form of the potential. While
these unphysical configurations are inaccessible to typical dynamical
trajectories, they can be generated by Monte Carlo moves. The
*overlap_cutoff* keyword suppresses these moves by effectively
assigning an infinite positive energy to all new configurations that
place any pair of atoms closer than the specified overlap cutoff
distance.
:doc:`Born-Mayer-Huggins <pair_born>` and :doc:`ReaxFF <pair_reaxff>`,
two atoms placed close to each other may have an arbitrary large,
negative potential energy due to the functional form of the potential.
While these unphysical configurations are inaccessible to typical
dynamical trajectories, they can be generated by Monte Carlo moves. The
*overlap_cutoff* keyword suppresses these moves by effectively assigning
an infinite positive energy to all new configurations that place any
pair of atoms closer than the specified overlap cutoff distance.
The *max* and *min* keywords allow for the restriction of the number
of atoms in the simulation. They automatically reject all insertion
or deletion moves that would take the system beyond the set boundaries.
The *max* and *min* keywords allow for the restriction of the number of
atoms in the simulation. They automatically reject all insertion or
deletion moves that would take the system beyond the set boundaries.
Should the system already be beyond the boundary, only moves that bring
the system closer to the bounds may be accepted.
The *group* keyword adds all inserted atoms to the
:doc:`group <group>` of the group-ID value. The *grouptype* keyword
adds all inserted atoms of the specified type to the
:doc:`group <group>` of the group-ID value.
The *group* keyword adds all inserted atoms to the :doc:`group <group>`
of the group-ID value. The *grouptype* keyword adds all inserted atoms
of the specified type to the :doc:`group <group>` of the group-ID value.
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
@ -446,22 +445,21 @@ called. Reneighboring is required.
Only usable for 3D simulations.
Can be run in parallel, but aspects of the GCMC part will not scale
well in parallel. Currently, molecule translations and rotations
are not supported with more than one MPI process.
It is still possible to do parallel molecule exchange without
translation and rotation moves by setting MC moves to zero
and/or by using the *mcmoves* keyword with *Pmoltrans* = *Pmolrotate* = 0 .
This fix can be run in parallel, but aspects of the GCMC part will not
scale well in parallel. Currently, molecule translations and rotations
are not supported with more than one MPI process. It is still possible
to do parallel molecule exchange without translation and rotation moves
by setting MC moves to zero and/or by using the *mcmoves* keyword with
*Pmoltrans* = *Pmolrotate* = 0 .
When using fix gcmc in combination with fix shake or fix rigid,
only GCMC exchange moves are supported, so the argument
*M* must be zero.
When using fix gcmc in combination with fix shake or fix rigid, only
GCMC exchange moves are supported, so the argument *M* must be zero.
When using fix gcmc in combination with fix rigid, deletion
of the last remaining molecule is not allowed for technical reasons,
and so the molecule count will never drop below 1, regardless of the
specified chemical potential.
When using fix gcmc in combination with fix rigid, deletion of the last
remaining molecule is not allowed for technical reasons, and so the
molecule count will never drop below 1, regardless of the specified
chemical potential.
Note that very lengthy simulations involving insertions/deletions of
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 fix group and their associated degrees of freedom are re-computed
each time a temperature is computed. Only fix styles that calculate
their own internal temperature use this option. Currently this is
only the :doc:`fix rigid/nvt/small <fix_rigid>` and :doc:`fix
rigid/npt/small <fix_rigid>` commands for the purpose of
thermostatting rigid body translation and rotation. By default, N and
their DOF are assumed to be constant. If you are adding atoms or
molecules to the system (see the :doc:`fix pour <fix_pour>`, :doc:`fix
deposit <fix_deposit>`, and :doc:`fix gcmc <fix_gcmc>` commands) or
expect atoms or molecules to be lost (e.g. due to exiting the
simulation box or via :doc:`fix evaporate <fix_evaporate>`), then this
option should be used to ensure the temperature is correctly
normalized.
their own internal temperature use this option. Currently this is only
the :doc:`fix rigid/nvt/small <fix_rigid>` and :doc:`fix rigid/npt/small
<fix_rigid>` commands for the purpose of thermostatting rigid body
translation and rotation. By default, N and their DOF are assumed to be
constant. If you are adding atoms or molecules to the system (see the
:doc:`fix pour <fix_pour>`, :doc:`fix deposit <fix_deposit>`, and
:doc:`fix gcmc <fix_gcmc>` commands) or expect atoms or molecules to be
lost (e.g. due to exiting the simulation box or via :doc:`fix evaporate
<fix_evaporate>`), then this option should be used to ensure the
temperature is correctly normalized.
.. note::
Other thermostatting fixes, such as :doc:`fix nvt <fix_nh>`, do
not use the *dynamic/dof* keyword because they use a temperature
compute to calculate temperature. See the :doc:`compute_modify dynamic/dof <compute_modify>` command for a similar way to ensure
correct temperature normalization for those thermostats.
Other thermostatting fixes, such as :doc:`fix nvt <fix_nh>`, do not
use the *dynamic/dof* keyword because they use a temperature compute
to calculate temperature. See the :doc:`compute_modify dynamic/dof
<compute_modify>` command for a similar way to ensure correct
temperature normalization for those thermostats.
The *bodyforces* keyword determines whether the forces and torques
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
of each timestep (after any other fixes have finished their post-force
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
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::
If you wish the new rigid molecules (and other rigid molecules)
to be thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>`
or :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
inform that fix that the molecule count will vary dynamically.
If you wish the new rigid molecules (and other rigid molecules) to be
thermostatted correctly via :doc:`fix rigid/small/nvt <fix_rigid>` or
:doc:`fix rigid/small/npt <fix_rigid>`, then you need to use the
:doc:`fix_modify dynamic/dof yes <fix_modify>` command for the rigid
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
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
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::
If you are monitoring the temperature of a system where the
particle count is changing due to adding particles, you typically
should use the :doc:`compute_modify dynamic yes <compute_modify>`
command for the temperature compute you are using.
If you are monitoring the temperature of a system where the particle
count is changing due to adding particles, you typically should use
the :doc:`compute_modify dynamic/dof yes <compute_modify>` command
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
reset_timestep 0
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
timestep ${dt}
min_modify line quadratic

View File

@ -27,7 +27,7 @@ neighbor 1.0 bin
neigh_modify delay 0 every 2000 check no
reset_timestep 0
thermo $m
compute_modify thermo_temp extra 0
compute_modify thermo_temp extra/dof 0
variable nrepeat equal $n/$m
variable sxx equal -pxx
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
# equilibrate MD field
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_modify format 1 %6i format 2 %7.2g
#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
group SOLID type 1
variable xdof equal 3*count(SOLID)
compute_modify thermo_temp extra ${xdof}
compute_modify thermo_temp extra/dof ${xdof}
#set group SOLID charge 0
group NEUTRAL type 2
group FLUID type 2 3 4

View File

@ -37,7 +37,7 @@ neigh_modify every 10 delay 0 check no
# equilibrate MD field
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_modify format 1 %6i format 2 %7.2g
#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 exclude group abovecrack belowcrack
thermo 10
compute_modify thermo_temp extra 0
compute_modify thermo_temp extra/dof 0
region FORCECHECK block -6 0 6 10 0 3
group FORCECHECK region FORCECHECK
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 output nvtPP 100 text
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
timestep 4.0
reset_timestep 0

View File

@ -48,7 +48,7 @@ fix_modify AtC control thermal rescale 10
#fix_modify AtC output bar1dfe 100
timestep 5
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_modify format 1 %6i format 2 %7.2g
thermo 100

View File

@ -49,7 +49,7 @@ fix_modify AtC internal_quadrature off
#fix_modify AtC time_integration frac_step
timestep 5
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_modify format 1 %6i format 2 %7.2g
thermo 100

View File

@ -49,7 +49,7 @@ fix_modify AtC fix temperature all 20.
# turn on thermostat
fix_modify AtC control thermal rescale 10
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_modify format 1 %6i format 2 %7.2g
# equilibrate MD field

View File

@ -47,7 +47,7 @@ fix_modify AtC fix temperature all 20.
# turn on thermostat
fix_modify AtC control thermal rescale 10
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_modify format 1 %6i format 2 %7.2g
# equilibrate MD field

View File

@ -54,7 +54,7 @@ fix_modify AtC control thermal rescale 10
#fix_modify AtC output bar1dfe 100 text
timestep 5
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_modify format 1 %6i format 2 %7.2g
thermo 100

View File

@ -66,7 +66,7 @@ fix_modify AtC time_integration fractional_step
fix_modify AtC temperature_definition total
timestep 5
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_modify format 1 %6i format 2 %7.2g
thermo 100

View File

@ -49,7 +49,7 @@ fix_modify AtC control thermal rescale 10
#fix_modify AtC output bar1dfe_flux_init 100
timestep 5
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_modify format 1 %6i format 2 %7.2g
thermo 100

View File

@ -50,7 +50,7 @@ fix_modify AtC control thermal rescale 10
# output
thermo 100
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_modify format 1 %6i format 2 %7.2g
# equilibrate MD field

View File

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

View File

@ -25,7 +25,7 @@ pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
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_modify fT temp dtemp

View File

@ -33,7 +33,7 @@ pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
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_modify fT temp dtemp

View File

@ -17,7 +17,7 @@ dielectric 1.0
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
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_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 iacc equal f_mygcmc[4]/(f_mygcmc[3]+${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 1000