Cylindrical loose sphere pack

Asked by Francesco

Hello,

I need to generate a loose pack of spheres with a specific Particle Size Distribution (psd).
I identified the .makeCloud function as the most suitable for my need.

Unfortunately, I need to fill a cylindrical body and the .makeCloud function allows only to create a spheres pack contained into a box.
The other options as the function .randomDensePack combined with pack.inCylinder allow to create a cylindrical spheres pack but do not permit to specify the PSD.

Essentially I would need the properties of the function pack.inCylinder for the shape of my pack, but the possibility to specify the PSD guaranteed by the .makeCloud function.

So I would like to ask you if it is possible to obtain a cylindrical pack of spheres imposing a specific Particle Size Distribution.
Thank you.

Best regards,

Francesco

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Francesco
Solved:
Last query:
Last reply:
Revision history for this message
Robert Caulk (rcaulk) said :
#1

Hello Francesco,

I think you can do this quite easily with filterSpherePack [1].

so you would use makeCloud as usual, and then filter it according to your desired cylinder predicate:

from yade import pack
psdSizes,psdCumm = [0.02,0.04,0.045,0.05,0.06,0.08,0.12],[0.,0.1,0.3,0.3,0.3,0.7,1.]
sp = pack.SpherePack();
sp.makeCloud((0,0,0),(1,1,1),psdSizes=psdSizes, psdCumm=psdCumm,distributionMass=True, num=20000)
pred=pack.inCylinder((0.5,0.5,0),(0.5,0.5,1),radius=0.3)
sp2 = pack.filterSpherePack(pred,sp,returnSpherePack=True)
sp.toSimulation()

Cheers,

Robert

[1]https://yade-dem.org/doc/yade.pack.html#yade.pack.filterSpherePack

Revision history for this message
Robert Caulk (rcaulk) said :
#2

sp2.toSimulation()*

Revision history for this message
Francesco (pionificio) said :
#3

Hello Robert,

Thank you, your solution is exactly what I need!
I'm a beginner as regards Yade and I didn't understand the potentiality of pack.filterSpherePack.

Best regards,

Francesco