ECV_MULTITHERMAL
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\, , \]

where \(\beta'\) are the temperatures to be sampled and \(\beta\) is the temperature at which the simulation is conducted. 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 [75]. 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.

Examples

Fixed volume, multicanonical simulation:

Click on the labels of the actions for more information on what each action computes
tested on v2.9
ene: ENERGY 
ecv: ECV_MULTITHERMAL ARGcompulsory keyword 
the label of the internal energy of the system. =ene TEMPcompulsory keyword ( default=-1 )
temperature. =300 TEMP_MINthe minimum of the temperature range =300 TEMP_MAXthe maximum of the temperature range =800 
opes: OPES_EXPANDED ARGcompulsory keyword 
the label of the ECVs that define the expansion. =ecv.ene PACEcompulsory keyword 
how often the bias is updated =500 

which, if your MD code passes the temperature to PLUMED, is equivalent to:

Click on the labels of the actions for more information on what each action computes
tested on v2.9
ene: ENERGY 
ecv: ECV_MULTITHERMAL ARGcompulsory keyword 
the label of the internal energy of the system. =ene TEMP_MAXthe maximum of the temperature range =800 
opes: OPES_EXPANDED ARGcompulsory keyword 
the label of the ECVs that define the expansion. =ecv.ene PACEcompulsory keyword 
how often the bias is updated =500 

If instead the pressure is fixed and the volume changes, you shuld calculate the internal energy first, \(U=E+pV\)

Click on the labels of the actions for more information on what each action computes
tested on v2.9
ene: ENERGY 
vol: VOLUME 
intEne: CUSTOM PERIODICcompulsory keyword 
if the output of your function is periodic then you should specify the periodicity
of the function. =NO ARGthe input for this action is the scalar output from one or more other actions. =ene,vol FUNCcompulsory keyword 
the function you wish to evaluate =x+0.06022140857*y 
ecv: ECV_MULTITHERMAL ARGcompulsory keyword 
the label of the internal energy of the system. =intEne TEMP_MAXthe maximum of the temperature range =800 
opes: OPES_EXPANDED ARGcompulsory keyword 
the label of the ECVs that define the expansion. =ecv.intEne PACEcompulsory keyword 
how often the bias is updated =500 

Notice that \(p=0.06022140857\) corresponds to 1 bar when using the default PLUMED units.

Glossary of keywords and components
Compulsory keywords
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
Options
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