Hello everybody, lately I've been reading LIGGGHTS-PUBLIC version 3.5.0 code to have a better understanding about atoms migration scheme. I found that two methods are available, Comm::exchange() and Irregular::migrate_atoms().
I decided to give a chance to Irreglar::migrate_atoms() and made a couple of changes in verlet.cpp file in order to use this method. The changes are very few, so I guess they are alright; here they are:
1) around line 73 added an include sentence:
#include "irregular.h" (this way Verlet class are aware of Irregular class and methods)
2) around line 298 I have this:
//domain->pbc();
double **x = atom->x;
tagint *image = atom->image;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++) domain->remap(x[i],image[i]);
It was first using Domain::pbc() for periodic boundary conditions, and now it is using Domain::remap().
3) around line 312 I have this:
//comm->exchange();
Irregular *irregular = new Irregular(lmp);
irregular->migrate_atoms();
delete irregular;
The rest of the code is untouched and compilation goes fine, but when I run the binflow simulation it goes into an infinite loop. I set up a very small simulation with 10000 particles and 15000 timesteps. The bottom of hopper is not removed, so the simulation is to just put a few particles in the hopper.
All the particles are inserted, but the simulation doesn't stop when it reaches 150000 timesteps, it goes on for, at least, 4~5 hours (at this time a stopped the simulation).
If I revert the changes everything goes fine. The simulation is dumping some vtk files and I use them to "see" what should be going wrong, but I had no luck. Both set of files let me renderize the some animation.
Well, any suggestion? The code for using Irregular::migrate_atoms() was found on other fixes code (for instances fix_deform.cpp).
Thank you very much,
Miguel.