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

This commit is contained in:
sjplimp 2010-10-27 20:54:22 +00:00
parent f2b88626a0
commit 31a310e588
8 changed files with 168 additions and 134 deletions

View File

@ -39,7 +39,7 @@
style = <I>error</I> or <I>warn</I>
tolerance = fractional difference allowed (0 <= tol <= 1)
<I>shift</I> values = style seed
style = <I>old</I> or <I>no</I> or <I>yes</I> or <I>possible</I>
style = <I>no</I> or <I>yes</I> or <I>possible</I>
seed = random # seed (positive integer)
<I>stream</I> value = <I>yes</I> or <I>no</I> = whether or not streaming velocity is added for shear deformation
</PRE>
@ -78,9 +78,9 @@ scripts using SRD particles in both settings.
<P>This fix does 2 things:
</P>
<P>(1) It advects the SRD particles, performing collisions between SRD
and big particles every timestep, imparting force and torque to the
big particles. Collisions also change the position and velocity of
SRD particles.
and big particles or walls every timestep, imparting force and torque
to the big particles. Collisions also change the position and
velocity of SRD particles.
</P>
<P>(2) It resets the velocity distribution of SRD particles via random
rotations every N timesteps.
@ -116,24 +116,29 @@ dt_SRD. This means that roughly speaking, Dmax should not be larger
than a big particle diameter, else SRDs may pass thru big particles
without colliding. A warning is generated if this is the case.
</P>
<P>SRD/big particle collisions are modeled as a lightweight SRD point
particle hitting a heavy big particle of given diameter at a point on
its surface and bouncing off with a new velocity. The collision
changes the momentum of the SRD particle. It imparts a force and
torque to the big particle.
<P>Collisions between SRD particles and big particles or walls are
modeled as a lightweight SRD point particle hitting a heavy big
particle of given diameter or a wall at a point on its surface and
bouncing off with a new velocity. The collision changes the momentum
of the SRD particle. It imparts a force and torque to the big
particle. It imparts a force to a wall. Static or moving SRD walls
are setup via the <A HREF = "fix_wall_srd.html">fix wall/srd</A> command. For the
remainder of this doc page, a collision of an SRD particle with a wall
can be viewed as a collision with a big particle of infinite radius
and mass.
</P>
<P>The <I>collision</I> keyword sets the style of SRD/big particle collisions.
The <I>slip</I> style means that the tangential component of the SRD
particle momentum is preserved. Thus a force is imparted to the big
particle, but no torque. The normal component of the new SRD velocity
is sampled from a Gaussian distribution at temperature <I>Tsrd</I>.
<P>The <I>collision</I> keyword sets the style of collisions. The <I>slip</I>
style means that the tangential component of the SRD particle momentum
is preserved. Thus a force is imparted to a big particle, but no
torque. The normal component of the new SRD velocity is sampled from
a Gaussian distribution at temperature <I>Tsrd</I>.
</P>
<P>For the <I>noslip</I> style, both the normal and tangential components of
the new SRD velocity are sampled from a Gaussian distribution at
temperature <I>Tsrd</I>. Additionally, a new tangential direction for the
SRD velocity is chosen randomly. This collision style imparts torque
to the big particle. Thus a time integrator <A HREF = "fix.html">fix</A> that
rotates the big particles appropriately should be used.
to a big particle. Thus a time integrator <A HREF = "fix.html">fix</A> that rotates
the big particles appropriately should be used.
</P>
<HR>
@ -184,11 +189,18 @@ the same as no limit.
</P>
<HR>
<P>The <I>search</I> keyword can be used to choose a bin size for identifying
SRD/big particle collisions. The default is to use the <I>hgrid</I>
parameter as the search bin size. Choosing a smaller or large value
may be more efficient, depending on the problem. But, in a
statistical sense, it should not change the simulation results.
<P>There are 2 kinds of bins created and maintained when running an SRD
simulation. The first are "SRD bins" which are used to bin SRD
particles and reset their velocities, as discussed above. The second
are "search bins" which are used to identify SRD/big particle
collisions.
</P>
<P>The <I>search</I> keyword can be used to choose a search bin size for
identifying SRD/big particle collisions. The default is to use the
<I>hgrid</I> parameter for SRD bins as the search bin size. Choosing a
smaller or large value may be more efficient, depending on the
problem. But, in a statistical sense, it should not change the
simulation results.
</P>
<P>The <I>cubic</I> keyword can be used to generate an error or warning when
the bin size chosen by LAMMPS creates SRD bins that are non-cubic or
@ -199,13 +211,8 @@ hence LAMMPS tries to protect you from this problem.
</P>
<P>LAMMPS attempts to set the SRD bin size to exactly <I>hgrid</I>. However,
there must be an integer number of bins in each dimension of the
simulation box. When the style of the <I>shift</I> keyword is set to
<I>old</I>, there is an additional constraint that there must be an integer
number of bins within each processor's sub-domain. Thus the actual
bin size will depend on the size and shape of the overall simulation
box and, in the case of <I>shift</I> set to <I>old</I>, on the number of
processors assigned to each dimension of the box (see the
<A HREF = "processors.html">processors</A> command). The actual bin size is printed
simulation box. Thus the actual bin size will depend on the size and
shape of the overall simulation box. The actual bin size is printed
as part of the SRD output when a simulation begins.
</P>
<P>If the actual bin size in non-cubic by an amount exceeding the
@ -219,6 +226,21 @@ error or warning is generated. Similarly, if the ratio of any bin
dimension with <I>hgrid</I> exceeds (1 +/- tolerance), then an error or
warning is generated.
</P>
<P>IMPORTANT NOTE: The fix srd command can be used with simluations the
size and/or shape of the simulation box changes. This can be due to
non-periodic boundary conditions or the use of fixes such as the <A HREF = "fix_deform.html">fix
deform</A> or <A HREF = "fix_wall_srd.html">fix wall/srd</A> commands
to impose a shear on an SRD fluid or an interaction with an external
wall. If the box size changes then the size of SRD bins must be
recalculated every reneighboring. This is not necessary if only the
box shape changes. This re-binning is always done so as to fit an
integer number of bins in the current box dimension, whether it be a
fixed, shrink-wrapped, or periodic boundary, as set by the
<A HREF = "boundary.html">boundary</A> command. If the box size or shape changes,
then the size of the search bins must be recalculated avery
reneighboring. Note that changing the SRD bin size may alter the
properties of the SRD fluid, such as its viscosity.
</P>
<P>The <I>shift</I> keyword determines whether the coordinates of SRD
particles are randomly shifted when binned for purposes of rotating
their velocities. When no shifting is performed, SRD particles are
@ -228,37 +250,36 @@ valid operation if SRD particles move sufficiently far between
successive rotations. This is determined by their mean-free path
lamda. If lamda is less than 0.6 of the SRD bin size, then shifting
is required. A shift means that all of the SRD particles are shifted
by a vector whose coordinates are chosen randomly in the range <B>-1/2
bin size, 1/2 bin size</B>. Note that all particles are shifted by the
by a vector whose coordinates are chosen randomly in the range [-1/2
bin size, 1/2 bin size]. Note that all particles are shifted by the
same vector. The specified random number seed is used to generate
these vectors. This operation sufficiently randomizes which SRD
particles are in the same bin, even if lamda is small.
</P>
<P>If the <I>shift</I> style is set to <I>old</I>, then no shifting is performed.
An error will be generated if lamda < 0.6 of the SRD bin size. If the
<I>shift</I> style is set to <I>no</I>, then no shifting is performed, but bin
data will be communicated if bins overlap processor boundaries. An
error will be generated if lamda < 0.6 of the SRD bin size. If the
<I>shift</I> style is set to <I>possible</I>, then shifting is performed only if
lamda < 0.6 of the SRD bin size. A warning is generated to let you
know this is occurring. If the <I>shift</I> style is set to <I>yes</I> then
shifting is performed regardless of the magnitude of lamda.
<P>If the <I>shift</I> style is set to <I>no</I>, then no shifting is performed,
but bin data will be communicated if bins overlap processor
boundaries. An error will be generated if lamda < 0.6 of the SRD bin
size. If the <I>shift</I> style is set to <I>possible</I>, then shifting is
performed only if lamda < 0.6 of the SRD bin size. A warning is
generated to let you know this is occurring. If the <I>shift</I> style is
set to <I>yes</I> then shifting is performed regardless of the magnitude of
lamda.
</P>
<P>The shift seed is not used if the <I>shift</I> style is set to <I>old</I> or
<I>no</I>, but must still be specified.
<P>The shift seed is not used if the <I>shift</I> style is set to <I>no</I>, but
must still be specified.
</P>
<P>Note that shifting of SRD coordinates requires extra communication,
hence it should not normally be enabled unless required.
</P>
<P>The <I>stream</I> keyword is used when SRD particles are used with the <A HREF = "fix_deform.html">fix
deform</A> command to perform a simulation undergoing
shear, e.g. to measure a viscosity. If the <I>stream</I> style is set to
<I>yes</I>, then the mean velocity of each bin of SRD particles is set to
the streaming velocity of the deforming box, each time SRD velocities
are reset, every N timesteps. If the <I>stream</I> style is set to <I>no</I>,
then the mean velocity is unchanged, which may mean that it takes a
long time for the SRD fluid to come to equilibrium with a velocity
profile that matches the simulation box deformation.
<P>The <I>stream</I> keyword should be used when SRD particles are used with
the <A HREF = "fix_deform.html">fix deform</A> command to perform a simulation
undergoing shear, e.g. to measure a viscosity. If the <I>stream</I> style
is set to <I>yes</I>, then the mean velocity of each bin of SRD particles
is set to the streaming velocity of the deforming box, each time SRD
velocities are reset, every N timesteps. If the <I>stream</I> style is set
to <I>no</I>, then the mean velocity is unchanged, which may mean that it
takes a long time for the SRD fluid to come to equilibrium with a
velocity profile that matches the simulation box deformation.
</P>
<HR>
@ -328,8 +349,6 @@ minimization</A>.
package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section for
more info on packages.
</P>
<P>This fix can only be used with a fully periodic simulation box.
</P>
<P><B>Related commands:</B> none
</P>
<P><B>Default:</B>

