From 8852bc431813b2ea2229f73551fb9c03cf41a7b8 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Sun, 23 Jan 2011 13:52:48 +0000
Subject: [PATCH] do not use a LocalGFEFunction for the interpolation.  It is
 not working properly yet

[[Imported from SVN: r6833]]
---
 dune/gfe/rodfactory.hh | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/dune/gfe/rodfactory.hh b/dune/gfe/rodfactory.hh
index fa8f755f..efb95762 100644
--- a/dune/gfe/rodfactory.hh
+++ b/dune/gfe/rodfactory.hh
@@ -80,16 +80,6 @@ template <int dim>
         max = std::max(max, vIt->geometry().corner(0)[0]);
     }
     
-    ////////////////////////////////////////////////////////////////////////////////////
-    //  Make a 1d geodesic finite element function, which will do the interpolation
-    ////////////////////////////////////////////////////////////////////////////////////
-    
-    std::vector<RigidBodyMotion<3> > coefficients(2);
-    coefficients[0] = beginning;
-    coefficients[1] = end;
-
-    LocalGeodesicFEFunction<1,double,RigidBodyMotion<3> > localGFEFunction(coefficients);
-    
     ////////////////////////////////////////////////////////////////////////////////////
     //  Interpolate according to arc-length
     ////////////////////////////////////////////////////////////////////////////////////
@@ -99,7 +89,10 @@ template <int dim>
     for (vIt = gridView_.template begin<dim>(); vIt != vEndIt; ++vIt) {
         int idx = gridView_.indexSet().index(*vIt);
         Dune::FieldVector<double,1> local = (vIt->geometry().corner(0)[0] - min) / (max - min);
-        rod[idx] = localGFEFunction.evaluate(local);
+
+        for (int i=0; i<3; i++)
+            rod[idx].r[i] = (1-local)*beginning.r[i] + local*end.r[i];
+        rod[idx].q = Rotation<3,double>::interpolate(beginning.q, end.q, local);
     }
 }
 
-- 
GitLab