How to get the position coordinates of all particles in DMP calculation?

Hello, developers! I have some problems using DEM-DMP calculations:

  1. How can I get the coordinates and radii of all particles? And is MPI broadcast required to call DES_RADIUS and DES_POS_NEW of all particles in all processes? In fact the DES_RADIUS sizes printed by different processes do not match the actual number of particles, although the DES_RADIUS and DES_POS_NEW sizes are the same in different processes.
  2. I found that the max_pip and PIP in different processes in the DMP calculation are different, and only the PARTICLES of the root process is equal to the actual total number of particles in the fluidized bed, and the PARTICLES of the other processes are all 1? Is this normal?
  3. I also want to know the relationship between max_pip in each process and the actual total number of particles, and how the particle IDs in each process match the IDs in the total particles? That is, the particle ID in the process is 1-max_pip, and the total particle ID is 1-total PIP. How to determine the ID of the particle in the process among the total particles?
    The information printed out by DMP is as follows:
write (*,*) 'max_pip', MAX_PIP, PIP, PARTICLES, 'my processor id', my_id, '---------------------------------------'
write (*,*) 'size(PINC)', size(PINC), 'DIMENSION_3', DIMENSION_3,'---------------------------------------'
write (*,*) 'SIZE(DES_RADIUS)', SIZE(DES_RADIUS), ‘SIZE(DES_POS_NEW):’, SIZE(DES_POS_NEW), 'SHAPE(DES_POS_NEW):', SHAPE(DES_POS_NEW)
!The output results of different processes are as follows
max_pip        1350        1350           1 my_id           3 ---------------------------------------
 size(PINC)        3906 DIMENSION_3        3906 ---------------------------------------
 SIZE(DES_RADIUS)     2048     SIZE(DES_POS_NEW): 6144     SHAPE(DES_POS_NEW): 2048    3
 max_pip        1755        1755           1 my_id           2 ---------------------------------------
 size(PINC)        3906 DIMENSION_3        3906 ---------------------------------------
 SIZE(DES_RADIUS)     2048     SIZE(DES_POS_NEW): 6144     SHAPE(DES_POS_NEW): 2048    3
 max_pip        1755        1755           1 my_id           1 ---------------------------------------
 size(PINC)        3906 DIMENSION_3        3906 ---------------------------------------
 SIZE(DES_RADIUS)     2048     SIZE(DES_POS_NEW): 6144     SHAPE(DES_POS_NEW): 2048    3
 max_pip        1418        1418        4860 my_id           0 ---------------------------------------
 size(PINC)        3906 DIMENSION_3        3906 ---------------------------------------
 SIZE(DES_RADIUS)     2048     SIZE(DES_POS_NEW): 6144     SHAPE(DES_POS_NEW): 2048    3

Thank you!

The easiest way to do this is probably to extract the coordinates from VTK files. This way the MFiX solver will do all the work of broadcasting the data between partitions. Scripts for extracting coordinates from VTK files have been posted here on the forum several times.

Thank you cgw! Actually I need all particle coordinates for UDF calculation in each time step in the MFix simulation instead of post -processing. Therefore, what I want to know is how to obtain the following data at each time step in the UDF written by Fortran: 1. Granular coordinates in all DMP partitions, 2. ID data of particles in each grid. Can you provide some ways to get the above data? Or send directly PIC, PINC, DES_POS_NEW, DES_RADIUS data of child processes to the root process and then statistics?

Thanks,
Lyp