compute viscosity/cos command
Syntax
compute ID group-ID viscosity/cos
ID, group-ID are documented in compute command
viscosity/cos = style name of this compute command
Examples
units real
compute cos all viscosity/cos
variable V equal c_cos[7]
variable A equal 0.02E-5 # A/fs^2
variable density equal density
variable lz equal lz
variable reciprocalViscosity equal v_V/${A}/v_density*39.4784/v_lz/v_lz*100 # 1/(Pa*s)
Description
Define a computation that calculates the velocity amplitude of a group of atoms with an cosine-shaped velocity profile and the temperature of them after subtracting out the velocity profile before computing the kinetic energy. A compute of this style can be used by any command that computes a temperature (e.g., thermo_modify, fix npt).
This command together with fix_accelerate/cos
enables viscosity calculation with periodic perturbation method,
as described by Hess.
An acceleration along the
where
The generated velocity amplitude
and it can be obtained from ensemble average of the velocity profile via
where
After the cosine-shaped collective velocity in the
where KE is the total kinetic energy of the group of atoms (sum of
A symmetric tensor, stored as a six-element vector, is also calculated
by this compute for use in the computation of a pressure tensor by the
compute pressue command. The formula for
the components of the tensor is the same as the above expression for
The number of atoms contributing to the temperature is assumed to be constant for the duration of the run; use the dynamic option of the compute_modify command if this is not the case. However, in order to get meaningful results, the group ID of this compute should be all.
The removal of the cosine-shaped velocity component by this command is essentially computing the temperature after a “bias” has been removed from the velocity of the atoms. 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 temp/rescale, fix temp/berendsen, and fix langevin.
This compute subtracts out degrees of freedom due to fixes that constrain molecular motion, such as fix shake and fix rigid. This means that the temperature of groups of atoms that include these constraints will be computed correctly. If needed, the subtracted degrees of freedom can be altered using the extra option of the compute_modify command.
See the Howto thermostat page 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 7, which can be accessed by indices 1–7. The first
six elements of the vector are those of the symmetric tensor discussed
above. The seventh is the cosine-shaped velocity amplitude
The scalar value calculated by this compute is “intensive”. The first six elements of vector values are “extensive”, and the seventh element of vector values is “intensive”.
The scalar value is in temperature units. The first six elements of vector values are in energy units. The seventh element of vector value us in velocity units.
Restrictions
This compute is part of the MISC package. It is only enabled if LAMMPS was built with that package. See the Build package page for more info.
Since this compute depends on fix accelerate/cos which can only work for 3d systems, it cannot be used for 2d systems.
Default
none
(Hess) Hess, B. The Journal of Chemical Physics 2002, 116 (1), 209-217.