How to create a rigid floor in a particle deposition with periodic boundaries

Asked by Joost

After walking through all the documentation and examples, I am left with the following question: how do I create a rigid floor for my particle deposition? I would like to create a cloud of spheres in a box which has:

- periodic boundary conditions for all vertical walls
- a rigid floor and ceiling

My first attempt is based on this example: https://github.com/yade/trunk/blob/master/examples/periodicSandPile.py

The problem with this example is that the floor is a FrictMat. As I increase the number of particles, the weight of the particles will start pushing particles at the bottom of the packing through the floor. I would like to prevent this from happening by making the floor rigid. I see two solutions:

1. Set the parameters of FrictMat so that the material is essentially rigid.
2. Instead of using a FrictMat for the floor, set another kind of (rigid) boundary.

How do I achieve either of these solutions? Thanks in advance.

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
Jan Stránský (honzik) said :
#1

Hello,
in Yade there is no "kind of (rigid) boundary". The floor is "rigid" from
the point of view that it is not deformable. To make it "more rigid" from
the point of view of interaction with other bodies, your choice no. 1 would
be one option, or you can use different material or contact law (some with
non-linear dependency of penetration depth on contact force). Anyway the
floor would not be perfectly "rigid" in both cases..
cheers
Jan

2014-12-01 6:06 GMT+01:00 Joost <email address hidden>:

> New question #258444 on Yade:
> https://answers.launchpad.net/yade/+question/258444
>
> After walking through all the documentation and examples, I am left with
> the following question: how do I create a rigid floor for my particle
> deposition? I would like to create a cloud of spheres in a box which has:
>
> - periodic boundary conditions for all vertical walls
> - a rigid floor and ceiling
>
> My first attempt is based on this example:
> https://github.com/yade/trunk/blob/master/examples/periodicSandPile.py
>
> The problem with this example is that the floor is a FrictMat. As I
> increase the number of particles, the weight of the particles will start
> pushing particles at the bottom of the packing through the floor. I would
> like to prevent this from happening by making the floor rigid. I see two
> solutions:
>
> 1. Set the parameters of FrictMat so that the material is essentially
> rigid.
> 2. Instead of using a FrictMat for the floor, set another kind of (rigid)
> boundary.
>
> How do I achieve either of these solutions? Thanks in advance.
>
>
> --
> 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
Chareyre (bruno-chareyre-9) said :
#2

Hi, the stiffness of the floor-particle contact depends on "Young" value
of each material.
If it is high enough the particles will not go through.
Bruno

Revision history for this message
Joost (joosthvanderlinden) said :
#3

Thank you for your input!

@Jan: I was thinking of using a "facet", but I could not find a good description of this type of geometry. For example, in the gravity deposition example (https://yade-dem.org/doc/tutorial-examples.html) a FacetBox is used that exhibits rigid-like boundaries. Would it be possible to create a facet floor?

@Bruno: I am unable to get the desired result by increasing the Young value.

This is what I currently have for the floor:

O.materials.append(FrictMat(density=1, young=1e15, poisson=0.3, frictionAngle=radians(30), label='boxMat'))
lowBox = box( center=(length/2.0,height/3.0-thickness/2.0,width/2.0),extents=(length,thickness,width),fixed=True,wire=False)
O.bodies.append(lowBox)

And for the particles:
O.materials.append(FrictMat(density=1000,young=1e4,poisson=0.3,frictionAngle=radians(30),label='sphereMat'))
sp=pack.SpherePack()
sp.makeCloud((0.0,height/3.0+thickness+mean+radius,0.0), (length,height,width),rMean=mean,rRelFuzz=radius,num=number,periodic=True)
O.bodies.append([sphere(s[0],s[1],color=(0.6+0.15*rand(),0.5+0.15*rand(),0.15+0.15*rand())) for s in sp])

Revision history for this message
Joost (joosthvanderlinden) said :
#4

Apologies for the confusion in my previous message, I just learned to facets have material properties just like boxes do. Still learning... This clarifies Jan's answer, and leaves me with Bruno's answer as the solution.

I am new to DEM so I'm not comfortable with the parameters that would model a rigid material. Any suggestions, based on my previous code?

Many thanks.

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

I would say that DEM such as the one in Yade can not consider rigid materials.

In fact, I could also have answered the contrary, saying that Yade considers only rigid elements ("bodies" here) that can overlap each other (because this is what Yade basically describes). But this non-physical point of view would maybe be only more confusing for you...

Revision history for this message
Jan Stránský (honzik) said :
#6

Another option is to use nonlinear contact law. The simple models assumes
that force is proportional to penetration depth (F=k*u). It is reasonable
for "small" penetration depth, but for the scenarios where a particle goes
through a wall, the force should be much much higher, something like
F=k*log(u/(r1+r2)). I am not sure if something like this is implemented..
Jan

2014-12-02 1:56 GMT+01:00 Joost <email address hidden>:

> Question #258444 on Yade changed:
> https://answers.launchpad.net/yade/+question/258444
>
> Joost posted a new comment:
> Apologies for the confusion in my previous message, I just learned to
> facets have material properties just like boxes do. Still learning...
> This clarifies Jan's answer, and leaves me with Bruno's answer as the
> solution.
>
> I am new to DEM so I'm not comfortable with the parameters that would
> model a rigid material. Any suggestions, based on my previous code?
>
> Many thanks.
>
> --
> 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
Best Bruno Chareyre (bruno-chareyre) said :
#7

>@Bruno: I am unable to get the desired result by increasing the Young value.

I see "O.materials.append(FrictMat(density=1000,young=1e4,poisson=0.3,frictionAngle=radians(30),label='sphereMat'))"

Is this after increase?!!
young=1e4 is extremely small compared to the other values (density and problem size). Not a surprise that the particles go through.

Revision history for this message
Joost (joosthvanderlinden) said :
#8

Thanks Bruno Chareyre, that solved my question.

Revision history for this message
VG (varun-gupta) said :
#9

I am experiencing a similar problem and the material properties I am using are as follows:

For the floor and ceiling: FrictMat( young=200e9, poisson=0.3, density=8000. ,frictionAngle=radians(30) ,label='wall_mat')

And for the particles:
FrictMat( young=4e9,poisson=0.25,density=1346,frictionAngle=radians(30),label='sample_mat')

Can I solve this problem by increasing the Young's modulus for both the materials and what values should I use here ?
Also, wouldn't increasing the Young's Modulus for particles arbitrarily lead to unphysical response ?

 In addition, I am using O.dt=0.5*PWaveTimeStep() in my simulation. Now, increasing the Young's modulus would also reduce the required time step.

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

Please don't jump on an old thread to ask a new question. This one is closed and will not receive further answers.

Revision history for this message
VG (varun-gupta) said :
#11

Sure, Thanks Bruno. I have posted it as a new question: https://answers.launchpad.net/yade/+question/290950