View File

@ -34,7 +34,7 @@ keyword = {lamda} or {collision} or {overlap} or {inside} or {exact} or {radius}
style = {error} or {warn}
tolerance = fractional difference allowed (0 <= tol <= 1)
{shift} values = style seed
style = {old} or {no} or {yes} or {possible}
style = {no} or {yes} or {possible}
seed = random # seed (positive integer)
{stream} value = {yes} or {no} = whether or not streaming velocity is added for shear deformation :pre
:ule
@ -72,9 +72,9 @@ scripts using SRD particles in both settings.
This fix does 2 things:
(1) It advects the SRD particles, performing collisions between SRD
and big particles every timestep, imparting force and torque to the
big particles. Collisions also change the position and velocity of
SRD particles.
and big particles or walls every timestep, imparting force and torque
to the big particles. Collisions also change the position and
velocity of SRD particles.
(2) It resets the velocity distribution of SRD particles via random
rotations every N timesteps.
@ -110,24 +110,29 @@ dt_SRD. This means that roughly speaking, Dmax should not be larger
than a big particle diameter, else SRDs may pass thru big particles
without colliding. A warning is generated if this is the case.
SRD/big particle collisions are modeled as a lightweight SRD point
particle hitting a heavy big particle of given diameter at a point on
its surface and bouncing off with a new velocity. The collision
changes the momentum of the SRD particle. It imparts a force and
torque to the big particle.
Collisions between SRD particles and big particles or walls are
modeled as a lightweight SRD point particle hitting a heavy big
particle of given diameter or a wall at a point on its surface and
bouncing off with a new velocity. The collision changes the momentum
of the SRD particle. It imparts a force and torque to the big
particle. It imparts a force to a wall. Static or moving SRD walls
are setup via the "fix wall/srd"_fix_wall_srd.html command. For the
remainder of this doc page, a collision of an SRD particle with a wall
can be viewed as a collision with a big particle of infinite radius
and mass.
The {collision} keyword sets the style of SRD/big particle collisions.
The {slip} style means that the tangential component of the SRD
particle momentum is preserved. Thus a force is imparted to the big
particle, but no torque. The normal component of the new SRD velocity
is sampled from a Gaussian distribution at temperature {Tsrd}.
The {collision} keyword sets the style of collisions. The {slip}
style means that the tangential component of the SRD particle momentum
is preserved. Thus a force is imparted to a big particle, but no
torque. The normal component of the new SRD velocity is sampled from
a Gaussian distribution at temperature {Tsrd}.
For the {noslip} style, both the normal and tangential components of
the new SRD velocity are sampled from a Gaussian distribution at
temperature {Tsrd}. Additionally, a new tangential direction for the
SRD velocity is chosen randomly. This collision style imparts torque
to the big particle. Thus a time integrator "fix"_fix.html that
rotates the big particles appropriately should be used.
to a big particle. Thus a time integrator "fix"_fix.html that rotates
the big particles appropriately should be used.
:line
@ -178,11 +183,18 @@ the same as no limit.
:line
The {search} keyword can be used to choose a bin size for identifying
SRD/big particle collisions. The default is to use the {hgrid}
parameter as the search bin size. Choosing a smaller or large value
may be more efficient, depending on the problem. But, in a
statistical sense, it should not change the simulation results.
There are 2 kinds of bins created and maintained when running an SRD
simulation. The first are "SRD bins" which are used to bin SRD
particles and reset their velocities, as discussed above. The second
are "search bins" which are used to identify SRD/big particle
collisions.
The {search} keyword can be used to choose a search bin size for
identifying SRD/big particle collisions. The default is to use the
{hgrid} parameter for SRD bins as the search bin size. Choosing a
smaller or large value may be more efficient, depending on the
problem. But, in a statistical sense, it should not change the
simulation results.
The {cubic} keyword can be used to generate an error or warning when
the bin size chosen by LAMMPS creates SRD bins that are non-cubic or
@ -193,13 +205,8 @@ hence LAMMPS tries to protect you from this problem.
LAMMPS attempts to set the SRD bin size to exactly {hgrid}. However,
there must be an integer number of bins in each dimension of the
simulation box. When the style of the {shift} keyword is set to
{old}, there is an additional constraint that there must be an integer
number of bins within each processor's sub-domain. Thus the actual
bin size will depend on the size and shape of the overall simulation
box and, in the case of {shift} set to {old}, on the number of
processors assigned to each dimension of the box (see the
"processors"_processors.html command). The actual bin size is printed
simulation box. Thus the actual bin size will depend on the size and
shape of the overall simulation box. The actual bin size is printed
as part of the SRD output when a simulation begins.
If the actual bin size in non-cubic by an amount exceeding the
@ -213,6 +220,21 @@ error or warning is generated. Similarly, if the ratio of any bin
dimension with {hgrid} exceeds (1 +/- tolerance), then an error or
warning is generated.
IMPORTANT NOTE: The fix srd command can be used with simluations the
size and/or shape of the simulation box changes. This can be due to
non-periodic boundary conditions or the use of fixes such as the "fix
deform"_fix_deform.html or "fix wall/srd"_fix_wall_srd.html commands
to impose a shear on an SRD fluid or an interaction with an external
wall. If the box size changes then the size of SRD bins must be
recalculated every reneighboring. This is not necessary if only the
box shape changes. This re-binning is always done so as to fit an
integer number of bins in the current box dimension, whether it be a
fixed, shrink-wrapped, or periodic boundary, as set by the
"boundary"_boundary.html command. If the box size or shape changes,
then the size of the search bins must be recalculated avery
reneighboring. Note that changing the SRD bin size may alter the
properties of the SRD fluid, such as its viscosity.
The {shift} keyword determines whether the coordinates of SRD
particles are randomly shifted when binned for purposes of rotating
their velocities. When no shifting is performed, SRD particles are
@ -222,37 +244,36 @@ valid operation if SRD particles move sufficiently far between
successive rotations. This is determined by their mean-free path
lamda. If lamda is less than 0.6 of the SRD bin size, then shifting
is required. A shift means that all of the SRD particles are shifted
by a vector whose coordinates are chosen randomly in the range [-1/2
bin size, 1/2 bin size]. Note that all particles are shifted by the
by a vector whose coordinates are chosen randomly in the range \[-1/2
bin size, 1/2 bin size\]. Note that all particles are shifted by the
same vector. The specified random number seed is used to generate
these vectors. This operation sufficiently randomizes which SRD
particles are in the same bin, even if lamda is small.
If the {shift} style is set to {old}, then no shifting is performed.
An error will be generated if lamda < 0.6 of the SRD bin size. If the
{shift} style is set to {no}, then no shifting is performed, but bin
data will be communicated if bins overlap processor boundaries. An
error will be generated if lamda < 0.6 of the SRD bin size. If the
{shift} style is set to {possible}, then shifting is performed only if
lamda < 0.6 of the SRD bin size. A warning is generated to let you
know this is occurring. If the {shift} style is set to {yes} then
shifting is performed regardless of the magnitude of lamda.
If the {shift} style is set to {no}, then no shifting is performed,
but bin data will be communicated if bins overlap processor
boundaries. An error will be generated if lamda < 0.6 of the SRD bin
size. If the {shift} style is set to {possible}, then shifting is
performed only if lamda < 0.6 of the SRD bin size. A warning is
generated to let you know this is occurring. If the {shift} style is
set to {yes} then shifting is performed regardless of the magnitude of
lamda.
The shift seed is not used if the {shift} style is set to {old} or
{no}, but must still be specified.
The shift seed is not used if the {shift} style is set to {no}, but
must still be specified.
Note that shifting of SRD coordinates requires extra communication,
hence it should not normally be enabled unless required.
The {stream} keyword is used when SRD particles are used with the "fix
deform"_fix_deform.html command to perform a simulation undergoing
shear, e.g. to measure a viscosity. If the {stream} style is set to
{yes}, then the mean velocity of each bin of SRD particles is set to
the streaming velocity of the deforming box, each time SRD velocities
are reset, every N timesteps. If the {stream} style is set to {no},
then the mean velocity is unchanged, which may mean that it takes a
long time for the SRD fluid to come to equilibrium with a velocity
profile that matches the simulation box deformation.
The {stream} keyword should be used when SRD particles are used with
the "fix deform"_fix_deform.html command to perform a simulation
undergoing shear, e.g. to measure a viscosity. If the {stream} style
is set to {yes}, then the mean velocity of each bin of SRD particles
is set to the streaming velocity of the deforming box, each time SRD
velocities are reset, every N timesteps. If the {stream} style is set
to {no}, then the mean velocity is unchanged, which may mean that it
takes a long time for the SRD fluid to come to equilibrium with a
velocity profile that matches the simulation box deformation.
:line
@ -322,8 +343,6 @@ This command can only be used if LAMMPS was built with the "srd"
package. See the "Making LAMMPS"_Section_start.html#2_3 section for
more info on packages.
This fix can only be used with a fully periodic simulation box.
[Related commands:] none
[Default:]

