Beeman's algorithm
Beeman's algorithm is a method for numerically integrating ordinary differential equations of
order 2, more specifically Newton's equations of motion
. It was designed to allow
high numbers of particles in simulations of molecular dynamics. There is a direct or explicit and
an implicit variant of the method. The direct variant was published by Schofield [1] in 1973 as a
personal communication from Beeman. This is what is commonly known as Beeman's method.
It is a variant of the Verlet integration method. It produces identical positions, but uses a different
formula for the velocities. Beeman[2] in 1976 published a class of implicit (predictor-corrector)
multi-step methods, where Beeman's method is the direct variant of the third order method in
this class.
Contents
[hide]
1 Equation
2 Predictor-Corrector Modifications
3 Error term
4 Memory Requirements
5 References
Equation[edit]
The formula used to compute the positions at time
scheme is:
Predict
in the full predictor-corrector[2]
from data at times
Correct position and velocities at time
from data at times
repeated evaluation of the differential equation to get the acceleration
the equations of the implicit system
by
and of
In tests it was found that this corrector step needs to be repeated at most twice. The
values on the right are the old values of the last iterations, resulting in the new values on
the left.
Using only the predictor formula and the corrector for the velocities one obtains a direct or
explicit method[1] which is a variant of the Verlet integration method:[3]
This is the variant that is usually understood as Beeman's method.
Beeman[2] also proposed to alternatively replace the velocity update in the last equation by the
second order AdamsMoulton method:
where
is present time (i.e.: independent variable)
is the time step size
is the position at time t
is the velocity at time t
is the acceleration at time t, computed as a function of
the last term is the error term, using the big O notation
Predictor-Corrector Modifications[edit]
In systems where the forces are a function of velocity in addition to position, the above equations
need to be modified into a predictor-corrector form whereby the velocities at time
are
predicted and the forces calculated, before producing a corrected form of the velocities.
An example is:
The velocities at time t =
The accelerations at time t =
velocities.
are then calculated from the positions.
are then calculated from the positions and predicted
Error term[edit]
As shown above, the local error term is
global error of
for position and
. In comparison, Verlet is
velocity,resulting in a
for position and
for velocity.
However, the more important global error is
. In exchange for greater accuracy,
Beeman's algorithm is moderately computationally more expensive.
Memory Requirements[edit]
The simulation must keep track of position, velocity, acceleration and previous acceleration
vectors per particle (though some clever work-arounds for storing the previous acceleration
vector are possible), keeping its memory requirements on par with velocity Verlet and slightly
more expensive than the original Verlet method.
References[edit]
1. ^ Jump up to: a b Schofield, P. (1973), "Computer simulation studies of the liquid state", Computer
Physics Communications 5 (1): 1723, doi:10.1016/0010-4655(73)90004-0
2. ^ Jump up to: a b c Beeman, David (1976), "Some multistep methods for use in molecular dynamics
calculations", Journal of Computational Physics 20 (2): 130139, doi:10.1016/00219991(76)90059-0
3. Jump up ^ Levitt, Michael; Meirovitch, Hagai; Huber, R. (1983), "Integrating the equations of
motion", Journal of Molecular Biology 168 (3): 617620, doi:10.1016/S0022-2836(83)80305-2,
PMID 6193281
Sadus, Richard J. (2002), Molecular Theory of Fluids: Theory, Algorithms and ObjectOrientation, Elsevier, p. 231, ISBN 0-444-51082-6
[hide]
v
t
e
Numerical integration methods by order
First-order
Euler
o backward
Second-order
Verlet (velocity)
Trapezoidal
Higher-order
Exponential integrators
General linear
o
o
semi-implicit
Beeman
Midpoint
Heun
Newmark-beta
exponential
RungeKutta (list)
o
multistep
Leapfrog
<img src="//[Link]/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title=""
width="1" height="1" style="border: none; position: absolute;" />
Retrieved from "[Link]
%27s_algorithm&oldid=661963395"
Categories:
Numerical differential equations