Welcome to PyZeta’s documentation!

Project

Build Status

Coverage

Checkers

Benchmarks

badge1

badge5

badge6

badge8

badge2

badge3

badge4

badge0

badge7


Welcome to PyZeta!

This is the documentation of the PyZeta project, welcome!

This numerical open source project implements a variety of different functionality centered around classical Pollicott-Ruelle, semiclassical, and quantum resonances for chaotic dynamical systems. Concrete examples for the latter are convex obstacle scattering systems but also convex-cocompact hyperbolic surfaces. The resonances themselves have many interesting and important applications for example in decay of correlations, quantum-classical correspondence, convergence to equilibrium, or control theory.

Work on PyZeta began as part of a PhD thesis [Sch2023] on weighted zeta functions for invariant Ruelle distributions but has since extended its scope to pretty much any resonance related numerical methods. The name PyZeta derives from the ubiquitous use of zeta functions to calculate both resonances as well as other resonance related data. These zetas are generally holomorphic or meromorphic functions

\begin{equation} \zeta: \mathbb{C} \rightarrow \mathbb{C} \end{equation}

which encode some interesting dynamical quantities in their zeros or poles. For an overview over the underlying mathematical theory as well as links to the original publications giving precise definitions and theorems see Theoretical Background.

Note

This is an ongoing project. Any contributions such as feature requests, bug reports, or collaborations on documentation, theoretical background, or practical implementation are much appreciated!


[Sch2023]

Schuette, Philipp. Invariant Ruelle Distributions for Open Hyperbolic Systems – An Analytical and Numerical Investigation. PhD Thesis (2023)

How to Contribute

If you would like to contribute anything from an improvement of the documentation, a new feature request, bug report or (parts of) an algorithm that is even so remotely related to zeta functions/resonances, 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 GitHub 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 the repo. 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.