from application topaz
A hyperbolic surface (noncompact, finite area) is given by a triangulation DCEL_DATA
(the topological data) and PENNER_COORDINATES
(the metric data).
DCEL_DATA
The triangulation of the surface is encoded by a half edge data structure. For each edge i of the triangulation there are two half edges 2i and 2i+1, one for each orientation. Each row reads as follows: [ 2i.head , (2i+1).head , 2i.next , (2i+1).next]
A triangulated sphere with three punctures can be given by the following DCEL_DATA
:
> $S3 = new Array<Array<Int>>([ [1,0,2,5],[2,1,4,1],[0,2,0,3] ]); > $s = new HyperbolicSurface(DCEL_DATA=>$S3);
FLIP_WORDS
Each Delaunay triangulations of the surface can be obtained by successively flipping edges of the triangulation DCEL_DATA
. The k-th flip word is a list of integers (the indices of the edges) that describe which edge flips produce the k-th Delaunay triangulation. Note that the k-th Delaunay triangulation also corresponds to the k-th maximal cone of the SECONDARY_FAN
.
PENNER_COORDINATES
Penners lambda lengths, sometimes called Penner coordinates, of the hyperbolic surface.
> Robert C. Penner. Decorated Teichmüller Theory. QGM Master Class Series. European Mathematical Society, Zürich, 2012.
.. They are given by one positive rational for each edge of the triangulation, ordered in the sense of the triangulation ''[[..:topaz:HyperbolicSurface#DCEL_DATA |DCEL_DATA]]''. ? Type: :''[[..:common#Vector |Vector]]<[[..:common#Rational |Rational]]>''
SECONDARY_FAN
The secondary fan of the hyperbolic surface. The k-th maximal cone corresponds to the Delaunay triangulation obtained by applying the k-th flip word of FLIP_WORDS
. See M. Joswig, R. Löwe, and B. Springborn. Secondary fans and secondary polyhedra of punctured Riemann surfaces. arXiv:1708.08714.
SPECIAL_POINT
In order to compute GKZ_VECTORS
(or a secondary_polyhedron
) one needs to specify a point on the surface, see
> M. Joswig, R. Löwe, and B. Springborn. Secondary fans and secondary polyhedra of punctured Riemann surfaces. arXiv:1708.08714.
.. This point is specified by choosing a pair of rationals (p,x) that determine how the (decorated) 0th half edge is lifted to a geodesic in H^2. The covering is chosen in such a way that the horocycle at infinity is the vertical line at height p^2 and the lifted 0th half edge goes from infinity to the point x at the ideal boundary. ? Type: :''[[..:common#Pair |Pair]]<[[..:common#Rational |Rational]],[[..:common#Rational |Rational]]>''
Special purpose methods.
GKZ_VECTORS(Int depth)
Computes an approximation of the GKZ vectors of a hyperbolic surface. The approximation depends on the parameter depth that restricts the depth of the (covering) triangles that are summed over in the definition of the GKZ vectors.
Int
depth
> $T = new Array<Array<Int>>([[0,0,6,5],[0,0,1,10],[0,0,8,2],[1,0,11,4],[1,0,7,3],[1,0,9,0]]); > $s = new HyperbolicSurface(DCEL_DATA=>$T, PENNER_COORDINATES=>[1,1,1,1,1,1], SPECIAL_POINT=>[1,0]); > print $s->GKZ_VECTORS(2); 1 240509/380250 517/1950 1 98473/694950 915006978873/1469257962050
gkz_dome(Int k, Int depth)
Computes the GKZ dome of the k-th Delaunay trianglation up to a given depth. Note that k is also the index of the corresponding flip word in FLIP_WORDS
. Projection to the disc yields (a part of) the covering triangulation of the Klein disc.
Int
k
: index of the flip word
Int
depth
> $T = new Array<Array<Int>>([[0,0,6,5],[0,0,1,10],[0,0,8,2],[1,0,11,4],[1,0,7,3],[1,0,9,0]]); > $s = new HyperbolicSurface(DCEL_DATA=>$T, PENNER_COORDINATES=>[1,1,1,1,1,1], SPECIAL_POINT=>[1,0]); > $d = $s->gkz_dome(0,3); > $d->VISUAL;