How use pack.randomDensePack to obtain spheres that touch each other to make the volume really dense?

Asked by Noelia Valderrama

Hi everyone,

I'm beginner in Yade. I woul like to obtain a trapeze surface that I created in GTS. From the "horse" script I modified some properties to obtain a surface that when applied the force of gravity (in direction and of my script) does not generate gaps in the trapezoidal volume. Thank you for the information or suggestions !
...
if surf.is_closed():
 pred=pack.inGtsSurface(surf)
 aabb=pred.aabb()
 dim0=aabb[1][0]-aabb[0][0]; radius=dim0/40. # get some characteristic dimension, use it for radius
# O.bodies.append(pack.regularHexa(pred,radius,gap=radius/4.))
 Mat1=O.materials.append(FrictMat(young=1e7,poisson=0.2,density=2500,frictionAngle=radians(30))) #Declarando el material de las esferas
 #O.bodies.append(pack.randomDensePack(pred,spheresInCell=1000,dim=None, radius=0.05,rRelFuzz=0.05,material=Mat1))
 #surf.translate(0,0,-(aabb[1][2]-aabb[0][2])) # move surface down so that facets are underneath the falling spheres
 sp=pack.randomDensePack(pred,spheresInCell=2000,radius=0.01,rRelFuzz=0.005,memoizeDb=None,returnSpherePack=True,material=Mat1)
 sp.toSimulation()
Mat2=O.materials.append(FrictMat(young=1e6,poisson=1,density=1e2,frictionAngle=radians(0))) #Declarando el material de la superficie gts
O.bodies.append(pack.gtsSurface2Facets(surf,material=Mat2,wire=True))

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()],label='collider'), #Sirve para decir cuales son las esferas que estan una al lado de otra de acuerdo a lo que se requiere
 InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()], # Que tipo de interaccion existe
  [Ip2_FrictMat_FrictMat_FrictPhys()], #Ley par material friccionante
  [Law2_ScGeom_FrictPhys_CundallStrack()], #Ley de contacto entre esferas
 ),
 NewtonIntegrator(damping=.1,gravity=[0,-9.81,0]), #Gravedad en Y
 PyRunner(iterPeriod=2000,command='timing.stats(); O.pause();'),
 PyRunner(iterPeriod=100,command='addPlotData()')
...

Question information

Language:
English Edit question
Status:
Expired
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.