Syntax:
fix ID group-ID wall/gran/(*) friction_damp_flag cohesionflag wallstyle args keyword values ... where (*) can be either "hooke", "hooke/history", "hooke/history/stiffness", "hertz/history", or "hertz/history/stiffness"
xplane or yplane or zplane args = lo hi atom_type_wall lo,hi = position of lower and upper plane (distance units), either can be NULL) atom_type_wall = determines the wall material zcylinder args = radius radius = cylinder radius (distance units) atom_type_wall = determines the wall material zcone args = lo hi radiuslo radiushi atom_type_wall lo = z-coordinate where the cone starts (distance units) hi = z-coordinate where the cone ends (distance units) radiuslo = cone radius at lo (distance units) radiushi = cone radius at hi (distance units) atom_type_wall = determines the wall material mesh/gran args = nfix fix_id1, fix_id2,... nfix = number of fixes of type mesh/gran that are used for the wall. fix_id1, fix_id2,... = id(s) of the fix mesh/gran that is (are) used. These must be defined before using the fix wall/gran command
keyword = wiggle or shear or temperature or store_force:l 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) temperature value = T0 T0 = Temperature of the wall (temperature units) store_force value = 'yes' or 'no' yes, no = determines if the wall force exerted on the particles is stored in a fix property/atom with id force_(ID), where (ID) is the id of the fix wall/gran command.
Examples:
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.15 1 fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.05 1
LIGGGHTS vs. LAMMPS Info:
This command has been improved in accordance with the overhauled pair gran/* styles. Furthermore, it offers the new wallstyle mesh/gran, which enables fix wall/gran to handle complex wall geometries imported from CAD.
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 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).
You must choose the wallstyle matching the pair style used, otherwise an error is created (e.g.: "pair gran/hertz/history is incompatible with fix wall/gran/hooke"). As with pair_style granular, you have to define the mechanical properties for each material you are used in the simulation with fix property commands. See pair_style granular for more details.
For wallstyle mesh/gran, the interaction for the tri-sphere interaction is mostly based on the following paper: "A method for representing boundaries in discrete element modelling" , M. Kremmer, J.F. Favier, Int. Journal for Numerical Methods in Engineering (2001), 51(12), 1407. Internally, triangle-particle neighbor lists are built to efficiently track particle-triangle contacts. Particle-tri neighbor list build is triggered if any particle moves more than half the skin distance or (in case of moving mesh) if the mesh itself moves more than half the skin distance since the last build. A warning is generated if a dangerous particle-tri neigh list build is detected (e.g. if particles are inserted too close to a wall, see section 'Restrictions'). For style mesh/gran, atom_type_wall is inherited from the atom style provided in the fix mesh/gran command. fix_id1, fix_id2 etc. must be IDs of valid fixes of type fix mesh/gran, defining the granular mesh to be used for the wall.
Other wallstyles can be xplane or yplane or zplane or cylindrical or conical. The 3 planar options specify a pair of walls in a dimension. Wall positions are given by values for 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. Likewise, a zcone wallstyle can be used, with the axis at x = y = 0.0, and the hi and lo radii being specified.
Optionally, planar or cylindrical or conical walls 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 frozen particles specified by the fix wiggle 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 or zcone 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.
NOTE: The keywords wiggle or shear can NOT be used for style mesh/gran. For a moving granular wall with style style mesh/gran, use the more flexible command fix move/mesh/gran.
The keyword temperature is used to assign a constant temperature to the wall. This setting gets effective in conjunction with heat conduction via fix heat/gran. For wallstyle mesh/gran, the value for the temperature given in this command is ignored and the temperature value is specified per mesh via fix mesh/gran.
By specifying store_force = 'yes', you can instruct the command to store the wall force exerted on the particles in a fix property/atom with id force_(ID), where (ID) is the id of the fix wall/gran command.
Restart, fix_modify, output, run start/stop, minimize info:
If applicable, contact history is written to binary restart files so simulations can continue properly. None of the fix_modify options are relevant to this fix. No global scalar or vector or are stored by this fix. If store_force = 'yes' is specified, the per-atom wall force can be accessed by the various output commands via f_force(ID)1, f_force(ID)2, f_force(ID)3. (ID) is the id of the fix wall/gran command. 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:
There can be only one fix wall/gran command with style mesh/gran. Note that this is not really a restriction because you can include multiple fixes of type fix mesh/gran in the fix wall/gran command.
When using style style mesh/gran, you have to use the style bin for the neighbor command.
Style mesh/gran can not be used in conjunction with triclinic simulation boxes.
When using style mesh/gran' in combination with a particle insertion command, you always have to keep a minimum distance between the wall and the insertion region that is equal to maximum particle radius + half the skin defined in the neighbor command. Otherwise, newly inserted particles interpenetrate the walls before a triangle neighbor list is built the first time.
The keywords wiggle or shear can NOT be used for style mesh/gran. For moving granular wall with style style mesh/gran, use fix move/mesh/gran.
Any dimension (xyz) that has a planar granular wall must be non-periodic.
Related commands:
fix_wiggle, pair_style granular
Default: none