Beeman's algorithm: Difference between revisions
Jump to navigation
Jump to search
Carl McBride (talk | contribs) 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 11: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.
where x is the position, v is the velocity, a is the acceleration, t is time, and is the time-step.
A predictor-corrector variant is useful when the forces are velocity-dependent:
The velocities at time are then calculated from the positions.
The accelerations at time are then calculated from the positions and predicted velocities.