Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2010-07-19 14:10:11
Size: 1681
Editor: vdelecroix
Comment:
Revision 8 as of 2010-10-08 11:29:07
Size: 3909
Editor: vdelecroix
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Flat surfaces in Sage == = Flat surfaces in Sage =
Line 3: Line 3:
=== Introduction === == Introduction ==
Line 5: Line 5:
For general mathematic references see the [[https://lma.homelinux.org/wiki/FlatSurfaces/FlatSurfaces|Flat surfaces wiki]]. A flat surfaces can be seen either For general mathematic references see the [[https://lma.homelinux.org/wiki/FlatSurfaces/FlatSurfaces|Flat surfaces wiki]]. A flat surface can be seen either
Line 7: Line 7:
 * as a flat metric with no holonomy on a surface,
 * as a Riemann surface and a non zero Abelian (or quadratic) differential.
 * as a flat metric with no holonomy on a compact surface,
 * as a Riemann surface together with a non zero Abelian (or quadratic) differential,
 *
...
Line 10: Line 11:
This page is aimed to be a roadmap for the implementations of various algorithm related to flat surfaces and more generally geometry of surfaces. This page is aimed to be a roadmap for the implementations of various algorithm related to flat surfaces and more generally geometry/combinatoric/dynamic of surfaces (Mapping class group, train track, pseudo-Anosov dynamic, ...). For the moment we share the [[http://wiki.sagemath.org/combinat|sage-combinat repository]] with mercurial for the development.

This project take part in the wider [[SageDynamicsProject]]

== General architecture ==

For now the main structure is as follows

 * sage.combinat.flat_surfaces (which contains various generic objects)
 * sage.combinat.flat_surfaces.iet (for interval exchange transformations stuff)
 * sage.combinat.flat_surfaces.origamis (for origamis/square tiled surfaces stuff)
 * sage.geometry.hyperbolic_geometry (hyperbolic spaces)
 * sage.groups.surface_gps (abstract surface groups)

Where do we put

 * representation of surface group into PSL(2,R)
 * fundamental domains of such groups / Poincare polygons / Dirichlet fundamental domains

== Roadmap ==

=== Port of other programs ===
 * Joshua Bowman program on iso-Delaunay tessellations (written in Java)
 * Finish Anton Zorich port of Interval Exchange Transformations and Linear Involutions (written in Mathematica)
 * Anton Zorich program for computing approximation of various Lyapunov exponents (written in C and Mathematica)
 * Alex Eskin program for analyzing saddle connections direction in a surface (written in C++)
Line 22: Line 48:
  * hyperelliptic curves (specifying the double cover over the sphere)   * hyperelliptic curves (specifying a double cover of the sphere)
Line 24: Line 50:
 
Line 26: Line 52:
 * switch between representations (the one where everybody can be converted is triangulated flat surface)
 * computing fundamental group and homology
 * maps between flat surfaces
 * action of SL(2,R) and isomorphisms
 * switch between representations (the one to which everybody can be converted is triangulated flat surface)
 * computing fundamental group and relative homology and homology (as well as functors between them)
 * maps between flat surfaces (and functors to fundamental group and homologies)
 * action of SL(2,R) and isomorphisms (and functors)
 * Siegel Veech constants
 * Lyapunov exponents

=== Surface Group ===

They are needed from two point of vue: the group of the surface itself and its stabilizer under SL(2,R) or PSL(2,R) action. There must be some software for dealing with surface group. We need to look at

 * [[http://www.warwick.ac.uk/~mareg/download/kbmag2/|kbmag]]: Knuth-Bendix in Monoids and Automatic Groups implemented by Derek Holt
Line 32: Line 66:
 * the three 2D models: hyperbolic plane '''HH''', hyperbolic disc '''DD''' and the hyperboloïd
 * polygonal domains
 * tesselations (covering of HH by finite area convex polygonal domains)
 * Fuchsian groups and fundamental domains
This part is roughly implemented in [[http://trac.sagemath.org/sage_trac/ticket/9439|trac #9439]]
 * the three 2D models: hyperbolic plane, hyperbolic disc and the hyperboloïd
 * points, geodesics and polygonal domains
 * tessellations (covering of HH by finite area convex polygonal domains)
 * Fuchsian groups, their fundamental domains and their associated tessellations

The [[http://egl.math.umd.edu/|Experimental Geometry Lab]] (university of Maryland) published a lot of Mathematica package/worksheets to deal with Kleinian adn Fuchsian groups, hyperbolic tessellations, etc...

Flat surfaces in Sage

Introduction

For general mathematic references see the Flat surfaces wiki. A flat surface can be seen either

  • as a union of polygons glued along pairs of parallel sides,
  • as a flat metric with no holonomy on a compact surface,
  • as a Riemann surface together with a non zero Abelian (or quadratic) differential,
  • ...

This page is aimed to be a roadmap for the implementations of various algorithm related to flat surfaces and more generally geometry/combinatoric/dynamic of surfaces (Mapping class group, train track, pseudo-Anosov dynamic, ...). For the moment we share the sage-combinat repository with mercurial for the development.

This project take part in the wider SageDynamicsProject

General architecture

For now the main structure is as follows

  • sage.combinat.flat_surfaces (which contains various generic objects)
  • sage.combinat.flat_surfaces.iet (for interval exchange transformations stuff)
  • sage.combinat.flat_surfaces.origamis (for origamis/square tiled surfaces stuff)
  • sage.geometry.hyperbolic_geometry (hyperbolic spaces)
  • sage.groups.surface_gps (abstract surface groups)

Where do we put

  • representation of surface group into PSL(2,R)
  • fundamental domains of such groups / Poincare polygons / Dirichlet fundamental domains

Roadmap

Port of other programs

  • Joshua Bowman program on iso-Delaunay tessellations (written in Java)
  • Finish Anton Zorich port of Interval Exchange Transformations and Linear Involutions (written in Mathematica)
  • Anton Zorich program for computing approximation of various Lyapunov exponents (written in C and Mathematica)
  • Alex Eskin program for analyzing saddle connections direction in a surface (written in C++)

Different representations/implementations for flat surfaces

  • (convex) polygonal surface
    • rectangulated surface
      • suspension of iet (and li) (almost in Sage)
      • Thurston-Veech construction
    • triangulated surface
      • Delaunay surface (?)
  • Algebraic curve with Abelian or quadratic differential
  • Coverings (make it relative)... need to implement maps between translation surfaces
    • square tiled surfaces/origamis (covering of the torus) (almost in Sage)
    • hyperelliptic curves (specifying a double cover of the sphere)
  • Unfoldings of rational billiards

Needed generic methods

  • switch between representations (the one to which everybody can be converted is triangulated flat surface)
  • computing fundamental group and relative homology and homology (as well as functors between them)
  • maps between flat surfaces (and functors to fundamental group and homologies)
  • action of SL(2,R) and isomorphisms (and functors)
  • Siegel Veech constants
  • Lyapunov exponents

Surface Group

They are needed from two point of vue: the group of the surface itself and its stabilizer under SL(2,R) or PSL(2,R) action. There must be some software for dealing with surface group. We need to look at

  • kbmag: Knuth-Bendix in Monoids and Automatic Groups implemented by Derek Holt

Hyperbolic geometry

This part is roughly implemented in trac #9439

  • the three 2D models: hyperbolic plane, hyperbolic disc and the hyperboloïd
  • points, geodesics and polygonal domains
  • tessellations (covering of HH by finite area convex polygonal domains)
  • Fuchsian groups, their fundamental domains and their associated tessellations

The Experimental Geometry Lab (university of Maryland) published a lot of Mathematica package/worksheets to deal with Kleinian adn Fuchsian groups, hyperbolic tessellations, etc...

SageFlatProject (last edited 2017-04-28 19:03:43 by mrennekamp)