|
Size: 2742
Comment:
|
← Revision 7 as of 2010-11-07 21:07:37 ⇥
Size: 3073
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 33: | Line 33: |
| Build a path in the Rauzy diagram | Build a path in the Rauzy diagram (the letter 't' means top induction and the letter 'b' means bottom induction) |
| Line 104: | Line 104: |
| sage: for c in t.cusp_representative(): | sage: for c,width in t.cusp_representative(): |
| Line 106: | Line 106: |
| ... print c.cylinder_diagram().dual_graph() | ... print "width: %d" %width ... print c.cylinder_diagram().dual_graph(), "\n" (1,2)(3,4) (1)(2,3)(4) width: 2 Looped multi-graph on 1 vertex (1,2)(3)(4) (1,3)(2,4) width: 2 Looped multi-graph on 2 vertices (1,2,3,4) (1)(2,4)(3) width: 2 Looped multi-graph on 1 vertex |
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,width in t.cusp_representative():
... print c
... print "width: %d" %width
... print c.cylinder_diagram().dual_graph(), "\n"
(1,2)(3,4)
(1)(2,3)(4)
width: 2
Looped multi-graph on 1 vertex
(1,2)(3)(4)
(1,3)(2,4)
width: 2
Looped multi-graph on 2 vertices
(1,2,3,4)
(1)(2,4)(3)
width: 2
Looped multi-graph on 1 vertex