git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4654 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2010-09-01 20:40:15 +00:00
parent cc0f92226a
commit 386524da38
8 changed files with 188 additions and 1104 deletions

View File

@ -45,10 +45,10 @@ fix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5
<P><B>Description:</B> <P><B>Description:</B>
</P> </P>
<P>Apply a Langevin thermostat as described in <A HREF = "#Schneider">(Schneider)</A> <P>Apply a Langevin thermostat as described in <A HREF = "#Schneider">(Schneider)</A>
to a group of atoms which models an interaction with a background to a group of nuclei and electrons in the <A HREF = "pair_eff.html">electron force
implicit solvent. Used with <A HREF = "fix_nve_eff.html">fix nve/eff</A>, this command field</A> model. Used with <A HREF = "fix_nve_eff.html">fix nve/eff</A>,
performs Brownian dynamics (BD), since the total force on each atom this command performs Brownian dynamics (BD), since the total force on
will have the form: each atom will have the form:
</P> </P>
<PRE>F = Fc + Ff + Fr <PRE>F = Fc + Ff + Fr
Ff = - (m / damp) v Ff = - (m / damp) v
@ -59,94 +59,10 @@ interactions (<A HREF = "pair_style.html">pair_style</A>).
</P> </P>
<P>The Ff and Fr terms are added by this fix on a per-particle basis. <P>The Ff and Fr terms are added by this fix on a per-particle basis.
</P> </P>
<P>Ff is a frictional drag or viscous damping term proportional to the <P>The operation of this fix is exactly like that described by the <A HREF = "fix_langevin.html">fix
particle's velocity (including the electronic radial degrees of langevin</A> command, except that the thermostatting
freedom). The proportionality constant for each atom is computed as is also applied to the radial electron velocity for electron
m/damp, where m is the mass of the particle and damp is the damping particles.
factor specified by the user.
</P>
<P>Fr is a force due to solvent atoms at a temperature T randomly bumping
into the particle. As derived from the fluctuation/dissipation
theorem, its magnitude as shown above is proportional to sqrt(Kb T m /
dt damp), where Kb is the Boltzmann constant, T is the desired
temperature, m is the mass of the particle, dt is the timestep size,
and damp is the damping factor. Random numbers are used to randomize
the direction and magnitude of this force as described in
<A HREF = "#Dunweg">(Dunweg)</A>, where a uniform random number is used (instead of
a Gaussian random number) for speed.
</P>
<P>Note that the thermostat effect of this fix is applied to the
translational and electronic radial degrees of freedom for the
particles in a system. The translational degrees of freedom can also
have a bias velocity removed from them before thermostatting takes
place; see the description below.
</P>
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_nh_eff.html">fix nvt/eff</A> command which
performs Nose/Hoover thermostatting AND time integration, this fix
does NOT perform time integration. It only modifies forces to effect
thermostatting. Thus you must use a separate time integration fix,
like <A HREF = "fix_nve_eff.html">fix nve/eff</A> to actually update the velocities
(including electronic radial velocities) and positions of atoms
(nuclei and electrons) using the modified forces. Likewise, this fix
should not normally be used on atoms that also have their temperature
controlled by another fix - e.g. by <A HREF = "fix_nh.html">fix nvt/eff</A> command.
</P>
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
discussion of different ways to compute temperature and perform
thermostatting.
</P>
<P>The desired temperature at each timestep is a ramped value during the
run from <I>Tstart</I> to <I>Tstop</I>.
</P>
<P>Like other fixes that perform thermostatting, this fix can be used
with <A HREF = "compute.html">compute commands</A> that remove a "bias" from the
atom velocities. E.g. removing the center-of-mass velocity from a
group of atoms or removing the x-component of velocity from the
calculation. This is not done by default, but only if the
<A HREF = "fix_modify.html">fix_modify</A> command is used to assign a temperature
compute to this fix that includes such a bias term. See the doc pages
for individual <A HREF = "compute.html">compute commands</A> to determine which ones
include a bias. In this case, the thermostat works in the following
manner: bias is removed from each atom, thermostatting is performed on
the remaining thermal degrees of freedom, and the bias is added back
in.
</P>
<P>The <I>damp</I> parameter is specified in time units and determines how
rapidly the temperature is relaxed. For example, a value of 0.1 means
to relax the temperature in a timespan of 100 timesteps (for the
default 0.001 timesteps and fmsec unit used in eFF - see the
<A HREF = "units.html">units</A> command). The damp factor can be thought of as
inversely related to the viscosity of the solvent. I.e. a small
relaxation time implies a hi-viscosity solvent and vice versa. See
the discussion about gamma and viscosity in the documentation for the
<A HREF = "fix_viscous.html">fix viscous</A> command for more details.
</P>
<P>The random # <I>seed</I> must be a positive integer. A Marsaglia random
number generator is used. Each processor uses the input seed to
generate its own unique seed and its own stream of random numbers.
Thus the dynamics of the system will not be identical on two runs on
different numbers of processors.
</P>
<P>The keyword <I>scale</I> allows the damp factor to be scaled up or down by
the specified factor for atoms of that type. This can be useful when
different atom types have different sizes or masses. It can be used
multiple times to adjust damp for several atom types. Note that
specifying a ratio of 2 increases the relaxation time which is
equivalent to the solvent's viscosity acting on particles with 1/2 the
diameter. This is the opposite effect of scale factors used by the
<A HREF = "fix_viscous.html">fix viscous</A> command, since the damp factor in fix
<I>langevin</I> is inversely related to the gamma factor in fix <I>viscous</I>.
Also note that the damping factor in fix <I>langevin</I> includes the
particle mass in Ff, unlike fix <I>viscous</I>. Thus the mass and size of
different atom types should be accounted for in the choice of ratio
values.
</P>
<P>The keyword <I>tally</I> enables the calculation of the cummulative energy
added/subtracted to the atoms as they are thermostatted. Effectively
it is the energy exchanged between the infinite thermal reservoir and
the particles. As described below, this energy can then be printed
out or added to the potential energy of the system to monitor energy
conservation.
</P> </P>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B> <P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P> </P>

View File

@ -35,10 +35,10 @@ fix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5 :pre
[Description:] [Description:]
Apply a Langevin thermostat as described in "(Schneider)"_#Schneider Apply a Langevin thermostat as described in "(Schneider)"_#Schneider
to a group of atoms which models an interaction with a background to a group of nuclei and electrons in the "electron force
implicit solvent. Used with "fix nve/eff"_fix_nve_eff.html, this command field"_pair_eff.html model. Used with "fix nve/eff"_fix_nve_eff.html,
performs Brownian dynamics (BD), since the total force on each atom this command performs Brownian dynamics (BD), since the total force on
will have the form: each atom will have the form:
F = Fc + Ff + Fr F = Fc + Ff + Fr
Ff = - (m / damp) v Ff = - (m / damp) v
@ -49,94 +49,10 @@ interactions ("pair_style"_pair_style.html).
The Ff and Fr terms are added by this fix on a per-particle basis. The Ff and Fr terms are added by this fix on a per-particle basis.
Ff is a frictional drag or viscous damping term proportional to the The operation of this fix is exactly like that described by the "fix
particle's velocity (including the electronic radial degrees of langevin"_fix_langevin.html command, except that the thermostatting
freedom). The proportionality constant for each atom is computed as is also applied to the radial electron velocity for electron
m/damp, where m is the mass of the particle and damp is the damping particles.
factor specified by the user.
Fr is a force due to solvent atoms at a temperature T randomly bumping
into the particle. As derived from the fluctuation/dissipation
theorem, its magnitude as shown above is proportional to sqrt(Kb T m /
dt damp), where Kb is the Boltzmann constant, T is the desired
temperature, m is the mass of the particle, dt is the timestep size,
and damp is the damping factor. Random numbers are used to randomize
the direction and magnitude of this force as described in
"(Dunweg)"_#Dunweg, where a uniform random number is used (instead of
a Gaussian random number) for speed.
Note that the thermostat effect of this fix is applied to the
translational and electronic radial degrees of freedom for the
particles in a system. The translational degrees of freedom can also
have a bias velocity removed from them before thermostatting takes
place; see the description below.
IMPORTANT NOTE: Unlike the "fix nvt/eff"_fix_nh_eff.html command which
performs Nose/Hoover thermostatting AND time integration, this fix
does NOT perform time integration. It only modifies forces to effect
thermostatting. Thus you must use a separate time integration fix,
like "fix nve/eff"_fix_nve_eff.html to actually update the velocities
(including electronic radial velocities) and positions of atoms
(nuclei and electrons) using the modified forces. Likewise, this fix
should not normally be used on atoms that also have their temperature
controlled by another fix - e.g. by "fix nvt/eff"_fix_nh.html command.
See "this howto section"_Section_howto.html#4_16 of the manual for a
discussion of different ways to compute temperature and perform
thermostatting.
The desired temperature at each timestep is a ramped value during the
run from {Tstart} to {Tstop}.
Like other fixes that perform thermostatting, this fix can be used
with "compute commands"_compute.html that remove a "bias" from the
atom velocities. E.g. removing the center-of-mass velocity from a
group of atoms or removing the x-component of velocity from the
calculation. This is not done by default, but only if the
"fix_modify"_fix_modify.html command is used to assign a temperature
compute to this fix that includes such a bias term. See the doc pages
for individual "compute commands"_compute.html to determine which ones
include a bias. In this case, the thermostat works in the following
manner: bias is removed from each atom, thermostatting is performed on
the remaining thermal degrees of freedom, and the bias is added back
in.
The {damp} parameter is specified in time units and determines how
rapidly the temperature is relaxed. For example, a value of 0.1 means
to relax the temperature in a timespan of 100 timesteps (for the
default 0.001 timesteps and fmsec unit used in eFF - see the
"units"_units.html command). The damp factor can be thought of as
inversely related to the viscosity of the solvent. I.e. a small
relaxation time implies a hi-viscosity solvent and vice versa. See
the discussion about gamma and viscosity in the documentation for the
"fix viscous"_fix_viscous.html command for more details.
The random # {seed} must be a positive integer. A Marsaglia random
number generator is used. Each processor uses the input seed to
generate its own unique seed and its own stream of random numbers.
Thus the dynamics of the system will not be identical on two runs on
different numbers of processors.
The keyword {scale} allows the damp factor to be scaled up or down by
the specified factor for atoms of that type. This can be useful when
different atom types have different sizes or masses. It can be used
multiple times to adjust damp for several atom types. Note that
specifying a ratio of 2 increases the relaxation time which is
equivalent to the solvent's viscosity acting on particles with 1/2 the
diameter. This is the opposite effect of scale factors used by the
"fix viscous"_fix_viscous.html command, since the damp factor in fix
{langevin} is inversely related to the gamma factor in fix {viscous}.
Also note that the damping factor in fix {langevin} includes the
particle mass in Ff, unlike fix {viscous}. Thus the mass and size of
different atom types should be accounted for in the choice of ratio
values.
The keyword {tally} enables the calculation of the cummulative energy
added/subtracted to the atoms as they are thermostatted. Effectively
it is the energy exchanged between the infinite thermal reservoir and
the particles. As described below, this energy can then be printed
out or added to the potential energy of the system to monitor energy
conservation.
[Restart, fix_modify, output, run start/stop, minimize info:] [Restart, fix_modify, output, run start/stop, minimize info:]

