Error unfixing a wall/gran/hertz/history with a mesh/gran

diego.peinado's picture
Submitted by diego.peinado on Thu, 12/30/2010 - 18:04

Hello Christoph.
I was playing around with liggghts and I tried to first:
fix container all mesh/gran silo.stl 1 1.0 0 0 0 0 0 0
fix container_wall all wall/gran/hertz/history 1 0 mesh/gran 1 container

Then after some running steps I tried to:

unfix container_wall
run 1000
But I have a segmentation fault in the first iteration of the run 1000 command.
I've debugged a bit, and found that the fix is deleted, but when running the deleted fix is invoked again in Verlet::run()
if (n_pre_force) modify->pre_force(vflag);

in FixTriNeighlist::pre_force() unset_nontouching() is called, then caller->remove_from_contact_list_ext(i,iFMG,iTri),
Finally in FixWallGran::remove_from_contact_list, partner[i][k][0] is accessed, but this array was previously deleted and the segmentation fault occurs.

Perhaps the problem is that the mechanism of invoking the fixes do not work in this case.

Nevertheless, please have a nice holidays if you have, and of course I wish you that 2011 came with a lot of happiness and prosperity for you all. Best regards.

ckloss's picture

ckloss | Thu, 12/30/2010 - 22:27

Hi Diego,

yes you are right. fix wall/gran does not "tidy up" correctly in case a mesh wall is used and the wall fix is deleted inbetween two runs.
I will fix that in the next release!

Thanks, cheers and a happy new year :-)

Christoph