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

This commit is contained in:
sjplimp 2009-06-30 17:19:42 +00:00
parent b2f471d853
commit 676f9abf30
3 changed files with 103 additions and 27 deletions

View File

@ -51,21 +51,52 @@ fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off
</PRE>
<P><B>Description:</B>
</P>
<P>Treat one or more sets of atoms as an independent rigid body. This
<P>Treat one or more sets of atoms as independent rigid bodies. This
means that each timestep the total force and torque on each rigid body
is computed and the coordinates and velocities of the atoms in each
body are updated so that they move as a rigid body. This can be
useful for freezing one or more portions of a large biomolecule, or
for simulating a system of colloidal particles.
is computed as the sum of the forces and torques on its constituent
particles and the coordinates, velocities, and orientations of the
atoms in each body are updated so that the body moves and rotates as a
single entity.
</P>
<P>IMPORTANT NOTE: This fix is overkill if you just want to hold group of
atoms stationary of have them move with a constant velocity. A
simpler way to hold atoms stationary is to not include those atoms in
your time integration fix. E.g. use "fix 1 mobile nve" instead of
"fix 1 all nve", where "mobile" is the group of atoms that you want to
move. You can move atoms with a constant velocity by assigning them
an initial velocity (via the <A HREF = "velocity.html">velocity</A> command),
setting the force on them to 0.0 (via the <A HREF = "fix_setforce.html">fix
<P>Examples of large rigid bodies are a large colloidal particle, or
portions of a large biomolecule such as a protein.
</P>
<P>Example of small rigid bodies are patchy nanoparticles, such as those
modeled by the <A HREF = "Glotzer">Glotzer group</A>, clumps of granular particles,
lipid molecules consiting of one or more point dipoles connected to
other spheroids or ellipsoids, and coarse-grain models of nano or
colloidal particles consisting of a small number of constituent
particles. Note that the <A HREF = "fix_shake">fix shake</A> command can also be
used to rigidify small molecules of 2, 3, or 4 atoms, e.g. water
molecules. That fix treats the constituent atoms as point masses.
</P>
<P>The constituent particles within a rigid body can be point particles
(the default in LAMMPS) or finite-size particles, such as spheroids
and ellipsoids. See the <A HREF = "shape.html">shape</A> command and <A HREF = "atom_style.html">atom_style
granular</A> for more details on these kinds of
particles. Finite-size particles contribute differently to the moment
of inertia of a rigid body than do point particles. Finite-size
particles can also experience torque (e.g. due to <A HREF = "pair_gran.html">frictional granular
interactions</A>) and have an orientation. These
contributions are accounted for by the fix.
</P>
<P>Forces between particles within a body do not contribute to the
external force or torque on the body. Thus for computational
efficiency, you may wish to turn off pairwise and bond interactions
between particles within each rigid body. The <A HREF = "neigh_modify.html">neigh_modify
exclude</A> and <A HREF = "delete_bonds.html">delete_bonds</A>
commands are used to do this. For finite-size particles this also
means the particles can be highly overlapped when creating the rigid
body.
</P>
<P>IMPORTANT NOTE: This fix is overkill if you simply want to hold a
collection of atoms stationary or have them move with a constant
velocity. A simpler way to hold atoms stationary is to not include
those atoms in your time integration fix. E.g. use "fix 1 mobile nve"
instead of "fix 1 all nve", where "mobile" is the group of atoms that
you want to move. You can move atoms with a constant velocity by
assigning them an initial velocity (via the <A HREF = "velocity.html">velocity</A>
command), setting the force on them to 0.0 (via the <A HREF = "fix_setforce.html">fix
setforce</A> command), and integrating them as usual
(e.g. via the <A HREF = "fix_nve.html">fix nve</A> command).
</P>
@ -73,6 +104,8 @@ setforce</A> command), and integrating them as usual
rigid atoms with a constant-energy time integration, so you should not
update the same atoms via other fixes (e.g. nve, nvt, npt).
</P>
<HR>
<P>Each body must have two or more atoms. An atom can belong to at most
one rigid body. Which atoms are in which bodies can be defined via
several options.
@ -214,4 +247,10 @@ exclude
<P>The option defaults are force * on on on and torque * on on on meaning
all rigid bodies are acted on by center-of-mass force and torque.
</P>
<HR>
<A NAME = "Glotzer_group"></A>
<P><B>(Zhang)</B> Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004).
</P>
</HTML>

