Page 123 - The Combined Finite-Discrete Element Method
P. 123

106    CONTACT DETECTION

            Thus, the list for row i y = 6 (i.e. the list y 6 )in Figure 3.41was assembledbyplacing
            discrete element 3 onto the list. It is then ‘pushed’ by discrete element 6, which in turn
            is ‘pushed’ by discrete element 8, which in turn is ‘pushed’ by discrete element 9, which
            was the last discrete element added to the list.
              Digital representation of all y-lists (empty and non-empty) is achieved through two
            integer arrays. The arrays are common for all the y-lists, and contain enough information
            to read all the discrete elements from each of the lists.
              The first array B contains the number of the last discrete element mapped to each row,
            i.e. the head of the singly connected list for each row of cells. The array B is a 1D array
            of size n y ,where n y is the total number of cells in the y direction, i.e. the total number
            of rows of cells.
              The second array Y is 1D array of size N,where N is the total number of discrete
            elements. For each discrete element, the array Y contains the next discrete element in the
            singly connected list.
              For both arrays a negative number is used as termination of a singly connected list.
            So if there are no elements in a particular row, a negative number is assigned to the
            corresponding element of the array B.
              Both arrays are shown in Figure 3.42, where the list y 6 is highlighted. It is evident that
            the array B contains a ‘pointer’ to a singly connected list of discrete elements for each
            i-row (where i y = 0, 1, 2, 3,..., n y − 1) of cells. In a similar way, the array Y points to
            the next element in the list, terminating with a negative number.
              For the example shown in Figure 3.40, row 1 of cells has no discrete elements mapped
            to it, so a singly connected list of discrete elements mapped to this row (the list y 0 )is
            empty, which is achieved by setting B[1] =−1.
              In a similar way, the last discrete element mapped onto row 6 of cells (the list y 6 )is
            discrete element number 9, thus B[6] = 9. The next discrete element on this list is 8, thus
            Y[9] = 8; the next discrete element is 6, thus Y[8] = 6; the next discrete element is 3,
            thus Y[6] = 3; the last discrete element is 3, thus Y[3] =−1, (Figure 3.40).
              All y iy lists are considered as ‘new lists’ at this point. Later on, some of these lists will
            be marked as ‘old lists’.





                               Integer array B



                             −1  −1  −1   −1  5    9  10   2   −1  −1



                             −1  −1  −1   1   −1   3  4    6   8    7




                                Integer array Y

                 Figure 3.42 All singly connected lists for rows of cells represented by two arrays.
   118   119   120   121   122   123   124   125   126   127   128