← Back to team overview

yade-users team mailing list archive

Re: [Question #292846]: Particle packing - How to avoid overlap

 

Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Varun,
there was a bug in pack.inSphere predicate. The fix is committed to the git
repository. How did you install yade?
cheers
Jan


2016-04-29 20:21 GMT+02:00 VG <question292846@xxxxxxxxxxxxxxxxxxxxx>:

> 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.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

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