Slope geometry creation

Asked by Mario Reyes

Hello all,

I am a begginer on Yade and I am trying to make a simple slope stability simulation. What I am trying to do is just create a slope and check the effects if the slope toe is cut. I am considering a saturated soil, so I am not incorporating the effects of suction. I am struggling with the creation of the geometry. I have checked the manual and the examples and it seems that I can create a paralepiped using the function "randomDensePack" from the module "pack", giving it as an argument a predicated created using the function "inAlignedBox" from the same module.

In the Catalano thesis (https://yade-dem.org/w/images/a/af/SlopeStability.pdf) page 32, it is mentioned that the slope geometry was created by removing a number of spheres through geometrical conditions. I have found the method "erase" of the "BodyContainer" class, so I think I have to delete the elements from the O.bodies object, but I tried to find an example or something in the documentation about how to remove particles based in geometrical conditions and I am stuck with it. Any help will be greatly appreciated.

In another topic, I am struggling with the size of the spheres as well. If you have any comment that points me in the right direction it will be excellent. Thanks in advanced.

Cheers,

Mario

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
Last query:
Last reply:
Revision history for this message
Best Jan Stránský (honzik) said :
#1

Hi Mario,

> In the Catalano thesis (
> https://yade-dem.org/w/images/a/af/SlopeStability.pdf) page 32, it is
> mentioned that the slope geometry was created by removing a number of
> spheres through geometrical conditions. I have found the method "erase" of
> the "BodyContainer" class, so I think I have to delete the elements from
> the O.bodies object, but I tried to find an example or something in the
> documentation about how to remove particles based in geometrical conditions
> and I am stuck with it. Any help will be greatly appreciated.
>

you have more options here.

1) your proposed method:

from yade import pack
pred = pack.inAlignedBox((0,0,0),(2,2,2))
spheres = pack.randomDensePack(pred,radius=.1,spheresInCell=200)
O.bodies.append(spheres)
#
nx,ny,nz,d = 1.,1.,0.,-3 # for plane equation nx*x+ny*y+nz*z+d=0
for b in O.bodies:
p = b.state.pos
if nx*p[0]+ny*p[1]+nz*p[2]+d>0: # p is on positive halfspace of
plane nx*x+ny*y+nz*z+d=0
O.bodies.erase(b.id)
#
from yade import qt
qt.View()

you can use any geometric condition you want, instead of mere halfspace
check

2) you don't need to erase particles using pack.inGtsSurface, have a look
at documentation [1,2] and examples [3]. gts surface can have arbitrary
shape and can be constructed using python scripting, not only with file
loading.

>
> In another topic, I am struggling with the size of the spheres as well. If
> you have any comment that points me in the right direction it will be
> excellent. Thanks in advanced.
>

Does documentation (and radius parameter) help [4]? If not, please be more
specific on "struggling with the size of the spheres".

cheers
Jan

[1] https://yade-dem.org/doc/user.html#boundary-representation-brep
[2]
https://yade-dem.org/doc/yade.pack.html#yade._packPredicates.inGtsSurface
[3]
http://bazaar.launchpad.net/~yade-pkg/yade/git-trunk/view/head:/examples/gts-horse/gts-horse.py
[4] https://yade-dem.org/doc/yade.pack.html#yade.pack.randomDensePack

Revision history for this message
Mario Reyes (ernestoreyes561) said :
#2

Thanks so much, I did not think in the plane equation, that solved that part of my problem. Sorry I was not more specific with the size of the spheres. I have been reading some papers on modeling of materials using DEM and I have seen that a "scale factor" is used, related to the ratio of the real size of the particles and the size in the simulation. In my case I am working with a sandy soil and the particle size is around a few milimiters, which is computationally too intensive. In Cathalano thesis, the scale factor is calculated with the results of DEM triaxial tests, where the particle radii is increased in such way that the forces in the walls are equal to the chosen confining stress. I have compacted the material using the function randomDensePack, but I am not sure if that approach is adequate or if I have to compact the material using triaxial tests. That is related to the particle size as well.

Any comment will be of great help.

Thanks again.

Revision history for this message
Mario Reyes (ernestoreyes561) said :
#3

Thanks Jan Stránský, that solved my question.