The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
LAPACK's user's guide
Object-oriented finite element programming: I: Governing principles
Computer Methods in Applied Mechanics and Engineering
Object-oriented finite element in programming: II: A prototype program in Smalltalk
Computer Methods in Applied Mechanics and Engineering
LAPACK++: a design overview of object-oriented extensions for high performance linear algebra
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Using Krylov methods in the solution of large-scale differential-algebraic systems
SIAM Journal on Scientific Computing
Finite Elements in Analysis and Design - Special issue: Robert J. Melosh medal competition
Numerical methods and software for sensitivity analysis of differential-algebraic systems
Applied Numerical Mathematics
C++ gets faster for scientific computing
Computers in Physics
Object-oriented programming of adaptive finite element and finite volume methods
Applied Numerical Mathematics
Object-oriented design of preconditioned iterative methods in diffpack
ACM Transactions on Mathematical Software (TOMS)
Expressing object-oriented concepts in Fortran 90
ACM SIGPLAN Fortran Forum
Visual modeling with Rational Rose and UML
Visual modeling with Rational Rose and UML
Termination of Newton/Chord Iterations and the Method of Lines
SIAM Journal on Scientific Computing
An Alternative Implementation of Variable Step-Size Multistep Formulas for Stiff ODEs
ACM Transactions on Mathematical Software (TOMS)
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Approximation methods for the consistent initialization of differential-algebraic equations
Approximation methods for the consistent initialization of differential-algebraic equations
A Simulation and Decision Framework for Selection of Numerical Solvers in
ANSS '06 Proceedings of the 39th annual Symposium on Simulation
Minimizing dependencies within generic classes for faster and smaller programs
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
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.