Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] abzf_v1_0.gz(40 Kbytes)
Manuscript Title: C-language program for the irregular close packing of hard spheres.
Authors: M. Bargiel, J. Moscinski
Program title: NSCP3D
Catalogue identifier: ABZF_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 64(1991)183
Programming language: C.
Computer: IBM PC/AT.
Operating system: PC-DOS V3.10, DSI-020, V.3.30.
RAM: 350K words
Peripherals: disc.
Keywords: General purpose, Utility, Solid state physics, Other, Irregular close packing, Linked-list, Chaining mesh.
Classification: 4.14, 7.7.

Nature of problem:
The program can be used to simulate the irregular close packing of equal hard spheres in a cubic box with periodic boundary conditions, starting from the ensemble of randomly distributed points taken as initial positions of the sphere centres.

Solution method:
The equal hard spheres are packed using Jodrey and Tory's algorithmm. Periodic boundary conditions are applied to make the system psuedo- infinite. In each iteration the worst overlap between spheres is eliminated by moving the spheres along a line joining their centres. Simultaneously the sphere diameters are modified according to actual system configuration. The linked-list structures speed-up the nearest neighbour searching and the worst overlap determination. Final results as diameter of the spheres and related packing density as well as coordinates of the sphere centres are optionally saved for further analysis.

Restrictions:
The program is suitable for several thousand of spheres.

Running time:
The overall program execution time obtained on different kinds of microcomputers is shown in table 1. The presented timings correspond to the program runs in which the final packing density is about 0.62 and have been obtained using the following compilers. (a) Turbo C(v2.0) (b) SVS C(v2.6) (c) Turbo C(v2.0) (d) 3L C(v2.0)