|
Size: 1413
Comment:
|
Size: 2821
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| = Falt surfaces examples = | <<TableOfContents>> |
| Line 3: | Line 3: |
| === Installation === | = Flat surfaces = |
| Line 5: | Line 5: |
| You need to install [[http://wiki.sagemath.org/combinat|sage-combinat]] which is done with the following command | == Interval exchange transformations / Linear involutions == |
| Line 7: | Line 7: |
| Permutations of interval exchange transformations and generalized permutations of linear involutions are created using | |
| Line 8: | Line 9: |
| $ sage -combinat install | sage: iet.Permutation('a b c d','d c b a') a b c d d c b a sage: iet.GeneralizedPermutation('a a b','b c c') a a b b c c |
| Line 11: | Line 17: |
| The latter installs a modified version of Sage. For more on what this command does or how to reverse it, you can read this [[http://wiki.sagemath.org/combinat/MercurialStepByStep|step by step tutorial]]. === Link to documentations and tutorials === To get introduced to Sage, look at the documentation on [[http://sagemath.org]] === Using interval exchange transformations === Permutations of interval exchange transformations are created |
We can build Rauzy diagrams from permutations |
| Line 25: | Line 22: |
| sage: r = p.rauzy_diagram() sage: print r Rauzy diagram with 7 permutations |
|
| Line 27: | Line 27: |
| === Square tiled surfaces === | Other Rauzy diagrams (with induction on the left, inversion, ...) are accessible via options {{{ sage: p.rauzy_diagram(left_induction=True) Rauzy diagram with 84 permutations }}} Build a path in the Rauzy diagram (the letter 't' means top induction and the letter 'b' means bottom induction) {{{ sage: path = r.path(p,'t','t','b','t','b','b','t','b') sage: path.is_full() # all intervals are seen as winner during Rauzy induction True sage: path.is_loop() # startpoint and endpoint are identic True }}} Build an interval exchange map associated to this path {{{ sage: m = path.matrix() sage: l,v,n = m.eigenvectors_right()[3] # l is the eigenvalue, v the vector and m the multiplicity sage: n == 1 True sage: t = iet.IntervalExchangeTransformation(p,v[0]) sage: print t Interval exchange transformation of [0, 4.390256884515514?[ with permutation a b c d d c b a }}} And we now check that the interval exchange map is self-similar under as many iterations as the length of the path {{{ sage: tt = t.rauzy_move(iterations=8) sage: print tt Interval exchange transformation of [0, 1[ with permutation a b c d d c b a sage: tt.normalize(l) == t True }}} == Square-tiled surfaces == |
| Line 38: | Line 77: |
| And now, we build its Teichmueller curve and compute some of its invariant (rk: it is not yet clear which property should be attached to the teichmueller curve and which one should be attached to the Veech group) | We now access to its Veech group and look at the associated invariants |
| Line 41: | Line 80: |
| sage: t = o.teichmueller_curve() sage: G = t.veech_group() sage: G.index() |
sage: G = o.veech_group() sage: G.index() # index in SL(2,Z) |
| Line 45: | Line 83: |
| sage: G.nu2() #elliptic points of order 2 | sage: G.nu2() # elliptic points of order 2 |
| Line 47: | Line 85: |
| sage: G.nu3() #elliptic points of order3 | sage: G.nu3() # elliptic points of order 3 |
| Line 51: | Line 89: |
| }}} The Veech group of an origami is in fact attached to its Teichmüller curve. In the following we build the Teichmüller curve of o and compute other invariants {{{ sage: t = o.teichmueller_curve() |
|
| Line 54: | Line 97: |
One can access to detailed data of a cusp using the cylinder diagram decomposition of an origami {{{ sage: o = Origami('(1,2)(3,4)','(1,3)') sage: o.stratum() H(1, 1) sage: t = o.teichmueller_curve() sage: for c in t.cusp_representative(): ... print c ... print c.cylinder_diagram().dual_graph() }}} |
Flat surfaces
Interval exchange transformations / Linear involutions
Permutations of interval exchange transformations and generalized permutations of linear involutions are created using
sage: iet.Permutation('a b c d','d c b a')
a b c d
d c b a
sage: iet.GeneralizedPermutation('a a b','b c c')
a a b
b c cWe can build Rauzy diagrams from permutations
sage: p = iet.Permutation('a b c d','d c b a')
sage: p.connected_component()
H_hyp(2)
sage: r = p.rauzy_diagram()
sage: print r
Rauzy diagram with 7 permutationsOther Rauzy diagrams (with induction on the left, inversion, ...) are accessible via options
sage: p.rauzy_diagram(left_induction=True) Rauzy diagram with 84 permutations
Build a path in the Rauzy diagram (the letter 't' means top induction and the letter 'b' means bottom induction)
sage: path = r.path(p,'t','t','b','t','b','b','t','b') sage: path.is_full() # all intervals are seen as winner during Rauzy induction True sage: path.is_loop() # startpoint and endpoint are identic True
Build an interval exchange map associated to this path
sage: m = path.matrix() sage: l,v,n = m.eigenvectors_right()[3] # l is the eigenvalue, v the vector and m the multiplicity sage: n == 1 True sage: t = iet.IntervalExchangeTransformation(p,v[0]) sage: print t Interval exchange transformation of [0, 4.390256884515514?[ with permutation a b c d d c b a
And we now check that the interval exchange map is self-similar under as many iterations as the length of the path
sage: tt = t.rauzy_move(iterations=8) sage: print tt Interval exchange transformation of [0, 1[ with permutation a b c d d c b a sage: tt.normalize(l) == t True
Square-tiled surfaces
Let us build the genus 2 origami with three squares
sage: o = Origami('(1,2)', '(1,3)')
sage: print o
(1, 2)
(1, 3)We now access to its Veech group and look at the associated invariants
sage: G = o.veech_group() sage: G.index() # index in SL(2,Z) 3 sage: G.nu2() # elliptic points of order 2 1 sage: G.nu3() # elliptic points of order 3 1 sage: G.ncusps() # number of cusps 2
The Veech group of an origami is in fact attached to its Teichmüller curve. In the following we build the Teichmüller curve of o and compute other invariants
sage: t = o.teichmueller_curve() sage: t.sum_of_lyapunov_exponents() 4/3
One can access to detailed data of a cusp using the cylinder diagram decomposition of an origami
sage: o = Origami('(1,2)(3,4)','(1,3)')
sage: o.stratum()
H(1, 1)
sage: t = o.teichmueller_curve()
sage: for c in t.cusp_representative():
... print c
... print c.cylinder_diagram().dual_graph()