View File

@ -56,382 +56,57 @@ fix 2 ice nph/eff x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.
<P><B>Description:</B> <P><B>Description:</B>
</P> </P>
<P>These commands perform time integration on Nose-Hoover style <P>These commands perform time integration on Nose-Hoover style
non-Hamiltonian equations of motion which are designed to generate non-Hamiltonian equations of motion for nuclei and electrons in the
positions and velocities sampled from the canonical (nvt), group for the <A HREF = "pair_eff.html">electron force field</A> model. The fixes
isothermal-isobaric (npt), and isenthalpic (nph) ensembles. In addition to acting on the nuclear positions and velocities, they generate radius and radial velocities sampled for the electron wave packets in eFF. This is are designed to generate positions and velocities sampled from the
achieved by adding some dynamic variables which are coupled to the canonical (nvt), isothermal-isobaric (npt), and isenthalpic (nph)
particle velocities (thermostatting) and simulation domain dimensions ensembles. This is achieved by adding some dynamic variables which
(barostatting). In addition to basic thermostatting and barostatting, are coupled to the particle velocities (thermostatting) and simulation
these fixes can also create a chain of thermostats coupled to the domain dimensions (barostatting). In addition to basic thermostatting
particle thermostat, and another chain of thermostats coupled to the and barostatting, these fixes can also create a chain of thermostats
barostat variables. The barostat can be coupled to the overall box coupled to the particle thermostat, and another chain of thermostats
volume, or to individual dimensions, including the <I>xy</I>, <I>xz</I> and <I>yz</I> coupled to the barostat variables. The barostat can be coupled to the
tilt dimensions. The external pressure of the barostat can be overall box volume, or to individual dimensions, including the <I>xy</I>,
specified as either a scalar pressure (isobaric ensemble) or as <I>xz</I> and <I>yz</I> tilt dimensions. The external pressure of the barostat
can be specified as either a scalar pressure (isobaric ensemble) or as
components of a symmetric stress tensor (constant stress ensemble). components of a symmetric stress tensor (constant stress ensemble).
The user must be cautious when using very high anisotropic pressures, since the spherical Gaussians that represent the electrons in eFF will not deform anisotropically. When used correctly, the time-averaged temperature and stress tensor When used correctly, the time-averaged temperature and stress tensor
of the particles will match the target values specified by of the particles will match the target values specified by
Tstart/Tstop and Pstart/Pstop. Tstart/Tstop and Pstart/Pstop.
</P> </P>
<P>The equations of motion used are those of Shinoda et al. in <P>The operation of these fixes is exactly like that described by the
<A HREF = "#Shinoda">(Shinoda)</A>, which combine the hydrostatic equations of <A HREF = "fix_nh.html">fix nvt, npt, and nph</A> commands, except that the radius
Martyna, Tobias and Klein in <A HREF = "#Martyna">(Martyna)</A> with the strain and radial velocity of electrons are also updated. Likewise the
energy proposed by Parrinello and Rahman in temperature and pressure calculated by the fix, using the computes it
<A HREF = "#Parrinello">(Parrinello)</A>. The time integration schemes closely creates (as discussed in the <A HREF = "fix_nh.html">fix nvt, npt, and nph</A>
follow the time-reversible measure-preserving Verlet and doc page), are performed with computes that include the eFF contribution
rRESPA integrators derived by Tuckerman et al. in <A HREF = "#Tuckerman">(Tuckerman)</A>. to the temperature or kinetic energy from the electron radial velocity.
</P> </P>
<HR> <P>IMPORTANT NOTE: there are two different pressures that can be reported
for eFF when defining the pair_style (see <A HREF = "pair_eff_cut.html">pair
<P>The thermostat for fix styles <I>nvt</I> and <I>npt</I> is specified using the eff/cut</A> to understand these settings), one
<I>temp</I> keyword. Other thermostat-related keywords are <I>tchain</I>, (default) that considers electrons do not contribute radial virial
<I>tloop</I> and <I>drag</I>, which are discussed below. components (i.e. electrons treated as incompressible 'rigid' spheres)
and one that does. The radial electronic contributions to the virials
are only tallied if the flexible pressure option is set, and this will
affect both global and per-atom quantities. In principle, the true
pressure of a system is somewhere in between the rigid and the
flexible eFF pressures, but, for most cases, the difference between
these two pressures will not be significant over long-term averaged
runs (i.e. even though the energy partitioning changes, the total
energy remains similar).
</P> </P>
<P>The thermostat is applied to the translational degrees of freedom <P>IMPORTANT NOTE: currently, there is no available option for the user
for both nuclei and electrons, and for the radial electronic degrees of freedom. The translational degrees of freedom can also have to set or create temperature distributions that include the radial
a bias velocity removed before thermostatting takes place; see the electronic degrees of freedom with the <A HREF = "velocity.html">velocity</A>
description below. The desired temperature at each timestep is a command, so the the user must allow for these degrees of freedom to
ramped value during the run from <I>Tstart</I> to <I>Tstop</I>. The <I>Tdamp</I> equilibrate (i.e. equi-partitioning of energy) through time
parameter is specified in time units and determines how rapidly the integration.
temperature is relaxed. For example, using the default eFF (electron) units, a value of 1.0 means to relax
the temperature in a timespan of (roughly) 100 time steps. This is because the default time unit in eFF is fmsec, while the default timestep is set to 0.001 fmsec (see the <A HREF = "units.html">units</A> command). The atoms in the fix group are the only ones whose velocities (including the radial electronic velocities) and positions are updated
by the velocity/position update portion of the integration.
</P>
<HR>
<P>The barostat for fix styles <I>npt/eff</I> and <I>nph/eff</I> is specified using one or
more of the <I>iso</I>, <I>aniso</I>, <I>tri</I>, <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, <I>yz</I>,
and <I>couple</I> keywords. These keywords give you the ability to specify
all 6 components of an external stress tensor, and to couple various
of these components together so that the dimensions they represent are
varied together during a constant-pressure simulation. Again, results with stress tensors containing large anisotropic character should be read with caution in the current eFF formulation.
</P>
<P>Other barostat-related keywords are <I>pchain</I>, <I>mtk</I>, <I>ploop</I>,
<I>nreset</I>, <I>drag</I>, and <I>dilate</I>, which are discussed below.
</P>
<P>Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z).
Triclinic (non-orthogonal) simulation boxes have 6 adjustable
dimensions (x,y,z,xy,xz,yz). The <A HREF = "create_box.html">create_box</A>, <A HREF = "read_data.html">read
data</A>, and <A HREF = "read_restart.html">read_restart</A> commands
specify whether the simulation box is orthogonal or non-orthogonal
(triclinic) and explain the meaning of the xy,xz,yz tilt factors.
</P>
<P>The target pressures for each of the 6 components of the stress tensor
can be specified independently via the <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, <I>yz</I>
keywords, which correspond to the 6 simulation box dimensions. For
each component, the external pressure or tensor component at each
timestep is a ramped value during the run from <I>Pstart</I> to <I>Pstop</I>.
If a target pressure is specified for a component, then the
corresponding box dimension will change during a simulation. For
example, if the <I>y</I> keyword is used, the y-box length will change. If
the <I>xy</I> keyword is used, the xy tilt factor will change. A box
dimension will not change if that component is not specified, although
you have the option to change that dimension via the <A HREF = "fix_deform_eff.html">fix
deform/eff</A> command.
</P>
<P>Note that in order to use the <I>xy</I>, <I>xz</I>, or <I>yz</I> keywords, the
simulation box must be triclinic, even if its initial tilt factors are
0.0.
</P>
<P>For all barostat keywords, the <I>Pdamp</I> parameter operates like the
<I>Tdamp</I> parameter, determining the time scale on which pressure is
relaxed. For example, a value of 1.0 means to relax the pressure
in a timespan of (roughly) 1000 timesteps for the eFF default time unit (fmsec - see
the <A HREF = "units.html">units</A> command), considering the default timestep is 0.001.
</P>
<P>Regardless of what atoms are in the fix group, a global pressure or
stress tensor is computed for all atoms. Similarly, when the size of
the simulation box is changed, all atoms are re-scaled to new
positions, unless the keyword <I>dilate</I> is specified with a value of
<I>partial</I>, in which case only the atoms in the fix group are
re-scaled. The latter can be useful for leaving the coordinates of
atoms in a solid substrate unchanged and controlling the pressure of a
surrounding fluid.
</P>
<P>IMPORTANT NOTE: there are two different pressures that can be reported for eFF when defining the pair_style (see <A HREF = "pair_eff_cut.html">pair eff/cut</A> to understand these settings), one (default) that considers electrons do not contribute radial virial components (i.e. electrons treated as incompressible 'rigid' spheres) and one that does. The radial electronic contributions to the virials are only tallied if the flexible pressure option is set, and this will affect both global and per-atom quantities. In principle, the true pressure of a system is somewhere in between the rigid and the flexible eFF pressures, but, for most cases, the difference between these two pressures will not be significant over long-term averaged runs (i.e. even though the energy partitioning changes, the total energy remains similar).
</P>
<HR>
<P>The <I>couple</I> keyword allows two or three of the diagonal components of
the pressure tensor to be "coupled" together. The value specified
with the keyword determines which are coupled. For example, <I>xz</I>
means the <I>Pxx</I> and <I>Pzz</I> components of the stress tensor are coupled.
<I>Xyz</I> means all 3 diagonal components are coupled. Coupling means two
things: the instantaneous stress will be computed as an average of the
corresponding diagonal components, and the coupled box dimensions will
be changed together in lockstep, meaning coupled dimensions will be
dilated or contracted by the same percentage every timestep. The
<I>Pstart</I>, <I>Pstop</I>, <I>Pdamp</I> parameters for any coupled dimensions must
be identical. <I>Couple xyz</I> can be used for a 2d simulation; the <I>z</I>
dimension is simply ignored.
</P>
<HR>
<P>The <I>iso</I>, <I>aniso</I>, and <I>tri</I> keywords are simply shortcuts that are
equivalent to specifying several other keywords together.
</P>
<P>The keyword <I>iso</I> means couple all 3 diagonal components together when
pressure is computed (hydrostatic pressure), and dilate/contract the
dimensions together. Using "iso Pstart Pstop Pdamp" is the same as
specifying these 4 keywords:
</P>
<PRE>x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple xyz
</PRE>
<P>The keyword <I>aniso</I> means <I>x</I>, <I>y</I>, and <I>z</I> dimensions are controlled
independently using the <I>Pxx</I>, <I>Pyy</I>, and <I>Pzz</I> components of the
stress tensor as the driving forces, and the specified scalar external
pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying
these 4 keywords:
</P>
<PRE>x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple none
</PRE>
<P>The keyword <I>tri</I> means <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, and <I>yz</I> dimensions
are controlled independently using their individual stress components
as the driving forces, and the specified scalar pressure as the
external normal stress. Using "tri Pstart Pstop Pdamp" is the same as
specifying these 7 keywords:
</P>
<PRE>x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
xy 0.0 0.0 Pdamp
yz 0.0 0.0 Pdamp
xz 0.0 0.0 Pdamp
couple none
</PRE>
<HR>
<P>In some cases (e.g. for solids) the pressure (volume) and/or
temperature of the system can oscillate undesirably when a Nose/Hoover
barostat and thermostat is applied. The optional <I>drag</I> keyword will
damp these oscillations, although it alters the Nose/Hoover equations.
A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.
A non-zero value adds a drag term; the larger the value specified, the
greater the damping effect. Performing a short run and monitoring the
pressure and temperature is the best way to determine if the drag term
is working. Typically a value between 0.2 to 2.0 is sufficient to
damp oscillations after a few periods. Note that use of the drag
keyword will interfere with energy conservation and will also change
the distribution of positions and velocities so that they do not
correspond to the nominal NVT, NPT, or NPH ensembles.
</P>
<P>An alternative way to control initial oscillations is to use chain
thermostats. The keyword <I>tchain</I> determines the number of thermostats
in the particle thermostat. A value of 1 corresponds to the original
Nose-Hoover thermostat. The keyword <I>pchain</I> specifies the number of
thermostats in the chain thermostatting the barostat degrees of
freedom. A value of 0 corresponds to no thermostatting of the
barostat variables.
</P>
<P>The <I>mtk</I> keyword controls whether or not the correction terms due to
Martyna, Tuckerman, and Klein are included in the equations of motion
<A HREF = "#Martyna">(Martyna)</A>. Specifying <I>no</I> reproduces the original
Hoover barostat, whose volume probability distribution function
differs from the true NPT and NPH ensembles by a factor of 1/V. Hence
using <I>yes</I> is more correct, but in many cases the difference is
negligible.
</P>
<P>The keyword <I>tloop</I> can be used to improve the accuracy of integration
scheme at little extra cost. The initial and final updates of the
thermostat variables are broken up into <I>tloop</I> substeps, each of
length <I>dt</I>/<I>tloop</I>. This corresponds to using a first-order
Suzuki-Yoshida scheme <A HREF = "#Tuckerman2006">(Tuckerman2006)</A>. The keyword
<I>ploop</I> does the same thing for the barostat thermostat.
</P>
<P>The keyword <I>nreset</I> controls how often the reference dimensions used
to define the strain energy are reset. If this keyword is not used,
or is given a value of zero, then the reference dimensions are set to
those of the initial simulation domain and are never changed. If the
simulation domain changes significantly during the simulation, then
the final average pressure tensor will differ significantly from the
specified values of the external stress tensor. A value of <I>nstep</I>
means that every <I>nstep</I> timesteps, the reference dimensions are set
to those of the current simulation domain.
</P>
<HR>
<P>IMPORTANT NOTE: Using a barostat coupled to tilt dimensions <I>xy</I>,
<I>xz</I>, <I>yz</I> can sometimes result in arbitrarily large values of the
tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS
imposes reasonable limits on how large the tilt values can be, and
exits with an error if these are exceeded. This error typically
indicates that there is something badly wrong with how the simulation
was constructed. The three most common sources of this error are
using keyword <I>tri</I> on a liquid system, specifying an external shear
stress tensor that exceeds the yield stress of the solid, and
specifying values of <I>Pstart</I> that are too far from the current stress
value. In other words, triclinic barostatting should be used with
care. This also is true for other barostat styles, although they tend
to be more forgiving of insults.
</P>
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_temp_berendsen.html">fix
temp/berendsen</A> command which performs
thermostatting but NO time integration, these fixes perform
thermostatting/barostatting AND time integration. Thus you should not
use any other time integration fix, such as <A HREF = "fix_nve_eff.html">fix nve/eff</A> on
atoms to which this fix is applied. Likewise, the <I>temp</I> options for
fix nvt/eff and fix npt/eff should not normally be used on atoms that also
have their temperature controlled by another fix - e.g. by <A HREF = "fix_nh.html">fix
langevin/eff</A> or <A HREF = "fix_temp_rescale.html">fix temp/rescale</A>
commands.
</P>
<P>IMPORTANT NOTE: currently, there is no available option for the user to set or create temperature distributions that include the radial electronic degrees of freedom with the <A HREF = "velocity.html">velocity</A> command, so the the user must allow for these to equilibrate (i.e. evolve thermal partitioning) through integration.
</P>
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
discussion of different ways to compute temperature and perform
thermostatting and barostatting.
</P>
<HR>
<P>These fixes compute a temperature and pressure each timestep. To do
this, the fix creates its own computes of style "temp" and "pressure",
as if one of these two sets of commands had been issued:
</P>
<PRE>compute fix-ID_temp group-ID temp/eff
compute fix-ID_press group-ID pressure fix-ID_temp
</PRE>
<PRE>compute fix-ID_temp all temp/eff
compute fix-ID_press all pressure fix-ID_temp
</PRE>
<P>See the <A HREF = "compute_temp_eff.html">compute temp/eff</A> and <A HREF = "compute_pressure.html">compute
pressure</A> commands for details. Note that the
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
+ underscore + "press". For fix nvt/eff, the group for the new computes
is the same as the fix group. For fix nph/eff and fix npt/eff, the group for
the new computes is "all" since pressure is computed for the entire
system.
</P>
<P>Note that these are NOT the computes used by thermodynamic output (see
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>
and <I>thermo_press</I>. This means you can change the attributes of this
fix's temperature or pressure via the
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
or pressure during thermodynamic output via the <A HREF = "thermo_style.html">thermo_style
custom</A> command using the appropriate compute-ID.
It also means that changing attributes of <I>thermo_temp</I> or
<I>thermo_press</I> will have no effect on this fix.
</P>
<P>Like other fixes that perform thermostatting, fix nvt/eff and fix npt/eff can
be used with <A HREF = "compute.html">compute commands</A> that calculate a
temperature after removing a "bias" from the atom velocities.
E.g. removing the center-of-mass velocity from a group of atoms or
only calculating temperature on the x-component of velocity or only
calculating temperature for atoms in a geometric region. This is not
done by default, but only if the <A HREF = "fix_modify.html">fix_modify</A> command
is used to assign a temperature compute to this fix that includes such
a bias term. See the doc pages for individual <A HREF = "compute.html">compute
commands</A> to determine which ones include a bias. In
this case, the thermostat works in the following manner: the current
temperature is calculated taking the bias into account, bias is
removed from each atom, thermostatting is performed on the remaining
thermal degrees of freedom, and the bias is added back in.
</P> </P>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B> <P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P> </P>
<P>These fixes writes the state of all the thermostat and barostat <P>See the doc page for the <A HREF = "fix_nh.html">fix nvt, npt, and nph</A> commands
variables to <A HREF = "restart.html">binary restart files</A>. See the for details.
<A HREF = "read_restart.html">read_restart</A> command for info on how to re-specify
a fix in an input script that reads a restart file, so that the
operation of the fix continues in an uninterrupted fashion.
</P>
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>temp</I> and <I>press</I> options are
supported by these fixes. You can use them to assign a
<A HREF = "compute.html">compute</A> you have defined to this fix which will be used
in its thermostatting or barostatting procedure, as described above.
If you do this, note that the kinetic energy derived from the compute
temperature should be consistent with the virial term computed using
all atoms for the pressure. LAMMPS will warn you if you choose to
compute temperature on a subset of atoms.
</P>
<P>IMPORTANT NOTE:
</P>
<P>IMPORTANT NOTE: If both the <I>temp</I> and <I>press</I> keywords are used in a
single thermo_modify command (or in two separate commands), then the
order in which the keywords are specified is important. Note that a
<A HREF = "compute_pressure.html">pressure compute</A> defines its own temperature
compute as an argument when it is specified. The <I>temp</I> keyword will
override this (for the pressure compute being used by fix npt/eff), but
only if the <I>temp</I> keyword comes after the <I>press</I> keyword. If the
<I>temp</I> keyword comes before the <I>press</I> keyword, then the new pressure
compute specified by the <I>press</I> keyword will be unaffected by the
<I>temp</I> setting.
</P>
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option is supported by these
fixes to add the energy change induced by Nose/Hoover thermostatting
and barostatting to the system's potential energy as part of
<A HREF = "thermo_style.html">thermodynamic output</A>.
</P>
<P>These fixes compute a global scalar and a global vector of quantities,
which can be accessed by various <A HREF = "Section_howto.html#4_15">output
commands</A>. The scalar values calculated by
this fix are "extensive"; the vector values are "intensive".
</P>
<P>The scalar is the cumulative energy change due to the fix.
</P>
<P>The vector stores internal Nose/Hoover thermostat and barostat
variables. The number and meaning of the vector values depends on
which fix is used and the settings for keywords <I>tchain</I> and <I>pchain</I>,
which specify the number of Nose/Hoover chains for the thermostat and
barostat. If no thermostatting is done, then <I>tchain</I> is 0. If no
barostatting is done, then <I>pchain</I> is 0. In the following list,
"ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in
the barostat. Its value is 0 if no barostat is used, else its value
is 6 if any off-diagonal stress tensor component is barostatted, else
its value is 1 if <I>couple xyz</I> is used or <I>couple xy</I> for a 2d
simulation, otherwise its value is 3.
</P>
<P>The order of values in the global vector and their meaning is as
follows. The notation means there are tchain values for eta, followed
by tchain for eta_dot, followed by ndof for omega, etc:
</P>
<UL><LI>eta[tchain] = particle thermostat displacements
<LI>eta_dot[tchain] = particle thermostat velocities
<LI>omega[ndof] = barostat displacements
<LI>omega_dot[ndof] = barostat velocities
<LI>etap[pchain] = barostat thermostat displacements
<LI>etap_dot[pchain] = barostat thermostat velocities
<LI>PE_eta[tchain] = potential energy of each particle thermostat displacement
<LI>KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity
<LI>PE_omega[ndof] = potential energy of each barostat displacement
<LI>KE_omega_dot[ndof] = kinetic energy of each barostat velocity
<LI>PE_etap[pchain] = potential energy of each barostat thermostat displacement
<LI>KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity
<LI>PE_strain[1] = scalar strain energy
</UL>
<P>These fixes can ramp their external temperature and pressure over
multiple runs, using the <I>start</I> and <I>stop</I> keywords of the
<A HREF = "run.html">run</A> command. See the <A HREF = "run.html">run</A> command for details of
how to do this.
</P>
<P>These fixes are not invoked during <A HREF = "minimize.html">energy
minimization</A>.
</P>
<P>These fixes can be used with either the <I>verlet</I> or <I>respa</I>
<A HREF = "run_style.html">integrators</A>. When using one of the barostat fixes
with <I>respa</I>, LAMMPS uses an integrator constructed
according to the following factorization of the Liouville propagator
(for two rRESPA levels):
</P>
<CENTER><IMG SRC = "Eqs/fix_nh1.jpg">
</CENTER>
<P>This factorization differs somewhat from that of Tuckerman et al., in that
the barostat is only updated at the outermost rRESPA level, whereas
Tuckerman's factorization requires splitting the pressure into pieces
corresponding to the forces computed at each rRESPA level. In theory, the
latter method will exhibit better numerical stability. In practice,
because Pdamp is normally chosen to be a large multiple of the
outermost rRESPA timestep, the barostat dynamics are not the
limiting factor for numerical stability. Both
factorizations are time-reversible and can be shown to preserve the phase
space measure of the underlying non-Hamiltonian equations of motion.
</P>
<P>IMPORTANT NOTE: using the <I>respa</I> integrator may be useful for the simulations that sample the electronic motions at a faster pace than the nuclear motions.
</P> </P>
<P><B>Restrictions:</B> <P><B>Restrictions:</B>
</P> </P>
@ -439,24 +114,22 @@ space measure of the underlying non-Hamiltonian equations of motion.
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
LAMMPS</A> section for more info. LAMMPS</A> section for more info.
</P> </P>
<P>Non-periodic dimensions cannot be barostatted. <I>Z</I>, <I>xz</I>, and <I>yz</I>, <P>Other restriction discussed on the doc page for the <A HREF = "fix_nh.html">fix nvt, npt, and
cannot be barostatted 2D simulations. <I>Xy</I>, <I>xz</I>, and <I>yz</I> can only nph</A> commands also apply.
be barostatted if the simulation domain is triclinic and the 2nd
dimension in the keyword (<I>y</I> dimension in <I>xy</I>) is periodic. The
<A HREF = "create_box.html">create_box</A>, <A HREF = "read_data.html">read data</A>, and
<A HREF = "read_restart.html">read_restart</A> commands specify whether the
simulation box is orthogonal or non-orthogonal (triclinic) and explain
the meaning of the xy,xz,yz tilt factors.
</P> </P>
<P>For the <I>temp</I> keyword, the final Tstop cannot be 0.0 since it would <P>IMPORTANT NOTE: The temperature for systems (regions or groups) with
make the external T = 0.0 at some timestep during the simulation which only electrons and no nuclei is 0.0 (i.e. not defined) in the current
is not allowed in the Nose/Hoover formulation. temperature calculations, a practical example would be a uniform
</P> electron gas or a very hot plasma, where electrons remain delocalized
<P>IMPORTANT NOTE: The temperature for systems (regions or groups) with only electrons is not defined in the current temperature calculations, a practical example would be a uniform electron gas or a very hot plasma, where electrons remain delocalized from the nuclei. This is because, even though electron virials are included in the temperature calculation, these are averaged over the nuclear degrees of freedom only. In such cases a corrective term must be added to the pressure to get the correct kinetic contribution. from the nuclei. This is because, even though electron virials are
included in the temperature calculation, these are averaged over the
nuclear degrees of freedom only. In such cases a corrective term must
be added to the pressure to get the correct kinetic contribution.
</P> </P>
<P><B>Related commands:</B> <P><B>Related commands:</B>
</P> </P>
<P><A HREF = "fix_nve_eff.html">fix nve/eff</A>, <A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "run_style.html">run_style</A> <P><A HREF = "fix_nh.html">fix nvt</A>, <A HREF = "fix_nh.html">fix nph</A>, <A HREF = "fix_nh.html">fix npt</A>,
<A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "run_style.html">run_style</A>
</P> </P>
<P><B>Default:</B> <P><B>Default:</B>
</P> </P>

View File

@ -48,382 +48,57 @@ fix 2 ice nph/eff x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.
[Description:] [Description:]
These commands perform time integration on Nose-Hoover style These commands perform time integration on Nose-Hoover style
non-Hamiltonian equations of motion which are designed to generate non-Hamiltonian equations of motion for nuclei and electrons in the
positions and velocities sampled from the canonical (nvt), group for the "electron force field"_pair_eff.html model. The fixes
isothermal-isobaric (npt), and isenthalpic (nph) ensembles. In addition to acting on the nuclear positions and velocities, they generate radius and radial velocities sampled for the electron wave packets in eFF. This is are designed to generate positions and velocities sampled from the
achieved by adding some dynamic variables which are coupled to the canonical (nvt), isothermal-isobaric (npt), and isenthalpic (nph)
particle velocities (thermostatting) and simulation domain dimensions ensembles. This is achieved by adding some dynamic variables which
(barostatting). In addition to basic thermostatting and barostatting, are coupled to the particle velocities (thermostatting) and simulation
these fixes can also create a chain of thermostats coupled to the domain dimensions (barostatting). In addition to basic thermostatting
particle thermostat, and another chain of thermostats coupled to the and barostatting, these fixes can also create a chain of thermostats
barostat variables. The barostat can be coupled to the overall box coupled to the particle thermostat, and another chain of thermostats
volume, or to individual dimensions, including the {xy}, {xz} and {yz} coupled to the barostat variables. The barostat can be coupled to the
tilt dimensions. The external pressure of the barostat can be overall box volume, or to individual dimensions, including the {xy},
specified as either a scalar pressure (isobaric ensemble) or as {xz} and {yz} tilt dimensions. The external pressure of the barostat
can be specified as either a scalar pressure (isobaric ensemble) or as
components of a symmetric stress tensor (constant stress ensemble). components of a symmetric stress tensor (constant stress ensemble).
The user must be cautious when using very high anisotropic pressures, since the spherical Gaussians that represent the electrons in eFF will not deform anisotropically. When used correctly, the time-averaged temperature and stress tensor When used correctly, the time-averaged temperature and stress tensor
of the particles will match the target values specified by of the particles will match the target values specified by
Tstart/Tstop and Pstart/Pstop. Tstart/Tstop and Pstart/Pstop.
The equations of motion used are those of Shinoda et al. in The operation of these fixes is exactly like that described by the
"(Shinoda)"_#Shinoda, which combine the hydrostatic equations of "fix nvt, npt, and nph"_fix_nh.html commands, except that the radius
Martyna, Tobias and Klein in "(Martyna)"_#Martyna with the strain and radial velocity of electrons are also updated. Likewise the
energy proposed by Parrinello and Rahman in temperature and pressure calculated by the fix, using the computes it
"(Parrinello)"_#Parrinello. The time integration schemes closely creates (as discussed in the "fix nvt, npt, and nph"_fix_nh.html
follow the time-reversible measure-preserving Verlet and doc page), are performed with computes that include the eFF contribution
rRESPA integrators derived by Tuckerman et al. in "(Tuckerman)"_#Tuckerman. to the temperature or kinetic energy from the electron radial velocity.
:line IMPORTANT NOTE: there are two different pressures that can be reported
for eFF when defining the pair_style (see "pair
eff/cut"_pair_eff_cut.html to understand these settings), one
(default) that considers electrons do not contribute radial virial
components (i.e. electrons treated as incompressible 'rigid' spheres)
and one that does. The radial electronic contributions to the virials
are only tallied if the flexible pressure option is set, and this will
affect both global and per-atom quantities. In principle, the true
pressure of a system is somewhere in between the rigid and the
flexible eFF pressures, but, for most cases, the difference between
these two pressures will not be significant over long-term averaged
runs (i.e. even though the energy partitioning changes, the total
energy remains similar).
The thermostat for fix styles {nvt} and {npt} is specified using the IMPORTANT NOTE: currently, there is no available option for the user
{temp} keyword. Other thermostat-related keywords are {tchain}, to set or create temperature distributions that include the radial
{tloop} and {drag}, which are discussed below. electronic degrees of freedom with the "velocity"_velocity.html
command, so the the user must allow for these degrees of freedom to
The thermostat is applied to the translational degrees of freedom equilibrate (i.e. equi-partitioning of energy) through time
for both nuclei and electrons, and for the radial electronic degrees of freedom. The translational degrees of freedom can also have integration.
a bias velocity removed before thermostatting takes place; see the
description below. The desired temperature at each timestep is a
ramped value during the run from {Tstart} to {Tstop}. The {Tdamp}
parameter is specified in time units and determines how rapidly the
temperature is relaxed. For example, using the default eFF (electron) units, a value of 1.0 means to relax
the temperature in a timespan of (roughly) 100 time steps. This is because the default time unit in eFF is fmsec, while the default timestep is set to 0.001 fmsec (see the "units"_units.html command). The atoms in the fix group are the only ones whose velocities (including the radial electronic velocities) and positions are updated
by the velocity/position update portion of the integration.
:line
The barostat for fix styles {npt/eff} and {nph/eff} is specified using one or
more of the {iso}, {aniso}, {tri}, {x}, {y}, {z}, {xy}, {xz}, {yz},
and {couple} keywords. These keywords give you the ability to specify
all 6 components of an external stress tensor, and to couple various
of these components together so that the dimensions they represent are
varied together during a constant-pressure simulation. Again, results with stress tensors containing large anisotropic character should be read with caution in the current eFF formulation.
Other barostat-related keywords are {pchain}, {mtk}, {ploop},
{nreset}, {drag}, and {dilate}, which are discussed below.
Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z).
Triclinic (non-orthogonal) simulation boxes have 6 adjustable
dimensions (x,y,z,xy,xz,yz). The "create_box"_create_box.html, "read
data"_read_data.html, and "read_restart"_read_restart.html commands
specify whether the simulation box is orthogonal or non-orthogonal
(triclinic) and explain the meaning of the xy,xz,yz tilt factors.
The target pressures for each of the 6 components of the stress tensor
can be specified independently via the {x}, {y}, {z}, {xy}, {xz}, {yz}
keywords, which correspond to the 6 simulation box dimensions. For
each component, the external pressure or tensor component at each
timestep is a ramped value during the run from {Pstart} to {Pstop}.
If a target pressure is specified for a component, then the
corresponding box dimension will change during a simulation. For
example, if the {y} keyword is used, the y-box length will change. If
the {xy} keyword is used, the xy tilt factor will change. A box
dimension will not change if that component is not specified, although
you have the option to change that dimension via the "fix
deform/eff"_fix_deform_eff.html command.
Note that in order to use the {xy}, {xz}, or {yz} keywords, the
simulation box must be triclinic, even if its initial tilt factors are
0.0.
For all barostat keywords, the {Pdamp} parameter operates like the
{Tdamp} parameter, determining the time scale on which pressure is
relaxed. For example, a value of 1.0 means to relax the pressure
in a timespan of (roughly) 1000 timesteps for the eFF default time unit (fmsec - see
the "units"_units.html command), considering the default timestep is 0.001.
Regardless of what atoms are in the fix group, a global pressure or
stress tensor is computed for all atoms. Similarly, when the size of
the simulation box is changed, all atoms are re-scaled to new
positions, unless the keyword {dilate} is specified with a value of
{partial}, in which case only the atoms in the fix group are
re-scaled. The latter can be useful for leaving the coordinates of
atoms in a solid substrate unchanged and controlling the pressure of a
surrounding fluid.
IMPORTANT NOTE: there are two different pressures that can be reported for eFF when defining the pair_style (see "pair eff/cut"_pair_eff_cut.html to understand these settings), one (default) that considers electrons do not contribute radial virial components (i.e. electrons treated as incompressible 'rigid' spheres) and one that does. The radial electronic contributions to the virials are only tallied if the flexible pressure option is set, and this will affect both global and per-atom quantities. In principle, the true pressure of a system is somewhere in between the rigid and the flexible eFF pressures, but, for most cases, the difference between these two pressures will not be significant over long-term averaged runs (i.e. even though the energy partitioning changes, the total energy remains similar).
:line
The {couple} keyword allows two or three of the diagonal components of
the pressure tensor to be "coupled" together. The value specified
with the keyword determines which are coupled. For example, {xz}
means the {Pxx} and {Pzz} components of the stress tensor are coupled.
{Xyz} means all 3 diagonal components are coupled. Coupling means two
things: the instantaneous stress will be computed as an average of the
corresponding diagonal components, and the coupled box dimensions will
be changed together in lockstep, meaning coupled dimensions will be
dilated or contracted by the same percentage every timestep. The
{Pstart}, {Pstop}, {Pdamp} parameters for any coupled dimensions must
be identical. {Couple xyz} can be used for a 2d simulation; the {z}
dimension is simply ignored.
:line
The {iso}, {aniso}, and {tri} keywords are simply shortcuts that are
equivalent to specifying several other keywords together.
The keyword {iso} means couple all 3 diagonal components together when
pressure is computed (hydrostatic pressure), and dilate/contract the
dimensions together. Using "iso Pstart Pstop Pdamp" is the same as
specifying these 4 keywords:
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple xyz :pre
The keyword {aniso} means {x}, {y}, and {z} dimensions are controlled
independently using the {Pxx}, {Pyy}, and {Pzz} components of the
stress tensor as the driving forces, and the specified scalar external
pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying
these 4 keywords:
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple none :pre
The keyword {tri} means {x}, {y}, {z}, {xy}, {xz}, and {yz} dimensions
are controlled independently using their individual stress components
as the driving forces, and the specified scalar pressure as the
external normal stress. Using "tri Pstart Pstop Pdamp" is the same as
specifying these 7 keywords:
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
xy 0.0 0.0 Pdamp
yz 0.0 0.0 Pdamp
xz 0.0 0.0 Pdamp
couple none :pre
:line
In some cases (e.g. for solids) the pressure (volume) and/or
temperature of the system can oscillate undesirably when a Nose/Hoover
barostat and thermostat is applied. The optional {drag} keyword will
damp these oscillations, although it alters the Nose/Hoover equations.
A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.
A non-zero value adds a drag term; the larger the value specified, the
greater the damping effect. Performing a short run and monitoring the
pressure and temperature is the best way to determine if the drag term
is working. Typically a value between 0.2 to 2.0 is sufficient to
damp oscillations after a few periods. Note that use of the drag
keyword will interfere with energy conservation and will also change
the distribution of positions and velocities so that they do not
correspond to the nominal NVT, NPT, or NPH ensembles.
An alternative way to control initial oscillations is to use chain
thermostats. The keyword {tchain} determines the number of thermostats
in the particle thermostat. A value of 1 corresponds to the original
Nose-Hoover thermostat. The keyword {pchain} specifies the number of
thermostats in the chain thermostatting the barostat degrees of
freedom. A value of 0 corresponds to no thermostatting of the
barostat variables.
The {mtk} keyword controls whether or not the correction terms due to
Martyna, Tuckerman, and Klein are included in the equations of motion
"(Martyna)"_#Martyna. Specifying {no} reproduces the original
Hoover barostat, whose volume probability distribution function
differs from the true NPT and NPH ensembles by a factor of 1/V. Hence
using {yes} is more correct, but in many cases the difference is
negligible.
The keyword {tloop} can be used to improve the accuracy of integration
scheme at little extra cost. The initial and final updates of the
thermostat variables are broken up into {tloop} substeps, each of
length {dt}/{tloop}. This corresponds to using a first-order
Suzuki-Yoshida scheme "(Tuckerman2006)"_#Tuckerman2006. The keyword
{ploop} does the same thing for the barostat thermostat.
The keyword {nreset} controls how often the reference dimensions used
to define the strain energy are reset. If this keyword is not used,
or is given a value of zero, then the reference dimensions are set to
those of the initial simulation domain and are never changed. If the
simulation domain changes significantly during the simulation, then
the final average pressure tensor will differ significantly from the
specified values of the external stress tensor. A value of {nstep}
means that every {nstep} timesteps, the reference dimensions are set
to those of the current simulation domain.
:line
IMPORTANT NOTE: Using a barostat coupled to tilt dimensions {xy},
{xz}, {yz} can sometimes result in arbitrarily large values of the
tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS
imposes reasonable limits on how large the tilt values can be, and
exits with an error if these are exceeded. This error typically
indicates that there is something badly wrong with how the simulation
was constructed. The three most common sources of this error are
using keyword {tri} on a liquid system, specifying an external shear
stress tensor that exceeds the yield stress of the solid, and
specifying values of {Pstart} that are too far from the current stress
value. In other words, triclinic barostatting should be used with
care. This also is true for other barostat styles, although they tend
to be more forgiving of insults.
IMPORTANT NOTE: Unlike the "fix
temp/berendsen"_fix_temp_berendsen.html command which performs
thermostatting but NO time integration, these fixes perform
thermostatting/barostatting AND time integration. Thus you should not
use any other time integration fix, such as "fix nve/eff"_fix_nve_eff.html on
atoms to which this fix is applied. Likewise, the {temp} options for
fix nvt/eff and fix npt/eff should not normally be used on atoms that also
have their temperature controlled by another fix - e.g. by "fix
langevin/eff"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html
commands.
IMPORTANT NOTE: currently, there is no available option for the user to set or create temperature distributions that include the radial electronic degrees of freedom with the "velocity"_velocity.html command, so the the user must allow for these to equilibrate (i.e. evolve thermal partitioning) through integration.
See "this howto section"_Section_howto.html#4_16 of the manual for a
discussion of different ways to compute temperature and perform
thermostatting and barostatting.
:line
These fixes compute a temperature and pressure each timestep. To do
this, the fix creates its own computes of style "temp" and "pressure",
as if one of these two sets of commands had been issued:
compute fix-ID_temp group-ID temp/eff
compute fix-ID_press group-ID pressure fix-ID_temp :pre
compute fix-ID_temp all temp/eff
compute fix-ID_press all pressure fix-ID_temp :pre
See the "compute temp/eff"_compute_temp_eff.html and "compute
pressure"_compute_pressure.html commands for details. Note that the
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
+ underscore + "press". For fix nvt/eff, the group for the new computes
is the same as the fix group. For fix nph/eff and fix npt/eff, the group for
the new computes is "all" since pressure is computed for the entire
system.
Note that these are NOT the computes used by thermodynamic output (see
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}
and {thermo_press}. This means you can change the attributes of this
fix's temperature or pressure via the
"compute_modify"_compute_modify.html command or print this temperature
or pressure during thermodynamic output via the "thermo_style
custom"_thermo_style.html command using the appropriate compute-ID.
It also means that changing attributes of {thermo_temp} or
{thermo_press} will have no effect on this fix.
Like other fixes that perform thermostatting, fix nvt/eff and fix npt/eff can
be used with "compute commands"_compute.html that calculate a
temperature after removing a "bias" from the atom velocities.
E.g. removing the center-of-mass velocity from a group of atoms or
only calculating temperature on the x-component of velocity or only
calculating temperature for atoms in a geometric region. This is not
done by default, but only if the "fix_modify"_fix_modify.html command
is used to assign a temperature compute to this fix that includes such
a bias term. See the doc pages for individual "compute
commands"_compute.html to determine which ones include a bias. In
this case, the thermostat works in the following manner: the current
temperature is calculated taking the bias into account, bias is
removed from each atom, thermostatting is performed on the remaining
thermal degrees of freedom, and the bias is added back in.
[Restart, fix_modify, output, run start/stop, minimize info:] [Restart, fix_modify, output, run start/stop, minimize info:]
These fixes writes the state of all the thermostat and barostat See the doc page for the "fix nvt, npt, and nph"_fix_nh.html commands
variables to "binary restart files"_restart.html. See the for details.
"read_restart"_read_restart.html command for info on how to re-specify
a fix in an input script that reads a restart file, so that the
operation of the fix continues in an uninterrupted fashion.
The "fix_modify"_fix_modify.html {temp} and {press} options are
supported by these fixes. You can use them to assign a
"compute"_compute.html you have defined to this fix which will be used
in its thermostatting or barostatting procedure, as described above.
If you do this, note that the kinetic energy derived from the compute
temperature should be consistent with the virial term computed using
all atoms for the pressure. LAMMPS will warn you if you choose to
compute temperature on a subset of atoms.
IMPORTANT NOTE:
IMPORTANT NOTE: If both the {temp} and {press} keywords are used in a
single thermo_modify command (or in two separate commands), then the
order in which the keywords are specified is important. Note that a
"pressure compute"_compute_pressure.html defines its own temperature
compute as an argument when it is specified. The {temp} keyword will
override this (for the pressure compute being used by fix npt/eff), but
only if the {temp} keyword comes after the {press} keyword. If the
{temp} keyword comes before the {press} keyword, then the new pressure
compute specified by the {press} keyword will be unaffected by the
{temp} setting.
The "fix_modify"_fix_modify.html {energy} option is supported by these
fixes to add the energy change induced by Nose/Hoover thermostatting
and barostatting to the system's potential energy as part of
"thermodynamic output"_thermo_style.html.
These fixes compute a global scalar and a global vector of quantities,
which can be accessed by various "output
commands"_Section_howto.html#4_15. The scalar values calculated by
this fix are "extensive"; the vector values are "intensive".
The scalar is the cumulative energy change due to the fix.
The vector stores internal Nose/Hoover thermostat and barostat
variables. The number and meaning of the vector values depends on
which fix is used and the settings for keywords {tchain} and {pchain},
which specify the number of Nose/Hoover chains for the thermostat and
barostat. If no thermostatting is done, then {tchain} is 0. If no
barostatting is done, then {pchain} is 0. In the following list,
"ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in
the barostat. Its value is 0 if no barostat is used, else its value
is 6 if any off-diagonal stress tensor component is barostatted, else
its value is 1 if {couple xyz} is used or {couple xy} for a 2d
simulation, otherwise its value is 3.
The order of values in the global vector and their meaning is as
follows. The notation means there are tchain values for eta, followed
by tchain for eta_dot, followed by ndof for omega, etc:
eta\[tchain\] = particle thermostat displacements
eta_dot\[tchain\] = particle thermostat velocities
omega\[ndof\] = barostat displacements
omega_dot\[ndof\] = barostat velocities
etap\[pchain\] = barostat thermostat displacements
etap_dot\[pchain\] = barostat thermostat velocities
PE_eta\[tchain\] = potential energy of each particle thermostat displacement
KE_eta_dot\[tchain\] = kinetic energy of each particle thermostat velocity
PE_omega\[ndof\] = potential energy of each barostat displacement
KE_omega_dot\[ndof\] = kinetic energy of each barostat velocity
PE_etap\[pchain\] = potential energy of each barostat thermostat displacement
KE_etap_dot\[pchain\] = kinetic energy of each barostat thermostat velocity
PE_strain\[1\] = scalar strain energy :ul
These fixes can ramp their external temperature and pressure over
multiple runs, using the {start} and {stop} keywords of the
"run"_run.html command. See the "run"_run.html command for details of
how to do this.
These fixes are not invoked during "energy
minimization"_minimize.html.
These fixes can be used with either the {verlet} or {respa}
"integrators"_run_style.html. When using one of the barostat fixes
with {respa}, LAMMPS uses an integrator constructed
according to the following factorization of the Liouville propagator
(for two rRESPA levels):
:c,image(Eqs/fix_nh1.jpg)
This factorization differs somewhat from that of Tuckerman et al., in that
the barostat is only updated at the outermost rRESPA level, whereas
Tuckerman's factorization requires splitting the pressure into pieces
corresponding to the forces computed at each rRESPA level. In theory, the
latter method will exhibit better numerical stability. In practice,
because Pdamp is normally chosen to be a large multiple of the
outermost rRESPA timestep, the barostat dynamics are not the
limiting factor for numerical stability. Both
factorizations are time-reversible and can be shown to preserve the phase
space measure of the underlying non-Hamiltonian equations of motion.
IMPORTANT NOTE: using the {respa} integrator may be useful for the simulations that sample the electronic motions at a faster pace than the nuclear motions.
[Restrictions:] [Restrictions:]
@ -431,24 +106,22 @@ This fix is part of the "user-eff" package. It is only enabled if
LAMMPS was built with that package. See the "Making LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#2_3 section for more info. LAMMPS"_Section_start.html#2_3 section for more info.
Non-periodic dimensions cannot be barostatted. {Z}, {xz}, and {yz}, Other restriction discussed on the doc page for the "fix nvt, npt, and
cannot be barostatted 2D simulations. {Xy}, {xz}, and {yz} can only nph"_fix_nh.html commands also apply.
be barostatted if the simulation domain is triclinic and the 2nd
dimension in the keyword ({y} dimension in {xy}) is periodic. The
"create_box"_create_box.html, "read data"_read_data.html, and
"read_restart"_read_restart.html commands specify whether the
simulation box is orthogonal or non-orthogonal (triclinic) and explain
the meaning of the xy,xz,yz tilt factors.
For the {temp} keyword, the final Tstop cannot be 0.0 since it would IMPORTANT NOTE: The temperature for systems (regions or groups) with
make the external T = 0.0 at some timestep during the simulation which only electrons and no nuclei is 0.0 (i.e. not defined) in the current
is not allowed in the Nose/Hoover formulation. temperature calculations, a practical example would be a uniform
electron gas or a very hot plasma, where electrons remain delocalized
IMPORTANT NOTE: The temperature for systems (regions or groups) with only electrons is not defined in the current temperature calculations, a practical example would be a uniform electron gas or a very hot plasma, where electrons remain delocalized from the nuclei. This is because, even though electron virials are included in the temperature calculation, these are averaged over the nuclear degrees of freedom only. In such cases a corrective term must be added to the pressure to get the correct kinetic contribution. from the nuclei. This is because, even though electron virials are
included in the temperature calculation, these are averaged over the
nuclear degrees of freedom only. In such cases a corrective term must
be added to the pressure to get the correct kinetic contribution.
[Related commands:] [Related commands:]
"fix nve/eff"_fix_nve_eff.html, "fix_modify"_fix_modify.html, "run_style"_run_style.html "fix nvt"_fix_nh.html, "fix nph"_fix_nh.html, "fix npt"_fix_nh.html,
"fix_modify"_fix_modify.html, "run_style"_run_style.html
[Default:] [Default:]

