forked from lijiext/lammps
212 lines
9.2 KiB
Plaintext
212 lines
9.2 KiB
Plaintext
|
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||
|
|
||
|
:link(lws,http://lammps.sandia.gov)
|
||
|
:link(ld,Manual.html)
|
||
|
:link(lc,Section_commands.html#comm)
|
||
|
|
||
|
:line
|
||
|
|
||
|
fix nphug command :h3
|
||
|
|
||
|
[Syntax:]
|
||
|
|
||
|
fix ID group-ID nphug keyword value ... :pre
|
||
|
|
||
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||
|
one or more keyword value pairs may be appended
|
||
|
keyword = {temp} or {iso} or {aniso} or {tri} or {x} or {y} or {z} or {couple} or {tchain} or {pchain} or {mtk} or {tloop} or {ploop} or {nreset} or {drag} or {dilate} or {scaleyz} or {scalexz} or {scalexy}
|
||
|
{temp} values = Value1 Value2 Tdamp
|
||
|
Value1, Value2 = Nose-Hoover target temperatures, ignored by Hugoniostat
|
||
|
Tdamp = temperature damping parameter (time units)
|
||
|
{iso} or {aniso} or {tri} values = Pstart Pstop Pdamp
|
||
|
Pstart,Pstop = scalar external pressures, must be equal (pressure units)
|
||
|
Pdamp = pressure damping parameter (time units)
|
||
|
{x} or {y} or {z} or {xy} or {yz} or {xz} values = Pstart Pstop Pdamp
|
||
|
Pstart,Pstop = external stress tensor components, must be equal (pressure units)
|
||
|
Pdamp = stress damping parameter (time units)
|
||
|
{couple} = {none} or {xyz} or {xy} or {yz} or {xz}
|
||
|
{tchain} value = length of thermostat chain (1 = single thermostat)
|
||
|
{pchain} values = length of thermostat chain on barostat (0 = no thermostat)
|
||
|
{mtk} value = {yes} or {no} = add in MTK adjustment term or not
|
||
|
{tloop} value = number of sub-cycles to perform on thermostat
|
||
|
{ploop} value = number of sub-cycles to perform on barostat thermostat
|
||
|
{nreset} value = reset reference cell every this many timesteps
|
||
|
{drag} value = drag factor added to barostat/thermostat (0.0 = no drag)
|
||
|
{dilate} value = {all} or {partial}
|
||
|
{scaleyz} value = {yes} or {no} = scale yz with lz
|
||
|
{scalexz} value = {yes} or {no} = scale xz with lz
|
||
|
{scalexy} value = {yes} or {no} = scale xy with ly :pre
|
||
|
:ule
|
||
|
|
||
|
[Examples:]
|
||
|
|
||
|
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
|
||
|
|
||
|
[Description:]
|
||
|
|
||
|
This command is a variant of the Nose-Hoover
|
||
|
"fix npt"_fix_nh.html fix style.
|
||
|
It performs time integration of the Hugoniostat equations
|
||
|
of motion developed by Ravelo et al. "(Ravelo)"_#Ravelo.
|
||
|
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.
|
||
|
|
||
|
The compression can be performed
|
||
|
either
|
||
|
hydrostatically (using keyword iso, aniso, or tri) or uniaxially
|
||
|
(using keywords x, y, or z). 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).
|
||
|
|
||
|
This leads to the following additional restrictions on the keywords:
|
||
|
|
||
|
One and only one of the following keywords should be used: iso, aniso, tri, x, y, z,
|
||
|
|
||
|
The specified initial and final target pressures must be the same.
|
||
|
|
||
|
The keywords xy, xz, yz may not be used.
|
||
|
|
||
|
The only admissible value for the couple keyword is xyz,
|
||
|
which has the same effect as keyword iso
|
||
|
|
||
|
The temp keyword must be used in order to specify the time constant for
|
||
|
kinetic energy relaxation, but initial and final target temperature values
|
||
|
are ignored. :ul
|
||
|
|
||
|
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:
|
||
|
|
||
|
Tt - T = (0.5*(P+P0)(V0-V)+E0-E)/(Ndof kB) = Delta
|
||
|
|
||
|
where T and Tt are the instantaneous and target temperatures,
|
||
|
P and P0 are the instantaneous and reference pressure or axial stress,
|
||
|
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.
|
||
|
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 {e0},
|
||
|
{v0}, and {p0} described below.
|
||
|
|
||
|
:line
|
||
|
|
||
|
IMPORTANT NOTE: Unlike the "fix
|
||
|
temp/berendsen"_fix_temp_berendsen.html 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 "fix nve"_fix_nve.html 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 "fix langevin"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html
|
||
|
commands.
|
||
|
|
||
|
:line
|
||
|
|
||
|
This fix 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
|
||
|
compute fix-ID_press group-ID pressure fix-ID_temp :pre
|
||
|
|
||
|
compute fix-ID_temp all temp
|
||
|
compute fix-ID_press all pressure fix-ID_temp :pre
|
||
|
|
||
|
See the "compute temp"_compute_temp.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, the group for the new computes
|
||
|
is the same as the fix group. For fix nph and fix npt, 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.
|
||
|
|
||
|
:line
|
||
|
|
||
|
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||
|
|
||
|
This fix writes the values of E0, V0, and P0, as well as the
|
||
|
state of all the thermostat and barostat
|
||
|
variables to "binary restart files"_restart.html. See the
|
||
|
"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 {e0}, {v0} and {p0} keywords
|
||
|
can be used to define the values of these quantities. Note the
|
||
|
the values for {e0} and {v0} 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
|
||
|
instanteous value in the system at the start of the simulation is used.
|
||
|
|
||
|
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.
|
||
|
|
||
|
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. Either way, this energy is *not*
|
||
|
included in the definition of internal energy E when calculating the value
|
||
|
of Delta in the above equation.
|
||
|
|
||
|
These fixes compute a global scalar and a global vector of quantities,
|
||
|
which can be accessed by various "output
|
||
|
commands"_Section_howto.html#howto_15. The scalar value calculated by
|
||
|
these fixes is "extensive"; the vector values are "intensive".
|
||
|
|
||
|
The scalar is the cumulative energy change due to the fix.
|
||
|
|
||
|
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 "fix_style npt"_fix_nh.html. 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 correspponding to a steady
|
||
|
shock calculated from the Rh conditions. They have units of distance/time.
|
||
|
|
||
|
[Restrictions:]
|
||
|
|
||
|
This fix style is part of the SHOCK package. It is only enabled if
|
||
|
LAMMPS was built with that package. See the "Making
|
||
|
LAMMPS"_Section_start.html#start_3 section for more info.
|
||
|
|
||
|
All the usual restrictions for "fix_style npt"_fix_nh.html apply,
|
||
|
plus the additional ones mentioned above.
|
||
|
|
||
|
[Related commands:]
|
||
|
|
||
|
"fix msst"_fix_msst.html, "fix npt"_fix_nh.html, "fix_modify"_fix_modify.html
|
||
|
|
||
|
[Default:]
|
||
|
|
||
|
The keyword defaults are the same as those for "fix npt"_fix_nh.html
|
||
|
|
||
|
:line
|
||
|
|
||
|
:link(Ravelo)
|
||
|
[(Ravelo)] Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004).
|