ODE Test Problems: a MATLAB suite of initial value problems
Steven Roberts, Andrey A. Popov, Adrian Sandu
TL;DR
OTP provides a MATLAB-based, object-oriented framework for a broad suite of initial value problems to test numerical time integration and data assimilation. It unifies problem definitions via presets, enabling easy setup like $model = \text{csl.otp.}{problem}.presets.{Preset}$, while supporting access to $\text{RHS.F}$, $\text{TimeSpan}$, and $\text{Y0}$, and advanced features such as Jacobian information and partitioned RHS. The paper demonstrates a wide spectrum of problems—from linear Dahlquist to high-dimensional chaotic systems like Lorenz $63$ and Lorenz $96$, plus PDE-inspired discretizations such as QGSO and Gray–Scott—highlighting the framework’s versatility and testing utility. The authors emphasize ease of use, extendability, and cross-language compatibility (e.g., Python interface), underscoring OTP’s practical impact for benchmarking, solver development, and methodological research in computational science.
Abstract
ODE Test Problems (OTP) is an object-oriented MATLAB package offering a broad range of initial value problems which can be used to test numerical methods such as time integration methods and data assimilation (DA) methods. It includes problems that are linear and nonlinear, homogeneous and nonhomogeneous, autonomous and nonautonomous, scalar and high-dimensional, stiff and nonstiff, and chaotic and nonchaotic. Many are real-world problems from fields such as chemistry, astrophysics, meteorology, and electrical engineering. OTP also supports partitioned ODEs for testing IMEX methods, multirate methods, and other multimethods. Functions for plotting solutions and creating movies are available for all problems, and exact solutions are provided when available. OTP is desgined for ease of use-meaning that working with and modifying problems is simple and intuitive.