View File

@ -210,17 +210,16 @@ fix to add the energy of interaction between atoms and each wall to
the system's potential energy as part of <A HREF = "thermo_style.html">thermodynamic
output</A>.
</P>
<P>This fix computes a global scalar energy and a global 6-length vector
of forces (one force magnitude per wall), which can be accessed by
various <A HREF = "Section_howto.html#4_15">output commands</A>. Note that the
scalar energy is the sum of interactions with all defined walls. If
you want the energy on a per-wall basis, you need to use multiple fix
wall commands. The 6 vector quantities are the force on the <I>xlo</I>
wall, the <I>xhi</I> wall, <I>ylo</I>, <I>yhi</I>, <I>zlo</I>, <I>zhi</I>. These values will
only be non-zero if the corresponding wall is defined. Note that an
outward force on a wall will be a negative value for <I>lo</I> walls and a
positive value for <I>hi</I> walls. The scalar and vector values
calculated by this fix are "extensive".
<P>This fix computes a global scalar energy and a global vector of
forces, which can be accessed by various <A HREF = "Section_howto.html#4_15">output
commands</A>. Note that the scalar energy is the
sum of interactions with all defined walls. If you want the energy on
a per-wall basis, you need to use multiple fix wall commands. The
length of the vector is equal to the number of walls defined by the
fix. Each vector value is the normal force on a specific wall. Note
that an outward force on a wall will be a negative value for <I>lo</I>
walls and a positive value for <I>hi</I> walls. The scalar and vector
values calculated by this fix are "extensive".
</P>
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
the <A HREF = "run.html">run</A> command.
@ -237,9 +236,6 @@ being minimized), you MUST enable the <A HREF = "fix_modify.html">fix_modify</A>
</P>
<P>Any dimension (xyz) that has a wall must be non-periodic.
</P>
<P>You cannot use both the <I>vel</I> and either of the <I>wiggle</I> keywords
together.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "fix_wall_reflect.html">fix wall/reflect</A>,

