forked from lijiext/lammps
176 lines
7.7 KiB
Plaintext
176 lines
7.7 KiB
Plaintext
.. index:: fix wall/gran
|
|
|
|
fix wall/gran command
|
|
=====================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
fix ID group-ID wall/gran Kn Kt gamma_n gamma_t xmu dampflag wallstyle args keyword values ...
|
|
|
|
* ID, group-ID are documented in :doc:`fix <fix>` command
|
|
* wall/gran = style name of this fix command
|
|
* Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below)
|
|
* Kt = elastic constant for tangential contact (force/distance units or pressure units - see discussion below)
|
|
* gamma_n = damping coefficient for collisions in normal direction (1/time units or 1/time-distance units - see discussion below)
|
|
* gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below)
|
|
* xmu = static yield criterion (unitless value between 0.0 and 1.0e4)
|
|
* dampflag = 0 or 1 if tangential damping force is excluded or included
|
|
* wallstyle = *xplane* or *yplane* or *zplane* or *zcylinder*
|
|
* args = list of arguments for a particular style
|
|
.. parsed-literal::
|
|
|
|
*xplane* or *yplane* or *zplane* 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)
|
|
|
|
* zero or more keyword/value pairs may be appended to args
|
|
* keyword = *wiggle* or *shear*
|
|
.. parsed-literal::
|
|
|
|
*wiggle* values = dim amplitude period
|
|
dim = *x* or *y* or *z*
|
|
amplitude = size of oscillation (distance units)
|
|
period = time of oscillation (time units)
|
|
*shear* values = dim vshear
|
|
dim = *x* or *y* or *z*
|
|
vshear = magnitude of shear velocity (velocity units)
|
|
|
|
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. parsed-literal::
|
|
|
|
fix 1 all wall/gran 200000.0 NULL 50.0 NULL 0.5 0 xplane -10.0 10.0
|
|
fix 1 all wall/gran 200000.0 NULL 50.0 NULL 0.5 0 zplane 0.0 NULL
|
|
fix 2 all wall/gran 100000.0 20000.0 50.0 30.0 0.5 1 zcylinder 15.0 wiggle z 3.0 2.0
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Bound the simulation domain of a granular system with a frictional
|
|
wall. All particles in the group interact with the wall when they are
|
|
close enough to touch it.
|
|
|
|
The first set of parameters (Kn, Kt, gamma_n, gamma_t, xmu, and
|
|
dampflag) have the same meaning as those specified with the
|
|
:doc:`pair_style granular <pair_gran>` force fields. This means a NULL
|
|
can be used for either Kt or gamma_t as described on that page. If a
|
|
NULL is used for Kt, then a default value is used where Kt = 2/7 Kn.
|
|
If a NULL is used for gamma_t, then a default value is used where
|
|
gamma_t = 1/2 gamma_n.
|
|
|
|
The nature of the wall/particle interactions are determined by which
|
|
pair_style is used in your input script: *hooke*\ , *hooke/history*\ , or
|
|
*hertz/history*\ . The equation for the force between the wall and
|
|
particles touching it is the same as the corresponding equation on the
|
|
:doc:`pair_style granular <pair_gran>` doc page, in the limit of one of
|
|
the two particles going to infinite radius and mass (flat wall).
|
|
I.e. delta = radius - r = overlap of particle with wall, m_eff = mass
|
|
of particle, and sqrt(RiRj/Ri+Rj) becomes sqrt(radius of particle).
|
|
The units for Kn, Kt, gamma_n, and gamma_t are as described on that
|
|
doc page. The meaning of xmu and dampflag are also as described on
|
|
that page. Note that you can choose different values for these 6
|
|
wall/particle coefficients than for particle/particle interactions, if
|
|
you wish your wall to interact differently with the particles, e.g. if
|
|
the wall is a different material.
|
|
|
|
.. note::
|
|
|
|
As discussed on the doc page for :doc:`pair_style granular <pair_gran>`, versions of LAMMPS before 9Jan09 used a
|
|
different equation for Hertzian interactions. This means Hertizian
|
|
wall/particle interactions have also changed. They now include a
|
|
sqrt(radius) term which was not present before. Also the previous
|
|
versions used Kn and Kt from the pairwise interaction and hardwired
|
|
dampflag to 1, rather than letting them be specified directly. This
|
|
means you can set the values of the wall/particle coefficients
|
|
appropriately in the current code to reproduce the results of a
|
|
prevoius Hertzian monodisperse calculation. For example, for the
|
|
common case of a monodisperse system with particles of diameter 1, Kn,
|
|
Kt, gamma_n, and gamma_s should be set sqrt(2.0) larger than they were
|
|
previously.
|
|
|
|
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* or *shear*
|
|
keywords are appended. Both keywords cannot be used together.
|
|
|
|
For the *wiggle* keyword, the wall oscillates sinusoidally, similar to
|
|
the oscillations of particles which can be specified by the
|
|
:doc:`fix move <fix_move>` command. This is useful in packing
|
|
simulations of granular 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:
|
|
|
|
.. parsed-literal::
|
|
|
|
position = coord + A - A cos (omega * delta)
|
|
|
|
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.
|
|
|
|
For the *shear* keyword, the wall moves continuously in the specified
|
|
dimension with velocity *vshear*\ . The dimension must be tangential to
|
|
walls with a planar *wallstyle*\ , e.g. in the *y* or *z* directions for
|
|
an *xplane* wall. For *zcylinder* walls, a dimension of *z* means the
|
|
cylinder is moving in the z-direction along it's axis. A dimension of
|
|
*x* or *y* means the cylinder is spinning around the z-axis, either in
|
|
the clockwise direction for *vshear* > 0 or counter-clockwise for
|
|
*vshear* < 0. In this case, *vshear* is the tangential velocity of
|
|
the wall at whatever *radius* has been defined.
|
|
|
|
Restart, fix_modify, output, run start/stop, minimize info
|
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
This fix writes the shear friction state of atoms interacting with the
|
|
wall to :doc:`binary restart files <restart>`, so that a simulation can
|
|
continue correctly if granular potentials with shear "history" effects
|
|
are being used. See the :doc:`read_restart <read_restart>` command for
|
|
info on how to re-specify a fix in an input script that reads a
|
|
restart file, so that the operation of the fix continues in an
|
|
uninterrupted fashion.
|
|
|
|
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
|
|
fix. No global or per-atom quantities are stored by this fix for
|
|
access by various :ref:`output commands <howto_15>`. No
|
|
parameter of this fix can be used with the *start/stop* keywords of
|
|
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
|
|
|
|
This fix is part of the GRANULAR package. It is only enabled if
|
|
LAMMPS was built with that package. See the :ref:`Making LAMMPS <start_3>` section for more info.
|
|
|
|
Any dimension (xyz) that has a granular wall must be non-periodic.
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`fix move <fix_move>`, :doc:`pair_style granular <pair_gran>`
|
|
|
|
**Default:** none
|
|
|
|
|
|
.. _lws: http://lammps.sandia.gov
|
|
.. _ld: Manual.html
|
|
.. _lc: Section_commands.html#comm
|