###
Wolfgang Bangerth, Ralf Hartmann, Guido Kanschat

**deal.II — a General Purpose Object
Oriented Finite Element Library**

ACM Transactions on Mathematical
Software,
vol. 33 (2007), pages 24/1-24/27.

An overview of the software design and data abstraction decisions
chosen for deal.II, a general purpose finite element library written
in C&plus&plus, 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.

*Wolfgang Bangerth*

* Mon Jul 17 15:58:29 MDT 2017 *