diff --git a/dune/xt/functions/affine.hh b/dune/xt/functions/affine.hh
deleted file mode 100644
index 4e1494ee99ea592893d3b9fd8a0164fc7d8d5989..0000000000000000000000000000000000000000
--- a/dune/xt/functions/affine.hh
+++ /dev/null
@@ -1,523 +0,0 @@
-// This file is part of the dune-xt-functions project:
-//   https://github.com/dune-community/dune-xt-functions
-// Copyright 2009-2018 dune-xt-functions 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 (2013 - 2017)
-//   Kirsten Weber   (2013)
-//   Rene Milk       (2013 - 2018)
-//   Tobias Leibner  (2014 - 2015, 2017 - 2018)
-
-#ifndef DUNE_XT_FUNCTIONS_AFFINE_HH
-#define DUNE_XT_FUNCTIONS_AFFINE_HH
-
-#if HAVE_DUNE_XT_LA
-#if 0
-#include <memory>
-
-#include <dune/xt/common/configuration.hh>
-#include <dune/xt/common/fmatrix.hh>
-
-#include <dune/xt/functions/constant.hh>
-
-#include <dune/xt/la/container/common.hh>
-
-#include <dune/xt/functions/interfaces.hh>
-
-namespace Dune {
-namespace XT {
-namespace Functions {
-namespace internal {
-
-
-template <class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1>
-class AffineFunctionBase
-{
-  typedef AffineFunctionBase<DomainFieldImp, domainDim, RangeFieldImp, rangeDim, rangeDimCols> ThisType;
-
-public:
-  typedef FieldVector<DomainFieldImp, domainDim> DomainType;
-  typedef typename XT::Functions::RangeTypeSelector<RangeFieldImp, rangeDim, rangeDimCols>::type RangeType;
-  typedef typename XT::Functions::JacobianRangeTypeSelector<domainDim, RangeFieldImp, rangeDim, rangeDimCols>::type
-      JacobianRangeType;
-  typedef typename XT::Functions::RangeTypeSelector<RangeFieldImp, rangeDim, 1>::type ColRangeType;
-  typedef typename XT::Functions::JacobianRangeTypeSelector<domainDim, RangeFieldImp, rangeDim, 1>::type
-      ColJacobianRangeType;
-  typedef typename LA::CommonSparseOrDenseMatrixCsr<RangeFieldImp> MatrixType;
-  typedef FieldMatrix<RangeFieldImp, rangeDim, domainDim> FieldMatrixType;
-
-  static std::string static_id()
-  {
-    return "affine";
-  }
-
-  static Common::Configuration default_config(const std::string sub_name = "")
-  {
-    Common::Configuration config;
-    config["A"] = internal::EyeMatrix<RangeFieldImp, rangeDim, domainDim>::value_str();
-    config["b"] = internal::EyeMatrix<RangeFieldImp, rangeDim, 1>::value_str();
-    config["name"] = static_id();
-    if (sub_name.empty())
-      return config;
-    else {
-      Common::Configuration tmp;
-      tmp.add(config, sub_name);
-      return tmp;
-    }
-  } // ... default_config(...)
-
-  // constructor
-  explicit AffineFunctionBase(const std::vector<MatrixType>& A,
-                              const RangeType& b = RangeType(0),
-                              const std::string name_in = static_id())
-    : A_(A)
-    , b_(b)
-    , name_(name_in)
-    , b_zero_(Common::FloatCmp::eq(b_, RangeType(0)))
-  {
-    assert(A.size() >= rangeDimCols);
-  }
-
-  template <class MatrixImp>
-  explicit AffineFunctionBase(const FieldVector<MatrixImp, rangeDimCols>& A,
-                              const RangeType& b = RangeType(0),
-                              const bool prune = true,
-                              const std::string name_in = static_id())
-    : A_(A.size())
-    , b_(b)
-    , name_(name_in)
-    , b_zero_(Common::FloatCmp::eq(b_, RangeType(0)))
-  {
-    for (size_t cc = 0; cc < rangeDimCols; ++cc)
-      A_[cc] = MatrixType(A[cc], prune);
-  }
-
-  explicit AffineFunctionBase(const std::vector<FieldMatrixType>& A,
-                              const RangeType& b = RangeType(0),
-                              const bool prune = true,
-                              const std::string name_in = static_id())
-    : A_(A.size())
-    , b_(b)
-    , name_(name_in)
-    , b_zero_(Common::FloatCmp::eq(b_, RangeType(0)))
-  {
-    assert(A.size() >= rangeDimCols);
-    for (size_t cc = 0; cc < rangeDimCols; ++cc)
-      A_[cc] = MatrixType(A[cc], prune);
-  }
-
-  // constructor for dimRangeCols = 1.
-  explicit AffineFunctionBase(const MatrixType& A,
-                              const RangeType& b = RangeType(0),
-                              const std::string name_in = static_id())
-    : AffineFunctionBase(std::vector<MatrixType>(1, A), b, name_in)
-  {
-    static_assert(rangeDimCols == 1, "Use constructor above for dimRangeCols > 1");
-  }
-
-  // constructor for dimRangeCols = 1.
-  explicit AffineFunctionBase(const DynamicMatrix<RangeFieldImp>& A,
-                              const RangeType& b = RangeType(0),
-                              const bool prune = true,
-                              const std::string name_in = static_id())
-    : AffineFunctionBase(std::vector<MatrixType>(1, MatrixType(A, prune)), b, name_in)
-  {
-    static_assert(rangeDimCols == 1, "Use constructor above for dimRangeCols > 1");
-  }
-
-  AffineFunctionBase(const ThisType& other) = default;
-
-  const std::vector<MatrixType>& A() const
-  {
-    return A_;
-  }
-
-  const RangeType& b() const
-  {
-    return b_;
-  }
-
-protected:
-  template <bool is_not_tensor = (rangeDimCols == 1), class anything = void>
-  struct helper
-  {
-    static void evaluate(
-        const std::vector<MatrixType>& A, const RangeType& b, const bool b_zero, const DomainType& x, RangeType& ret)
-    {
-      A[0].mv(x, ret);
-      if (!b_zero)
-        ret += b;
-    }
-
-    static void evaluate_col(const size_t col,
-                             const std::vector<MatrixType>& A,
-                             const RangeType& b,
-                             const bool b_zero,
-                             const DomainType& x,
-                             RangeType& ret)
-    {
-      assert(col == 0);
-      evaluate(A, b, b_zero, x, ret);
-    }
-
-    static void jacobian(const std::vector<MatrixType>& A, JacobianRangeType& ret)
-    {
-      ret = *(A[0].operator std::unique_ptr<FieldMatrixType>());
-    }
-
-    static void jacobian_col(const size_t col, const std::vector<MatrixType>& A, JacobianRangeType& ret)
-    {
-      assert(col == 0);
-      jacobian(A, ret);
-    }
-  }; // struct helper<true, ...>
-
-  template <class anything>
-  struct helper<false, anything>
-  {
-    static void evaluate(
-        const std::vector<MatrixType>& A, const RangeType& b, const bool b_zero, const DomainType& x, RangeType& ret)
-    {
-      for (size_t cc = 0; cc < rangeDimCols; ++cc) {
-        Dune::FieldVector<RangeFieldImp, rangeDim> tmp_col;
-        A[cc].mv(x, tmp_col);
-        for (size_t rr = 0; rr < rangeDim; ++rr)
-          ret[rr][cc] = tmp_col[rr];
-      }
-      if (!b_zero)
-        ret += b;
-    }
-
-    static void evaluate_col(const size_t col,
-                             const std::vector<MatrixType>& A,
-                             const RangeType& b,
-                             const bool b_zero,
-                             const DomainType& x,
-                             ColRangeType& ret)
-    {
-      A[col].mv(x, ret);
-      if (!b_zero)
-        for (size_t rr = 0; rr < rangeDim; ++rr)
-          ret += b[rr][col];
-    }
-
-    static void jacobian(const std::vector<MatrixType>& A, JacobianRangeType& ret)
-    {
-      for (size_t cc = 0; cc < rangeDimCols; ++cc)
-        ret[cc] = *(A[cc].operator std::unique_ptr<FieldMatrixType>());
-    }
-
-    static void jacobian_col(const size_t col, const std::vector<MatrixType>& A, ColJacobianRangeType& ret)
-    {
-      ret = *(A[col].operator std::unique_ptr<FieldMatrixType>());
-    }
-  }; // struct helper<false, ...>
-
-protected:
-  std::vector<MatrixType> A_;
-  RangeType b_;
-  std::string name_;
-  bool b_zero_;
-}; // class AffineFunctionBase<...>
-
-
-} // namespace internal
-
-
-/**
- * \brief Simple affine function of the form f(x) = A*x + b. For dimRangeCols > 1, there has to be a matrix A_i for
- * every column.
- */
-template <class EntityImp,
-          class DomainFieldImp,
-          size_t domainDim,
-          class RangeFieldImp,
-          size_t rangeDim,
-          size_t rangeDimCols = 1>
-class AffineFunction
-    : public GlobalFunctionInterface<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, rangeDimCols>,
-      public internal::AffineFunctionBase<DomainFieldImp, domainDim, RangeFieldImp, rangeDim, rangeDimCols>
-{
-  typedef GlobalFunctionInterface<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, rangeDimCols>
-      InterfaceType;
-  typedef internal::AffineFunctionBase<DomainFieldImp, domainDim, RangeFieldImp, rangeDim, rangeDimCols> BaseType;
-  typedef AffineFunction<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, rangeDimCols> ThisType;
-
-public:
-  typedef typename InterfaceType::DomainType DomainType;
-  typedef typename InterfaceType::RangeFieldType RangeFieldType;
-  typedef typename InterfaceType::RangeType RangeType;
-  typedef typename InterfaceType::JacobianRangeType JacobianRangeType;
-  using InterfaceType::dimDomain;
-  using InterfaceType::dimRange;
-  using InterfaceType::dimRangeCols;
-  using typename BaseType::MatrixType;
-  using typename BaseType::FieldMatrixType;
-
-  using BaseType::default_config;
-
-  static std::string static_id()
-  {
-    return BaseType::static_id() + ".affine";
-  }
-
-  virtual size_t order(const XT::Common::Parameter& /*mu*/ = {}) const override
-  {
-    return 1;
-  }
-
-  static std::unique_ptr<ThisType> create(const Common::Configuration config = default_config(),
-                                          const std::string sub_name = static_id())
-  {
-    // get correct config
-    const Common::Configuration cfg = config.has_sub(sub_name) ? config.sub(sub_name) : config;
-    const Common::Configuration default_cfg = default_config();
-    std::vector<MatrixType> A_vector(dimRangeCols);
-    for (size_t cc = 0; cc < dimRangeCols; ++cc) {
-      if (cc == 0 && cfg.has_key("A")) {
-        A_vector[0] = cfg.get<MatrixType>("A", dimRange, dimDomain);
-      } else {
-        A_vector[cc] = cfg.get<MatrixType>("A." + Common::to_string(cc), dimRange, dimDomain);
-      }
-    }
-    return Common::make_unique<ThisType>(
-        A_vector, cfg.get<RangeType>("b"), cfg.get("name", default_cfg.get<std::string>("name")));
-  } // ... create(...)
-
-  // constructor
-  explicit AffineFunction(const std::vector<MatrixType>& A,
-                          const RangeType& b = RangeType(0),
-                          const std::string name_in = static_id())
-    : BaseType(A, b, name_in)
-  {
-  }
-
-  explicit AffineFunction(const FieldVector<FieldMatrixType, dimRangeCols>& A,
-                          const RangeType& b = RangeType(0),
-                          const bool prune = true,
-                          const std::string name_in = static_id())
-    : BaseType(A, b, prune, name_in)
-  {
-  }
-
-  explicit AffineFunction(const std::vector<FieldMatrixType>& A,
-                          const RangeType& b = RangeType(0),
-                          const bool prune = true,
-                          const std::string name_in = static_id())
-    : BaseType(A, b, prune, name_in)
-  {
-  }
-
-  // constructor for dimRangeCols = 1.
-  explicit AffineFunction(const MatrixType& A,
-                          const RangeType& b = RangeType(0),
-                          const std::string name_in = static_id())
-    : BaseType(A, b, name_in)
-  {
-  }
-
-  using InterfaceType::evaluate;
-
-  virtual void evaluate(const DomainType& x, RangeType& ret, const Common::Parameter& /*mu*/ = {}) const override final
-  {
-    BaseType::template helper<>::evaluate(A_, b_, b_zero_, x, ret);
-  }
-
-  using InterfaceType::jacobian;
-
-  virtual void
-  jacobian(const DomainType& /*x*/, JacobianRangeType& ret, const Common::Parameter& /*mu*/ = {}) const override final
-  {
-    BaseType::template helper<>::jacobian(A_, ret);
-  }
-
-private:
-  using BaseType::A_;
-  using BaseType::b_;
-  using BaseType::b_zero_;
-}; // class AffineFunction<...>
-
-
-/**
- * \brief Simple affine function of the form f(x, u) = A*u + b. For dimRangeCols > 1, there has to be a matrix A_i for
- * every column.
- */
-template <class EntityImp,
-          class DomainFieldImp,
-          size_t domainDim,
-          class U_,
-          class RangeFieldImp,
-          size_t rangeDim,
-          size_t rangeDimCols = 1>
-class AffineFluxFunction
-    : public GlobalFluxFunctionInterface<EntityImp,
-                                         DomainFieldImp,
-                                         domainDim,
-                                         U_,
-                                         0,
-                                         RangeFieldImp,
-                                         rangeDim,
-                                         rangeDimCols>,
-      public internal::
-          AffineFunctionBase<typename U_::RangeFieldType, U_::dimRange, RangeFieldImp, rangeDim, rangeDimCols>
-{
-  typedef GlobalFluxFunctionInterface<EntityImp,
-                                      DomainFieldImp,
-                                      domainDim,
-                                      U_,
-                                      0,
-                                      RangeFieldImp,
-                                      rangeDim,
-                                      rangeDimCols>
-      InterfaceType;
-  typedef internal::AffineFunctionBase<typename U_::RangeFieldType, U_::dimRange, RangeFieldImp, rangeDim, rangeDimCols>
-      BaseType;
-  typedef AffineFluxFunction ThisType;
-
-public:
-  typedef typename InterfaceType::DomainType DomainType;
-  typedef typename InterfaceType::RangeFieldType RangeFieldType;
-  typedef typename InterfaceType::RangeType RangeType;
-  typedef typename InterfaceType::PartialURangeType PartialURangeType;
-  typedef typename InterfaceType::ColRangeType ColRangeType;
-  typedef typename InterfaceType::ColPartialURangeType ColPartialURangeType;
-  using InterfaceType::dimDomain;
-  using InterfaceType::dimRange;
-  using InterfaceType::dimRangeCols;
-  typedef typename InterfaceType::StateType StateType;
-  typedef typename InterfaceType::StateRangeType StateRangeType;
-  typedef typename InterfaceType::LocalfunctionType LocalfunctionType;
-  typedef typename BaseType::MatrixType MatrixType;
-  typedef typename BaseType::FieldMatrixType FieldMatrixType;
-
-  using BaseType::default_config;
-
-  static std::string static_id()
-  {
-    return BaseType::static_id() + ".affineflux";
-  }
-
-  virtual size_t order(const Common::Parameter& /*param*/ = {}) const override
-  {
-    return 1;
-  }
-
-  static std::unique_ptr<ThisType> create(const Common::Configuration config = default_config(),
-                                          const std::string sub_name = static_id())
-  {
-    // get correct config
-    const Common::Configuration cfg = config.has_sub(sub_name) ? config.sub(sub_name) : config;
-    const Common::Configuration default_cfg = default_config();
-    std::vector<MatrixType> A_vector(dimRangeCols);
-    for (size_t cc = 0; cc < dimRangeCols; ++cc) {
-      if (cc == 0 && cfg.has_key("A")) {
-        A_vector[0] = cfg.get<MatrixType>("A", dimRange, StateType::dimRange);
-      } else {
-        A_vector[cc] = cfg.get<MatrixType>("A." + Common::to_string(cc), dimRange, StateType::dimRange);
-      }
-    }
-    return Common::make_unique<ThisType>(
-        A_vector, cfg.get<RangeType>("b"), cfg.get("name", default_cfg.get<std::string>("name")));
-  } // ... create(...)
-
-  // constructor
-  explicit AffineFluxFunction(const std::vector<MatrixType>& A,
-                              const RangeType& b = RangeType(0),
-                              const std::string name_in = static_id())
-    : BaseType(A, b, name_in)
-  {
-  }
-
-  template <class MatrixImp>
-  explicit AffineFluxFunction(const Dune::FieldVector<MatrixImp, dimRangeCols>& A,
-                              const RangeType& b = RangeType(0),
-                              const bool prune = true,
-                              const std::string name_in = static_id())
-    : BaseType(A, b, prune, name_in)
-  {
-  }
-
-  explicit AffineFluxFunction(const std::vector<FieldMatrixType>& A,
-                              const RangeType& b = RangeType(0),
-                              const bool prune = true,
-                              const std::string name_in = static_id())
-    : BaseType(A, b, prune, name_in)
-  {
-  }
-
-  // constructor for dimRangeCols = 1.
-  explicit AffineFluxFunction(const MatrixType& A,
-                              const RangeType& b = RangeType(0),
-                              const std::string name_in = static_id())
-    : BaseType(A, b, name_in)
-  {
-  }
-
-  explicit AffineFluxFunction(const DynamicMatrix<RangeFieldType>& A,
-                              const RangeType& b = RangeType(0),
-                              const bool prune = true,
-                              const std::string name_in = static_id())
-    : BaseType(A, b, prune, name_in)
-  {
-  }
-
-  using InterfaceType::evaluate;
-
-  virtual void evaluate(const DomainType& /*x*/,
-                        const StateRangeType& u,
-                        RangeType& ret,
-                        const Common::Parameter& /*mu*/ = {}) const override final
-  {
-    BaseType::template helper<>::evaluate(A_, b_, b_zero_, u, ret);
-  }
-
-  virtual void evaluate_col(const size_t col,
-                            const DomainType& /*x*/,
-                            const StateRangeType& u,
-                            ColRangeType& ret,
-                            const Common::Parameter& /*mu*/ = {}) const override final
-  {
-    BaseType::template helper<>::evaluate_col(col, A_, b_, b_zero_, u, ret);
-  }
-
-  using InterfaceType::partial_u;
-
-  virtual void partial_u(const DomainType& /*x*/,
-                         const StateRangeType& /*u*/,
-                         PartialURangeType& ret,
-                         const Common::Parameter& /*mu*/ = {}) const override final
-  {
-    BaseType::template helper<>::jacobian(A_, ret);
-  }
-
-  virtual void partial_u_col(const size_t col,
-                             const DomainType& /*x*/,
-                             const StateRangeType& /*u*/,
-                             ColPartialURangeType& ret,
-                             const Common::Parameter& /*mu*/ = {}) const override final
-  {
-    BaseType::template helper<>::jacobian_col(col, A_, ret);
-  }
-
-  virtual bool is_affine() const override
-  {
-    return true;
-  }
-
-private:
-  using BaseType::A_;
-  using BaseType::b_;
-  using BaseType::b_zero_;
-}; // class AffineFluxFunction<...>
-
-
-} // namespace Functions
-} // namespace XT
-} // namespace Dune
-
-#endif
-#endif // HAVE_DUNE_XT_LA
-
-#endif // DUNE_XT_FUNCTIONS_AFFINE_HH