Jump to content

Beeman's algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pkeastman (talk | contribs) at 23:02, 13 December 2007. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Beeman's algorithm is a method for numerically integrating ordinary differential equations, generally position and velocity, which is closely related to Verlet integration. It produces identical positions to Verlet, but is more accurate in velocities. It is most commonly seen in molecular dynamics simulations.

Equation

The formula used to compute the positions at time is:

and this is the formula used to update the velocities:

where

  • is present time (ie: 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

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 t = are then calculated from the positions.

The accelerations at time t = are then calculated from the positions and predicted velocities.

Error term

As shown above, the error term is for position and velocity. In comparison, Verlet is for position and for velocity. In exchange for greater accuracy, Beeman's algorithm is moderately computationally more expensive.

Memory Requirements

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.

See also

References