Particle size distribution

Asked by Christian Johansson

Dear esys developers and community,

I successfully installed esys particle 2.0 and have made the tutorials. Great code, many thanks. I'm interested in studying angle of repose for particle samples of different size distributions. The single most constraining capacity of esys is then of course that I can't specify a size distribution in the packer modules. How can I come around this? Is it possible, e.g., to script the creation of many single particles with different specific radii?

Kind regards

Question information

Language:
English Edit question
Status:
Answered
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Dion Weatherley (d-weatherley) said :
#1

Hi Christian,

Thanks for your interest in ESyS-Particle and your question.

It is indeed sometimes inconvenient to construct particle samples with a specific size-distribution. The particle packing algorithm is not easily adapted to this purpose, however that algorithm can be applied to construct a broad range of complex particle samples. A new python module called LSMGenGeo will be released in the new few months that will attest to that. This new module will not address your specific concern regarding size-distributions.

To the best of my knowledge there are no generic geometrical algorithms for generating particle assemblies with a specified size distribution. I have experimented recently with a few ideas but have only a prototype I am not ready to release until the work is published. Sorry about that.

In addition to geometrical packing algorithms, there are a number of algorithmic techniques utilised by various DEM practitioners over the years. Algorithmic techniques involve executing a simulation to achieve an initial particle sample e.g. adding particles to a box and letting them settle under gravity.

For your purposes, perhaps one method would be insert particles at random locations one-by-one into a simulation with fixed walls on all sides of a cube. You can use the sim.createParticle(..) method described in the Tutorial called bingle.py to insert particles of specified radii. Of course many of the particles will overlap one-another so specify NRotElastic interactions between unbonded particles with a relatively high stiffness (normalK). You will also need to add viscosity (as described in gravity.py) to damp the motion of particles so they do not escape from the simulation. Then run a simulation and record the total kinetic energy of the particle assembly (e.g. via a FieldSaver). Eventually the particles will reach an equilibrium packing and the kinetic energy will drop to a near constant low value. Finally write out the locations of all particles to a file and use this file to construct your particle sample for your angle-of-repose simulations.

Whilst not ideal, algorithmic techniques can help when you require a particle sample with specific properties such as size-distribution or range of densities. It can be difficult at times to perfect a simulation to achieve a desirable packing though.

Good luck and have fun with ESyS-Particle!

Cheers,

Dion.

Revision history for this message
Jessica (jescarish) said :
#2

Hello!!

Regarding with the particle size distribution, suppose I have particle radius ranging from 0.1mm-011mm. What is smallest next particle radius to 0.1mm or what is the smallest particle size present between the given range?

Jessica

Revision history for this message
Dion Weatherley (d-weatherley) said :
#3

Hi Jessica,

I'm not sure I understand your question. If you are asking about the distribution of particle sizes one obtains from LSMGenGeo, then here's a rough answer:

Since LSMGenGeo uses a space-filling packing algorithm, the distribution of particle sizes tends towards a power-law (i.e. fractal) within the specified particle size range. For a sufficiently broad range of sizes and large enough volume, the fractal dimension approaches D=3 i.e. the fractal fills 3-dimensional space. If you use a narrow range of sizes, LSMGenGeo is not so efficient and you will tend to get a fairly flat, uniform distribution of particle sizes with somewhat of a bias towards smaller particles.

In case you were really asking about the specific radii of particles inserted by LSMGenGeo. LSMGenGeo does not select particles for insertion from discrete bins. Particles can have any radius at all, as long as it is within the specified maximum range of sizes. LSMGenGeo seeks holes to fill with particles then expands a particle to fill that hole. If the particle radius lies in the specified range, the particle remains. If not, LSMGenGeo will try again to find a hole to fill.

I hope this helps. If not, please feel free to ask more questions!

Cheers,

Dion.

Revision history for this message
Jessica (jescarish) said :
#4

Hello Sir Dion!!!

Thank you so much for the answers!! That solved my problem. =)

Can you help with this problem?

Provide an answer of your own, or ask Christian Johansson for more information if necessary.

To post a message you must log in.