------------------------------------------------------------ revno: 4007 committer: Anton Gladky <gladky.an...@gmail.com> 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);
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : yade-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp