Syntax:
fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...
c_ID = global scalar value calculated by a compute with ID c_ID[N] = Nth component of global vector calculated by a compute with ID f_ID = global scalar value calculated by a fix with ID f_ID[N] = Nth component of global vector calculated by a fix with ID v_name = global value calculated by an equal-style variable with name
file arg = filename filename = name of file to output time averages to ave args = one or running or window M one = output a new average value every Nfreq steps running = output cumulative average of all previous Nfreq steps window M = output average of M most recent Nfreq steps start args = Nstart Nstart = start averaging on this timestep
Examples:
fix 1 all ave/time 100 5 1000 myTemp thermo_temp file temp.profile fix 1 all ave/time 100 5 1000 c_thermo_press[2] ave window 20 fix 1 all ave/time 1 100 1000 f_indent f_indent[1] file temp.indent
Description:
Calculate one or more instantaneous global quantities every few timesteps, and average them over longer timescales. The resulting averages can be used by other output commands such as thermo_style custom, and can also be written to a file. If no averaging is done, this command is a convenient way to simply write one or more desired quantities to a separate file.
Each listed value is averaged independently. If written to a file, then over time, one column of numbers is produced for each value. The group specified with the command is ignored, since calculations are performed by computes and fixes which store their own "group" definition,
Each listed value can be the result of a compute or fix or the evaluation of an equal-style variable. In each case, the compute, fix, or variable must produce a global quantity, not a per-atom quantity. If you wish to spatial- or time-average per-atom quantities from a compute, fix, or variable, then see the fix ave/spatial or fix ave/atom commands. If you wish to sum a per-atom quantity into a single global quantity, see the compute reduce command.
Computes that produce global quantities are those which do not have the word atom in their style name. Only a few fixes produce global quantities. See the doc pages for individual fixes for info on which ones produce such values. Variables of style equal are the only ones that can be used with this fix. Variables of style atom cannot be used, since they produce per-atom values.
The Nevery, Nrepeat, and Nfreq arguments specify on what timesteps the values will be generated in order to contribute to the average. The final averaged quantities are generated every Nfreq timesteps. The average is over Nrepeat quantities, computed in the preceding portion of the simulation every Nevery timesteps. Nfreq must be a multiple of Nevery and Nevery must be non-zero even if Nrepeat is 1.
For example, if Nevery=2, Nrepeat=6, and Nfreq=100, then values on timesteps 90,92,94,96,98,100 will be used to compute the final average on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on timestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time averaging is done; values are simply generated on timesteps 100,200,etc.
If a value begins with "c_", a compute ID must follow which has been previously defined in the input script. If no bracketed term is appended, the global scalar calculated by the compute is used. If a bracketed term is appended, the Nth vector value calculated by the compute is used. Note that there is a compute reduce command which can sum per-atom quantities into a global scalar or vector which can thus be accessed by fix ave/time. Or it can be a compute defined not in your input script, but by thermodynamic output or other fixes such as fix nvt or fix temp/rescale. See the doc pages for these commands which give the IDs of these computes. Users can also write code for their own compute styles and add them to LAMMPS.
If a value begins with "f_", a fix ID must follow which has been previously defined in the input script. If no bracketed term is appended, the global scalar calculated by the fix is used. If a bracketed term is appended, the Nth vector value calculated by the fix is used. Note that some fixes only produce their values on certain timesteps, which must be compatible with Nevery, else an error will result. Users can also write code for their own fix styles and add them to LAMMPS.
If a value begins with "v_", a variable name must follow which has been previously defined in the input script. Only equal-style variables can be referenced. See the variable command for details. Variables of style equal define a formula which can reference individual atom properties or thermodynamic keywords, or they can invoke other computes, fixes, or variables when they are evaluated, so this is a very general means of generating quantities to time average.
Additional optional keywords also affect the operation of this fix.
The file keyword allows a filename to be specified. Each timestamp, one quantity is written to the file for each value specified in the fix ave/time command. The file is in a self-explanatory text format.
The ave keyword determines how the scalar and/or vector values produced every Nfreq steps are averaged with values produced on previous steps that were multiples of Nfreq, before they are accessed by another output command or written to a file.
If the ave setting is one, then the values produced on timesteps that are multiples of Nfreq are independent of each other; they are output as-is without further averaging.
If the ave setting is running, then the values produced on timesteps that are multiples of Nfreq are summed and averaged in a cumulative sense before being output. Each output value is thus the average of the value produced on that timestep with all preceding values. This running average begins when the fix is defined; it can only be restarted by deleting the fix via the unfix command, or by re-defining the fix by re-specifying it.
If the ave setting is window, then the values produced on timesteps that are multiples of Nfreq are summed and averaged within a moving "window" of time, so that the last M values are used to produce the output. E.g. if M = 3 and Nfreq = 1000, then the output on step 10000 will be the average of the individual values on steps 8000,9000,10000. Outputs on early steps will average over less than M values if they are not available.
The start keyword specifies what timestep averaging will begin on. The default is step 0. Often this value is 0.0, so setting start to a larger value can avoid including a 0.0 in a running or windowed average.
Restart, fix_modify, output, run start/stop, minimize info:
No information about this fix is written to binary restart files. None of the fix_modify options are relevant to this fix.
This fix produces a global scalar or vector which can be accessed by various output commands. A scalar is produced if only a single quantity is averaged by this fix. If two or more quantities are averaged, then a vector of values is produced. The global values can only be accessed on timesteps that are multiples of Nfreq since that is when averaging is performed. Each value (scalar or vector component) calculated by this fix may be either "intensive" or "extensive". Intensive means the value is independent of the number of atoms in the simulation. Extensive means the value scales with the number of atoms in the simulation. If a compute or fix provides the value being time averaged, then the compute or fix determines whether the value is intensive or extensive; see the doc page for that compute or fix for further info. Values produced by a variable are whatever the variable calculates.
No parameter of this fix can be used with the start/stop keywords of the run command. This fix is not invoked during energy minimization.
Restrictions: none
Related commands:
compute, fix ave/atom, variable, fix ave/spatial, fix ave/atom
Default: none
The option defaults no file output, ave = one, and start = 0.