Programs for twisted face pairing 3-manifolds

Programs for twisted face pairing 3-manifolds and for bitwist 3-manifolds

We describe and illustrate here three programs, pairsnap.c, partsnap.c, and bitwist.c, which are written to run on unix platforms and whose source codes are available from this web site. These programs were written by J. W. Cannon, W. J. Floyd, and W. R. Parry. At the end of the file we describe the program cellsnap.c, which generalizes the frist two of them. We first explain the purposes of the programs.

Let P be a regular cell complex such that P is homeomorphic to a 3-ball and P has a single 3-cell. So each 2-cell is an n-gon with n at least two. Suppose that P has an even number of 2-cells. An edge pairing efor P is a pairing of the faces of P by orientation reversing cellular homeomorphisms. That is for each face f there is a face f' and an orientation reversing cellular homeomorphism e_f from f to f'. We require that (f')' = f and that ef' = (ef)-1.

It is well known that the quotient space obtained from P by identifying each face f with ef(f) will not generally be a 3-manifold since the link of a vertex may not be a 2-sphere. In fact, the quotient is a 3-manifold exactly if its Euler characteristic is 0. However, one can modify P and the face pairing so that the quotient is a 3-manifold.

Let ~ be the equivalence relation on {edges of P} generated by the relation that d ~ ef(d) if d is an edge of the face f. The equivalence classes of the edges are called edge cycles. For each edge cycle [d], choose a positive integer m([d]). (m([d]) is called the multiplier of [d].) Now let Q be the cell complex obtained from P by subdividing each edge d of P into #([d])m([d]) subedges. Given a face g of Q, let f be the face of P with |f|=|g|, and let tg be the orientation preserving cellular homeomorphism of g which takes each vertex v to the adjacent vertex w in the counterclockwise order. Define an edge pairing on Q by eg = ef tg.

Theorem (Cannon, Floyd, and Parry): The quotient of Q under the face pairings is a 3-manifold.

The program pairsnap.c takes as input a data file which gives the combinatorics of the cell complex of P on the 2-sphere and an edge pairing. The program asks the user for the multipliers, and then writes a file for the quotient 3-manifold for input in SnapPea 2.5.


One can do a variant of this to construct cusped 3-manifolds. Suppose given a faceted 3-ball P and a face pairing e as above. Choose a pair {f,f'} of faces of P. Given an edge d, one can construct the edge cycle [d] = {d1, d2, d3, ..., dk} by d1=d, d2 = e_{f1}(d1) for some face f1 which contains d1, d3 = e_{f2}(d2) for some face f2 which contains d2 and is distinct from f1, etc.. Hence one can define a word f1 f2 ... fk in the faces of P. Let n([d]) = {i in {1,..,k}: fi is distinct from f and from f'}. While the word f1 f2 ... fk is not an invariant of the edge class [d], n([d]) does depend only on the equivalence class of d.

As before, for each edge class [d] let m([d]) ba a positive integer. Now let Q be the cell complex obtained from P by subdividing each edge d of P into n([d])m([d]) subedges. Given a face g of Q, let f be the face of P with |f|=|g|, and let tg be the orientation preserving cellular homeomorphism of g which takes each vertex v to the adjacent vertex w in the counterclockwise order. Define an edge pairing on Q by eg = ef tg. The quotient of Q under the face pairing is not a manifold, but it is a cell complex whose only vertex has link a torus. The complement of this vertex is a cusped 3-manifold with a single cusp.

The program partsnap.c takes as input a data file which gives the combinatorics of the cell complex of P on the 2-sphere and an edge pairing. The program asks the user for the face f and for the multipliers, and then writes a file for the cusped 3-manifold (obtained by deleting the vertex from the quotient) for input in SnapPea 2.5.


We now do some examples of the input data files.


The program bitwist.c is like pairsnap.c, but it enables one to twist different cycles in difeent directions. Any closed connected orientable 3-manifold is a bitwist 3-manifold.
The programs pairsnap.c and partsnap.c require that two faces of P intersect in a connected set of edges. For cell complexes that are not regular, the program cellsnap.c combines the two programs into a more general one that allows for more complicated faces. The difference in the data structure is that, for cellsnap.c, one gives not just the adjacent tiles in correct order, but also the edge numbers of the corresponding edges of those tiles.