The velocity Verlet algorithm [8] was initially introduced to improve the numerical stability of the leap frog scheme [15]. The velocity Verlet algorithm has subsequently been derived in a systematic way by means of a time-reversible partitioning of the Louville operator due to Tuckerman, et al. [9] and is now widely used in simulations. It is an example of a second order symplectic integrator. It has the form
where a(0) is the acceleration term evaluated using x(0).
While the systematic derivation for translational degrees of freedom
does not apply to rotation of a rigid body, one can still propose
a velocity Verlet like algorithm for the quaternions. We adopt here
the scheme proposed by Omelyan [10]. The conditions
on the quaternions,
and
,
are incorporated into the coefficient
of a constraint force
with the form
so that the integrator
for
takes the form
The condition
leads to an explicit expression for the coefficient
, namely
where the si terms are sums;
,
, and
. For small
,
.
The updated values for
and
are obtained using Eqs. (4) and
(8) with values for
,
,
and
at
obtained by solving the Euler equations, Eqs. (
3). Since
is proportional to
,
it is necessary to iterate the second
member of Eq. (3) in order to obtain a
self-consistent result. Here we suggest a scheme that converges rapidly.
First determine the
-independent part of
which involves just
the torques, Eq. (3),
and call it
. A zeroth estimate for
is then
This estimate for
is then used to estimate
the
-dependent part of the right-hand side of
Eq. (3), say
.
The first estimate for
is then
Now use
to construct
and then to generate the
second estimate for
,
This process can be continued until the desired level of convergence has been reached. We find that three iterations is sufficient for the examples discussed in the next section. Eqs. (10) through (14) constitute the "constraint force algorithm."
A related algorithm for integrating the equations of motion for quaternions
that is patterned after the original Verlet algorithm has been
described by Svanberg. [16] His
"mid-step implicit algorithm" is similar to a velocity Verlet
algorithm that iterates
and imposes the
and
conditions by scaling. Omelyan [10] has shown that a velocity Verlet
algorithm with scaling for quaternions is inferior to the version described
above. This is illustrated by the example discussed next.