next up previous contents
Next: Molecular dynamics at constant Up: Equations of motion Previous: The leapfrog algorithm

The Predictor-Corrector algorithm

We would like to solve the second-order differential equation

\begin{displaymath}\ddot{\bf r} = {\bf f}({\bf r},\dot{\bf r},t)
\end{displaymath} (8.8)

where ${\bf f}$ is related to the forces in equation (8.2) by ${\bf F} = m {\bf f}$. The first step of this algorithm consists in evaluating the atomic positions and velocities at time $t +
\Delta t$from the positions and the velocities at time $t - i \Delta t$, where i = 0,...,k-2, k being the order of the predictor part. The extrapolation is given by

\begin{displaymath}{\bf r}_i(t + \Delta t) = {\bf r}_i(t) + \dot{{\bf r}}_i(t) \...
...elta t^2 \sum_{i = 1}^{k-1} \alpha_i {\bf f}(t+[1-i]\Delta t),
\end{displaymath} (8.9)

for the atomic positions, and

\begin{displaymath}(\Delta t) \dot{{\bf r}}_i(t) = {\bf r}_i(t + \Delta t) - {\b...
...\Delta t^2 \sum_{i = 1}^{k-1} \beta_i {\bf f}(t+[1-i]\Delta t)
\end{displaymath} (8.10)

for the velocities. The coefficients $\alpha_i$ and $\beta_i$ satisfy the equation
$\displaystyle \sum_{i = 1}^{k-1} (1-i)^q \alpha_i = \frac{1}{(q+1)(q+2)},
\ \ \ \ \ \ \ \ \ \ \ \ \ \$     (8.11)
$\displaystyle \sum_{i = 1}^{k-1} (1-i)^q \beta_i = \frac{1}{q+2} \ \ \ \ \ \ \
q = 0,...,k-2.$      

These predicted values are then corrected from the value of ${\bf f}$at a time $t +
\Delta t$ (calculated from the predicted values themselves), using the expressions

\begin{displaymath}{\bf r}_i(t + \Delta t) = {\bf r}_i(t) + \dot{{\bf r}}_i(t) \...
...elta t^2 \sum_{i = 1}^{k-1} \gamma_i {\bf f}(t+[2-i]\Delta t),
\end{displaymath} (8.12)

for the atomic positions, and

\begin{displaymath}(\Delta t) \dot{{\bf r}}_i(t) = {\bf r}_i(t + \Delta t) - {\b...
...Delta t^2 \sum_{i = 1}^{k-1} \delta_i {\bf f}(t+[2-i]\Delta t)
\end{displaymath} (8.13)

for the velocities. The coefficient $\gamma_i$ and $\delta_i$ satisfy similar equations as $\alpha_i$ and $\beta_i$. The coefficient used in the present work are for k = 4, and are given in table 8.1.


 
Table 8.1: Coefficient of the Predictor-Corrector algorithm for k = 4 for second-order differential equation.
k = 4 ($\times$ 1/24) 1 2 3
$\alpha_i$ 19 -10 3
$\beta_i$ 27 -22 7
$\gamma_i$ 3 10 -1
$\delta_i$ 7 6 -1
 

The Predictor-Corrector algorithm gives more accurate positions and velocities than the leapfrog algorithm, and is therefore suitable in very ``delicate'' calculations. However, it is computationally expensive and needs significant storage (the forces at the last two stages, and the coordinated and velocities at the last step).


next up previous contents
Next: Molecular dynamics at constant Up: Equations of motion Previous: The leapfrog algorithm
David Saada
2000-06-22