This software implements the methods described in our research paper Naming Polyhedra by General Face-Spirals.
Specifically, we provide a method for compact, canonical naming of all polyhedral graphs (the 3-connected planar graphs), and polyhedral molecules, i.e., molecules whose bond structures are polyhedral graphs.
This is done through a generalization of face spirals, introduced by Manolopoulos for fullerenes in the 1990's, to encode any polyhedral graph up to isomorphism. The spiral code is found by unraveling the polyhedral graph face-by-face, like peeling an orange, while writing down the face sizes; and to construct the polyhedron from the spiral, one rolls up the “orange peel” of face sizs. These intuitive operations can be formulated as simple graph constructions, yielding fast, and robust computer algorithms.
Our scheme is compatible with Manolopoulos' classical face spiral scheme whenever the classical scheme succeeds. We also provide a nomenclature for all polyhedral molecules that yields canonical, unambiguous, unique, and concise names.
Especially compact names are given to fullerenes (cubic polyhedral graphs with only hexagon and pentagon faces, which require only around 12 numbers to represent) and fulleroids (cubic polyhedral graphs with any face size allowed), for which most classes have similar compact representations.
The software provided here is in the form of two small C++ libraries,
which can easily be incorporated into your own software, together with
command-line utilities in the directory programs
. The
bare-bones functionality is:
- Given a 3-connected planar graph, compute its generalized spiral representation and canonical name.
- Given a spiral code string, compute the polyhedral graph.
The code for this is given in the spiral-clean/
directory. A much
more versatile library for working with polyhedral graphs, cubic
graphs, and triangulations, is found under libgraph/
. This is
our graph library from our Fullerene program (http://tinyurl.com/fullerenes),
and includes many other operations than spiral names.
You are encouraged to incorporate this reference implementation in your own software (under the BSD license), but we ask that you write us an email if you do. You are also welcome to write us if you are interested in using it but encounter obstacles doing so.
James Avery (avery at nbi.ku.dk) Lukas Wirz (email in AUTHORS file) Peter Schwerdtfeger (email in AUTHORS file)
In addition, if you use this in academic work, please cite the following paper:
If you use the full libgraph
library, we ask that you also cite our Fullerene project, which it is extracted from.
The associated papers are