Particlles Packing Periodic boundary PSD

Asked by Ali Naseri on 2012-02-14

Hi

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

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Ali Naseri
Solved:
2012-03-07
Last query:
2012-03-07
Last reply:
2012-02-24
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

#SET GRAIN DISTRIBUTION:
#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]

sp=pack.SpherePack();
sp.makeCloud((x_cl,y_cl,z_cl),(x_cu,y_cu,z_cu),psdSizes=dia,psdCumm=phi,distributeMass=True,porosity=0.42,num=6500)
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

thanks