Next: Lennard-Jones potential revisited
Up: Molecular Dynamics I
Previous: Dynamic system. Equations of
If we have a system of N particles, then equations (1) represent a system of 3N second-order differential equations. It can be reduced to the system of 6N first-order differential equations by introducing additional variable for the first derivative of coordinate. This leads to (2).
Both of these systems can be solved numerically using a finite
difference technique. The general idea of the finite difference
method is the following: given the positions, velocities, and other
possible dynamic information at the time t, we attempt to obtain the
position, velocities, etc. at a later time with a
sufficient degree of accuracy. Trajectory (
etc.)
is obtained by the step-by-step evaluation of these quantities. The
choice of time step
depends upon the numerical integration
method used and on the required accuracy. There exist many numerical
methods to solve the ordinary differential equations. Unfortunately,
not all of them satisfy the specific requirements of the molecular
dynamics simulations:
This algorithm, which exists in various versions, is the most popular
due to its simplicity and efficiency.
Let's expand the coordinates at times and at
:
![]() |
(3) |
![]() |
(4) |
Its main strength is that it allows to calculate coordinates with the
accuracy of , storing only three arrays: two
coordinates and accelerations, and calculating forces only once per
time step. This scheme is symmetric with respect to time
(
and
enter the
equations (4) symmetrically), and hence the algorithm is
time reversible. Velocities are not present explicitly in this
version. Although they can be calculated, but with a second order
accuracy. This is inconvenient, as this introduce some additional
``error'' in the energy or some other properties that depend on it.
Another potential drawback is that because the small, of the order of
, number is added to the difference in the
values, the rounding errors may be needlessly introduced.
Better estimate for the velocity can be obtained by the following
modification, also known as the ``velocity Verlet'' algorithm, which
stores the positions, velocities and accelerations at the same time
t:
![]() |
(5) |
![]() |
(6) |
![]() |
(7) |
![]() |
(8) |
© 1997 Boris Veytsman and Michael Kotelyanskii