Relative Period Deformations#

The Arnoux-Yoccoz surface#

from flatsurf import translation_surfaces

s = translation_surfaces.arnoux_yoccoz(3).canonicalize()
s.plot()
../_images/28964e1206127eb6077878416f6a0f24c732b37a0e3cb051b9cf1b82d952dfdf.png
field = s.base_ring()
field
Number Field in alpha with defining polynomial x^3 + x^2 + x - 1 with alpha = 0.5436890126920763?
alpha = field.gen()
AA(alpha)
0.5436890126920763?
m = matrix(field, [[alpha, 0], [0, 1 / alpha]])
show(m)
\(\displaystyle \left(\begin{array}{rr} \alpha & 0 \\ 0 & \alpha^{2} + \alpha + 1 \end{array}\right)\)

Check that \(m\) is the derivative of a pseudo-Anosov of \(s\).

(m * s).canonicalize() == s
True

Rel deformation#

A singularity of the surface is an equivalence class of vertices of the polygons making up the surface.

s.point(0, 0)
Vertex 0 of polygon 0

We’ll move this singularity to the right by two different amounts:

s1 = s.rel_deformation(
    {s.point(0, 0): vector(field, (alpha / (1 - alpha), 0))}
).canonicalize()
/usr/share/miniconda3/envs/test/lib/python3.10/site-packages/cppyy/__init__.py:319: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources as pr
s2 = s.rel_deformation(
    {s.point(0, 0): vector(field, (1 / (1 - alpha), 0))}
).canonicalize()

Note that by the action of the derivative of the pseudo-Anosov we have:

s1 == (m * s2).canonicalize()
True

By a Theorem of Barak Weiss and the author of this notebook, these surfaces are all periodic in the vertical direction. You can see the vertical cylinders:

s1.plot()
../_images/f0dacfc089e554e20ecce3423825f10f40ee14e03c722f2e916c9df0afdfd886.png