Numerical project written (mostly) in Python that is all about (dynamical) zeta functions and their application to the calculation of (quantum and classical) resonances.
Scattering of hard balls (classical) or wave functions (quantum mechanical) on obstacles is a problem very commonly considered in both mathematics and physics. The dynamical features, in particular hyperbolicity, of such scattering on n discs in the plane are very similar to those of the geodesic flow. From there it is only a small step towards are great similarity in the calculation of resonances from zeta functions.
This project should therefore consider including classical and quantum mechanial n-disk scattering systems to leverage the mathematical and numerical similarity with the already existing implementations for Schottky surfaces.
At the moment there is no logging (with Loggable) in the different modules under pyzeta.framework.aop. This is due to circular imports from the ContainerProvider. But the latter actually only needs to know about interfaces of aspects. Logging should therefore be added back in and the dependencies should be decoupled by introducing a facade for aspects.
While being quite straightforward to implement, cycle expansion is not an optimal algorithm for the calculation of (dynamical) zeta functions. This is mainly due to the exponential growth of the number of closed geodesics as their length grows towards infinity.
Thankfully, other algorithms exist: [Bandtlow, Pohl, Schick, Weiße 2020] demonstrated how to calculate zeta functions in their representation as Fredholm determinants. Having such an alternative algorithm available within the PyZeta project could on the one hand enable the calculation of resonances significantly further into the left halfplane. On the other hand one could then verify both methods against each other to gain additional confidence in the validity of the results.