This is part of the opes module | |
It is only available if you configure PLUMED with ./configure –enable-modules=opes . Furthermore, this feature is still being developed so take care when using it and report any problems on the mailing list. |
On-the-fly probability enhanced sampling with well-tempered target distribution in exploreation mode.
On-the-fly probability enhanced sampling with well-tempered target distribution (OPES) with well-tempered target distribution, exploration mode [74] .
This OPES_METAD_EXPLORE action samples the well-tempered target distribution, that is defined via its marginal \(p^{\text{WT}}(\mathbf{s})\propto [P(\mathbf{s})]^{1/\gamma}\) over some collective variables (CVs), \(\mathbf{s}=\mathbf{s}(\mathbf{x})\). While OPES_METAD does so by estimating the unbiased distribution \(P(\mathbf{s})\), OPES_METAD_EXPLORE instead estimates on-the-fly the target \(p^{\text{WT}}(\mathbf{s})\) and uses it to define the bias. The bias at step \(n\) is
\[ V_n(\mathbf{s}) = (\gamma-1)\frac{1}{\beta}\log\left(\frac{p^{\text{WT}}_n(\mathbf{s})}{Z_n}+\epsilon\right)\, . \]
See Ref.[74] for a complete description of the method.
Intuitively, while OPES_METAD aims at quickly converging the reweighted free energy, OPES_METAD_EXPLORE aims at quickly sampling the target well-tempered distribution. Given enough simulation time, both will converge to the same bias potential but they do so in a qualitatively different way. Compared to OPES_METAD, OPES_METAD_EXPLORE is more similar to METAD, because it allows the bias to vary significantly, thus enhancing exploration. This goes at the expenses of a typically slower convergence of the reweight estimate. OPES_METAD_EXPLORE can be useful e.g.~for simulating a new system with an unknown BARRIER, or for quickly testing the effectiveness of a new CV that might be degenerate.
Similarly to OPES_METAD, also OPES_METAD_EXPLORE uses a kernel density estimation with the same on-the-fly compression algorithm. The only difference is that the kernels are not weighted, since it estimates the sampled distribution and not the reweighted unbiased one.
All the options of OPES_METAD are also available in OPES_METAD_EXPLORE, except for those that modify the target distribution, since only a well-tempered target is allowed in this case.
The following is a minimal working example:
cv: DISTANCE ATOMSthe pair of atom that we are calculating the distance between. =1,2 opes: OPES_METAD_EXPLORE ARGthe input for this action is the scalar output from one or more other actions. =cv PACEcompulsory keyword the frequency for kernel deposition =500 BARRIERcompulsory keyword the free energy barrier to be overcome. =40 PRINT STRIDEcompulsory keyword ( default=1 ) the frequency with which the quantities of interest should be output =100 FILEthe name of the file on which to output these quantities =COLVAR ARGthe input for this action is the scalar output from one or more other actions. =cv,opes.*
By default this Action calculates the following quantities. These quantities can be referenced elsewhere in the input by using this Action's label followed by a dot and the name of the quantity required from the list below.
Quantity | Description |
bias | the instantaneous value of the bias potential |
rct | estimate of c(t). \(\frac{1}{\beta}\log \langle e^{\beta V} \rangle\), should become flat as the simulation converges. Do NOT use for reweighting |
zed | estimate of Z_n. should become flat once no new CV-space region is explored |
neff | effective sample size |
nker | total number of compressed kernels used to represent the bias |
In addition the following quantities can be calculated by employing the keywords listed below
Quantity | Keyword | Description |
work | CALC_WORK | total accumulated work done by the bias |
nlker | NLIST | number of kernels in the neighbor list |
nlsteps | NLIST | number of steps from last neighbor list update |
TEMP | ( default=-1 ) temperature. If not set, it is taken from MD engine, but not all MD codes provide it |
PACE | the frequency for kernel deposition |
SIGMA | ( default=ADAPTIVE ) the initial widths of the kernels, divided by the square root of gamma. If not set, an adaptive sigma will be used with the given ADAPTIVE_SIGMA_STRIDE |
BARRIER | the free energy barrier to be overcome. It is used to set BIASFACTOR, EPSILON, and KERNEL_CUTOFF to reasonable values |
COMPRESSION_THRESHOLD | ( default=1 ) merge kernels if closer than this threshold, in units of sigma |
FILE | ( default=KERNELS ) a file in which the list of all deposited kernels is stored |
NUMERICAL_DERIVATIVES | ( default=off ) calculate the derivatives for these quantities numerically |
NLIST | ( default=off ) use neighbor list for kernels summation, faster but experimental |
NLIST_PACE_RESET | ( default=off ) force the reset of the neighbor list at each PACE. Can be useful with WALKERS_MPI |
FIXED_SIGMA | ( default=off ) do not decrease sigma as the simulation proceeds. Can be added in a RESTART, to keep in check the number of compressed kernels |
RECURSIVE_MERGE_OFF | ( default=off ) do not recursively attempt kernel merging when a new one is added |
NO_ZED | ( default=off ) do not normalize over the explored CV space, Z_n=1 |
STORE_STATES | ( default=off ) append to STATE_WFILE instead of ovewriting it each time |
CALC_WORK | ( default=off ) calculate the total accumulated work done by the bias since last restart |
WALKERS_MPI | ( default=off ) switch on MPI version of multiple walkers |
SERIAL | ( default=off ) perform calculations in serial |
ARG | the input for this action is the scalar output from one or more other actions. The particular scalars that you will use are referenced using the label of the action. If the label appears on its own then it is assumed that the Action calculates a single scalar value. The value of this scalar is thus used as the input to this new action. If * or *.* appears the scalars calculated by all the proceeding actions in the input file are taken. Some actions have multi-component outputs and each component of the output has a specific label. For example a DISTANCE action labelled dist may have three components x, y and z. To take just the x component you should use dist.x, if you wish to take all three components then use dist.*.More information on the referencing of Actions can be found in the section of the manual on the PLUMED Getting Started. Scalar values can also be referenced using POSIX regular expressions as detailed in the section on Regular Expressions. To use this feature you you must compile PLUMED with the appropriate flag.. You can use multiple instances of this keyword i.e. ARG1, ARG2, ARG3... |
ADAPTIVE_SIGMA_STRIDE | number of steps for measuring adaptive sigma. Default is 10xPACE |
SIGMA_MIN | never reduce SIGMA below this value |
BIASFACTOR | the gamma bias factor used for the well-tempered target distribution. Cannot be 'inf' |
EPSILON | the value of the regularization constant for the probability |
KERNEL_CUTOFF | truncate kernels at this distance, in units of sigma |
NLIST_PARAMETERS | ( default=3.0,0.5 ) the two cutoff parameters for the kernels neighbor list |
FMT | specify format for KERNELS file |
STATE_RFILE | read from this file the compressed kernels and all the info needed to RESTART the simulation |
STATE_WFILE | write to this file the compressed kernels and all the info needed to RESTART the simulation |
STATE_WSTRIDE | number of MD steps between writing the STATE_WFILE. Default is only on CPT events (but not all MD codes set them) |
EXCLUDED_REGION | kernels are not deposited when the action provided here has a nonzero value, see example above |
RESTART | allows per-action setting of restart (YES/NO/AUTO) |
UPDATE_FROM | Only update this action from this time |
UPDATE_UNTIL | Only update this action until this time |