GENERATE_COMPONENT_DISTRIBUTION

Mesh commands

*GENERATE_COMPONENT_DISTRIBUTION
"Optional title"
pid
gid, ctype, $x_1$, $x_2$, $x_3$
N${}_{max}$

Parameter definition

Variable
Description
pid
Part ID of generated components
gid
Geometry ID of region that will be filled with components
ctype
Component type
options:
1 $\rightarrow$ sphere
2 $\rightarrow$ cylinder
3 $\rightarrow$ pipe
4 $\rightarrow$ box
$x_1$
Component dimension parameter 1
$x_2$
Component dimension parameter 2
$x_3$
Component dimension parameter 3
N${}_{max}$
Maximum number of components

Description

This is a pure pre-processing command that is used to distribute and pack grains inside a geometry. Each grain is defined as a COMPONENT_SPHERE, COMPONENT_CYLINDER or COMPONENT_PIPE.

$\begin{array}{ll} \textsf{Sphere} & \mathrm{Diameter} = x_1 \\ \textsf{Cylinder} & \mathrm{(Length, Diameter)} = (x_1, x_2) \\ \textsf{Pipe} & \mathrm{(Length, Inner \, diameter, Outer \, diameter)} = (x_1, x_2, x_3) \\ \textsf{Box} & \mathrm{(Length, Width, Height)} = (x_1, x_2, x_3) \\ \end{array}$

Only spherical grains can be densely packed. Cylinders, pipes and boxes are enclosed by spheres that will be used for the packing.

At completion the file glist_X.k is created, where X=pid.

Example

Filling of a geometry with cylindrical grains

Example where a container is filled with cylindrical grains. The filling procedure runs in two steps.

Step 1: Use GENERATE_COMPONENT_DISTRIBUTION to fill $600$ small grains into the container.

Step 2: Let the grains expand (grow) through thermal heat expansion, by prescribing a raising temperature. Keep in mind that the volumetric strain measure is logarithmic. Hence, increasing the length and diameter with $X\%$ requires a temperaure increase $\Delta T = \mathrm{log}(1 + X/100) / \alpha_T$, where $\alpha_T$ is the heat expansion cofficient defined in PROP_THERMAL.

Step 1 - generate component distribution

*UNIT_SYSTEM SI *PARAMETER %pid = 10, "Part ID" %gid = 1, "Geometry ID" %ctype = 2, "Component type (2 = cylinder)" %length = 0.012, "Length" %diameter = 0.006, "Diameter" %N_max = 600, "Number of cylinders" *GENERATE_COMPONENT_DISTRIBUTION [%pid] [%gid], [%ctype], [%length], [%diameter] [%N_max] *GEOMETRY_PIPE 1 0, 0, 0, 0.2, 0, 0, 0.05 *END

Step 2 - heat expansion

*UNIT_SYSTEM SI # # --- TIME --- # *TIME 2.0e-2 # # --- MESH --- # *INCLUDE ../step_1/glist_10.k *COMPONENT_CYLINDER 1, 1, 1, 8 -0.002, 0, 0, 0, 0, 0, 0.05 *COMPONENT_CYLINDER 2, 1, 1, 8 0.2, 0, 0, 0.202, 0, 0, 0.05 *COMPONENT_PIPE 3, 1, 1, 32, 1 -0.002, 0, 0, 0, 0, 0, 0.05, 0.052 *COMPONENT_PIPE 4, 1, 1, 32, 1 0.2, 0, 0, 0.202, 0, 0, 0.05, 0.052 *COMPONENT_PIPE 5, 1, 10, 32, 1 0, 0, 0, 0.2, 0, 0, 0.05, 0.052 *MERGE_DUPLICATED_NODES P, 1, P, 1, 0.0001 # # --- MATERIAL --- # *MAT_RIGID 1, 1000.0 *MAT_MOONEY_RIVLIN 2, 1000.0, 1.0e8, 0, 0, 2 1.0e6, 1.0e6 *PROP_THERMAL 2, 1.0, 400.0 # # --- PART --- # *PART "Container" 1, 1 "Grains" 10, 2 # # --- PRESCRIBE TEMPERATURE --- # *BC_TEMPERATURE P, 10, 100 *CURVE 100 0, 0 0.01, 0.4 0.02, 0.4 # # --- BC --- # *BC_MOTION "Container" 1 P, 1, XYZ, XYZ # # --- CONTACT --- # *CONTACT 1 ALL, 0, ALL, 0, 0.0, 1.0e11 # # --- MASS DAMPING --- # *LOAD_DAMPING P, 10, 55 *FUNCTION 55 1.0e4 *END