**gmx energy** extracts energy components or distance restraint data from an energy file. The user is prompted to interactively select the desired energy terms.
Average, RMSD, and drift are calculated with full precision from the simulation (see printed manual). Drift is calculated by performing a least-squares fit of the data to a straight line. The reported total drift is the difference of the fit at the first and last point. An error estimate of the average is given based on a block averages over 5 blocks using the full-precision averages. The error estimate can be performed over multiple block lengths with the options **-nbmin** and **-nbmax**. **Note** that in most cases the energy files contains averages over all MD steps, or over many more points than the number of frames in energy file. This makes the **gmx energy** statistics output more accurate than the **.xvg** output. When exact averages are not present in the energy file, the statistics mentioned above are simply over the single, per-frame energy values.

The term fluctuation gives the RMSD around the least-squares fit.

Some fluctuation-dependent properties can be calculated provided the correct energy terms are selected, and that the command line option **-fluct_props** is given. The following properties will be computed:
Property Energy terms needed
---------------------------------------------------
Heat capacity C_p (NPT sims): Enthalpy, Temp
Heat capacity C_v (NVT sims): Etot, Temp
Thermal expansion coeff. (NPT): Enthalpy, Vol, Temp
Isothermal compressibility: Vol, Temp
Adiabatic bulk modulus: Vol, Temp
---------------------------------------------------
You always need to set the number of molecules **-nmol**. The C_p/C_v computations do **not** include any corrections for quantum effects. Use the **gmx dos** program if you need that (and you do).

When the **-viol** option is set, the time averaged violations are plotted and the running time-averaged and instantaneous sum of violations are recalculated. Additionally running time-averaged and instantaneous distances between selected pairs can be plotted with the **-pairs** option.

Options **-ora**, **-ort**, **-oda**, **-odr** and **-odt** are used for analyzing orientation restraint data. The first two options plot the orientation, the last three the deviations of the orientations from the experimental values. The options that end on an ’a’ plot the average over time as a function of restraint. The options that end on a ’t’ prompt the user for restraint label numbers and plot the data as a function of time. Option **-odr** plots the RMS deviation as a function of restraint. When the run used time or ensemble averaged orientation restraints, option **-orinst** can be used to analyse the instantaneous, not ensemble-averaged orientations and deviations instead of the time and ensemble averages.

Option **-oten** plots the eigenvalues of the molecular order tensor for each orientation restraint experiment. With option **-ovec** also the eigenvectors are plotted.

Option **-odh** extracts and plots the free energy data (Hamiltoian differences and/or the Hamiltonian derivative dhdl) from the **ener.edr** file.

With **-fee** an estimate is calculated for the free-energy difference with an ideal gas state:
Delta A = A(N,V,T) - A_idealgas(N,V,T) = kT ln(exp(U_pot/kT))
Delta G = G(N,p,T) - G_idealgas(N,p,T) = kT ln(exp(U_pot/kT))
where k is Boltzmann’s constant, T is set by **-fetemp** and the average is over the ensemble (or time in a trajectory). Note that this is in principle only correct when averaging over the whole (Boltzmann) ensemble and using the potential energy. This also allows for an entropy estimate using:
Delta S(N,V,T) = S(N,V,T) - S_idealgas(N,V,T) = (U_pot - Delta A)/T
Delta S(N,p,T) = S(N,p,T) - S_idealgas(N,p,T) = (U_pot + pV - Delta G)/T

When a second energy file is specified (**-f2**), a free energy difference is calculated
dF = -kT ln(exp(-(E_B-E_A)/kT)_A) , where E_A and E_B are the energies from the first and second energy files, and the average is over the ensemble A. The running average of the free energy difference is printed to a file specified by **-ravg**. **Note** that the energies must both be calculated from the same trajectory.

Options to specify input and output files:
**-f*** [<.edr>] (ener.edr) (Input)*

Energy file

**-f2*** [<.edr>] (ener.edr) (Input, Optional)*

Energy file

