|
|
(7 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| <div id="SHAKE"></div> | | <div id="SHAKE"></div> |
| Constrained molecular dynamics is performed using the SHAKE algorithm.<ref name="Ryckaert77"/>. | | Constrained molecular dynamics is performed using the SHAKE{{cite|ryckaertt:jcp:1977}} algorithm. |
| In this algorithm, the Lagrangian for the system <math>\mathcal{L}</math> is extended as follows: | | In this algorithm, the Lagrangian for the system <math>\mathcal{L}</math> is extended as follows: |
| :<math> | | :<math> |
Line 35: |
Line 35: |
| <div id="Slowgro"></div> | | <div id="Slowgro"></div> |
|
| |
|
| == How to ==
| | == References == |
| Geometric constraints are introduced by defining one or more entries with the STATUS parameter set to 0 in the {{FILE|ICONST}}-file. Constraints can be used within a standard NVT or NpT MD setting introduced by {{TAG|MDALGO}}=1|2|3. Note that fixing geometric parameters related to lattice vectors is not allowed within an NVT simulation (VASP would terminate with an error message). Constraints can be combined with restraints, time-dependent bias potentials ([[:Category:Metadynamics|Metadynamics]]), monitored coordinates and other elements available within the context of MD.
| | |
| | | [[Category:Advanced molecular-dynamics sampling]][[Category:Theory]] |
| | |
| == References == | |
| <references>
| |
| <ref name="Ryckaert77">[http://dx.doi.org/10.1016/0021-9991(77)90098-5 J. P. Ryckaert, G. Ciccotti, and H. J. C. Berendsen, J. Comp. Phys. 23, 327 (1977).]</ref>
| |
| </references>
| |
| ----
| |
| | |
| [[Category:Molecular dynamics]][[Category:Constrained molecular dynamics]][[Category:Theory]][[Category:Howto]] | |
Latest revision as of 09:59, 15 October 2024
Constrained molecular dynamics is performed using the SHAKE[1] algorithm.
In this algorithm, the Lagrangian for the system
is extended as follows:
![{\displaystyle
\mathcal{L}^*(\mathbf{q,\dot{q}}) = \mathcal{L}(\mathbf{q,\dot{q}}) +
\sum_{i=1}^{r} \lambda_i \sigma_i(q),
}](/wiki/index.php?title=Special:MathShowImage&hash=4ae27e3fc6b4fdabf472a9cb894ba9fb&mode=mathml)
where the summation is over r geometric constraints,
is the Lagrangian for the extended system, and λi is a Lagrange multiplier associated with a geometric constraint σi:
![{\displaystyle
\sigma_i(q) = \xi_i({q})-\xi_i \;
}](/wiki/index.php?title=Special:MathShowImage&hash=9b56221ac0fd7fb16181230c7f1e7c95&mode=mathml)
with ξi(q) being a geometric parameter and ξi is the value of ξi(q) fixed during the simulation.
In the SHAKE algorithm, the Lagrange multipliers λi are determined in the iterative procedure:
- Perform a standard MD step (leap-frog algorithm):
![{\displaystyle
v^{t+{\Delta}t/2}_i = v^{t-{\Delta}t/2}_i + \frac{a^{t}_i}{m_i} {\Delta}t
}](/wiki/index.php?title=Special:MathShowImage&hash=8dc5540f55c7ec6f27b2973b6e193e35&mode=mathml)
![{\displaystyle
q^{t+{\Delta}t}_i = q^{t}_i + v^{t+{\Delta}t/2}_i{\Delta}t
}](/wiki/index.php?title=Special:MathShowImage&hash=42290fd4930b9a62251ba3b3ff8f8723&mode=mathml)
- Use the new positions q(t+Δt) to compute Lagrange multipliers for all constraints:
![{\displaystyle
{\lambda}_k= \frac{1}{{\Delta}t^2} \frac{\sigma_k(q^{t+{\Delta}t})}{\sum_{i=1}^N m_i^{-1} \bigtriangledown_i{\sigma}_k(q^{t}) \bigtriangledown_i{\sigma}_k(q^{t+{\Delta}t})}
}](/wiki/index.php?title=Special:MathShowImage&hash=e79a512f4b434acadb1da059a63dd332&mode=mathml)
- Update the velocities and positions by adding a contribution due to restoring forces (proportional to λk):
![{\displaystyle
v^{t+{\Delta}t/2}_i = v^{t-{\Delta}t/2}_i + \left( a^{t}_i-\sum_k \frac{{\lambda}_k}{m_i} \bigtriangledown_i{\sigma}_k(q^{t}) \right ) {\Delta}t
}](/wiki/index.php?title=Special:MathShowImage&hash=c5858023e64364b511d4851f24c67df5&mode=mathml)
![{\displaystyle
q^{t+{\Delta}t}_i = q^{t}_i + v^{t+{\Delta}t/2}_i{\Delta}t
}](/wiki/index.php?title=Special:MathShowImage&hash=42290fd4930b9a62251ba3b3ff8f8723&mode=mathml)
- repeat steps 2-4 until either |σi(q)| are smaller than a predefined tolerance (determined by SHAKETOL), or the number of iterations exceeds SHAKEMAXITER.
References