[Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2019-02-05 Thread Janek Kozicki
moved from https://bugs.launchpad.net/yade/+bug/1475844 to https://gitlab.com/yade-dev/trunk/issues/10 -- You received this bug notification because you are a member of Yade developers, which is subscribed to Yade. https://bugs.launchpad.net/bugs/1475844 Title: Swap problem in InteractionLoop

Re: [Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-29 Thread Václav Šmilauer
> Yes, I understand the idea on performance. > "table[i][j]->" is nearly as fast a "p->". There an extra check that table element is something, but, as you say, it is very quick. > It makes sense but it is pitty, it was quite a bit of work to implement > the cache thing everywhere wasn't it? :) It

Re: [Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-24 Thread Chareyre
Yes, I understand the idea on performance. "table[i][j]->" is nearly as fast a "p->". It makes sense but it is pitty, it was quite a bit of work to implement the cache thing everywhere wasn't it? :) Anyway, it would be interesting to have timings again. B -- You received this bug notification be

[Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-23 Thread Václav Šmilauer
Hi Bruno, I think the two-step solution is right as far as I can see. For the performance, I apologize for my incorrect statement; you're right about this. The logic is a bit different in Woo (https://github.com/eudoxos/woodem/blob/master/pkg/dem/ContactLoop.cpp) and I will check again what is ha

[Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-23 Thread Bruno Chareyre
@Vaclav >I removed this functor caching, since it does not seem to bring any benefit >performance-wise. IIRC the change [1] gave a significant (clearly measurable) speedup. Before the change it was like this: if (noIGfuntor || noIPfunctor) assignIGfunctor(); if (!IGfunctor.go()) continue; assign

[Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-23 Thread Bruno Chareyre
Thank Vacalv, So the two-step solution is: - Implement goReverse (i.e. exactly the "Ip2_Mat1_Mat2/Ip2_Mat2_Mat1" pair but in a single functor. - enable swap and remember it somehow (bool InteractionPhysics::swapped maybe?) -- You received this bug notification because you are a member of Yade d

Re: [Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-23 Thread Václav Šmilauer
Hi, My next questions (result of not knowing the code well enough): - is asssert necessary in [1]? Not really necessary. It just means that goReverse would have to be implemented properly, which, back then, was not the case with any of the existing Ip2 functors. With swap==true, you'd have to c

Re: [Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-23 Thread Jan Stránský
This situation is partly described in [2]. I used it just in a special case: - spheres with CpmMat - facets with FrictMat - Ig2_Facet_Sphere - Ip2_FrictMat_CpmMat so Ig2 always order the particles with different shapes in order Facet-Sphere, so the materials are also ordered FrictMat-CpmMat fittin

[Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-23 Thread Bruno Chareyre
I don't understand this assert either. Just adding more questions: -Can the same problem also appear in Ip2_FrictMat_CpmMat_FrictPhys? -This one requires that mat1 is Frict and Mat2 is Cpm, how can it be always true? [4] The good fix would be to let materials be swapped, I don't believe it really

[Yade-dev] [Bug 1475844] Re: Swap problem in InteractionLoop

2015-07-22 Thread Jan Stránský
My next questions (result of not knowing the code well enough): - is asssert necessary in [1]? - why is IPhysDispatcher defined as autosymmetric (default template argument) [3]? [1] http://bazaar.launchpad.net/~yade-pkg/yade/git-trunk/view/head:/pkg/common/InteractionLoop.cpp#L116 [3] http://ba