Skip to main content

Project

Build Status

Coverage

Checkers

Benchmarks

badge1

badge5

badge6

badge8

badge2

badge3

badge4

docstr-coverage=?

badge7


Introduction

Welcome to PyZeta!

PyZeta is a numerical project written (mostly) in Python. It aims at providing an easy to use interface for the calculation of Pollicott-Ruelle resonances of the geodesic flow on convex cocompact hyperbolic surfaces, i.e. Schottky surfaces. It is planned to provide resonance calculation tools for scattering systems in the future.

The implementation of these facilities heavily relies on the connection between resonances and zeros of dynamical zeta functions. The latter are numerically tractible in the settings mentioned above because of the availability of symbolic dynamics and a technique known as cycle expansion.

The PyZeta project offers its users capabilities ranging from the simple generation of resonance plots for illustrational purposes in papers or talks to advanced numerical experimentation. Furthermore it is capable of calculating so-called weighted zeta functions which allow a more in-depth investigation of resonance structures via certain generalized densities in phase space called invariant Ruelle distributions.

Project Features

This project is in the middle of a migration to an open source model. The following features are already implemented in legacy code and will be ported to this project (soon!):

  • several functions and classes for the calculation and visualisation of geometric quantities of hyperbolic geometry (module hypgeo)

  • class representations of the following Schottky surfaces: hyperbolic cylinder, funneled torus, n-funnel surface (module ifs)

  • an abstract base class for custom implementations of hyperbolic surfaces (module ifs)

  • calculation of quantum mechanical resonances for hyperbolic surfaces (module zeta)

  • calculation of classical resonances for the geodesic flow on hyperbolic surfaces, which for Schottky surfaces coincides with the quantum resonances spectrum by the quantum-classical correspondence (module wzeta)

  • a browser based resonance viewer that allows you to select subsets of resonances according to your requirements for future applications in e.g. invariant Ruelle distribution calculations (module selector)

  • calculation of invariant Ruelle distributions for the geodesic flow on hyperbolic surfaces (module wzeta)

Comprehensive coverage of all modules and an introduction to the mathematics and numerical methods can be found on ReadTheDocs. We also provide hints to the original maths and physics literature. As part of the documentation we provide interactive Jupyter notebooks which could e.g. serve as the starting point for your own PyZeta based research or applications.

Installation

If you have Cython installed, you can simply install this project via pip:

$ pip install pyzeta

If you don’t have a local version of Cython you need to install it first:

$ pip install cython
$ pip install pyzeta

Alternatively you can clone this repository, change into the newly created directory and install it via the following commands (which also installs all dependencies required for development):

$ pip install cython
$ pip install -e .[dev]

Requirements

The core (non-development) requirements for this project include some exceedingly popular numerics packages: numpy, scipy, matplotlib. Furthermore we require cython and rely heavily on numba for performance optimization. Finally we use bokeh to build and run our browser based visualisation tool selector.py.

Getting Started

Tests

The PyZeta project contains a comprehensive test suite for all modules mentioned above. While the tests are an integral part of our continuous integration pipeline, you can just as well run the tests yourself, e.g. to verify your local installation after cloning this repository:

$ pytest pyzeta/tests/

Contributing

If you would like to contribute anything from an improvement of the documentation, a new feature request, bug report or (parts of) a root finding algorithm, please feel free to do so. Any collaborations are welcome and the documentation or the open issues might be a good place to start.

To contribute, either clone or fork the repository and create a development branch dev/<your_feature>. Once you have completed your work on this branch create a pull request on the main branch of this repository. At this point your PR requires (at least) one positive review from a core contributor. Once you have received such a review, maybe after addressing some comments and suggestions by the reviewer(s), your PR will be merged effectively making your work part of the mainline PyZeta package.

Metadata

Release files for PyZeta 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyZeta 0.1.1
File Size Uploaded
PyZeta-0.1.1.tar.gz 116.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyZeta 0.1.1
File Interpreter ABI Platform
PyZeta-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 270.8 kB

Release files / PyZeta-0.1.1.tar.gz

Download URL PyZeta-0.1.1.tar.gz
Size 116.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1f1b21a4677b2793e1c91a289a39e5e3316238fba300844cd13a546b01ba203f
BLAKE2b-256 checksum
How to use checksums
3b908a4b24fe4e331385cf8086b29923f5cf3c2095964827d2094247fb3cfb83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / PyZeta-0.1.1-py3-none-any.whl

Download URL PyZeta-0.1.1-py3-none-any.whl
Size 154.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6716ed8e7355fdbfeb570fffc2be49a5b7dd43e44333f8fb0aed2fc88291388
BLAKE2b-256 checksum
How to use checksums
05fa81d9bf9e16809361075493bdf33a67c737d9294decaadd71e3d56b6c4f4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page