About considered facet's radius in Ig2_Facet_Sphere_ScGeom.

Asked by Kneib François

Hi,

I found something weird in the source code into Ig2_Facet_Sphere_ScGeom::go().
Usually when there is a contact between a sphere and a surface (wall, box ...), the contact geometry contains radius1=radius2=rs. (assuming rs is the sphere radius). So the stiffnesses of the contact are computed like if there is two spheres having the same radius.

In Ig2_Box_Sphere_ScGeom::go :
          scm->radius1 = s->radius;
          scm->radius2 = s->radius;

In Ig2_Wall_Sphere_ScGeom::go :
          ws->radius1=ws->radius2=radius;

But into Ig2_Facet_Sphere_ScGeom::go, there is :
          scm->radius1 = 2*sphereRadius;
          scm->radius2 = sphereRadius;

Don't you think this is a mistake ?

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#1

I think it was a decision more than a mistake. As for the real reason, I can't really help.
Wasn't Sergei the original author of this?
It is not wrong in itslef, but still a bit strange that it is not the same as for the other contact types.
I would applaude if it was changed to 1*sphereRadius, the problem is that people using it would suddendly get different results.

Revision history for this message
Anton Gladky (gladky-anton) said :
#2

Please, open a bugreport. We should check first, how it influences results.

Thanks,

Anton

2013/5/13 Kneib François <email address hidden>

> New question #228778 on Yade:
> https://answers.launchpad.net/yade/+question/228778
>
> Hi,
>
> I found something weird in the source code into
> Ig2_Facet_Sphere_ScGeom::go().
> Usually when there is a contact between a sphere and a surface (wall, box
> ...), the contact geometry contains radius1=radius2=rs. (assuming rs is the
> sphere radius). So the stiffnesses of the contact are computed like if
> there is two spheres having the same radius.
>
> In Ig2_Box_Sphere_ScGeom::go :
> scm->radius1 = s->radius;
> scm->radius2 = s->radius;
>
> In Ig2_Wall_Sphere_ScGeom::go :
> ws->radius1=ws->radius2=radius;
>
> But into Ig2_Facet_Sphere_ScGeom::go, there is :
> scm->radius1 = 2*sphereRadius;
> scm->radius2 = sphereRadius;
>
> Don't you think this is a mistake ?
>
> --
> 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
Klaus Thoeni (klaus.thoeni) said :
#3

Hi guys

I think we had a similar discussion here:

https://lists.launchpad.net/yade-dev/msg08163.html

@ Anton: so I don't think it's a bug.

Klaus

On Mon, 13 May 2013 11:56:12 PM Kneib François wrote:
> New question #228778 on Yade:
> https://answers.launchpad.net/yade/+question/228778
>
> Hi,
>
> I found something weird in the source code into
> Ig2_Facet_Sphere_ScGeom::go(). Usually when there is a contact between a
> sphere and a surface (wall, box ...), the contact geometry contains
> radius1=radius2=rs. (assuming rs is the sphere radius). So the stiffnesses
> of the contact are computed like if there is two spheres having the same
> radius.
>
> In Ig2_Box_Sphere_ScGeom::go :
> scm->radius1 = s->radius;
> scm->radius2 = s->radius;
>
> In Ig2_Wall_Sphere_ScGeom::go :
> ws->radius1=ws->radius2=radius;
>
> But into Ig2_Facet_Sphere_ScGeom::go, there is :
> scm->radius1 = 2*sphereRadius;
> scm->radius2 = sphereRadius;
>
> Don't you think this is a mistake ?

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

>I think we had a similar discussion here:

Good point. Here is a better link:
http://<email address hidden>/msg07524.html

Apparently it was not Sergei's decision but a remaining of SDEC's formulae.
I suggest to make it 1*radius if nobody has a problem with that.

Bruno

Revision history for this message
Alexander Eulitz [Eugen] (kubeu) said :
#5

Thank you for the feedback. I did not find this discussion by myself, excuse me.

This discussion results in the question whether the contact between a facet and sphere should be threaded like the contact between two identical spheres.
In my eyes a facet could be seen as a sphere with infinite radius. so increasing the reference radius of a sphere definitly makes sense. But this cannot explain the factor being 2.
And I see that Klaus had this idea, already[1]. And it was declined.
Does anyone know how this aspect is solved in ESys or other DEM programmes?

[1] http://<email address hidden>/msg07520.html

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

It is not a fundamental issue, although the present state is not very nice.
In the end, the stiffness combines radius and Young, so you can always set Young to whatever gives the stiffness you like.
Matchmakers could also circumvent possible unpleasant outcomes.

The only reason to not change is because so many scripts could be using the current version. How many exactly, I have no idea.
We could only find it the hard way: change radius and count complaints on the yade-user list. ;)

Bruno

Can you help with this problem?

Provide an answer of your own, or ask Kneib François for more information if necessary.

To post a message you must log in.