diff --git a/dune/tectonic/nicefunction.hh b/dune/tectonic/nicefunction.hh index fdcdc0e4b4f115b9b475a0c4a3ecdc1a63ff0323..6ff57720c396a0960c4183bd98273c7323d68ff5 100644 --- a/dune/tectonic/nicefunction.hh +++ b/dune/tectonic/nicefunction.hh @@ -73,6 +73,20 @@ class RuinaFunction : public NiceFunction { return coefficient * normalStress * (a * std::log(eta * s) + mu); } + /* + d/dx a * log(eta x) + mu + = a * 1/(eta x) * eta + = a/x + */ + double virtual second_deriv(double s) const { + if (eta * s < rho) + return 0; + else if (eta * s == rho) + return 37; // TODO: not differentiable; + else + return coefficient * normalStress * (a / s); + } + private: double coefficient; double a;