doc pages

This commit is contained in:
Steve Plimpton
2022-11-07 11:41:59 -07:00
parent 3390d51c48
commit e6da584a76
4 changed files with 101 additions and 44 deletions

View File

@ -100,7 +100,8 @@ Per-grid data can come in two kinds: a vector of values (one per grid
cekk), or a 2d array of values (multiple values per grid ckk). The
doc page for a "compute" or "fix" that generates data will specify
names for both the grid(s) and datum(s) it produces, e.g. per-grid
vectors or arrays, which can be referenced by other commands.
vectors or arrays, which can be referenced by other commands. See the
:doc:`Howto grid <Howto_grid>` doc page for more details.
.. _disambiguation:

View File

@ -112,6 +112,17 @@ or atoms in a spatial bin. See the :doc:`compute chunk/atom
page for details of how chunks can be defined and examples of how they
can be used to measure properties of a system.
Note that if the :doc:`compute chunk/atom <compute_chunk_atom>`
command defines spatial bins, the fix ave/chunk command performs a
similar computation as the :doc:`fix ave/grid <fix_ave_grid>` command.
However, the per-bin outputs from the fix ave/chunk command are
global; each processor stores a copy of the entire set of bin data.
By contrast, the :doc:`fix ave/grid <fix_ave_grid>` command uses a
distributed grid where each processor owns a subset of the bins. Thus
it is more efficient to use the :doc:`fix ave/grid <fix_ave_grid>`
command when the grid is large and a simulation is run on many
processors.
Note that only atoms in the specified group contribute to the summing
and averaging calculations. The :doc:`compute chunk/atom
<compute_chunk_atom>` command defines its own group as well as an
@ -530,12 +541,14 @@ Restrictions
Related commands
""""""""""""""""
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`,
:doc:`fix ave/histo <fix_ave_histo>`, :doc:`fix ave/time <fix_ave_time>`,
:doc:`variable <variable>`, :doc:`fix ave/correlate <fix_ave_correlate>`
:doc:`compute <compute>`, :doc:`fix ave/atom <fix_ave_atom>`, `fix
:doc:ave/histo <fix_ave_histo>`, :doc:`fix ave/time <fix_ave_time>`,
:doc:`variable <variable>`, :doc:`fix ave/correlate
:doc:<fix_ave_correlate>`, `fix ave/atogrid <fix_ave_grid>`
Default
"""""""
The option defaults are norm = all, ave = one, bias = none, no file output, and
title 1,2,3 = strings as described above.
The option defaults are norm = all, ave = one, bias = none, no file
output, and title 1,2,3 = strings as described above.

View File

