# Software Engineering for Computational Modelling

## Magne Haveraaen

(University of Bergen and University of Wales Swansea)

Computational modelling of real world phenomena is becoming an important research tool in the sciences. Currently this is hampered by the time and effort needed to develop good computational models, and the time and cost needed to port such models onto a high performance computer (HPC). A typical solver for a partial differential equation (PDE) totals 15-20 000 lines of code, embodying the discretisation technique as well as the actual solver itself. The code handles a limited set of problems, and can not easily be adapted to related phenomena or account for changes in numerical discretisation techniques. In many ways such a solver becomes legacy code for the group that developed it: both being their main tool for success, but also limiting what problems they may tackle.

In the course of the ESPRIT supported project SAGA (Scientific computing and algebraic abstractions) we have studied algebraic techniques for bulding comptutational models. They were vital for the identification of the abstractions used in the mathematics of PDEs and in program structuring, making us able to build a software library of high level, interchangeable parts. A new numerical discretisation technique to be added to the library may typically take about 4000 lines of code. Writing a solver for a new problem will be on the order of 2000 lines of code. Programs written this way also parallelises immediately for a range of HPC architectures.

To achieve these remarkable improvements, the traditional technique for developing computational models has to be replaced by a development technique more centered on the mathematical level of the problem.

**Tuesday 4th November 1997, 14:30**

Seminar Room 322

Department of Computer Science