185 lines
8.1 KiB
Plaintext
185 lines
8.1 KiB
Plaintext
.. index:: thermo_modify
|
|
|
|
thermo_modify command
|
|
=====================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
thermo_modify keyword value ...
|
|
|
|
* one or more keyword/value pairs may be listed
|
|
.. parsed-literal::
|
|
|
|
keyword = *lost* or *lost/bond* or *norm* or *flush* or *line* or *format* or *temp* or *press*\ :l
|
|
*lost* value = *error* or *warn* or *ignore*
|
|
*lost/bond* value = *error* or *warn* or *ignore*
|
|
*norm* value = *yes* or *no*
|
|
*flush* value = *yes* or *no*
|
|
*line* value = *one* or *multi*
|
|
*format* values = *int* string or *float* string or M string
|
|
M = integer from 1 to N, where N = # of quantities being printed
|
|
string = C-style format string
|
|
*temp* value = compute ID that calculates a temperature
|
|
*press* value = compute ID that calculates a pressure
|
|
|
|
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
thermo_modify lost ignore flush yes
|
|
thermo_modify temp myTemp format 3 %15.8g
|
|
thermo_modify line multi format float %g
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Set options for how thermodynamic information is computed and printed
|
|
by LAMMPS.
|
|
|
|
.. note::
|
|
|
|
These options apply to the currently defined thermo style. When
|
|
you specify a :doc:`thermo_style <thermo_style>` command, all
|
|
thermodynamic settings are restored to their default values, including
|
|
those previously reset by a thermo_modify command. Thus if your input
|
|
script specifies a thermo_style command, you should use the
|
|
thermo_modify command after it.
|
|
|
|
The *lost* keyword determines whether LAMMPS checks for lost atoms
|
|
each time it computes thermodynamics and what it does if atoms are
|
|
lost. An atom can be "lost" if it moves across a non-periodic
|
|
simulation box :doc:`boundary <boundary>` or if it moves more than a box
|
|
length outside the simulation domain (or more than a processor
|
|
sub-domain length) before reneighboring occurs. The latter case is
|
|
typically due to bad dynamics, e.g. too large a timestep or huge
|
|
forces and velocities. If the value is *ignore*\ , LAMMPS does not
|
|
check for lost atoms. If the value is *error* or *warn*\ , LAMMPS
|
|
checks and either issues an error or warning. The code will exit with
|
|
an error and continue with a warning. A warning will only be issued
|
|
once, the first time an atom is lost. This can be a useful debugging
|
|
option.
|
|
|
|
The *lost/bond* keyword determines whether LAMMPS throws an error or
|
|
not if an atom in a bonded interaction (bond, angle, etc) cannot be
|
|
found when it creates bonded neighbor lists. By default this is a
|
|
fatal error. However in some scenarios it may be desirable to only
|
|
issue a warning or ignore it and skip the computation of the missing
|
|
bond, angle, etc. An example would be when gas molecules in a vapor
|
|
are drifting out of the box through a fixed boundary condition (see
|
|
the :doc:`boundary <boundary>` command). In this case one atom may be
|
|
deleted before the rest of the molecule is, on a later timestep.
|
|
|
|
The *norm* keyword determines whether various thermodynamic output
|
|
values are normalized by the number of atoms or not, depending on
|
|
whether it is set to *yes* or *no*\ . Different unit styles have
|
|
different defaults for this setting (see below). Even if *norm* is
|
|
set to *yes*\ , a value is only normalized if it is an "extensive"
|
|
quantity, meaning that it scales with the number of atoms in the
|
|
system. For the thermo keywords described by the doc page for the
|
|
:doc:`thermo_style <thermo_style>` command, all energy-related keywords
|
|
are extensive, such as *pe* or *ebond* or *enthalpy*\ . Other keywords
|
|
such as *temp* or *press* are "intensive" meaning their value is
|
|
independent (in a statistical sense) of the number of atoms in the
|
|
system and thus are never normalized. For thermodynamic output values
|
|
extracted from fixes and computes in a :doc:`thermo_style custom <thermo_style>` command, the doc page for the individual
|
|
:doc:`fix <fix>` or :doc:`compute <compute>` lists whether the value is
|
|
"extensive" or "intensive" and thus whether it is normalized.
|
|
Thermodynamic output values calculated by a variable formula are
|
|
assumed to be "intensive" and thus are never normalized. You can
|
|
always include a divide by the number of atoms in the variable formula
|
|
if this is not the case.
|
|
|
|
The *flush* keyword invokes a flush operation after thermodynamic info
|
|
is written to the log file. This insures the output in that file is
|
|
current (no buffering by the OS), even if LAMMPS halts before the
|
|
simulation completes.
|
|
|
|
The *line* keyword determines whether thermodynamics will be printed
|
|
as a series of numeric values on one line or in a multi-line format
|
|
with 3 quantities with text strings per line and a dashed-line header
|
|
containing the timestep and CPU time. This modify option overrides
|
|
the *one* and *multi* thermo_style settings.
|
|
|
|
The *format* keyword sets the numeric format of individual printed
|
|
quantities. The *int* and *float* keywords set the format for all
|
|
integer or floating-point quantities printed. The setting with a
|
|
numeric value M (e.g. format 5 %10.4g) sets the format of the Mth
|
|
value printed in each output line, e.g. the 5th column of output in
|
|
this case. If the format for a specific column has been set, it will
|
|
take precedent over the *int* or *float* setting.
|
|
|
|
.. note::
|
|
|
|
The thermo output values *step* and *atoms* are stored
|
|
internally as 8-byte signed integers, rather than the usual 4-byte
|
|
signed integers. When specifying the "format int" keyword you can use
|
|
a "%d"-style format identifier in the format string and LAMMPS will
|
|
convert this to the corresponding "%lu" form when it is applied to
|
|
those keywords. However, when specifying the "format M string"
|
|
keyword for *step* and *natoms*\ , you should specify a string
|
|
appropriate for an 8-byte signed integer, e.g. one with "%ld".
|
|
|
|
The *temp* keyword is used to determine how thermodynamic temperature
|
|
is calculated, which is used by all thermo quantities that require a
|
|
temperature ("temp", "press", "ke", "etotal", "enthalpy", "pxx", etc).
|
|
The specified compute ID must have been previously defined by the user
|
|
via the :doc:`compute <compute>` command and it must be a style of
|
|
compute that calculates a temperature. As described in the
|
|
:doc:`thermo_style <thermo_style>` command, thermo output uses a default
|
|
compute for temperature with ID = *thermo_temp*\ . This option allows
|
|
the user to override the default.
|
|
|
|
The *press* keyword is used to determine how thermodynamic pressure is
|
|
calculated, which is used by all thermo quantities that require a
|
|
pressure ("press", "enthalpy", "pxx", etc). The specified compute ID
|
|
must have been previously defined by the user via the
|
|
:doc:`compute <compute>` command and it must be a style of compute that
|
|
calculates a pressure. As described in the
|
|
:doc:`thermo_style <thermo_style>` command, thermo output uses a default
|
|
compute for pressure with ID = *thermo_press*\ . This option allows the
|
|
user to override the default.
|
|
|
|
.. note::
|
|
|
|
If both the *temp* and *press* keywords are used in a single
|
|
thermo_modify command (or in two separate commands), then the order in
|
|
which the keywords are specified is important. Note that a :doc:`pressure compute <compute_pressure>` defines its own temperature compute as
|
|
an argument when it is specified. The *temp* keyword will override
|
|
this (for the pressure compute being used by thermodynamics), but only
|
|
if the *temp* keyword comes after the *press* keyword. If the *temp*
|
|
keyword comes before the *press* keyword, then the new pressure
|
|
compute specified by the *press* keyword will be unaffected by the
|
|
*temp* setting.
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
none
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`thermo <thermo>`, :doc:`thermo_style <thermo_style>`
|
|
|
|
Default
|
|
"""""""
|
|
|
|
The option defaults are lost = error, norm = yes for unit style of
|
|
*lj*\ , norm = no for unit style of *real* and *metal*\ , flush = no,
|
|
and temp/press = compute IDs defined by thermo_style.
|
|
|
|
The defaults for the line and format options depend on the thermo
|
|
style. For styles "one" and "custom", the line and format defaults
|
|
are "one", "%8d", and "%12.8g". For style "multi", the line and
|
|
format defaults are "multi", "%8d", and "%14.4f".
|
|
|
|
|
|
.. _lws: http://lammps.sandia.gov
|
|
.. _ld: Manual.html
|
|
.. _lc: Section_commands.html#comm
|