Time-propagation algorithms in molecular dynamics: Difference between revisions
No edit summary |
|||
(8 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. 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 | 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> | ||
<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 + \frac{1}{2}\Delta t)=\mathbf{v}_{i}(t- | <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> | <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 |