Summary: | There are three distinct processes that are predominant in models of flowing
media with interacting components: advection, reaction, and diffusion.
Collectively, these processes are typically modelled with partial differential
equations (PDEs) known as advection-reaction-diffusion (ARD) equations.<p>
To solve most PDEs in practice, approximation methods known as numerical methods
are used. The method of lines is used to approximate PDEs with systems of
ordinary differential equations (ODEs) by a process known as
semi-discretization. ODEs are more readily analysed and benefit from
well-developed numerical methods and software. Each term of an ODE that
corresponds to one of the processes of an ARD equation benefits from particular
mathematical properties in a numerical method. These properties are often
mutually exclusive for many basic numerical methods.<p>
A limitation to the widespread use of more complex numerical methods is that the
development of the appropriate software to provide comparisons to existing
numerical methods is not straightforward. Scientific and numerical software is
often inflexible, motivating the development of a class of software known as
problem-solving environments (PSEs). Many existing PSEs such as Matlab have
solvers for ODEs and PDEs but lack specific features, beyond a scripting
language, to readily experiment with novel or existing solution methods. The PSE
developed during the course of this thesis solves ODEs known as initial-value
problems, where only the initial state is fully known. The PSE is used to assess
the performance of new numerical methods for ODEs that integrate each term of a
semi-discretized ARD equation. This PSE is part of the PSE pythODE that uses
object-oriented and software-engineering techniques to allow implementations of
many existing and novel solution methods for ODEs with minimal effort spent on
code modification and integration.<p>
The new numerical methods use a commutator-free exponential Runge-Kutta (CFERK)
method to solve the advection term of an ARD equation. A matrix exponential is
used as the exponential function, but CFERK methods can use other numerical
methods that model the flowing medium. The reaction term is solved separately
using an explicit Runge-Kutta method because solving it along with the
diffusion term can result in stepsize restrictions and hence inefficiency. The
diffusion term is solved using a Runge-Kutta-Chebyshev method that takes
advantage of the spatially symmetric nature of the diffusion process to avoid
stepsize restrictions from a property known as stiffness. The resulting methods,
known as Integrating-factor-based 2-additive Runge-Kutta methods, are shown to be able to find higher-accuracy
solutions in less computational time than competing methods for certain
challenging semi-discretized ARD equations. This demonstrates the practical
viability both of using CFERK methods for advection and a 3-splitting in
general.
|