Skip to content

kundor/coxeter-stg

Repository files navigation

Coxeter-STG

These programs work on Coxeter diagrams with ringed nodes, representing a polytope built by Wythoff's construction. The class FaceOrbitPoset, constructed from a Coxeter diagram, is a partially ordered set consisting of all the face orbits of the polytope. The function makeOrbit constructs a symmetry type graph from the Face Orbit Poset. The symmetry type graph, also known as an orbit graph, represents all the flag orbits with edges labeled i where i-adjacent flags are in the corresponding orbits.

Sample output: Hasse diagram and orbit graph for t_{0,3}(H4)

Coxeter diagrams are represented as graphs using the Boost Graph Library. Each vertex has properties ringed (boolean, initially false), and integersx_coord and y_coord (for use in drawing the diagram.) Each edge has an unsigned integer property order, representing the order of the product of the two reflections the edge joins. Traditionally, the edge is omitted if this order is 2 (when the mirrors are orthogonal), and the label is omitted if this order is 3. It is possible for the product to have infinite order, in which case the order property of the edge is set to 0.

Orbit graphs are also represented using the Boost Graph Library. Vertices have no properties, and edges have an integer property rank.

The TeXout class allows output of these Coxeter diagrams, orbit graphs, and face orbit posets as LaTeX, utilizing TikZ. Simply feed these objects to a TeXout instance with << operators, similar to iostream. TeXout also collects necessary packages, TikZ libraries, and preamble definitions, to construct the preamble when the document is committed to a file. After adding all your TeX, write the TeXout instance to an fstream.

Luatex is necessary to lay out the orbit graphs. It is included in most major TeX distributions. When producing pdf output, the programs call lualatex, which should be in your PATH.

This code is available to use, read, modify, and redistribute under the terms of the GNU GPL v3.

About

Convert Coxeter diagrams with ringed nodes to a Hasse diagram of face orbits and from that to a symmetry type graph.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published