← Back to team overview

yade-users team mailing list archive

[Question #696912]: granular collapses (deposition)

 

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.