Some questions about particle-wall collisions

Hello everyone.
I went through the calc_collision_wall_mod.f file and I want to keep track of the amount of overlap between the particles and the wall, but I don’t really understand how it handles particle-wall collisions.I would like to ask the following questions:

  1. I don’t understand why there is a loop (i.e. DO CELL_COUNT = 1, facets_at_dg(cell_id)%count) nested within the particle loop (i.e. DO LL = 1, MAX_PIP) .
  2. what does “facets_at_dg” stand for? I can’t understand its definition:
    ! List of facets intersecting each DES grid cell
    TYPE FACETS_TO_DG
    INTEGER :: COUNT
    INTEGER, ALLOCATABLE :: ID( : )
    INTEGER, ALLOCATABLE :: DIR( : )
    DOUBLE PRECISION, ALLOCATABLE :: MIN( : )
    DOUBLE PRECISION, ALLOCATABLE :: MAX( : )
    END TYPE FACETS_TO_DG
    TYPE (FACETS_TO_DG), ALLOCATABLE :: FACETS_AT_DG( : )
  3. If the particle is in contact with more than one face, what dimension array should I define to record it?