rblock construct command

Syntax

rblock construct keyword ...

Primary keywords:

density    from-balls    from-geometry    group    rounding

Construct a set of rigid blocks. Rigid blocks are either constructed to fill a {polygon or set of polygons in 2D; volume or set of volumes in 3D} or based on the non-conformal Voronoi or Delaunay cells. Some overlap may result from this process in 3D. In addition, rounding will introduce initial overlap. As a result, once the rigid blocks are constructed, incremental normal force computations may be required.

Note

  • A model domain must be specified prior to rigid block creation.
  • While cycling, rigid blocks can only be created before cycle point 0 (i.e., when the timestep is calculated).
density f

Rigid block density with default value 1.0.

from-balls <keyword>

Construct rigid blocks from balls using Voro++. It is assumed that the balls fill an axis-aligned box; the maximal extent of the balls is used as the boundary for the Voronoi tessellation. Use the optional polydisperse keyword to specify whether or not the radical Voronoi tessellation (Laguerre tessellation) is computed. The balls are not deleted after this operation.

polydisperse b

Specify whether or not the radical Voronoi tessellation (Laguerre tessellation) is computed. A radical Voronoi tessellation uses the ball radii to weight the cell boundaries, meaning that the Voronoi cell sizes more closely follow the ball particle size distribution. By default the radical Voronoi tessellation is not computed.

periodicity bx by bz (z-component is 3D ONLY)

Specify whether or not periodic boundary conditions should be assumed in each direction during the tessellation.

from-geometry <set > keyword ... <range>

Construct rigid blocks from the geometry set set. If no set is provided then the current set is used. Unless the voronoi or delaunay keywords are given, the polygons in the set are broken up into triangular (the default) or quadrilateral elements with the specified minimum and maximum edge lengths. The optional range is applied to the polygons in the set. In 2D, the rigid blocks are constructed from these elements. In 3D, this decimated surface is used as the basis for constructing tetrahedral or hexahedral rigid blocks. If either the voronoi or delaunay keyword is given, the nodes in the geometry set are used as seeds for a Delaunay triangulation and rigid blocks are either constructed from the Voronoi or Delaunay cells.

delaunay

Construct the rigid blocks from the Delaunay cells. The geometry nodes are used as the seeds for the Delaunay triangulation.

hexahedral (3D ONLY)

Specify that the resulting rigid blocks are predominantly hexahedra. This ofter produces fewer rigid blocks to discretize the given volume but may result in some overlap. This keyword has no effect if either the voronoi or delaunay keyword is given.

internal (3D ONLY)

Specify that a background mesh exists to control the size of the mesh elements. For each node in the geometry set, the first extra variable must be a floating point value which is the target edge length. The mesh then tries to conform to this internal background mesh. Can only be used when generating tetrahedra and hexahedra.

minimum-edge f

Minimum edge length of the triangular or quadrilateral surface elements. In 2D, this corresponds to the minimum edge length of the rigid blocks. This keyword has no effect if either the voronoi or delaunay keyword is given.

maximum-edge f

Maximum edge length of the triangular or quadrilateral surface elements. In 2D, this corresponds to the maximum edge length of the rigid blocks. This keyword has no effect if either the voronoi or delaunay keyword is given.

patch-angle-tolerance f

Parameter used to delimit the patches (groups of connected triangles) in the decimated surface in degrees. An angle between two adjacent triangles greater than this value will draw a limit between two patches. A small value tends to give numerous small patches and the final discretization will be close to the initial surface but may be of poor quality (i.e., the aspect ratio of the resulting surface elements may be large). A large value tends to give fewer bigger patches. The default value is 20 degrees and a value of 45 degrees should be considered as the maximum for this parameter. This keyword has no effect if either the voronoi or delaunay keyword is given.

quadrilateral f <all>

Specify that the surface elements should be predominantly quadrilateral in shape (i.e., have 4 nodes). If the all keyword is given, the all surface elements are quadrilateral. This may produce surface elements with large aspect ratio. This keyword has no effect if either the voronoi or delaunay keyword is given.

tetrahedral (3D ONLY)

Specify that the resulting rigid blocks are tetrahedra. This is the default behavior and cannot be given with the quadrilateral keyword. This keyword has no effect if either the voronoi or delaunay keyword is given.

voronoi

Construct the rigid blocks from the Voronoi cells. The geometry nodes are used as the seeds for the underlying Delaunay triangulation. Note that the Voronoi tessellation is not conformal and only Voronoi cells where all cell nodes are within the domain and within an axis-aligned bounding box bounding composed of the seed geometry nodes are retained.

group s <slot slot > ...

The group name at slot slot is set to s for the newly created rigid blocks. If slot is not specified, then the group name at slot Default is set to s.

rounding f <relative>

Introduce rigid block rounding. Rigid blocks are represented by a core shape that is composed of {linear facets in 2D; triangular facets in 3D}. The core shape is convex, closed and manifold. When rounding is nonzero, the core shape is expanded in a directions by a {circle in 2D; sphere in 3D} of a specified radius with center passing along all points on the exterior of the core shape. The value of the rounding corresponds to the radius of this expansion {circle in 2D; sphere in 3D}. If the relative keyword is given, the rounding is computed as the product of f and the radius of a {circle in 2D; sphere in 3D} with the same size as the rigid block. When the rounding is changed so are the inertial properties.

Usage Examples

Create {triangular in 2D; tetrahedral in 3D} rigid blocks from the closed {polygons in 2D; polyhedra in 3D} in the geometry set named specimen, with a maximum edge length of 0.4.

rblock construct from-geometry 'specimen' maximum-edge 0.4

from “specimen.dat” in` Simple Rigid Block Bonded-Block Modeling (BBM)

Create {triangular in 2D; tetrahedral in 3D} rigid blocks from the closed {polygons in 2D; polyhedra in 3D} in the geometry set named blocks, with a maximum edge length set to the FISH variable maxEdge. The rigid blocks sizes are interpolated from the geometry node extra variable parameter at index 1, allowing for variable resolution meshes to be created.

rblock construct from-geometry 'blocks' maximum-edge [maxEdge] ...
    internal

from “step1Geometry.dat” in Using the Rigid Body Spring Network Paradigm

Create rigid blocks from a Voronoi tessellation of balls. The Voronoi cell sizes are weighted by the ball sizes.

rblock construct from-balls polydisperse