English

The interface for functions in the dune-functions module

Mathematical Software 2017-04-10 v1

Abstract

The dune-functions dune module introduces a new programmer interface for discrete and non-discrete functions. Unlike the previous interfaces considered in the existing dune modules, it is based on overloading operator(), and returning values by-value. This makes user code much more readable, and allows the incorporation of newer C++ features such as lambda expressions. Run-time polymorphism is implemented not by inheritance, but by type erasure, generalizing the ideas of the std::function class from the C++11 standard library. We describe the new interface, show its possibilities, and measure the performance impact of type erasure and return-by-value.

Keywords

Cite

@article{arxiv.1512.06136,
  title  = {The interface for functions in the dune-functions module},
  author = {Christian Engwer and Carsten Gräser and Steffen Müthing and Oliver Sander},
  journal= {arXiv preprint arXiv:1512.06136},
  year   = {2017}
}

Comments

The C++ source code of tests is attached to pdf file of the paper

R2 v1 2026-06-22T12:13:45.748Z