View File

@ -25,9 +25,13 @@
<P><B>Description:</B> <P><B>Description:</B>
</P> </P>
<P>Perform constant NVE integration to update position and velocity for <P>Perform constant NVE integration to update position and velocity for
atoms in the group each timestep, including the translational and radial electron motions. V is volume; E is energy. This nuclei and electrons in the group for the <A HREF = "pair_eff.html">electron force
creates a system trajectory consistent with the microcanonical field</A> model. V is volume; E is energy. This creates a
ensemble. system trajectory consistent with the microcanonical ensemble.
</P>
<P>The operation of this fix is exactly like that described by the <A HREF = "fix_nve.html">fix
nve</A> command, except that the radius and radial velocity
of electrons are also updated.
</P> </P>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B> <P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P> </P>
@ -47,7 +51,8 @@ LAMMPS</A> section for more info.
</P> </P>
<P><B>Related commands:</B> <P><B>Related commands:</B>
</P> </P>
<P><A HREF = "fix_nh.html">fix nvt/eff</A>, <A HREF = "fix_nh.html">fix npt/eff</A> <P><A HREF = "fix_nve.html">fix nve</A>, <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, <A HREF = "fix_nh_eff.html">fix
npt/eff</A>
</P> </P>
<P><B>Default:</B> none <P><B>Default:</B> none
</P> </P>

