veech_group
#
The Veech group of a surface and related concepts.
EXAMPLES:
We write an element of the Veech group as an action on homology:
sage: from flatsurf import translation_surfaces
sage: S = translation_surfaces.square_torus()
sage: A = S.affine_automorphism_group()
sage: M = matrix([[1, 2], [0, 1]])
sage: f = A.derivative().section()(M, check=False)
sage: from flatsurf import SimplicialHomology
sage: H = SimplicialHomology(S)
sage: H.hom(f)
Induced endomorphism of H₁(Translation Surface in H_1(0) built from a square)
Defn: Induced by Affine endomorphism of Translation Surface in H_1(0) built from a square
Defn: Lift of linear action given by
[1 2]
[0 1]
- flatsurf.geometry.veech_group.AffineAutomorphismGroup(surface)[source]#
Return the group of affine automorphisms of this surface, i.e., the group of homeomorphisms that can be locally expressed as affine transformations.
EXAMPLES:
sage: from flatsurf import dilation_surfaces, AffineAutomorphismGroup sage: S = dilation_surfaces.genus_two_square(1/2, 1/3, 1/4, 1/5) sage: AffineAutomorphismGroup(S) AffineAutomorphismGroup(Genus 2 Positive Dilation Surface built from 2 right triangles and a hexagon)
- class flatsurf.geometry.veech_group.AffineAutomorphismGroup_generic(surface)[source]#
A generic implementation of the group of affine automorphisms of a surface.
You should not create such a group directly. Use
AffineAutomorphismGroup()
orflatsurf.geometry.categories.dilation_surfaces.DilationSurfaces.ParentMethods.affine_automorphism_group()
.Note
Currently, this group is mostly empty and just a container to hold on to the
derivative()
method.We do not provide a
category
parameter here because it makes serialization overly complicated. (And we do not think that anybody is going to use it.)EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: A = S.affine_automorphism_group()
- derivative()[source]#
Return the derivative of this group, i.e., the map to GL_2(mathbb{R}) whose image is the
VeechGroup()
.EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: A = S.affine_automorphism_group() sage: A.derivative() Derivative morphism: From: AffineAutomorphismGroup(Translation Surface in H_1(0) built from a square) To: General Linear Group of degree 2 over Rational Field
- class flatsurf.geometry.veech_group.AffineAutomorphism_matrix(parent, matrix)[source]#
An affine automorphism of a surface that is an (arbitrary) lift of an element of GL_2(mathbb{R}).
EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: A = S.affine_automorphism_group() sage: f = A.derivative().section()(matrix([[1, 3], [0, 1]]), check=False) sage: f Affine endomorphism of Translation Surface in H_1(0) built from a square Defn: Lift of linear action given by [1 3] [0 1]
- class flatsurf.geometry.veech_group.DerivativeMap[source]#
The derivative from the
AffineAutomorphismGroup
to GL_2(mathbb{R}).EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: A = S.affine_automorphism_group() sage: d = A.derivative()
- section()[source]#
Return a section of this map, i.e., a map that lifts a matrix in GL_2(mathbb{R}) to an affine automorphism.
EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: A = S.affine_automorphism_group() sage: d = A.derivative() sage: s = d.section()
- class flatsurf.geometry.veech_group.SectionDerivativeMap(derivative)[source]#
A section of a
DerivativeMap
.EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: A = S.affine_automorphism_group() sage: d = A.derivative() sage: s = d.section()
- flatsurf.geometry.veech_group.VeechGroup(surface)[source]#
Return the Veech group of
surface
, i.e., the group of matrices that fix its vertices.EXAMPLES:
sage: from flatsurf import dilation_surfaces, VeechGroup sage: S = dilation_surfaces.genus_two_square(1/2, 1/3, 1/4, 1/5) sage: VeechGroup(S) VeechGroup(Genus 2 Positive Dilation Surface built from 2 right triangles and a hexagon)
- class flatsurf.geometry.veech_group.VeechGroup_generic(surface, category=None)[source]#
A generic (currently essentially empty) implementation of the Veech group.
You should not create such a group directly. Use
VeechGroup()
orflatsurf.geometry.categories.dilation_surfaces.DilationSurfaces.ParentMethods.veech_group()
.EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: V = S.veech_group()
- gens()[source]#
Return generators of this group.
EXAMPLES:
sage: from flatsurf import translation_surfaces sage: S = translation_surfaces.square_torus() sage: V = S.veech_group() sage: V.gens() Traceback (most recent call last): ... NotImplementedError: cannot compute generators of the Veech group yet