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