lammps/doc/compute_temp_chunk.html

186 lines
8.3 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>compute temp/chunk command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>compute ID group-ID temp/chunk chunkID keyword value ...
</PRE>
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
<LI>temp/chunk = style name of this compute command
<LI>chunkID = ID of <A HREF = "compute_chunk_atom.html">compute chunk/atom</A> command
<LI>zero or more keyword/value pairs may be appended
<LI>keyword = <I>com</I> or <I>bias</I>or <I>adof</I> or <I>cdof</I>
<PRE> <I>com</I> value = <I>yes</I> or <I>no</I>
yes = subtract center-of-mass velocity from each chunk before calculating temperature
no = do not subtract center-of-mass velocity
<I>bias</I> value = bias-ID
bias-ID = ID of a temperature compute that removes a velocity bias
<I>adof</I> value = dof_per_atom
dof_per_atom = define this many degrees-of-freedom per atom
<I>cdof</I> value = dof_per_chunk
dof_per_chunk = define this many degrees-of-freedom per chunk
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>compute 1 fluid temp/chunk molchunk
</PRE>
<PRE>compute 1 fluid temp/chunk molchunk bias tpartial adof 2.0
</PRE>
<P><B>Description:</B>
</P>
<P>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. <A HREF = "thermo_modify.html">thermo_modify</A>, <A HREF = "fix_temp_rescale.html">fix
temp/rescale</A>, <A HREF = "fix_nh.html">fix npt</A>, etc. That
is because this compute calculates multiple temperatures, one per
chunk.
</P>
<P>In LAMMPS, chunks are collections of atoms defined by a <A HREF = "compute_chunk_atom.html">compute
chunk/atom</A> command, which assigns each atom
to a single chunk (or no chunk). The ID for this command is specified
as chunkID. For example, a single chunk could be the atoms in a
molecule or atoms in a spatial bin. See the <A HREF = "compute_chunk_atom.html">compute
chunk/atom</A> doc page and "<A HREF = "Section_howto.html#howto_23">Section_howto
23</A> for details of how chunks can be
defined and examples of how they can be used to measure properties of
a system.
</P>
<P>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.
</P>
<P>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 <A HREF = "dimension.html">dimension</A> command, and cdof =
0.0. This gives the usual formula for temperature.
</P>
<P>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 <A HREF = "compute_temp_partial.html">compute temp/partial</A>, or <A HREF = "fix_shake.html">fix
shake</A> or <A HREF = "fix_rigid.html">fix rigid</A>. 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 <I>adof</I> and <I>cdof</I> keywords to adjust the calculated degress of
freedom appropriately, as explained below.
</P>
<P>Also note that a bias can be subtracted from atom velocities before
they are used in the above formula for KE, by using the <I>bias</I>
keyword. This allows, for example, a thermal temperature to be
computed after removal of a flow velocity profile.
</P>
<P>Note that this compute and the <A HREF = "fix_ave_chunk.html">fix ave/chunk temp</A>
command can calculate different things. This compute calculates the
temperature for each chunk for a single snapshot. Fix ave/chunk can
do that but can time average those values over many snapshots, or it
can compute a temperature as if the atoms in the chunk on different
timesteps were collected together as one set of atoms to calculate
their temperature. This compute allows the center-of-mass velocity of
each chunk to be subtracted before calculating the temperature; fix
ave/chunk does not.
</P>
<P>Note that only atoms in the specified group contribute to the
calculation. The <A HREF = "compute_chunk_atom.html">compute chunk/atom</A> command
defines its own group; atoms will have a chunk ID = 0 if they are not
in that group, signifying they are not assigned to a chunk, and will
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.
</P>
<P>The simplest way to output the results of the compute temp/chunk
calculation to a file is to use the <A HREF = "fix_ave_time.html">fix ave/time</A>
command, for example:
</P>
<PRE>compute cc1 chunk/atom molecule
compute myChunk all temp/chunk cc1
fix 1 all ave/time 100 1 100 c_myChunk file tmp.out mode vector
</PRE>
<HR>
<P>The keyword/value option pairs are used in the following ways.
</P>
<P>The <I>com</I> keyword can be used with a value of <I>yes</I> 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.
</P>
<P>For the <I>bias</I> keyword, <I>bias-ID</I> 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.
</P>
<P>The <I>adof</I> and <I>cdof</I> 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.
</P>
<P>If spatially binned chunks contain some number of water molecules and
<A HREF = "fix_shake.html">fix shake</A> is used to make each molecule rigid, then
you could calculate a temperature with 6 degrees of freedom (DOF) (3
translational, 3 rotational) per molecule by setting <I>adof</I> to 2.0.
If <A HREF = "compute_temp_partial.html">compute temp/partial</A> is used with the
<I>bias</I> keyword to only allow the x component of velocity to contribute
to the temperature, then <I>adof</I> = 1.0 would be appropriate. If each
chunk consists of a large molecule, with some number of its bonds
constrained by <A HREF = "fix_shake.html">fix shake</A> or the entire molecule by
<A HREF = "fix_rigid.html">fix rigid/small</A>, then <I>cdof</I> could be set to the
remaining degrees of freedom for the entire molecule (entire chunk in
this case).
</P>
<HR>
<P><B>Output info:</B>
</P>
<P>This compute calculates a global vector where the number of rows = the
number of chunks <I>Nchunk</I> as calculated by the specified <A HREF = "compute_chunk_atom.html">compute
chunk/atom</A> command. These values can be
accessed by any command that uses global vector values from a compute
as input. See <A HREF = "Section_howto.html#howto_15">Section_howto 15</A> for an
overview of LAMMPS output options.
</P>
<P>The vector values are "intensive". The vector values will be in
temperature <A HREF = "units.html">units</A>.
</P>
<P><B>Restrictions:</B>
</P>
<P>The <I>com</I> and <I>bias</I> keywords cannot be used together.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "compute_temp.html">compute temp</A>, <A HREF = "fix_ave_chunk.html">fix ave/chunk
temp</A>
</P>
<P><B>Default:</B>
</P>
<P>The option defaults are com no, no bias, adof = dimensionality of the
system (2 or 3), and cdof = 0.0.
</P>
</HTML>