diff --git a/dune/tectonic/nicefunction.hh b/dune/tectonic/nicefunction.hh index 532dfa2580e7e46404615da3ae6cb10cd9c43859..efa0ba616e5d76b20efff30686b2ae58513a7489 100644 --- a/dune/tectonic/nicefunction.hh +++ b/dune/tectonic/nicefunction.hh @@ -34,6 +34,26 @@ class SampleFunction : public NiceFunction { double virtual rightDifferential(double s) const { return (s < 1) ? 1 : 2; } }; +class SteepFunction : public NiceFunction { +public: + void virtual evaluate(double const& x, double& y) const { y = 100 * x; } + + double virtual leftDifferential(double s) const { return 100; } + + double virtual rightDifferential(double s) const { return 100; } +}; + +class SteepFunctionNonsmooth : public NiceFunction { +public: + void virtual evaluate(double const& x, double& y) const { + y = (x < 1) ? x : (100 * x - 99); + } + + double virtual leftDifferential(double s) const { return (s <= 1) ? 1 : 100; } + + double virtual rightDifferential(double s) const { return (s < 1) ? 1 : 100; } +}; + class TrivialFunction : public NiceFunction { public: void virtual evaluate(double const& x, double& y) const { y = 0; }