From 05c90f5cb761d757345a987cbea12f54c16b6dcb Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Thu, 11 Feb 2010 21:09:24 +0000
Subject: [PATCH] assemble gradient of functional

[[Imported from SVN: r5542]]
---
 src/averagedistanceassembler.hh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/averagedistanceassembler.hh b/src/averagedistanceassembler.hh
index dfd91029..5c54f707 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,
-- 
GitLab