Issues in using psd to create a cloud of spheres
Hi all,
I have a code that generate a cloud of spheres and compress the cloud to a certain porosity. It works well when I make the cloud with specific radius and rRelFuzz. However, when I try to make the cloud with specific size distribution using psdSizes and psdCumm, the code run but the spheres will freeze and not compact. Can you please help and let me know what went wrong? My code is below.
Thank you,
Othman
----------
from yade import pack
targetp = .3 ##specify the targeted porosity
##specimen geometry
radiuscyl=.05
heightcyl=0.3
# material parameters
O.materials.
#######
sp=pack.
psdSizes=
psdCumm=
sp.makeCloud(
#sp.makeCloud(
#### cylinder extraction
pred=pack.
spFilter=
spFilter.
#######
facets=
cylinder=
yade.qt.View()
##creating disks
d1=geom.
d2=geom.
disk1IDs= O.bodies.append(d1)
disk2IDs= O.bodies.append(d2)
for i in disk1IDs:
body= O.bodies[i]
body.state.vel = (0,0,-10)
for n in disk2IDs:
body= O.bodies[n]
body.state.vel = (0,0,10)
#######
O.dt=.5*
enlargeFactor=1.5
O.engines=[
ForceResetter(),
InsertionSortC
Bo1_Sphere_
Bo1_Facet_Aabb()
]),
InteractionLoop(
[
Ig2_
Ig2_
],
[
Ip2_
Ip2_
],
[
Law2_
],
),
NewtonIntegrat
PyRunner(
]
O.run()
# reset interaction detection enlargement
bo1s.aabbEnlarg
def stop():
if utils.porosity(
O.pause()
print 'Finished'
for i in disk1IDs: O.bodies.erase(i)
for i in disk2IDs: O.bodies.erase(i)
for i in cylinder: O.bodies.erase(i)
print ('unbalanced forces = ', utils.unbalance
print ('cylinder dimensions = ', utils.aabbDim())
print ('porosity = ', utils.porosity())
print ('No. of spheres = ', len (O.bodies))
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Othman Sh
- Solved:
- Last query:
- Last reply: