Particlles Packing Periodic boundary PSD

Asked by Ali Naseri on 2012-02-14


I would like to make a particle packing with overlaps with certain particle size distibution and periodic boundary conditions and certain porosity. For my first packing, I used Triaxial test controller played with the parameters and created a sample with overlaps but I assume that the boundaries are not periodic and the particles follow a uniform size distribution. Now 2 questions ,Can I use makecloud with certain PSD and then use triaxial test to creat packing with overlaps? or Can I use randomPeripack ,how can I make overlaps with that ,how can I change PSD? a syntax example would be ideal triaxial test example on' YADE Example" section gives error so it is not helpful.

Thanks alot,

Question information

English Edit question
Yade Edit question
No assignee Edit question
Solved by:
Ali Naseri
Last query:
Last reply:
Christian Jakob (jakob-ifgt) said : #1

> Can I use makecloud with certain PSD and then use triaxial test to creat packing with overlaps?

Try this in your script:

x_cl = 0 #lower x coordinate in front
y_cl = 0 #lower y coordinate in front
z_cl = 0 #lower z coordinate in front
x_cu = 0.0025 #upper x coordinate in back
y_cu = 0.005 #upper y coordinate in back
z_cu = 0.01 #upper z coordinate in back

#diameter at the borders of the classes from lowest to highest in [m]:
dia = [0.000063, 0.00009, 0.000125, 0.00018, 0.00025, 0.000355, 0.0005, 0.00071, 0.001, 0.002]

#one-hundredth of volume-percent of classes out of sieve analysis:
phi = [0.,0.0004, 0.005, 0.0284, 0.1751, 0.6408, 0.9294, 0.9935, 0.9999, 1.0]

O.bodies.append([utils.sphere(center,rad,material=SphereMat) for center,rad in sp])

hope it helps ;)

Ali Naseri (artnaseri) said : #2

Thanks, your code is very helpful , but what I would like to add to this is the compression engine to get a compact packing with 0.3 porosity so I added this code but I'm not sure about the syntax, The code added to the above code is

from yade import wrapper
 yade.wrapper.TriaxialCompressionEngine( currentState=4,fixedPorsity=0.3)

I don't know how to make wrapper to work on the code provided in the answer above so I get a packing with overlaps and the desired porosity

Note that "yade.wrapper.TriaxialCompressionEngine( currentState=4,fixedPorsity=0.3)"
is doing nothing. It instantiate an object, which then disappear (just like if you could type "double" alone in a c++ line).
TriaxialCompressionEngine is not for PBC actually. So, I doubt it will help you anyway.

Did you check the periodic-triax examples in scripts/test?

Ali Naseri (artnaseri) said : #4