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 [13] [86]. 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 [87].
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 [111]. 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... OPT_AVERAGED_SGDORDER=20compulsory keyword The order of the basis function expansion.MINIMUM=-25000compulsory keyword The minimum of the interval on which the basis functions are defined.MAXIMUM=-23500 # Target distributions td_multi: TD_MULTICANONICAL ...compulsory keyword The maximum of the interval on which the basis functions are defined.MIN_TEMP=400compulsory keyword Minimum temperature.MAX_TEMP=600 ... # Expansion b1: VES_LINEAR_EXPANSION ...compulsory keyword Maximum temperature.ARG=energythe input for this action is the scalar output from one or more other actions.BASIS_FUNCTIONS=bf1compulsory keyword the label of the one dimensional basis functions that should be used.TEMP=500.0the system temperature - this is needed if the MD code does not pass the temperature to PLUMED.GRID_BINS=1000the number of bins used for the grid.TARGET_DISTRIBUTION=td_multi ... # Optimization algorithm o1: OPT_AVERAGED_SGD ...the label of the target distribution to be used.BIAS=b1compulsory keyword the label of the VES bias to be optimizedSTRIDE=500compulsory keyword the frequency of updating the coefficients given in the number of MD steps.STEPSIZE=1.0compulsory keyword the step size used for the optimizationFES_OUTPUT=500how often the FES(s) should be written out to file.BIAS_OUTPUT=500how often the bias(es) should be written out to file.TARGETDIST_OUTPUT=500how often the dynamic target distribution(s) should be written out to file.COEFFS_OUTPUT=10compulsory keyword ( default=100 ) how often the coefficients should be written to file.TARGETDIST_STRIDE=100stride for updating a target distribution that is iteratively updated during the optimization.
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. |