Updating documentation

This commit is contained in:
Joel Clemmer
2021-05-04 17:22:35 -06:00
parent fa386c0e96
commit 350ec7cc07
3 changed files with 26 additions and 18 deletions

View File

@ -34,7 +34,7 @@ Examples
comm_modify mode multi reduce/multi
comm_modify mode multi group solvent
comm_modift mode multi cutoff/multi 0 10.0 cutoff/multi 2*4 15.0
comm_modift mode multi cutoff/multi 1 10.0 cutoff/multi 2*4 15.0
comm_modify vel yes
comm_modify mode single cutoff 5.0 vel yes
comm_modify cutoff/multi * 0.0
@ -101,7 +101,7 @@ communication mode *multi* instead. Since the communication
cutoffs are determined per atom collections, a collection specifier is needed and
cutoff for one or multiple collections can be extended. Also ranges of collections
using the usual asterisk notation can be given.
Collections are indexed from 0 to N-1 where N is the total number of collections.
Collections are indexed from 1 to N where N is the total number of collections.
Note that the arguments for *cutoff/multi* are parsed right before each
simulation to account for potential changes in the number of collections.
Custom cutoffs are preserved between runs but if collections are redefined,

View File

@ -206,10 +206,11 @@ small, the optimal number of atoms is checked, but bin overhead goes
up. If you set the binsize to 0.0, LAMMPS will use the default
binsize of 1/2 the cutoff.
The *collection/type* option allows you to define custom collections of atom
types for the *multi* neighbor mode. By grouping atom types with
similar cutoffs, one may be able to improve performance by reducing
overhead. You must first specify the number of custom collections N to be
The *collection/type* option allows you to define collections of atom
types, used by the *multi* neighbor mode. By grouping atom types with
similar physical size or interaction cutoff lengths, one may be able
to improve performance by reducing
overhead. You must first specify the number of collections N to be
defined followed by N lists of types. Each list consists of a series of type
ranges separated by commas. The range can be specified as a
single numeric value, or a wildcard asterisk can be used to specify a range
@ -218,13 +219,13 @@ example, if M = the number of atom types, then an asterisk with no numeric
values means all types from 1 to M. A leading asterisk means all types
from 1 to n (inclusive). A trailing asterisk means all types from n to M
(inclusive). A middle asterisk means all types from m to n (inclusive).
Note that all atom types must be included in a custom collection.
Note that all atom types must be included in exactly one of the N collections.
The *collection/interval* option provides a similar capability.
This command allows a user to define custom collections by specifying a
This command allows a user to define collections by specifying a
series of cutoff intervals. LAMMPS will automatically sort atoms into these intervals
based on their type-dependent cutoffs or their finite size.
You must first specify the number of custom collections N to be
You must first specify the number of collections N to be
defined followed by N values representing the upper cutoff of each interval.
This command is particularly useful for granular pairstyles where the interaction distance
of particles depends on their radius and may not depend on their atom type.

View File

@ -56,23 +56,30 @@ the largest cutoff distance between any pair of atom types and a
single set of bins is defined to search over for all atom types. This
can be inefficient if one pair of types has a very long cutoff, but
other type pairs have a much shorter cutoff. The *multi* style uses
different sized bins for collections of different sized particles. Different
different sized bins for collections of different sized particles, where
"size" may mean the physical size of the particle or its cutoff
distance for interacting with other particles. Different
sets of bins are then used to construct the neighbor lists as as further
described by Shire, Hanley, and Stratford :ref:`(Shire) <bytype-Shire>`.
This imposes some extra setup overhead, but the searches themselves
may be much faster. By default, separate collections of particles are defined
for each atom type. For systems with two or more types with similar
cutoffs, one can reduce the extra overhead by defining custom collections
using the :doc:`neigh_modify <neigh_modify>` command. See the
:doc:`comm_modify mode bytype <comm_modify>` command for compatible
communication options that may be beneficial for simulations of this kind.
may be much faster. By default, each atom type defines a separate
collection of particles. For systems where two or more atom types
have the same size (either physical size or cutoff distance), the
definition of collections can be customized, which can result in less
overhead and faster performance. See the :doc:`neigh_modify <neigh_modify>`
command for how to define custom collections. Whether the collection
definition is customized or not, also see the
:doc:`comm_modify mode multi <comm_modify>` command for communication
options that further improve performance in a manner consistent with
neighbor style multi.
An alternate style, *multi/old*, sets the bin size to 1/2 of the shortest
cutoff distance and multiple sets of bins are defined to search over for
different atom types. This algorithm used to be the default *multi*
algorithm in LAMMPS but was found to be significantly slower than the new
approach. Although, there may be instances where the *multi/old* style
could outperform the new style.
approach. For now we are keeping the old option in case there are use cases
where multi/old outperforms the new multi style.
The :doc:`neigh_modify <neigh_modify>` command has additional options
that control how often neighbor lists are built and which pairs are