212 1998 Krister Åhlander krister@tdb.uu.se Rapid Development of PDE Solvers Abstract -------- A framework, Compose, for rapid development of ``PDE solvers'' is presented. PDE solvers are programs that solve PDEs (partial differential equations) numerically. Inheritance hierarchies are used for Compose's key abstractions. Thus, it is possible to extend the framework with, for instance, new equations or new time stepping methods. The implementation of two solvers for the incompressible Navier--Stokes equations demonstrates the feasibility of our approach. The second solver is an evolvement of the first. This stepwise development illustrates how Compose supports the iterative nature of software development. Moreover, each equation is developed individually as a component. For each new component, the framework encourages a verification methodology, based on a technique of analytical solution forcing. Compose solvers are put together by assembling different components. Each component, including initial conditions and boundary conditions, is visible on the highest programming level. It is therefore easy to experiment with different solver set-ups just by changing a few lines in the main program. A GUI is used to inspect the set-up and to change parameters interactively. A Compose solver may be attached with ``monitors'', that can be tailored to control and steer the numerical experiment without changing the core of the solver. The solvers for the incompressible Navier--Stokes equations and a solver implemented with a more traditional design are compared. We find that the modest overhead of using our high level framework is compensated by the following advantages: It is easier to extend our solver with new equations; and it is easier to reuse the individual pieces in other solvers.