← Back to team overview

yade-users team mailing list archive

Re: [Question #313648]: randome dense packing in a cylinder with a wire on its axis-howto?

 

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

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Jeff,

I am new to Yade


welcome :-)

You can define the predicate as a difference of two cylinders [1]. If the
gap between inner wire and inner particles is too big, then you would have
to use different initial packing method than random dense pack.

####################
pred = pack.inCylinder((0,0,0),(0,0,length),rOut) -
pack.inCylinder((0,0,0),(0,0,length),rIn)
sp=pack.randomDensePack(pred,radius=rS,returnSpherePack=True)
sp.toSimulation()
####################

cheers
Jan

[1] https://yade-dem.org/doc/user.html#boolean-operations-on-predicates


2016-08-01 14:13 GMT+02:00 Jeff <question313648@xxxxxxxxxxxxxxxxxxxxx>:

> New question #313648 on Yade:
> https://answers.launchpad.net/yade/+question/313648
>
> Hi All
>
> I am new to Yade and this is my first post.
>
> I am trying to generate a random dense packing in  a cylinder with  a fine
> wire on its axis:
> my problem : the wire size being much smaller than the sphere diameter,
> the spheres overlap it completely and make it "useless as such"
> Can someone could provide some advice for improving this packing...? ( I
> would like the sphere against the wire not inside..)
> Thanks a lot
>
> JF
>
> the instructions I use are pretty simple ( copied and slightly adapted
> from some example):
>
> ###geometry definition
> rIn=0.75 # wire radius
> rOut=13 #cylinder radius
> length=320 # cylinder length
> rS=2.6 #sphere radius
>
> poly=((rIn,length),(rOut,length),(rOut,0),(rIn,0),(rIn,length))
> thetas=arange(0,2*pi,pi/24)
> pts=pack.revolutionSurfaceMeridians([[(pt[0],pt[1]) for pt in poly] for
> theta in thetas],thetas)
>
> surf=pack.sweptPolylines2gtsSurface(pts,capStart=True,capEnd=True,threshold=1e-2)
> ### add surface to the simulation
> O.bodies.append(pack.gtsSurface2Facets(surf,color=(1,0,0)))
> #####generate the packing and add it to the simulation
> sp=SpherePack()
>
> sp=pack.randomDensePack(pack.inGtsSurface(surf),radius=rS,returnSpherePack=True)
> sp.toSimulation()
>
>
>
>
>
>
>
> --
> 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.