<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<PRE>one or more keyword value pairs may be appended
keyword = <I>temp</I> or <I>iso</I> or <I>aniso</I> or <I>tri</I> or <I>x</I> or <I>y</I> or <I>z</I> or <I>couple</I> or <I>tchain</I> or <I>pchain</I> or <I>mtk</I> or <I>tloop</I> or <I>ploop</I> or <I>nreset</I> or <I>drag</I> or <I>dilate</I> or <I>scaleyz</I> or <I>scalexz</I> or <I>scalexy</I>
<I>temp</I> values = Value1 Value2 Tdamp
Value1, Value2 = Nose-Hoover target temperatures, ignored by Hugoniostat
Tdamp = temperature damping parameter (time units)
<I>iso</I> or <I>aniso</I> or <I>tri</I> values = Pstart Pstop Pdamp
Pstart,Pstop = scalar external pressures, must be equal (pressure units)
Pdamp = pressure damping parameter (time units)
<I>x</I> or <I>y</I> or <I>z</I> or <I>xy</I> or <I>yz</I> or <I>xz</I> values = Pstart Pstop Pdamp
Pstart,Pstop = external stress tensor components, must be equal (pressure units)
Pdamp = stress damping parameter (time units)
<I>couple</I> = <I>none</I> or <I>xyz</I> or <I>xy</I> or <I>yz</I> or <I>xz</I>
<I>tchain</I> value = length of thermostat chain (1 = single thermostat)
<I>pchain</I> values = length of thermostat chain on barostat (0 = no thermostat)
<I>mtk</I> value = <I>yes</I> or <I>no</I> = add in MTK adjustment term or not
<I>tloop</I> value = number of sub-cycles to perform on thermostat
<I>ploop</I> value = number of sub-cycles to perform on barostat thermostat
<I>nreset</I> value = reset reference cell every this many timesteps
<I>drag</I> value = drag factor added to barostat/thermostat (0.0 = no drag)
<I>dilate</I> value = <I>all</I> or <I>partial</I>
<I>scaleyz</I> value = <I>yes</I> or <I>no</I> = scale yz with lz
<I>scalexz</I> value = <I>yes</I> or <I>no</I> = scale xz with lz
<I>scalexy</I> value = <I>yes</I> or <I>no</I> = scale xy with ly
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0
fix myhug all nphug temp 1.0 1.0 10.0 iso 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0
</PRE>
<P><B>Description:</B>
</P>
<P>This command is a variant of the Nose-Hoover
<A HREF = "fix_nh.html">fix npt</A> fix style.
It performs time integration of the Hugoniostat equations
of motion developed by Ravelo et al. <A HREF = "#Ravelo">(Ravelo)</A>.
These equations compress the system to a state with average
axial stress or pressure equal to the specified target value
and that satisfies the Rankine-Hugoniot (RH)
jump conditions for steady shocks.
</P>
<P>The compression can be performed
either
hydrostatically (using keyword <I>iso</I>, <I>aniso</I>, or <I>tri</I>) or uniaxially
(using keywords <I>x</I>, <I>y</I>, or <I>z</I>). In the hydrostatic case,
the cell dimensions change dynamically so that the average axial stress
in all three directions converges towards the specified target value.
In the uniaxial case, the chosen cell dimension changes dynamically
so that the average
axial stress in that direction converges towards the target value. The
other two cell dimensions are kept fixed (zero lateral strain).
</P>
<P>This leads to the following additional restrictions on the keywords:
</P>
<UL><LI>One and only one of the following keywords should be used: <I>iso</I>, <I>aniso</I>, <I>tri</I>, <I>x</I>, <I>y</I>, <I>z</I>
<LI>The specified initial and final target pressures must be the same.
<LI>The keywords <I>xy</I>, <I>xz</I>, <I>yz</I> may not be used.
<LI>The only admissible value for the couple keyword is <I>xyz</I>, which has the same effect as keyword <I>iso</I>
<LI>The <I>temp</I> keyword must be used to specify the time constant for kinetic energy relaxation, but initial and final target temperature values are ignored.
</UL>
<P>Essentially, a Hugoniostat simulation is an NPT simulation in which the
user-specified target temperature is replaced with a time-dependent
target temperature Tt obtained from the following equation:
</P>
<CENTER><IMG SRC = "Eqs/fix_nphug.jpg">
</CENTER>
<P>where T and Tt are the instantaneous and target temperatures,
P and P0 are the instantaneous and reference pressures or axial stresses,
depending on whether hydrostatic or uniaxial compression is being
performed, V and V0 are the instantaneous and reference volumes,
E and E0 are the instantaneous and reference internal energy (potential
plus kinetic), Ndof is the number of degrees of freedom used in the
definition of temperature, and kB is the Boltzmann constant. Delta is the
negative deviation of the instantaneous temperature from the target temperature.
When the system reaches a stable equilibrium, the value of Delta should
fluctuate about zero.
</P>
<P>The values of E0, V0, and P0 are the instantaneous values at the start of
the simulation. These can be overridden using the fix_modify keywords <I>e0</I>,
<I>v0</I>, and <I>p0</I> described below.
</P>
<HR>
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_temp_berendsen.html">fix
temp/berendsen</A> command which performs
thermostatting but NO time integration, this fix performs
thermostatting/barostatting AND time integration. Thus you should not
use any other time integration fix, such as <A HREF = "fix_nve.html">fix nve</A> on
atoms to which this fix is applied. Likewise, this fix should not be
used on atoms that have their temperature controlled by another fix
- e.g. by <A HREF = "fix_nh.html">fix langevin</A> or <A HREF = "fix_temp_rescale.html">fix temp/rescale</A>
commands.
</P>
<HR>
<P>This fix computes a temperature and pressure at 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: