Blue-moon ensemble: Difference between revisions

From VASP Wiki
No edit summary
No edit summary
Line 20: Line 20:


==How to ==
==How to ==
The information needed to determine the blue moon ensemble averages within a [[:Category:Constrained molecular dynamics|Constrained molecular dynamics]] can be obtained by setting {{TAG|LBLUEOUT}}=.TRUE. The following output is written for each MD step in the file {{FILE|REPORT}}:  
The information needed to determine the blue moon ensemble averages within a [[:Category:Constrained molecular dynamics|Constrained molecular dynamics]] can be obtained by setting {{TAG|LBLUEOUT}}=.TRUE. The following output is written for each MD step in the file {{FILE|REPORT}}:
  >Blue_moon
  >Blue_moon
         lambda        |z|^(-1/2)    GkT          |z|^(-1/2)*(lambda+GkT)
         lambda        |z|^(-1/2)    GkT          |z|^(-1/2)*(lambda+GkT)
   b_m>  0.585916E+01  0.215200E+02 -0.117679E+00  0.123556E+03
   b_m>  0.585916E+01  0.215200E+02 -0.117679E+00  0.123556E+03




with the four numerical terms indicating <math>\lambda_{\xi_k}</math>, <math>|Z|^{-1/2}</math>, <math>\left ( \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| \right ) </math>, and <math>\left ( |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|] \right ) </math>, respectively. With this output, the free energy gradient can conveniently be determined (by equation given above) as a ratio between averages of the last and the second numerical terms, which can be performed as follows:
with the four numerical terms indicating <math>\lambda_{\xi_k}</math>, <math>|Z|^{-1/2}</math>, <math>\left ( \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| \right ) </math>, and <math>\left ( |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|] \right ) </math>, respectively. Note that one line introduced by b_m is written for each constrained coordinate. With this output, the free energy gradient with respected to the fixed coordinate <math>{\xi_k}</math> can conveniently be determined (by equation given above) as a ratio between averages of the last and the second numerical terms. For instance, if only a single constraint is used, the free energy gradient can be obtained as follows:


  grep b_m REPORT |awk 'BEGIN {a=0.;b=0.} {a+=$5;b+=$3} END {print a/b}'
  grep b_m REPORT |awk 'BEGIN {a=0.;b=0.} {a+=$5;b+=$3} END {print a/b}'


As example of a blue moon ensemble average, let us consider calculation of unbiased potential energy average from constrained MD. Here we extract <math>|Z|^{-1/2}</math> for each step and store the data in an auxiliary file zet.dat:
As example of a blue moon ensemble average, let us consider calculation of unbiased potential energy average from constrained MD. For simplicity, only a single constraint is assumed. Here we extract <math>|Z|^{-1/2}</math> for each step and store the data in an auxiliary file zet.dat:
  grep b_m REPORT |awk '{print $3}' > zet.dat
  grep b_m REPORT |awk '{print $3}' > zet.dat
Here we extract potential energy for each step and store the data in an auxiliary file energy.dat:
Here we extract potential energy for each step and store the data in an auxiliary file energy.dat:

Revision as of 16:13, 18 April 2022

In general, constrained molecular dynamics generates biased statistical averages. It can be shown that the correct average for a quantity can be obtained using the formula (blue moon ensemble average):

where stands for the statistical average of the quantity enclosed in angular parentheses computed for a constrained ensemble and is a mass metric tensor defined as:

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

where is the Lagrange multiplier associated with the parameter 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:

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

How to

The information needed to determine the blue moon ensemble averages within a Constrained molecular dynamics can be obtained by setting LBLUEOUT=.TRUE. The following output is written for each MD step in the file REPORT:

>Blue_moon
       lambda        |z|^(-1/2)    GkT           |z|^(-1/2)*(lambda+GkT)
  b_m>  0.585916E+01  0.215200E+02 -0.117679E+00  0.123556E+03


with the four numerical terms indicating , , , and , respectively. Note that one line introduced by b_m is written for each constrained coordinate. With this output, the free energy gradient with respected to the fixed coordinate can conveniently be determined (by equation given above) as a ratio between averages of the last and the second numerical terms. For instance, if only a single constraint is used, the free energy gradient can be obtained as follows:

grep b_m REPORT |awk 'BEGIN {a=0.;b=0.} {a+=$5;b+=$3} END {print a/b}'

As example of a blue moon ensemble average, let us consider calculation of unbiased potential energy average from constrained MD. For simplicity, only a single constraint is assumed. Here we extract for each step and store the data in an auxiliary file zet.dat:

grep b_m REPORT |awk '{print $3}' > zet.dat

Here we extract potential energy for each step and store the data in an auxiliary file energy.dat:

grep e_b REPORT |awk '{print $3}' > energy.dat

Finally, the weighted average is determined according to the first formula shown above:

paste energy.dat zet.dat |awk 'BEGIN {a=0.;b=0.} {a+=$1*$2;b+=$2} END {print a/b}'

References