← Back to team overview

yade-dev team mailing list archive

Re: Why Ip2 functors must be symmetric?

 

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 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).

The comment in line 98  in IntersectionLoop.cpp says:

// arguments for the geom functor are in the reverse order (dispatcher would 
normally call goReverse).
// we don't remember the fact that is reverse, so we swap bodies within the 
interaction
// and can call go in all cases

In fact, it seams goReverse is never called because bodies are swapped before. 
So maybe we can get rid of it???

Klaus




Follow ups

References