thermo_style command

Syntax

thermo_style style args
  • style = one or multi or custom
  • args = list of arguments for a particular style
one args = none
multi args = none
custom args = list of attributes
  possible attributes = step, elapsed, elaplong, dt, time,
                        cpu, tpcpu, spcpu, cpuremain, part, cu
                        atoms, ke, erotate,
                        vol, lx, ly, lz, xlo, xhi, ylo, yhi, zlo, zhi,
                     xy, xz, yz, xlat, ylat, zlat,
                     pxx, pyy, pzz, pxy, pxz, pyz,
                     fmax, fnorm,
                     cella, cellb, cellc, cellalpha, cellbeta, cellgamma,
                     c_ID, c_ID[I], c_ID[I][J],
                        f_ID, f_ID[I], f_ID[I][J],
                        v_name
    step = timestep
    elapsed = timesteps since start of this run
    elaplong = timesteps since start of initial run in a series of runs
    dt = timestep size
    time = simulation time
    cpu = elapsed CPU time in seconds
    tpcpu = time per CPU second
    spcpu = timesteps per CPU second
    cpuremain = estimated CPU time remaining in run
    part = which partition (0 to Npartition-1) this is
    cu = timesteps per CPU second
    atoms = # of atoms
    vol = volume
    lx,ly,lz = box lengths in x,y,z
    xlo,xhi,ylo,yhi,zlo,zhi = box boundaries
    xy,xz,yz = box tilt for triclinic (non-orthogonal) simulation boxes
    xlat,ylat,zlat = lattice spacings as calculated by lattice command
    pxx,pyy,pzz,pxy,pxz,pyz = 6 components of pressure tensor
    fmax = max component of force on any atom in any dimension
    fnorm = length of force vector for all atoms
    cella,cellb,cellc = periodic cell lattice constants a,b,c
    cellalpha, cellbeta, cellgamma = periodic cell angles alpha,beta,gamma
    c_ID = global scalar value calculated by a compute with ID
    c_ID[I] = Ith component of global vector calculated by a compute with ID
    c_ID[I][J] = I,J component of global array calculated by a compute with ID
    f_ID = global scalar value calculated by a fix with ID
    f_ID[I] = Ith component of global vector calculated by a fix with ID
    f_ID[I][J] = I,J component of global array calculated by a fix with ID
    v_name = scalar value calculated by an equal-style variable with name

Examples

thermo_style one
thermo_style custom step v_abc

Description

Set the style and content for printing thermodynamic data to the screen and log file.

Style one prints a one-line summary of thermodynamic info that is the equivalent of “thermo_style custom step atoms ke cpu”. The line contains only numeric values.

Style multi prints a multiple-line listing of thermodynamic info that is the equivalent of “thermo_style custom step atoms ke cpu”. The listing contains numeric values and a string ID for each quantity.

Style custom is the most general setting and allows you to specify which of the keywords listed above you want printed on each thermodynamic timestep. Note that the keywords c_ID, f_ID, v_name are references to computes, fixes, and equal-style variables that have been defined elsewhere in the input script or can even be new styles which users have added to LIGGGHTS(R)-PUBLIC (see the Section_modify section of the documentation). Thus the custom style provides a flexible means of outputting essentially any desired quantity as a simulation proceeds.

All styles except custom have vol appended to their list of outputs if the simulation box volume changes during the simulation.

The values printed by the various keywords are instantaneous values, calculated on the current timestep. Time-averaged quantities, which include values from previous timesteps, can be output by using the f_ID keyword and accessing a fix that does time-averaging such as the fix ave/time command.

