Kinetic temperature can be made a constant of the equations of motion by imposing an
additional constraint on the system. If one writes the equations of motions as :
(2.186) |
with the temperature constraint
(2.187) |
then choosing
(2.188) |
minimizes the ``least squares'' differences between the Newtonian and constrained
trajectories. Following Brown and Clarke [37] the
algorithm is implemented by calculating
(2.189) |
where is obtained from standard Verlet leapfrog integration. Only one iteration is needed (two if the system has bond constraints) to constrain the instantaneous temperature to exactly however energy is not conserved by this algorithm.
The algorithm is implemented in the DL_POLY routines NVT_E0 and NVT_E1. The latter is for systems with bond constraints.