Generative Programming in Scientific Computing
Dominik Jürgens · PAMM · 2008
Abstract The complexity of simulation software increases because the simulated phenomena get more complex and massively parallel machines have to be used. Other reasons are the consideration of new technologies like the computational Grid and the integration of simulation programs into more complex applications. Therefore the development of future scientific software requires implicitly a step towards separation of concerns beyond the possibilities of classical programming techniques. An important integration problem in the context of scientific computing is the coupling of independently simulated phenomena, where different programs simulate only a part of a more complex coupled system. Numerical methods for the coupling of simulators like Lagrangian–multipliers based or staggered methods are in common use. Many problems which appear in practice of simulator coupling are not mathematical, but of more technical nature. That results in the current situation where code for the coupling of simulations is not implemented in a reusable way. New approaches to separation of concerns like aspect oriented and generative techniques may help to overcome these issues. As our vision we discuss the idea of a domain specific language (DSL) for coupled simulations. We present a review on methods, paradigms, theories and tools which aim at the development of coupled simulations with a generative approach. (© 2008 WILEY‐VCH Verlag GmbH & Co. KGaA, Weinheim)