2007-02-21 08:18:41 +08:00
|
|
|
"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:]
|
|
|
|
|
2008-01-03 03:25:15 +08:00
|
|
|
fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ... :pre
|
2007-10-19 06:02:20 +08:00
|
|
|
|
|
|
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
|
|
|
ave/time = style name of this fix command :l
|
2009-12-15 09:21:23 +08:00
|
|
|
Nevery = use input values every this many timesteps :l
|
|
|
|
Nrepeat = # of times to use input values for calculating averages :l
|
2010-08-10 07:46:14 +08:00
|
|
|
Nfreq = calculate averages every this many timesteps :l
|
2009-12-15 09:21:23 +08:00
|
|
|
one or more input values can be listed :l
|
2008-01-03 03:25:15 +08:00
|
|
|
value = c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :l
|
2009-12-12 05:41:25 +08:00
|
|
|
c_ID = global scalar or vector calculated by a compute with ID
|
|
|
|
c_ID\[I\] = Ith component of global vector or Ith column of global array calculated by a compute with ID
|
|
|
|
f_ID = global scalar or vector calculated by a fix with ID
|
|
|
|
f_ID\[I\] = Ith component of global vector or Ith column of global array calculated by a fix with ID
|
2008-01-03 03:25:15 +08:00
|
|
|
v_name = global value calculated by an equal-style variable with name :pre
|
2007-10-19 06:02:20 +08:00
|
|
|
|
|
|
|
zero or more keyword/arg pairs may be appended :l
|
2009-12-12 05:41:25 +08:00
|
|
|
keyword = {mode} or {file} or {ave} or {start} or {off} or {title1} or {title2} or {title3} :l
|
|
|
|
{mode} arg = {scalar} or {vector}
|
|
|
|
scalar = all input values are global scalars
|
2010-08-10 07:46:14 +08:00
|
|
|
vector = all input values are global vectors or global arrays
|
2007-10-19 06:02:20 +08:00
|
|
|
{ave} args = {one} or {running} or {window M}
|
2008-01-03 03:25:15 +08:00
|
|
|
one = output a new average value every Nfreq steps
|
2010-08-13 07:10:38 +08:00
|
|
|
running = output cummulative average of all previous Nfreq steps
|
2008-03-04 05:52:06 +08:00
|
|
|
window M = output average of M most recent Nfreq steps
|
|
|
|
{start} args = Nstart
|
2009-12-12 05:41:25 +08:00
|
|
|
Nstart = start averaging on this timestep
|
|
|
|
{off} arg = M = do not average this value
|
|
|
|
M = value # from 1 to Nvalues
|
2010-08-18 05:58:29 +08:00
|
|
|
{file} arg = filename
|
|
|
|
filename = name of file to output time averages to
|
2009-12-12 05:41:25 +08:00
|
|
|
{title1} arg = string
|
2009-12-22 01:51:05 +08:00
|
|
|
string = text to print as 1st line of output file
|
2009-12-12 05:41:25 +08:00
|
|
|
{title2} arg = string
|
|
|
|
string = text to print as 2nd line of output file
|
|
|
|
{title3} arg = string
|
|
|
|
string = text to print as 3rd line of output file, only for vector mode :pre
|
2007-10-19 06:02:20 +08:00
|
|
|
:ule
|
2007-02-21 08:18:41 +08:00
|
|
|
|
|
|
|
[Examples:]
|
|
|
|
|
2008-07-03 22:59:09 +08:00
|
|
|
fix 1 all ave/time 100 5 1000 c_myTemp c_thermo_temp file temp.profile
|
2009-12-12 05:41:25 +08:00
|
|
|
fix 1 all ave/time 100 5 1000 c_thermo_press\[2\] ave window 20 &
|
|
|
|
title1 "My output values"
|
|
|
|
fix 1 all ave/time 1 100 1000 f_indent f_indent\[1\] file temp.indent off 1 :pre
|
2007-02-21 08:18:41 +08:00
|
|
|
|
|
|
|
[Description:]
|
|
|
|
|
2009-12-15 09:21:23 +08:00
|
|
|
Use one or more global values as inputs 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. Note that if no time averaging is done, this command can be
|
|
|
|
used as a convenient way to simply output one or more global values to
|
|
|
|
a file.
|
2009-12-12 05:41:25 +08:00
|
|
|
|
2009-12-15 09:21:23 +08:00
|
|
|
The group specified with this command is ignored. However, note that
|
2010-08-13 07:10:38 +08:00
|
|
|
specified values may represent calculations performed by computes and
|
|
|
|
fixes which store their own "group" definitions.
|
2008-01-03 03:25:15 +08:00
|
|
|
|
2010-08-18 05:58:29 +08:00
|
|
|
Each listed value can be the result of a "compute"_compute.html or
|
2008-01-03 03:25:15 +08:00
|
|
|
"fix"_fix.html or the evaluation of an equal-style
|
|
|
|
"variable"_variable.html. In each case, the compute, fix, or variable
|
2009-12-15 09:21:23 +08:00
|
|
|
must produce a global quantity, not a per-atom or local quantity. If
|
|
|
|
you wish to spatial- or time-average or histogram per-atom quantities
|
|
|
|
from a compute, fix, or variable, then see the "fix
|
|
|
|
ave/spatial"_fix_ave_spatial.html, "fix ave/atom"_fix_ave_atom.html,
|
|
|
|
or "fix ave/histo"_fix_ave_histo.html commands. If you wish to sum a
|
2008-01-03 03:25:15 +08:00
|
|
|
per-atom quantity into a single global quantity, see the "compute
|
2008-02-26 00:06:38 +08:00
|
|
|
reduce"_compute_reduce.html command.
|
2008-01-03 03:25:15 +08:00
|
|
|
|
|
|
|
"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.
|
|
|
|
|
2010-05-25 01:03:24 +08:00
|
|
|
The input values must either be all scalars or all vectors (or
|
|
|
|
arrays), depending on the setting of the {mode} keyword. In both
|
2010-05-25 00:49:35 +08:00
|
|
|
cases, the averaging is performed independently on each input value.
|
|
|
|
I.e. each input scalar is averaged independently and each element of
|
|
|
|
each input vector (or array) is averaged independently.
|
|
|
|
|
2010-05-25 01:03:24 +08:00
|
|
|
If {mode} = vector, then the input values may either be vectors or
|
2010-05-25 00:49:35 +08:00
|
|
|
arrays and all must be the same "length", which is the length of the
|
|
|
|
vector or number of rows in the array. If a global array is listed,
|
|
|
|
then it is the same as if the individual columns of the array had been
|
|
|
|
listed one by one. E.g. these 2 fix ave/time commands are equivalent,
|
2010-05-25 01:03:24 +08:00
|
|
|
since the "compute rdf"_compute_rdf.html command creates, in this
|
|
|
|
case, a global array with 3 columns, each of length 50:
|
2010-05-25 00:49:35 +08:00
|
|
|
|
|
|
|
compute myRDF all rdf 50 1 2
|
|
|
|
fix 1 all ave/time 100 1 100 c_myRDF file tmp1.rdf mode vector
|
|
|
|
fix 2 all ave/time 100 1 100 c_myRDF\[1\] c_myRDF\[2\] c_myRDF\[3\] file tmp2.rdf mode vector :pre
|
2009-12-12 05:41:25 +08:00
|
|
|
|
2008-01-03 03:25:15 +08:00
|
|
|
:line
|
2007-02-21 08:18:41 +08:00
|
|
|
|
2007-10-19 06:02:20 +08:00
|
|
|
The {Nevery}, {Nrepeat}, and {Nfreq} arguments specify on what
|
2009-12-15 09:21:23 +08:00
|
|
|
timesteps the input values will be used in order to contribute to the
|
2010-11-23 23:13:14 +08:00
|
|
|
average. The final averaged quantities are generated on timesteps
|
|
|
|
that are a mlutiple of {Nfreq}. 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.
|
2007-10-10 02:24:42 +08:00
|
|
|
|
2007-10-19 06:02:20 +08:00
|
|
|
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
|
2008-03-01 09:13:20 +08:00
|
|
|
on timestep 100. Similarly for timesteps 190,192,194,196,198,200 on
|
2008-01-03 03:25:15 +08:00
|
|
|
timestep 200, etc. If Nrepeat=1 and Nfreq = 100, then no time
|
|
|
|
averaging is done; values are simply generated on timesteps
|
|
|
|
100,200,etc.
|
2007-10-10 02:24:42 +08:00
|
|
|
|
2007-10-19 06:02:20 +08:00
|
|
|
:line
|
|
|
|
|
2008-01-03 03:25:15 +08:00
|
|
|
If a value begins with "c_", a compute ID must follow which has been
|
2009-12-12 05:41:25 +08:00
|
|
|
previously defined in the input script. If {mode} = scalar, then if
|
|
|
|
no bracketed term is appended, the global scalar calculated by the
|
|
|
|
compute is used. If a bracketed term is appended, the Ith element of
|
|
|
|
the global vector calculated by the compute is used. If {mode} =
|
|
|
|
vector, then if no bracketed term is appended, the global vector
|
2010-05-25 01:03:24 +08:00
|
|
|
calculated by the compute is used. Or if the compute calculates an
|
|
|
|
array, all of the columns of the global array are used as if they had
|
|
|
|
been specified as individual vectors (see description above). If a
|
|
|
|
bracketed term is appended, the Ith column of the global array
|
2010-05-25 00:49:35 +08:00
|
|
|
calculated by the compute is used.
|
2009-12-12 05:41:25 +08:00
|
|
|
|
|
|
|
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
|
2010-04-03 00:51:06 +08:00
|
|
|
nvt"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html. See
|
2009-12-12 05:41:25 +08:00
|
|
|
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.
|
2008-01-03 03:25:15 +08:00
|
|
|
|
|
|
|
If a value begins with "f_", a fix ID must follow which has been
|
2009-12-12 05:41:25 +08:00
|
|
|
previously defined in the input script. If {mode} = scalar, then if
|
|
|
|
no bracketed term is appended, the global scalar calculated by the fix
|
|
|
|
is used. If a bracketed term is appended, the Ith element of the
|
|
|
|
global vector calculated by the fix is used. If {mode} = vector, then
|
|
|
|
if no bracketed term is appended, the global vector calculated by the
|
2010-05-25 01:03:24 +08:00
|
|
|
fix is used. Or if the fix calculates an array, all of the columns of
|
|
|
|
the global array are used as if they had been specified as individual
|
|
|
|
vectors (see description above). If a bracketed term is appended, the
|
|
|
|
Ith column of the global array calculated by the fix is used.
|
2009-12-12 05:41:25 +08:00
|
|
|
|
|
|
|
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.
|
2008-01-03 03:25:15 +08:00
|
|
|
|
|
|
|
If a value begins with "v_", a variable name must follow which has
|
2009-12-12 05:41:25 +08:00
|
|
|
been previously defined in the input script. Variables can only be
|
|
|
|
used as input for {mode} = scalar. Only equal-style variables can be
|
|
|
|
referenced. See the "variable"_variable.html command for details.
|
|
|
|
Note that variables of style {equal} define a formula which can
|
2008-01-03 03:25:15 +08:00
|
|
|
reference individual atom properties or thermodynamic keywords, or
|
|
|
|
they can invoke other computes, fixes, or variables when they are
|
2009-12-12 05:41:25 +08:00
|
|
|
evaluated, so this is a very general means of specifying quantities to
|
2008-01-03 03:25:15 +08:00
|
|
|
time average.
|
2007-10-19 06:02:20 +08:00
|
|
|
|
2008-01-03 03:25:15 +08:00
|
|
|
:line
|
2007-10-19 06:02:20 +08:00
|
|
|
|
2008-01-03 03:25:15 +08:00
|
|
|
Additional optional keywords also affect the operation of this fix.
|
|
|
|
|
2009-12-15 09:21:23 +08:00
|
|
|
If the {mode} keyword is set to {scalar}, then all input values must
|
|
|
|
be global scalars, or elements of global vectors. If the {mode}
|
|
|
|
keyword is set to {vector}, then all input values must be global
|
2010-08-10 07:46:14 +08:00
|
|
|
vectors, or columns of global arrays. They can also be global arrays,
|
|
|
|
which are converted into a series of global vectors (one per column),
|
|
|
|
as explained above.
|
2009-12-15 09:21:23 +08:00
|
|
|
|
2009-12-12 05:41:25 +08:00
|
|
|
The {ave} keyword determines how the 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.
|
2007-10-19 06:02:20 +08:00
|
|
|
|
|
|
|
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
|
2010-08-13 07:10:38 +08:00
|
|
|
cummulative sense before being output. Each output value is thus the
|
2008-03-01 09:13:20 +08:00
|
|
|
average of the value produced on that timestep with all preceding
|
2007-10-19 06:27:53 +08:00
|
|
|
values. This running average begins when the fix is defined; it can
|
|
|
|
only be restarted by deleting the fix via the "unfix"_unfix.html
|
2008-01-03 03:25:15 +08:00
|
|
|
command, or by re-defining the fix by re-specifying it.
|
2007-10-19 06:02:20 +08:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2008-03-04 05:52:06 +08:00
|
|
|
The {start} keyword specifies what timestep averaging will begin on.
|
2009-12-12 05:41:25 +08:00
|
|
|
The default is step 0. Often input values can be 0.0 at time 0, so
|
|
|
|
setting {start} to a larger value can avoid including a 0.0 in a
|
|
|
|
running or windowed average.
|
|
|
|
|
|
|
|
The {off} keyword can be used to flag any of the input values. If a
|
|
|
|
value is flagged, it will not be time averaged. Instead the most
|
|
|
|
recent input value will always be stored and output. This is useful
|
|
|
|
if one of more of the inputs produced by a compute or fix or variable
|
|
|
|
are effectively constant or are simply current values. E.g. they are
|
|
|
|
being written to a file with other time-averaged values for purposes
|
|
|
|
of creating well-formatted output.
|
|
|
|
|
|
|
|
The {file} keyword allows a filename to be specified. Every {Nfreq}
|
|
|
|
steps, one quantity or vector of quantities is written to the file for
|
|
|
|
each input value specified in the fix ave/time command. For {mode} =
|
|
|
|
scalar, this means a single line is written each time output is
|
|
|
|
performed. Thus the file ends up to be a series of lines, i.e. one
|
|
|
|
column of numbers for each input value. For {mode} = vector, an array
|
|
|
|
of numbers is written each time output is performed. The number of
|
|
|
|
rows is the length of the input vectors, and the number of columns is
|
|
|
|
the number of values. Thus the file ends up to be a series of these
|
|
|
|
array sections.
|
|
|
|
|
|
|
|
The {title1} and {title2} and {title3} keywords allow specification of
|
|
|
|
the strings that will be printed as the first 2 or 3 lines of the
|
|
|
|
output file, assuming the {file} keyword was used. LAMMPS uses
|
|
|
|
default values for each of these, so they do not need to be specified.
|
|
|
|
|
|
|
|
By default, these header lines are as follows for {mode} = scalar:
|
|
|
|
|
|
|
|
# Time-averaged data for fix ID
|
|
|
|
# TimeStep value1 value2 ... :pre
|
|
|
|
|
|
|
|
In the first line, ID is replaced with the fix-ID. In the second line
|
|
|
|
the values are replaced with the appropriate fields from the fix
|
|
|
|
ave/time command. There is no third line in the header of the file,
|
|
|
|
so the {title3} setting is ignored when {mode} = scalar.
|
|
|
|
|
|
|
|
By default, these header lines are as follows for {mode} = vector:
|
|
|
|
|
|
|
|
# Time-averaged data for fix ID
|
|
|
|
# TimeStep Number-of-rows
|
|
|
|
# Row value1 value2 ... :pre
|
|
|
|
|
|
|
|
In the first line, ID is replaced with the fix-ID. The second line
|
|
|
|
describes the two values that are printed at the first of each section
|
|
|
|
of output. In the third line the values are replaced with the
|
|
|
|
appropriate fields from the fix ave/time command.
|
2008-03-04 05:52:06 +08:00
|
|
|
|
2007-10-19 06:02:20 +08:00
|
|
|
:line
|
2007-02-21 08:18:41 +08:00
|
|
|
|
2007-10-11 06:28:11 +08:00
|
|
|
[Restart, fix_modify, output, run start/stop, minimize info:]
|
2007-06-26 08:03:39 +08:00
|
|
|
|
|
|
|
No information about this fix is written to "binary restart
|
|
|
|
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
2007-10-15 23:07:59 +08:00
|
|
|
are relevant to this fix.
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
This fix produces a global scalar or global vector or global array
|
|
|
|
which can be accessed by various "output
|
|
|
|
commands"_Section_howto.html#4_15. The values can only be accessed on
|
|
|
|
timesteps that are multiples of {Nfreq} since that is when averaging
|
|
|
|
is performed.
|
2009-12-12 05:41:25 +08:00
|
|
|
|
|
|
|
A scalar is produced if only a single input value is averaged and
|
|
|
|
{mode} = scalar. A vector is produced if multiple input values are
|
|
|
|
averaged for {mode} = scalar, or a single input value for {mode} =
|
|
|
|
vector. In the first case, the length of the vector is the number of
|
|
|
|
inputs. In the second case, the length of the vector is the same as
|
|
|
|
the length of the input vector. An array is produced if multiple
|
2009-12-15 09:21:23 +08:00
|
|
|
input values are averaged and {mode} = vector. The global array has #
|
|
|
|
of rows = length of the input vectors and # of columns = number of
|
|
|
|
inputs.
|
2009-12-12 05:41:25 +08:00
|
|
|
|
|
|
|
If the fix prouduces a scalar or vector, then the scalar and each
|
2010-08-18 05:58:29 +08:00
|
|
|
element of the vector can be either "intensive" or "extensive". If
|
|
|
|
the fix produces an array, then all elements in the array must be the
|
|
|
|
same, either "intensive" or "extensive". 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
|
|
|
|
treated as intensive.
|
2007-10-15 23:07:59 +08:00
|
|
|
|
|
|
|
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.
|
2007-06-26 08:03:39 +08:00
|
|
|
|
2008-01-03 03:25:15 +08:00
|
|
|
[Restrictions:] none
|
2007-02-21 08:18:41 +08:00
|
|
|
|
|
|
|
[Related commands:]
|
|
|
|
|
2009-12-15 09:21:23 +08:00
|
|
|
"compute"_compute.html, "fix ave/atom"_fix_ave_atom.html, "fix
|
|
|
|
ave/spatial"_fix_ave_spatial.html, "fix ave/histo"_fix_ave_histo.html,
|
2010-08-18 05:58:29 +08:00
|
|
|
"variable"_variable.html, "fix ave/correlate"_fix_ave_correlate.html,
|
2007-02-21 08:18:41 +08:00
|
|
|
|
|
|
|
[Default:] none
|
2007-10-19 06:02:20 +08:00
|
|
|
|
2009-12-12 05:41:25 +08:00
|
|
|
The option defaults are mode = scalar, ave = one, start = 0, no file
|
|
|
|
output, title 1,2,3 = strings as described above, and no off settings
|
|
|
|
for any input values.
|