New question #696912 on Yade:
https://answers.launchpad.net/yade/+question/696912

Hello,

First of all, I want to thank the YADE community for allowing those (like me) 
new to simulations to have access to this excellent program.

I am creating a code based on the gravity deposition example shown on the 
official YADE page to learn a little bit. I added some modifications, such as 
dropping three-grain samples of different sizes and filtering the initial 
arrangement in order to have a cylindrical shape. However, I would like to 
simulate something closer to a deposition experiment, that is, to separate the 
simulation into two parts:

1.- Generate a cylinder and deposit the grains inside. This has an associated 
stabilization time in which all the particles settle and the system is at rest.
2.- Once this happens (i.e., all the grains stop), I remove the cylindrical 
container and allow the granular column to flow.

Below is my code that allows observing the collapse of the granular cylinder 
with the drawback that the grains are not deposited in a cylinder, but simply 
created in a cylinder shape. 

------------------------------
------- CODE -----------
------------------------------
#!/usr/bin/python
# -*- coding: utf-8 -*-

# import yade modules that we will use below
from yade import pack, plot

# characteristics of the spheres and walls
O.materials.append(FrictMat(density=1800,young=50e6,poisson=0.2,frictionAngle=radians(36),label='sphereMat'))
O.materials.append(FrictMat(density=600,young=5e6,poisson=0.2,frictionAngle=radians(40),label='wallMat'))

# create rectangular box from facets
O.bodies.append(geom.facetBox((0,0,0),(4,4,2),wallMask=31,material='wallMat'))

# create empty sphere packing
# sphere packing is not equivalent to particles in simulation, it contains only 
the pure geometry
sp=pack.SpherePack()

# generate randomly spheres with uniform radius distribution
sp.makeCloud((-0.25,-0.25,-2.0),(0.25,0.25,-1.0),rMean=0.05,rRelFuzz=0.01),
sp.makeCloud((-0.25,-0.25,-1.0),(0.25,0.25,0.0),rMean=0.03,rRelFuzz=0.01),
sp.makeCloud((-0.25,-0.25,0.0),(0.25,0.25,1.0),rMean=0.02,rRelFuzz=0.01)

# filter and create a cylindrical array
pred=pack.inCylinder((0.0,0.0,-3),(0.0,0.0,2),radius=0.3)
sp2 = pack.filterSpherePack(pred,sp,returnSpherePack=True)
# add the sphere pack to the simulation
sp2.toSimulation(material='sphereMat')

O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
        InteractionLoop(
                # handle sphere+sphere and facet+sphere collisions
                [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
                [Ip2_FrictMat_FrictMat_FrictPhys()],
                [Law2_ScGeom_FrictPhys_CundallStrack()]
        ),
        NewtonIntegrator(gravity=(0,0,-9.81),damping=0.0),
]
O.dt=.5*PWaveTimeStep()

O.saveTmp()
-------------------------------------------

Thank you very much, any help is welcome!!


-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to