From 22adf453c7ae8ea37b4e0bdd4a702208f1170c91 Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Tue, 11 Feb 2020 12:17:03 +0100
Subject: [PATCH] Use a power basis to interpolate vector-valued functions

Scalar bases used to work for that, but that feature got
removed a long time ago.
---
 test/adolctest.cc | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/test/adolctest.cc b/test/adolctest.cc
index be7ac34c..97c1bed7 100644
--- a/test/adolctest.cc
+++ b/test/adolctest.cc
@@ -35,7 +35,7 @@ typedef double FDType;
 
 #include <dune/functions/functionspacebases/lagrangebasis.hh>
 #include <dune/functions/functionspacebases/interpolate.hh>
-
+#include <dune/functions/functionspacebases/powerbasis.hh>
 
 #include <dune/gfe/rigidbodymotion.hh>
 #include <dune/gfe/localgeodesicfestiffness.hh>
@@ -464,7 +464,15 @@ int main (int argc, char *argv[]) try
     auto identity = [](const FieldVector<double,2>& x) -> FieldVector<double,3> { return {x[0], x[1], 0};};
 
     std::vector<FieldVector<double,3> > v;
-    Functions::interpolate(feBasis, v, identity);
+    using namespace Functions::BasisFactory;
+
+      auto powerBasis = makeBasis(
+        gridView,
+        power<3>(
+          lagrange<1>(),
+          blockedInterleaved()
+      ));
+    Functions::interpolate(powerBasis, v, identity);
 
     for (size_t i=0; i<x.size(); i++)
       x[i].r = v[i];
-- 
GitLab