yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #05206
Re: moment law, doing it right
-
To:
yade-dev@xxxxxxxxxxxxxxxxxxx
-
From:
Janek Kozicki <janek_listy@xxxxx>
-
Date:
Thu, 8 Jul 2010 21:55:02 +0200
-
Face:
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAALVBMVEUBAQEtLS1KSkpRUVFXV1dYWFhjY2Nzc3N3d3eHh4eKioqdnZ24uLjLy8vc3NxVIagyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AIVEzgS1fgQtQAAAjRJREFUOMtt1DFv00AUAOAzFQNbjigSyoQaRaBMhKgLUyKXpVNNeUpk9vyDqFJhQ1kiBuaqAwJCqvPtSLY7RlTn5+5IdnYkkt/AOyfxXVLe5vf53Z1875kd34tOEax8djmj6GyjhB5bxz50GdsVZr9fqRjZwAtKOJw5Wqs2MMZ16ALHsaDncF7xAHix1oEFHAB8f+pRjcO4gfZDykcYzbiucRolOLUJ6kjA0xtVt+A6TySlM0RajIpK6DzwKZ/nOYbF/gclHMo1ZOHYY/+Ha+AWuM+3oMS4eeqYzZ8FiCltgUqI8cd2wwAVpJk+8LWYjBtnJdQpHQqJMd4Oxt4bU9ESiFGc5hkqaH74asAX4iabP5I5gZ+qjgGlJCqZa3h3lxhoeVcSE1qLQC4sqKOK9MGW9E3izFqqHokoztLFEgXg31sbZEKnWi2T74A4NxfVQqlkjKtcAWD+zcArFEES01dR0E/nnV0IgugmDd/2L84sOAouRBBHEc7gtc8teDkRlE0iNQPo2w3Xhh/D4TCIQ4LRLoTvgwjj6RRgavdurxYGMaIuGOyAW/PpNlCcU9/93AHenAWYjPoAwa+G3e3to/MgFNTAEKvKDjzuCzHTnY3qqdXtx24VijzQfZ0yewZ5cwRFQaa+mIYr1uI0I76+3W4xhlvoVRwOA0Fdl64HlJnxP6T8YpX/Lga4Wv4A3ErrU5oTfN7Mu/llXMl8RXEPji/lQkN3H7qXqgC2By47EXeU/7PJ/wPxRKMnuZwIeAAAAABJRU5ErkJggg==
-
In-reply-to:
<4C359D36.4010603@hmg.inpg.fr>
Bruno Chareyre said: (by the date of Thu, 08 Jul 2010 11:41:10 +0200)
> Hi Janek,
>
> Let's try and make something clean this time. ;-)
> >
> > 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
> > How to name it? rollingStiffnessCoefficient comes to mind. But could
> > be also a rollingCoefficient, bendingCoefficient and so on.
> >
> "Coefficient" is vague. I'd prefer
> rolling/twisting+Stiffness/Friction/Cohesion.
> So that, for instance :
> trialTwist = twistAngle*twistStiffness //elastic behaviour
> maxTwist = twistFriction*fn+twistCohesion //elastic limit
> if (abs(trialTwist)>maxTwist) {do something, taking into account the
> "fragile" flag}
just to make this clear - please correct me if I'm wrong:
this:
rollingStiffness is Kr (rolling)
twistingStiffness is Kr (twisting)
?? is `Rolling stiffness coefficient β` (rolling)
?? is `Rolling stiffness coefficient β` (twisting)
OR this:
rollingStiffness is `Rolling stiffness coefficient β` (rolling)
twistingStiffness is `Rolling stiffness coefficient β` (twisting)
?
Further:
rollingFriction is `Moment limit coefficient η` (rolling)
twistingFriction is `Moment limit coefficient η` (twisting)
rollingCohesion is a cohesion on rolling, that increases maximum
allowed moment even if Fn is zero
twistingCohesion is a cohesion on twisting
=============
I looked up the formulas in the code how β is used:
Kr=β*Ks*Ra*Rb
While, Jerome and Luc have a different formula:
Kr=β*Ks*(Ra+Rb)^2/4.0
Moreover, my current formula for η is an average:
η=(ηa*Ra+ηb*Rb)/2
Jerome and Luc are setting η globally so they don't have this formula.
But because η is very analogous to friction angle μ, then maybe it is
also better to take a minimum value of two materials:
η=min(ηa,ηb)*(Ra+Rb)/2
M ≤ η*Fn + Mcohesion
To be able to avoid rolling on the walls if desired, just like with μ:
μ=min(μa,μb)
Fs ≤ tan(μ)*Fn + Fcohesion
I hope I didn't make mistake above :)
BTW, personally I'd be happy if g++ was able to compile UTF-8, and we
could use β,μ,η,Kn,Ks,Kr,Fs,Fn,M instead of lenghty names. But that
will cause too much incompatibility - did you know that this feature
is experimentally allowed?
http://gcc.gnu.org/wiki/FAQ#What_is_the_status_of_adding_the_UTF-8_support_for_identifier_names_in_GCC.3F
http://gcc.gnu.org/ml/gcc/2010-04/msg00827.html
In fact, now thanks to Vaclav, we have documentation EVERYWHERE.
So a short names will not hurt, just consult the docs if you don't remember!
--
Janek Kozicki http://janek.kozicki.pl/ |
Follow ups
References