Skip to main content

Numerical project all about (dynamical) zeta functions and resonances.

Project description

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.

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

PyZeta-0.1.1.tar.gz (116.5 kB view details)

Uploaded Source

Built Distribution

PyZeta-0.1.1-py3-none-any.whl (154.3 kB view details)

Uploaded Python 3

File details

Details for the file PyZeta-0.1.1.tar.gz.

File metadata

  • Download URL: PyZeta-0.1.1.tar.gz
  • Upload date:
  • Size: 116.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for PyZeta-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1f1b21a4677b2793e1c91a289a39e5e3316238fba300844cd13a546b01ba203f
MD5 7052b8361116fa7cedc7fb42e04e348e
BLAKE2b-256 3b908a4b24fe4e331385cf8086b29923f5cf3c2095964827d2094247fb3cfb83

See more details on using hashes here.

File details

Details for the file PyZeta-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: PyZeta-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 154.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for PyZeta-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d6716ed8e7355fdbfeb570fffc2be49a5b7dd43e44333f8fb0aed2fc88291388
MD5 c23eef6f52b189e1ced25e259ec24662
BLAKE2b-256 05fa81d9bf9e16809361075493bdf33a67c737d9294decaadd71e3d56b6c4f4e

See more details on using hashes here.

Supported by

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