S. Cardie*,
Department of Mechanical Engineering,
University of Leeds,
Woodhouse Lane,
Leeds, U.K.
*SC is now with the Department of Materials Science and Metallurgy, University of Cambridge.
Provides a suite of routines for analysing randomly-packed particle beds.
Language: | FORTRAN |
Product form: | Source code |
Complete program.
Random packings of particles (regular and irregular) are used to model the behaviour of a wide variety of phemomena, ranging from arrangements of metal particles in green compacts for sintering to pulverisation of coffee granules. Over the course of time, a set of analytical tools have been developed to aid the examination of both computer models and experimental simulations[1].
MAP_UTIL_CIRCLE contains routines which allow the user to analyse the characteristics of randomly-packed particle beds :-
xtract | Isolates a user-specified inner area of the simulation 'box', in order to minimise edge effects. This is necessary because the model produced by MAP_POLY_DROPS assumes that the particles are being dropped into a container with rigid sides; the packing behaviour of particles stacked in this way is markedly different than for infinite packings[6]. |
circl | A very simple routine which creates a data file in a suitable format for viewing with a graphics package like GNUPLOT or UNIGRAPH. Output is to data file 'circles.dat' |
fract | Calculates a range of packing fraction statistics, writing the results to data file 'areabox.out'. The routine was primarily intended to assess local variations in packing fraction, and works by sampling a number of relatively small regions of the packing at random. Packing fraction characteristics for each are calculated, then an overall average is computed from these results. The number of separate samples taken is set using the constant MC_runs, and could be changed by altering the value of this constant, then re-compiling the program. Similarly, the size of the sampling box is set by the constant box. |
coor | Calculates average co-ordination number. A particle is assumed to be in contact with a nearest neighbour if their separation distance is less than or equal to the sum of their radii and a small error factor. The error factor is given by constant Rerror, initally set to one hundreth of the mean particle size. Output is to data file 'coord.out'. |
grcal | Calculates radial distribution function, G(r) [2,3]. Writes the results to data file 'count.out'. |
nbr | Produces a histogram giving average number of nearest neighbours per particle, and overall number average nearest neighbours. results are written to data file 'coord.out'. |
vrn | Creates a data file which can be used to give a graphical representation of the Voronoi polyhedra [4,5] for the random packing. Output is to data file 'cell.out'. |
Routines are chosen by setting the switches in a configuration file (nominally called 'circle.opt', using the convention that '0' is 'off' and '1' is 'on'. An example version of 'circle.opt' is provided with the distribution.
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 is from a data file, nominally 'position1.dat'.
Output is to data files, and is dependent on the options selected.
None.
No information supplied.
This program is part of a group, including MAP_POLY_DROPS.
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 [7]. 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.
Complete program.
Input is from a data file, nominally 'position1.dat'
Contents of 'circle.opt' :-
position1.out 0 1 1 1 !! xtract, circl, coor, fract !! 1 1 1 !! grcal, nbr, vrn !!
Output is to data files, depending on options selected.
None.
random packing, statistical analysis, voronoi polyhedra
MAP originated from a joint project of the National Physical Laboratory and the University of Cambridge.
MAP Website administration / map@msm.cam.ac.uk