Motivation. Time-dependent differential equations are ubiquitous in physical sciences and engineering. Typically, numerical algorithms like Euler’s method, multi-step or Runge-Kutta methods are used to solve them. Methods that have higher order of convergence often can deliver better results, in particular when simulations need to be performed with very high precision.
Spectral deferred corrections (SDC) are a relatively new class of method that can deliver arbitrary convergence order through simple changes of runtime parameter, compared to the often difficult derivation of order conditions that is needed for Runge Kutta methods. However, they are computationally expensive. Not much is known how SDC compares to existing and widely used algorithms.
Methodology. To do a fair comparison in terms of performance, the project will use the ode solver library provided by the Python package SciPy as a baseline. It offers efficient implementations of many popular ODE solvers against which performance of SDC can be compared. The project will develop a Python implementation of SDC using the same data structures and interfaces and the run comparisons for a variety of selected test problems. This should give a clearer picture of the type of problems and parameter range where SDC delivers better performance than existing approaches.
Aims and deliverables.
- To obtain a good understanding of numerical time stepping methods in general and spectral deferred corrections (SDC) in particular.
- To implement the SDC algorithm in Python using the interfaces provided by the SciPy solve_ivp function.
- To identify a range of meaningful test problems and perform a comprehensive comparison how SDC performs compared against existing algorithms provided by SciPy.