Software

Some software under development (or developed in the recent years):

  • Z-code:

    Z-code is a parallel code implementing the MultiResolution method (mainly used for the solution of Reaction Diffusion systems, but this is not a limitation), in dimension 2 and 3. It is fully written in modern C++; parallelism is implemented using task stealing, with the TBB library (paper).

  • Odes-NG:

    Odes-NG has three parts:

    1- A careful rewriting in C++ of the classical programs of Hairer and Wanner Radau5, Rodas and SDIRK. Performances are improved by a relatively small factor (20%) compared to the fortran implementation. Programs are easier to use in a C++ program.

    2- A reimplementation in C++ of A. Abdulle Rock2 and Rock4 methods, avoiding copy of large arrays. I have also developed Rock4 and Rock2 programs specialised in the solution of linear (affine) parabolic problems (like the heat equation).

    3- An experimental implementation of the symplectic Runge-Kutta Gauss formulas.

    (Odes-NG is available on github).

  • Benchmarks for numerical Python, Pythran, Numba, Julia and C++

    Compare performances on simple but real numerical problems. This is a work in progress.

    (Available on github).

  • RKkit:

    A Sage package to manipulate and prove properties of Runge-Kutta methods (implicit or explicit). It is just in an early development phase.

    (RKkit is available on github).

  • DGSage:

    Experimental kernels (in C++) for the fast solution of heat equation and Poisson equation (use Discontinuous Galerkin, Chebyshev acceleration and Rock methods).

Some years ago:

  • Zebre:

    A parallel code (in shared memory) which implements the solution of Reaction-Diffusion systems using operator splitting, stiff equations solvers and finite volumes. It was used for the simulation of strokes on a "real" 3d brain (21 equations, a very stiff and very non linear problem!).

All these software are under various free software licenses.