ACM Home Page
Please provide us with feedback. Feedback
C++ implementations of numerical methods for solving differential-algebraic equations: design and optimization considerations
Full text PdfPdf (283 KB)
Source ACM Transactions on Mathematical Software (TOMS) archive
Volume 25 ,  Issue 4  (December 1999) table of contents
Pages: 377 - 403  
Year of Publication: 1999
ISSN:0098-3500
Authors
Christopher E. Kees  Univ. of North Carolina, Chapel Hill
Cass T. Miller  Univ. of North Carolina, Chapel Hill
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 59,   Downloads (12 Months): 274,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/332242.334001
What is a DOI?

ABSTRACT

Object-oriented programming can produce improved implementations of complex numerical methods, but it can also introduce a performance penalty. Since computational simulation often requires intricate and highly efficient codes, the performance penalty of high-level techniques must always be weighed against the improvements they enable. These issues are addressed in a general object-oriented (OO) toolkit for the numerical solution of differential-algebraic equations (DAEs). The toolkit can be configured in several different ways to solve DAE initial-value problems with an adaptive multistep method. It contains a wrapped version of the Fortran 77 code DASPK and a translation of this to C++. Two C++ constructs for assembling the tools are provided, as are two implementations an important DAE test problem. Multiple configurations of the toolkit for DAE test problems are compared in order to assess the performance penalties of C++. The mathematical methods and implementation techniques are discussed in detail in order to provide heuristics for efficient OO scientific programming and to demonstrate the effectiveness of OO techniques in managing complexity and producing better code. The codes were tested on a variety of problems using publicly available Fortran 77 and C++ compilers. Extensive effficiency comparisons are presented in order to isolate computationally inefficient OO techniques. Techniques that caused difficulty in implementation and maintenance are also highlighted. The comparisons demonstrate that the majority of C++'s built-in support for OO programming has a negligible effect on performance, when used at sufficiently high levels, and provides flexible and extensible software for numerical methods.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
ARGE, E. ET AL. 1997. On the numerical efficiency of C++ in scientific computing. In Numerical Methods and Software Tools in Industrial Mathematics Birkh user Boston Inc., Cambridge, MA, 91-118.
 
3
 
4
BECK, R., ERDMANN, B., AND ROITZSCH, R. 1995. KASKADE 3.0: An object-oriented adaptive finite element model. Tech. Rep. TR 95-4. Konrad-Zuse-Zentrum fur Informationstechnik, Berlin, Germany.
 
5
BESSON, J. AND FOERCH, R. 1997. Large scale object-oriented finite element code design. Comput. Methods Appl. Mech. Eng. 142, 1-2, 165-187.
 
6
BRENAN, K., CAMPBELL, S., AND PETZOLD, L. 1996. Numerical Solution of Initial-Value Problems in Differential-Algebraic Equations. SIAM, Philadelphia, PA.
 
7
8
 
9
CARY, J. R., SHASHARINA, S. G., CUMMINGS, J. C., REYNDERS, J. V., AND HINKER, P. J. 1997. Comparison of C++ and Fortran 90 for object-oriented scientific programming. Comput. Phys. Commun. 105, 1, 20-36.
10
 
11
 
12
DONGARRA, J., BUNCH, J., MOLER, C., AND STEWART, P. 1984. Linpack. (Software). http ://www.netlib. org/linpack
 
13
DONGARRA, J. J., LUMSDAINE, A., NIU, X., Pozo, R., AND REMINGTON, K. 1994. A sparse matrix library in C++ for high performance architectures. In Proceedings of the 2nd Annual Object-Oriented Numerics Conference (00N-SKI '94, Sun River, OR, Apr.), 214-218.
 
14
DONGARRA, J., LUMSDAINE, A., POZO, R., AND REMINGTON, K. 1996. Iml+ + version 1.2 iterative methods library reference guide.
15
 
16
DUBOIS-PELERIN, Y. AND PEGON, P. 1997. Improving modularity in object-oriented finite element programming. Commun. Numer. Methods Eng. 13, 3, 193-198.
 
17
 
18
EYHERAMENDY, D. AND ZIMMERMANN, T. 1996. Object-oriented finite elements: II. A symbolic environment for automatic programming. Comput. Methods Appl. Mech. Eng. 132, 3-4, 277-304.
 
19
GEAR, C. 1971. The simultaneous numerical solution of differential-algebraic equations. IEEE Trans. Circuit Theory CT-18, 89-95.
 
20
GEAR, C.W. 1973. Asymptotic estimation of errors and derivatives for the numerical solution of ordinary differential equations. Tech. Rep. 598. Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL.
 
21
GEAR, C. 1986. Differential-algebraic equation index transformations. University of Illinois at Urbana-Champaign, Champaign, IL.
 
22
GEAR, C., LEIMKUHLER, B., AND GUPTA, G. 1985. Automatic integration of Euler-Lagrange equations with constraints. J. Comput. Appl. Math. 12/13 (May), 77-90.
23
 
24
KARAMETE, B., TOKDEMIR, T., AND GER, M. 1997. Unstructured grid generation and a simple triangulation algorithm for arbitrary 2-D geometries using object-oriented programming. Int. J. Num. Methods Eng. 40, 2, 251-268.
 
25
KELLEY, C. 1995. Iterative Methods for Linear and Nonlinear Equations. SIAM, Philadelphia, PA.
 
26
 
27
 
28
LEWIS, R., MASTERS, I., AND CROSS, J. 1997. Automatic timestep selection for the super-timestepping acceleration on unstructured grids using object-oriented programming. Commun. Numer. Methods Eng. 13, 3, 249-260.
 
29
 
30
MAIER, R. S. AND PETZOLD, L. R. 1993. User's guide to DASPKMP and DASPKF90. Army High Performance Computing Research Center, Minneapolis, MN.
 
31
 
32
NEWCOMB, R.W. 1981. The semistate description of nonlinear and time-variable circuits. IEEE Trans. Circ. Syst. 28, 1, 203-216.
 
33
PETZOLD, L. 1983. A Description of DASSL: A Differential/Algebraic System Solver. North-Holland Publishing Co., Amsterdam, The Netherlands.
 
34
 
35
 
36
 
37
ToccI, M., KELLEY, C., AND MILLER, C. 1997. Accurate and economical solution of the pressure-head form of Richards' equation by the method of lines. Adv. Water Resour. 20, 1, 1-14.
 
38
ZIMMERMAN, T. AND EYHERAMENDY, D. 1996. Object-oriented finite elements I. Principles of symbolic derivations and automatic programming. Comput. Methods Appl. Mech. Eng. 132, 3-4, 259-276.
 
39


Collaborative Colleagues:
Christopher E. Kees: colleagues
Cass T. Miller: colleagues