Hertz mindlin, rolling back sphere

Asked by anna effeindzourou

Hi all,
I am using the Hertz Mindlin contact law with a simple example a sphere rolling on a inclined facet and then on a horizontal facet. I've observed that the sphere is rolling up and down.
Here is a small script to help you understand the phenomenon.

#!/usr/bin/python
# -*- coding: utf-8 -*-
from yade import utils

h=0.2

O.materials.append(FrictMat(young=1.7e8,poisson=0.20588,frictionAngle=radians(17),density=2650))
s1=O.bodies.append( utils.sphere([0.0000001,0.5,h+0.1],.1,color=[0,1,0],fixed=False,wire=True))

v1=(0,0,h)
v6=(0,1,h)
v2=(.5,0,0)
v3=(2,0,0)

v4=(2,1,0)
v5=(0.5,1,0)

f1=O.bodies.append( utils.facet([v1,v2,v5], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
f2=O.bodies.append( utils.facet([v1,v5,v6], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
f3=O.bodies.append( utils.facet([v2,v3,v4], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
f4=O.bodies.append( utils.facet([v2,v4,v5], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))

## time step
O.dt=1e-5

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop(
 [Ig2_Facet_Sphere_ScGeom(),Ig2_Sphere_Sphere_ScGeom()],
 [
 Ip2_FrictMat_FrictMat_MindlinPhys(en=0.1, krot=1,eta=1)
 ],
 [Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=True),
 ]),
 NewtonIntegrator(damping=0,gravity=(0,0,-9.81)),
]

Any ideas?

cheers,
Anna

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Bruno Chareyre
Solved:
Last query:
Last reply:
Revision history for this message
Anton Gladky (gladky-anton) said :
#1

Hi Anna,

try to decrease a friction angle.
It should "help". But the physics of the process and its
implementation in Yade should be checked.

Anton

Revision history for this message
anna effeindzourou (anna-effeindzourou) said :
#2

Hi,
I tried to change the friction angle but the result is the same,the only
difference is the point where the sphere is rolling forward and back.

Cheers,
Anna

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#3

You are using rotational stiffness, so, to me, there is nothing wrong.
Instead, it prooves robustness!
Try with krot=0, it will roll as you expect.
Nice script anyway.

B

Revision history for this message
Chiara Modenese (chiara-modenese) said :
#4

Hi Anna,

Are you aware that you input in the model some rolling resistance (if you try with the bool includeMoment=False you will see what I mean)? I think that explains the behaviour. Can you please try to explain here the purpose of your test? It may help us to give you a better answer.

Thank you,
Chiara

On 29 Jun 2012, at 07:01, anna effeindzourou wrote:

> New question #201769 on Yade:
> https://answers.launchpad.net/yade/+question/201769
>
> Hi all,
> I am using the Hertz Mindlin contact law with a simple example a sphere rolling on a inclined facet and then on a horizontal facet. I've observed that the sphere is rolling up and down.
> Here is a small script to help you understand the phenomenon.
>
>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
> from yade import utils
>
> h=0.2
>
> O.materials.append(FrictMat(young=1.7e8,poisson=0.20588,frictionAngle=radians(17),density=2650))
> s1=O.bodies.append( utils.sphere([0.0000001,0.5,h+0.1],.1,color=[0,1,0],fixed=False,wire=True))
>
>
> v1=(0,0,h)
> v6=(0,1,h)
> v2=(.5,0,0)
> v3=(2,0,0)
>
> v4=(2,1,0)
> v5=(0.5,1,0)
>
> f1=O.bodies.append( utils.facet([v1,v2,v5], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
> f2=O.bodies.append( utils.facet([v1,v5,v6], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
> f3=O.bodies.append( utils.facet([v2,v3,v4], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
> f4=O.bodies.append( utils.facet([v2,v4,v5], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
>
> ## time step
> O.dt=1e-5
>
> O.engines=[
> ForceResetter(),
> InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
> InteractionLoop(
> [Ig2_Facet_Sphere_ScGeom(),Ig2_Sphere_Sphere_ScGeom()],
> [
> Ip2_FrictMat_FrictMat_MindlinPhys(en=0.1, krot=1,eta=1)
> ],
> [Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=True),
> ]),
> NewtonIntegrator(damping=0,gravity=(0,0,-9.81)),
> ]
>
> Any ideas?
>
> cheers,
> Anna
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp

Revision history for this message
anna effeindzourou (anna-effeindzourou) said :
#5

Hi,
The purpose of this test is to investigate the influence of the rolling
resistance,
that's why the boolean includeMoment is true. But I just didn't expect that
the sphere could be able to roll up the hill.

Thank you,
Anna

Revision history for this message
Christian Jakob (jakob-ifgt) said :
#6

Hi anna,

I tested your script and it looks strange to me too. I would not expect, that sphere comes back, when rolling on the horizontal facets. It should roll along the plane and should get slower while rolling. But it looks like the sphere is draged to the break of slope. I am also wondering about this behavior, ...

regards,

christian

Revision history for this message
Best Bruno Chareyre (bruno-chareyre) said :
#7

If you define an elastic problem and compute it with a FEM code, for instance, you won't be surprised if the result does not reflect plasticity.

It is up to you to define what behaviour you want to simulate, then the result will (should) be consistent with your physical assumptions. Here, you get what you asked: an elastic rolling pendulum.
It results from your combination of values for stiffnesses and strengths.

Revision history for this message
Christian Jakob (jakob-ifgt) said :
#8

Ok, so it behaves like a pendulum, where anchor point is the middle point of two facets.
I modified annas script a little bit. Now one can see the pendulum effect.

#!/usr/bin/python
# -*- coding: utf-8 -*-
from yade import utils

h=0.2
y_ext = 100
x_ext = 100

O.materials.append(FrictMat(young=1.7e8,poisson=0.20588,frictionAngle=radians(17),density=2650))
s1=O.bodies.append( utils.sphere([0.0000001,y_ext/2,h+0.5],.5,color=[0,1,0],fixed=False,wire=True))

v1=(0,0,h)
v6=(0,y_ext,h)
v2=(.5,0,0)
v3=(x_ext,0,0)

v4=(x_ext,y_ext,0)
v5=(0.5,y_ext,0)

f1=O.bodies.append( utils.facet([v1,v2,v5], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
f2=O.bodies.append( utils.facet([v1,v5,v6], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
f3=O.bodies.append( utils.facet([v2,v3,v4], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))
f4=O.bodies.append( utils.facet([v2,v4,v5], dynamic=None, fixed=True, wire=True, color=None, highlight=False, noBound=False, mask=1))

## time step
O.dt=1e-4

O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
        InteractionLoop(
        [Ig2_Facet_Sphere_ScGeom(),Ig2_Sphere_Sphere_ScGeom()],
        [
        Ip2_FrictMat_FrictMat_MindlinPhys(en=0.1, krot=0.24, eta=1)
        ],
        [Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=True),
        ]),
        NewtonIntegrator(damping=0,gravity=(0,0,-9.81)),
]

Revision history for this message
anna effeindzourou (anna-effeindzourou) said :
#9

Thank you guys

Revision history for this message
anna effeindzourou (anna-effeindzourou) said :
#10

Thanks Chareyre, that solved my question.