Constrained molecular dynamics: Difference between revisions
No edit summary |
No edit summary |
||
| Line 45: | Line 45: | ||
== References == | == References == | ||
<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> | <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> | </references> | ||
Revision as of 14:23, 18 April 2022
Constrained molecular dynamics is performed using the SHAKE algorithm.[1]. In this algorithm, the Lagrangian for the system [math]\displaystyle{ \mathcal{L} }[/math] is extended as follows:
- [math]\displaystyle{ \mathcal{L}^*(\mathbf{q,\dot{q}}) = \mathcal{L}(\mathbf{q,\dot{q}}) + \sum_{i=1}^{r} \lambda_i \sigma_i(q), }[/math]
where the summation is over r geometric constraints, [math]\displaystyle{ \mathcal{L}^* }[/math] is the Lagrangian for the extended system, and λi is a Lagrange multiplier associated with a geometric constraint σi:
- [math]\displaystyle{ \sigma_i(q) = \xi_i({q})-\xi_i \; }[/math]
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):
- [math]\displaystyle{ v^{t+{\Delta}t/2}_i = v^{t-{\Delta}t/2}_i + \frac{a^{t}_i}{m_i} {\Delta}t }[/math]
- [math]\displaystyle{ q^{t+{\Delta}t}_i = q^{t}_i + v^{t+{\Delta}t/2}_i{\Delta}t }[/math]
- Use the new positions q(t+Δt) to compute Lagrange multipliers for all constraints:
- [math]\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})} }[/math]
- Update the velocities and positions by adding a contribution due to restoring forces (proportional to λk):
- [math]\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 }[/math]
- [math]\displaystyle{ q^{t+{\Delta}t}_i = q^{t}_i + v^{t+{\Delta}t/2}_i{\Delta}t }[/math]
- repeat steps 2-4 until either |σi(q)| are smaller than a predefined tolerance (determined by SHAKETOL), or the number of iterations exceeds SHAKEMAXITER.
Anderson thermostat
- For a constrained molecular dynamics run with Andersen thermostat, one has to:
- Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW.
- Set MDALGO=1, and choose an appropriate setting for ANDERSEN_PROB.
- Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 0.
- When the free-energy gradient is to be computed, set LBLUEOUT=.TRUE.