FLENS

FLENS (Flexible Library for Efficient Numerical Solutions). Object-oriented programming languages like C++ exhibit features that can ease the development, maintainability, extensibility and usability of complex software packages. However, most libraries in the field of high performance computing are still implemented in non-object-oriented languages like Fortran or C. This is mainly due to the fact that runtime overhead resulting from abstraction is sometimes hard to avoid. At this point it should be mentioned that in the scientific computing community (and especially in the field of high-performance computing) C++ used to have a bad reputation due to a bad runtime performance. In particular, C++ libraries could often hardly compete with established Fortran libraries. This work addresses how the C++ programming language can be extended through libraries to enhance and simplify the development of scientific software. Efforts made in this respect resulted in the design and implementation of the C++ library