clump distribute command

Syntax

clump distribute keyword ... <range>

Primary keywords:

bin    box    diameter    fish-size    number-bins    porosity    resolution

Distribute clumps with overlaps. This process ceases when a target porosity is achieved. By default, the clump positions and sizes are drawn from uniform distributions throughout the model domain. As a result, the set of clumps generated is affected by the state of the random-number generator (see model random). The clump sizes can also be drawn from a Gaussian distribution via the gauss keyword. A number of clump distributions, with size ranges and volume fractions each using a unique clump template, can be specified. The optional range is applied to each clump upon generation and, if the clump does not fall within the range, it is not added to the model and does not affect the stopping criteria. This command contrasts with the clump generate command where clumps, with sizes chosen from a single distribution, are generated without overlap until the target number of clumps, or the number of attempts to place clumps, is achieved.

Note

  • A model domain must be specified prior to clump generation.
  • Significant clump overlaps will likely result from this operation.
  • While cycling, clumps can only be created before cycle point 0 (i.e., when the timestep is calculated).
bin ibin keyword ...

Specify the distributional properties of bin ibin. Any number of distributions with radii ranges, volume fractions, and distributional types can be specified. The volume fractions of all distributions must sum to 1.

azimuth fazlow fazhi

Range of azimuths to rotate the clump template randomly about. An azimuthal rotation is a right-hand rotation about the {out of plane direction in 2D; \(z\)-axis in 3D} in degrees.

density fdens

The clump density that is 1 by default.

elevation fellow felhi (3D ONLY)

Range of elevations to rotate the clump template randomly about. An elevating rotation is a right hand rotation about the \(y\)-axis in degrees.

fish-distribution s a1...an

The clump sizes are drawn from the distribution represented by the FISH function s. Function arguments can be specified as though no function arguments are required. The FISH function must return a floating point value that is the clump size. A FISH distribution cannot be specified with the gauss or size keywords.

gauss <fcutoff >

Specify that the clump sizes are chosen from a Gaussian distribution with mean value (fradlow + fradhi)/2 and standard deviation (fradhi - fradlow)/2. The optional fcutoff (default 0.1), multiplied by fradlow, constitutes the minimum size allowed.

group s <slot slot > <pebble> ...

Specify that generated clumps or pebbles are given group name s at slot slot If the slot keyword is not specified, then the group name is assigned to the slot Default. The optional pebble keyword specifies that the group is assigned to the pebbles and not to the clump.

size fsizelow <fsizehi >

Specify the size range to be used during generation. If fsizehi is not specified, then fsizehi = fsizelow. By default, fsizehi = fsizelow = 1.0. Cannot be given with the fish-distribution keyword.

template stname

Name of the clump template to be used.

tilt ftiltlow ftilthi (3D ONLY)

Range of tilts to rotate the clump template randomly about. A tilting rotation is a right-hand rotation about the \(x\)-axis in degrees.

volume-fraction fvfrac

The volume fraction of clumps in this distribution. The sum of volume fractions of all distributions must be 1.

box fxmin fxmax fymin fymax fzmin fzmax (`z`-components are 3D ONLY)

Clumps will fully fall within this box, such that they will not overlap the box faces or edges. By default, the box is the model domain.

diameter

Specify that the linear size used to scale the clumps is the volume equivalent diameter of a {disk in 2D; sphere in 3D}.

fish-size sfname

The size used to scale the clumps while generating can be specified by the FISH function sfname. The return value of the FISH function should be a linear measure of the clump size and the function should take one argument that is a clump pointer.

number-bins inum

Number of distributions used to generate the assembly.

porosity fporos

The final porosity is set to fporos. By default, fporos = {0.16 in 2D; 0.359 in 3D}, corresponding to the porosity for a tight, monodisperse packing of {disks in 2D; spheres in 3D}.

resolution fres

Optional resolution that can be used as a multiplicative factor of the size of each clump generated. By default, fres = 1.0.

Usage Examples

Create clumps with overlap within the specified box. Clump are created until the porosity in the box (not accounting for overlap) is 0.4. The size is set by the diameter of an equivalent {circle in 2D; sphere in 3D}.

clump distribute porosity 0.4 diameter template 'triangle' size 2 4 box -9 9

Create clumps with overlap within the specified box. Clump are created until the porosity in the box (not accounting for overlap) is 0.5. The size is set by the diameter of an equivalent {circle in 2D; sphere in 3D}. The orientation ranges are also specified.

clump distribute resolution 0.5 number-bins 1 ...
                 diameter box -2.5 2.5 -2.5 2.5 -5 5 bin 1 ...
                 template 'pill' az 0 90  el 0 90 tilt 0 90 ...
                 size 1.0 1.5 porosity 0.5

Create clumps with overlap in the specified box. A number of bins are specified with different volume fractions per bin. In each bin a different size and clump template are specified. Clump are created until the porosity in the box (not accounting for overlap) is 0.3.

clump distribute porosity 0.3 diameter number-bins 6 box -40 40 -40 40 -40 40 ...
  bin 1 size 9.99 19.98 volume-fraction 0.41 group 'comp1' template 'comp1' ...
  bin 2 size 9.9  19.8  volume-fraction 0.21 group 'comp2' template 'comp2' ...
  bin 3 size 9.5  19    volume-fraction 0.14 group 'comp3' template 'comp3' ...
  bin 4 size 9.76 19.52 volume-fraction 0.11 group 'comp4' template 'comp4' ...
  bin 5 size 9.6  19.2  volume-fraction 0.07 group 'comp5' template 'comp5' ...
  bin 6 size 9.8  19.6  volume-fraction 0.06 group 'comp6' template 'comp6' ...