yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #12556
[Question #292846]: Particle packing - How to avoid overlap
New question #292846 on Yade:
https://answers.launchpad.net/yade/+question/292846
I am generating a pack of spheres (lets call them aggregates), using makeCloud. Each of those spheres consists of a packing of smaller particles glued together using cohesive material model. I am using randomDensePack to generate this packing of particles within each sphere.
Now, when I visualize the packing, I notice that sometimes there is an overlap between the particles of two different aggregates. I want to avoid this, since it results in internal stresses in the initial condition. Is there a better way to generate this kind of packing ?
Here is the minimal working example script:
from yade import pack,qt,plot,utils,export,ymport
from math import *
#############################################################################
# Set up run
#############################################################################
run_name="test_aggregates"
data_root_dir="."
#############################################################################
# Materials
#############################################################################
sample_material=CohFrictMat(
young=4e9
,poisson=0.25
,density=1400
,frictionAngle=radians(30)
,normalCohesion=1e8*1.2
,shearCohesion=.4e8*1.2
,momentRotationLaw=True
,label='sample_mat')
O.materials.append(sample_material)
#############################################################################
# Component dimensions and operating condition
#############################################################################
# Sample dimension
sample_radius=5e-4
# Sub-particle dimension
particle_radius=2.5e-4
#############################################################################
# Geometry
#############################################################################
xExt=4*sample_radius
yExt=4*sample_radius*2
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
#############################################################################
# Particle Packing
#############################################################################
min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)
sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False)
print "Generated ",len(sp)," aggregates"
###########################################
# Sample
###########################################
for s in sp:
sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
sp1=pack.randomDensePack(
sphere
,spheresInCell=2000
,radius=particle_radius
,memoizeDb='/tmp/triaxPackCache.sqlite'
,returnSpherePack=True
)
sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
print 'Generated ',len(sp1),' particles'
Gl1_Sphere(stripes=True)
Thanks
Varun
--
You received this question notification because your team yade-users is
an answer contact for Yade.