2008-03-19 06:21:46 +08:00
|
|
|
"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 press/berendsen command :h3
|
|
|
|
|
|
|
|
[Syntax:]
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
fix ID group-ID press/berendsen keyword value ... :pre
|
2008-03-19 06:21:46 +08:00
|
|
|
|
|
|
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
|
|
|
press/berendsen = style name of this fix command :l
|
2010-04-03 00:51:06 +08:00
|
|
|
one or more keyword value pairs may be appended
|
|
|
|
keyword = {iso} or {aniso} or {x} or {y} or {z} or {couple} or {dilate} or {modulus}
|
|
|
|
{iso} or {aniso} values = Pstart Pstop Pdamp
|
|
|
|
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
|
2008-03-19 06:21:46 +08:00
|
|
|
Pdamp = pressure damping parameter (time units)
|
2010-04-03 00:51:06 +08:00
|
|
|
{x} or {y} or {z} values = Pstart Pstop Pdamp
|
|
|
|
Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
|
|
|
|
Pdamp = stress damping parameter (time units)
|
|
|
|
{couple} = {none} or {xyz} or {xy} or {yz} or {xz}
|
|
|
|
{modulus} value = bulk modulus of system (pressure units)
|
|
|
|
{dilate} value = {all} or {partial} :pre
|
2008-03-19 06:21:46 +08:00
|
|
|
:ule
|
|
|
|
|
|
|
|
[Examples:]
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
fix 1 all press/berendsen iso 0.0 0.0 1000.0
|
|
|
|
fix 2 all press/berendsen aniso 0.0 0.0 1000.0 dilate partial :pre
|
2008-03-19 06:21:46 +08:00
|
|
|
|
|
|
|
[Description:]
|
|
|
|
|
|
|
|
Reset the pressure of the system by using a Berendsen barostat
|
|
|
|
"(Berendsen)"_#Berendsen, which rescales the system volume and
|
2010-04-03 00:51:06 +08:00
|
|
|
(optionally) the atoms coordinates within the simulation box every
|
2008-03-19 06:21:46 +08:00
|
|
|
timestep.
|
|
|
|
|
|
|
|
Regardless of what atoms are in the fix group, a global pressure 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.
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
IMPORTANT NOTE: Unlike the "fix npt"_fix_nh.html or "fix
|
|
|
|
nph"_fix_nh.html commands which perform Nose/Hoover barostatting AND
|
2008-03-19 06:21:46 +08:00
|
|
|
time integration, this fix does NOT perform time integration. It only
|
|
|
|
modifies the box size and atom coordinates to effect barostatting.
|
|
|
|
Thus you must use a separate time integration fix, like "fix
|
2010-04-03 00:51:06 +08:00
|
|
|
nve"_fix_nve.html or "fix nvt"_fix_nh.html to actually update the
|
2008-03-19 06:21:46 +08:00
|
|
|
positions and velocities of atoms. This fix can be used in
|
|
|
|
conjunction with thermostatting fixes to control the temperature, such
|
2010-04-03 00:51:06 +08:00
|
|
|
as "fix nvt"_fix_nh.html or "fix langevin"_fix_langevin.html or "fix
|
2009-04-11 04:27:15 +08:00
|
|
|
temp/berendsen"_fix_temp_berendsen.html.
|
2008-03-19 06:21:46 +08:00
|
|
|
|
2011-08-26 01:01:01 +08:00
|
|
|
See "this howto section"_Section_howto.html#howto_16 of the manual for
|
|
|
|
a discussion of different ways to compute temperature and perform
|
2008-04-05 05:15:50 +08:00
|
|
|
thermostatting and barostatting.
|
|
|
|
|
2008-03-19 06:21:46 +08:00
|
|
|
:line
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
The barostat is specified using one or more of the {iso}, {aniso},
|
|
|
|
{x}, {y}, {z}, and {couple} keywords. These keywords give you the
|
|
|
|
ability to specify the 3 diagonal 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
|
2010-05-07 23:11:21 +08:00
|
|
|
constant-pressure simulation. Unlike the "fix npt"_fix_nh.html and
|
|
|
|
"fix nph"_fix_nh.html commands, this fix cannot be used with triclinic
|
|
|
|
(non-orthogonal) simulation boxes to control all 6 components of the
|
|
|
|
general pressure tensor.
|
2010-04-03 00:51:06 +08:00
|
|
|
|
|
|
|
The target pressures for each of the 3 diagonal components of the
|
|
|
|
stress tensor can be specified independently via the {x}, {y}, {z},
|
|
|
|
keywords, which correspond to the 3 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. 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"_fix_deform.html command.
|
|
|
|
|
|
|
|
For all barostat keywords, the {Pdamp} parameter determines the time
|
|
|
|
scale on which pressure is relaxed. For example, a value of 1000.0
|
|
|
|
means to relax the pressure in a timespan of (roughly) 1000 time units
|
|
|
|
(tau or fmsec or psec - see the "units"_units.html command).
|
2008-03-19 06:21:46 +08:00
|
|
|
|
2008-03-19 06:56:54 +08:00
|
|
|
IMPORTANT NOTE: The relaxation time is actually also a function of the
|
|
|
|
bulk modulus of the system (inverse of isothermal compressibility).
|
|
|
|
The bulk modulus has units of pressure and is the amount of pressure
|
|
|
|
that would need to be applied (isotropically) to reduce the volume of
|
2008-03-19 07:27:40 +08:00
|
|
|
the system by a factor of 2 (assuming the bulk modulus was a constant,
|
|
|
|
independent of density, which it's not). The bulk modulus can be set
|
|
|
|
via the keyword {modulus}. The {Pdamp} parameter is effectively
|
|
|
|
multiplied by the bulk modulus, so if the pressure is relaxing faster
|
|
|
|
than expected or desired, increasing the bulk modulus has the same
|
|
|
|
effect as increasing {Pdamp}. The converse is also true. LAMMPS does
|
|
|
|
not attempt to guess a correct value of the bulk modulus; it just uses
|
|
|
|
10.0 as a default value which gives reasonable relaxation for a
|
|
|
|
Lennard-Jones liquid, but will be way off for other materials and way
|
|
|
|
too small for solids. Thus you should experiment to find appropriate
|
|
|
|
values of {Pdamp} and/or the {modulus} when using this fix.
|
2008-03-19 06:56:54 +08:00
|
|
|
|
2008-03-19 06:21:46 +08:00
|
|
|
:line
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
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} and {aniso} 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
|
|
|
|
|
|
|
|
:line
|
|
|
|
|
2008-03-19 06:21:46 +08:00
|
|
|
This fix computes a temperature and pressure each timestep. To do
|
|
|
|
this, the fix creates its own computes of style "temp" and "pressure",
|
|
|
|
as if these commands had been issued:
|
|
|
|
|
2008-03-19 07:30:54 +08:00
|
|
|
compute fix-ID_temp group-ID temp
|
2008-03-19 06:21:46 +08:00
|
|
|
compute fix-ID_press group-ID 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", and the group for the new computes is the same
|
|
|
|
as the fix group.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
[Restart, fix_modify, output, run start/stop, minimize info:]
|
|
|
|
|
|
|
|
No information about this fix is written to "binary restart
|
|
|
|
files"_restart.html.
|
|
|
|
|
|
|
|
The "fix_modify"_fix_modify.html {temp} and {press} options are
|
|
|
|
supported by this fix. You can use them to assign a
|
|
|
|
"compute"_compute.html you have defined to this fix which will be used
|
|
|
|
in its temperature and pressure calculations. 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.
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
No global or per-atom quantities are stored by this fix for access by
|
2011-08-26 01:01:01 +08:00
|
|
|
various "output commands"_Section_howto.html#howto_15.
|
2008-03-19 06:21:46 +08:00
|
|
|
|
|
|
|
This fix can ramp its target 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.
|
|
|
|
|
|
|
|
This fix is not invoked during "energy minimization"_minimize.html.
|
|
|
|
|
|
|
|
[Restrictions:]
|
|
|
|
|
2010-10-23 00:48:10 +08:00
|
|
|
Any dimension being adjusted by this fix must be periodic.
|
2008-03-19 06:21:46 +08:00
|
|
|
|
|
|
|
[Related commands:]
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
"fix nve"_fix_nve.html, "fix nph"_fix_nh.html, "fix
|
|
|
|
npt"_fix_nh.html, "fix temp/berendsen"_fix_temp_berendsen.html,
|
2008-03-19 06:21:46 +08:00
|
|
|
"fix_modify"_fix_modify.html
|
|
|
|
|
|
|
|
[Default:]
|
|
|
|
|
2008-03-19 06:56:54 +08:00
|
|
|
The keyword defaults are dilate = all, modulus = 10.0 in units of
|
|
|
|
pressure for whatever "units"_units.html are defined.
|
2008-03-19 06:21:46 +08:00
|
|
|
|
|
|
|
:line
|
|
|
|
|
|
|
|
:link(Berendsen)
|
|
|
|
|
|
|
|
[(Berendsen)] Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem
|
|
|
|
Phys, 81, 3684 (1984).
|