Added fix wall/body/polygon and related doc pages

This commit is contained in:
Trung Nguyen 2018-05-26 14:59:40 -05:00
parent 6438cffa57
commit f2c302c2c4
5 changed files with 207 additions and 5 deletions

View File

@ -0,0 +1,100 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix wall/body/polygon command :h3
[Syntax:]
fix ID group-ID wall/body/polygon k_n c_n c_t wallstyle args keyword values ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
wall/body/polygon = style name of this fix command :l
k_n = normal repulsion strength (force/distance units or pressure units - see discussion below) :l
c_n = normal damping coefficient (force/distance units or pressure units - see discussion below) :l
c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below) :l
wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l
args = list of arguments for a particular style :l
{xplane} or {yplane} args = lo hi
lo,hi = position of lower and upper plane (distance units), either can be NULL)
{zcylinder} args = radius
radius = cylinder radius (distance units) :pre
zero or more keyword/value pairs may be appended to args :l
keyword = {wiggle} :l
{wiggle} values = dim amplitude period
dim = {x} or {y} or {z}
amplitude = size of oscillation (distance units)
period = time of oscillation (time units) :pre
:ule
[Examples:]
fix 1 all wall/body/polygon 1000.0 20.0 5.0 xplane -10.0 10.0
[Description:]
Bound the simulation domain of systems of body particles of style
body/rounded/polygon with wall(s). All particles in the group interact
with the wall when they are close enough to touch it.
The nature of the interaction between the wall and the polygons is
the same as that between the polygons themselves, which is similar to the Hookean potential.
This fix is designed for use with the "body/rounded/polygon" body style,
which is specified as an argument to the "atom-style body" command.
The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the
"pair_style body/rounded/polygon"_pair_body_rounded_polygon.html commands.
The {wallstyle} can be planar or cylindrical. The 3 planar options
specify a pair of walls in a dimension. Wall positions are given by
{lo} and {hi}. Either of the values can be specified as NULL if a
single wall is desired. For a {zcylinder} wallstyle, the cylinder's
axis is at x = y = 0.0, and the radius of the cylinder is specified.
Optionally, the wall can be moving, if the {wiggle} keyword is appended.
For the {wiggle} keyword, the wall oscillates sinusoidally, similar to
the oscillations of particles which can be specified by the
"fix move"_fix_move.html command. This is useful in packing
simulations of particles. The arguments to the {wiggle}
keyword specify a dimension for the motion, as well as it's
{amplitude} and {period}. Note that if the dimension is in the plane
of the wall, this is effectively a shearing motion. If the dimension
is perpendicular to the wall, it is more of a shaking motion. A
{zcylinder} wall can only be wiggled in the z dimension.
Each timestep, the position of a wiggled wall in the appropriate {dim}
is set according to this equation:
position = coord + A - A cos (omega * delta) :pre
where {coord} is the specified initial position of the wall, {A} is
the {amplitude}, {omega} is 2 PI / {period}, and {delta} is the time
elapsed since the fix was specified. The velocity of the wall is set
to the derivative of this expression.
[Restart, fix_modify, output, run start/stop, minimize info:]
None of the "fix_modify"_fix_modify.html options are relevant to this
fix. No global or per-atom quantities are stored by this fix for
access by various "output commands"_Section_howto.html#howto_15. No
parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command. This fix is not invoked during "energy
minimization"_minimize.html.
[Restrictions:]
This fix is part of the BODY package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
Any dimension (xyz) that has a wall must be non-periodic.
[Related commands:]
"pair_style body/rounded/polygon"_pair_body_rounded_polygon.html
[Default:] none

View File

