diff --git a/doc/src/comm_modify.rst b/doc/src/comm_modify.rst index 06087bd9a2..e11a75ed12 100644 --- a/doc/src/comm_modify.rst +++ b/doc/src/comm_modify.rst @@ -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, diff --git a/doc/src/neigh_modify.rst b/doc/src/neigh_modify.rst index 6ee21d7419..6e2d1bee2c 100644 --- a/doc/src/neigh_modify.rst +++ b/doc/src/neigh_modify.rst @@ -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. diff --git a/doc/src/neighbor.rst b/doc/src/neighbor.rst index bd58f7045d..80497d57cd 100644 --- a/doc/src/neighbor.rst +++ b/doc/src/neighbor.rst @@ -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) `. 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 ` command. See the -:doc:`comm_modify mode bytype ` 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 ` +command for how to define custom collections. Whether the collection +definition is customized or not, also see the +:doc:`comm_modify mode multi ` 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 ` command has additional options that control how often neighbor lists are built and which pairs are