forked from lijiext/lammps
240 lines
12 KiB
HTML
240 lines
12 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>fix nphug command
|
|
</H3>
|
|
<H3>fix nphug/omp command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>fix ID group-ID nphug keyword value ...
|
|
</PRE>
|
|
<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:
|
|
</P>
|
|
<PRE>compute fix-ID_temp group-ID temp
|
|
compute fix-ID_press group-ID pressure fix-ID_temp
|
|
</PRE>
|
|
<PRE>compute fix-ID_temp all temp
|
|
compute fix-ID_press all pressure fix-ID_temp
|
|
</PRE>
|
|
<P>See the <A HREF = "compute_temp.html">compute temp</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". 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>
|
|
<HR>
|
|
|
|
<P>Styles with a <I>cuda</I>, <I>gpu</I>, <I>intel</I>, <I>kk</I>, <I>omp</I>, or <I>opt</I> suffix are
|
|
functionally the same as the corresponding style without the suffix.
|
|
They have been optimized to run faster, depending on your available
|
|
hardware, as discussed in <A HREF = "Section_accelerate.html">Section_accelerate</A>
|
|
of the manual. The accelerated styles take the same arguments and
|
|
should produce the same results, except for round-off and precision
|
|
issues.
|
|
</P>
|
|
<P>These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL,
|
|
KOKKOS, USER-OMP and OPT packages, respectively. They are only
|
|
enabled if LAMMPS was built with those packages. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</P>
|
|
<P>You can specify the accelerated styles explicitly in your input script
|
|
by including their suffix, or you can use the <A HREF = "Section_start.html#start_7">-suffix command-line
|
|
switch</A> when you invoke LAMMPS, or you can
|
|
use the <A HREF = "suffix.html">suffix</A> command in your input script.
|
|
</P>
|
|
<P>See <A HREF = "Section_accelerate.html">Section_accelerate</A> of the manual for
|
|
more instructions on how to use the accelerated styles effectively.
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
|
</P>
|
|
<P>This fix writes the values of E0, V0, and P0, as well as the
|
|
state of all the thermostat and barostat
|
|
variables to <A HREF = "restart.html">binary restart files</A>. See the
|
|
<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>e0</I>, <I>v0</I> and <I>p0</I> keywords
|
|
can be used to define the values of E0, V0, and P0. Note the
|
|
the values for <I>e0</I> and <I>v0</I> are extensive, and so must correspond
|
|
to the total energy and volume of the entire system, not energy and
|
|
volume per atom. If any of these quantities are not specified, then the
|
|
instantaneous value in the system at the start of the simulation is used.
|
|
</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>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>. Either way, this energy is *not*
|
|
included in the definition of internal energy E when calculating the value
|
|
of Delta in the above equation.
|
|
</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#howto_15">output
|
|
commands</A>. The scalar value calculated by
|
|
these fixes is "extensive"; the vector values are "intensive".
|
|
</P>
|
|
<P>The scalar is the cumulative energy change due to the fix.
|
|
</P>
|
|
<P>The vector stores three quantities unique to this fix (Delta, Us, and up),
|
|
followed by all the internal Nose/Hoover thermostat and barostat
|
|
variables defined for <A HREF = "fix_nh.html">fix_style npt</A>. Delta is the deviation
|
|
of the temperature from the target temperature, given by the above equation.
|
|
Us and up are the shock and particle velocity corresponding to a steady
|
|
shock calculated from the RH conditions. They have units of distance/time.
|
|
</P>
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>This fix style is part of the SHOCK package. It is only enabled if
|
|
LAMMPS was built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</P>
|
|
<P>All the usual restrictions for <A HREF = "fix_nh.html">fix_style npt</A> apply,
|
|
plus the additional ones mentioned above.
|
|
</P>
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "fix_msst.html">fix msst</A>, <A HREF = "fix_nh.html">fix npt</A>, <A HREF = "fix_modify.html">fix_modify</A>
|
|
</P>
|
|
<P><B>Default:</B>
|
|
</P>
|
|
<P>The keyword defaults are the same as those for <A HREF = "fix_nh.html">fix npt</A>
|
|
</P>
|
|
<HR>
|
|
|
|
<A NAME = "Ravelo"></A>
|
|
|
|
<P><B>(Ravelo)</B> Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004).
|
|
</P>
|
|
</HTML>
|