@ -0,0 +1,100 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix wall/body/polyhedron command :h3
[Syntax:]
fix ID group-ID wall/body/polyhedron k_n c_n c_t wallstyle args keyword values ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
wall/body/polyhedron = style name of this fix command :l
k_n = normal repulsion strength (force/distance units or pressure units - see discussion below) :l
c_n = normal damping coefficient (force/distance units or pressure units - see discussion below) :l
c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below) :l
wallstyle = {xplane} or {yplane} or {zplane} or {zcylinder} :l
args = list of arguments for a particular style :l
{xplane} or {yplane} args = lo hi
lo,hi = position of lower and upper plane (distance units), either can be NULL)
{zcylinder} args = radius
radius = cylinder radius (distance units) :pre
zero or more keyword/value pairs may be appended to args :l
keyword = {wiggle} :l
{wiggle} values = dim amplitude period
dim = {x} or {y} or {z}
amplitude = size of oscillation (distance units)
period = time of oscillation (time units) :pre
:ule
[Examples:]
fix 1 all wall/body/polyhedron 1000.0 20.0 5.0 xplane -10.0 10.0
[Description:]
Bound the simulation domain of systems of body particles of style
body/rounded/polyhedron with wall(s). All particles in the group interact
with the wall when they are close enough to touch it.
The nature of the interaction between the wall and the polygons is
the same as that between the polygons themselves, which is similar to the Hookean potential.
This fix is designed for use with the "body/rounded/polyhedron" body style,
which is specified as an argument to the "atom-style body" command.
The parameters {k_n}, {c_n}, {c_t} have the same meaning and units as those specified with the
"pair_style body/rounded/polyhedron"_pair_body_rounded_polygon.html commands.
The {wallstyle} can be planar or cylindrical. The 3 planar options
specify a pair of walls in a dimension. Wall positions are given by
{lo} and {hi}. Either of the values can be specified as NULL if a
single wall is desired. For a {zcylinder} wallstyle, the cylinder's
axis is at x = y = 0.0, and the radius of the cylinder is specified.
Optionally, the wall can be moving, if the {wiggle} keyword is appended.
For the {wiggle} keyword, the wall oscillates sinusoidally, similar to
the oscillations of particles which can be specified by the
"fix move"_fix_move.html command. This is useful in packing
simulations of particles. The arguments to the {wiggle}
keyword specify a dimension for the motion, as well as it's
{amplitude} and {period}. Note that if the dimension is in the plane
of the wall, this is effectively a shearing motion. If the dimension
is perpendicular to the wall, it is more of a shaking motion. A
{zcylinder} wall can only be wiggled in the z dimension.
Each timestep, the position of a wiggled wall in the appropriate {dim}
is set according to this equation:
position = coord + A - A cos (omega * delta) :pre
where {coord} is the specified initial position of the wall, {A} is
the {amplitude}, {omega} is 2 PI / {period}, and {delta} is the time
elapsed since the fix was specified. The velocity of the wall is set
to the derivative of this expression.
[Restart, fix_modify, output, run start/stop, minimize info:]
None of the "fix_modify"_fix_modify.html options are relevant to this
fix. No global or per-atom quantities are stored by this fix for
access by various "output commands"_Section_howto.html#howto_15. No
parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command. This fix is not invoked during "energy
minimization"_minimize.html.
[Restrictions:]
This fix is part of the BODY package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
Any dimension (xyz) that has a wall must be non-periodic.
[Related commands:]
"pair_style body/rounded/polyhedron"_pair_body_rounded_polygon.html
[Default:] none

View File

@ -53,8 +53,8 @@ the examples above, or in the data file or restart files read by the
"read_data"_read_data.html or "read_restart"_read_restart.html
commands:
k_n (energy/distance^2)
k_na (energy/distance^2) :ul
k_n (energy/distance^2 units)
k_na (energy/distance^2 units) :ul
[Related commands:]

View File

@ -53,8 +53,8 @@ the examples above, or in the data file or restart files read by the
"read_data"_read_data.html or "read_restart"_read_restart.html
commands:
k_n (energy/distance^2)
k_na (energy/distance^2) :ul
k_n (energy/distance^2 units)
k_na (energy/distance^2 units) :ul
[Related commands:]

View File

@ -45,7 +45,9 @@ class FixWallBodyPolygon : public Fix {
protected:
int wallstyle,pairstyle,wiggle,axis;
double kn,c_n,c_t;
double kn; // normal repulsion strength
double c_n; // normal damping coefficient
double c_t; // tangential damping coefficient
double lo,hi,cylradius;
double amplitude,period,omega;
double dt;