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 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 in 1976 published a class of implicit multi-step methods, where Beeman's method is the direct variant of the third-order method in this class.
Equation
The formula used to compute the positions at time in the full predictor-corrector scheme is:- Predict from data at times and
- Correct position and velocities at time from data at times and by repeated evaluation of the differential equation to get the acceleration and of the equations of the implicit system 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.
This is the variant that is usually understood as Beeman's method.
Beeman also proposed to alternatively replace the velocity update in the last equation by the second order Adams–Moulton method:
where
- is present time
- 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
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 are then calculated from the positions.
The accelerations at time are then calculated from the positions and predicted velocities, and the velocities are corrected.