AVERAGE
This is part of the analysis module

Calculate the ensemble average of a collective variable

The ensemble average for a non-periodic, collective variable, \(s\) is given by the following expression:

\[ \langle s \rangle = \frac{ \sum_{t'=0}^t w(t') s(t') }{ \sum_{t'=0}^t w(t') } \]

Here the sum runs over a the trajectory and \(s(t')\) is used to denote the value of the collective variable at time \(t'\). The final quantity evaluated is a weighted average as the weights, \(w(t')\), allow us to negate the effect any bias might have on the region of phase space sampled by the system. This is discussed in the section of the manual on Analysis.

When the variable is periodic (e.g. TORSION) and has a value, \(s\), in \(a \le s \le b\) the ensemble average is evaluated using:

\[ \langle s \rangle = a + \frac{b - a}{2\pi} \arctan \left[ \frac{ \sum_{t'=0}^t w(t') \sin\left( \frac{2\pi [s(t')-a]}{b - a} \right) }{ \sum_{t'=0}^t w(t') \cos\left( \frac{2\pi [s(t')-a]}{b - a} \right) } \right] \]

Examples

The following example calculates the ensemble average for the distance between atoms 1 and 2 and output this to a file called COLVAR. In this example it is assumed that no bias is acting on the system and that the weights, \(w(t')\) in the formulas above can thus all be set equal to one.

Click on the labels of the actions for more information on what each action computes
tested on master
d1: DISTANCE 
ATOMS
the pair of atom that we are calculating the distance between.
=1,2 d1a: AVERAGE
ARG
the input for this action is the scalar output from one or more other actions.
=d1 PRINT
ARG
the input for this action is the scalar output from one or more other actions.
=d1a
FILE
the name of the file on which to output these quantities
=colvar
STRIDE
compulsory keyword ( default=1 ) the frequency with which the quantities of interest should be output
=100

The following example calculates the ensemble average for the torsional angle involving atoms 1, 2, 3 and 4. At variance with the previous example this quantity is periodic so the second formula in the above introduction is used to calculate the average. Furthermore, by using the CLEAR keyword we have specified that block averages are to be calculated. Consequently, after 100 steps all the information acquired thus far in the simulation is forgotten and the process of averaging is begun again. The quantities output in the colvar file are thus the block averages taken over the first 100 frames of the trajectory, the block average over the second 100 frames of trajectory and so on.

Click on the labels of the actions for more information on what each action computes
tested on master
t1: TORSION 
ATOMS
the four atoms involved in the torsional angle
=1,2,3,4 t1a: AVERAGE
ARG
the input for this action is the scalar output from one or more other actions.
=t1
CLEAR
compulsory keyword ( default=0 ) the frequency with which to clear all the accumulated data.
=100 PRINT
ARG
the input for this action is the scalar output from one or more other actions.
=t1a
FILE
the name of the file on which to output these quantities
=colvar
STRIDE
compulsory keyword ( default=1 ) the frequency with which the quantities of interest should be output
=100

This third example incorporates a bias. Notice that the effect the bias has on the ensemble average is removed by taking advantage of the REWEIGHT_BIAS method. The final ensemble averages output to the file are thus block ensemble averages for the unbiased canonical ensemble at a temperature of 300 K.

Click on the labels of the actions for more information on what each action computes
tested on master
t1: TORSION 
ATOMS
the four atoms involved in the torsional angle
=1,2,3,4 RESTRAINT
ARG
the input for this action is the scalar output from one or more other actions.
=t1
AT
compulsory keyword the position of the restraint
=pi
KAPPA
compulsory keyword ( default=0.0 ) specifies that the restraint is harmonic and what the values of the force constants on each of the variables are
=100. ww: REWEIGHT_BIAS
TEMP
the system temperature.
=300 t1a: AVERAGE
ARG
the input for this action is the scalar output from one or more other actions.
=t1
LOGWEIGHTS
list of actions that calculates log weights that should be used to weight configurations when calculating averages
=ww
CLEAR
compulsory keyword ( default=0 ) the frequency with which to clear all the accumulated data.
=100 PRINT
ARG
the input for this action is the scalar output from one or more other actions.
=t1a
FILE
the name of the file on which to output these quantities
=colvar
STRIDE
compulsory keyword ( default=1 ) the frequency with which the quantities of interest should be output
=100
Glossary of keywords and components
Compulsory keywords
STRIDE ( default=1 ) the frequency with which the data should be collected and added to the quantity being averaged
CLEAR ( default=0 ) the frequency with which to clear all the accumulated data. The default value of 0 implies that all the data will be used and that the grid will never be cleared
NORMALIZATION ( default=true ) This controls how the data is normalized it can be set equal to true, false or ndata. The differences between these options are explained in the manual page for HISTOGRAM
Options
TIMINGS

( default=off ) output information on the timings of the various parts of the calculation

LOGWEIGHTS list of actions that calculates log weights that should be used to weight configurations when calculating averages
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...