Constrained molecular dynamics: Difference between revisions

From VASP Wiki
Line 61: Line 61:


* For a constrained molecular dynamics run with Andersen thermostat, one has to:
* For a constrained molecular dynamics run with Andersen thermostat, one has to:
#Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}
#Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}.
#Set {{TAG|MDALGO}}=1, and choose an appropriate setting for {{TAG|ANDERSEN_PROB}}
#Set {{TAG|MDALGO}}=1, and choose an appropriate setting for {{TAG|ANDERSEN_PROB}}.
#Define geometric constraints in the {{FILE|ICONST}}-file, and set the {{TAG|STATUS}} parameter for the constrained coordinates to 0
#Define geometric constraints in the {{FILE|ICONST}}-file, and set the {{TAG|STATUS}} parameter for the constrained coordinates to 0.
#When the free-energy gradient is to be computed, set {{TAG|LBLUEOUT}}=.TRUE.
#When the free-energy gradient is to be computed, set {{TAG|LBLUEOUT}}=.TRUE.


== Anderson thermostat ==
* For a constrained molecular dynamics run with Nose-Hoover thermostat, one has to:
#Set the standard MD-related tags: {{TAG|IBRION}}=0, {{TAG|TEBEG}}, {{TAG|POTIM}}, and {{TAG|NSW}}.
#Set {{TAG|MDALGO}}=2, and choose an appropriate setting for {{TAG|SMASS}}.
#Define geometric constraints in the {{FILE|ICONST}}-file, and set the {{TAG|STATUS}} parameter for the constrained coordinates to 0.
#When the free-energy gradient is to be computed, set {{TAG|LBLUEOUT}}=.TRUE.


== References ==
== References ==

Revision as of 10:42, 14 March 2019

In general, constrained molecular dynamics generates biased statistical averages. It can be shown that the correct average for a quantity [math]\displaystyle{ a(\xi) }[/math] can be obtained using the formula:

[math]\displaystyle{ a(\xi)=\frac{\langle |\mathbf{Z}|^{-1/2} a(\xi^*) \rangle_{\xi^*}}{\langle |\mathbf{Z}|^{-1/2}\rangle_{\xi^*}}, }[/math]

where [math]\displaystyle{ \langle ... \rangle_{\xi^*} }[/math] stands for the statistical average of the quantity enclosed in angular parentheses computed for a constrained ensemble and [math]\displaystyle{ Z }[/math] is a mass metric tensor defined as:

[math]\displaystyle{ Z_{\alpha,\beta}={\sum}_{i=1}^{3N} m_i^{-1} \nabla_i \xi_\alpha \cdot \nabla_i \xi_\beta, \, \alpha=1,...,r, \, \beta=1,...,r, }[/math]

It can be shown that the free energy gradient can be computed using the equation:[1][2][3][4]

[math]\displaystyle{ \Bigl(\frac{\partial A}{\partial \xi_k}\Bigr)_{\xi^*}=\frac{1}{\langle|Z|^{-1/2}\rangle_{\xi^*}}\langle |Z|^{-1/2} [\lambda_k +\frac{k_B T}{2 |Z|} \sum_{j=1}^{r}(Z^{-1})_{kj} \sum_{i=1}^{3N} m_i^{-1}\nabla_i \xi_j \cdot \nabla_i |Z|]\rangle_{\xi^*}, }[/math]

where [math]\displaystyle{ \lambda_{\xi_k} }[/math] is the Lagrange multiplier associated with the parameter [math]\displaystyle{ {\xi_k} }[/math] used in the SHAKE algorithm.[5]

The free-energy difference between states (1) and (2) can be computed by integrating the free-energy gradients over a connecting path:

[math]\displaystyle{ {\Delta}A_{1 \rightarrow 2} = \int_{{\xi(1)}}^{{\xi(2)}}\Bigl( \frac{\partial {A}} {\partial \xi} \Bigr)_{\xi^*} \cdot d{\xi}. }[/math]

Note that as the free-energy is a state quantity, the choice of path connecting (1) with (2) is irrelevant.


Constrained molecular dynamics is performed using the SHAKE algorithm.[5]. 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:

  1. 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]
  2. Use the new positions q(tt) 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]
  3. 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]
  4. 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:
  1. Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW.
  2. Set MDALGO=1, and choose an appropriate setting for ANDERSEN_PROB.
  3. Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 0.
  4. When the free-energy gradient is to be computed, set LBLUEOUT=.TRUE.

Anderson thermostat

  • For a constrained molecular dynamics run with Nose-Hoover thermostat, one has to:
  1. Set the standard MD-related tags: IBRION=0, TEBEG, POTIM, and NSW.
  2. Set MDALGO=2, and choose an appropriate setting for SMASS.
  3. Define geometric constraints in the ICONST-file, and set the STATUS parameter for the constrained coordinates to 0.
  4. When the free-energy gradient is to be computed, set LBLUEOUT=.TRUE.

References