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 : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp