LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands

compute temp/chunk command

Syntax:

compute ID group-ID temp/chunk chunkID keyword value ... 

Examples:

compute 1 fluid temp/chunk molchunk 
compute 1 fluid temp/chunk molchunk bias tpartial adof 2.0 

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, fix temp/rescale, fix npt, etc. That is because this compute calculates multiple temperatures, one per chunk.

In LAMMPS, chunks are collections of atoms defined by a compute chunk/atom 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 compute chunk/atom doc page and "Section_howto 23 for details of how chunks can be 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 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 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, or fix shake or fix rigid. 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.

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 this compute and the fix ave/chunk temp 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.

Note that only atoms in the specified group contribute to the calculation. The compute chunk/atom 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.

The simplest way to output the results of the compute temp/chunk calculation to a file is to use the fix ave/time command, for example:

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 

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.

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.

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.

If spatially binned chunks contain some number of water molecules and fix shake 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 adof to 2.0. If compute temp/partial is used with the bias keyword to only allow the x component of velocity to contribute to the temperature, then adof = 1.0 would be appropriate. If each chunk consists of a large molecule, with some number of its bonds constrained by fix shake or the entire molecule by fix rigid/small, then cdof could be set to the remaining degrees of freedom for the entire molecule (entire chunk in 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 command. These values can be accessed by any command that uses global vector values from a compute as input. See Section_howto 15 for an overview of LAMMPS output options.

The vector values are "intensive". The vector values will be in temperature units.

Restrictions:

The com and bias keywords cannot be used together.

Related commands:

compute temp, fix ave/chunk temp

Default:

The option defaults are com no, no bias, adof = dimensionality of the system (2 or 3), and cdof = 0.0.