← Back to team overview

yade-dev team mailing list archive

Question about parameters in SpheresContactGeometry

 

Hi

I see an inflation in the amount of members in this class.
This class should be very simple, with no excess parameters for all those using the traditional Cundall's contact law. Which means, this class should have only rad1, rad2, penetrationDepth and normal, nothing more (except perhaps ContactPoint). Keep in mind this contact law/parameters is probably the first thing people will look for when seeing Yade for the first time. If they try to read SpheresContactGeometry.hpp now, they will get the impression all this is a lot too complex (and it is!).

Currently, the registered parameters are :


(normal)
           (contactPoint)
           (radius1)
           (radius2)
           (contactPoint) // to allow access from python
           (facetContactFace)
           // hasShear
           (hasShear)
           (pos1)
           (pos2)
           (ori1)
           (ori2)
           (cp1rel)
           (cp2rel)
           (d1)
           (d2)
           (d0)
           (initRelOri12));

And members include functions like unrollSpherePtToPlane, rollPlanePtToSphere, setTgPlanePts, which are also very specific if I understand correctly.

My question is : is this additional code supposed to be removed at one point (as suggested in the comment "// begin abusive storage") or not?

When Cosurgi needed this sort of additional parameter for a complex contact law (creep behaviour in the CohesiveFrictional class group), he added them in cohesive-frictional Contact_Physics_.

It might be the good method to avoid overloading the geometry class with data wich is used by only one contact law, as InteractionPhysics tend to be a different class for each different contact law. Another way, of course, is to create a new geometryClass inheriting from SpheresContactGeometry...

Additional note,  in SpheresContactGeometry.hpp, I see :

* TODO: add torsion code, that will (if a flag is on) compute torsion angle on the contact axis.
*
* TODO: add bending code, that will compute bending angle of the contact axis

The code for this is in CohesiveFrictionalContactLaw already, its been developped by Cosurgi.

Bruno









--

_______________
Chareyre Bruno
Maitre de conference

Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43
________________




Follow ups