Difference between revisions of "Beeman's algorithm"

From SklogWiki
Jump to: navigation, search
m (Added a couple of internal links.)
m (Trivial tidy of LaTeX markup.)
Line 1: Line 1:
 
'''Beeman's algorithm''' <ref>[http://dx.doi.org/10.1016/0021-9991(76)90059-0 D. Beeman "Some multistep methods for use in molecular dynamics calculations", Journal of Computational Physics '''20''' pp. 130-139 (1976)]</ref>  is is a method for [[Integrators for molecular dynamics |numerically integrating ordinary differential equations]], generally position and velocity, which is closely related to Verlet integration.
 
'''Beeman's algorithm''' <ref>[http://dx.doi.org/10.1016/0021-9991(76)90059-0 D. Beeman "Some multistep methods for use in molecular dynamics calculations", Journal of Computational Physics '''20''' pp. 130-139 (1976)]</ref>  is is a method for [[Integrators for molecular dynamics |numerically integrating ordinary differential equations]], generally position and velocity, which is closely related to Verlet integration.
  
 
+
:<math>x(t+\Delta t) = x(t) + v(t) \Delta t + \left(\frac{2}{3}a(t)  - \frac{1}{6} a(t - \Delta t) \right)\Delta t^2 + O( \Delta t^4) </math>
:<math>x(t+\Delta t) = x(t) + v(t) \Delta t + (\frac{2}{3}a(t)  - \frac{1}{6} a(t - \Delta t) )\Delta t^2 + O( \Delta t^4) </math>
+
:<math>v(t + \Delta t) = v(t) + \left(\frac{1}{3}a(t + \Delta t)  + \frac{5}{6}a(t)  - \frac{1}{6}a(t - \Delta t) \right) \Delta t + O(\Delta t^3)</math>
:<math>v(t + \Delta t) = v(t) + (\frac{1}{3}a(t + \Delta t)  + \frac{5}{6}a(t)  - \frac{1}{6}a(t - \Delta t)) \Delta t + O(\Delta t^3)</math>
 
  
 
where ''x'' is the position, ''v'' is the velocity, ''a'' is the acceleration, ''t'' is time, and <math>\Delta t</math> is the [[Time step|time-step]].
 
where ''x'' is the position, ''v'' is the velocity, ''a'' is the acceleration, ''t'' is time, and <math>\Delta t</math> is the [[Time step|time-step]].
Line 13: Line 12:
 
The velocities at time <math>t =t + \Delta t</math> are then calculated from the positions.
 
The velocities at time <math>t =t + \Delta t</math> are then calculated from the positions.
  
:<math>    v(t + \Delta t) (predicted) = v(t) + \frac{3}{2}a(t) \Delta t - \frac{1}{2}a(t - \Delta t) \Delta t + O( \Delta t^3)</math>
+
:<math>    v(t + \Delta t)_{(\mathrm{predicted})} = v(t) + \frac{3}{2}a(t) \Delta t - \frac{1}{2}a(t - \Delta t) \Delta t + O( \Delta t^3)</math>
  
 
The accelerations at time <math>t =t + \Delta t</math> are then calculated from the positions and predicted velocities.
 
The accelerations at time <math>t =t + \Delta t</math> are then calculated from the positions and predicted velocities.
  
:<math>    v(t + \Delta t) (corrected) = v(t) + \frac{1}{3}a(t + \Delta t) \Delta t + \frac{5}{6}a(t) \Delta t - \frac{1}{6}a(t - \Delta t) \Delta t + O( \Delta t^3) </math>
+
:<math>    v(t + \Delta t)_{(\mathrm{corrected})} = v(t) + \frac{1}{3}a(t + \Delta t) \Delta t + \frac{5}{6}a(t) \Delta t - \frac{1}{6}a(t - \Delta t) \Delta t + O( \Delta t^3) </math>
  
 
==See also==
 
==See also==

Revision as of 12:32, 19 April 2010

Beeman's algorithm [1] is is a method for numerically integrating ordinary differential equations, generally position and velocity, which is closely related to Verlet integration.

x(t+\Delta t) = x(t) + v(t) \Delta t + \left(\frac{2}{3}a(t)  - \frac{1}{6} a(t - \Delta t) \right)\Delta t^2 + O( \Delta t^4)
v(t + \Delta t) = v(t) + \left(\frac{1}{3}a(t + \Delta t)  + \frac{5}{6}a(t)  - \frac{1}{6}a(t - \Delta t) \right) \Delta t + O(\Delta t^3)

where x is the position, v is the velocity, a is the acceleration, t is time, and \Delta t is the time-step.

A predictor-corrector variant is useful when the forces are velocity-dependent:

    x(t+\Delta t) = x(t) + v(t) \Delta t + \frac{2}{3}a(t) \Delta t^2 - \frac{1}{6} a(t - \Delta t) \Delta t^2 + O( \Delta t^4).

The velocities at time t =t + \Delta t are then calculated from the positions.

    v(t + \Delta t)_{(\mathrm{predicted})} = v(t) + \frac{3}{2}a(t) \Delta t - \frac{1}{2}a(t - \Delta t) \Delta t + O( \Delta t^3)

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

    v(t + \Delta t)_{(\mathrm{corrected})} = v(t) + \frac{1}{3}a(t + \Delta t) \Delta t + \frac{5}{6}a(t) \Delta t - \frac{1}{6}a(t - \Delta t) \Delta t + O( \Delta t^3)

See also

References

External links