Juliacon 2024

Fast, Elegant, Set-oriented Numerical Analysis using GAIO.jl
2024-07-10 , If (1.1)

GAIO (Global Analysis of Invariant Objects) is a package for set oriented numerics in dynamical systems. It provides algorithms for discretisation of the Koopman operator among other uses. The Koopman operator has been of much interest in the last decade, since it can be used in order to compute, e.g., almost invariant, cyclic and coherent sets (to name just some uses). Originally written in the 90s in C, GAIO has been redesigned in Julia and is concise, while outperforming the original.


In this talk, we present a Julia version of GAIO. The data structures and the
algorithmic interface have been completely redesigned such that the code of the algorithms is very concise and close to their mathematical pseudocode. At the same time, the performance is equal or better than the one of the C version.

This is illustrated through an example: an algorithm for computing attractors is devised and implemented. It is tested on a classical example of a strange
attractor from dynamical systems literature.

GAIO makes extensive use of multiple dispatch to construct various discretisation techniques for cell mapping, as well as to interact with the established scientific computing ecosystem (DynamicalSystems, DifferentialEquations, Makie, etc.). Thanks to Julia's CUDA package, GPU acceleration is as easy as setting a keyword argument during initialisation. This is shown at the end of the talk.

Code:
https://github.com/gaioguys/GAIO.jl

Documentation:
https://gaioguys.github.io/GAIO.jl/

See also: Slides (160.4 KB)

I am a mathematician located at the Technical University Munich (TUM) in the department for numerics of complex systems.
GitHub:
https://github.com/April-Hannah-Lena