← Back to team overview

yade-users team mailing list archive

Re: Packing with specific PSD and porosity


> For preparing the sample, it's a bit complicated now because we want
> to use sample with designated grain size distribution and porosity.
> Can Yade create a sample which has specific grain size distribution
> and porosity?  What i did was, i wrote a program to put particles into
> a domain, the same size of the real sample, allowing some overlap
> between particles.  Then in the simulation i set a higher viscosity
> (to prevent from 'explosion' of the particles) and zero friction so
> that the particles will move to the position.  I monitor the kinetic
> energy till it's very low.  If this works, then very soon I can
> calibrate the coefficient.

Hi Jesse, welcome on board! Other people might be better able to reply
to this particular problem, but I will try at least.

In Yade, you would generate non-overlapping sphere cloud satisfying the
desired particle size distribution (PSD); the function for that is
SpherePack.makeCloud (for piecewise-constant probability density
function, giving piecewise-linear distribution) or SpherePack.particleSD
(for probability density as union of Dirac functions, giving staircase

The next step is to compress the packing up to the point where the
desired porosity value is attained (this step must be currently scriped
using a few lines of python code). You can play with friction of
particles in the step; with zero friction, you will obtain dense
packing, whereas higher friction will create loose packing (friction
prevents spheres from re-arranging).

The resulting packing will have non-zero overlaps between spheres (some
would say it is not "stress-free"). One cannot prescribe PSD, porosity
and desired overlap at the same time, since they are not orthogonal
(they are all geometrical characteristics).

I think Chiara has some script she could perhaps send you over, to have
a look at the procesure described. If there is general interest in such
a functionality, it can be factored out into a function in yade.pack as

HTH, Vaclav