The current version of the code is available for download here:
- Version 0.4.6, released 10/17/2013 – the version 0.4 series represents a major overhaul of the library, in which the class structure has been significantly revised and extended. Additional details about the changes are available.
Older versions and additional examples are also available.
The package contains the C++ source code, example files, miscellaneous utilities, and documentation. On Linux, Mac OS, and Windows (using Cygwin), the compilation and installation can be carried out using GNU Make.
To begin, the user should review the file “config.mk” in the top
level directory, to make sure that the compilation and installation settings
are appropriate for their system. Typing “
then compile the static library, command-line utility, and examples.
Following successful compilation, the library, command-line utility, and documentation can be
installed by typing “
sudo make install”. By
default, the program files are installed into /usr/local, and it may be necessary to
add these directories to the appropriate
environment variables in order to use library. The code can
later be uninstalled using “
sudo make uninstall”.
On Windows without a terminal environment like Cygwin, it is possible to import and compile the library in many standard C++ development environments. Users have reported success in building the library with Microsoft Visual C++ Express and Code::Blocks.
No external dependencies are required to compile and run the code, but several programs may be useful for analyzing the output:
- The freeware plotting program Gnuplot can be used for rapid 2D and 3D visualization of the program output.
- The freeware raytracer POV-Ray can be used for high-quality renderings of the program output. (For Mac users, see this note on Mac POV-Ray installation.)
- The reference manual is generated from comments in the source code using Doxygen. This package is only required if the library files are being developed and the reference manuals need to be regenerated.
Development version from Subversion repository
If you find this software useful, please contact me, as hearing back from people greatly helps in the development of the library. I am very interested to hear of additional features that people would find useful that the library currently does not support.
If you plan to publish an academic paper using this software, please consider citing one of the following publications:
- Chris H. Rycroft, Voro++: A three-dimensional Voronoi cell library in C++, Chaos 19, 041111 (2009).
- Chris H. Rycroft, Gary S. Grest, James W. Landry, and Martin Z. Bazant, Analysis of Granular Flow in a Pebble-Bed Nuclear Reactor, Phys. Rev. E 74, 021306 (2006).
- Chris H. Rycroft, Multiscale Modeling in Granular Flow, PhD thesis submitted to the Massachusetts Institute of Technology, September 2007. [More information]
This project is free, open-source software, released through the Lawrence Berkeley Laboratory and the US Department of Energy. It is distributed under a modified BSD license, that makes it free for any purpose. The full text of the license is distributed with the code. Any questions about licensing should be directed to the LBL Tech Transfer department.
I am very grateful to the following people:
- Carolyn Phillips of the Glotzer Group at the University of Michigan. Carolyn tested an early version of the code and provided much help and support. In particular, she introduced me to the radical tessellation for polydisperse packings, and wrote an initial routine to carry this out.
- Thomas Willems, Maciej Haranczyk, and Richard Martin from the LBL Scientific Computing Group. They provided a great deal of feedback about the new non-orthogonal periodic container structures in version 0.4.
This work was supported by the Director, Office of Science, Computational and Technology Research, U.S. Department of Energy under Contract No. DE-AC02-05CH11231.