These notes are a continuation of the ideas commenced here. The simplest first scheme that comes to me is as follows.

Associated with each zone (4plex) is a list of five distinct integers that denote the vertices (0plex) whose convex hull is the zone. Curiously I know of no data to be stored with the vertex. When two vertices touch the same zone they are an edge (1plex) and the same pair usually touch several other zones as well. It is necessary to store and perhaps determine the length squared of each edge. This will be the input of some calculations and the output of others.

For ordinary physics we need to know what zones abut what other zones. Two zones abut when they share four vertices. A zone, being bounded by five tetrahedra (3plex), generally abut five other zones. Special relativity physics needs only information necessary to work across these boundaries. It is suggested in the prior note how to do this.

If we need to compute the curvature we can for each triangular boundary of each tetrahedral face of a zone work our way around that triangle (2plex), passing thru the cycle of zones that share the triangle.

All of the above calculations are supported with the following data structures.

[0] Vertex
Zilch
[1] Edge
Two integers, one for the vertex at each end. Also a squared length, perhaps negative.
[2] Triangle — Bone — Hinge
Perhaps signed curvature magnitude
[3] Tetrahedron — Facet
Perhaps coordinate transformation and its inverse.
[4] Zone
Five integers, perhaps sorted by magnitude, identifying vertices. Probably five zone indices for the neighboring zones.
Some of these will need an orientation bit. Perhaps the indexes, which are sort of like pointers, need an orientation bit.

Some additional structures might be build and perhaps discarded in order to check the topology of the whole structure. This would produce, as side effect, the list of tetrahedra which bound just one zone. This would be the edge of the computation. The discipline of combinatorial topology with incidence matrices might be warranted just to debug the software that builds the zone vertex lists. P.S. This code mostly provides this check now.)

One way of generating test cases would to include an embedding space of five or six dimensions in order to construct a mesh with known geometric properties. In this case each vertex would carry coordinates from this embedding space. The squared lengths would then be immediately calculated.