.. index:: fix print

fix print command
=================

Syntax
""""""

.. parsed-literal::

   fix ID group-ID print N string keyword value ...

* ID, group-ID are documented in :doc:`fix <fix>` command
* print = style name of this fix command
* N = print every N steps; N can be a variable (see below)
* string = text string to print with optional variable names
* zero or more keyword/value pairs may be appended
* keyword = *file* or *append* or *screen* or *title*

  .. parsed-literal::

       *file* value = filename
       *append* value = filename
       *screen* value = *yes* or *no*
       *title* value = string
         string =  text to print as 1st line of output file

Examples
""""""""

.. code-block:: LAMMPS

   fix extra all print 100 "Coords of marker atom = $x $y $z"
   fix extra all print 100 "Coords of marker atom = $x $y $z" file coord.txt

Description
"""""""""""

Print a text string every N steps during a simulation run.  This can
be used for diagnostic purposes or as a debugging tool to monitor some
quantity during a run.  The text string must be a single argument, so
it should be enclosed in double quotes if it is more than one word.
If it contains variables it must be enclosed in double quotes to
insure they are not evaluated when the input script line is read, but
will instead be evaluated each time the string is printed.

Instead of a numeric value, N can be specified as an :doc:`equal-style variable <variable>`, which should be specified as v_name, where
name is the variable name.  In this case, the variable is evaluated at
the beginning of a run to determine the **next** timestep at which the
string will be written out.  On that timestep, the variable will be
evaluated again to determine the next timestep, etc.
Thus the variable should return timestep values.  See the stagger()
and logfreq() and stride() math functions for :doc:`equal-style variables <variable>`, as examples of useful functions to use in
this context. For example, the following commands will print output at
timesteps 10,20,30,100,200,300,1000,2000,etc:

.. code-block:: LAMMPS

   variable        s equal logfreq(10,3,10)
   fix extra all print v_s "Coords of marker atom = $x $y $z"

The specified group-ID is ignored by this fix.

See the :doc:`variable <variable>` command for a description of *equal*
style variables which are the most useful ones to use with the fix
print command, since they are evaluated afresh each timestep that the
fix print line is output.  Equal-style variables calculate formulas
involving mathematical operations, atom properties, group properties,
thermodynamic properties, global values calculated by a
:doc:`compute <compute>` or :doc:`fix <fix>`, or references to other
:doc:`variables <variable>`.

If the *file* or *append* keyword is used, a filename is specified to
which the output generated by this fix will be written.  If *file* is
used, then the filename is overwritten if it already exists.  If
*append* is used, then the filename is appended to if it already
exists, or created if it does not exist.

If the *screen* keyword is used, output by this fix to the screen and
logfile can be turned on or off as desired.

The *title* keyword allow specification of the string that will be
printed as the first line of the output file, assuming the *file*
keyword was used.  By default, the title line is as follows:

.. parsed-literal::

   # Fix print output for fix ID

where ID is replaced with the fix-ID.

**Restart, fix_modify, output, run start/stop, minimize info:**

No information about this fix is written to :doc:`binary restart files <restart>`.  None of the :doc:`fix_modify <fix_modify>` options
are relevant to this fix.  No global or per-atom quantities are stored
by this fix for access by various :doc:`output commands <Howto_output>`.
No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command.  This fix is not invoked during :doc:`energy minimization <minimize>`.

Restrictions
""""""""""""
 none

Related commands
""""""""""""""""

:doc:`variable <variable>`, :doc:`print <print>`

Default
"""""""

The option defaults are no file output, screen = yes, and title string
as described above.
