Object oriented design has proven itself as a powerful tool in the field of scientific computing. Several software packages, libraries and toolkits exist, in particular in the FEM arena that follow this design methodology providing extensible, reusable, and flexible software while staying competitive to traditionally designed point tools in terms of efficiency. However, the common approach to identify classes is to turn data structures and algorithms of traditional implementations into classes such that the level of abstraction is essentially not raised. In this paper we discuss an alternative way to approach the design challenge which we call “concept oriented design”. We apply this design methodology to Petrov-Galerkin methods leading to a class library for both, boundary element methods (BEM) and finite element methods (FEM). We show as a particular example the implementation of -FEM using the library with special attention to the handling of inconsistent meshes.
@article{M2AN_2002__36_5_937_0, author = {Frauenfelder, Philipp and Lage, Christian}, title = {Concepts-An object-oriented software package for partial differential equations}, journal = {ESAIM: Mathematical Modelling and Numerical Analysis - Mod\'elisation Math\'ematique et Analyse Num\'erique}, volume = {36}, year = {2002}, pages = {937-951}, doi = {10.1051/m2an:2002036}, zbl = {1032.65128}, language = {en}, url = {http://dml.mathdoc.fr/item/M2AN_2002__36_5_937_0} }
Frauenfelder, Philipp; Lage, Christian. Concepts-An object-oriented software package for partial differential equations. ESAIM: Mathematical Modelling and Numerical Analysis - Modélisation Mathématique et Analyse Numérique, Tome 36 (2002) pp. 937-951. doi : 10.1051/m2an:2002036. http://gdmltest.u-ga.fr/item/M2AN_2002__36_5_937_0/
[1] PETSc home page. http://www.mcs.anl.gov/petsc (2001).
, , , , and ,[2] Efficient management of parallelism in object oriented numerical software libraries, in Modern Software Tools in Scientific Computing, E. Arge, A.M. Bruaset and H.P. Langtangen Eds., Birkhauser Press (1997) 163-202. | Zbl 0882.65154
, , and ,[3] PETSc users manual. Technical Report ANL-95/11 - Revision 2.1.0, Argonne National Laboratory (2001).
, , and ,[4] Object-Oriented Analysis and Design with Applications. Addison-Wesley Object Technology Series. Addison Wesley Longman, Inc., 2nd ed. (1994).
,[5] Concepts Development Team. Concepts. Internet (2001). http://www.math.ethz.ch/~concepts/
[6] Tensor product of matrices. Compound matrices, in Special matrices and their applications in numerical mathematics, Martinus Nijhoff Publishers, Dordrecht, The Netherlands and SNTL-Publishers of Technical Literature, Prague, Czechoslovakia (1986) p. 136. | MR 1105955
,[7] GNU Project. GNU Compiler Collection. Internet (2001). http://www.gnu.org/software/gcc/
[8] GNU Project. GNU is Not Unix and the Free Software Foundation. Internet (2001). http://www.gnu.org/
[9] Softwareentwicklung zur Randelementmehtode: Analyse und Entwurf effizienter Techniken. Ph.D. thesis, Christian-Albrechts-Universität, Kiel (1995).
,[10] Concept oriented design of numerical software. Technical Report 98-07, Seminar for Applied Mathematics, Swiss Federal Institute of Technology, Zürich (1998).
,[11] Dia. Internet (2001). http://www.lysator.liu.se/~alla/dia/
, et al.,[12] Spectral and -Finite Elements for problems with microstructure. Ph.D. thesis, Swiss Federal Institute of Technology, Zürich (2000).
,[13] Object Management Group, Inc., Framingham, USA. OMG Unified Modeling Language Specification, 1.3 ed. (1999). http://www.rational.com/uml/resources/documentation/
[14] The C++ Programming Language. Addison Wesley Longman, Inc., 3rd ed. (1997). | Zbl 0825.68056
,[15] Xfig. Internet (2001). http://epb.lbl.gov/xfig/
, and ,