use dynamic/dof and extra/dof consistently. remove compatibility note in docs.
This commit is contained in:
@ -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*.
|
||||
|
||||
@ -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
|
||||
""""""""""""""""
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
""""""""""""""""
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
@ -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
|
||||
""""""""""""
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user