git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13118 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -10,13 +10,18 @@ compute temp/chunk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID temp/chunk chunkID keyword value ... :pre
|
||||
compute ID group-ID temp/chunk chunkID value1 value2 ... keyword value ... :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command :ulb,l
|
||||
temp/chunk = style name of this compute command :l
|
||||
chunkID = ID of "compute chunk/atom"_compute_chunk_atom.html command :l
|
||||
zero or more values can be listed :l
|
||||
value = {temp} or {kecom} or {internal} :l
|
||||
temp = temperature of each chunk
|
||||
kecom = kinetic energy of each chunk based on velocity of center of mass
|
||||
internal = internal kinetic energy of each chunk
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {com} or {bias}or {adof} or {cdof} :l
|
||||
keyword = {com} or {bias} or {adof} or {cdof} :l
|
||||
{com} value = {yes} or {no}
|
||||
yes = subtract center-of-mass velocity from each chunk before calculating temperature
|
||||
no = do not subtract center-of-mass velocity
|
||||
@ -30,19 +35,17 @@ keyword = {com} or {bias}or {adof} or {cdof} :l
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 fluid temp/chunk molchunk :pre
|
||||
compute 1 fluid temp/chunk molchunk
|
||||
compute 1 fluid temp/chunk molchunk temp internal
|
||||
compute 1 fluid temp/chunk molchunk bias tpartial adof 2.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the temperature of multiple
|
||||
chunks of atoms. Note that unlike other computes with style names
|
||||
temp/* which calculate the temperature of an entire group of atoms,
|
||||
this compute cannot be used by any command that uses such a
|
||||
temperature compute, e.g. "thermo_modify"_thermo_modify.html, "fix
|
||||
temp/rescale"_fix_temp_rescale.html, "fix npt"_fix_nh.html, etc. That
|
||||
is because this compute calculates multiple temperatures, one per
|
||||
chunk.
|
||||
Define a computation that calculates the temperature of a group of
|
||||
atoms that are also in chunks, after optionally subtracting out the
|
||||
center-of-mass velocity of each chunk. By specifying optional values,
|
||||
it can also calulate the per-chunk temperature or energies of the
|
||||
multiple chunks of atoms.
|
||||
|
||||
In LAMMPS, chunks are collections of atoms defined by a "compute
|
||||
chunk/atom"_compute_chunk_atom.html command, which assigns each atom
|
||||
@ -54,33 +57,70 @@ chunk/atom"_compute_chunk_atom.html doc page and ""Section_howto
|
||||
defined and examples of how they can be used to measure properties of
|
||||
a system.
|
||||
|
||||
This compute calculates the temperature for each chunk by the formula
|
||||
KE = DOF/2 k T, where KE = total kinetic energy of the chunk of atoms
|
||||
(sum of 1/2 m v^2), DOF = the total number of degrees of freedom for
|
||||
all atoms in the chunk, k = Boltzmann constant, and T = temperature.
|
||||
The temperature is calculated by the formula KE = DOF k T, where KE =
|
||||
total kinetic energy of all atoms both in the group and assigned to
|
||||
chunks (sum of 1/2 m v^2), DOF = the total number of degrees of
|
||||
freedom for those atoms, k = Boltzmann constant, and T = temperature.
|
||||
|
||||
The DOF is calculated as N*adof + cdof, where N = number of atoms in
|
||||
the chunk, adof = degrees of freedom per atom, and cdof = degrees of
|
||||
freedom per chunk. By default adof = 2 or 3 = dimensionality of
|
||||
system, as set via the "dimension"_dimension.html command, and cdof =
|
||||
0.0. This gives the usual formula for temperature.
|
||||
The DOF is calculated as N*adof + Nchunk*cdof, where N = number of
|
||||
atoms contributing to the KE, adof = degrees of freedom per atom, and
|
||||
cdof = degrees of freedom per chunk. By default adof = 2 or 3 =
|
||||
dimensionality of system, as set via the "dimension"_dimension.html
|
||||
command, and cdof = 0.0. This gives the usual formula for
|
||||
temperature.
|
||||
|
||||
Note that currently this temperature only includes translational
|
||||
degrees of freedom for each atom. No rotational degrees of freedom
|
||||
are included for finite-size particles. Also no degrees of freedom
|
||||
are subtracted for any velocity bias or constraints that are applied,
|
||||
such as "compute temp/partial"_compute_temp_partial.html, or "fix
|
||||
shake"_fix_shake.html or "fix rigid"_fix_rigid.html. This is because
|
||||
those degrees of freedom (e.g. a constrained bond) could apply to sets
|
||||
of atoms that are both included and excluded from a specific chunk,
|
||||
and hence the concept is somewhat ill-defined. In some cases, you can
|
||||
use the {adof} and {cdof} keywords to adjust the calculated degress of
|
||||
freedom appropriately, as explained below.
|
||||
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.
|
||||
|
||||
Also note that a bias can be subtracted from atom velocities before
|
||||
they are used in the above formula for KE, by using the {bias}
|
||||
keyword. This allows, for example, a thermal temperature to be
|
||||
computed after removal of a flow velocity profile.
|
||||
Note that the number of atoms contributing to the temperature is
|
||||
calculated each time the temperature is evaluated since it is assumed
|
||||
the atoms may be dynamically assigned to chunks. Thus there is no
|
||||
need to use the {dynamic} option of the
|
||||
"compute_modify"_compute_modify.html command for this compute style.
|
||||
|
||||
If any optional values are specified, then per-chunk quantities are
|
||||
also calculated and stored in a global array, as described below.
|
||||
|
||||
The {temp} value calculates the temperature for each chunk by the
|
||||
formula KE = DOF/2 k T, where KE = total kinetic energy of the chunk
|
||||
of atoms (sum of 1/2 m v^2), DOF = the total number of degrees of
|
||||
freedom for all atoms in the chunk, k = Boltzmann constant, and T =
|
||||
temperature.
|
||||
|
||||
The DOF in this case is calculated as N*adof + cdof, where N = number
|
||||
of atoms in the chunk, adof = degrees of freedom per atom, and cdof =
|
||||
degrees of freedom per chunk. By default adof = 2 or 3 =
|
||||
dimensionality of system, as set via the "dimension"_dimension.html
|
||||
command, and cdof = 0.0. This gives the usual formula for
|
||||
temperature.
|
||||
|
||||
The {kecom} value calculates the kinetic energy of each chunk as if
|
||||
all its atoms were moving with the velocity of the center-of-mass of
|
||||
the chunk.
|
||||
|
||||
The {internal} value calculates the internal kinetic energy of each
|
||||
chunk. The interal KE is summed over the atoms in the chunk using an
|
||||
internal "thermal" velocity for each atom, which is its velocity minus
|
||||
the center-of-mass velocity of the chunk.
|
||||
|
||||
:line
|
||||
|
||||
Note that currently the global and per-chunk temperatures calculated
|
||||
by this compute only include translational degrees of freedom for each
|
||||
atom. No rotational degrees of freedom are included for finite-size
|
||||
particles. Also no degrees of freedom are subtracted for any velocity
|
||||
bias or constraints that are applied, such as "compute
|
||||
temp/partial"_compute_temp_partial.html, or "fix shake"_fix_shake.html
|
||||
or "fix rigid"_fix_rigid.html. This is because those degrees of
|
||||
freedom (e.g. a constrained bond) could apply to sets of atoms that
|
||||
are both included and excluded from a specific chunk, and hence the
|
||||
concept is somewhat ill-defined. In some cases, you can use the
|
||||
{adof} and {cdof} keywords to adjust the calculated degress of freedom
|
||||
appropriately, as explained below.
|
||||
|
||||
Note that this compute and the "fix ave/chunk temp"_fix_ave_chunk.html
|
||||
command can calculate different things. This compute calculates the
|
||||
@ -100,12 +140,12 @@ thus also not contribute to this calculation. You can specify the
|
||||
"all" group for this command if you simply want to include atoms with
|
||||
non-zero chunk IDs.
|
||||
|
||||
The simplest way to output the results of the compute temp/chunk
|
||||
calculation to a file is to use the "fix ave/time"_fix_ave_time.html
|
||||
command, for example:
|
||||
The simplest way to output the pre-chunk results of the compute
|
||||
temp/chunk calculation to a file is to use the "fix
|
||||
ave/time"_fix_ave_time.html command, for example:
|
||||
|
||||
compute cc1 all chunk/atom molecule
|
||||
compute myChunk all temp/chunk cc1
|
||||
compute myChunk all temp/chunk cc1 temp
|
||||
fix 1 all ave/time 100 1 100 c_myChunk file tmp.out mode vector :pre
|
||||
|
||||
:line
|
||||
@ -114,22 +154,27 @@ The keyword/value option pairs are used in the following ways.
|
||||
|
||||
The {com} keyword can be used with a value of {yes} to subtract the
|
||||
velocity of the center-of-mass for each chunk from the velocity of the
|
||||
atoms in that chunk, before calculating the temperature. This can be
|
||||
useful if the atoms are streaming or otherwise moving collectively,
|
||||
and you wish to calculate only the thermal temperature.
|
||||
atoms in that chunk, before calculating either the global or per-chunk
|
||||
temperature. This can be useful if the atoms are streaming or
|
||||
otherwise moving collectively, and you wish to calculate only the
|
||||
thermal temperature.
|
||||
|
||||
For the {bias} keyword, {bias-ID} refers to the ID of a temperature
|
||||
compute that removes a "bias" velocity from each atom. This also
|
||||
allows compute temp/chunk to compute the thermal temperature of each
|
||||
chunk after the translational kinetic energy components have been
|
||||
altered in a prescribed way, e.g. to remove a velocity profile. Note
|
||||
that the temperature compute will apply its bias globally to the
|
||||
entire system, not on a per-chunk basis.
|
||||
allows calculation of the global or per-chunk temperature using only
|
||||
the thermal temperature of atoms in each chunk after the translational
|
||||
kinetic energy components have been altered in a prescribed way,
|
||||
e.g. to remove a velocity profile. It also applies to the calculation
|
||||
of the other per-chunk values, such as {kecom} or {internal}, which
|
||||
involve the center-of-mass velocity of each chunk, which is calculated
|
||||
after the velocity bias is removed from each atom. Note that the
|
||||
temperature compute will apply its bias globally to the entire system,
|
||||
not on a per-chunk basis.
|
||||
|
||||
The {adof} and {cdof} keywords define the values used in the degree of
|
||||
freedom (DOF) formula used for each chunk, as described above. They
|
||||
can be used to calculate a more appropriate temperature for some kinds
|
||||
of chunks. Here are 3 examples.
|
||||
freedom (DOF) formulas used for the global or per-chunk temperature,
|
||||
as described above. They can be used to calculate a more appropriate
|
||||
temperature for some kinds of chunks. Here are 3 examples.
|
||||
|
||||
If spatially binned chunks contain some number of water molecules and
|
||||
"fix shake"_fix_shake.html is used to make each molecule rigid, then
|
||||
@ -148,15 +193,30 @@ this case).
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a global vector where the number of rows = the
|
||||
number of chunks {Nchunk} as calculated by the specified "compute
|
||||
chunk/atom"_compute_chunk_atom.html command. These values can be
|
||||
accessed by any command that uses global vector values from a compute
|
||||
as input. See "Section_howto 15"_Section_howto.html#howto_15 for an
|
||||
overview of LAMMPS output options.
|
||||
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 vector values are "intensive". The vector values will be in
|
||||
temperature "units"_units.html.
|
||||
This compute also optionally calculates a global array, if one or more
|
||||
of the optional values are specified. The number of rows in the array
|
||||
= the number of chunks {Nchunk} as calculated by the specified
|
||||
"compute chunk/atom"_compute_chunk_atom.html command. The number of
|
||||
columns is the number of specifed values (1 or more). These values
|
||||
can be accessed by any command that uses global array values from a
|
||||
compute as input. Again, see "Section_howto
|
||||
15"_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 array values are "intensive".
|
||||
|
||||
The scalar value will be in temperature "units"_units.html. The
|
||||
vector values will be in energy "units"_units.html. The array values
|
||||
will be in temperature "units"_units.html for the {temp} value, and in
|
||||
energy "units"_units.html for the {kecom} and {internal} values.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user