fix wall/gran command¶
Syntax¶
fix ID group-ID wall/gran Kn Kt gamma_n gamma_t xmu dampflag wallstyle args keyword values ...
- ID, group-ID are documented in 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
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
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¶
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 pair_style granular 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 pair_style granular 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 pair_style granular, 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 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:
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 binary restart files, so that a simulation can continue correctly if granular potentials with shear “history” effects are being used. See the 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 fix_modify options are relevant to this fix. No global or per-atom quantities are stored by this fix for access by various output commands. No parameter of this fix can be used with the start/stop keywords of the run command. This fix is not invoked during energy minimization.
Restrictions¶
This fix is part of the GRANULAR package. It is only enabled if LAMMPS was built with that package. See the Making LAMMPS section for more info.
Any dimension (xyz) that has a granular wall must be non-periodic.