Constraints and r-RESPA

The r-RESPA approach makes unnecessary to resort to the SHAKE procedure [10,11] to freeze some fast degrees of freedom. However the SHAKE and r-RESPA algorithms are not mutually exclusive and sometimes it might be convenient to freeze some degrees of freedom while simultaneously using a multi-step integration for all other freely evolving degrees of freedom. Since r-RESPA consists in a series of nested velocity Verlet like algorithms, the constraint technique RATTLE [78] used in the past for single time step velocity Verlet integrator can be straightforwardly applied. In RATTLE both the constraint conditions on the coordinates and their time derivatives must be satisfied. The resulting coordinate constraints is upheld by a SHAKE iterative procedure which corrects the positions exactly as in a standard Verlet integration, while a similar iterative procedure is applied to the velocities at the half time step.

In a multi time step integration, whenever velocities are updated, using part of the overall forces (e.g. the intermolecular forces), they must also be corrected for the corresponding constraints forces with a call to RATTLE. This combined RATTLE-r-RESPA procedure has been described for the first time by Tuckerman and Parrinello [79] in the framework of the Car-Parrinello simulation method. To illustrate the combined RATTLE-r-RESPA technique in a multi-step integration, we assume a separation of the potential into two components deriving from intramolecular and intermolecular interactions. In addition, some of the covalent bonds are supposed rigid, i.e.

$\displaystyle d_{a}$ $\displaystyle =$ $\displaystyle d_{a}^{(0)}$ (2.41)
$\displaystyle \dot d_{a}$ $\displaystyle =$ 0 (2.42)

equation where $ a$ runs over all constrained bonds and $ d_{a}^{(0)}$ are constants. In the double time integration (2.34), velocities are updated four times, i.e. two times in the inner loop and two times in the outer loop. To satisfy (2.41), SHAKE must be called to correct the position in the inner loop. To satisfy (2.42), RATTLE must be called twice, once in the inner loop and the second time in the outer loop according to the following scheme
\begin{displaymath}\begin{array}{lll}
p' & \left ( {\Delta t_1 \over 2 }\right )...
...2}) + F_{1} (n\Delta t_{0}) {\Delta t_{1} \over 2}.
\end{array}\end{displaymath}     (2.43)

Where $ RATTLE_p$ and $ RATTLE_q$ represent the constraint procedure on velocity and coordinates, respectively.

procacci 2021-12-29