Producing from scratch

With these clients you can create simplicial complexes belonging to various parameterized families.

ball file dimension
Produce a d-ball.
cube_complex file x_1 x_2 .. x_d
Produces a triangulated pile of hyper cubes: Each cube is split into d! tetrahedra, and the tetrahedra are all grouped around one of the diagonal axes of the cube.
klein_bottle file
The Klein bottle.
projective_plane file
The projective plane.
sphere file dimension
Produce a d-sphere.
surface file genus
Produce a surface of genus g. For g >= 0 the client produces an orientable surface, otherwise it produces an nonorientable one. Vertices may be specified.
torus file
The torus.

Producing a new simplicial complex from others

Another important way of constructing simplicial complexes is to modify an already existing one. Actually, these clients don't alter the input file, but create a copy and modify it.

The clients try to preserve existing vertex labels or choose the new labels according to the old ones to help you keep track of special vertices throughout a series of constructions. You may suppress the labeling of the vertices of the new complex by using the -nol flag if it is of no interest to you.

barycentric_subdivision out_file in_file [ -relabel ] [ -geom_real ]
Create a simplicial complex as a barycentric subdivision of a given complex. Each vertex in the new complex corresponds to a face in the old complex.
The option @c -relabel creates an additional section VERTEX_LABELS. The labels are, most naturally, the faces of the original complex.
The option @c -geom_real reads the GEOMETRIC_REALIZATION of the input complex, computes the coordinates of the new vertices and stores them in GEOMETRIC_REALIZATION of the produced complex.
cone out_file in_file in_complex_section [ k ] [ -l l_1 l_2 ... ] [ -nol ]
Produce the k-cone over a given simplicial complex.
Default for the parameter k is 1.
The option @c -l specifies how to label the apex vertices. Default labels have the form apex_0, apex_1, ... . In the case the input complex has already vertex labels of this kind, the duplicates are avoided.
The @c -nol flag tells the client not to write any labels at all.
connected_sum out_file in_file_1 in_file_2 [ f_1 [ f_2 ] ] [ -p p_1 ... p_n ] [ -nol ]
Compute the connected sum of two complexes.
Parameters @i f_1 and @i f_2 specify which facet of the first and second complex correspondingly are glued together. Default is the 0-th facet of both.
The vertices in the selected facets are identified with each other according to their order in the facet (that is, in icreasing index order). The option @c -p allows to get an alternative identification. It should specify a permutation of the vertices in the second facet. If the permutation contains contiguous sequences, they can be shortened as @i n_1 ... @i n_2 (perl lovers might use just two points.) For example, (7 2 ... 4 12) = (7 2 3 4 12).
The vertices of the new complex get the original labels with `_1' or `_2' appended, according to the input complex they came from. If you specify the @c -nol flag, the label generation will be omitted.
disjoint_union out_file in_file_1 in_file_2 [ -nol ]
Produce the union of the two given complexes.
The vertex labels are built from the original labels with a suffix `_1' or `_2' appended.
The @c -nol flag skips the label generation.
extract_subcomplex out_file in_file subcomplex_section [ -geom_real ] [ -nol ]
Extracts a subcomplex of a given complex and creates a new complex. The indices of the selected vertices have to be stored as an ordered set in a separate file section @i subcomplex_section.
The vertex labels are preserved unless the @c -nol flag is specified.
The @c -geom_real flag tells the client to inherit the GEOMETRIC_REALIZATION.
glue_vertices out_file in_file glueing_section [ -nol ]
The new complex is produced by replacing all vertices from each glueing set by one representative and removing all redundancies.
The glueing sets have to be stored in a separate file section @i glueing_section as an array of sets of vertex indices. If two sets are not disjoint, their union serves as a single glueing set instead, thus providing transitivity. Vertices not contained in any glueing set are considered to be in a glueing set by themselves, therefore will not be glued at all.
The labels of the new vertices are the original labels of the representative vertices (that is, with the smallest index) of their glueing sets.
The @c -nol flag skips the label creation.
h_induced_quotient out_file in_file [ apex ] { -v v_1 v_2...v_i ... | -l l_1 l_2 ... } [ -nol ]
Let C be the given simplicial complex and A the subcomplex induced by the given vertices. Then this client produces a simplicial complex homotopy equivalent to C mod A, by adding the cone over A with apex a to C.
The apex a may be specified (by its label) and vertices can be specified by their indices (using the @c -v option) or by their labels (using the @c -l option). Indices may be specified individually or as a sequence. e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
induced_subcomplex out_file in_file { -v v_1 v_2...v_i ... | -l l_1 l_2 ... } [ -nol ]
Produce the subcomplex induced by the given vertices.
Vertices can be specified by their indices (using the @c -v option) or by their labels (using the @c -l option). Indices may be specified individually or as a sequence. e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
k_skeleton out_file in_file k [ -nol ]
Produce the k-skeleton.
The @c -nol flag tells the client not to write any labels.
remove_vertex_star out_file in_file { -v vertex | -l vertex } [ -nol ]
Removes the vertex star of a given vertex, specified by it's index or label.
The @c -nol flag tells the client not to write any labels.
suspension out_file in_file in_complex_section [ k ] [ -l l_1+ l_1- l_2+ l_2- ... ] [ -nol ]
Produce the k-suspension over a given simplicial complex.
Default for the parameter k is 1.
The labels of the apexes may be specified. In case too few apexes are specified the client labels the remaining ones apex_0+, apex_0-, apex_1+, apex_1-, ... . In case one of the labels exists already, the client chooses a unique one by appending _i where i is the smallest integer which makes the label unique.
The @c -nol flag tells the client not to write any labels.
t_join out_file in_file_1 in_file_2 [ -nol ]
Produce the join of the two given complexes.
The vertex labels are built from the original labels with a suffix `_1' or `_2' appended.
The @c -nol flag tells the client not to write any labels.
t_link out_file in_file { -v v_1 v_2...v_i ... | -l l_1 l_2 ... } [ -nol ]
Produce the link of the face specified by the given vertices.
Vertices can be specified by their indices (using the @c -v option) or by their labels (using the @c -l option). Indices may be specified individually or as a sequence. e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
t_star out_file in_file { -v v_1 v_2...v_i ... | -l l_1 l_2 ... } [ -nol ]
Produce the star of the face specified by the given vertices.
Vertices can be specified by their indices (using the @c -v option) or by their labels (using the @c -l option). Indices may be specified individually or as a sequence. e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
t_union out_file in_file_1 in_file_2 [ -nol ]
Produce the union of the two given complexes, identifying vertices with equal labels.
The @c -nol flag tells the client not to write any labels.

