diff --git a/src/averagedistanceassembler.hh b/src/averagedistanceassembler.hh index dfd910290d7d346e3fa2e9253bcbe7eb4b778cba..5c54f707be73dde175ede96941f188d38dced20f 100644 --- a/src/averagedistanceassembler.hh +++ b/src/averagedistanceassembler.hh @@ -32,7 +32,10 @@ public: void assembleGradient(const TargetSpace& x, typename TargetSpace::EmbeddedTangentVector& gradient) const { - DUNE_THROW(Dune::NotImplemented, "assembleGradient"); + gradient = 0; + for (size_t i=0; i<coefficients_.size(); i++) + gradient.axpy(weights_[i]*TargetSpace::distance(coefficients_[i], x), + TargetSpace::derivativeOfDistanceWRTSecondArgument(coefficients_[i], x)); } void assembleMatrix(const TargetSpace& x,