Merge remote-tracking branch 'github/develop' into general-triclinic
This commit is contained in:
@ -1255,8 +1255,8 @@ Procedures Bound to the :f:type:`lammps` Derived Type
|
||||
three elements of the global vector calculated by fix recenter into the
|
||||
variables *dx*, *dy*, and *dz*, respectively.
|
||||
|
||||
If asked for per-atom or local data, :f:func:`extract_compute` returns a
|
||||
pointer to actual LAMMPS data. The pointer so returned will have the
|
||||
If asked for per-atom or local data, :f:func:`extract_fix` returns a
|
||||
pointer to actual LAMMPS data. The pointer returned will have the
|
||||
appropriate size to match the internal data, and will be
|
||||
type/kind/rank-checked at the time of the assignment. For example,
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Syntax
|
||||
v_name = per-atom vector calculated by an atom-style variable with name
|
||||
|
||||
* zero or more keyword/arg pairs may be appended
|
||||
* keyword = *norm* or *ave* or *bias* or *adof* or *cdof* or *file* or *overwrite* or *format* or *title1* or *title2* or *title3*
|
||||
* keyword = *norm* or *ave* or *bias* or *adof* or *cdof* or *file* or *append* or *overwrite* or *format* or *title1* or *title2* or *title3*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -51,6 +51,8 @@ Syntax
|
||||
dof_per_chunk = define this many degrees-of-freedom per chunk for temperature calculation
|
||||
*file* arg = filename
|
||||
filename = file to write results to
|
||||
*append* arg = filename
|
||||
filename = file to append results to
|
||||
*overwrite* arg = none = overwrite output file with only latest output
|
||||
*format* arg = string
|
||||
string = C-style format string
|
||||
@ -433,15 +435,21 @@ molecule.
|
||||
|
||||
----------
|
||||
|
||||
The *file* keyword allows a filename to be specified. Every
|
||||
:math:`N_\text{freq}` timesteps, a section of chunk info will be written to a
|
||||
text file in the following format. A line with the timestep and number of
|
||||
chunks is written. Then one line per chunk is written, containing the chunk
|
||||
ID :math:`(1-N_\text{chunk}),` an optional original ID value, optional
|
||||
coordinate values for chunks that represent spatial bins, the number of atoms
|
||||
in the chunk, and one or more calculated values. More explanation of the
|
||||
optional values is given below. The number of values in each line
|
||||
corresponds to the number of values specified in the fix ave/chunk
|
||||
.. versionadded:: TBD
|
||||
new keyword *append*
|
||||
|
||||
The *file* or *append* keywords allow a filename to be specified. 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. Every :math:`N_\text{freq}`
|
||||
timesteps, a section of chunk info will be written to a text file in the
|
||||
following format. A line with the timestep and number of chunks is
|
||||
written. Then one line per chunk is written, containing the chunk ID
|
||||
:math:`(1-N_\text{chunk}),` an optional original ID value, optional
|
||||
coordinate values for chunks that represent spatial bins, the number of
|
||||
atoms in the chunk, and one or more calculated values. More explanation
|
||||
of the optional values is given below. The number of values in each
|
||||
line corresponds to the number of values specified in the fix ave/chunk
|
||||
command. The number of atoms and the value(s) are summed or average
|
||||
quantities, as explained above.
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@ Syntax
|
||||
v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below)
|
||||
|
||||
* zero or more keyword/arg pairs may be appended
|
||||
* keyword = *mode* or *kind* or *file* or *ave* or *start* or *beyond* or *overwrite* or *title1* or *title2* or *title3*
|
||||
* keyword = *mode* or *kind* or *file* or *append* or *ave* or *start* or *beyond* or *overwrite* or *title1* or *title2* or *title3*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -45,6 +45,8 @@ Syntax
|
||||
*kind* arg = *global* or *peratom* or *local*
|
||||
*file* arg = filename
|
||||
filename = name of file to output histogram(s) to
|
||||
*append* arg = filename
|
||||
filename = name of file to append histogram(s) to
|
||||
*ave* args = *one* or *running* or *window*
|
||||
one = output a new average value every Nfreq steps
|
||||
running = output cumulative average of all previous Nfreq steps
|
||||
@ -317,19 +319,25 @@ on. 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 histogram.
|
||||
|
||||
The *file* keyword allows a filename to be specified. Every *Nfreq*
|
||||
steps, one histogram is written to the file. This includes a leading
|
||||
line that contains the timestep, number of bins, the total count of
|
||||
values contributing to the histogram, the count of values that were
|
||||
not histogrammed (see the *beyond* keyword), the minimum value
|
||||
encountered, and the maximum value encountered. The min/max values
|
||||
include values that were not histogrammed. Following the leading
|
||||
line, one line per bin is written into the file. Each line contains
|
||||
the bin #, the coordinate for the center of the bin (between *lo* and
|
||||
*hi*\ ), the count of values in the bin, and the normalized count. The
|
||||
normalized count is the bin count divided by the total count (not
|
||||
including values not histogrammed), so that the normalized values sum
|
||||
to 1.0 across all bins.
|
||||
.. versionadded:: TBD
|
||||
new keyword *append*
|
||||
|
||||
The *file* or *append* keywords allow a filename to be specified. 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. Every *Nfreq* steps, one
|
||||
histogram is written to the file. This includes a leading line that
|
||||
contains the timestep, number of bins, the total count of values
|
||||
contributing to the histogram, the count of values that were not
|
||||
histogrammed (see the *beyond* keyword), the minimum value encountered,
|
||||
and the maximum value encountered. The min/max values include values
|
||||
that were not histogrammed. Following the leading line, one line per
|
||||
bin is written into the file. Each line contains the bin #, the
|
||||
coordinate for the center of the bin (between *lo* and *hi*\ ), the
|
||||
count of values in the bin, and the normalized count. The normalized
|
||||
count is the bin count divided by the total count (not including values
|
||||
not histogrammed), so that the normalized values sum to 1.0 across all
|
||||
bins.
|
||||
|
||||
The *overwrite* keyword will continuously overwrite the output file
|
||||
with the latest output, so that it only contains one timestep worth of
|
||||
|
||||
@ -28,7 +28,7 @@ Syntax
|
||||
v_name[I] = value calculated by a vector-style variable with name, I can include wildcard (see below)
|
||||
|
||||
* zero or more keyword/arg pairs may be appended
|
||||
* keyword = *mode* or *file* or *ave* or *start* or *off* or *overwrite* or *format* or *title1* or *title2* or *title3*
|
||||
* keyword = *mode* or *file* or *append* or *ave* or *start* or *off* or *overwrite* or *format* or *title1* or *title2* or *title3*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -45,6 +45,8 @@ Syntax
|
||||
M = value # from 1 to Nvalues
|
||||
*file* arg = filename
|
||||
filename = name of file to output time averages to
|
||||
*append* arg = filename
|
||||
filename = name of file to append time averages to
|
||||
*overwrite* arg = none = overwrite output file with only latest output
|
||||
*format* arg = string
|
||||
string = C-style format string
|
||||
@ -270,16 +272,21 @@ 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.
|
||||
.. versionadded:: TBD
|
||||
new keyword *append*
|
||||
|
||||
The *file* or *append* keywords allow a filename to be specified. 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. 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.
|
||||
|
||||
.. versionadded:: 4May2022
|
||||
|
||||
|
||||
@ -255,23 +255,24 @@ and the fix will issue an error in that case.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The keyword *qtotal* causes *fix electrode/conp* and *fix electrode/thermo*
|
||||
to add an overall potential to all electrodes so that the total charge on
|
||||
the electrodes is a specified amount (which may be an equal-style variable).
|
||||
For example, if a user wanted to simulate a solution of excess cations
|
||||
such that the total electrolyte charge is +2, setting *qtotal -2* would cause
|
||||
the total electrode charge to be -2, so that the simulation box remains overall
|
||||
electroneutral. Since *fix electrode/conq* constrains the total charges of
|
||||
individual electrodes, and since *symm on* constrains the total charge of all
|
||||
electrodes to be zero, either option is incompatible with the *qtotal* keyword
|
||||
(even if *qtotal* is set to zero).
|
||||
The keyword *qtotal* causes *fix electrode/conp* and *fix
|
||||
electrode/thermo* to add an overall potential to all electrodes so that
|
||||
the total charge on the electrodes is a specified amount (which may be
|
||||
an equal-style variable). For example, if a user wanted to simulate a
|
||||
solution of excess cations such that the total electrolyte charge is +2,
|
||||
setting *qtotal -2* would cause the total electrode charge to be -2, so
|
||||
that the simulation box remains overall electroneutral. Since *fix
|
||||
electrode/conq* constrains the total charges of individual electrodes,
|
||||
and since *symm on* constrains the total charge of all electrodes to be
|
||||
zero, either option is incompatible with the *qtotal* keyword (even if
|
||||
*qtotal* is set to zero).
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The keyword *eta* takes the name of a custom double vector defined via fix
|
||||
property/atom. The values will be used instead of the standard eta value. The
|
||||
property/atom fix must be for vector of double values and use the *ghost on*
|
||||
option.
|
||||
The keyword *eta* takes the name of a custom double vector defined via
|
||||
fix property/atom. The values will be used instead of the standard eta
|
||||
value. The property/atom fix must be for vector of double values and
|
||||
use the *ghost on* option.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
@ -159,17 +159,17 @@ surface-to-volume ratio of each processor's subdomain.
|
||||
for most MPI implementations, but some MPIs provide options for this
|
||||
ordering, e.g. via environment variable settings.
|
||||
|
||||
The *numa* style operates similar to the *twolevel* keyword except
|
||||
that it auto-detects which cores are running on which nodes.
|
||||
It will also subdivide the cores into numa domains. Currently, the
|
||||
number of numa domains is not autodetected and must be specified using
|
||||
the *numa_nodes* keyword; otherwise, the default value is used. The
|
||||
*numa* style uses a different algorithm than the *twolevel* keyword for
|
||||
doing the two-level factorization of the simulation box into a 3d
|
||||
processor grid to minimize off-node communication and communication
|
||||
across numa domains. It does its own MPI-based mapping of nodes and
|
||||
cores to the regular 3d grid. Thus it may produce a different layout
|
||||
of the processors than the *twolevel* options.
|
||||
The *numa* style operates similar to the *twolevel* keyword except that
|
||||
it auto-detects which cores are running on which nodes. It will also
|
||||
subdivide the cores into numa domains. Currently, the number of numa
|
||||
domains is not auto-detected and must be specified using the
|
||||
*numa_nodes* keyword; otherwise, the default value is used. The *numa*
|
||||
style uses a different algorithm than the *twolevel* keyword for doing
|
||||
the two-level factorization of the simulation box into a 3d processor
|
||||
grid to minimize off-node communication and communication across numa
|
||||
domains. It does its own MPI-based mapping of nodes and cores to the
|
||||
regular 3d grid. Thus it may produce a different layout of the
|
||||
processors than the *twolevel* options.
|
||||
|
||||
The *numa* style will give an error if the number of MPI processes is
|
||||
not divisible by the number of cores used per node, or any of the Px
|
||||
@ -182,7 +182,7 @@ or Py or Pz values is greater than 1.
|
||||
is because it auto-detects which processes are running on which nodes.
|
||||
However, it assumes that the lowest ranks are in the first numa
|
||||
domain, and so forth. MPI rank orderings that do not preserve this
|
||||
property might result in more intranode communication between CPUs.
|
||||
property might result in more intra-node communication between CPUs.
|
||||
|
||||
The *custom* style uses the file *infile* to define both the 3d
|
||||
factorization and the mapping of processors to the grid.
|
||||
@ -213,7 +213,7 @@ any order, but no processor ID should appear more than once.
|
||||
|
||||
----------
|
||||
|
||||
The *numa_nodes* keyword is used to specifiy the number of numa domains
|
||||
The *numa_nodes* keyword is used to specify the number of numa domains
|
||||
per node. It is currently only used by the *numa* style for two-level
|
||||
factorization to reduce the amount of MPI communications between CPUs.
|
||||
A good setting for this will typically be equal to the number of CPU
|
||||
|
||||
Reference in New Issue
Block a user