CFDEM restarting case. ERROR: Did not assign all atoms correctly

Submitted by atul2018 on Fri, 12/10/2021 - 12:22

Hello All

I am writing in hope if some one can help me in solving the problem. I want to restart my cfdem simulation from last time step. Due to time limit on cluster, the simulation did not finish till specified time (e.g.3 sec). I am following the same procedure as done in tutorial case ErgunTestMPI_restart. Here is in brief what I do:

-create a restart liggghts script (in.ligghts_restart1), which reads the restart file from previously written during previous cfdem run.
-indicated the openfoam to read the new liggghts script (in.liggghts_restart1) in couplingProperties file. The liggghtsCommands file is also modified in order to write another restart file from this simulation. In controlDict, startFrom is specified as latestTime.
-calling cfdemsolverPiso in parallel

The above mentioned procedure works well with tutorails case but I am not able to restart my actual case from the last time step, following the same procedure as tutorial case ErgunTestMPI_restart. It is very strange that the same procedure works on tutorial case but not on my actual case. When I restart my case (on linux cluster) from last time step, I get the error saying: ERROR: Did not assign all atoms correctly (../read_restart.cpp:351)

I tried my best to find the cause of the problem but I could not get any clue. What I understood from the error is that atoms read from the restart file were not assigned correctly to processors. I am using the same number of processors in my in.liggghts_run and in.ligggghts_restart. Infact, both run and restart liggghts scripts are almost the same, only change in restart script (in.liggghts_restart) is that I am not inserting any particles as the restart file should remember how much particles have been inserted till last run and how much needed to be inserted in next time steps.

PS: I am using fix boundaries in all directions. from previous run (in.liggghts_run) , the simulation runs till 0.9sec. I wanted to inject particles from the inlet for 1 sec, i.e. particle injection was not completed and remaining mass (the left mass for 0.1 sec) should be injected as simulation progresses further. Does the fix boundary or unfinished injection cause this error?

Best Regards
Atul Jaiswal

atul2018 | Fri, 12/10/2021 - 18:44

Hello again

I thought that the error is caused due to unfinished particle insertion from last time step. I reduce the domain size (so less particle, faster calculation) and with smaller domain size, i can simulate the case for 1.9 sec in time limited by Cluster. In this case, no particle was left to be inserted (insertion occurs till 1 sec and simulation already reach 1.9 sec). However, when I restart the case with with last time step (1.9sec) following the exact steps mentioned above, this time the simulation doesn't proceed at all. It gets stucked when it tries to read the restart file from prevoius simulation.

Does anyone has an idea, why I am facing this strange behaviour?

Best Regards
Atul Jaiswal