Generation of a sphere packing by growing

JF's picture
Submitted by JF on Fri, 06/18/2010 - 12:16

Hi evereyone,

I have a naive question. I try to generate a random cubical sphere packing by iterative growing from a cloud of spheres.
But I have two problems :

1) I don't know, How can I indicate the growing increment at each step for the spheres.
2) I don't know, if it is possible to put this increment equal to zero when the solid fraction or the compacity reaches a fixed value.

if you have few indications to give me, please don't hesitate.

Thanks

Regards
Jf

JF's picture

JF | Fri, 06/18/2010 - 17:18

Hi Christoph,

Sorry for the bad description. I am trying to reproduce a dynamic algorithm which will generate a random packing of spheres.

Reference: Kansal A., Torquato, S., Stillinger, F.: Computer generation of dense polydisperse sphere packings. Chem. Phys. 117, 8212–8218 (2002)

Description of the algorithm :

Step 1: The spheres (with no contact) are placed inside a box using a random generation. In LIGGGHTS, the command "pour" places the spheres (a cloud of spheres) inside a region.

Step 2: The radii are gradually increased at a low constant rate until the system reaches a given solid fraction.

I hope this explanation is better than the first.

Regards
JF

ckloss's picture

ckloss | Fri, 06/18/2010 - 19:59

Hi JF,

ok, now I understand.

>>Step 1: The spheres (with no contact) are placed inside a box using a random generation.

Yes, in LIGGGHTS, the command "pour" places the spheres (a cloud of spheres) inside a region.
It is probably the best idea to use the new pour/dev command if you want polydisperse particles.
Currently, the particles are inserted in a way that the volume fraction is not constant over the height of the volume, but is in accordance with the z-velocity distribution as to mimic a continuously poured stream of particles.
I may include an option to change this in the next release (next week) so to imporve fix pour for generating packings .

>>Step 2: The radii are gradually increased at a low constant rate until the system reaches a given solid fraction.
I can send you a code snippet for that next week if you want

Alternatively, you can do the packing completely outside the simulation and use the read_data command to import the particles.

Cheers,
Christoph

JF's picture

JF | Sun, 06/20/2010 - 19:58

Hi Christoph,

Thanks for your proposition. I think that the add of this option will help the users who use the DEM for other things than the flow of particles.

Concerning the code snippet, I don't know this kind of code. But please, send it to me, I'll see that I can do.

For the alternative solution, I already use a sequential DEM code in C++. But I would want to use LIGGGHTS efficiency in order to generate large spheres packing (500.000 spheres).

Best regards
Jf

ckloss's picture

ckloss | Mon, 06/21/2010 - 08:54

Hi JF,

LIGGGHTS 1.1 will contain a feature to grow particles successively and an example.

>>But I would want to use LIGGGHTS efficiency in order to generate large spheres packing (500.000 spheres).
That should be possible

Christoph

cstoltz | Mon, 06/21/2010 - 12:05

In case of interest, Aleksander Donev has made available some of the molecular dynamics codes he created working with Torquato and Stillinger at Princeton for generation of dense, polydisperse sphere packings. There is also a version for handling ellipsoids.

http://cims.nyu.edu/~donev/

Best regards,
Chris

JF's picture

JF | Mon, 06/21/2010 - 14:50

Hi Christoph,

Thank you so much for this very good new, I will be waiting the realease 1.1 with all these news options.

Best regards
Jf

Ps: Thanks for the link.

ibk | Mon, 06/21/2010 - 20:31

Hi JF,
hi Christoph,

to create microstructure with certain, or maybe with graduate initial tension/compresion it is good to have the possibility to control the succesive increasing of radii.
JF, it is the question what do you need. If you need structure with very high density you may use "Apollonian packing" or something like that, but normally you get problems with the stability or you need very small timestep.
I need the possibility to call each sphere and to ask the tensor of this sphere to decide if the radii schould be decreased or increased in order to get proper state of the initial tension state of the structure.
Christoph, I dont know what options do you arrange according this problems but it would be great if one could ask certain sphere according the corresponding property. I mean for example something like this:

if radius > 12 then kn = 1e8

it means to control the microproperty of spheres in condition of other propertis.

Michal

JF's picture

JF | Mon, 06/21/2010 - 23:32

Hi Michal,

Thanks for your message. In my case, the sphere packing must respect a given sphere size distribution. So, if the radius of a sphere is increased or decreased in according to the stress applied on this sphere, then it will be impossible to respect it.

Concerning the stability, a sphere packing with a medium density (solid fraction= 0.60-0.64) can reach the stability (Kinetic energy is close to zero) in according to the friction coefficient.

To access at the tensor of each sphere during the simulation, I cannot help you, I am sorry. But if the user can access at this kind of this property, it would be intersting.

Regards
Jf

ckloss's picture

ckloss | Tue, 06/22/2010 - 13:46

Hi JF and Michal,

the feature to be released with 1.1 will work similar to what JF describes, so you can reach a given packing density with a given diameter distribution

The things Michal talks about are a little bit more tricky - this is nothing to do instantly - I am happy to discuss this with you. Michal, if you like, a feature like the one you describe could be your project for the course in September in Linz.

Christoph

ckloss's picture

ckloss | Tue, 06/29/2010 - 17:52

Hi Michal and JF,

try version 1.1 - the example packing may do something similar to what you want

Christoph

ckloss's picture

ckloss | Mon, 06/21/2010 - 08:56

Hi Michal,

the LIGGGHTS multisphere feature is currently in the works...

Christoph