forked from lijiext/lammps
212 lines
10 KiB
HTML
212 lines
10 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>neigh_modify command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>neigh_modify keyword values ...
|
|
</PRE>
|
|
<UL><LI>one or more keyword/value pairs may be listed
|
|
|
|
<PRE>keyword = <I>delay</I> or <I>every</I> or <I>check</I> or <I>once</I> or <I>cluster</I> or <I>include</I> or <I>exclude</I> or <I>page</I> or <I>one</I> or <I>binsize</I>
|
|
<I>delay</I> value = N
|
|
N = delay building until this many steps since last build
|
|
<I>every</I> value = M
|
|
M = build neighbor list every this many steps
|
|
<I>check</I> value = <I>yes</I> or <I>no</I>
|
|
<I>yes</I> = only build if some atom has moved half the skin distance or more
|
|
<I>no</I> = always build on 1st step that <I>every</I> and <I>delay</I> are satisfied
|
|
<I>once</I>
|
|
<I>yes</I> = only build neighbor list once at start of run and never rebuild
|
|
<I>no</I> = rebuild neighbor list according to other settings
|
|
<I>cluster</I>
|
|
<I>yes</I> = check bond,angle,etc neighbor list for nearby clusters
|
|
<I>no</I> = do not check bond,angle,etc neighbor list for nearby clusters
|
|
<I>include</I> value = group-ID
|
|
group-ID = only build pair neighbor lists for atoms in this group
|
|
<I>exclude</I> values:
|
|
type M N
|
|
M,N = exclude if one atom in pair is type M, other is type N
|
|
group group1-ID group2-ID
|
|
group1-ID,group2-ID = exclude if one atom is in 1st group, other in 2nd
|
|
molecule group-ID
|
|
groupname = exclude if both atoms are in the same molecule and in the same group
|
|
none
|
|
delete all exclude settings
|
|
<I>page</I> value = N
|
|
N = number of pairs stored in a single neighbor page
|
|
<I>one</I> value = N
|
|
N = max number of neighbors of one atom
|
|
<I>binsize</I> value = size
|
|
size = bin size for neighbor list construction (distance units)
|
|
</PRE>
|
|
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>neigh_modify every 2 delay 10 check yes page 100000
|
|
neigh_modify exclude type 2 3
|
|
neigh_modify exclude group frozen frozen check no
|
|
neigh_modify exclude group residue1 chain3
|
|
neigh_modify exclude molecule rigid
|
|
</PRE>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>This command sets parameters that affect the building and use of
|
|
pairwise neighbor lists.
|
|
</P>
|
|
<P>The <I>every</I>, <I>delay</I>, <I>check</I>, and <I>once</I> options affect how often
|
|
lists are built as a simulation runs. The <I>delay</I> setting means never
|
|
build a new list until at least N steps after the previous build. The
|
|
<I>every</I> setting means build the list every M steps (after the delay
|
|
has passed). If the <I>check</I> setting is <I>no</I>, the list is built on the
|
|
1st step that satisfies the <I>delay</I> and <I>every</I> settings. If the
|
|
<I>check</I> setting is <I>yes</I>, then the list is only built on a particular
|
|
step if some atom has moved more than half the skin distance
|
|
(specified in the <A HREF = "neighbor.html">neighbor</A> command) since the last
|
|
build. If the <I>once</I> setting is yes, then the neighbor list is only
|
|
built once at the beginning of each run, and never rebuilt. This
|
|
should only be done if you are certain atoms will not move far enough
|
|
that the list should be rebuilt. E.g. running a simulation of a cold
|
|
crystal. Note that it is not that expensive to check if neighbor
|
|
lists should be rebuilt.
|
|
</P>
|
|
<P>When the rRESPA integrator is used (see the <A HREF = "run_style.html">run_style</A>
|
|
command), the <I>every</I> and <I>delay</I> parameters refer to the longest
|
|
(outermost) timestep.
|
|
</P>
|
|
<P>The <I>cluster</I> option does a sanity test every time neighbor lists are
|
|
built for bond, angle, dihedral, and improper interactions, to check
|
|
that each set of 2, 3, or 4 atoms is a cluster of nearby atoms. It
|
|
does this by computing the distance between pairs of atoms in the
|
|
interaction and insuring they are not further apart than half the
|
|
periodic box length. If they are, an error is generated, since the
|
|
interaction would be computed between far-away atoms instead of their
|
|
nearby periodic images. The only way this should happen is if the
|
|
pairwise cutoff is so short that atoms that are part of the same
|
|
interaction are not communicated as ghost atoms. This is an unusual
|
|
model (e.g. no pair interactions at all) and the problem can be fixed
|
|
by use of the <A HREF = "communicate.html">communicate cutoff</A> command. Note
|
|
that to save time, the default <I>cluster</I> setting is <I>no</I>, so that this
|
|
check is not performed.
|
|
</P>
|
|
<P>The <I>include</I> option limits the building of pairwise neighbor lists to
|
|
atoms in the specified group. This can be useful for models where a
|
|
large portion of the simulation is particles that do not interact with
|
|
other particles or with each other via pairwise interactions. The
|
|
group specified with this option must also be specified via the
|
|
<A HREF = "atom_modify.html">atom_modify first</A> command.
|
|
</P>
|
|
<P>The <I>exclude</I> option turns off pairwise interactions between certain
|
|
pairs of atoms, by not including them in the neighbor list. These are
|
|
sample scenarios where this is useful:
|
|
</P>
|
|
<UL><LI>In crack simulations, pairwise interactions can be shut off between 2
|
|
slabs of atoms to effectively create a crack.
|
|
|
|
<LI>When a large collection of atoms is treated as frozen, interactions
|
|
between those atoms can be turned off to save needless
|
|
computation. E.g. Using the <A HREF = "fix_setforce.html">fix setforce</A> command
|
|
to freeze a wall or portion of a bio-molecule.
|
|
|
|
<LI>When one or more rigid bodies are specified, interactions within each
|
|
body can be turned off to save needless computation. See the <A HREF = "fix_rigid.html">fix
|
|
rigid</A> command for more details.
|
|
</UL>
|
|
<P>The <I>exclude type</I> option turns off the pairwise interaction if one
|
|
atom is of type M and the other of type N. M can equal N. The
|
|
<I>exclude group</I> option turns off the interaction if one atom is in the
|
|
first group and the other is the second. Group1-ID can equal
|
|
group2-ID. The <I>exclude molecule</I> option turns off the interaction if
|
|
both atoms are in the specified group and in the same molecule, as
|
|
determined by their molecule ID.
|
|
</P>
|
|
<P>Each of the exclude options can be specified multiple times. The
|
|
<I>exclude type</I> option is the most efficient option to use; it requires
|
|
only a single check, no matter how many times it has been specified.
|
|
The other exclude options are more expensive if specified multiple
|
|
times; they require one check for each time they have been specified.
|
|
</P>
|
|
<P>Note that the exclude options only affect pairwise interactions; see
|
|
the <A HREF = "delete_bonds.html">delete_bonds</A> command for information on
|
|
turning off bond interactions.
|
|
</P>
|
|
<P>IMPORTANT NOTE: Excluding pairwise interactions will not work
|
|
correctly when also using a long-range solver via the
|
|
<A HREF = "kspace_style.html">kspace_style</A> command. LAMMPS will give a warning
|
|
to this effect. This is because the short-range pairwise interaction
|
|
needs to subtract off a term from the total energy for pairs whose
|
|
short-range interaction is excluded, to compensate for how the
|
|
long-range solver treats the interaction. This is done correctly for
|
|
pairwise interactions that are excluded (or weighted) via the
|
|
<A HREF = "special_bonds.html">special_bonds</A> command. But it is not done for
|
|
interactions that are excluded via these neigh_modify exclude options.
|
|
</P>
|
|
<P>The <I>page</I> and <I>one</I> options affect how memory is allocated for the
|
|
neighbor lists. For most simulations the default settings for these
|
|
options are fine, but if a very large problem is being run or a very
|
|
long cutoff is being used, these parameters can be tuned. The indices
|
|
of neighboring atoms are stored in "pages", which are allocated one
|
|
after another as they fill up. The size of each page is set by the
|
|
<I>page</I> value. A new page is allocated when the next atom's neighbors
|
|
could potentially overflow the list. This threshold is set by the
|
|
<I>one</I> value which tells LAMMPS the maximum number of neighbor's one
|
|
atom can have.
|
|
</P>
|
|
<P>IMPORTANT NOTE: LAMMPS can crash without an error message if the
|
|
number of neighbors for a single particle is larger than the <I>page</I>
|
|
setting, which means it is much, much larger than the <I>one</I> setting.
|
|
This is because LAMMPS doesn't error check these limits for every
|
|
pairwise interaction (too costly), but only after all the particle's
|
|
neighbors have been found. This problem usually means something is
|
|
very wrong with the way you've setup your problem (particle spacing,
|
|
cutoff length, neighbor skin distance, etc). If you really expect
|
|
that many neighbors per particle, then boost the <I>one</I> and <I>page</I>
|
|
settings accordingly.
|
|
</P>
|
|
<P>The <I>binsize</I> option allows you to specify what size of bins will be
|
|
used in neighbor list construction to sort and find neighboring atoms.
|
|
By default, for <A HREF = "neighbor.html">neighbor style bin</A>, LAMMPS uses bins
|
|
that are 1/2 the size of the maximum pair cutoff. For <A HREF = "neighbor.html">neighbor style
|
|
multi</A>, the bins are 1/2 the size of the minimum pair
|
|
cutoff. Typically these are good values values for minimizing the
|
|
time for neighbor list construction. This setting overrides the
|
|
default. If you make it too big, there is little overhead due to
|
|
looping over bins, but more atoms are checked. If you make it too
|
|
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.
|
|
</P>
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>If the "delay" setting is non-zero, then it must be a multiple of the
|
|
"every" setting.
|
|
</P>
|
|
<P>The exclude molecule option can only be used with atom styles that
|
|
define molecule IDs.
|
|
</P>
|
|
<P>The value of the <I>page</I> setting must be at least 10x larger than the
|
|
<I>one</I> setting. This insures neighbor pages are not mostly empty
|
|
space.
|
|
</P>
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "neighbor.html">neighbor</A>, <A HREF = "delete_bonds.html">delete_bonds</A>
|
|
</P>
|
|
<P><B>Default:</B>
|
|
</P>
|
|
<P>The option defaults are delay = 10, every = 1, check = yes, once = no,
|
|
cluster = no, include = all, exclude = none, page = 100000, one =
|
|
2000, and binsize = 0.0.
|
|
</P>
|
|
</HTML>
|