Time-propagation algorithms in molecular dynamics: Difference between revisions
No edit summary |
|||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
In molecular dynamics simulations, the positions <math>\mathbf{r}_{i}(t)</math> and velocities <math>\mathbf{v}_{i}(t)</math> are monitored as functions of time <math>t</math>. This time dependence is obtained by integrating Newton's equations of motion. When integrating the equations of motions it is important to use symplectic algorithms which conserve phase space volume. To solve the equations of motion under symplectic conditions, various integration algorithms have been developed. The time dependence of a particle can be expressed in a Taylor expansion | In [[MD|molecular dynamics simulations]], the ionic positions <math>\mathbf{r}_{i}(t)</math> and velocities <math>\mathbf{v}_{i}(t)</math> are monitored as functions of time <math>t</math>. This time dependence is obtained by integrating Newton's equations of motion. When integrating the equations of motions it is important to use symplectic algorithms which conserve the phase-space volume. To solve the equations of motion under symplectic conditions, various integration algorithms have been developed. The time dependence of a particle can be expressed in a Taylor expansion | ||
::<math> | ::<math> | ||
\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}) | \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}) | ||
Line 15: | Line 15: | ||
::<math> | ::<math> | ||
\mathbf{r}_{i}(t+\Delta t) = | \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} | \mathbf{r}_{i}(t)+ \mathbf{v}_{i}(t)\Delta t+\frac{\mathbf{F}_{i}}{2m}(t)\Delta t^{2}. | ||
</math> | </math> | ||
== Velocity-Verlet integration scheme == | |||
The Velocity-Verlet algorithm can be decomposed into the following steps: | The Velocity-Verlet algorithm can be decomposed into the following steps: | ||
<ol> | <ol> | ||
Line 23: | Line 23: | ||
<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 <math> \mathbf{F}_{i}(t)</math> from density functional theory or machine learning</li> | <li>compute forces <math> \mathbf{F}_{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+ | <li><math>\mathbf{v}_{i}(t + \Delta t)=\mathbf{v}_{i}(t+\frac{1}{2}\Delta t)+\frac{\mathbf{F}_{i}(t+\Delta t)}{2m_{i}}\Delta t</math></li> | ||
</ol> | </ol> | ||
From these equations it can be seen that the velocity and the position vectors are synchronous in time. | 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: | 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> | <ol> | ||
Line 33: | Line 34: | ||
<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> | ||
</ol> | </ol> | ||
In this form the velocity and the position vectors are asynchronous in time. | |||
== Thermostats and used integrators == | |||
{|class="wikitable" style="margin:aut | {|class="wikitable" style="margin:aut | ||
! MDALGO !! thermostat !! integration algorithm | ! MDALGO !! thermostat !! integration algorithm | ||
|- | |- | ||
|style="text-align:center;"| 0 || [[Nose-Hoover thermostat|Nose-Hoover]] || style="text-align:center;"| Velocity-Verlet | |style="text-align:center;"| 0 || [[Nose-Hoover thermostat|Nose-Hoover]] || style="text-align:center;"| [[#Velocity-Verlet integration scheme|Velocity-Verlet]] | ||
|- | |- | ||
|style="text-align:center;"| 1 || [[Andersen thermostat|Andersen]] || style="text-align:center;"| Leap-Frog | |style="text-align:center;"| 1 || [[Andersen thermostat|Andersen]] || style="text-align:center;"| [[#Leap-Frog integration scheme|Leap-Frog]] | ||
|- | |- | ||
|style="text-align:center;"| 2 || [[Nose-Hoover thermostat|Nose-Hoover]] || style="text-align:center;"| Leap-Frog | |style="text-align:center;"| 2 || [[Nose-Hoover thermostat|Nose-Hoover]] || style="text-align:center;"| [[#Leap-Frog integration scheme|Leap-Frog]] | ||
|- | |- | ||
|style="text-align:center;"| 3 || [[Langevin thermostat|Langevin]] || style="text-align:center;"| Velocity-Verlet | |style="text-align:center;"| 3 || [[Langevin thermostat|Langevin]] || style="text-align:center;"| [[#Velocity-Verlet Integration scheme|Velocity-Verlet]] | ||
|- | |- | ||
|style="text-align:center;"| 4 || [[Nose-Hoover-chain thermostat|NHC]] || style="text-align:center;"| | |style="text-align:center;"| 4 || [[Nose-Hoover-chain thermostat|NHC]] || style="text-align:center;"| [[#Velocity-Verlet integration scheme|Velocity-Verlet]] | ||
|- | |- | ||
|style="text-align:center;"| 5 || [[CSVR thermostat|CSVR]] || style="text-align:center;"| Leap-Frog | |style="text-align:center;"| 5 || [[CSVR thermostat|CSVR]] || style="text-align:center;"| [[#Leap-Frog integration scheme|Leap-Frog]] | ||
|- | |||
|style="text-align:center;"| 5 || [[MDALGO#MDALGO=13: Multiple Andersen thermostats|Multiple Andersen]] || style="text-align:center;"| [[#Leap-Frog integration scheme|Leap-Frog]] | |||
|} | |} | ||
== Related tags and articles == | |||
{{TAG|IBRION}}, {{TAG|MDALGO}}, [[Thermostats]] | |||
[[Category:Theory]][[Category:Molecular dynamics]][[Category:Thermostats]] |
Latest revision as of 10:28, 18 October 2024
In molecular dynamics simulations, the ionic positions and velocities are monitored as functions of time . This time dependence is obtained by integrating Newton's equations of motion. When integrating the equations of motions it is important to use symplectic algorithms which conserve the phase-space volume. To solve the equations of motion under symplectic conditions, various integration algorithms have been developed. The time dependence of a particle can be expressed in a Taylor expansion
A backward propagation in time by a time step can be obtained in a similar way
Adding these two equation gives and rearrangement gives the Verlet algorithm
The Verlet algorithm can be rearranged to the Velocity-Verlet algorithm by inserting
Velocity-Verlet integration scheme
The Velocity-Verlet algorithm can be decomposed into the following steps:
- compute forces from density functional theory or machine learning
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 from density functional theory or machine learning
In this form the velocity and the position vectors are asynchronous in time.
Thermostats and used integrators
MDALGO | thermostat | integration algorithm |
---|---|---|
0 | Nose-Hoover | Velocity-Verlet |
1 | Andersen | Leap-Frog |
2 | Nose-Hoover | Leap-Frog |
3 | Langevin | Velocity-Verlet |
4 | NHC | Velocity-Verlet |
5 | CSVR | Leap-Frog |
5 | Multiple Andersen | Leap-Frog |