Skip to content
Abstract wavefront illustration representing numerical integration methods.

DESolve for ambitious time-integration experiments

A compact Python codebase for exploring Runge-Kutta, ESDIRK, ARK, GLEE, MRK, and IMEX methods without dragging a heavyweight framework behind every numerical idea.

Created and maintained by Emil M. Constantinescu. For papers, research context, and related projects, visit emconsta.github.io.

Research-first

DESolve is small enough to understand quickly and flexible enough to support method-table experimentation, notebook workflows, and solver hacking.

Broad method coverage

The library ships method families for classic RK, ESDIRK, ARK, GLEE, extrapolation-style ideas, and multirate IMEX variants.

Simple problem interface

Right-hand sides follow a consistent (t, u, ctx) -> (f, jac) signature, which keeps numerical experiments explicit and easy to audit.

Notebook-friendly

The repository includes reference problems, experiments, and plots used to test ideas and reproduce numerical behavior.

DESolve is not trying to be a batteries-included scientific platform. It is a focused solver codebase that exposes method registration and stepping logic directly enough for numerical method development.

That makes it a strong fit when you want to:

  • prototype or compare integration methods without a deep framework layer
  • inspect how specific method tables are registered and consumed
  • connect reference ODE and PDE problems to lightweight notebooks
  • keep the jump from paper idea to executable experiment short

If you are studying or designing time integrators, this codebase is meant to stay close to the mathematics instead of hiding it behind too much machinery.