git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11483 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2014-02-05 19:39:01 +00:00
parent e78efeee6a
commit 8879881620
2 changed files with 151 additions and 12 deletions

View File

@ -17,7 +17,7 @@
</PRE>
<UL><LI>ID = user-defined name of the group
<LI>style = <I>delete</I> or <I>region</I> or <I>type</I> or <I>id</I> or <I>molecule</I> or <I>variable</I> or <I>subtract</I> or <I>union</I> or <I>intersect</I>
<LI>style = <I>delete</I> or <I>region</I> or <I>type</I> or <I>id</I> or <I>molecule</I> or <I>variable</I> or <I>subtract</I> or <I>union</I> or <I>intersect</I> or <I>dynamic</I> or <I>static</I>
<PRE> <I>delete</I> = no args
<I>region</I> args = region-ID
@ -32,10 +32,17 @@
args = logical value1 value2
logical = "<>"
value1,value2 = atom types or atom IDs or molecule IDs (depending on <I>style</I>)
<I>variable</I> args = variable-ID
<I>variable</I> args = variable-name
<I>subtract</I> args = two or more group IDs
<I>union</I> args = one or more group IDs
<I>intersect</I> args = two or more group IDs
<I>intersect</I> args = two or more group IDs
<I>dynamic</I> args = parent-ID keyword value ...
one or more keyword/value pairs may be appended
keyword = <I>region</I> or <I>var</I> or <I>every</I>
<I>region</I> value = region-ID
<I>var</I> value = name of variable
<I>every</I> value = N = update group every this many timesteps
<I>static</I> = no args
</PRE>
</UL>
@ -52,7 +59,8 @@ group hienergy variable eng
group boundary subtract all a2 a3
group boundary union lower upper
group boundary intersect upper flow
group boundary delete
group boundary delete
group mine dynamic all region myRegion every 100
</PRE>
<P><B>Description:</B>
</P>
@ -64,6 +72,18 @@ to act on those atoms together.
<P>If the group ID already exists, the group command adds the specified
atoms to the group.
</P>
<P>IMPORTANT NOTE: By default groups are static, meaning the atoms are
permanently assigned to the group. For example, if the <I>region</I> style
is used to assign atoms to a group, the atoms will remain in the group
even if they later move out of the region. As explained below, the
<I>dynamic</I> style can be used to make a group dynamic so that a periodic
determination is made as to which atoms are in the group. Since many
LAMMPS commands operate on groups of atoms, you should think carefully
about whether making a group dynamic makes sense for your model.
</P>
<P>A group with the ID <I>all</I> is predefined. All atoms belong to this
group. This group cannot be deleted, or made dynamic.
</P>
<P>The <I>delete</I> style removes the named group and un-assigns all atoms
that were assigned to that group. Since there is a restriction (see
below) that no more than 32 groups can be defined at any time, the
@ -156,14 +176,63 @@ added to the specified group.
as arguments. Atoms that belong to every one of the listed groups are
added to the specified group.
</P>
<P>A group with the ID <I>all</I> is predefined. All atoms belong to this
group. This group cannot be deleted.
<HR>
<P>The <I>dynamic</I> style flags an existing or new group as dynamic. This
means atoms will be (re)assigned to the group periodically as a
simulation runs. This is in contrast to static groups where atoms are
permanently assigned to the group. The way the assignment occurs is
as follows. Only atoms in the group specified as the parent group via
the parent-ID are initially assigned to the dynamic group. If the
<I>region</I> keyword is used, atoms not in the specified region are
removed from the dynamic group. If the <I>var</I> keyword is used, the
variable name must be an atom-style or atomfile-style variable. The
variable is evaluated and atoms whose per-atom values are 0.0, are
removed from the dynamic group.
</P>
<P>The assignment of atoms to a dynamic group is done at the beginning of
each run and on every timestep that is a multiple of <I>N</I>, which is the
argument for the <I>every</I> keyword (N = 1 is the default). For an
energy minimization, via the <A HREF = "minimize.html">minimize</A> command, an
assignement is made at the beginning of the minimization, but not
during the iterations of the minimizer.
</P>
<P>The point in the timestep at which atoms are assigned to a dynamic
group is after the initial stage of velocity Verlet time integration
has been performed, and before neighbor lists or forces are computed.
This is the point in the timestep where atom positions have just
changed due to the time integration, so the region criterion should be
accurate, if applied.
</P>
<P>Here is an example of using a dynamic group to shrink the set of atoms
being integrated by using a spherical region with a variable radius
(shrinking from 18 to 5 over the course of the run). This could be
used to model a quench of the system, freezing atoms outside the
shrinking sphere, then converting the remaining atoms to a static
group and running further.
</P>
<PRE>variable nsteps equal 5000
variable rad equal 18-(step/v_nsteps)*(18-5)
region ss sphere 20 20 0 v_rad
group mobile dynamic all region ss
fix 1 mobile nve
run $<I>nsteps</I>
group mobile static
run $<I>nsteps</I>
</PRE>
<P>The <I>static</I> style removes the setting for a dynamic group, converting
it to a static group (the default). The atoms in the static group are
those currently in the dynamic group.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>There can be no more than 32 groups defined at one time, including
"all".
</P>
<P>The parent group of a dynamic group cannot itself be a dynamic group.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "dump.html">dump</A>, <A HREF = "fix.html">fix</A>, <A HREF = "region.html">region</A>,

