Beeman's algorithm: Difference between revisions

From SklogWiki
Jump to navigation Jump to search
m (Trivial tidy of LaTeX markup.)
(Interesting: same positions as Verlet)
 
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.
In its standard form, it produces the same trajectories as the Verlet algorithm, but the velocities are more accurate:


:<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 + \left(\frac{2}{3}a(t)  - \frac{1}{6} a(t - \Delta t) \right)\Delta t^2 + O( \Delta t^4) </math>

Latest revision as of 11:01, 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.

In its standard form, it produces the same trajectories as the Verlet algorithm, but the velocities are more accurate:

x(t+Δt)=x(t)+v(t)Δt+(23a(t)−16a(t−Δt))Δt2+O(Δt4)
v(t+Δt)=v(t)+(13a(t+Δt)+56a(t)−16a(t−Δt))Δt+O(Δt3)

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

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

x(t+Δt)=x(t)+v(t)Δt+23a(t)Δt2−16a(t−Δt)Δt2+O(Δt4).

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

v(t+Δt)(predicted)=v(t)+32a(t)Δt−12a(t−Δt)Δt+O(Δt3)

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

v(t+Δt)(corrected)=v(t)+13a(t+Δt)Δt+56a(t)Δt−16a(t−Δt)Δt+O(Δt3)

See also[edit]

References[edit]

External links[edit]