From 2793b025309b4c6614c148658a459d78239ab08b Mon Sep 17 00:00:00 2001
From: Felix Schindler <felix.schindler@wwu.de>
Date: Tue, 30 Jan 2018 22:58:24 +0100
Subject: [PATCH] drop dune-functions

---
 README.md                                     |   6 +-
 dune/gdt/operators/oswaldinterpolation.hh     |  15 --
 .../basefunctionset/dune-functions-wrapper.hh | 167 ------------------
 .../spaces/dg/dune-functions-wrapper.hh       | 160 -----------------
 .../spaces/mapper/dune-functions-wrapper.hh   | 155 ----------------
 dune/gdt/spaces/dg.hh                         |  11 +-
 dune/gdt/spaces/interface.hh                  |  10 +-
 .../projections/mpi_projections__local.tpl    |   1 -
 .../projections/mpi_projections_part_0_a.tpl  |   1 -
 .../projections/mpi_projections_part_1_a.tpl  |   1 -
 .../projections/mpi_projections_part_2_a.tpl  |   1 -
 ...mpi_prolongations__lagrange_and_global.tpl |   1 -
 .../mpi_prolongations__local.tpl              |   1 -
 .../prolongations/mpi_prolongations_cg_dg.tpl |   1 -
 dune/gdt/test/spaces.tpl                      |   2 -
 15 files changed, 5 insertions(+), 528 deletions(-)
 delete mode 100644 dune/gdt/playground/spaces/basefunctionset/dune-functions-wrapper.hh
 delete mode 100644 dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh
 delete mode 100644 dune/gdt/playground/spaces/mapper/dune-functions-wrapper.hh

