Empirical value of rolling stiffness (Krot)

Asked by Zhicheng Gao

Since Ip2_CohFrictMat_CohFrictMat_CohFrictPhys is a linear model, and Hertz-Mindlin contact law is a non-linear model that is often used, so I choose to use Ip2_FrictMat_FrictMat_MindlinPhys.
However, in many documents, only the value of the rolling friction coefficient is given, and the value of the rolling stiffness is not given. In the Ip2_FrictMat_FrictMat_MindlinPhys, the rolling friction coefficient is given by eta, and the rolling stiffness is given by Krot, so what is the appropriate setting for the rolling stiffness? Is there any related literature?

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Zhicheng Gao
Solved:
Last query:
Last reply:
Revision history for this message
Karol Brzezinski (kbrzezinski) said :
#1

Hi,

check out those papers:

Kozicki, J., & Tejchman, J. (2011). Numerical simulations of sand behaviour using DEM with two different descriptions of grain roughness. In PARTICLES II: proceedings of the II International Conference on Particle-Based Methods: fundamentals and applications (pp. 62-71). CIMNE

Hosn, R. A., Sibille, L., Benahmed, N., & Chareyre, B. (2017). Discrete numerical modeling of loose soil with spherical particles and interparticle rolling friction. Granular matter, 19(1), 1-12.

Cheers,
Karol

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#2

Dear Karol,

I have read the papers you recommended. In my opinion, the second paper analyzes the parameters of the Ip2_CohFrictMat_CohFrictMat_CohFrictPhys where the rolling stiffness is determined by ks*αr *R1*R2, so we specify the rolling stiffness by setting the dimensionless rolling stiffness 'alphaKr' which refers to αr.

My question is whether Ip2_FrictMat_FrictMat_MindlinPhys and Ip2_CohFrictMat_CohFrictMat_CohFrictPhys use the same rolling resistance model. In Ip2_FrictMat_FrictMat_MindlinPhys, there is no dimensionless rolling stiffness parameter 'alphaKr' but only rotational stiffness for moment contact law 'krot'. Is 'krot' equal to ks*αr *R1*R2 ?

Cheers,
Zhicheng

Revision history for this message
Karol Brzezinski (kbrzezinski) said :
#3

Hi,

to be honest I thought so until now. Probably the best way to answer this question would be to study the source code.
I believe that you can find the answer here:
CPM:
https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/CohesiveFrictionalContactLaw.cpp#L307

Hertz-Mindlin:
https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/HertzMindlin.cpp#L67
https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/HertzMindlin.cpp#L535

It looks like CPM uses dimensionless rolling stiffness as you stated, but the Hertz-Mindlin model only takes 'krot' that is not related to other stiffness parameters, and then computes moment directly based krot and relative rotation.

Best wishes,
Karol

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#4

Another problem is how to distinguish between ball-to-ball contact and ball-to-wall contact, the material of balls and walls are all both FrictMat. And, for the Hertz-Mindlin contact law, only the Ip2_FrictMat_FrictMat_MindlinPhys of IPhysFunctor and Law2_ScGeom_MindlinPhys_Mindlin of LawFunctor can be used, ie

        InteractionLoop(
            [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom6D()],
            [Ip2_FrictMat_FrictMat_MindlinPhys(en=en,eta=eta,krot=krot),Ip2_FrictMat_FrictMat_MindlinPhys(en=en)],
            [Law2_ScGeom_MindlinPhys_Mindlin()],

So how to distinguish between ball-ball contact and ball-wall contact, so that the contact between the wall and the ball is set to be frictionless and anti-rotational.

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#5

Then how to distinguish between ball-to-ball contact and ball-to-wall contact

Revision history for this message
Karol Brzezinski (kbrzezinski) said :
#6

Hi,

As far as I understand this (please bear in mind that I am not a Yade developer), 'krot' is something like a global parameter. In my opinion, it does not depend on contact geometry or material parameter, and (probably) it cannot be distinguished between walls and spheres.

Cheers,
Karol

Revision history for this message
Jérôme Duriez (jduriez) said :
#7

Generally speaking about

> how to distinguish between ball-to-ball contact and ball-to-wall contact

assigning different FrictMat instance to spheres or walls will allow you to have different contact properties in such pairs, depending on the Ip2 calculations. For instance Ip2_FrictMat_FrictMat_FrictPhys computes by default contact friction angle as the minimum of both Material friction angles.

You may have so-called MatchMaker to tune the behavior e.g. [*], but these are (at the moment) not available for every contact attribute / every Ip2.

This being said, your present Ip2 looks to be singular in the sense it has a contact parameter directly as an Ip2 parameter, which is not the classical design and a clear drawback for your workflow.

In this case, you have no other choice than manually looping over interactions and change parameters as you see fit. Fortunately, the Ip2 works only once at interaction creation so you won't have to do the same job twice for a given interaction (but it may still be painful because you have to continuously monitor new interactions..... )

[*] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_FrictPhys.kn

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#8

Dear Duriez
I want to use Hertz-Mindlin contact law, the sphere is rough with rolling resistance, and the wall is smooth without friction.

In Yade, the Ip2_FrictMat_FrictMat_MindlinPhys[1] use the Hertz-Mindlin contact law, and the LawFunctor is Law2_ScGeom_MindlinPhys_Mindlin[2]. How should I assign different FrictMat instances to spheres or walls?

In the FrictMat[3], there are no rolling resistance and rolling stiffness parameters. Only in the Ip2_FrictMat_FrictMat_MindlinPhys the parameters 'eta' and 'krot' are used to set the rolling resistance and rolling stiffness.

https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_MindlinPhys
https://yade-dem.org/doc/yade.wrapper.html?highlight=includemoment#yade.wrapper.Law2_ScGeom_MindlinPhys_Mindlin
https://yade-dem.org/doc/yade.wrapper.html?highlight=frictmat#yade.wrapper.FrictMat

Revision history for this message
Jérôme Duriez (jduriez) said :
#9

Forgetting about the general design I evocated in #7 (which does not apply here), Karol Brzezinski already gave the answer in #6: in your particular case, you can not distinguish between sphere-sphere and sphere-wall for rolling resistance properties.

Because those properties are obtained from unique Ip2 parameters (e.g. Ip2_FrictMat_FrictMat_MindlinPhys.eta and Ip2_FrictMat_FrictMat_MindlinPhys.krot) instead of bodies' Material parameters.

No solution to your problem then, outside the manual update I mentioned, which may reveal to be a dirty workaround, or modifying source code to get back intended general design.

Where bodies can be assigned different Material properties as follows (for instance)

O.bodies.append(sphere((0,0,0),1,material=FrictMat(frictionAngle=radians(20))))
O.bodies.append(wall((0,0,-1),2,material=FrictMat(frictionAngle=0)))

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#10

Thanks Duriez and Brzezinski!

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#11

Thanks Duriez and Brzezinski!

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#12

Dear Duriez and Brzezinski, I assign CohFrictMat and FrictMat to walls and balls, separately, and
 use Ig2_Sphere_Sphere_ScGeom(), Ig2_Box_Sphere_ScGeom6D(), Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_MindlinPhys_Mindlin() to distinguish ball-to-ball contact and ball-to-wall contact. Is this appropriate?

Revision history for this message
Zhicheng Gao (zhichenggao) said :
#13

Thanks