yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #05117
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