diff --git a/README.md b/README.md
index e1e2d590d..339cb96c1 100644
--- a/README.md
+++ b/README.md
@@ -14,10 +14,8 @@
 
 dune-gdt is a [DUNE](http://www.dune-project.org/) module which provides a generic
 discretization toolbox for grid-based numerical methods. It contains building blocks - like
-local operators, local evaluations, local assemblers - for discretization methods as well as
-generic interfaces for objects like discrete function spaces and basefunction sets.
-Implementations are provided using the main DUNE discretization modules, like
-[dune-functions](https://www.dune-project.org/modules/dune-functions/).
+local operators, local evaluations, local assemblers - for discretization methods and suitable
+discrete function spaces.
 
 New users may best try out this module by using the git supermodule
 [dune-gdt-super](https://github.com/dune-community/dune-gdt-super). Experienced DUNE users
diff --git a/dune/gdt/operators/oswaldinterpolation.hh b/dune/gdt/operators/oswaldinterpolation.hh
index 14e5612eb..7bd91b71a 100644
--- a/dune/gdt/operators/oswaldinterpolation.hh
+++ b/dune/gdt/operators/oswaldinterpolation.hh
@@ -30,7 +30,6 @@
 #include <dune/gdt/discretefunction/default.hh>
 #include <dune/gdt/spaces/dg/default.hh>
 #include <dune/gdt/playground/spaces/block.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 
 #include "interfaces.hh"
 
@@ -91,13 +90,6 @@ public:
     apply_p1_dg(source, range);
   }
 
-  template <class GL, class V>
-  void apply(const XT::Functions::LocalizableFunctionInterface<E, D, d, FieldType, 1>& source,
-             DiscreteFunction<DuneFunctionsDgSpaceWrapper<GL, 1, FieldType, 1, 1>, V>& range) const
-  {
-    apply_p1_dg(source, range);
-  }
-
   template <class GL, class V>
   void apply(const XT::Functions::LocalizableFunctionInterface<E, D, d, FieldType, 1>& source,
              DiscreteFunction<BlockSpace<DiscontinuousLagrangeSpace<GL, 1, FieldType>>, V>& range) const
@@ -105,13 +97,6 @@ public:
     apply_p1_dg(source, range);
   }
 
-  template <class GL, class V>
-  void apply(const XT::Functions::LocalizableFunctionInterface<E, D, d, FieldType, 1>& source,
-             DiscreteFunction<BlockSpace<DuneFunctionsDgSpaceWrapper<GL, 1, FieldType, 1, 1>>, V>& range) const
-  {
-    apply_p1_dg(source, range);
-  }
-
 private:
   template <class SourceType, class RangeType>
   void apply_p1_dg(const SourceType& source, RangeType& range) const
diff --git a/dune/gdt/playground/spaces/basefunctionset/dune-functions-wrapper.hh b/dune/gdt/playground/spaces/basefunctionset/dune-functions-wrapper.hh
deleted file mode 100644
index 832dd08b2..000000000
--- a/dune/gdt/playground/spaces/basefunctionset/dune-functions-wrapper.hh
+++ /dev/null
@@ -1,167 +0,0 @@
-// This file is part of the dune-gdt project:
-//   https://github.com/dune-community/dune-gdt
-// Copyright 2010-2018 dune-gdt developers and contributors. All rights reserved.
-// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
-//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-//          with "runtime exception" (http://www.dune-project.org/license.html)
-// Authors:
-//   Felix Schindler (2017)
-//   Rene Milk       (2018)
-//   Tobias Leibner  (2017)
-
-#ifndef DUNE_GDT_PLAYGROUND_SPACES_BASEFUNCTIONSET_DUNE_FUNCTIONS_WRAPPER_HH
-#define DUNE_GDT_PLAYGROUND_SPACES_BASEFUNCTIONSET_DUNE_FUNCTIONS_WRAPPER_HH
-
-#include <dune/common/typetraits.hh>
-
-#if HAVE_DUNE_FUNCTIONS
-#include <dune/functions/functionspacebases/lagrangedgbasis.hh>
-#endif
-
-#include <dune/xt/grid/type_traits.hh>
-
-#include <dune/gdt/spaces/basefunctionset/interface.hh>
-
-namespace Dune {
-namespace GDT {
-
-#if HAVE_DUNE_FUNCTIONS
-
-
-// forward, to be used in the traits and to allow for specialization
-template <class GL, int p, class R, size_t r, size_t rC>
-class DuneFunctionsBaseFunctionSetWrapper
-{
-  static_assert(Dune::AlwaysFalse<GL>::value, "Untested for these dimensions!");
-};
-
-
-namespace internal {
-
-
-template <class GL, int p, class R, size_t r, size_t rC>
-class DuneFunctionsBaseFunctionSetWrapperTraits
-{
-  static_assert(XT::Grid::is_view<GL>::value, "We Probably need to use TemporaryGridView from dune-xt-grid!");
-
-public:
-  typedef DuneFunctionsBaseFunctionSetWrapper<GL, p, R, r, rC> derived_type;
-  typedef Functions::LagrangeDGBasis<GL, p> BackendType;
-  typedef typename XT::Grid::extract_entity<GL>::type EntityType;
-};
-
-
-} // namespace internal
-
-
-template <class GL, int p, class R>
-class DuneFunctionsBaseFunctionSetWrapper<GL, p, R, 1, 1>
-    : public BaseFunctionSetInterface<internal::DuneFunctionsBaseFunctionSetWrapperTraits<GL, p, R, 1, 1>,
-                                      typename GL::ctype,
-                                      GL::dimension,
-                                      R,
-                                      1,
-                                      1>
-{
-  typedef DuneFunctionsBaseFunctionSetWrapper<GL, p, R, 1, 1> ThisType;
-  typedef BaseFunctionSetInterface<internal::DuneFunctionsBaseFunctionSetWrapperTraits<GL, p, R, 1, 1>,
-                                   typename GL::ctype,
-                                   GL::dimension,
-                                   R,
-                                   1,
-                                   1>
-      BaseType;
-
-public:
-  typedef internal::DuneFunctionsBaseFunctionSetWrapperTraits<GL, p, R, 1, 1> Traits;
-
-  using typename BaseType::BackendType;
-  using typename BaseType::EntityType;
-  using typename BaseType::DomainType;
-  using typename BaseType::RangeType;
-  using typename BaseType::JacobianRangeType;
-
-private:
-  typedef typename BackendType::LocalView LocalViewType;
-
-public:
-  DuneFunctionsBaseFunctionSetWrapper(std::shared_ptr<const BackendType> bcknd, const EntityType& ent)
-    : BaseType(ent)
-    , backend_(bcknd)
-    , local_view_(backend_->localView())
-    , tmp_gradients_(local_view_.size(), JacobianRangeType(0.))
-  {
-    local_view_.bind(this->entity());
-  }
-
-  DuneFunctionsBaseFunctionSetWrapper(const ThisType& other) = default;
-  DuneFunctionsBaseFunctionSetWrapper(ThisType&& source) = default;
-
-  ThisType& operator=(const ThisType& other) = delete;
-  ThisType& operator=(ThisType&& source) = delete;
-
-  const BackendType& backend() const
-  {
-    return *backend_;
-  }
-
-  virtual size_t size() const override final
-  {
-    return local_view_.size();
-  }
-
-  virtual size_t order(const XT::Common::Parameter& /*mu*/ = {}) const override final
-  {
-    return local_view_.tree().finiteElement().localBasis().order();
-  }
-
-  using BaseType::evaluate;
-
-  void evaluate(const DomainType& xx,
-                std::vector<RangeType>& ret,
-                const XT::Common::Parameter& /*mu*/ = {}) const override final
-  {
-    assert(this->is_a_valid_point(xx));
-    assert(ret.size() >= size());
-    const auto& local_basis = local_view_.tree().finiteElement().localBasis();
-    local_basis.evaluateFunction(xx, ret);
-  }
-
-  using BaseType::jacobian;
-
-  void jacobian(const DomainType& xx,
-                std::vector<JacobianRangeType>& ret,
-                const XT::Common::Parameter& /*mu*/ = {}) const override final
-  {
-    assert(this->is_a_valid_point(xx));
-    assert(ret.size() >= size());
-    const auto& local_basis = local_view_.tree().finiteElement().localBasis();
-    local_basis.evaluateJacobian(xx, tmp_gradients_);
-    auto jacobian_inv = this->entity().geometry().jacobianInverseTransposed(xx);
-    for (size_t ii = 0; ii < size(); ++ii)
-      jacobian_inv.mv(tmp_gradients_[ii][0], ret[ii]);
-  } // ... jacobian(...)
-
-private:
-  const std::shared_ptr<const BackendType> backend_;
-  LocalViewType local_view_;
-  mutable std::vector<JacobianRangeType> tmp_gradients_;
-}; // class DuneFunctionsBaseFunctionSetWrapper
-
-
-#else // HAVE_DUNE_FUNCTIONS
-
-
-template <class GL, int p, class R, size_t r, size_t rC = 1>
-class DuneFunctionsBaseFunctionSetWrapper
-{
-  static_assert(Dune::AlwaysFalse<GL>::value, "You are missing dune-functions!");
-};
-
-
-#endif // HAVE_DUNE_FUNCTIONS
-
-} // namespace GDT
-} // namespace Dune
-
-#endif // DUNE_GDT_PLAYGROUND_SPACES_BASEFUNCTIONSET_DUNE_FUNCTIONS_WRAPPER_HH
diff --git a/dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh b/dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh
deleted file mode 100644
index e542dc9f1..000000000
--- a/dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh
+++ /dev/null
@@ -1,160 +0,0 @@
-// This file is part of the dune-gdt project:
-//   https://github.com/dune-community/dune-gdt
-// Copyright 2010-2018 dune-gdt developers and contributors. All rights reserved.
-// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
-//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-//          with "runtime exception" (http://www.dune-project.org/license.html)
-// Authors:
-//   Felix Schindler (2017)
-//   Rene Milk       (2017 - 2018)
-
-#ifndef DUNE_GDT_PLAYGROUND_SPACES_DG_DUNE_FUNCTIONS_WRAPPER_HH
-#define DUNE_GDT_PLAYGROUND_SPACES_DG_DUNE_FUNCTIONS_WRAPPER_HH
-
-#include <dune/common/typetraits.hh>
-
-#if HAVE_DUNE_FUNCTIONS
-#include <dune/functions/functionspacebases/lagrangedgbasis.hh>
-#endif
-
-#include <dune/xt/grid/type_traits.hh>
-
-#include <dune/gdt/spaces/interface.hh>
-#include <dune/gdt/playground/spaces/mapper/dune-functions-wrapper.hh>
-#include <dune/gdt/playground/spaces/basefunctionset/dune-functions-wrapper.hh>
-
-namespace Dune {
-namespace GDT {
-
-#if HAVE_DUNE_FUNCTIONS
-
-
-// forward, to be used in the traits and to allow for specialization
-template <class GL, int p, class R, size_t r, size_t rC = 1>
-class DuneFunctionsDgSpaceWrapper
-{
-  static_assert(Dune::AlwaysFalse<GL>::value, "Untested for these dimensions!");
-};
-
-
-namespace internal {
-
-
-template <class GL, int p, class R, size_t r, size_t rC>
-class DuneFunctionsDgSpaceWrapperTraits
-{
-  static_assert(XT::Grid::is_view<GL>::value, "We Probably need to use TemporaryGridView from dune-xt-grid!");
-
-public:
-  typedef DuneFunctionsDgSpaceWrapper<GL, p, R, r, rC> derived_type;
-  static const int polOrder = p;
-  static const bool continuous = false;
-  static const XT::Grid::Backends layer_backend = XT::Grid::extract_layer_backend<GL>::value;
-  typedef Functions::LagrangeDGBasis<GL, p> BackendType;
-  typedef DuneFunctionsMapperWrapper<GL, p, R, r, rC> MapperType;
-  typedef DuneFunctionsBaseFunctionSetWrapper<GL, p, R, r, rC> BaseFunctionSetType;
-  typedef double DofCommunicatorType;
-  typedef GL GridLayerType;
-  typedef R RangeFieldType;
-  static const constexpr Backends backend_type{Backends::functions};
-}; // class DuneFunctionsDgSpaceWrapperTraits
-
-
-} // namespace internal
-
-
-template <class GL, int p, class R>
-class DuneFunctionsDgSpaceWrapper<GL, p, R, 1, 1>
-    : public SpaceInterface<internal::DuneFunctionsDgSpaceWrapperTraits<GL, p, R, 1, 1>, GL::dimension, 1, 1>
-{
-  typedef DuneFunctionsDgSpaceWrapper<GL, p, R, 1, 1> ThisType;
-  typedef SpaceInterface<internal::DuneFunctionsDgSpaceWrapperTraits<GL, p, R, 1, 1>, GL::dimension, 1, 1> BaseType;
-
-public:
-  typedef internal::DuneFunctionsDgSpaceWrapperTraits<GL, p, R, 1, 1> Traits;
-
-  using typename BaseType::BackendType;
-  using typename BaseType::BaseFunctionSetType;
-  using typename BaseType::DofCommunicatorType;
-  using typename BaseType::EntityType;
-  using typename BaseType::GridLayerType;
-  using typename BaseType::MapperType;
-  using typename BaseType::PatternType;
-
-  DuneFunctionsDgSpaceWrapper(GridLayerType grd_layr)
-    : grid_layer_(new GridLayerType(grd_layr))
-    , backend_(new BackendType(*grid_layer_))
-    , mapper_(new MapperType(backend_))
-    , communicator_(new DofCommunicatorType(0.))
-  {
-  }
-
-  DuneFunctionsDgSpaceWrapper(const ThisType& other) = default;
-  DuneFunctionsDgSpaceWrapper(ThisType&& source) = default;
-
-  ThisType& operator=(const ThisType& other) = delete;
-  ThisType& operator=(ThisType&& source) = delete;
-
-  const GridLayerType& grid_layer() const
-  {
-    return *grid_layer_;
-  }
-
-  GridLayerType& grid_layer()
-  {
-    return *grid_layer_;
-  }
-
-  const BackendType& backend() const
-  {
-    return *backend_;
-  }
-
-  const MapperType& mapper() const
-  {
-    return *mapper_;
-  }
-
-  BaseFunctionSetType base_function_set(const EntityType& entity) const
-  {
-    return BaseFunctionSetType(backend_, entity);
-  }
-
-  using BaseType::compute_pattern;
-
-  template <class G, class S, size_t d, size_t r, size_t rC>
-  typename std::enable_if<XT::Grid::is_layer<G>::value, PatternType>::type
-  compute_pattern(const G& grd_layr, const SpaceInterface<S, d, r, rC>& ansatz_space) const
-  {
-    return this->compute_face_and_volume_pattern(grd_layr, ansatz_space);
-  }
-
-  DofCommunicatorType& dof_communicator() const
-  {
-    return *communicator_;
-  }
-
-private:
-  std::shared_ptr<GridLayerType> grid_layer_;
-  const std::shared_ptr<const BackendType> backend_;
-  const std::shared_ptr<const MapperType> mapper_;
-  mutable std::shared_ptr<DofCommunicatorType> communicator_;
-}; // class DuneFunctionsDgSpaceWrapper
-
-
-#else // HAVE_DUNE_FUNCTIONS
-
-
-template <class GL, int p, class R, size_t r, size_t rC = 1>
-class DuneFunctionsDgSpaceWrapper
-{
-  static_assert(Dune::AlwaysFalse<GL>::value, "You are missing dune-functions!");
-};
-
-
-#endif // HAVE_DUNE_FUNCTIONS
-
-} // namespace GDT
-} // namespace Dune
-
-#endif // DUNE_GDT_PLAYGROUND_SPACES_DG_DUNE_FUNCTIONS_WRAPPER_HH
diff --git a/dune/gdt/playground/spaces/mapper/dune-functions-wrapper.hh b/dune/gdt/playground/spaces/mapper/dune-functions-wrapper.hh
deleted file mode 100644
index 3dd033951..000000000
--- a/dune/gdt/playground/spaces/mapper/dune-functions-wrapper.hh
+++ /dev/null
@@ -1,155 +0,0 @@
-// This file is part of the dune-gdt project:
-//   https://github.com/dune-community/dune-gdt
-// Copyright 2010-2018 dune-gdt developers and contributors. All rights reserved.
-// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
-//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-//          with "runtime exception" (http://www.dune-project.org/license.html)
-// Authors:
-//   Felix Schindler (2017)
-
-#ifndef DUNE_GDT_PLAYGROUND_SPACES_MAPPER_DUNE_FUNCTIONS_WRAPPER_HH
-#define DUNE_GDT_PLAYGROUND_SPACES_MAPPER_DUNE_FUNCTIONS_WRAPPER_HH
-
-#include <dune/common/typetraits.hh>
-
-#if HAVE_DUNE_FUNCTIONS
-#include <dune/functions/functionspacebases/lagrangedgbasis.hh>
-#endif
-
-#include <dune/xt/grid/type_traits.hh>
-
-#include <dune/gdt/spaces/mapper/interfaces.hh>
-
-namespace Dune {
-namespace GDT {
-
-#if HAVE_DUNE_FUNCTIONS
-
-
-// forward, to be used in the traits and to allow for specialization
-template <class GL, int p, class R, size_t r, size_t rC>
-class DuneFunctionsMapperWrapper
-{
-  static_assert(Dune::AlwaysFalse<GL>::value, "Untested for these dimensions!");
-};
-
-
-namespace internal {
-
-
-template <class GL, int p, class R, size_t r, size_t rC>
-class DuneFunctionsMapperWrapperTraits
-{
-  static_assert(XT::Grid::is_view<GL>::value, "We Probably need to use TemporaryGridView from dune-xt-grid!");
-
-public:
-  typedef DuneFunctionsMapperWrapper<GL, p, R, r, rC> derived_type;
-  typedef Functions::LagrangeDGBasis<GL, p> BackendType;
-  typedef typename XT::Grid::extract_entity<GL>::type EntityType;
-};
-
-
-} // namespace internal
-
-
-template <class GL, int p, class R>
-class DuneFunctionsMapperWrapper<GL, p, R, 1, 1>
-    : public MapperInterface<internal::DuneFunctionsMapperWrapperTraits<GL, p, R, 1, 1>>
-{
-  typedef DuneFunctionsMapperWrapper<GL, p, R, 1, 1> ThisType;
-  typedef MapperInterface<internal::DuneFunctionsMapperWrapperTraits<GL, p, R, 1, 1>> BaseType;
-
-public:
-  typedef internal::DuneFunctionsMapperWrapperTraits<GL, p, R, 1, 1> Traits;
-
-  using typename BaseType::BackendType;
-  using typename BaseType::EntityType;
-
-  DuneFunctionsMapperWrapper(std::shared_ptr<const BackendType> bcknd)
-    : backend_(bcknd)
-    , max_num_dofs_(0)
-  {
-    auto local_view = backend_->localView();
-    auto local_index_set = backend_->localIndexSet();
-    for (auto&& entity : elements(backend_->gridView())) {
-      local_view.bind(entity);
-      local_index_set.bind(local_view);
-      max_num_dofs_ = std::max(max_num_dofs_, local_index_set.size());
-    }
-  }
-
-  DuneFunctionsMapperWrapper(const ThisType& other) = default;
-  DuneFunctionsMapperWrapper(ThisType&& source) = default;
-
-  ThisType& operator=(const ThisType& other) = delete;
-  ThisType& operator=(ThisType&& source) = delete;
-
-  const BackendType& backend() const
-  {
-    return *backend_;
-  }
-
-  size_t size() const
-  {
-    return backend_->size();
-  }
-
-  size_t maxNumDofs() const
-  {
-    return max_num_dofs_;
-  }
-
-  size_t numDofs(const EntityType& entity) const
-  {
-    auto local_view = backend_->localView();
-    auto local_index_set = backend_->localIndexSet();
-    local_view.bind(entity);
-    local_index_set.bind(local_view);
-    return local_index_set.size();
-  }
-
-  using BaseType::globalIndices;
-
-  void globalIndices(const EntityType& entity, Dune::DynamicVector<size_t>& ret) const
-  {
-    auto local_view = backend_->localView();
-    auto local_index_set = backend_->localIndexSet();
-    local_view.bind(entity);
-    local_index_set.bind(local_view);
-    assert(ret.size() >= local_index_set.size());
-    for (size_t ii = 0; ii < local_index_set.size(); ++ii)
-      ret[ii] = local_index_set.index(ii)[0];
-  }
-
-  size_t mapToGlobal(const EntityType& entity, const size_t& localIndex) const
-  {
-    auto local_view = backend_->localView();
-    auto local_index_set = backend_->localIndexSet();
-    local_view.bind(entity);
-    local_index_set.bind(local_view);
-    assert(localIndex < local_index_set.size());
-    return local_index_set.index(localIndex)[0];
-  }
-
-private:
-  const std::shared_ptr<const BackendType> backend_;
-  size_t max_num_dofs_;
-}; // class DuneFunctionsMapperWrapper
-
-
-#else // HAVE_DUNE_FUNCTIONS
-
-
-template <class GL, int p, class R, size_t r, size_t rC = 1>
-class DuneFunctionsMapperWrapper
-{
-  static_assert(Dune::AlwaysFalse<GL>::value, "You are missing dune-functions!");
-};
-
-
-#endif // HAVE_DUNE_FUNCTIONS
-
-} // namespace GDT
-} // namespace Dune
-
-#endif // DUNE_GDT_PLAYGROUND_SPACES_MAPPER_DUNE_FUNCTIONS_WRAPPER_HH
diff --git a/dune/gdt/spaces/dg.hh b/dune/gdt/spaces/dg.hh
index 30b4de334..ad9d79e41 100644
--- a/dune/gdt/spaces/dg.hh
+++ b/dune/gdt/spaces/dg.hh
@@ -18,10 +18,10 @@
 #include <dune/xt/grid/layers.hh>
 #include <dune/xt/grid/gridprovider/provider.hh>
 
+#include <dune/gdt/playground/spaces/block.hh>
+
 #include "interface.hh"
 #include "dg/default.hh"
-#include "../playground/spaces/dg/dune-functions-wrapper.hh"
-#include <dune/gdt/playground/spaces/block.hh>
 
 
 namespace Dune {
@@ -63,13 +63,6 @@ private:
     typedef GDT::DiscontinuousLagrangeSpace<GridLayerType, p, R> Type;
   };
 
-  template <class G, int p, class R, size_t r, size_t rC>
-  struct SpaceChooser<G, p, R, r, rC, GDT::Backends::functions>
-  {
-    typedef GDT::DuneFunctionsDgSpaceWrapper<GridLayerType, p, R, r, rC> Type;
-  };
-
-
 public:
   typedef typename SpaceChooser<GridType, polOrder, RangeFieldType, dimRange, dimRangeCols, backend_type>::Type Type;
   typedef Type type;
diff --git a/dune/gdt/spaces/interface.hh b/dune/gdt/spaces/interface.hh
index 619176ccd..c8460b430 100644
--- a/dune/gdt/spaces/interface.hh
+++ b/dune/gdt/spaces/interface.hh
@@ -49,12 +49,10 @@ namespace GDT {
 
 enum class Backends
 {
-  functions,
   gdt
 };
 
-static const XT::Common::FixedMap<Backends, std::string, 4> backend_names = {{Backends::functions, "functions"},
-                                                                             {Backends::gdt, "gdt"}};
+static const XT::Common::FixedMap<Backends, std::string, 4> backend_names = {{Backends::gdt, "gdt"}};
 
 // disable GCC warning "type attributes ignored after type is already defined [-Wattributes]"
 #include <dune/xt/common/disable_warnings.hh>
@@ -113,12 +111,6 @@ enum class ChoosePattern
 template <Backends type>
 struct layer_from_backend;
 
-template <>
-struct layer_from_backend<Backends::functions>
-{
-  static const XT::Grid::Backends type = XT::Grid::Backends::view;
-};
-
 template <>
 struct layer_from_backend<Backends::gdt>
 {
diff --git a/dune/gdt/test/projections/mpi_projections__local.tpl b/dune/gdt/test/projections/mpi_projections__local.tpl
index 3f29d7f4a..6d4fb42be 100644
--- a/dune/gdt/test/projections/mpi_projections__local.tpl
+++ b/dune/gdt/test/projections/mpi_projections__local.tpl
@@ -17,7 +17,6 @@
 #include <dune/gdt/test/projections/l2.hh>
 #include <dune/gdt/spaces/cg/default.hh>
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/projections/mpi_projections_part_0_a.tpl b/dune/gdt/test/projections/mpi_projections_part_0_a.tpl
index f9f87e43f..7b2631a62 100644
--- a/dune/gdt/test/projections/mpi_projections_part_0_a.tpl
+++ b/dune/gdt/test/projections/mpi_projections_part_0_a.tpl
@@ -22,7 +22,6 @@
 #include <dune/gdt/spaces/cg/default.hh>
 
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/projections/mpi_projections_part_1_a.tpl b/dune/gdt/test/projections/mpi_projections_part_1_a.tpl
index 736a6edad..d8937629a 100644
--- a/dune/gdt/test/projections/mpi_projections_part_1_a.tpl
+++ b/dune/gdt/test/projections/mpi_projections_part_1_a.tpl
@@ -24,7 +24,6 @@
 #include <dune/gdt/spaces/cg/default.hh>
 
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/projections/mpi_projections_part_2_a.tpl b/dune/gdt/test/projections/mpi_projections_part_2_a.tpl
index e8ded9bde..7a5d76cd5 100644
--- a/dune/gdt/test/projections/mpi_projections_part_2_a.tpl
+++ b/dune/gdt/test/projections/mpi_projections_part_2_a.tpl
@@ -24,7 +24,6 @@
 #include <dune/gdt/spaces/cg/default.hh>
 
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/prolongations/mpi_prolongations__lagrange_and_global.tpl b/dune/gdt/test/prolongations/mpi_prolongations__lagrange_and_global.tpl
index af5879a97..e642cee63 100644
--- a/dune/gdt/test/prolongations/mpi_prolongations__lagrange_and_global.tpl
+++ b/dune/gdt/test/prolongations/mpi_prolongations__lagrange_and_global.tpl
@@ -18,7 +18,6 @@
 #include <dune/gdt/spaces/cg/default.hh>
 
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/prolongations/mpi_prolongations__local.tpl b/dune/gdt/test/prolongations/mpi_prolongations__local.tpl
index 62a7d87ec..70456d640 100644
--- a/dune/gdt/test/prolongations/mpi_prolongations__local.tpl
+++ b/dune/gdt/test/prolongations/mpi_prolongations__local.tpl
@@ -18,7 +18,6 @@
 #include <dune/gdt/spaces/cg/default.hh>
 
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/prolongations/mpi_prolongations_cg_dg.tpl b/dune/gdt/test/prolongations/mpi_prolongations_cg_dg.tpl
index 89bcda5b3..7e74b409b 100644
--- a/dune/gdt/test/prolongations/mpi_prolongations_cg_dg.tpl
+++ b/dune/gdt/test/prolongations/mpi_prolongations_cg_dg.tpl
@@ -18,7 +18,6 @@
 #include <dune/gdt/spaces/cg/default.hh>
 
 #include <dune/gdt/spaces/dg/default.hh>
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
diff --git a/dune/gdt/test/spaces.tpl b/dune/gdt/test/spaces.tpl
index d830974f1..ce5f5c409 100644
--- a/dune/gdt/test/spaces.tpl
+++ b/dune/gdt/test/spaces.tpl
@@ -19,8 +19,6 @@
 #include <dune/gdt/spaces/fv/default.hh>
 #include <dune/gdt/spaces/rt/default.hh>
 
-#include <dune/gdt/playground/spaces/dg/dune-functions-wrapper.hh>
-
 #include <dune/gdt/test/spaces/cg.hh>
 #include <dune/gdt/test/spaces/dg.hh>
 #include <dune/gdt/test/spaces/fv.hh>
-- 
GitLab