← Back to team overview

yade-dev team mailing list archive

contact logic (again)

 

Hi,

based on the collider benchmark I thought new collider could be developed (someone? Nice topic for diploma thesis: google "NBC contact detection" or "munjiza-rougier" and other). For that reason, I renamed BroadInteractor to Collider and I would like to move collider-independent logic there.
The Collider::mayCollide says straightforwardly whether bodies can make 
contact at all (clumps, maybe other things). No problem here.
Collider::handleExistingInteraction will be (not yet used) reponsible 
for changing isReal, isNew flags and signalling that the interaction 
should be deleted (if it returns false). I would like someone (Bruno?) 
to review to code whether it is OK.
Another change I have in mind is removing haveDistantTransient; marking 
real contacts to be deleted by the constitutive law incurs no penalty, 
except for a very specific case where AABBs stop overlapping at the same 
iteration (not later) that spheres geometrically stop touching; this 
happens only if spheres would be aligned along an axis. In that case, 
the "penalty" would be that the interaction would be marked !isReal by 
InteractionGeometryMetaEngine and deleted at next iteration by the 
collider, instead of being deleted by the collider right away.
Second potential problem with haveDistantTransient is that you can have 
multiple constitutive laws, of which one will want to keep distant 
interaction and the other would not (there are no transient/persistent 
interactions anymore).
Therefore it seems appropriate to require that constitutive laws delete 
interactions.
Last thing: there are colliders I suspect are not used (and maintained): 
PersistentTriangulationCollider, SAPCollider, 
DistantPersistentSAPCollider. Couldn't we remove those from the tree?
Best, Vaclav

PS. I am aware of http://yade.wikia.com/wiki/Sanitizing_Contact_Logic. Let me know if I overlooked something there.


Follow ups