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

GENERALISATION OF MUNJIZA-NBS CONTACT DETECTION ALGORITHM          127

               }
               consider all z-lists to be “new” lists
               2. Loop over discrete elements (k=0;k≤N;)
               {   calculate integerised z coordinates of the centre
                   if discrete element belongs to a new z list
                  {    mark the list as an old list and call it the central z list
                      {   3. loop over all discrete elements on the central z list
                         {   integerise y coordinate of the discrete element and place
                               it onto the corresponding list in y direction
                         }
                         4. loop over all discrete elements from list neighbouring
                            to central z-list according to the contact mask
                         {    integerise y coordinate of the discrete element and place
                              it onto the corresponding list in y direction
                         }
                         consider all y-lists to be “new” y-lists
                         5. loop over all discrete elements from the central z-list
                         {    if the discrete element belongs to a new list (y,z)
                             {   mark the list (y,z) as old and call it central y-list
                                 6. loop over all discrete elements from central (y,z)-list
                                 {    integerise x coordinate of the discrete element
                                      and place it onto the corresponding x-list
                                 }
                                 7. loop over all discrete elements from neighbouring
                                    (y,z)-lists according to the contact mask
                                 {    integerise x coordinate of the discrete element
                                      and place it onto the corresponding x-list
                                 }
                                  consider all x-lists to be “new” x-lists
                                  8. loop over all discrete elements from central (y,z)-list
                                 {    if the discrete element belongs to a “new” x-list
                                     { mark the list (x,y,z) as old and call it central x-list
                                        check for contact using contact mask
                                     }
                                 }
                                 9. loop over all discrete elements from central (y,z)-list
                                 { remove corresponding x-list
                                 }
                                 10. loop over all discrete elements from
                                     neighbouring (y,z)-lists according to contact mask
                                 { remove corresponding x-list
                                 }
                             }
                         }
                         11. loop over all discrete elements from the central z-list
                         {    remove corresponding y-lists
                         }
   139   140   141   142   143   144   145   146   147   148   149