View File

@ -42,21 +42,52 @@ fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off :pre
[Description:]
Treat one or more sets of atoms as an independent rigid body. This
Treat one or more sets of atoms as independent rigid bodies. This
means that each timestep the total force and torque on each rigid body
is computed and the coordinates and velocities of the atoms in each
body are updated so that they move as a rigid body. This can be
useful for freezing one or more portions of a large biomolecule, or
for simulating a system of colloidal particles.
is computed as the sum of the forces and torques on its constituent
particles and the coordinates, velocities, and orientations of the
atoms in each body are updated so that the body moves and rotates as a
single entity.
IMPORTANT NOTE: This fix is overkill if you just want to hold group of
atoms stationary of have them move with a constant velocity. A
simpler way to hold atoms stationary is to not include those atoms in
your time integration fix. E.g. use "fix 1 mobile nve" instead of
"fix 1 all nve", where "mobile" is the group of atoms that you want to
move. You can move atoms with a constant velocity by assigning them
an initial velocity (via the "velocity"_velocity.html command),
setting the force on them to 0.0 (via the "fix
Examples of large rigid bodies are a large colloidal particle, or
portions of a large biomolecule such as a protein.
Example of small rigid bodies are patchy nanoparticles, such as those
modeled by the "Glotzer group"_Glotzer, clumps of granular particles,
lipid molecules consiting of one or more point dipoles connected to
other spheroids or ellipsoids, and coarse-grain models of nano or
colloidal particles consisting of a small number of constituent
particles. Note that the "fix shake"_fix_shake command can also be
used to rigidify small molecules of 2, 3, or 4 atoms, e.g. water
molecules. That fix treats the constituent atoms as point masses.
The constituent particles within a rigid body can be point particles
(the default in LAMMPS) or finite-size particles, such as spheroids
and ellipsoids. See the "shape"_shape.html command and "atom_style
granular"_atom_style.html for more details on these kinds of
particles. Finite-size particles contribute differently to the moment
of inertia of a rigid body than do point particles. Finite-size
particles can also experience torque (e.g. due to "frictional granular
interactions"_pair_gran.html) and have an orientation. These
contributions are accounted for by the fix.
Forces between particles within a body do not contribute to the
external force or torque on the body. Thus for computational
efficiency, you may wish to turn off pairwise and bond interactions
between particles within each rigid body. The "neigh_modify
exclude"_neigh_modify.html and "delete_bonds"_delete_bonds.html
commands are used to do this. For finite-size particles this also
means the particles can be highly overlapped when creating the rigid
body.
IMPORTANT NOTE: This fix is overkill if you simply want to hold a
collection of atoms stationary or have them move with a constant
velocity. A simpler way to hold atoms stationary is to not include
those atoms in your time integration fix. E.g. use "fix 1 mobile nve"
instead of "fix 1 all nve", where "mobile" is the group of atoms that
you want to move. You can move atoms with a constant velocity by
assigning them an initial velocity (via the "velocity"_velocity.html
command), setting the force on them to 0.0 (via the "fix
setforce"_fix_setforce.html command), and integrating them as usual
(e.g. via the "fix nve"_fix_nve.html command).
@ -64,6 +95,8 @@ IMPORTANT NOTE: This fix updates the positions and velocities of the
rigid atoms with a constant-energy time integration, so you should not
update the same atoms via other fixes (e.g. nve, nvt, npt).
:line
Each body must have two or more atoms. An atom can belong to at most
one rigid body. Which atoms are in which bodies can be defined via
several options.
@ -205,3 +238,7 @@ exclude
The option defaults are force * on on on and torque * on on on meaning
all rigid bodies are acted on by center-of-mass force and torque.
:line
:link(Glotzer_group)
[(Zhang)] Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004).

View File

@ -394,7 +394,7 @@ bool parse_to(const char * token,ifstream &in) {
in.getline(iline,5000);
if (in.eof() || !in)
return false;
if (strcmp(token,iline)==0)
if (strncmp(token,iline,strlen(token))==0)
return true;
}
}