The Architecture of Scientific Software pp 159-174 | Cite as

# Object-Oriented Modeling of Parallel PDE Solvers

## Abstract

This is a status report of a long-term research effort focusing on object-oriented modeling of parallel PDE solvers, based on finite difference methods on composite, structured grids. Two previous results of this effort are reviewed, the class libraries *Cogito* and *Compose*. Cogito is implemented in Fortran 90, with MPI for the message passing, and provides abstract data types for parallel composite-grid methods. Compose is in C++ and allows for fully object-oriented construction of PDE solvers by composition of objects. The object model behind Compose is described, and some research issues related to the refinement of the model are outlined. Finally, some recent results are presented, which are initial steps in addressing these issues.

## Keywords

object-oriented parallel PDEs Fortran C++ framework## References

- [1]K. Ahlander, An
*extendable PDE solver with reusable components*, in Computational Technologies for fluid/thermal/structural/chemical systems with industrial applications, V. V. Kudriavtsev and C. R. Kleijn, eds., vol. 397–1, New York, 1999, ASME, pp. 39–46.Google Scholar - [2]K. Ahlander, An
*object-oriented framework for PDE solvers*, PhD thesis, Uppsala University, Information Technology, Dept. of Scientific Computing, Uppsala, Sweden, 1999.Google Scholar - [3]K. Ahlander, M. Haveraaen, and H. Munthe-Kaas, On the role of mathematical abstractions for scientific computing.
*Proceedings of the IFIP WG 2.5 Working Conference on*Software Architectures for Scientific Computing Applications, Kluwer, 2000.Google Scholar - [4]E. Arge, A. M. Bruaset, and H. P. Langtangen, eds.,
*Modern Software Tools for Scientific*Computing, Birkhäuser, 1997.Google Scholar - [5]D. L. Brown et al.,
*Overture: An object-oriented framework for solving partial differential equations on overlapping grids*,in Object Oriented Methods for Interoperable Scientific and Engineering Computing, M. E. Henderson, C. R. Anderson, and S. L. Lyons, eds., SIAM, Philadelphia, 1999, ch. 26.Google Scholar - [6]J. C. Cummings ET AL.,
*Rapid application development and enhanced code interoperability using the POOMA framework*,in Object Oriented Methods for Interoperable Scientific and Engineering Computing, M. E. Henderson, C. R. Anderson, and S. L. Lyons, eds., SIAM, Philadelphia, 1999, ch. 29.Google Scholar - [7]D. A. Danielson,
*Vectors and Tensors in Engineering and Physics*, Addison—Wesley, Reading, MA, 2nd ed., 1997.Google Scholar - [8]V. K. Decyk et al., How to express C++ concepts in Fortran 90,
*Scientific Programming*, 6 (1997), pp. 363–390.CrossRefGoogle Scholar - [9]M. G. Gray et al., Shadow-object interface between Fortran 95 and C++,
*Computers in Science*and Engineering, 1 (1999), pp. 6370.Google Scholar - [10]A. H. Hayes,
*The changing face of high-performance computing in the United States*, Wuhan Journal of Natural Sciences, 1 (1996), pp. 420–429.*Keynote Lecture at the International*Conference on Parallel Algorithms, Wuhan University, Wuhan, P. R. China, October 1995.Google Scholar - [11]S. Holmgren and K. Otto,
*A framework for polynomial pre-conditioners based on fast transforms*I: Theory, BIT, 38 (1998), pp. 544–559.MathSciNetCrossRefMATHGoogle Scholar - [12]S. Holmgren and K. Otto,
*A framework for polynomial preconditioners based on fast transforms*II: PDE applications, BIT, 38 (1998), pp. 721–736.MathSciNetCrossRefMATHGoogle Scholar - [13]S. Karmesin et al., Array design and expression evaluation in POOMA II, in Proceedings of ISCOPE’98, Lecture Notes in Computer Science, Vol. 1505, D. Calomel, R. Oldehoeft, and M. Tholburn, eds., Berlin, 1998, Springer-Verlag.Google Scholar
- [14]J. F. Karpovich et al.,
*A parallel object-oriented framework for stencil algorithms*, in Proceedings of the Second International Sym*posium on High-Performance Distributed Computing, 1993, pp. 3441.*Google Scholar - [15]E. Larsson and S. Holmgren, A
*parallel domain decomposition method for the Helmholtz*equation, Tech. Rep. 2000–006, Dept. of Information Technology, Uppsala Univ., Uppsala, Sweden, 2000.Google Scholar - [16]M. Lemke and D. Quinlan, P++, a parallel C++ array class library for architecture-independent
*development of structured grid applications*, ACM SIGPLAN Notes, 28 (1993), pp. 21–23.CrossRefGoogle Scholar - [17]M. Ljungbergand M. Thuné, Mixed C++/Fortran 90 implementation of parallel flow solvers.
*Accepted for publication in the proceedings*of Parallel CFD 2000.Google Scholar - [18]E. Mossberg, K. Otto, and M. Thuné,
*Object-oriented software tools for the construction*of preconditioners, Sci. Programming, 6 (1997), pp. 285–295.CrossRefGoogle Scholar - [19]M. Nordén,
*Stencils for parallel object-oriented PDE solvers*, Master’s thesis, Uppsala University School of Engineering, 2000. Report No. UPTEC F 00 067.Google Scholar - [20]
- [21]K. Otto and E. Larsson, Iterative solution of the
*Helmholtz equation by a second-order*method, SIAM J. Matrix Anal. Appl., 21 (1999), pp. 209–229.MathSciNetCrossRefMATHGoogle Scholar - [22]J. Rantakokko, Software tools for partitioning of block-structured applications, in Proceedings of ISCOPE’98, Lecture
*Notes in Computer Science*, Vol. 1505, D. Caromel, R. Oldehoeft, and M. Tholburn, eds., Berlin, 1998, Springer-Verlag.Google Scholar - [23]J. Rantakokko,
*Partitioning strategies for structured multiblock grids, Parallel Computing*, 26 (2000), pp. 1161–1680.MathSciNetGoogle Scholar - [24]X. Sun and J. L. Gustafson,
*Towards a better parallel performance metric*, Parallel Computing, 17 (1991), pp. 1093–1109.CrossRefMATHGoogle Scholar - [25]M. Thuné et al.,
*Object-oriented construction of parallel PDE solvers*, in Modern Software Tools for Scientific Computing, E. Arge, A. M. Bruaset, and H. P. Langtangen, eds., Birkhäuser, Boston, MA, 1997, pp. 203–226.CrossRefGoogle Scholar - [26]R. D. Williams, DIME++:
*A language for parallel PDE solvers, Tech. Rep*. CCSF-29–92, Caltech, Pasadena, CA, 1993.Google Scholar