This is part of the ves module | |
It is only available if you configure PLUMED with ./configure –enable-modules=ves . Furthermore, this feature is still being developed so take care when using it and report any problems on the mailing list. |
Multicanonical target distribution (dynamic).
Use the target distribution to sample the multicanonical ensemble [14] [106]. In this way, in a single molecular dynamics simulation one can obtain information about the system in a range of temperatures. This range is determined through the keywords MIN_TEMP and MAX_TEMP.
The collective variables (CVs) used to construct the bias potential must be:
Other choices of CVs or a different order of the above mentioned CVs are nonsensical. The second CV, the order parameter, must be used when one aims at studying a first order phase transition in the chosen temperature interval [107].
The algorithm will explore the free energy at each temperature up to a predefined free energy threshold \(\epsilon\) specified through the keyword THRESHOLD (in kT units). If only the energy is biased, i.e. no phase transition is considered, then THRESHOLD can be set to around 5. If also an order parameter is used then the THRESHOLD should be greater than the barrier for the transformation in kT. For small systems undergoing a freezing transition THRESHOLD is typically between 20 and 50.
When only the potential energy is used as CV the method is equivalent to the Wang-Landau algorithm [140]. The advantage with respect to Wang-Landau is that instead of sampling the potential energy indiscriminately, an interval is chosen on the fly based on the minimum and maximum targeted temperatures.
The algorithm works as follows. The target distribution for the potential energy is chosen to be:
\[ p(E)= \left\{\begin{array}{ll} \frac{1}{E_2-E_1} & \mathrm{if} \quad E_1<E<E_2 \\ 0 & \mathrm{otherwise} \end{array}\right. \]
where the energy limits \(E_1\) and \(E_2\) are yet to be determined. Clearly the interval \(E_1–E_2\) chosen is related to the interval of temperatures \(T_1-T_2\). To link these two intervals we make use of the following relation:
\[ \beta' F_{\beta'}(E) = \beta F_{\beta}(E) + (\beta' - \beta) E + C, \]
where \(F_{\beta}(E)\) is determined during the optimization and we shall choose \(C\) such that \(F_{\beta'}(E_{m})=0\) with \(E_{m}\) the position of the free energy minimum. Using this relation we employ an iterative procedure to find the energy interval. At iteration \(k\) we have the estimates \(E_1^k\) and \(E_2^k\) for \(E_1\) and \(E_2\), and the target distribution is:
\[ p^k(E)=\frac{1}{E_2^k-E_1^k} \quad \mathrm{for} \quad E_1^k<E<E_2^k. \]
\(E_1^k\) and \(E_2^k\) are obtained from the leftmost solution of \(\beta_2 F_{\beta_2}^{k-1}(E_1^k)=\epsilon\) and the rightmost solution of \(\beta_1 F_{\beta_1}^{k-1}(E_2^k)=\epsilon\). The procedure is repeated until convergence. This iterative approach is similar to that in TD_WELLTEMPERED.
The version of this algorithm in which the energy and an order parameter are biased is similar to the one described in TD_MULTITHERMAL_MULTIBARIC.
The output of these simulations can be reweighted in order to obtain information at all temperatures in the targeted temperature interval. The reweighting can be performed using the action REWEIGHT_TEMP_PRESS.
The following input can be used to run a simulation in the multicanonical ensemble. The temperature interval to be explored is 400-600 K. The energy is used as collective variable. Legendre polynomials are used to construct the bias potential. The averaged stochastic gradient descent algorithm is chosen to optimize the VES functional. The target distribution is updated every 100 optimization steps (200 ps here) using the last estimation of the free energy.
# Use energy and volume as CVs energy: ENERGY # Basis functions bf1: BF_LEGENDRE ORDERcompulsory keyword The order of the basis function expansion. =20 MINIMUMcompulsory keyword The minimum of the interval on which the basis functions are defined. =-25000 MAXIMUMcompulsory keyword The maximum of the interval on which the basis functions are defined. =-23500 # Target distributions td_multi: TD_MULTICANONICAL ... MIN_TEMPcompulsory keyword Minimum temperature. =400 MAX_TEMPcompulsory keyword Maximum temperature. =600 ... # Expansion b1: VES_LINEAR_EXPANSION ... ARGthe input for this action is the scalar output from one or more other actions. =energy BASIS_FUNCTIONScompulsory keyword the label of the one dimensional basis functions that should be used. =bf1 TEMPthe system temperature - this is needed if the MD code does not pass the temperature to PLUMED. =500.0 GRID_BINSthe number of bins used for the grid. =1000 TARGET_DISTRIBUTIONthe label of the target distribution to be used. =td_multi ... # Optimization algorithm o1: OPT_AVERAGED_SGD ... BIAScompulsory keyword the label of the VES bias to be optimized =b1 STRIDEcompulsory keyword the frequency of updating the coefficients given in the number of MD steps. =500 STEPSIZEcompulsory keyword the step size used for the optimization =1.0 FES_OUTPUThow often the FES(s) should be written out to file. =500 BIAS_OUTPUThow often the bias(es) should be written out to file. =500 TARGETDIST_OUTPUThow often the dynamic target distribution(s) should be written out to file. =500 COEFFS_OUTPUTcompulsory keyword ( default=100 ) how often the coefficients should be written to file. =10 TARGETDIST_STRIDEstride for updating a target distribution that is iteratively updated during the optimization. =100... OPT_AVERAGED_SGD
The multicanonical target distribution can also be used to explore a temperature interval in which a first order phase transitions is observed.
THRESHOLD | ( default=5 ) Maximum exploration free energy in kT. |
EPSILON | ( default=10 ) The zeros of the target distribution are changed to e^-EPSILON. |
MIN_TEMP | Minimum temperature. |
MAX_TEMP | Maximum temperature. |
STEPS_TEMP | Number of temperature steps. Only for the 2D version, i.e. energy and order parameter. |
SIGMA | The standard deviation parameters of the Gaussian kernels used for smoothing the target distribution. One value must be specified for each argument, i.e. one value per CV. A value of 0.0 means that no smoothing is performed, this is the default behavior. |