View File

@ -14,7 +14,7 @@ group ID style args :pre
ID = user-defined name of the group :ulb,l
style = {delete} or {region} or {type} or {id} or {molecule} or {variable} or \
{subtract} or {union} or {intersect} :l
{subtract} or {union} or {intersect} or {dynamic} or {static} :l
{delete} = no args
{region} args = region-ID
{type} or {id} or {molecule}
@ -28,10 +28,17 @@ style = {delete} or {region} or {type} or {id} or {molecule} or {variable} or \
args = logical value1 value2
logical = "<>"
value1,value2 = atom types or atom IDs or molecule IDs (depending on {style})
{variable} args = variable-ID
{variable} args = variable-name
{subtract} args = two or more group IDs
{union} args = one or more group IDs
{intersect} args = two or more group IDs :pre
{intersect} args = two or more group IDs
{dynamic} args = parent-ID keyword value ...
one or more keyword/value pairs may be appended
keyword = {region} or {var} or {every}
{region} value = region-ID
{var} value = name of variable
{every} value = N = update group every this many timesteps
{static} = no args :pre
:ule
[Examples:]
@ -47,7 +54,9 @@ group hienergy variable eng
group boundary subtract all a2 a3
group boundary union lower upper
group boundary intersect upper flow
group boundary delete :pre
group boundary delete
group mine dynamic all region myRegion every 100 :pre
[Description:]
@ -59,6 +68,18 @@ to act on those atoms together.
If the group ID already exists, the group command adds the specified
atoms to the group.
IMPORTANT NOTE: By default groups are static, meaning the atoms are
permanently assigned to the group. For example, if the {region} style
is used to assign atoms to a group, the atoms will remain in the group
even if they later move out of the region. As explained below, the
{dynamic} style can be used to make a group dynamic so that a periodic
determination is made as to which atoms are in the group. Since many
LAMMPS commands operate on groups of atoms, you should think carefully
about whether making a group dynamic makes sense for your model.
A group with the ID {all} is predefined. All atoms belong to this
group. This group cannot be deleted, or made dynamic.
The {delete} style removes the named group and un-assigns all atoms
that were assigned to that group. Since there is a restriction (see
below) that no more than 32 groups can be defined at any time, the
@ -151,14 +172,63 @@ The {intersect} style takes a list of two or more existing group names
as arguments. Atoms that belong to every one of the listed groups are
added to the specified group.
A group with the ID {all} is predefined. All atoms belong to this
group. This group cannot be deleted.
:line
The {dynamic} style flags an existing or new group as dynamic. This
means atoms will be (re)assigned to the group periodically as a
simulation runs. This is in contrast to static groups where atoms are
permanently assigned to the group. The way the assignment occurs is
as follows. Only atoms in the group specified as the parent group via
the parent-ID are initially assigned to the dynamic group. If the
{region} keyword is used, atoms not in the specified region are
removed from the dynamic group. If the {var} keyword is used, the
variable name must be an atom-style or atomfile-style variable. The
variable is evaluated and atoms whose per-atom values are 0.0, are
removed from the dynamic group.
The assignment of atoms to a dynamic group is done at the beginning of
each run and on every timestep that is a multiple of {N}, which is the
argument for the {every} keyword (N = 1 is the default). For an
energy minimization, via the "minimize"_minimize.html command, an
assignement is made at the beginning of the minimization, but not
during the iterations of the minimizer.
The point in the timestep at which atoms are assigned to a dynamic
group is after the initial stage of velocity Verlet time integration
has been performed, and before neighbor lists or forces are computed.
This is the point in the timestep where atom positions have just
changed due to the time integration, so the region criterion should be
accurate, if applied.
Here is an example of using a dynamic group to shrink the set of atoms
being integrated by using a spherical region with a variable radius
(shrinking from 18 to 5 over the course of the run). This could be
used to model a quench of the system, freezing atoms outside the
shrinking sphere, then converting the remaining atoms to a static
group and running further.
variable nsteps equal 5000
variable rad equal 18-(step/v_nsteps)*(18-5)
region ss sphere 20 20 0 v_rad
group mobile dynamic all region ss
fix 1 mobile nve
run ${nsteps}
group mobile static
run ${nsteps} :pre
The {static} style removes the setting for a dynamic group, converting
it to a static group (the default). The atoms in the static group are
those currently in the dynamic group.
:line
[Restrictions:]
There can be no more than 32 groups defined at one time, including
"all".
The parent group of a dynamic group cannot itself be a dynamic group.
[Related commands:]
"dump"_dump.html, "fix"_fix.html, "region"_region.html,