Contact force double calcualted at overlapping region of processors

Hi, I found that the dem calculation results were different between serial and parallel runings. To reproduce this, I setup a standard tutorial case in GUI, i.e. fluid_bed_2d (2d DEM with a central jet). See attached picture, blue one is the results of 1 core and red one is 4 cores.

I tried to output all the contacts and contact forces in each processor to individual files . If the particle pairs are in the overlapping region of the processor, the contact forces exsit in both processors. I wonder if the contact forces are double calculated for these two particles. Could anyone comfirm this?
I use mfix-19.2.0.


para.mfx (8.1 KB) serial.mfx (7.9 KB)

The contact force is calculated on both processors by design. One process owns the real particle whereas the adjacent process has a ghost copy. During the particle time advance, only the real particle is updated and its new position and velocity are used to update the ghost.

Thanks for the reply. I saw the IS_NORMAL function in the update velocity postion. So why the results between serial and parallel modes are different for this simple case? I try to use a fixed time step. The results are still different.
btw, do you have an idea of how to output the contact force without duplication? I try is_normal function, this contact pair will lost.

You should not expect serial and dmp results to be purely identical. A simple sum of many terms (say in a dot product of two long vectors) will produce slightly different results due to the order of operations. This will accumulate over time and produce different results. What you need to look at is time average quantities, not instantaneous snapshots.

1 Like