Time-propagation algorithms in molecular dynamics: Difference between revisions
No edit summary |
No edit summary |
||
Line 22: | Line 22: | ||
<li><math>\mathbf{v}_{i}(t + \frac{1}{2}\Delta t)=\mathbf{v}_{i}(t)+\frac{\mathbf{F}_{i}(t)}{2m_{i}}\Delta t</math></li> | <li><math>\mathbf{v}_{i}(t + \frac{1}{2}\Delta t)=\mathbf{v}_{i}(t)+\frac{\mathbf{F}_{i}(t)}{2m_{i}}\Delta t</math></li> | ||
<li><math>\mathbf{r}_{i}(t + \Delta t) = \mathbf{r}_{i}(t) + \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)\Delta t</math></li> | <li><math>\mathbf{r}_{i}(t + \Delta t) = \mathbf{r}_{i}(t) + \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)\Delta t</math></li> | ||
<li>compute forces from density functional theory or machine learning</li> | <li>compute forces <math> \mathbf{r}_{i}(t)</math> from density functional theory or machine learning</li> | ||
<li><math>\mathbf{v}_{i}(t + \Delta t)=\mathbf{v}_{i}(t+\frac{1}{2}\Delta t)+\frac{\mathbf{F}_{i}(t+\frac{1}{2}\Delta t)}{2m_{i}}\Delta t</math></li> | <li><math>\mathbf{v}_{i}(t + \Delta t)=\mathbf{v}_{i}(t+\frac{1}{2}\Delta t)+\frac{\mathbf{F}_{i}(t+\frac{1}{2}\Delta t)}{2m_{i}}\Delta t</math></li> | ||
</ol> | </ol> | ||
Line 28: | Line 28: | ||
=== Leap-Frog Integration scheme === | === Leap-Frog Integration scheme === | ||
Another form of the Verlet algorithm can be written in the form of the Leap-Frog algorithm. The Leap-Frog algorithm consists of the following steps: | Another form of the Verlet algorithm can be written in the form of the Leap-Frog algorithm. The Leap-Frog algorithm consists of the following steps: | ||
<ol> | |||
<li> compute forces <math> \mathbf{r}_{i}(t)</math> from density functional theory or machine learning </li> | |||
<li><math>\mathbf{v}_{i}(t + \frac{1}{2}\Delta t)=\mathbf{v}_{i}(t-+ \frac{1}{2}\Delta t)+\frac{\mathbf{F}_{i}(t)}{m_{i}}\Delta t</math></li> | |||
<li><math>\mathbf{r}_{i}(t + \Delta t) = \mathbf{r}_{i}(t) + \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)\Delta t</math></li> | |||
</ol> | |||
{|class="wikitable" style="margin:aut | {|class="wikitable" style="margin:aut |
Revision as of 19:06, 16 October 2024
In molecular dynamics simulations, the positions [math]\displaystyle{ \mathbf{r}_{i}(t) }[/math] and velocities [math]\displaystyle{ \mathbf{v}_{i}(t) }[/math] are monitored as functions of time [math]\displaystyle{ t }[/math]. This time dependence is obtained by integrating Newton's equations of motion. To solve the equations of motion, various integration algorithms have been developed. The time dependence of a particle can be expressed in a Taylor expansion
- [math]\displaystyle{ \mathbf{r}_{i}(t+\Delta t) = \mathbf{r}_{i}(t) + \mathbf{v}_{i}(t)\Delta t + \frac{\mathbf{F}_{i}}{2m}(t)\Delta t^{2} + \frac{\partial^{3} \mathbf{r}_{i}(t)}{\partial t^{3}}\Delta t^{3} + \mathcal{O}(\Delta t^{4}) }[/math]
A backward propagation in time by a time step [math]\displaystyle{ \Delta t }[/math] can be obtained in a similar way
- [math]\displaystyle{ \mathbf{r}_{i}(t-\Delta t) = \mathbf{r}_{i}(t) - \mathbf{v}_{i}(t)\Delta t + \frac{\mathbf{F}_{i}}{2m}(t)\Delta t^{2} - \frac{\partial^{3} \mathbf{r}_{i}(t)}{\partial t^{3}}\Delta t^{3} + \mathcal{O}(\Delta t^{4}) }[/math]
Adding these two equation gives and rearrangement gives the Verlet algorithm
- [math]\displaystyle{ \mathbf{r}_{i}(t+\Delta t) = 2\mathbf{r}_{i}(t)-\mathbf{r}_{i}(t-\Delta t)+\frac{\mathbf{F}_{i}}{2m}(t)\Delta t^{2}+\mathcal{O}(\Delta t ^{3}) }[/math]
The Verlet algorithm can be rearranged to the Velocity-Verlet algorithm by inserting [math]\displaystyle{ \mathbf{v}_{i}(t)=\frac{\mathbf{r}_{i}(t)-\mathbf{r}_{i}(t-\Delta t)}{\Delta t} }[/math]
- [math]\displaystyle{ \mathbf{r}_{i}(t+\Delta t) = \mathbf{r}_{i}(t)+ \mathbf{v}_{i}(t)\Delta t+\frac{\mathbf{F}_{i}}{2m}(t)\Delta t^{2} }[/math]
Velocity-Verlet Integration scheme
The Velocity-Verlet algorithm can be decomposed into the following steps:
- [math]\displaystyle{ \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)=\mathbf{v}_{i}(t)+\frac{\mathbf{F}_{i}(t)}{2m_{i}}\Delta t }[/math]
- [math]\displaystyle{ \mathbf{r}_{i}(t + \Delta t) = \mathbf{r}_{i}(t) + \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)\Delta t }[/math]
- compute forces [math]\displaystyle{ \mathbf{r}_{i}(t) }[/math] from density functional theory or machine learning
- [math]\displaystyle{ \mathbf{v}_{i}(t + \Delta t)=\mathbf{v}_{i}(t+\frac{1}{2}\Delta t)+\frac{\mathbf{F}_{i}(t+\frac{1}{2}\Delta t)}{2m_{i}}\Delta t }[/math]
From these equations it can be seen that the velocity and the position vectors are synchronous in time.
Leap-Frog Integration scheme
Another form of the Verlet algorithm can be written in the form of the Leap-Frog algorithm. The Leap-Frog algorithm consists of the following steps:
- compute forces [math]\displaystyle{ \mathbf{r}_{i}(t) }[/math] from density functional theory or machine learning
- [math]\displaystyle{ \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)=\mathbf{v}_{i}(t-+ \frac{1}{2}\Delta t)+\frac{\mathbf{F}_{i}(t)}{m_{i}}\Delta t }[/math]
- [math]\displaystyle{ \mathbf{r}_{i}(t + \Delta t) = \mathbf{r}_{i}(t) + \mathbf{v}_{i}(t + \frac{1}{2}\Delta t)\Delta t }[/math]
MDALGO | thermostat | integration algorithm |
---|---|---|
0 | Nose-Hoover | Velocity-Verlet |
1 | Andersen | Leap-Frog |
2 | Nose-Hoover | Leap-Frog |
3 | Langevin | Velocity-Verlet |
4 | NHC | Leap-Frog |
5 | CSVR | Leap-Frog |