Producing a simplicial complex from other objects

boundary_complex out_file in_file [ -noc ]
Produce the boundary complex which arises out of a triangulation of the boundary of polytope.
If the @c -noc flag is set, no coordinates for the GEOMETRIC_REALIZATION will be written.
This client lives in between the applications poly and topaz. Since it produces a simplicial complex (from a polytope), it is counted as a client for the topaz application.
crosscut_complex out_file in_file [ -noc ]
Produce the crosscut complex which arises out of a triangulation of the boundary of polytope.
If the @c -noc flag is set, no coordinates for the GEOMETRIC_REALIZATION will be written.
This client lives in between the applications poly and topaz. Since it produces a simplicial complex (from a polytope), it is counted as a client for the topaz application.
flag_complex out_file in_file graph_section [ -nol ]
Produce the flag_complex of a given graph.
The @c -nol flag tells the client not to write any labels.

Consistency checks

facets_consistency file [ complex_section [ -auto ] ]
Verifies whether a complex has any redundandent facets, whether the facets are ordered sets and if the vertices are numbered 0..n-1.
The default for the @c complex_section is FACETS.
If the @c -auto flag is set and @c complex_section does not equal FACETS, the client writes the correct facets into FACETS and the old numbering (if the numbering has changed at all) into VERTEX_LABELS.
labels_consistency file
Verifies whether the VERTEX_LABELS are unique and that their size matches N_VERTICES

Other

is_vert_dec file shedding_vertices_section
Check whether a given ordered subset of the vertex set is a vertex decomposition.
The client works for 1-, 2- and 3-manifolds only!
projectivities file
Computes the orbits of the group of projectivities of a locally strongly connected simplicial complex.
specify_subcomplex file section
Copys the specified section into SUBCOMPLEX needed by VISUAL_SUBCOMPLEX.

Clients for internal use

These clients are called by polymake automatically via the rules. They compute some new properties of a simplicial complex. You will hardly ever need to call them directly. They are documented here first of all for the sake of completeness.

