The numerical simulation research lab specializes in designing problem-solving software environments for finding novel techniques to solve challenging scientific and engineering problems. Applications include computational fluid dynamics, fuel cell simulation, simulation of electrical activity in cardiac tissue, design of catalytic converters for carbon sequestration, robotics and optimal control.


View Image

We are interested in the development of problem solving environments for a variety of numerical problems, with a focus on Differential Equations. At present we have 4 main pieces of software. For information regarding downloading and usage, please visit our software page: **COMING SOON**
The pythODE problem solving environment (PSE) is designed to manage the code for ordinary differential equations (ODEs), associated numerical methods, and any supporting routines in order to conduct large-scale heterogeneous numerical experiments. Due to the amount of computation required to generate the large data sets derived from large-scale heterogeneous experiments, pythODE helps manage parallel computations on highly heterogeneous clusters in order to make better use of available computational resources.

Large-scale experimentation will lead to more insights into numerical algorithms and allow the development and usage of better algorithms than would otherwise be possible. It can be expected that the knowledge gained from large numerical experiments will become increasingly important to complement mathematical analysis for 21st century computation.

pythODE is authored by Andrew Kroshko and Adam Preuss

pythNon is a problem-solving environment dedicated to the solution of systems of nonlinear algebraic equations. It is designed for rapid prototyping of problems and their solution as well as allowing access to aspects of the solution process not normally available from other solvers.

It has many features, including:

  • An integrated editor to write code for the problems
  • Simultaneous solution of multiple problems via the controller window
  • Choice of many direct and iterative linear system solvers
  • Easy performance comparison of different solution methods via the results window
pythOPT is an optimization problem-solving environment which can use multiple solvers to compute the optimal fitness value. Multi-variate and noisy functions are supported as well.It features support for user implemented or provided Fortran solvers and Python solvers. It includes support for:

  • LGO
  • SciPy’s Simulated Annealing

It also implements Particle Swarm Optimization, with 3 variants:

  • Decreasing Weight PSO
  • Time-Varying Acceleration Coefficients PSO
  • Global Convergence PSO

pythOPT is authored by Krzysztof Voss .

odetoJava is a a Java-based PSE for initial-value problems in ordinary differential equations. It implements explicit and linearly implicit implicit-explicit Runge-Kutta methods with error and step size control and intra-step interpolation (dense output), giving the user control and flexibility over the implementational aspects of these methods.

Methods for DEs

View Image

We are specialists in solving evolutionary differential equations accurately and efficiently using state-of-the-art techniques. There are many methods in the literature that claim to be effective. We have a lot of experience in assessing such claims. We probe for the active ingredients behind successful methods, understand when they break down, and further optimize their performance when they perform well. Don’t change your life chasing the latest time-stepper you have heard about until you check with us.
Time-stepping methods classically break down into two classes, explicit and implicit. It is becoming more widely appreciated that a combination of the two, a so-called implicit-explicit (or IMEX) method, can be significantly more effective than either of the classical methods on their own. We specialize in the design of new IMEX Runge-Kutta time-stepping methods; however, we use every weapon in our arsenal to improve the solution of a given problem. In order to make the case for recommending a new method, we implement it in software, test it rigorously over a wide range of problems, and take advantage of the latest hardware and software paradigms, such as accelerated computing using GPUs.

Fluid Dynamics

View Image

We are presently investigating approaches to solving models of incompressible flow using parallel algorithms and GPU programming. We are developing a massively parallel solver for the incompressible Navier-Stokes equations that uses OpenCL. The software is designed to run across multiple machines and therefore multiple GPUs. Modern GPUs have hundreds of cores and are well suited to solving these types of CFD problems. GPUs are a relatively recent addition to the scientific computing arsenal and present many new and exciting opportunities for problems that can be solved using massively parallel algorithms.Another focus is the numerical simulation of turbulent flows for fluids. In particular, we are focused on the application to multi-phase, gas-particle flows in fluidized beds. We are investigating higher-order time-integration methods that ideally yield more accurate and more efficient solutions.

The open-source software that we are using includes MFiX, OpenFOAM, and Nek5000; the commercial software includes Ansys CFX and Fluent.
Mohammad Reza Haghgoo, D.J. Bergstrom, R.J. Spiteri: The effect of spatial dimension on the numerical simulation of cylindrical gas-particle fluidized beds, 22nd Annual Conference of the CFD Society of Canada, June 1-4 2014, University of Toronto, Canada.

Karimipour, Gerspacher, Gupta, and Spiteri: A study of factors affecting syngas quality and their interactions in fluidized bed gasification of lignite coal, Fuel, Vol. 103, pp. 308-320 (2013).

Raymond J. Spiteri
Mohammad Reza Haghgoo
Adam Preuss


View Image

Heart disease is the leading cause of death in the world, and the healthcare costs of heart disease is high. Many heart diseases are the result of irregular electrical activity in the heart and therefore, modelling the electrical activity in the heart is important. The electrical activity of a single heart cell can be modelled using system of Ordinary Differential Equations (ODEs). This system can be coupled with a system of Partial Differential Equations (PDEs) to model the electrical activity in whole heart. The ODE and PDE systems are non-linear and because a human heart has about 10 billion cells, these systems are very large. In the Numerical Simulation Lab, we are working on efficient numerical methods to solve such systems.
We use methods such as Semi–Implicit and Operator Splitting (Godunov and Strang) to couple the systems of ODEs and PDEs. For the ODEs we use Forward Euler (FE), Rush–Larsen (RL), and Generalized RL. Backward Euler, Crank–Nicolson. For time discretization in PDEs SDIRK is used, and Finite Element methods for space discretization. We use software such as Chaste, Nektar, and Matlab in our problem solving.
Torabi Ziaratgahi S, Marsh ME, Sundnes J and Spiteri RJ (2014): Stable time integration suppresses unphysical oscillations in the bidomain model. Front. Phys. 2:40. doi: 10.3389/fphy.2014.00040.<

Marsh, Torabi, and Spiteri: The secrets to the success of the Rush–Larsen method and its generalizations, IEEE Transactions of Biomedical Engineering, Vol. 59, No. 9, pp. 2506-2515 (2013).

Spiteri and Dean: Stiffness analysis of cardiac electrophysiological models, Annals of Biomedical Engineering, Vol. 38, No. 12, pp. 3592-3604 (2010).

Spiteri and Dean: On the performance of implicit-explicit Runge-Kutta methods in models of cardiac electrical activity, IEEE Transactions on Biomedical Engineering, Vol. 55, No. 5, pp. 1488-1495, (2008).

MacLachlan, Sundnes, and Spiteri: A comparison of non-standard solvers for ODEs describing cellular reactions in the heart, Computer Methods in Biomechanics and Biomedical Engineering, Vol. 10, No. 5, pp. 317-326 (2007).

Spiteri and MacLachlan: An efficient non-standard finite difference scheme for an ionic model of cardiac action potentials, Journal of Difference Equations and Applications, Vol. 9, No. 12, pp. 1069-1082 (2003).

Raymond J. Spiteri
Saeed Torabi Ziaratgahi
Oluwaseun Sharomi
Megan E. Marsh
Elham Mirshekari
Ryan C. Dean
Mary C. MacLachlan


View Image

We work with a number of industrial partners on research and professional projects.
Roots Rock Renewables
Lux Wind Power
Our work with Lux Wind Power involves doing aerodynamic simulations on models of the Lux Wind Turbine
Mathtoons Media
This research project will focus on the creation and assessment of content for advanced (multi-variate) calculus for Mathtoon’s Practi software.