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 hp-FEM using the library with special
attention to the handling of inconsistent meshes.