yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #10944
[Branch ~yade-pkg/yade/git-trunk] Rev 4007: Skip interactions, where one of body isClump
------------------------------------------------------------
revno: 4007
committer: Anton Gladky <gladky.anton@xxxxxxxxx>
timestamp: Fri 2014-06-06 21:26:47 +0200
message:
Skip interactions, where one of body isClump
It caused segmentation fault during intensive adding/removal
clumps during the simulation.
modified:
pkg/common/InteractionLoop.cpp
--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/common/InteractionLoop.cpp'
--- pkg/common/InteractionLoop.cpp 2014-05-23 13:05:19 +0000
+++ pkg/common/InteractionLoop.cpp 2014-06-06 19:26:47 +0000
@@ -70,7 +70,9 @@
const shared_ptr<Body>& b2_=Body::byId(I->getId2(),scene);
if(!b1_ || !b2_){ LOG_DEBUG("Body #"<<(b1_?I->getId2():I->getId1())<<" vanished, erasing intr #"<<I->getId1()<<"+#"<<I->getId2()<<"!"); scene->interactions->requestErase(I); continue; }
-
+
+ // Skip interaction with clumps
+ if (b1_->isClump() || b2_->isClump()) { continue; }
// we know there is no geometry functor already, take the short path
if(!I->functorCache.geomExists) { assert(!I->isReal()); continue; }
// no interaction geometry for either of bodies; no interaction possible
@@ -107,7 +109,7 @@
if(wasReal) scene->interactions->requestErase(I); // fully created interaction without geometry is reset and perhaps erased in the next step
continue; // in any case don't care about this one anymore
}
-
+
// IPhysDispatcher
if(!I->functorCache.phys){
I->functorCache.phys=physDispatcher->getFunctor2D(b1->material,b2->material,swap);