A selection of scientific computing projects that I maintain on GitHub.

Chebfun in Python

An implementation of Trefethen and Battles' Chebfun package in Python.

B-Splines on symmetric spaces

Using the de Casteljau algorithm to create $C^2$ splines on symmetric spaces.

Image matching with PyTorch

Minimise any loss function using automatic differentiation to do direct or indirect matching

Computing shape invariants of planar curves using finite element method

Python library for computing shape invariants of planar curves using finite element method and the FEniCS package.

Bifurcation diagrams of nonlinear wave equations

Bifurcation diagrams of traveling waves for nonlinear wave equations.

Spin system simulator

Simulations of spin systems with the spherical midpoint method.

Multi-symplectic solver in Python

Simulations of wave maps with the multi-symplectic SHAKE method.

Homogeneous space integrators

Integrate any differential equation on any homogeneous space. It is an implementation of the skeleton description of Runge–Kutta methods on homogeneous spaces. The only requirement is to have an isotropy choice at your disposal for the homogeneous space at hand. Many such isotropy choices are available from our paper. There are examples in the corresponding notebook demo.

Padé approximations of exponentials

Padé approximations of exponential (φ) functions, a port of the expint Matlab package.

ODE solvers in Python

Numerical simulation of ODEs in Python