View File

@ -196,17 +196,16 @@ fix to add the energy of interaction between atoms and each wall to
the system's potential energy as part of "thermodynamic
output"_thermo_style.html.
This fix computes a global scalar energy and a global 6-length vector
of forces (one force magnitude per wall), which can be accessed by
various "output commands"_Section_howto.html#4_15. Note that the
scalar energy is the sum of interactions with all defined walls. If
you want the energy on a per-wall basis, you need to use multiple fix
wall commands. The 6 vector quantities are the force on the {xlo}
wall, the {xhi} wall, {ylo}, {yhi}, {zlo}, {zhi}. These values will
only be non-zero if the corresponding wall is defined. Note that an
outward force on a wall will be a negative value for {lo} walls and a
positive value for {hi} walls. The scalar and vector values
calculated by this fix are "extensive".
This fix computes a global scalar energy and a global vector of
forces, which can be accessed by various "output
commands"_Section_howto.html#4_15. Note that the scalar energy is the
sum of interactions with all defined walls. If you want the energy on
a per-wall basis, you need to use multiple fix wall commands. The
length of the vector is equal to the number of walls defined by the
fix. Each vector value is the normal force on a specific wall. Note
that an outward force on a wall will be a negative value for {lo}
walls and a positive value for {hi} walls. The scalar and vector
values calculated by this fix are "extensive".
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command.
@ -223,9 +222,6 @@ being minimized), you MUST enable the "fix_modify"_fix_modify.html
Any dimension (xyz) that has a wall must be non-periodic.
You cannot use both the {vel} and either of the {wiggle} keywords
together.
[Related commands:]
"fix wall/reflect"_fix_wall_reflect.html,

