forked from lijiext/lammps
186 lines
8.3 KiB
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>
|