diff --git a/dune/gfe/localgeodesicfestiffness.hh b/dune/gfe/localgeodesicfestiffness.hh index 6faa0d7c0d41e79c93b276857efd21190fcf6aa7..fb918b1fec8c9edb8f6c910c9e5366ea4467353f 100644 --- a/dune/gfe/localgeodesicfestiffness.hh +++ b/dune/gfe/localgeodesicfestiffness.hh @@ -149,7 +149,8 @@ public: static void assembleGradient(const Entity& element, const std::vector<TargetSpace>& localSolution, - std::vector<typename TargetSpace::TangentVector>& localGradient) + std::vector<typename TargetSpace::TangentVector>& localGradient, + const LocalGeodesicFEStiffness<GridView,TargetSpace>* energyObject) { // /////////////////////////////////////////////////////////// // Compute gradient by finite-difference approximation @@ -169,7 +170,7 @@ public: infinitesimalVariation(forwardSolution[i], eps, j); infinitesimalVariation(backwardSolution[i], -eps, j); - localGradient[i][j] = (energy(element,forwardSolution) - energy(element,backwardSolution)) + localGradient[i][j] = (energyObject->energy(element,forwardSolution) - energyObject->energy(element,backwardSolution)) / (2*eps); forwardSolution[i] = localSolution[i];