← Back to team overview

yade-dev team mailing list archive

[Bug 1001194] [NEW] No interactions after erasing body

 

Public bug reported:

Hi all,

I've got a fairly simple script to build some ballistic aggregates which
I will use in later simulations. I basically started with a seed
particle at the origin, which has dynamic=False and then create
particles and fire them randomly towards the aggregate. When contact is
detected (O.interactions.countReal() increases in my collision checking
callback) I freeze that particle (setting dynamic = False) and create a
new one.

This basically works OK. But I have to check for particles that miss the
aggregate. So in my collision checking callback, if there has been no
increase in interactions, and if I am far from the seed particle, I
erase the particle with O.bodies.erase.

This is where things seem to behave unexpectedly. I erase the particle,
and a few timesteps later create a new one. This takes the same ID as
the deleted one. But now, no interactions are ever detected - even when
the particles pass through each other! Does O.bodies.erase not do what I
think it does?

Any suggestions welcome!

Thanks, Mark

** Affects: yade
     Importance: Critical
         Status: New

** Changed in: yade
   Importance: Undecided => Critical

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

Title:
  No interactions after erasing body

Status in Yet Another Dynamic Engine:
  New

Bug description:
  Hi all,

  I've got a fairly simple script to build some ballistic aggregates
  which I will use in later simulations. I basically started with a seed
  particle at the origin, which has dynamic=False and then create
  particles and fire them randomly towards the aggregate. When contact
  is detected (O.interactions.countReal() increases in my collision
  checking callback) I freeze that particle (setting dynamic = False)
  and create a new one.

  This basically works OK. But I have to check for particles that miss
  the aggregate. So in my collision checking callback, if there has been
  no increase in interactions, and if I am far from the seed particle, I
  erase the particle with O.bodies.erase.

  This is where things seem to behave unexpectedly. I erase the
  particle, and a few timesteps later create a new one. This takes the
  same ID as the deleted one. But now, no interactions are ever detected
  - even when the particles pass through each other! Does O.bodies.erase
  not do what I think it does?

  Any suggestions welcome!

  Thanks, Mark

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


Follow ups

References