1. deal.II--A general-purpose object-oriented finite element library
- Author
-
Bangerth, W., Hartmann, R., and Kanschat, G.
- Subjects
Technology application ,Algorithm ,Distributed object technology ,Object-oriented programming ,Reusable code ,Statistical/mathematical software ,Algorithms -- Usage ,Object-oriented programming -- Research ,Differential equations, Partial -- Evaluation ,Mathematical software -- Design and construction ,Numerical analysis -- Technology application ,Finite element method -- Usage - Abstract
An overview of the software design and data abstraction decisions chosen for deal.II, a general purpose finite element library written in C++, is given. The library uses advanced object-oriented and data encapsulation techniques to break finite element implementations into smaller blocks that can be arranged to fit users requirements. Through this approach, deal.II supports a large number of different applications covering a wide range of scientific areas, programming methodologies, and application-specific algorithms, without imposing a rigid framework into which they have to fit. A judicious use of programming techniques allows us to avoid the computational costs frequently associated with abstract object-oriented class libraries. The paper presents a detailed description of the abstractions chosen for defining geometric information of meshes and the handling of degrees of freedom associated with finite element spaces, as well as of linear algebra, input/output capabilities and of interfaces to other software, such as visualization tools. Finally, some results obtained with applications built atop deal.II are shown to demonstrate the powerful capabilities of this toolbox. Categories and Subject Descriptors: G.4 [Mathematical Software]; G. 1.8 [Numerical Analysis]: Partial Differential Equations--Finite element methods General Terms: Algorithms, Design, Documentation Additional Key Words and Phrases: Object-orientation, software design
- Published
- 2007