← Back to team overview

yade-dev team mailing list archive

[Bug 897237] Re: bug in neverErase?!

 

@Christian

The answer to #18 is at Law2_ScGeom_CapillaryPhys_Capillarity.cpp:163,
there is no need to erase interactions in the contact law because the
capillary law takes care of that:

if (!Vinterpol){
   ...
   scene->interactions->requestErase(id1,id2);
}

I.e. if the volume of liquid is zero, Laplace problem has no solution -> the bridge is broken -> we delete the interaction.
All good. This has been well tested in the last years.

The problem is we never tried to delete bodies, and at line 90 you can find the recent addition (I appended the FIXME):
if (b1 and b2) {// FIXME: possible memory leak here?

This test was initialy supposed to fix the crash after erasing bodies,
but now if  !b1 or !b2, the existing distant interactions will never be
erased.

-- 
You received this bug notification because you are a member of Yade
developers, which is the registrant for Yade.
https://bugs.launchpad.net/bugs/897237

Title:
  bug in neverErase?!

Status in Yet Another Dynamic Engine:
  New

Bug description:
  If I set neverErase=True Yade crashes with following output:

  O.run(3000,True)                                                                                                                                                                                             
  RuntimeError: std::exception 

  and also:

  Traceback (most recent call last):                                                                                                                                                                               
    File "/home/me/YADE/YADE2970/lib/yade-bzr2970/py/yade/qt/__init__.py", line 192, in refreshEvent                                                                                                       15:01:13
      self.refreshValues()                                                                                                                                                                                 15:01:30
    File "/home/me/YADE/YADE2970/lib/yade-bzr2970/py/yade/qt/__init__.py", line 265, in refreshValues                                                                                                      15:01:34
      s=int(t); ms=int(t*1000)%1000; us=int(t*1000000)%1000; ns=int(t*1000000000)%1000                                                                                                                             
  ValueError: cannot convert float NaN to integer  

  
  You can reproduce the bug with the attached script (similar to the one i submitted with version 2960).
  First try to set Law2_ScGeom_MindlinPhys_Mindlin(neverErase=False), this will work.
  Then set neverErase=True and yade crashes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/897237/+subscriptions


References