SciML Numerical Differential Equations Projects – Google Summer of Code

Native Julia ODE, SDE, DAE, DDE, and (S)PDE Solvers

The DifferentialEquations.jl ecosystem has an extensive set of state-of-the-art methods for solving differential equations hosted by the SciML Scientific Machine Learning Software Organization. By mixing native methods and wrapped methods under the same dispatch system, DifferentialEquations.jl serves both as a system to deploy and research the most modern efficient methodologies. While most of the basic methods have been developed and optimized, many newer methods need high performance implementations and real-world tests of their efficiency claims. In this project students will be paired with current researchers in the discipline to get a handle on some of the latest techniques and build efficient implementations into the *DiffEq libraries (OrdinaryDiffEq.jl, StochasticDiffEq.jl, DelayDiffEq.jl). Possible families of methods to implement are:

See the full list of 78 open new-algorithm issues for all requested methods.

Many of these methods are the basis of high-efficiency partial differential equation (PDE) solvers and are thus important to many communities like computational fluid dynamics, mathematical biology, and quantum mechanics.

This project is good for both software engineers interested in the field of numerical analysis and those students who are interested in pursuing graduate research in the field.

Recommended Skills: Background knowledge in numerical analysis, numerical linear algebra, and the ability (or eagerness to learn) to write fast code.

Expected Results: Contributions of production-quality solver methods.

Mentors: Chris Rackauckas, Kanav Gupta and Utkarsh, Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Easy to Hard depending on the chosen subtasks.

Global Error Estimation and Control for Differential Equations

Standard ODE solvers control only the local truncation error at each step, but users often care about the global (accumulated) error at the end of a simulation. GlobalDiffEq.jl aims to provide solvers that estimate and control global error for the DifferentialEquations.jl common interface. This project would develop practical, high-performance implementations of several complementary strategies from the numerical analysis literature:

The resulting solvers would integrate directly with the SciML ecosystem, providing users with reliable global error bounds alongside their numerical solutions. This is particularly important for long-time integration problems in celestial mechanics, molecular dynamics, and climate modeling where local error control alone can be insufficient.

Recommended Skills: Background knowledge in numerical analysis (particularly ODE solver theory), familiarity with Runge-Kutta and multistep methods, and the ability (or eagerness to learn) to write fast Julia code. Some familiarity with adjoint methods is helpful but not required.

Expected Results: Production-quality implementations of two or more global error estimation strategies in GlobalDiffEq.jl, with benchmarks demonstrating their accuracy and efficiency on standard test problems.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Medium to Hard depending on the chosen subtasks.

Stabilized Explicit Methods for Large-Scale Parabolic PDEs

Semi-discretizations of parabolic PDEs (e.g., heat equation, reaction-diffusion systems) produce mildly stiff ODE systems whose eigenvalues lie along the negative real axis. Standard explicit methods require impractically small time steps for stability, while implicit methods require expensive linear solves. Stabilized explicit methods bridge this gap by using extended stability regions along the real axis, achieving explicit-method simplicity with near-implicit stability. OrdinaryDiffEq.jl already has ROCK2 and ROCK4, but many related methods remain unimplemented:

Recommended Skills: Background in numerical analysis, particularly stability theory of ODE methods. Familiarity with PDE discretizations is helpful.

Expected Results: Production-quality implementations of two or more stabilized explicit methods with benchmarks against ROCK2/ROCK4.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Medium to Hard depending on the chosen subtasks.

Exponential Integrators

Exponential integrators are a class of methods that exactly solve the linear part of a semilinear ODE u' = Lu + N(u) using the matrix exponential (or related phi-functions), and only discretize the nonlinear part N(u). This makes them highly efficient for stiff problems arising from PDE semi-discretizations where the stiffness comes primarily from the linear operator. OrdinaryDiffEq.jl has some basic exponential methods, but many advanced variants remain open:

See #394 for the full list of exponential integrators to implement.

Recommended Skills: Background in numerical analysis, particularly matrix functions and Krylov methods. Familiarity with PDE semi-discretizations is helpful.

Expected Results: Production-quality implementations of two or more exponential integrator families with benchmarks on stiff PDE test problems.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Medium to Hard depending on the chosen subtasks.

DAE Solver Methods

Differential-algebraic equations (DAEs) arise naturally in acausal modeling (ModelingToolkit.jl), circuit simulation, constrained mechanical systems, and chemical process engineering. While OrdinaryDiffEq.jl has basic DAE support via BDF and Radau methods, many specialized DAE solvers from the literature remain unimplemented:

Recommended Skills: Background in numerical analysis, particularly differential-algebraic equations and implicit methods. Familiarity with linear algebra factorizations is helpful.

Expected Results: Production-quality implementations of two or more DAE solver methods, tested against the DAE test set.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Hard.

Lie Group and Geometric Integration Methods

