Modern Software Tools for Scientific Computing pp 203-226 | Cite as

# Object-Oriented Construction of Parallel PDE Solvers

## Abstract

An object-oriented approach is taken to the problem of formulating portable, easy-to-modify PDE solvers for realistic problems in three space dimensions. The resulting software library, Cogito, contains tools for writing programs to be executed on MIMD computers with distributed memory. Difference methods on composite, structured grids are supported. Most of the Cogito classes have been implemented in Fortran 77, in such a way that the object-oriented design is visible. With respect to parallel performance, these tools yield code that is comparable to parallel solvers written in plain Fortran 77. The resulting programs can be executed without modifications on a large number of multicomputer platforms, and also on serial computers.

The uppermost level of abstraction in Cogito decouples the numerical method from the PDE problem. The validity of these tools has been preliminarily demonstrated with a C++ implementation for one-dimensional problems.

## Keywords

Grid Function Scientific Computing Abstract Data Type Composite Grid Implicit Finite Difference Method## Preview

Unable to display preview. Download preview PDF.

## References

- [1]E. Arge, et al. On the numerical efficiency of C++ in Scientific Computing. In M. Dæhlen and A. Tveito, editors,
*Mathematical Models and Software Tools in Industrial Mathematics*,pages 93–119. Birkhäuser, 1997.Google Scholar - [2]D. L. Brown and W. D. Renshaw. Overture: An advanced object-oriented software system for moving overlapping grid computations. Technical Report LA-UR-96–2931, Los Alamos National Laboratory, Los Alamos, NM, 1996.Google Scholar
- [3]A. M. Bruaset, E. Holm, and H. P. Langtangen. Increasing the efficiency and reliability of software development for systems of PDEs. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors,
*Modern Software Tools for Scientific Computing*, pages 247–268. Birkhäuser, 1997.CrossRefGoogle Scholar - [4]A. M. Bruaset and H. P. Langtangen. Object-oriented design of preconditioned iterative methods in Diffpack.
*To appear in Transactions on Mathematical Software*,1997.Google Scholar - [5]R. Enander.
*Grid patching and residual smoothing for computations of steady state solutions of first order hyperbolic systems*PhD thesis Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1991.Google Scholar - [6]B. Engquist. A sample of time dependent partial differential equations. Technical Report Internal Report 85–02, Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1985.Google Scholar
- [7]P. Fritzson, et al. Industrial application of object-oriented mathematical modeling and computer algebra in mechanical analysis. In
*Proceedings of the 7:th International Conference on Technology of Object-Oriented Languages and Systems: TOOLS EUROPE'92*Prentice-Hall, 1992.Google Scholar - [8]S. Holmgren.
*Fast Solvers for First-Order PDE*PhD thesis, Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1993.Google Scholar - [9]S. Holmgren and K. Otto. A framework for polynomial preconditioners based on fast transforms I: Theory. Technical Report 167, Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1995.Google Scholar
- [10]S. Holmgren and K. Otto. A framework for polynomial preconditioners based on fast transforms II: PDE applications. Technical Report 168, Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1995.Google Scholar
- [11]P. Hãgglund, et al. Implementation of a PDE application in Object-Math and Cogito. Technical Report 5, Parallel and Scientific Computing Institute, Uppsala, Sweden, 1996.Google Scholar
- [12]J. F. Karpovich, et al. A parallel object-oriented framework for stencil algorithms. In
*Proceedings of**the Second International Symposium on High-Performance Distributed Computing*, pages 34–41, 1993.CrossRefGoogle Scholar - [13]M. Lemke and D. Quinlan. P++, a parallel C++ array class library for architecture-independent development of structured grid applications.
*ACM SIGPLAN Notes*, 28:21–23, 1993.CrossRefGoogle Scholar - [14]E. Mossberg. Object-oriented software tools for the construction of preconditioners. Report in preparation.Google Scholar
- [15]G. Nelissen and P. F. Vankeirsbilck. Electrochemical modelling and software genericity. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors,
*Modern Software Tools for Scientific Computing*, pages 81–104. Birkhäuser, 1997.CrossRefGoogle Scholar - [16]P. Olsson. Object-oriented software tools for parallel computing with distributed memory. Report in preparation.Google Scholar
- [17]J. Rantakokko. Object-oriented software tools for composite-grid methods on parallel computers. Technical Report 165, Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1995.Google Scholar
- [18]J. V. W. Reynders, et al. POOMA: A framework for scientific simulation on parallel architectures. Available on Internet, http://www.acl.lanl.gov/PoomaFramework
- [19]J. Rumbaugh, et al.
*Object-Oriented Modeling and Design*Prentice-Hall, Englewood Cliffs, NJ, 1991.Google Scholar - [20]X. Sun and J. L. Gustafson. Towards a better parallel performance metric.
*Parallel Computing*, 17:1093–1109, 1991.MATHCrossRefGoogle Scholar - [21]M. ThunÅ and K. Ahlander. Towards an expressive language for PDE solvers. In H. Nielsen, editor,
*Programming Languages and Systems—ESOP ‘86*, pages 373–386, Berlin, 1996. Springer-Verlag.Google Scholar - [22]R. D. Williams. DIME++: A language for parallel PDE solvers. Technical Report CCSF-29–92, Caltech, Pasadena, CA, 1993.Google Scholar
- [23]K. Ahlander. An object-oriented approach to construct PDE solvers. Technical Report 180, Dept. of Scientific Computing, Uppsala University, Uppsala, Sweden, 1996.Google Scholar