View File

@ -164,6 +164,8 @@ error.
</P>
<P><B>Default:</B> none
</P>
<HR>
<A NAME = "Bond"></A>
<P><B>(Bond)</B> Bond and Leimkuhler, SIAM J Sci Comput, 30, p 134 (2007).

View File

@ -153,5 +153,7 @@ error.
[Default:] none
:line
:link(Bond)
[(Bond)] Bond and Leimkuhler, SIAM J Sci Comput, 30, p 134 (2007).

View File

@ -38,7 +38,7 @@ things can prevent exact restarts due to round-off effects, in which
case the trajectories in the 2 runs will slowly diverge. These
include running on a different number of processors or changing
certain settings such as those set by the <A HREF = "newton.html">newton</A> or
<A HREF = "processors.html">processors</A> commands. LAMMPS will issue a WARNING in
<A HREF = "processors.html">processors</A> commands. LAMMPS will issue a warning in
these cases. Certain fixes will also not restart exactly, though they
should provide statistically similar results. These include <A HREF = "fix_shake.html">fix
shake</A> and <A HREF = "fix_langevin.html">fix langevin</A>. If a

View File

@ -35,7 +35,7 @@ things can prevent exact restarts due to round-off effects, in which
case the trajectories in the 2 runs will slowly diverge. These
include running on a different number of processors or changing
certain settings such as those set by the "newton"_newton.html or
"processors"_processors.html commands. LAMMPS will issue a WARNING in
"processors"_processors.html commands. LAMMPS will issue a warning in
these cases. Certain fixes will also not restart exactly, though they
should provide statistically similar results. These include "fix
shake"_fix_shake.html and "fix langevin"_fix_langevin.html. If a