Programmatically recognizing symmetries of a polyhedron

94 Views Asked by At

I'm programming something, but I'm stuck at something which more math-oriented people probably can help me with.

I am giving a polyhedron in the following form: for each vertex I get the cyclic order of the neighbors around that vertex. I am also given the complete automorphism group (so not only some generators) in the following form: an array of automorphism in which each automorphism is just an array containing the image of each vertex.

The problem I have is that I won't to recognize which automorphisms correspond to rotation, what the order of that rotation is and what the center is. I also have the same problem for reflections, rotoreflections and inversions. (At least I can recognize the identity)

I know for instance that the reflections only have orbits of size 1 or 2, but rotations of order 2 have the same types of orbits. Any help is greatly appreciated.

1

There are 1 best solutions below

2
On BEST ANSWER

Not completely an answer, but maybe it is useful. The program fullgen, distributed in CaGe, contains some routines that do this. The routines exactly determine the automorphism group and are written specific for fullerenes (for which you only have 28 possible groups). They are written specific for the way fullgen constructs the fullerenes, but maybe there are parts that you can use. I don't know how well your knowledge of languages is, but most comments are in German.

Update

OK, so a few months ago we had a guest who had the same question, so I ended up writing the exact program you were asking about. You can find the code here: group_pl.c