Verlet-Algorithmus
Der Verlet-Algorithmus ist eine Methode zur numerischen Lösung der Newton’schen Bewegungsgleichungen. Er entsteht aus dem Leapfrog-Verfahren durch Elimination der Geschwindigkeitsberechnungen. Der Verlet-Algorithmus wird oft bei Molekulardynamik-Simulationen in der theoretischen Chemie verwendet. Der Algorithmus ist nach Loup Verlet benannt.
Herleitung[Bearbeiten]
Es werden zwei Taylor-Entwicklungen dritter Ordnung der Position <math> \vec x(t) </math> aufgestellt. Dabei wird eine davon vorwärts <math>(t + \Delta t)</math> und eine rückwärts <math>(t - \Delta t)</math> in der Zeit entwickelt. Hierbei ist <math> \vec v </math> die Geschwindigkeit, <math> \vec a </math> die Beschleunigung und <math>\vec{b}</math> der Ruck.
- <math> \vec x(t+\Delta t) = \vec x(t) + \vec v(t) \Delta t + \frac12 \vec a(t) \Delta t^2 + \frac16 \vec b \Delta t^3 + O(\Delta t^4) </math>
- <math> \vec x(t-\Delta t) = \vec x(t) - \vec v(t) \Delta t + \frac12 \vec a(t) \Delta t^2 - \frac16 \vec b \Delta t^3 + O(\Delta t^4) </math>
Addition der beiden Gleichungen ergibt
- <math> \vec x(t+\Delta t) = 2 \vec x(t) - \vec x (t - \Delta t) + \vec a(t) \Delta t^2 + O(\Delta t^4) </math>.
Dies ist die allgemeine Gleichung des Verlet-Algorithmus. Die Beschleunigung <math> \vec a (t) </math> hängt dabei vom Potenzial <math> V </math> und der Masse des Teilchens <math> m </math> ab, sie kann mit
- <math> \vec a(t) = -\frac1m \nabla V(x(t)) = \frac{\vec F}m </math>
bestimmt werden.
Anwendung[Bearbeiten]
Ist die Position <math> \vec x_0 </math> bekannt, muss zuerst die Position <math> \vec x_1 </math> über
- <math> \vec x_1 = \vec x_0 + \vec v_0 \Delta t + \frac12 \vec a_0 \Delta t^2 </math>
bestimmt werden. Sind dann die Positionen <math> \vec x_0 </math> und <math> \vec x_1 </math> bekannt, können über Iteration des Verlet-Algorithmus alle folgenden <math> \vec x_n </math> bestimmt werden.
- <math> \vec x_{n+1} = 2 \vec x_n - \vec x_{n-1} + \vec a_n \Delta t^2 </math>
Der Verlet-Algorithmus liefert nur Positionen und keine Geschwindigkeiten. Diese müssen deshalb extra bestimmt werden, um daraus die kinetische Energie und damit die Gesamtenergie zu berechnen. Dies ist notwendig, um die Energieerhaltung zu überprüfen.
Weblinks[Bearbeiten]
- Alexander Fulst, Christian Schwermann: Molekulardynamiksimulation. S. 7–10.
- Thomas Jacobsen: Advanced Character Physics. In: Gamasutra. (englisch)