"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c

:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)

:line

fix ave/time command :h3

[Syntax:]

fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ... :pre

ID, group-ID are documented in "fix"_fix.html command :ulb,l
ave/time = style name of this fix command :l
Nevery = calculate properties every this many timesteps :l
Nrepeat = # of times to repeat the Nevery calculation before averaging :l
Nfreq = timestep frequency at which averages are computed :l
one or more values can be listed :l
value = c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :l
  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 :pre

zero or more keyword/arg pairs may be appended :l
keyword = {file} or {ave} :l
  {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 :pre
:ule

[Examples:]

fix 1 all ave/time 100 5 1000 c_myTemp c_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 :pre

[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"_Section_howto.html#4_15 such as "thermo_style
custom"_thermo_style.html, 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"_compute.html or
"fix"_fix.html or the evaluation of an equal-style
"variable"_variable.html.  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"_fix_ave_spatial.html or
"fix ave/atom"_fix_ave_atom.html commands.  If you wish to sum a
per-atom quantity into a single global quantity, see the "compute
reduce"_compute_reduce.html command.

"Computes"_compute.html that produce global quantities are those which
do not have the word {atom} in their style name.  Only a few
"fixes"_fix.html produce global quantities.  See the doc pages for
individual fixes for info on which ones produce such values.
"Variables"_variable.html 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.

:line

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.  Also, the timesteps contributing to the average value
cannot overlap, i.e. Nfreq > (Nrepeat-1)*Nevery is required.

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.

:line

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"_compute_reduce.html 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"_thermo_style.html or other fixes such as
"fix nvt"_fix_nvt.html or "fix temp/rescale"_fix_temp_rescale.html.
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"_Section_modify.html.

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"_Section_modify.html.

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"_variable.html 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.

:line

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"_unfix.html
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.

:line

[Restart, fix_modify, output, run start/stop, minimize info:]

No information about this fix is written to "binary restart
files"_restart.html.  None of the "fix_modify"_fix_modify.html options
are relevant to this fix.

This fix produces a global scalar or vector which can be accessed by
various "output commands"_Section_howto.html#4_15.  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"_run.html command.  This fix is not invoked during "energy
minimization"_minimize.html.

[Restrictions:] none

[Related commands:]

"compute"_compute.html, "fix ave/atom"_fix_ave_atom.html,
"variable"_variable.html, "fix ave/spatial"_fix_ave_spatial.html, "fix
ave/atom"_fix_ave_atom.html

[Default:] none

The option defaults no file output, ave = one, and start = 0.
