Improving the stability and efficiency of high-order operator-splitting methods
Authors:
Siqi Wei,
Victoria Guenter,
Raymond J. Spiteri
Abstract:
Operator-splitting methods are widely used to solve differential equations, especially those that arise from multi-scale or multi-physics models, because a monolithic (single-method) approach may be inefficient or even infeasible. The most common operator-splitting methods are the first-order Lie--Trotter (or Godunov) and the second-order Strang (Strang--Marchuk) splitting methods. High-order spli…
▽ More
Operator-splitting methods are widely used to solve differential equations, especially those that arise from multi-scale or multi-physics models, because a monolithic (single-method) approach may be inefficient or even infeasible. The most common operator-splitting methods are the first-order Lie--Trotter (or Godunov) and the second-order Strang (Strang--Marchuk) splitting methods. High-order splitting methods with real coefficients require backward-in-time integration in each operator and hence may be adversely impacted by instability for certain operators such as diffusion. However, besides the method coefficients, there are many other ancillary aspects to an overall operator-splitting method that are important but often overlooked. For example, the operator ordering and the choice of sub-integration methods can significantly affect the stability and efficiency of an operator-splitting method. In this paper, we investigate some design principles for the construction of operator-splitting methods, including minimization of local error measure, choice of sub-integration method, maximization of linear stability, and minimization of overall computational cost. We propose a new four-stage, third-order, 2-split operator-splitting method with seven sub-integrations per step and optimized linear stability for a benchmark problem from cardiac electrophysiology. We then propose a general principle to further improve stability and efficiency of such operator-splitting methods by using low-order, explicit sub-integrators for unstable sub-integrations. We demonstrate an almost 30\% improvement in the performance of methods derived from these design principles compared to the best-known third-order methods.
△ Less
Submitted 4 January, 2025;
originally announced January 2025.
pythOS: A Python library for solving IVPs by operator splitting
Authors:
Victoria Guenter,
Siqi Wei,
Raymond J. Spiteri
Abstract:
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 the various terms individually with specialized methods rather than simultaneously in…
▽ More
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 the various terms individually with specialized methods rather than simultaneously in a monolithic fashion. This paper 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, and multi-rate, 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 generally appreciated aspects of operator-splitting methods are demonstrated by means of examples.
△ Less
Submitted 7 July, 2024;
originally announced July 2024.