Franck Lominé

Professional website

Laboratory of Civil and Mechanical Engineering

  • Internal erosion
  • Geomaterials
  • Hydrodynamics
  • Numerical simulations

Sphere packing creation with Powell's algorithm

In order to simulate flow of particles through a porous medium, it is necessary to generate random packings of spheres. Several models exist to build numerical stable packings with a controlled porosity. We have chosen the Powell's algorithm (Powell, 1980).

Packing example

Figure 1: Packing of 70 000 spheres obtained with Powell's algorithm.

A set of three spheres, each in contact with the others, is placed in a lower corner of a parallepipedic box. This cluster constitutes the starter which will permit to grow the packing in the three space directions. The bottom layer is constituted with random diameter beads in contact with the box base and that have two contacts with other spheres already placed. New spheres are added up to the time where the bottom layer is fully occupied. All packing sphere diameters are chosen around a mean value with a small dispersion.
Then, begins a new phase in which each new sphere is placed in contact with three other spheres already in place. We randomly choose the radius of the new sphere as described above. This sphere will be placed by selecting randomly a group of three neighboring spheres in the underlying layer.

Then, the program check that the sphere does not overlap any other sphere of the packing. If this condition is met, then the position of the new sphere is accepted. The constraint coming from the contact with three other spheres at lower position guarantees the final stability of the packing. If there is an overlap with another sphere, this new sphere position is invalidated and the program seeks other candidates to ensure contacts for the placement.

The global packing fraction is controlled by imposing a limitation on the height of newly added spheres. This height has to be located in a given range of altitude which corresponds to a working area. The height of this zone is about the fifth of the grain size. For each new sphere that we want to place, we carry out several tests of positioning and according to the packing fraction that we want to reach, the number of tests will be adjusted: a denser packing needs more tests in order to select the lowest possible position. The program will repeat this loop until no more position remains available for a given working layer. Then it moves the working layer up by a small amount and the process is repeated until the top of the given box is reached. A complementary box definition improvement can be made to build packings with periodic lateral conditions. An example of disordered packing made with Powell’s algorithm is shown in figure 1.

density profile

Figure 2: Example of compacity profile of a packing obtained with Powell's algorithm.

This algorithm models to some extent sphere depositions under gravity, which corresponds rather well to the method used for the experimental preparation of our packings: both the porous one made with large spheres and the packing made with the small beads.
Figure 2 shows a typical example of density profile of a packing obtained with the Powell's algorithm. The packing fraction Φ of the packing is about 60 % which leads to a porosity of 40 %. To simulate the experiment of flow of particles through a packing of larger spheres, the program generates two random packings: one for each kind of beads. Figure 3 illustrates the positioning of the packing of small spheres above the porous medium.

figure 3

Figure 3: Illustration of the positioning of the packing of 20 000 small spheres above the porous medium.