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