Many differential equations arising from physics (rigid body dynamics, quantum mechanics, robotics) have solutions that evolve on Lie groups or manifolds rather than in Euclidean space. Lie group integrators preserve this geometric structure, avoiding drift off the manifold that plagues standard methods. OrdinaryDiffEq.jl has some basic Lie group integrators, but many methods remain unimplemented:

Recommended Skills: Background in differential geometry or Lie group theory is helpful but not required. Familiarity with numerical ODE methods and the ability to write Julia code.

Expected Results: Production-quality implementations of two or more Lie group integration methods with tests on rigid body and quantum mechanics problems.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Medium to Hard depending on the chosen subtasks.

Second-Order ODE and Runge-Kutta-Nystrom Methods

Many physical systems (celestial mechanics, molecular dynamics, structural vibrations) are naturally described by second-order ODEs q'' = f(q, q', t). While these can always be converted to first-order systems, specialized Runge-Kutta-Nystrom (RKN) methods that exploit the second-order structure are significantly more efficient. OrdinaryDiffEq.jl has some basic RKN methods, but many advanced variants remain open:

Recommended Skills: Background in numerical analysis, particularly Nystrom methods and symplectic integration. Familiarity with celestial mechanics or molecular dynamics applications is helpful.

Expected Results: Production-quality implementations of two or more second-order ODE methods with benchmarks on orbital mechanics or molecular dynamics problems.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Easy to Hard depending on the chosen subtasks.

Performance enhancements for differential equation solvers

Wouldn't it be cool to have had a part in the development of widely used efficient differential equation solvers? DifferentialEquations.jl has a wide range of existing methods and an extensive benchmark suite which is used for tuning the methods for performance. Many of its methods are already the fastest in their class, but there is still a lot of performance enhancement work that can be done. In this project you can learn the details about a wide range of methods and dig into the optimization of the algorithm's strategy and the implementation in order to improve benchmarks. Projects that could potentially improve the performance of the full differential equations ecosystem include:

Recommended Skills: Background knowledge in numerical analysis, numerical linear algebra, and the ability (or eagerness to learn) to write fast code.

Expected Results: Improved benchmarks to share with the community.

Mentors: Chris Rackauckas and Oscar Smith

Expected Project Size: 350 hour.

Difficulty: Easy to Hard depending on the chosen subtasks.

Discretizations of partial differential equations

There are two ways to approach libraries for partial differential equations (PDEs): one can build "toolkits" which enable users to discretize any PDE but require knowledge of numerical PDE methods, or one can build "full-stop" PDE solvers for specific PDEs. There are many different ways solving PDEs could be approached, and here are some ideas for potential projects:

  1. Automated PDE discretization tooling. We want users to describe a PDE in its mathematical form and automate the rest of the solution process. See this issue for details.

  2. Enhancement of existing tools for discretizing PDEs. The finite differencing (FDM) library MethodOfLines.jl could be enhanced to allow non-uniform grids or composition of operators. The finite element method (FEM) library FEniCS.jl could wrap more of the FEniCS library.

  3. Full stop solvers of common fluid dynamical equations, such as diffusion-advection-convection equations, or of hyperbolic PDEs such as the Hamilton-Jacobi-Bellman equations would be useful to many users.

  4. Using stochastic differential equation (SDE) solvers to efficiently (and highly parallel) approximate certain PDEs.

  5. Development of ODE solvers for more efficiently solving specific types of PDE discretizations. See the "Native Julia solvers for ordinary differential equations" project.

Recommended Skills: Background knowledge in numerical methods for solving differential equations. Some basic knowledge of PDEs, but mostly a willingness to learn and a strong understanding of calculus and linear algebra.

Expected Results: A production-quality PDE solver package for some common PDEs.

Mentors: Chris Rackauckas and Alex Jones

Expected Project Size: 350 hour.

Difficulty: Medium to Hard depending on the chosen subtasks.

Jump Process Simulation Algorithms

Jump processes are a widely used approach for modeling biological, chemical and epidemiological systems that can account for both stochastic interactions, and spatial transport, of proteins/particles/agents. JumpProcesses.jl provides a library of optimized solvers for exactly simulating jump processes, including recently added solvers that allow for the simulation of spatially-distributed jump processes (where particles/agents move on graphs or general meshes). A variety of possible projects to extend and enhance the current tooling include

Recommended Skills: Stochastic processes, numerical ODEs, an understanding of how the Gillespie method or basic jump process simulation algorithms work, and experience using JumpProcesses.jl to simulate jump processes.

Expected Results: Completing one or more of the preceding improvements to the jump process simulation tooling.

Mentors: Samuel Isaacson and Chris Rackauckas.

Expected Project Size: 350 hour.

Difficulty: Hard, generally requires significant mathematical and/or theoretical chemistry background beyond beginning undergraduate classes, including background in stochastic processes and their numerical simulation. Only recommended for advanced undergraduates and/or graduate students. Not a project that AIs can handle without substantial, informed supervision and planning.