yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #12567
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.