How to count number of particles in a fragment, connected by cohesive bonds
Hello,
I am trying to model crushing of aggregates of particles and look at the resulting fragment size distribution. The model consists of an assembly of spheres (each sphere is composed of constituent smaller particles) between the two plates. The top plate is subjected to a constant force and a velocity in lateral direction to induce shear.
As the simulation progresses, the cohesive bonds between the different particles start breaking resulting into individual particles and fragments of particles. How can I measure the number of such individual particles, fragments and the number of particles in each fragment ?
I want to do this to obtain the particle size distribution of the crushed sample.
Here is the minimal working example script:
from yade import pack
#######
# Set up run
#######
run_name=
data_root_dir="."
#######
# Materials
#######
plate_material=
young=200e9
,poisson=0.3
,density=8000.
,frictionAng
,label=
O.materials.
sample_
young=4e9
,poisson=0.25
,density=1400
,frictionAng
,normalCohes
,shearCohesi
,momentRotat
,label=
O.materials.
#######
# Component dimensions and operating condition
#######
# Granular material dimension
sample_
sample_
# Sub-particle dimension
particle_
particle_
#######
# grinding plate dimension
#######
rotvel=
#######
# Periodic Geometry
#######
# Set up periodic boundary conditions
O.periodic=True
xExt=4*
yExt=3.
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
O.cell.
xExt, 0, 0,
0, yExt, 0,
0, 0, zExt)
length=xExt
height=yExt
width=zExt
# Top and bottom plate thickness
thickness=
bottomBoxes = []
for ix in (0,1,2):
for iz in (0,1,2):
bottomBoxes.
center=
,extents=
,wire=False
,material=
))
bottom_
O.bodies[
#######
# Particle Packing
#######
min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)
sp=pack.
sp.makeCloud( min_corner,
print "Generated ",len(sp)," aggregates"
#######
# Sample
#######
for s in sp:
sphere=
sp1=pack.
sphere
,spheresIn
,radius=
,memoizeDb
,returnSph
)
sp1.toSimulat
print 'Generated ',len(sp1),' particles'
Gl1_Sphere(
#########
# Top
#########
topBoxes = []
for ix in (0,1,2):
for iz in (0,1,2):
topBoxes.
center=
,extents=
,wire=False
,material=
))
top_id,top_ids = O.bodies.
O.bodies[
plate_downforce
O.forces.
O.bodies[
#######
# Run the simulation
#######
O.dt=0.
O.engines=[
ForceResetter(),
InsertionSort
Bo1_
,Bo1_Box_Aabb()
], allowBiggerThan
),
InteractionLoop(
[Ig2_
,Ig2_
],
[Ip2_
,Ip2_
],
[Law2_
,Law2_
]
), # End InteractionLoop
NewtonIntegra
]
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask VG for more information if necessary.