ACM Transactions on Mathematical Software · 2007 · 1.2K citations · 21 references
ComputingComputer ScienceVisualizationComputational GeometryFinite Element AnalysisFinite Element MethodsElement TypesFinite Element FormulationMesh GenerationMesh ModelingObject-oriented ProgrammingShape RepresentationAbstractionAbstraction MechanismsEncapsulationFinite Element ModelingFinite Element SimulationFinite Element SpacesMesh Representation
deal.II is a general‑purpose finite element library written in C++. The paper provides an overview of the software design and data abstraction decisions for deal.II. The library modularizes finite element implementations using advanced object‑oriented and data encapsulation techniques, employs efficient programming to avoid typical overhead, and offers detailed abstractions for mesh geometry, degrees of freedom, linear algebra, I/O, and interfaces to other software. This design allows deal.II to support a wide range of applications across scientific domains without imposing a rigid framework, and application results demonstrate its powerful capabilities.
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.
21
Satish Balay, Shrirang Abhyankar, Mark F. Adams et al. · 2019 · 2K citations
Multi-grid methods and applications.
Mathematics and Computers in Simulation · 1986 · 1.9K citations · Full text
Timothy A. Davis · ACM Transactions on Mathematical Software · 2004 · 1.4K citations
Alexander A. Stepanov, Meng Lee · 1998 · 409 citations