The Verlet algorithm is probably the most popular algorithm
for integrating the equations of motions in standard Cartesian-space
molecular dynamics. Currently, NEIMO dynamics uses a modification of
one formulation of the Verlet algorithm, the ``leapfrog'' formulation.
Regardless of the formulation, the Verlet algorithm requires that
accelerations be calculated at a time
, before the velocities at
time
are known. However, NEIMO accelerations at time
depend
upon the velocities at time
, so these velocities must first be
estimated. Iteration allows for a more accurate determination of the
velocities.
A ``leapfrog'' Verlet calculation with a timestep of determines
the accelerations at integer timesteps
(
, simulation time
=
) and uses these to determine the velocities at timestep
(
). These velocities are then used to determine
the coordinates at timestep
(
). The next dynamics
timestep then proceeds with
. However, in order to calculate
, NEIMO requires the unknown
as well as known
.
It is, therefore, first necessary to estimate the velocities
from
the previously determined velocities:
It is then possible to calculate the NEIMO accelerations .
Accelerations are calculated by solving the spatial operator (SO) equations
described in detail in References [33] and [32].
The accelerations are a function of the
coordinates
, the velocities
, the torques
, and/or the forces
. The forces and torques are
calculated from the derivatives of the potential energy functions with
respect to Cartesian and dihedral coordinates, respectively.
The accelerations are used to update the velocities as
they are in Cartesian dynamics (cf. Equation (
)).
Because is estimated in Equation (
), is
inaccurate and such errors could build up as the simulation progresses.
In order to eliminate such errors,
is re-estimated from the new
and the known
.
Repeating Equations
through
until
converges produces a very accurate value for
.
Sufficient convergence is generally reached after a single iteration, so
the effect on overall computational speed is minimal. The
converged values of
in Equation (
) give values for
which are then used to update the coordinates.
The dynamics step is completed by updating the Cartesian coordinates
from the new internal coordinates .