Re: [Yade-dev] Why Ip2 functors must be symmetric?

2014-02-18 Thread Klaus Thoeni
Hi Bruno Why would you define a body with FrictPhys if is supposed to have a cohesive behavior with others? You can just give CohFrictPhys to everyone. That's what I did so far but it is not always possible. Any idea about the goReverse? Can it be removed? Maybe not removed. I think it

Re: [Yade-dev] Why Ip2 functors must be symmetric?

2014-02-18 Thread Bruno Chareyre
Maybe not removed. I think it is necessary, precisely because we can have non-symmetric functors. If you swap ids in Ip2 you may break the work of the Ig2. The go reverse is here for this reason (handling non-symmetric cases without forcing a specific ordering of id1/id2 and without the need

Re: [Yade-dev] Why Ip2 functors must be symmetric?

2014-02-18 Thread Klaus Thoeni
Hi Bruno Swapping for the Ig2 and swapping for the Ip2 are two different things. This comment at L98 applies for geometry only. Swapping for the Ip2 after computing the geometry would break everything (contact normal should be inverted, etc.) It is also what L125 suggests: assert(!swap);

Re: [Yade-dev] Why Ip2 functors must be symmetric?

2014-02-17 Thread Bruno Chareyre
Hi Klaus, I think non-symmetric functors are rarely necessary since most combinations can be dealt with via inheritance (e.g. Frict vs CohFrict is interpreted as Frict vs. Frict since CohFrict inherits from Frict). However, I am like you, I don't see the reason why it is asserted symmetric. I

Re: [Yade-dev] Why Ip2 functors must be symmetric?

2014-02-17 Thread Klaus Thoeni
Hi Bruno I think non-symmetric functors are rarely necessary since most combinations can be dealt with via inheritance (e.g. Frict vs CohFrict is interpreted as Frict vs. Frict since CohFrict inherits from Frict). Exactly, but what if you want it to behave it like a cohesive contact. This is

Re: [Yade-dev] Why Ip2 functors must be symmetric?

2014-02-17 Thread Bruno Chareyre
On 17/02/14 12:07, Klaus Thoeni wrote: Hi Bruno I think non-symmetric functors are rarely necessary since most combinations can be dealt with via inheritance (e.g. Frict vs CohFrict is interpreted as Frict vs. Frict since CohFrict inherits from Frict). Exactly, but what if you want it to

[Yade-dev] Why Ip2 functors must be symmetric?

2014-02-15 Thread Klaus Thoeni
Hi guys is there I reason why we only have symmetric Ip2 functors? I recently committed a contact law with non-symmetric Ip2 functor (Ip2_FrictMat_FrictViscoMat_FrictViscoPhys) but at the moment it is not working as expected. It turns out that the reason is in InteractionLoop.cpp line 122 and