Giter Club home page Giter Club logo

bella's Introduction

bella: a computational package for Kleinian groups

This is a computational package for dealing with Kleinian groups, particularly aspects related to visualisation and moduli spaces.

Note: This package superceeds the earlier Riley computational package.

Features of this package include:

  • implementation of a wide variety of algorithms to iterate over 2x2 matrix groups as well as various related number theoretic and combinatorial algorithms
  • close integration with pandas and related visualisation tools, especially HoloViews
  • support of $p$-adic groups, for which we use the pyadic library; see also the interesting work of Ari Markowitz
  • a reasonably large zoo of examples

Future features may include, time-permitting:

  • general tools for 2- and 3-dimensional hyperbolic geometry
  • integration with https://www.math.uic.edu/t3m/SnapPy/
  • approximation of related functions including Riemann functions and meromorphic forms
  • implementation of discreteness algorithms for groups with smaller numbers of generators

a parabolic Riley slice generated by slice.py

Background material on Kleinian groups

A Kleinian group is a discrete subgroup of $\mathrm{PSL}(2,\mathbb{C})$. These groups are the holonomy groups of complete hyperbolic 3-orbifolds, so every complete hyperbolic 3-orbifold is of the form $\mathbb{H}^3/G$ for $G$ a Kleinian group. For background material in Kleinian groups, see [B83,M87].

We are particularly interested in studying a particular moduli space of Kleinian groups, the Riley slice of Schottky space [KS94, KS98], together with its elliptic generalisations. Background specific to the Riley slice may be found in the proceedings article [EMS22b] and in my MSc thesis [Elz22]. For a more practical introduction to some of the computational geometry and some very nice pictures, see [MSW02] and its associated website. Many of the computations in this direction are done using the results obtained in our paper [EMS22a]. We also have some further recent results on the Riley slice which are of interest from a computational point of view [EMS21]; our construction of pleating ray neighbourhoods is used by the function `riley.RileyGroup.guess_radial_coordinate' to approximate the pleating coordinate of an input Riley group.

The visualisation software was inspired by the schottky software written by Danny Calegari and Alden Walker.

Installation

We use the setuptools package for ease of installation. Simply run pip install . to install.

Remark: sagemath is not a formal dependency, but some people find that it improves the performance of mpmath.

The software included

Python library

The library is called bella (so after installing run from bella import [module] in Python). It includes the following modules:

  • cayley.py -- methods for computing with general matrix groups via their Cayley graph (e.g. reducing words, computing limit sets)
  • farey.py -- methods for working with Farey words and polynomials
  • riley.py -- methods for working with individual Riley groups
  • slices.py -- methods for computing approximations of slice exteriors
  • chistyakov.py -- methods for embedding elements of $\mathbb{Q}_p$ into $\mathbb{C}$ [C96]

Examples

Examples are in the examples/ directory; see the readme file.

Now included is an up-to-date version of the graphical_limits.py software from riley that allows the user to click-and-drag around to view different limit sets around the Riley slices. To run this, run

panel serve examples/riley_limits.py

and click the link that appears in your terminal.

References

[B83] Alan F. Beardon. The geometry of discrete groups. Graduate Texts in Mathematics 91. Springer-Verlag, 1983.

[C96] D.V. Chistyakov, “Fractal geometry for images of continuous embeddings of p-adic numbers and solenoids into Euclidean spaces”. In: Theoretical and Mathematical Physics (109 1996), pp.1495–1507.

[Elz22] Alex Elzenaar. “Deformation spaces of Kleinian groups”. MSc thesis. The University of Auckland, 2022.

[EMS21] Alex Elzenaar, Gaven Martin, and Jeroen Schillewaert. “Approximations of the Riley slice”. November 2021. arXiv:2111.03230 [math.GT].

[EMS22a] Alex Elzenaar, Gaven Martin, and Jeroen Schillewaert. “The combinatorics of Farey words and their traces”. April 2022. arXiv:2204.08076 [math.GT]. A version with minor corrections is on my website.

[EMS22b] Alex Elzenaar, Gaven Martin, and Jeroen Schillewaert. “Concrete one complex dimensional moduli spaces of hyperbolic manifolds and orbifolds”. In: 2021-22 MATRIX annals. Ed. by David R. Wood, Jan de Gier, Cheryl E. Prager, and Terrence Tao. MATRIX Book Series 5. Springer, to appear.

[KS94] Linda Keen and Caroline Series. “The Riley slice of Schottky space”. In: Proceedings of the London Mathematics Society 3.1 (69 1994), pp. 72–90.

[KS98] Yohei Komori and Caroline Series. “The Riley slice revisited”. In: The Epstein birthday schrift. Vol. 1. Geometry and Topology Monographs. 1998, pp. 303–316.

[M87] Bernard Maskit. Kleinian groups. Grundlehren der mathematischen Wissenshaften 287. Springer-Verlag, 1987.

[MSW02] David Mumford, Caroline Series, and David Wright. Indra’s pearls: The vision of Felix Klein. Cambridge University Press, 2002.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.