← Back to team overview

yade-users team mailing list archive

[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.