yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #15225
[Question #645503]: compressed packing of a small number of aggregates
New question #645503 on Yade:
https://answers.launchpad.net/yade/+question/645503
Hi There,
I am working on generating a compressed packing of aggregates. I am currently using /examples/agglomerate as a basis.
I am using makeClumpCloud to fill a cuboid with clumps which I generated. Then I would like to run them through /examples/agglomerate/compress.py and generate a dense packing of these aggregates.
I would like the method to work for just a few aggregates as well as for a larger number.
The result using just a few looks like http://pasteall.org/pic/index.php?id=116817
(When I generate a larger number of particles things look better http://pasteall.org/pic/index.php?id=116816)
As you see from the first image, there are fewer particles left after the compression. Why is this the case?
Does this have something to do with periodicity? Am I only seeing some of the particles? If so, how do I export all particles within my volume.
In case I am going about this wrong, how should I generate the packing of aggregates and then compress them such that I end up with a cuboid of packed aggregates (when the total number of particles is ~200)
many thanks in advance!
Jesse
the compress code is shown below.
from yade import export,ymport
import random
random.seed(1)
# add walls first
#dim = (15,15,15)
dim = (1e-6,1e-6,1e-6)
walls = aabbWalls(((0,0,0),(dim)))
wallIds = O.bodies.append(walls)
# load spheres from file, including information of their agglomerates ids
attrs = []
sp = ymport.textExt('/tmp/divided.txt',format='x_y_z_r_attrs',attrs=attrs)
n = max(int(a[0]) for a in attrs)+1
colors = [randomColor() for _ in xrange(n)]
agglomerates = [[] for _ in xrange(n)]
for s,a in zip(sp,attrs):
aa = int(a[0])
s.agglomerate = aa
s.shape.color = colors[aa]
agglomerates[aa].append(s)
for a in agglomerates:
O.bodies.appendClumped(a)
#getClumpInfo()
O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
TriaxialStressController(
thickness = 0,
stressMask = 7,
internalCompaction = False,
label = 'compressor',
),
NewtonIntegrator(damping=.6),
]
O.dt = PWaveTimeStep()
# compress the sample
compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-7
#compressor.goal1 = compressor.goal2 = compressor.goal3 = 1e-10
O.run(50000,True)
#compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-5
#O.run(30000,True)
# save the result, including information of agglomerates which the particle belongs to
export.textExt('/tmp/compressed.txt','x_y_z_r_attrs',attrs=['b.agglomerate'])
--
You received this question notification because your team yade-users is
an answer contact for Yade.