Sleeper on ballast layer

Asked by daalgi on 2013-06-06

Hi,

I'm trying to model a sleeper on a ballast layer. The sleeper should have a parallelepiped shape and should behave as a dynamic body. Also, it has to be subjected to a vertical force. So, my questions are:

1) How can I model the sleeper?
I've tried to do it by means of "utils.box", but this body neither interact with spheres nor with walls.
I also have tried to do it by means of "utils.geom.facetBox", but I can't achieve the facetBox to move like a dynamic body (dynamic=True,fixed=False), it just disappears when the simulation starts.

2) Can a force be set up in any point of the surface of a box or a facetBox? Or should this problem be treated as a force applied to the center of gravity and the corresponding moment?

Thanks!!

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
daalgi
Solved:
2013-06-07
Last query:
2013-06-07
Last reply:
2013-06-06

Hi Daalgi
Yade is not really rich in the variety of objects shapes presently. So your question is a bit challenging the code.

1/ box is not very well suited because a good implementation of the contacts on edges of the box is still lacking. Facets should be ok if I'm not wrong. It may need to introduce a degree of smoothness by discretizing the edges with many facets though, not sure. If they fly away however, the problem is probably on your side. What is the mass of the faceted box?

2/ An easy way: use another object (e.g. a small sphere) to apply the force at a contact point between this object and the sleeper. Alternatively, your method can be used (force+torque on center).

Bruno

daalgi (dag49) said : #2

So, can a facetBox turn into a rigid body with dynamic properties? should all the facets be groupped in a clump so it the mass, center of gravity and inertia can be set up to the clump? is there any way to use a finer mesh of the facets?

The mass of the sleeper is equal to 318 kg, but I don't know how to assign it to the facetBox, since it is compounded of 12 facets. The code that I'm using to model the sleeper is this (something must be wrong because the facetBox just disappears when the simulation starts):
O.bodies.append(utils.geom.facetBox(
       center=(1,2,1),extents=(2,0.25,0.25),
       wallMask=63,material=Mat1,
       dynamic=true,fixed=False))

Thanks Bruno!

Christian Jakob (jakob-ifgt) said : #3

Hi,

Can you please give us your definition of Mat1?

Is there density=0 ?

Christian

daalgi (dag49) said : #4

Mat1=O.materials.append(FrictMat(
       young=27e9,poisson=0.20,density=2500,frictionAngle=0.8)

Anton Gladky (gladky-anton) said : #5

2013/6/6 daalgi <email address hidden>:
> The mass of the sleeper is equal to 318 kg, but I don't know how to assign it to the facetBox, since it is compounded of 12 facets.

Facets are non-inertial bodies. They will not move due to
interactions, so the mass will not play a role in your case.

Anton

Christian Jakob (jakob-ifgt) said : #6

Ok, I am not sure, but I think it should look like this:

Mat1= FrictMat(young=27e9,poisson=0.20,density=2500,frictionAngle=0.8)
id_Mat1 = O.materials.append(Mat1)

O.bodies.append(utils.geom.facetBox(
       center=(1,2,1),extents=(2,0.25,0.25),
       wallMask=63,material=Mat1,
       dynamic=true,fixed=False))

Do facets still disappear with these changes?

@Anton

>Facets are non-inertial bodies. They will not move

I was wondering...
If clumped facets cannot be dynamic yet, it is probably not a big deal to allow this, is it?

daalgi (dag49) said : #8

Christian, modifying the code like this doesn't change anything, the facets still disappear.

Anton, the facets are non-inertial bodies, but can't they be turned into inertial bodies by modifying some properties? In that case, is there any other way to model the sleeper?

Christian Jakob (jakob-ifgt) said : #9

> Christian, modifying the code like this doesn't change anything, the facets still disappear.

Do you have other materials defined in the model (Mat2, Mat3, ...)?
If yes, please send us their properties.

daalgi (dag49) said : #10

Right now I just have material Mat1 defined in the model.

Christian Jakob (jakob-ifgt) said : #11

Did you try it with dynamic=False and/or fixed=True?

Anton Gladky (gladky-anton) said : #12

2013/6/6 Bruno Chareyre <email address hidden>:
> I was wondering...
> If clumped facets cannot be dynamic yet, it is probably not a big deal to allow this, is it?

Theoretically yes. But it needs to be checked, committed, tested etc.

Anton

Anton Gladky (gladky-anton) said : #13

2013/6/6 daalgi <email address hidden>:
> Anton, the facets are non-inertial bodies, but can't they be turned into
> inertial bodies by modifying some properties? In that case, is there any
> other way to model the sleeper?

Did you try clumped spheres?

Anton

> Theoretically yes. But it needs to be checked, committed, tested etc.

That's it.

daalgi (dag49) said : #15

>> Did you try it with dynamic=False and/or fixed=True?
Yes, I tried the four possible combinations. The True/True combination is the only one that makes the facetBox disappear, but the other ones doesn't work correctly for the puspose of my study.

>> Did you try clumped spheres?
Do you mean modelling the sleeper as a clump of spheres? I think this wouldn't be an accurate solution, but it seems the only possible one.

Thank you all so much for your help!!

daalgi (dag49) said : #16

I figured it out! In case anyone needs it sometime, I explain it.

I used a box to model the sleeper, which allows the behavior as a dynamic body (dynamic=True,fixed=False), and spheres to model the ballast.

Then I just changed the default InteractionLoop to another one that allows the interaction between boxes and spheres. Here is the code:

O.engines=[
     ...
     InteractionLoop(
          [Ig2_Sphere_Sphere_ScGeom(),
               Ig2_Box_Sphere_ScGeom()],
          [Ip2_FrictMat_FrictMat_FrictPhys()],
          [Law2_ScGeom_FrictPhys_CundallStrack()]
     )
     ...
]

Anton Gladky (gladky-anton) said : #17

That is why it is always desirable to provide the minimal working
script to triage the problem.

Anton

2013/6/7 daalgi <email address hidden>:
> Then I just changed the default InteractionLoop to another one that
> allows the interaction between boxes and spheres. Here is the code:

> Then I just changed the default InteractionLoop to another one that
> allows the interaction between boxes and spheres. Here is the code:

I was suspecting this mistake but I didn't bother to point it out, as for me it still not work properly. As said before:
"box is not very well suited because a good implementation of the contacts on edges of the box is still lacking."

And in your case there will be such contacts. Boxes are in fact only good to represent planes presently, unlike the name suggests...