pillowcase_cover#

Initialize self. See help(type(self)) for accurate signature.

surface_dynamics.flat_surfaces.origamis.pillowcase_cover.PillowcaseCover(g0, g1, g2, g3=None, sparse=False, check=True, as_tuple=False, positions=None, name=None)#

Pillowcase cover constructor.

The chosen flat structure is as follows:

3-----2-----3
|     .     |
|     .     |
|     .     |
0-----1-----0
class surface_dynamics.flat_surfaces.origamis.pillowcase_cover.PillowcaseCover_dense#

Generic class for pillowcase cover.

as_graph()#

Return the graph associated to self

connected_components()#

Return the list of connected origami that composes this origami.

g(i=None)#

Return the i-th permutation that defines this pillowcase cover.

is_connected()#

Check whether the origami is connected or not

It is equivalent to ask whether the group generated by r and u acts transitively on the {1,dots,n}.

is_orientable()#

Test whether the foliation is orientable.

is_primitive(return_base=False)#

A pillowcase cover is primitive if it does not cover an other pillowcase cover.

monodromy()#

Return the monodromy group of the pillowcase cover.

The monodromy group of an origami is the group generated by the permutations g_i for i in 0,1,2,3.

orientation_cover()#

Return the orientation cover as an origami.

EXAMPLES:

The pillowcase itself has cover a torus (made from 4 squares):

sage: from surface_dynamics import *

sage: p0 = p1 = p2 = p3 = [0]
sage: pc = PillowcaseCover(p0, p1, p2, p3, as_tuple=True)
sage: pc.stratum()
Q_0(-1^4)
sage: o = pc.orientation_cover()
sage: o
(1,2)(3,4)
(1,4)(2,3)
sage: o.stratum()
H_1(0)

An example in Q(1,-1^5) whose cover belongs to H(2):

sage: p0 = [2,1,0]
sage: p1 = [2,0,1]
sage: p2 = [1,0,2]
sage: p3 = [0,1,2]
sage: pc = PillowcaseCover(p0, p1, p2, p3,as_tuple=True)
sage: pc.stratum()
Q_0(1, -1^5)
sage: o = pc.orientation_cover()
sage: o
(1,2,3,4)(5,6)(7,10,9,8)(11,12)
(1,10,5,12)(2,9)(3,8)(4,7,6,11)
sage: o.stratum()
H_2(2)

A last example in Q(2^2):

sage: q = QuadraticCylinderDiagram('(0,1)-(2,3) (0,3)-(1,2)')
sage: pc = q.cylcoord_to_pillowcase_cover([1,1,1,1], [2,2], [0,1])
sage: pc.orientation_cover().stratum()
H_3(1^4)
profile(i=None)#

Return the profile (= ramification type above each pole).

stratum(fake_zeros=False)#

Return the stratum of self. It may be either a stratum of Abelian or quadratic differentials.

EXAMPLES:

sage: from surface_dynamics import *
sage: PillowcaseCover('(1,2)(3,4)', '(1,3)', '()').stratum()
Q_0(2, -1^6)