Constrained molecular dynamics: Difference between revisions

From VASP Wiki
Line 74: Line 74:
<ref name="Darve02">[http://dx.doi.org/10.1080/08927020211975 E. Darve, M. A. Wilson, and A. Pohorille, Mol. Simul. 28, 113 (2002).]</ref>
<ref name="Darve02">[http://dx.doi.org/10.1080/08927020211975 E. Darve, M. A. Wilson, and A. Pohorille, Mol. Simul. 28, 113 (2002).]</ref>
<ref name="Fleurat05">[http://dx.doi.org/10.1063/1.1948367 P. Fleurat-Lessard and T. Ziegler, J. Chem. Phys. 123, 084101 (2005).]</ref>
<ref name="Fleurat05">[http://dx.doi.org/10.1063/1.1948367 P. Fleurat-Lessard and T. Ziegler, J. Chem. Phys. 123, 084101 (2005).]</ref>
<ref name="Toton10">[http://dx.doi.org/10.1088/0953-8984/22/7/074205 D. Toton, C. D. Lorenz, N. Rompotis, N. Martsinovich, and L. Kantorovich, J. Phys.: Condens. Matter 22, 074205 (2010).]</ref>
<ref name="Kantorovich08">[http://dx.doi.org/10.1103/PhysRevB.78.094305 L. Kantorovich and N. Rompotis, Phys. Rev. B 78, 094305 (2008).]</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>
<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 15:52, 13 March 2019

In general, constrained molecular dynamics generates biased statistical averages. It can be shown that the correct average for a quantity Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): a(\xi ) can be obtained using the formula:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): a(\xi )={\frac {\langle |{\mathbf {Z}}|^{{-1/2}}a(\xi ^{*})\rangle _{{\xi ^{*}}}}{\langle |{\mathbf {Z}}|^{{-1/2}}\rangle _{{\xi ^{*}}}}},

where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \langle ...\rangle _{{\xi ^{*}}} stands for the statistical average of the quantity enclosed in angular parentheses computed for a constrained ensemble and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): Z is a mass metric tensor defined as:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): 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,

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

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\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 ^{*}}},

where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \lambda _{{\xi _{k}}} is the Lagrange multiplier associated with the parameter Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\xi _{k}} 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:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\Delta }A_{{1\rightarrow 2}}=\int _{{{\xi (1)}}}^{{{\xi (2)}}}{\Bigl (}{\frac {\partial {A}}{\partial \xi }}{\Bigr )}_{{\xi ^{*}}}\cdot d{\xi }.

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 Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\mathcal {L}} is extended as follows:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\mathcal {L}}^{*}({\mathbf {q,{\dot {q}}}})={\mathcal {L}}({\mathbf {q,{\dot {q}}}})+\sum _{{i=1}}^{{r}}\lambda _{i}\sigma _{i}(q),

where the summation is over r geometric constraints, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\mathcal {L}}^{*} is the Lagrangian for the extended system, and λi is a Lagrange multiplier associated with a geometric constraint σi:

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): \sigma _{i}(q)=\xi _{i}({q})-\xi _{i}\;

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):
    Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): v_{i}^{{t+{\Delta }t/2}}=v_{i}^{{t-{\Delta }t/2}}+{\frac {a_{i}^{{t}}}{m_{i}}}{\Delta }t
    Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): q_{i}^{{t+{\Delta }t}}=q_{i}^{{t}}+v_{i}^{{t+{\Delta }t/2}}{\Delta }t
  2. Use the new positions q(tt) to compute Lagrange multipliers for all constraints:
    Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): {\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}})}}
  3. Update the velocities and positions by adding a contribution due to restoring forces (proportional to λk):
    Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): v_{i}^{{t+{\Delta }t/2}}=v_{i}^{{t-{\Delta }t/2}}+\left(a_{i}^{{t}}-\sum _{k}{\frac {{\lambda }_{k}}{m_{i}}}\bigtriangledown _{i}{\sigma }_{k}(q^{{t}})\right){\Delta }t
    Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://www.vasp.at/wiki/restbase/vasp.at/v1/":): q_{i}^{{t+{\Delta }t}}=q_{i}^{{t}}+v_{i}^{{t+{\Delta }t/2}}{\Delta }t
  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.


References