| 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. |
Expand a simulation to sample multiple temperatures simultaneously.
The internal energy \(U\) of of the system should be used as ARG.
\[ \Delta u_{\beta'}=(\beta-\beta') U\, . \]
In case of fixed volume, the internal energy is simply the potential energy given by the ENERGY colvar \(U=E\), and you will run a multicanonical simulation. If instead the simulation is at fixed pressure \(p\), the contribution of the volume must be added \(U=E+pV\) (see example below).
By defauly the needed steps in temperatures are automatically guessed from few initial unbiased MD steps, as descibed in [Invernizzi2020unified]. Otherwise you can manually set this number with TEMP_STEPS. In both cases the steps will be geometrically spaced in temperature. Use instead the keyword NO_GEOM_SPACING for a linear spacing in the inverse temperature (beta), that typically increases the focus on lower temperatures. Finally, you can use instead the keyword TEMP_SET_ALL and explicitly provide each temperature.
You can reweight the resulting simulation at any temperature in the chosen range, using e.g. REWEIGHT_TEMP_PRESS. A similar target distribution can be sampled using TD_MULTICANONICAL.
Fixed volume, multicanonical simulation:
ene: ENERGY ecv: ECV_MULTITHERMALARG=enecompulsory keyword the label of the internal energy of the system.TEMP=300compulsory keyword ( default=-1 ) temperature.TEMP_MIN=300the minimum of the temperature rangeTEMP_MAX=800 opes: OPES_EXPANDEDthe maximum of the temperature rangeARG=ecv.enecompulsory keyword the label of the ECVs that define the expansion.PACE=500compulsory keyword how often the bias is updated
which, if your MD code passes the temperature to PLUMED, is equivalent to:
ene: ENERGY ecv: ECV_MULTITHERMALARG=enecompulsory keyword the label of the internal energy of the system.TEMP_MAX=800 opes: OPES_EXPANDEDthe maximum of the temperature rangeARG=ecv.enecompulsory keyword the label of the ECVs that define the expansion.PACE=500compulsory keyword how often the bias is updated
If instead the pressure is fixed and the volume changes, you shuld calculate the internal energy first, \(U=E+pV\)
ene: ENERGY vol: VOLUME intEne: CUSTOMPERIODIC=NOcompulsory keyword if the output of your function is periodic then you should specify the periodicity of the function.ARG=ene,volthe input for this action is the scalar output from one or more other actions.FUNC=x+0.06022140857*y ecv: ECV_MULTITHERMALcompulsory keyword the function you wish to evaluateARG=intEnecompulsory keyword the label of the internal energy of the system.TEMP_MAX=800 opes: OPES_EXPANDEDthe maximum of the temperature rangeARG=ecv.intEnecompulsory keyword the label of the ECVs that define the expansion.PACE=500compulsory keyword how often the bias is updated
Notice that \(p=0.06022140857\) corresponds to 1 bar when using the default PLUMED units.
| TEMP | ( default=-1 ) temperature. If not specified tries to get it from MD engine |
| ARG | the label of the internal energy of the system. If volume is fixed it is calculated by the ENERGY colvar |
| NUMERICAL_DERIVATIVES | ( default=off ) calculate the derivatives for these quantities numerically |
| NO_GEOM_SPACING | ( default=off ) do not use geometrical spacing in temperature, but instead linear spacing in inverse temperature |
| TEMP_MIN | the minimum of the temperature range |
| TEMP_MAX | the maximum of the temperature range |
| TEMP_STEPS | the number of steps in temperature |
| TEMP_SET_ALL | manually set all the temperatures |