Options invoked by the thermo_modify command can be used to set the one- or multi-line format of the print-out, the normalization of thermodynamic output (total values versus per-atom values for extensive quantities (ones which scale with the number of atoms in the system), and the numeric precision of each printed value.

Warning

When you use a “thermo_style” command, all thermodynamic settings are restored to their default values, including those previously set 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 step, elapsed, and elaplong keywords refer to timestep count. Step is the current timestep, or iteration count when a minimization is being performed. Elapsed is the number of timesteps elapsed since the beginning of this run. Elaplong is the number of timesteps elapsed since the beginning of an initial run in a series of runs. See the start and stop keywords for the run for info on how to invoke a series of runs that keep track of an initial starting time. If these keywords are not used, then elapsed and elaplong are the same value.

The dt keyword is the current timestep size in time units. The time keyword is the current elapsed simulation time, also in time units, which is simply (step*dt) if the timestep size has not changed and the timestep has not been reset. If the timestep has changed (e.g. via fix dt/reset) or the timestep has been reset (e.g. via the “reset_timestep” command), then the simulation time is effectively a cummulative value up to the current point.

The cpu keyword is elapsed CPU seconds since the beginning of this run. The tpcpu and spcpu keywords are measures of how fast your simulation is currently running. The tpcpu keyword is simulation time per CPU second, where simulation time is in time units. E.g. for metal units, the tpcpu value would be picoseconds per CPU second. The spcpu keyword is the number of timesteps per CPU second. Both quantities are on-the-fly metrics, measured relative to the last time they were invoked. Thus if you are printing out thermodyamic output every 100 timesteps, the two keywords will continually output the time and timestep rate for the last 100 steps. The tpcpu keyword does not attempt to track any changes in timestep size, e.g. due to using the fix dt/reset command.

The cpuremain keyword estimates the CPU time remaining in the current run, based on the time elapsed thus far. It will only be a good estimate if the CPU time/timestep for the rest of the run is similar to the preceding timesteps. On the initial timestep the value will be 0.0 since there is no history to estimate from. For a minimization run performed by the “minimize” command, the estimate is based on the maxiter parameter, assuming the minimization will proceed for the maximum number of allowed iterations.

The part keyword is useful for multi-replica or multi-partition simulations to indicate which partition this output and this file corresponds to, or for use in a variable to append to a filename for output specific to this partition. See Section_start 7 of the manual for details on running in multi-partition mode.

The fmax and fnorm keywords are useful for monitoring the progress of an energy minimization. The fmax keyword calculates the maximum force in any dimension on any atom in the system, or the infinity-norm of the force vector for the system. The fnorm keyword calculates the 2-norm or length of the force vector.

The keywords cella, cellb, cellc, cellalpha, cellbeta, cellgamma, correspond to the usual crystallographic quantities that define the periodic unit cell of a crystal. See this section of the doc pages for a geometric description of triclinic periodic cells, including a precise defintion of these quantities in terms of the internal LIGGGHTS(R)-PUBLIC cell dimensions lx, ly, lz, yz, xz, xy.


The c_ID and c_ID[I] and c_ID[I][J] keywords allow global values calculated by a compute to be output. As discussed on the compute doc page, computes can calculate global, per-atom, or local values. Only global values can be referenced by this command. However, per-atom compute values can be referenced in a variable and the variable referenced by thermo_style custom, as discussed below.

The ID in the keyword should be replaced by the actual ID of a compute that has been defined elsewhere in the input script. See the compute command for details. If the compute calculates a global scalar, vector, or array, then the keyword formats with 0, 1, or 2 brackets will reference a scalar value from the compute.

Note that some computes calculate “intensive” global quantities like temperature; others calculate “extensive” global quantities like kinetic energy that are summed over all atoms in the compute group. Intensive quantities are printed directly without normalization by thermo_style custom. Extensive quantities may be normalized by the total number of atoms in the simulation (NOT the number of atoms in the compute group) when output, depending on the thermo_modify norm option being used.

The f_ID and f_ID[I] and f_ID[I][J] keywords allow global values calculated by a fix to be output. As discussed on the fix doc page, fixes can calculate global, per-atom, or local values. Only global values can be referenced by this command. However, per-atom fix values can be referenced in a variable and the variable referenced by thermo_style custom, as discussed below.

The ID in the keyword should be replaced by the actual ID of a fix that has been defined elsewhere in the input script. See the fix command for details. If the fix calculates a global scalar, vector, or array, then the keyword formats with 0, 1, or 2 brackets will reference a scalar value from the fix.

Note that some fixes calculate “intensive” global quantities like timestep size; others calculate “extensive” global quantities like energy that are summed over all atoms in the fix group. Intensive quantities are printed directly without normalization by thermo_style custom. Extensive quantities may be normalized by the total number of atoms in the simulation (NOT the number of atoms in the fix group) when output, depending on the thermo_modify norm option being used.

The v_name keyword allow the current value of a variable to be output. The name in the keyword should be replaced by the variable name that has been defined elsewhere in the input script. Only equal-style variables can be referenced. See the variable command for details. Variables of style equal can reference per-atom properties or thermodynamic keywords, or they can invoke other computes, fixes, or variables when evaluated, so this is a very general means of creating thermodynamic output.

Note that equal-style variables are assumed to be “intensive” global quantities, which are thus printed as-is, without normalization by thermo_style custom. You can include a division by “natoms” in the variable formula if this is not the case.


Restrictions

This command must come after the simulation box is defined by a read_data, read_restart, or create_box command.

Default

thermo_style one