**-s*** [<.tpr/.tpb/...>] (topol.tpr) (Input, Optional)*

Run input file: tpr tpb tpa

**-o*** [<.xvg>] (energy.xvg) (Output)*

xvgr/xmgr file

**-viol*** [<.xvg>] (violaver.xvg) (Output, Optional)*

xvgr/xmgr file

**-pairs*** [<.xvg>] (pairs.xvg) (Output, Optional)*

xvgr/xmgr file

**-ora*** [<.xvg>] (orienta.xvg) (Output, Optional)*

xvgr/xmgr file

**-ort*** [<.xvg>] (orientt.xvg) (Output, Optional)*

xvgr/xmgr file

**-oda*** [<.xvg>] (orideva.xvg) (Output, Optional)*

xvgr/xmgr file

**-odr*** [<.xvg>] (oridevr.xvg) (Output, Optional)*

xvgr/xmgr file

**-odt*** [<.xvg>] (oridevt.xvg) (Output, Optional)*

xvgr/xmgr file

**-oten*** [<.xvg>] (oriten.xvg) (Output, Optional)*

xvgr/xmgr file

**-corr*** [<.xvg>] (enecorr.xvg) (Output, Optional)*

xvgr/xmgr file

**-vis*** [<.xvg>] (visco.xvg) (Output, Optional)*

xvgr/xmgr file

**-ravg*** [<.xvg>] (runavgdf.xvg) (Output, Optional)*

xvgr/xmgr file

**-odh*** [<.xvg>] (dhdl.xvg) (Output, Optional)*

xvgr/xmgr file

Other options:

**-nice*** <int> (19)*

Set the nicelevel

**-b*** <time> (0)*

First frame (ps) to read from trajectory

**-e*** <time> (0)*

Last frame (ps) to read from trajectory

**-[no]w*** (no)*

View output **.xvg**, **.xpm**, **.eps** and **.pdb** files

**-xvg*** <enum> (xmgrace)*

xvg plot formatting: xmgrace, xmgr, none

**-[no]fee*** (no)*

Do a free energy estimate

**-fetemp*** <real> (300)*

Reference temperature for free energy calculation

**-zero*** <real> (0)*

Subtract a zero-point energy

**-[no]sum*** (no)*

Sum the energy terms selected rather than display them all

**-[no]dp*** (no)*

Print energies in high precision

**-nbmin*** <int> (5)*

Minimum number of blocks for error estimate

**-nbmax*** <int> (5)*

Maximum number of blocks for error estimate

**-[no]mutot*** (no)*

Compute the total dipole moment from the components

**-skip*** <int> (0)*

Skip number of frames between data points

**-[no]aver*** (no)*

Also print the exact average and rmsd stored in the energy frames (only when 1 term is requested)

**-nmol*** <int> (1)*

Number of molecules in your sample: the energies are divided by this number

**-[no]fluct_props*** (no)*

Compute properties based on energy fluctuations, like heat capacity

**-[no]driftcorr*** (no)*

Useful only for calculations of fluctuation properties. The drift in the observables will be subtracted before computing the fluctuation properties.

**-[no]fluc*** (no)*

Calculate autocorrelation of energy fluctuations rather than energy itself

**-[no]orinst*** (no)*

Analyse instantaneous orientation data

**-[no]ovec*** (no)*

Also plot the eigenvectors with **-oten**

**-acflen*** <int> (-1)*

Length of the ACF, default is half the number of frames

**-[no]normalize*** (yes)*

Normalize ACF

**-P*** <enum> (0)*

Order of Legendre polynomial for ACF (0 indicates none): 0, 1, 2, 3

**-fitfn*** <enum> (none)*

Fit function: none, exp, aexp, exp_exp, vac, exp5, exp7, exp9, erffit

**-beginfit*** <real> (0)*

Time where to begin the exponential fit of the correlation function

**-endfit*** <real> (-1)*

Time where to end the exponential fit of the correlation function, -1 is until the end