Research Article

Numerical Simulation Study on Flow and Fracture of Granular Materials

Algorithm 6

Fragmentation sieving algorithm.
(1)Transfer information of all tetrahedrons and beams in granular system after loading.
(2)Generate fragmentation directories. Each fragment in the catalogue consists of the number of tetrahedrons it contains, and the initial is empty.
(3)Cycle all tetrahedrons (for (i = 0; i < num; i++) (num is the number of tetrahedrons)).
  (a) Determine whether the generated fragments contain tetrahedron i.
   ① If included.
    Continue with the next tetrahedron cycle.
   ② Otherwise, judge whether there is a beam between tetrahedron i and other tetrahedrons.
    (i) If existed.
      (1) Record the tetrahedron number and continue to determine whether the tetrahedron is associated with other tetrahedrons (excluding tetrahedron i), until there is no new tetrahedron.
      (2) Generate fragments; the fragments consist of all tetrahedron numbers found in this search.
    (ii) Otherwise.
     Record the number of the tetrahedron and mark the tetrahedron as a fragment.
  (b) Update the fragmentation directory.
(4)End the cycle.
(5)Cycle all sieves with all aperture (for (j = 0; j < screenNum; j++) (screenNum is the number of sieve)).
   (a) Cycle all debris (for (k = 0; k < fragNum; k++) (fragNum is the number of fragments)). According to the position and size information of all tetrahedrons contained in fragment k, judge whether fragment k can pass through sieve and record fragmentation information if passed.
   (b) Calculate the sum of the volumes of all fragments passing through sieve j.
   (c) Calculate the percentage of the mass of fragments smaller than the sieve j aperture to the total mass.
   (d) End the cycle.
(6)End the cycle.