A Python 3 libary for fast generation of regular hyperbolic tilings

## Project description

hypertiling is a Python 3 libary for fast generation of regular hyperbolic tilings, embedded in the Poincare disk model.

Using efficient algorithms and the power of numpy, hyperbolic graphs with millions of polygons can be created in a matter of minutes on a single CPU. We also provide optimized search algorithms for finding adjacent vertices, which allows to use the graph for all sorts of scientific purposes.

## Source

The package can be found and downloaded in our public git repository.

## Installation and Usage

Hypertiling is available in the PyPI package index and can be installed using

$pip install hypertiling  The package can also be locally installed. First download or clone the package, using $ git clone https://git.physik.uni-wuerzburg.de/hypertiling/hypertiling


Now execute

$pip install .  in the package's root directory to install the package in-place. For developer mode use $ pip install -e .


In Python, import tiling object from hypertiling library

from hypertiling import HyperbolicTiling


Set parameters, initialize and generate the tiling

p = 7
q = 3
nlayers = 5

T = HyperbolicTiling(p,q,nlayers)
T.generate()


## Authors

This project is developed at:
Institute for Theoretical Physics and Astrophysics
University of Wuerzburg

## Examples

Simulation of a Ising-like Boltzmann spin model on a hyperbolic (7,3) tiling at low temperature. One readily recognizes a number of magnetic domains of opposite spin orientation (red/blue areas). The domain walls are approximately given by arcs of Euclidean circles contained within the disk and orthogonal to its boundary. These arcs represent straight lines in the Poincare disk representation of the hyperbolic plane.

Further information and examples can be found in our Jupyter notebooks in /examples subfolder.

Every part of hypertiling is available under the MIT license.

## Project details

Uploaded source