Code

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

Chebfun in Python
pychebfun

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


B-Splines on symmetric spaces
bsplinelab

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


Image matching with PyTorch
diffeopt

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


Computing shape invariants of planar curves using finite element method
femshape

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


Bifurcation diagrams of nonlinear wave equations
SpectraVVave

Bifurcation diagrams of traveling waves for nonlinear wave equations.


Spin system simulator
spinsys

Simulations of spin systems with the spherical midpoint method.


Multi-symplectic solver in Python
multishake

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


Homogeneous space integrators
homogint

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
padexp

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


ODE solvers in Python
odelab

Numerical simulation of ODEs in Python