Skip to main content

hypertiling is a high-performance Python library for the generation and visualization of regular hyperbolic lattices

Project description

project icon

PyPI PyPI - Downloads DOI Website Discord

badge_coverage badge_maintainability badge_pipeline

hypertiling is a high-performance Python library for the generation and visualization of regular hyperbolic lattices embedded in the Poincare disk model. Using highly optimized, efficient algorithms, hyperbolic tilings with millions of vertices can be created in a matter of minutes on a single workstation computer. Facilities including computation of adjacent vertices, dynamic lattice manipulation, refinements, as well as powerful plotting and animation capabilities are provided to support advanced uses of hyperbolic graphs.

Installation

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

$ pip install hypertiling

For optimal performance, we highly recommand to use hypertiling together with python-numba, which, if not already present on your system can be installed automatically using the [numba]-suffix, i.e.

$ pip install hypertiling[numba]

The package can also be locally installed from our public git repository via

$ git clone https://git.physik.uni-wuerzburg.de/hypertiling/hypertiling
$ pip install .

Quick Start

In Python, import tiling object from the hypertiling library

from hypertiling import HyperbolicTiling

Set parameters, initialize and generate the tiling

p = 7
q = 3
nlayers = 5

T = HyperbolicTiling(p,q,nlayers) 

Documentation

Further usage examples and a full API reference are available in our documentation.

Authors

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

Citation

If you use hypertiling, we encourage you to cite or reference this work as you would any other scientific research. The package is a result of a huge amount of time and effort invested by the authors. Citing us allows us to measure the impact of the research and encourages others to use the library.

Codebase:

Manuel Schrauth, Yanick Thurn, Florian Goth, Jefferson Portela, Dietmar Herdt and Felix Dusel. (2023). The hypertiling project. Zenodo. https://doi.org/10.5281/zenodo.7559393

Release publication:

Manuel Schrauth, Yanick Thurn, Florian Goth, Jefferson Portela, Dietmar Herdt and Felix Dusel. (2024). HYPERTILING - a high performance python library for the generation and visualization of hyperbolic lattices project. SciPost Physics Codebases (2024): 034.

Further publications:

Yanick Thurn, Manuel Schrauth, Johanna Erdmenger. Hyperbolic tiling neighborhoods in O(1) time. arXiv preprint

Examples

Tilings

The core functionality of the package is the generation of regular hyperbolic tilings projected onto the Poincare disk. Tilings in the upper row are centered about a cell, in the lower row about a vertex.

Refinements

The hypertiling package allows to perform triangle refinements, such as shown here

Applications

Hyperbolic Magnet

Simulation of a Ising-like Boltzmann spin model with anti-ferromagnetic interactions on a hyperbolic (7,3) tiling, quenched at low temperature. The hyperbolic antiferromagnet (left) exhibits geometrical frustration, whereas on a flat lattice (right) an ordered anti-parallel alignment can be observed.

Helmholtz Equation

Solution of an electrostatic Helmholtz problem on a refined (3,7) tiling, where boundary values have been fixed to either -1 (red) or +1 (blue). One readily recognizes a field value separation according to geodesic arcs in the Poincare disk representation of the hyperbolic plane.

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

License

Every part of hypertiling is available under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hypertiling-1.5.1.tar.gz (97.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hypertiling-1.5.1-py3-none-any.whl (118.8 kB view details)

Uploaded Python 3

File details

Details for the file hypertiling-1.5.1.tar.gz.

File metadata

  • Download URL: hypertiling-1.5.1.tar.gz
  • Upload date:
  • Size: 97.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for hypertiling-1.5.1.tar.gz
Algorithm Hash digest
SHA256 e79dd931f9030f153333bbf2930e99478cf75b2c4b1fad7bf2e558aed96b57c2
MD5 cadfbe4d212ff4460dc75ce5332e5180
BLAKE2b-256 7ea56a16a738d98f6481315d123ceaa0da7c91263958ce2a5a8c491d9369c04c

See more details on using hashes here.

File details

Details for the file hypertiling-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: hypertiling-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 118.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for hypertiling-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 98579777081bb876347c7ec6ef075cb49ae78353007fdfd31dfb9e225043e33b
MD5 856cdd8fab45879d5dd26f8e2573706d
BLAKE2b-256 7b537f2d1220fce2bd1b9cae1de6e21cbf784bb58864aa949df38980ebc40c13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page