lammps/doc/compute_temp_region.txt

109 lines
4.2 KiB
Plaintext
Raw Normal View History

"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
compute temp/region command :h3
[Syntax:]
compute ID group-ID temp/region region-ID :pre
ID, group-ID are documented in "compute"_compute.html command
temp/region = style name of this compute command
region-ID = ID of region to use for choosing atoms :ul
[Examples:]
compute mine flow temp/region boundary :pre
[Description:]
Define a computation that calculates the temperature of a group of
atoms in a geometric region. This can be useful for thermostatting
one portion of the simulation box. E.g. a McDLT simulation where one
side is cooled, and the other side is heated. A compute of this style
can be used by any command that computes a temperature,
e.g. "thermo_modify"_thermo_modify.html, "fix
temp/rescale"_fix_temp_rescale.html, etc.
Note that a {region}-style temperature can be used to thermostat with
"fix temp/rescale"_fix_temp_rescale.html or "fix
langevin"_fix_langevin.html, but should probably not be used with
Nose/Hoover style fixes ("fix nvt"_fix_nh.html, "fix
npt"_fix_nh.html, or "fix nph"_fix_nh.html), if the
degrees-of-freedom included in the computed T varies with time.
The temperature is calculated by the formula KE = dim/2 N k T, where
KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2),
dim = 2 or 3 = dimensionality of the simulation, N = number of atoms
in both the group and region, k = Boltzmann constant, and T =
temperature.
A kinetic energy tensor, stored as a 6-element vector, is also
calculated by this compute for use in the computation of a pressure
tensor. The formula for the components of the tensor is the same as
the above formula, except that v^2 is replaced by vx*vy for the xy
component, etc. The 6 components of the vector are ordered xx, yy,
zz, xy, xz, yz.
The number of atoms contributing to the temperature is compute each
time the temperature is evaluated since it is assumed atoms can
enter/leave the region. Thus there is no need to use the {dynamic}
option of the "compute_modify"_compute_modify.html command for this
compute style.
The removal of atoms outside the region by this fix is essentially
computing the temperature after a "bias" has been removed, which in
this case is the velocity of any atoms outside the region. If this
compute is used with a fix command that performs thermostatting then
this bias will be subtracted from each atom, thermostatting of the
remaining thermal velocity will be performed, and the bias will be
added back in. Thermostatting fixes that work in this way include
"fix nvt"_fix_nh.html, "fix temp/rescale"_fix_temp_rescale.html, "fix
temp/berendsen"_fix_temp_berendsen.html, and "fix
langevin"_fix_langevin.html. This means any of the thermostatting
fixes can operate on a geometric region of atoms, as defined by this
compute.
Unlike other compute styles that calculate temperature, this compute
does not subtract out degrees-of-freedom due to fixes that constrain
motion, such as "fix shake"_fix_shake.html and "fix
rigid"_fix_rigid.html. This is because those degrees of freedom
(e.g. a constrained bond) could apply to sets of atoms that straddle
the region boundary, and hence the concept is somewhat ill-defined.
If needed the number of subtracted degrees-of-freedom can be set
explicitly using the {extra} option of the
"compute_modify"_compute_modify.html command.
See "this howto section"_Section_howto.html#howto_16 of the manual for
a discussion of different ways to compute temperature and perform
thermostatting.
[Output info:]
This compute calculates a global scalar (the temperature) and a global
vector of length 6 (KE tensor), which can be accessed by indices 1-6.
These values can be used by any command that uses global scalar or
vector values from a compute as input. See "this
section"_Section_howto.html#howto_15 for an overview of LAMMPS output
options.
The scalar value calculated by this compute is "intensive". The
vector values are "extensive".
The scalar value will be in temperature "units"_units.html. The
vector values will be in energy "units"_units.html.
[Restrictions:] none
[Related commands:]
"compute temp"_compute_temp.html, "compute
pressure"_compute_pressure.html
[Default:] none