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
> 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
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
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
@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
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
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
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
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
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
10 matches
Mail list logo