[MAP Logo]

Materials Algorithms Project
Program Library


  1. Provenance of code.
  2. Purpose of code.
  3. Specification.
  4. Description of subroutine's operation.
  5. References.
  6. Parameter descriptions.
  7. Error indicators.
  8. Accuracy estimate.
  9. Any additional information.
  10. Example of code
  11. Auxiliary subroutines required.
  12. Keywords.
  13. Download source code.
  14. Links.

Provenance of Source Code

S. Cardie*,
Department of Mechanical Engineering,
University of Leeds,
Woodhouse Lane,
Leeds, West Yorks., UK

Email: sc248@cus.cam.ac.uk

*SC is now with the Department of Materials Science and Metallurgy, University of Cambridge.

Top | Next


MAP_POLY_DROPS creates a randomly packed two-dimensional bed of circular particles. Output from this program can be used as the input to a sintering simulation model [1].

Top | Next | Prev


Product form:Source code

Complete program.

Top | Next | Prev


MAP_POLY_DROPS uses the well-established random raindrop algorithm [2,3]. In such schemes, particles are dropped randomly on a vertical trajectory into an imaginary container (usually modelled as a two-dimensional box). Each particle is dropped from an arbitrary height well above the maximum height of the simulation box; the 'width' co-ordinate is chosen randomly. Contact 'rules' are as follows :-

  1. Descending particles cease all movement upon contacting the bottom of the box.
  2. A descending particle which strikes a stationary particle attempts to minimise its vertical co- ordinate by rolling round the circumference of the stationary particle, and of any subsequent particles with which it comes into contact. Movement ceases when no further downward movement is possible.

Three different particle distribution schema are represented, selected by setting the input parameter type to integer values 1, 2 or 3 :-

1. Bimodal distribution.
Input parameter sigma represents the number ratio of large to small particles.
mean_u and mean_l represent, respectively, the upper and lower mean particle radii for the bimodal distribution. Setting these parameters to the same value will give a single particle size. The units are arbitrary.
2. Normal (or Gaussian) distribution.
Input parameter sigma represents the standard deviation of the distribution.
mean_u represents mean particle radius for the normal distribution. The value of mean_l is ignored. The units are arbitrary.
3. Beta distribution.
The beta distribution function parameters, a and b, are read in from a text file, nominally 'beta.inp'. Note that this is not required if the beta distribution is not used.
mean_u represents mean particle radius for the beta distribution. The value of mean_l is ignored. The units are arbitrary.
sigma is not used with the beta distribution.

The suitability of the beta distribution function for modelling particle size distributions in real systems has been discussed in detail by Popplewell et al [4].

The output from this program is intended to be used as input to a sintering simulation model. This model will be added to MAP in due course. The program MAP_UTIL_CIRCLE has been written to provide statistical analysis of the output from MAP_POLY_DROPS.

The output file (nominally called 'position1.out') consists of partmax+1 rows of data; row 1 gives partmax, or the number of particles in the simulation, if this is less than partmax. Rows from 2 onwards contain five columns :-

Column 1 is a particle identifier.

Columns 2 and 3 are x and z coordinates respectively.

Column 4 is particle radius.

Column 5 is particle orientation (not used in this implementation of MAP_POLY_DROPS.

Top | Next | Prev


  1. S. Cardie, PhD Thesis, Department of Mechanical Engineering, University of Leeds, 1997 (in preparation).
  2. W.M. Visscher and M. Bolsterli, Random Packing of Equal and Unequal Spheres in Two and Three Dimensions, Nature, 239 (10) 504-507, 1972.
  3. P. Meakin and R. Juillien, Restructuring Effects in the Rain Model for Random Deposition, J. Physique, 48 1651-1662, 1987.
  4. L.M. Popplewell, O.H. Campanella and M. Peleg, Simulation of Bimodal Size Distributions in Aggregation and Disintegration Processes, Chemical Engineering Progress, 85 (8) 56-62, 1989.
  5. W. Press, S. Teukolsky, W. Vetterling, and B. Flannery, Numerical Recipes in Fortran 77, Cambridge University Press, Cambridge, 1996

Top | Next | Prev


Parameters marked ** are not used in this program: they are included in the input and output files for compatibility with other, supporting, software packages.

Input parameters

Reads from an input file, nominally 'drops.dat'.

xmax - double precision
xmax specifies the maximum 'width' of the deposition area in arbitrary units.

zmax - double precision
zmax specifies the maximum 'height' of the deposition area in arbitrary units.

mean_u, mean_l - double precision
mean_u and mean_l specify various particle size parameters, depending on the deposition distribution chosen. See above for a full description.

sigma - double precision
sigma has different values depending on the particle distribution scheme chosen. See above for details.

dR** - double precision
dR defines the 'step' size for the particle pair distribution function, in arbitrary size units.

dRmax** - double precision
dRmax defines the maximum extent of the particle pair distribution function, in arbitrary size units.

inset** - double precision
inset sets an inner region of the simulation area for subsequent statistical analysis. Units are arbitrary size units.

partmax - integer
partmax sets the maximum number of particles in the simulation. The upper limit on partmax is currently set to 5000, but this can be changed by modifying the constant max in the program (which would necessitate re-compilation).

type - integer
type defines the particle size distribution to be used. See above for definitions.

epsilon** - double precision
epsilon defines particle shape; this feature is not implemented in this version of MAP_POLY_DROPS.

a, b - double precision
a and b are beta distribution function parameters. See above.

Output parameters

Output is to a data file, nominally 'position1.dat'.

x, z - double precision arrays of dimension 5000
x and z are the co-ordinates of the particles.

r - double precision array of dimension 5000
r is the radius of each of the particles, in arbitrary size units.

o** - double precision arrays of dimension 5000
o is the orientation of each of the particles.

Top | Next | Prev

Error Indicators


Top | Next | Prev


The degree of packing density can be altered by setting a tolerance variable; this allows for a trade-off between processing time and final packing density.

Top | Next | Prev

Further Comments

As originally written, the program contained calls to several NAG routines. These were principally random number generation routines of various type as follows :-

The source code supplied with this distribution has had calls to NAG routines replaced by calls to generic subroutines performing identical functions, as indicated above; users should supply their own code for these routines.

The program also makes use of a sort routine based on the heapsort routine originally published by Press et al [5]. Again, the supplied source code has had this routine removed, and users must supply their own sort routine. Any general purpose sorting routine will suffice.

Top | Next | Prev


1. Program text

       Complete Program.

2. Program data

Contents of file 'drops.dat'

55.0D0, 55.0D0,  1.0D0,  1.0D0   !! xmax, zmax, mean_u, mean_l          !!
0.5D0,  0.2D0,  20.0D0,  2.5D0   !! sigma(l:s), dR initial, max, inset  !!
2000,  1,  0.0D0                 !! partmax, type, epsilon              !!  

3. Program results

Output is to data file 'position1.dat'. This file can be viewed with a graphics package, for example gnuplot or unigraph, and the data are in the format described above.

Top | Next | Prev

Auxiliary Routines


Top | Next | Prev


random particle packing, sequential deposition model, sintering of polymers

Top | Next | Prev


Download source code

Top | Prev

MAP originated from a joint project of the National Physical Laboratory and the University of Cambridge.

MAP Website administration / map@msm.cam.ac.uk

Top | Index | MAP Homepage Valid HTML 3.2!