diff --git a/dune/gfe/localgeodesicfestiffness.hh b/dune/gfe/localgeodesicfestiffness.hh index 680993f5964419ad6489deaef04e7f354a7a09c5..68a7e6edf7d5db41b05b3757df1ae0b34a733888 100644 --- a/dune/gfe/localgeodesicfestiffness.hh +++ b/dune/gfe/localgeodesicfestiffness.hh @@ -119,24 +119,6 @@ class LocalGeodesicFEStiffnessImp } - public: - static void assembleGradient(const Entity& element, - const std::vector<TargetSpace>& localSolution, - std::vector<typename TargetSpace::TangentVector>& localGradient, - const LocalGeodesicFEStiffness<GridView,TargetSpace>* energyObject) - { - std::vector<typename TargetSpace::EmbeddedTangentVector> embeddedLocalGradient; - - // first compute the gradient in embedded coordinates - assembleEmbeddedGradient(element, localSolution, embeddedLocalGradient, energyObject); - - // transform to coordinates on the tangent space - localGradient.resize(embeddedLocalGradient.size()); - - for (size_t i=0; i<localGradient.size(); i++) - localSolution[i].orthonormalFrame().mv(embeddedLocalGradient[i], localGradient[i]); - - } }; @@ -200,7 +182,16 @@ assembleGradient(const Entity& element, const std::vector<TargetSpace>& localSolution, std::vector<typename TargetSpace::TangentVector>& localGradient) const { - LocalGeodesicFEStiffnessImp<GridView,TargetSpace>::assembleGradient(element, localSolution, localGradient,this); + std::vector<typename TargetSpace::EmbeddedTangentVector> embeddedLocalGradient; + + // first compute the gradient in embedded coordinates + LocalGeodesicFEStiffnessImp<GridView,TargetSpace>::assembleEmbeddedGradient(element, localSolution, embeddedLocalGradient, this); + + // transform to coordinates on the tangent space + localGradient.resize(embeddedLocalGradient.size()); + + for (size_t i=0; i<localGradient.size(); i++) + localSolution[i].orthonormalFrame().mv(embeddedLocalGradient[i], localGradient[i]); } template <class GridView, class TargetSpace>