Object-oriented design of preconditioned iterative methods in diffpack

As modern programming methodologies migrate from computer science to scientific computing, developers of numerical software are faced with new possibilities and challenges. Based on experiences from an ongoing project that develops C11 software for the solution of partial differential equations, this article has its focus on object-oriented design of iterative solvers for linear systems of equations. Special attention is paid to possible conflicts that have to be resolved in order to achieve a very flexible, yet efficient, code.

[1]  E. F. Kaasschieter,et al.  A practical termination criterion for the conjugate gradient method , 1988 .

[2]  Jack Dongarra,et al.  Sparse Matrix Libraries in C++ for High Performance Architectures , 1997 .

[3]  R. Freund,et al.  QMR: a quasi-minimal residual method for non-Hermitian linear systems , 1991 .

[4]  Richard Barrett,et al.  Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods , 1994, Other Titles in Applied Mathematics.

[5]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[6]  Iain S. Duff,et al.  A proposal for user level sparse BLAS , 1992 .

[7]  Gernot Heiser,et al.  Three-dimensional numerical semiconductor device simulation: algorithms, architectures, results , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[8]  D. W. Walker,et al.  LAPACK++: a design overview of object-oriented extensions for high performance linear algebra , 1993, Supercomputing '93.

[9]  Michael Metcalf,et al.  Fortran 90 Explained , 1990 .

[10]  Wolfgang Fichtner,et al.  PILS: an iterative linear solver package for ill-conditioned systems , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[11]  William Gropp,et al.  Simplified Linear Equation Solvers users manual , 1993 .

[12]  S. Eisenstat Efficient Implementation of a Class of Preconditioned Conjugate Gradient Methods , 1981 .

[13]  James Coplien,et al.  Advanced C++ Programming Styles and Idioms , 1991, Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239).

[14]  James Demmel,et al.  LAPACK Users' Guide, Third Edition , 1999, Software, Environments and Tools.

[15]  A. Bruaset A survey of preconditioned iterative methods , 1995 .

[16]  Lee R. Nackman,et al.  Scientific and Engineering C , 1995 .

[17]  Peter Aitchison,et al.  Object oriented matrix classes for use in a finite element code using C , 1994 .

[18]  Wolfgang Fichtner,et al.  A Set of New Mapping and Coloring Heuristics for Distributed-Memory Parallel Processors , 1992, SIAM J. Sci. Comput..

[19]  A. Bruaset,et al.  A Comprehensive Set of Tools for Solving Partial Differential Equations; Diffpack , 1997 .

[20]  Lee R. Nackman,et al.  Scientific and Engineering C++: An Introduction with Advanc , 1995, IEEE Computational Science and Engineering.

[21]  Y. Saad,et al.  GMRES: a generalized minimal residual algorithm for solving nonsymmetric linear systems , 1986 .

[22]  Youcef Saad,et al.  Highly Parallel Preconditioners for General Sparse Matrices , 1994 .

[23]  Hans Petter Langtangen,et al.  On the Numerical Efficiency of C++ in Scientific Computing , 1997 .

[24]  Hans Petter Langtangen,et al.  On the Numerical E ciency of C + + in Scienti c Computing , 1999 .