← Back to team overview

yade-dev team mailing list archive

Re: Why Ip2 functors must be symmetric?

 

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 behave it like a cohesive contact.
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.

>  This is 
> not possible at the current stage. So non-symmetric Ip2 functors would make 
> sense here, right? And looking at the variety of material we have (some are 
> not inherited from FrictMat) I can see some more benefits.
Recently viscous types have reintegrated the inheritance line of
FrictPhys (thanks Raphael!) and I don't really see many contact types
that should be exceptions.
If you check the list of green/yellow functors almost all of them use
the inheritance from FrictPhys (https://yade-dem.org/wiki/ConstitutiveLaws).

>
>> However, I am like you, I don't see the reason why it is asserted
>> symmetric. I suggest to try your idea after removing this constraint and
>> see if it works as accepted.
> Ok, I will try.
>
> Any idea about the goReverse? Can it be removed?

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 to
define to functors).

Bruno



Follow ups

References