← Back to team overview

yade-dev team mailing list archive

Re: moment law, doing it right

 

Hello Janek,

I asked me the same questions as you. Here is what I made, from far not claiming that this is the right way to do (I realized again by typing this that some modifications could be made)...

Le 07/07/2010 16:12, Janek Kozicki a écrit :
Hello,

I need to add two parameters:

- Rolling stiffness coefficient β
- Moment limit coefficient η


Currently β has a fixed value of 2.0 in Ip2_2xCohFrictMat_CohFrictPhys.cpp line 52

Where to add it? Should I add it to CohFrictMat.hpp or should I
derive from this class and name it CohFricRollMat ?

How to name it? rollingStiffnessCoefficient comes to mind. But could
be also a rollingCoefficient, bendingCoefficient and so on.

I use a parameter named very simply "betaR". It is in fact registered in Ip2_2xNormalInelasticMat_NormalInelasticityPhys, not in material parameters... Now I re think about it, I'd have difficulties to justify it... Maybe it appeared me more logical because the definition of the torque-stifness, equal to "betaR * R_mean ^2" could suggest that this "BetaR" is a parameter common to all the interactions, and not the bodies.... Not a real justification anyway... If you set it in a new Material class, I could be interested. For now I use "NormalInelasticMat", which contains an other parameter I need for "my" contact law. Now I re-think to put this "betaR" in this class, maybe I could inherit from yours ? Or maybe not because "mine" inherits from FrictMat, not CohFrictMat.
Currently η has a fixed value at ∞, or am I completely unaware that
it has been implemented in the code, by someone. It limits the
maximum value of rolling moment proportionally to Fn.

You are (were, now) a bit unaware. NormalInelastictityLaw.cpp (which contains the class Law2.....) limits the rolling moment. By "forMaxMoment" * Fn; "forMaxMoment" being stored in NormalInelasticityPhys(maybe not consistent, again) and computed in pkg/dem/Engine/Functor/Ip2_2xNormalInelasticMat_NormalInelasticityPhys.cpp l.63, with an "1.0 corresponding to ethaR which I don't know exactly where to define as a parameter...", as I wrote in this place
I remember you discussing that CohesiveFrictionalContactLaw should be
dissected somehow, into a 2-argument functor, or something else. What
was that?

I guess it is about the fact that now contact law are no more supposed to be GlobalEngine, but LawFunctor. See § surrounding https://www.yade-dem.org/sphinx/user.html#law2-functor-s and class InteractionDispatchers
Last question, why the name Ip2_2xCohFrictMat_CohFrictPhys instead of
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys. Of course the latter is
longer. But is there a fixed convention about that? For instance the
file Ip2_FrictMat_FrictMat_FrictPhys.hpp  definitely breaks this convention.

I think I asked also this question. If I remember well, the convention is not so strict (good thing in this case I think), that's why me I chose to use "Ip2_2xNormalInelasticMat_NormalInelasticityPhys"

Jerome

--
Jérôme Duriez
ATER Iut 1 Grenoble, département GMP - Laboratoire 3S-R
04.56.52.86.49 (ne pas laisser de messages sur le répondeur)




Follow ups

References