@ -70,7 +70,7 @@ Examples
.. code-block:: LAMMPS
fix 1 all ave/grid 10000 1 10000 10 10 10 fx fy fz c_myMSD[*]
fix 1 flow ave/chunk 100 10 1000 20 20 30 f_TTM:grid:data
fix 1 flow ave/grid 100 10 1000 20 20 30 f_TTM:grid:data
Description
"""""""""""
@ -84,13 +84,13 @@ produced by other computes or fixes. This fix operates in either
per-grid inputs in the same command.
The grid created by this command is distributed; each processor owns
the grid points that are within its sub-domain. This is in contrast to
the grid points that are within its sub-domain. This is similar to
the :doc:`fix ave/chunk <fix_ave_chunk>` command when it uses chunks
from the :doc:`compute chunk/atom <compute_chunk_atom>` command which
are 2d or 3d regular bins. The per-bin outputs in that case are
global; each processor stores a copy of the entire set of bin data.
Thus it is better to use this command when the grid is large and a
simulation is run on many processors.
are 2d or 3d regular bins. However, the per-bin outputs in that case
are global; each processor stores a copy of the entire set of bin
data. Thus it more efficient to use the fix ave/grid command when the
grid is large and a simulation is run on many processors.
For per-atom mode, only atoms in the specified group contribute to the
summing and averaging calculations. For per-grid mode, the specified
@ -123,6 +123,32 @@ keyword settings, as discussed below.
----------
The *Nx*, *Ny*, and *Nz* arguements specify the size of the grid that
overlays the simulation box. For 2d simulations, *Nz* must be 1. The
*Nx*, *Ny*, *Nz* values can be any positive integer. The grid can be
very coarse compared to the particle count, or very fine. If one or
more of the values = 1, then bins are 2d planes or 1d slices of the
simulation domain. Note that if the total number of grid cells is
small, it may be more efficient to use the doc:`fix ave/chunk
<fix_ave_chunk>` command which can treat a grid defined by the
:doc:`compute chunk/atom <compute_chunk_atom>` command as a global
grid where each processor owns a copy of all the grid cells. If *Nx*
= *Ny* = *Nz* = 1 is used, the same calculation would be more
efficiently performed by the doc:`fix ave/atom <fix_ave_atom>`
command.
If the simulation box size or shape changes during a simulation, the
grid always conforms to the size/shape of the current simulation box.
If one more dimensions have non-peridoic shrink-wrapped boundary
conditions, as defined by the :doc:`boundary <boundary>` command, then
the grid will extend over the (dynamic) shrink-wrapped extent in each
dimension. If the box shape is triclinic, as explained in :doc:`Howto
triclinic <Howto_triclinic>`, then the grid is also triclinic; each
grid cell is a small triclinic cell with the same shape as the
simulation box.
----------
In both per-atom and per-grid mode, input values from a compute or fix
that produces an array of values (multiple values per atom or per grid
point), the bracketed index I can be specified using a wildcard
@ -455,9 +481,9 @@ Ny * Nz.
For access by other commands, the name of the single grid produced by
this fix is "grid". The names of its two per-grid datums are "data"
for the per-grid array and "count" for the per-grid vector. Both
datums can be accessed by various :doc:`output commands
<Howto_output>`.
for the per-grid array and "count" for the per-grid vector (if using
per-atom values). Both datums can be accessed by various :doc:`output
commands <Howto_output>`.
In per-atom mode, the per-grid array values calculated by this fix are
treated as "intensive", since they are typically already normalized by

View File

@ -195,20 +195,20 @@ the '#' character. Each line contains four numeric columns:
ix,iy,iz,Temperature. Empty or comment-only lines will be
ignored. The number of lines must be equal to the number of
user-specified grid points (Nx by Ny by Nz). The ix,iy,iz are grid
point indices ranging from 0 to nxnodes-1 inclusive in each dimension.
The lines can appear in any order. For example, the initial
electronic temperatures on a 1 by 2 by 3 grid could be specified in
the file as follows:
point indices ranging from 1 to Nxyz inclusive in each dimension. The
lines can appear in any order. For example, the initial electronic
temperatures on a 1 by 2 by 3 grid could be specified in the file as
follows:
.. parsed-literal::
# UNITS: metal COMMENT: initial electron temperature
0 0 0 1.0
0 0 1 1.0
0 0 2 1.0
0 1 0 2.0
0 1 1 2.0
0 1 2 2.0
1 1 1 1.0
1 1 2 1.0
1 1 3 1.0
1 2 1 2.0
1 2 2 2.0
1 2 3 2.0
where the electronic temperatures along the y=0 plane have been set to
1.0, and the electronic temperatures along the y=1 plane have been set
@ -226,8 +226,8 @@ units used.
The *outfile* keyword has 2 values. The first value *Nout* triggers
output of the electronic temperatures for each grid point every Nout
timesteps. The second value is the filename for output which will
be suffixed by the timestep. The format of each output file is exactly
timesteps. The second value is the filename for output, which will be
suffixed by the timestep. The format of each output file is exactly
the same as the input temperature file. It will contain a comment in
the first line reporting the date the file was created, the LAMMPS
units setting in use, grid size and the current timestep.
@ -236,16 +236,21 @@ units setting in use, grid size and the current timestep.
The fix ttm/grid command does not support the *outfile* keyword.
Instead you can use the :doc:`dump grid <dump>` command to output
the electronic temperature on the distributed grid to a dump file.
the electronic temperature on the distributed grid to a dump file or
the :doc:`restart <restart>` command which creates a file specific
to this fix which the :doc:`read restart <read_restart>` command
reads. The file has the same format as the file the *infile* option
reads.
For the fix ttm and fix ttm/mod commands, the corresponding atomic
temperature for atoms in each grid cell can be computed and output by
the :doc:`fix ave/chunk <fix_ave_chunk>` command using the
:doc:`compute chunk/atom <compute_chunk_atom>` command to create a 3d
array of chunks consistent with the grid used by this fix. For the
fix ttm/grid command the same thing can be done using the :doc:`fix
ave/grid <fix_ave_grid>` command and its per-grid values can be output
via the :doc:`dump grid <dump>` command.
array of chunks consistent with the grid used by this fix.
For the fix ttm/grid command the same thing can be done using the
:doc:`fix ave/grid <fix_ave_grid>` command and its per-grid values can
be output via the :doc:`dump grid <dump>` command.
----------
@ -362,11 +367,14 @@ the operation of the fix continues in an uninterrupted fashion. Note
that the restart script must define the same size grid as the original
script.
Because the state of the random number generator is not saved in the
restart files, this means you cannot do "exact" restarts with this
fix, where the simulation continues on the same as if no restart had
taken place. However, in a statistical sense, a restarted simulation
should produce the same behavior.
The fix ttm/grid command also outputs an auxiliary file each time a
restart file is written, with the electron temperatures for each grid
cell. The format of this file is the same as that read by the
*infile* option explained above. The filename is the same as the
restart filename with ".ttm" appended. This auxiliary file can be
read in for a restared run by using the *infile* option for the fix
ttm/grid command, following the :doc:`read_restart <read_restart>`
command.
None of the :doc:`fix_modify <fix_modify>` options are relevant to
these fixes.
@ -386,13 +394,13 @@ electronic subsystem energies reported at the end of the timestep.
The vector values calculated are "extensive".
The fix ttm/grid command also calculates a per-grid vector which
stores the electron temperature for each grid cell in temperature
:doc:`units <units>`. which can be accessed by various :doc:`output
commands <Howto_output>`. The length of the vector (distributed
across all processors) is Nx * Ny * Nz. For access by other commands,
the name of the single grid produced by fix ttm/grid is "grid". The
name of its per-grid data is "data".
The fix ttm/grid command also outputs a per-grid vector which stores
the electron temperature for each grid cell in temperature :doc:`units
<units>`. which can be accessed by various :doc:`output commands
<Howto_output>`. The length of the vector (distributed across all
processors) is Nx * Ny * Nz. For access by other commands, the name
of the single grid produced by fix ttm/grid is "grid". The name of
its per-grid data is "data".
No parameter of the fixes can be used with the *start/stop* keywords
of the :doc:`run <run>` command. The fixes are not invoked during
@ -408,6 +416,15 @@ package <Build_package>` page for more info.
As mentioned above, these fixes require 3d simulations and orthogonal
simulation boxes periodic in all 3 dimensions.
These fixes used a random number generator to Langevin thermostat the
electron temperature. This means you will not get identical answers
when running on different numbers of processors or when restarting a
simulation (even on the same number of processors). However, in a
statistical sense, simulations on different processor counts and
restarted simulation should produce results whiich are statistically
the same.
Related commands
""""""""""""""""