boundary_of_pseudo_manifold file boundary_section
Produce the boundary (= ridges contained in one facet only) of a PSEUDO_MANIFOLD.
facets_from_hasse_diagram file
Extracts the facets of a hasse diagram
fundamental_group file
Calculate a finite representation of the fundamental group, which may easily be treated with GAP.
intersection_form file cycle_section cocycle_section intersection_form_section
Calculate the parity and the signature of the intersection form of an oriented 4-manifold.
is_ball_or_sphere file
Check whether a complex is a ball or sphere. The client works for manifolds of dim 2 or smaller only.
is_closed_pseudo_manifold file
Check whether a complex is a closed pseudo-manifold.
is_locally_strongly_connectedis_manifold file [ -all ]
Check whether a complex is locally strongly connected.
The @c -all flag tells the client to compute all faces with non strongly connected star.
is_manifold file
Check whether a complex is a manifold. The client works for manifolds of dim 3 or smaller only.
is_pseudo_manifold file
Check whether a complex is a pseudo_manifold.
lawler file
Produces the minimal (with respect to inclusion) non-faces of a simplicial complex. Only the facets of the complex are used as input, i.e., no hasse diagram is computed.
This implements an old algorithm described by Lawler: "Covering problems: duality relations and a new method of solution" SIAM J. Appl. Math., Vol. 14, No. 5, 1966
See also Chapter 2 of "Hypergraphs", C. Berge, North-Holland, Amsterdam, 1989
8/23/2002
minimal_non_faces file
Find the inclusion-minimal non-faces of a complex.
odd_complex file
Find all faces of co-dimension -2 which have a non bipartied link.
odd_complex_of_manifoldodd_complex file
Find all faces of co-dimension -2 of which have a non bipartied link.
stiefel_whitney file out_section [-v] [dim_low [dim_high]]
Computes Stiefel-Whitney classes of mod 2 Euler space (in particular, closed manifold). Use option "-v" to show regular pairs and cycles.
A narrower dimension range of interest can be specified. Negative values are treated as co-dimension - 1.
t_dual_graph file
Produce the dual graph of a simplicial complex.
t_graph file
Produces the graph of a simplicial complex.
t_hasse_diagram file [ -pure ]
Produce the Hasse Diagram of a simplicial complex.
t_homology file complex_section homology_section [-co] [ cycle_section | dim_high dim_low ]
Calculate the homology groups and, optionally, cycle representatives of a simplicial complex.
A narrower dimension range of interest can be specified. Negative values are treated as co-dimension - 1.
With option -co, cohomologies and cocycles will be computed.
bipartite file graph_section even_section
Determine whether an undirected graph is bipartite.
connected file graph_section connected_section
Determine whether an undirected graph is connected.
connected_comp file graph_section connected_comp_section
Computes the connected components. The connected components are encoded by their node sets.
connectivity file graph_section connectivity_section
Compute the connectivity of a given graph using the Ford-Fulkerson flow algorithm.
diameter file graph_section diameter_section
Compute the diameter of an undirected graph.
max_cliques file max_cliques_section graph_section
Computes all inclusion maximal cliques of a graph.
spring_embedder file graph_section embedding_section [ {-objective,-selection} section -seed s ] [ {-scale,-balance,-viscosity,-inertion,-orientation,-separation} x ... ]
Produce a 3-d embedding for the graph using the spring embedding algorithm along the lines of Thomas Fruchtermann and Edward Reingold: Graph Drawing by Force-directed Placement. Software Practice and Experience Vol. 21, 1129-1164 (1992), no. 11
The initial node coordinates are chosen randomly on the unit sphere. The optional parameter @c seed controls the initial setting.
If the nodes already have an embedding in Rd and there is a linear objective function defined in the coordinate space, it can be used to rearrange the 3-d embedding along the z-axis corresponding to the objective function growth. This mode is enabled with option @c objective.
Alternatively, a selected subset of nodes can be requested to be set apart from the rest of the graph. The numbers of selected nodes are read as a set from the section specified in option @c selection.
The embedding algorithm can be fine-tuned with several "black magic" options. All of them take double values, which are multiplied with internal initial settings, so all defaults are equal to 1.
@c scale enlarges the ideal edge length. @c balance changes the balance between the edge contraction and node repulsion forces. @c inertion and @c viscosity affects how the nodes are moved, and can be used to restrain oscillations. @c orientation changes the relative influence of the linear objective function on the embedding. @c separation changes the additional repulsion force between the selected and non-selected nodes.
triangle_free file graph_section triangle_free_section
Determine whether a (possibly directed) graph has triangles or not.