View File

@ -22,9 +22,13 @@ fix 1 all nve/eff :pre
[Description:] [Description:]
Perform constant NVE integration to update position and velocity for Perform constant NVE integration to update position and velocity for
atoms in the group each timestep, including the translational and radial electron motions. V is volume; E is energy. This nuclei and electrons in the group for the "electron force
creates a system trajectory consistent with the microcanonical field"_pair_eff.html model. V is volume; E is energy. This creates a
ensemble. system trajectory consistent with the microcanonical ensemble.
The operation of this fix is exactly like that described by the "fix
nve"_fix_nve.html command, except that the radius and radial velocity
of electrons are also updated.
[Restart, fix_modify, output, run start/stop, minimize info:] [Restart, fix_modify, output, run start/stop, minimize info:]
@ -44,6 +48,7 @@ LAMMPS"_Section_start.html#2_3 section for more info.
[Related commands:] [Related commands:]
"fix nvt/eff"_fix_nh.html, "fix npt/eff"_fix_nh.html "fix nve"_fix_nve.html, "fix nvt/eff"_fix_nh_eff.html, "fix
npt/eff"_fix_nh_eff.html
[Default:] none [Default:] none

View File

@ -27,77 +27,20 @@ fix 1 all nvt/sllod/eff temp 300.0 300.0 0.1 drag 0.2
<P><B>Description:</B> <P><B>Description:</B>
</P> </P>
<P>Perform constant NVT integration to update positions and velocities <P>Perform constant NVT integration to update positions and velocities
each timestep for atoms in the group using a Nose/Hoover temperature each timestep for nuclei and electrons in the group for the <A HREF = "pair_eff.html">electron
thermostat. In eFF, this will include the radius and radial velocity of the electrons. force field</A> model, using a Nose/Hoover temperature
V is volume; T is temperature. This creates a system thermostat. V is volume; T is temperature. This creates a system
trajectory consistent with the canonical ensemble. trajectory consistent with the canonical ensemble.
</P> </P>
<P>This thermostat is used for a simulation box that is changing size <P>The operation of this fix is exactly like that described by the <A HREF = "fix_nvt_sllod.html">fix
and/or shape, for example in a non-equilibrium MD (NEMD) simulation. nvt/sllod</A> command, except that the radius and
The size/shape change is induced by use of the <A HREF = "fix_deform.html">fix radial velocity of electrons are also updated and thermostatted.
deform</A> command, so each point in the simulation box Likewise the temperature calculated by the fix, using the compute it
can be thought of as having a "streaming" velocity. The streaming velocity will only affect the translational degrees of freedom in eFF. This position-dependent streaming velocity is subtracted from each atom's creates (as discussed in the <A HREF = "fix_nh.html">fix nvt, npt, and nph</A> doc
actual velocity to yield a thermal velocity which is used for page), is performed with a <A HREF = "compute_temp_deform_eff.html">compute
temperature computation and thermostatting. The thermal velocity is computed over all degrees of freedom, including the electronic ones. For example, if the box temp/deform/eff</A> commmand that includes
is being sheared in x, relative to y, then points at the bottom of the the eFF contribution to the temperature from the electron radial
box (low y) have a small x velocity, while points at the top of the velocity.
box (hi y) have a large x velocity. These velocities do not
contribute to the thermal "temperature" of the atom, hence the use of this command.
</P>
<P>IMPORTANT NOTE: <A HREF = "fix_deform.html">Fix deform</A> has an option for
remapping either atom coordinates or velocities to the changing
simulation box. To use fix nvt/sllod, fix deform should NOT remap
atom positions, because fix nvt/sllod adjusts the atom positions and
velocities to create a velocity profile that matches the changing box
size/shape. Fix deform SHOULD remap atom velocities when atoms cross
periodic boundaries since that is consistent with maintaining the
velocity profile created by fix nvt/sllod. LAMMPS will give an
error if this setting is not consistent.
</P>
<P>The SLLOD equations of motion coupled to a Nose/Hoover thermostat are
discussed in <A HREF = "#Tuckerman">(Tuckerman)</A> (eqs 4 and 5), which is what is
implemented in LAMMPS in a velocity Verlet formulation.
</P>
<P>Additional parameters affecting the thermostat are specified by
keywords and values documented with the <A HREF = "fix_nh_eff.html">fix nvt/eff</A>
command. See, for example, discussion of the <I>temp</I> and <I>drag</I>
keywords.
</P>
<P>This fix computes a temperature each timestep. To do this, the fix
creates its own compute of style "temp/deform/eff", as if this command had
been issued:
</P>
<PRE>compute fix-ID_temp group-ID temp/deform/eff
</PRE>
<P>See the <A HREF = "compute_temp_deform_eff.html">compute temp/deform/eff</A> command for
details. Note that the ID of the new compute is the fix-ID +
underscore + "temp", and the group for the new compute is the same as
the fix group.
</P>
<P>Note that this is NOT the compute used by thermodynamic output (see
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>.
This means you can change the attributes of this fix's temperature
(e.g. its degrees-of-freedom) via the
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
during thermodynamic output via the <A HREF = "thermo_style.html">thermo_style
custom</A> command using the appropriate compute-ID.
It also means that changing attributes of <I>thermo_temp</I> will have no
effect on this fix.
</P>
<P>Like other fixes that perform thermostatting, this fix can be used
with <A HREF = "compute.html">compute commands</A> that calculate a temperature
after removing a "bias" from the atom velocities. E.g. removing the
center-of-mass velocity from a group of atoms or only calculating
temperature on the x-component of velocity or only calculating
temperature for atoms in a geometric region. This is not done by
default, but only if the <A HREF = "fix_modify.html">fix_modify</A> command is used
to assign a temperature compute to this fix that includes such a bias
term. See the doc pages for individual <A HREF = "compute.html">compute
commands</A> to determine which ones include a bias. In
this case, the thermostat works in the following manner: the current
temperature is calculated taking the bias into account, bias is
removed from each atom, thermostatting is performed on the remaining
thermal degrees of freedom, and the bias is added back in.
</P> </P>
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B> <P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P> </P>
@ -132,15 +75,20 @@ quantities as does the <A HREF = "fix_nh_eff.html">fix nvt/eff</A> command.
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
LAMMPS</A> section for more info. LAMMPS</A> section for more info.
</P> </P>
<P>This fix works best without Nose-Hoover chain thermostats i.e. using tchain = 1. <P>This fix works best without Nose-Hoover chain thermostats, i.e. using
Setting tchain to larger values can result in poor equilibration. tchain = 1. Setting tchain to larger values can result in poor
equilibration.
</P> </P>
<P><B>Related commands:</B> <P><B>Related commands:</B>
</P> </P>
<P><A HREF = "fix_nve_eff.html">fix nve/eff</A>, <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, <A HREF = "fix_langevin_eff.html">fix langevin/eff</A>, <P><A HREF = "fix_nve_eff.html">fix nve/eff</A>, <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, <A HREF = "fix_langevin_eff.html">fix
<A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "compute_temp_deform_eff.html">compute temp/deform/eff</A> langevin/eff</A>, <A HREF = "fix_nvt_sllod.html">fix
nvt/sllod</A>, <A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "compute_temp_deform_eff.html">compute
temp/deform/eff</A>
</P> </P>
<P><B>Default:</B> Same as <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, except tchain = 1. <P><B>Default:</B>
</P>
<P>Same as <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, except tchain = 1.
</P> </P>
<HR> <HR>

View File

@ -24,77 +24,20 @@ fix 1 all nvt/sllod/eff temp 300.0 300.0 0.1 drag 0.2 :pre
[Description:] [Description:]
Perform constant NVT integration to update positions and velocities Perform constant NVT integration to update positions and velocities
each timestep for atoms in the group using a Nose/Hoover temperature each timestep for nuclei and electrons in the group for the "electron
thermostat. In eFF, this will include the radius and radial velocity of the electrons. force field"_pair_eff.html model, using a Nose/Hoover temperature
V is volume; T is temperature. This creates a system thermostat. V is volume; T is temperature. This creates a system
trajectory consistent with the canonical ensemble. trajectory consistent with the canonical ensemble.
This thermostat is used for a simulation box that is changing size The operation of this fix is exactly like that described by the "fix
and/or shape, for example in a non-equilibrium MD (NEMD) simulation. nvt/sllod"_fix_nvt_sllod.html command, except that the radius and
The size/shape change is induced by use of the "fix radial velocity of electrons are also updated and thermostatted.
deform"_fix_deform.html command, so each point in the simulation box Likewise the temperature calculated by the fix, using the compute it
can be thought of as having a "streaming" velocity. The streaming velocity will only affect the translational degrees of freedom in eFF. This position-dependent streaming velocity is subtracted from each atom's creates (as discussed in the "fix nvt, npt, and nph"_fix_nh.html doc
actual velocity to yield a thermal velocity which is used for page), is performed with a "compute
temperature computation and thermostatting. The thermal velocity is computed over all degrees of freedom, including the electronic ones. For example, if the box temp/deform/eff"_compute_temp_deform_eff.html commmand that includes
is being sheared in x, relative to y, then points at the bottom of the the eFF contribution to the temperature from the electron radial
box (low y) have a small x velocity, while points at the top of the velocity.
box (hi y) have a large x velocity. These velocities do not
contribute to the thermal "temperature" of the atom, hence the use of this command.
IMPORTANT NOTE: "Fix deform"_fix_deform.html has an option for
remapping either atom coordinates or velocities to the changing
simulation box. To use fix nvt/sllod, fix deform should NOT remap
atom positions, because fix nvt/sllod adjusts the atom positions and
velocities to create a velocity profile that matches the changing box
size/shape. Fix deform SHOULD remap atom velocities when atoms cross
periodic boundaries since that is consistent with maintaining the
velocity profile created by fix nvt/sllod. LAMMPS will give an
error if this setting is not consistent.
The SLLOD equations of motion coupled to a Nose/Hoover thermostat are
discussed in "(Tuckerman)"_#Tuckerman (eqs 4 and 5), which is what is
implemented in LAMMPS in a velocity Verlet formulation.
Additional parameters affecting the thermostat are specified by
keywords and values documented with the "fix nvt/eff"_fix_nh_eff.html
command. See, for example, discussion of the {temp} and {drag}
keywords.
This fix computes a temperature each timestep. To do this, the fix
creates its own compute of style "temp/deform/eff", as if this command had
been issued:
compute fix-ID_temp group-ID temp/deform/eff :pre
See the "compute temp/deform/eff"_compute_temp_deform_eff.html command for
details. Note that the ID of the new compute is the fix-ID +
underscore + "temp", and the group for the new compute is the same as
the fix group.
Note that this is NOT the compute used by thermodynamic output (see
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}.
This means you can change the attributes of this fix's temperature
(e.g. its degrees-of-freedom) via the
"compute_modify"_compute_modify.html command or print this temperature
during thermodynamic output via the "thermo_style
custom"_thermo_style.html command using the appropriate compute-ID.
It also means that changing attributes of {thermo_temp} will have no
effect on this fix.
Like other fixes that perform thermostatting, this fix can be used
with "compute commands"_compute.html that calculate a temperature
after removing a "bias" from the atom velocities. E.g. removing the
center-of-mass velocity from a group of atoms or only calculating
temperature on the x-component of velocity or only calculating
temperature for atoms in a geometric region. This is not done by
default, but only if the "fix_modify"_fix_modify.html command is used
to assign a temperature compute to this fix that includes such a bias
term. See the doc pages for individual "compute
commands"_compute.html to determine which ones include a bias. In
this case, the thermostat works in the following manner: the current
temperature is calculated taking the bias into account, bias is
removed from each atom, thermostatting is performed on the remaining
thermal degrees of freedom, and the bias is added back in.
[Restart, fix_modify, output, run start/stop, minimize info:] [Restart, fix_modify, output, run start/stop, minimize info:]
@ -129,15 +72,20 @@ This fix is part of the "user-eff" package. It is only enabled if
LAMMPS was built with that package. See the "Making LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#2_3 section for more info. LAMMPS"_Section_start.html#2_3 section for more info.
This fix works best without Nose-Hoover chain thermostats i.e. using tchain = 1. This fix works best without Nose-Hoover chain thermostats, i.e. using
Setting tchain to larger values can result in poor equilibration. tchain = 1. Setting tchain to larger values can result in poor
equilibration.
[Related commands:] [Related commands:]
"fix nve/eff"_fix_nve_eff.html, "fix nvt/eff"_fix_nh_eff.html, "fix langevin/eff"_fix_langevin_eff.html, "fix nve/eff"_fix_nve_eff.html, "fix nvt/eff"_fix_nh_eff.html, "fix
"fix_modify"_fix_modify.html, "compute temp/deform/eff"_compute_temp_deform_eff.html langevin/eff"_fix_langevin_eff.html, "fix
nvt/sllod"_fix_nvt_sllod.html, "fix_modify"_fix_modify.html, "compute
temp/deform/eff"_compute_temp_deform_eff.html
[Default:] Same as "fix nvt/eff"_fix_nh_eff.html, except tchain = 1. [Default:]
Same as "fix nvt/eff"_fix_nh_eff.html, except tchain = 1.
:line :line