Return
pythOS: A Python Library for Solving IVPs by Operator Splitting
DOI:10.1145/3828540.png)
Abstract
En 中文
Operator-splitting methods are widespread in the numerical solution of differential equations, especially the initial-value problems in ordinary differential equations that arise from a method-of-lines discretization of partial differential equations. Such problems can often be solved more effectively by treating terms individually with specialized methods rather than simultaneously in a monolithic fashion. This article describes pythOS, a Python software library for the systematic solution of differential equations by operator-splitting methods. The functionality of pythOS focuses on fractional-step methods, including those with real and complex coefficients, but it also implements additive Runge–Kutta methods, generalized additive Runge–Kutta methods, multi-rate methods, and multi-rate infinitesimal methods. Experimentation with the solution of practical problems is facilitated through an interface to the Firedrake library for the finite element spatial discretization of partial differential equations and further enhanced by the convenient implementation of exponential time-integration methods and fully implicit Runge–Kutta methods available from the Irksome software library. The functionality of pythOS as well as some less appreciated aspects and comparisons of operator-splitting methods are demonstrated by means of examples. In addition, we present direct comparisons of the implemented methods across multiple stiffness regimes, revealing systematic performance trends and the impact of splitting strategy and stiffness treatment on efficiency.
Keywords:
time stepping,operator splitting,fractional-step methods,additive Runge–Kutta methods,multi-rate methods,multi-rate infinitesimal methods
Journal
IF:
3.2
Papers:
35
Citations:
5.1K
Organization
No organization information available

