diff --git a/dune/tectonic/nicefunction.hh b/dune/tectonic/nicefunction.hh index 6140a3977b6bed90d4a56e37fcbdc91408ad13ac..fecc7dd94f2c4c50fe7b8809a390ce8f1ee7eb77 100644 --- a/dune/tectonic/nicefunction.hh +++ b/dune/tectonic/nicefunction.hh @@ -16,13 +16,22 @@ class NiceFunction : public VirtualFunction<double, double> { virtual double rightDifferential(double s) const = 0; }; -class Identity : public NiceFunction { +class LinearFunction : public NiceFunction { public: - void virtual evaluate(double const& x, double& y) const { y = x; } + LinearFunction() {} - double virtual leftDifferential(double s) const { return 1; } + LinearFunction(double a) : coefficient(a) {} - double virtual rightDifferential(double s) const { return 1; } + void virtual evaluate(double const& x, double& y) const { + y = coefficient * x; + } + + double virtual leftDifferential(double s) const { return coefficient; } + + double virtual rightDifferential(double s) const { return coefficient; } + +private: + double coefficient; }; template <int slope> class SampleFunction : public NiceFunction {