From bb9a70e76efa4061c49279aa100e5de3846227fa Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Wed, 29 Aug 2018 13:31:15 +0200
Subject: [PATCH] Removed dune-functions requirement

---
 dune.module                                   |  4 +-
 .../datacollectors/continuousdatacollector.hh |  1 +
 dune/vtk/vtkfunction.hh                       |  1 -
 src/CMakeLists.txt                            | 39 ++++++++++---------
 src/legacyvtkwriter.cc                        | 15 +------
 src/test/CMakeLists.txt                       |  3 +-
 6 files changed, 27 insertions(+), 36 deletions(-)

diff --git a/dune.module b/dune.module
index 293d491..57ba738 100644
--- a/dune.module
+++ b/dune.module
@@ -7,5 +7,5 @@ Module: dune-vtk
 Version: 0.1
 Maintainer: simon.praetorius@tu-dresden.de
 #depending on
-Depends: dune-grid dune-functions
-Suggests: dune-spgrid dune-polygongrid
\ No newline at end of file
+Depends: dune-grid
+Suggests: dune-functions dune-spgrid dune-polygongrid
\ No newline at end of file
diff --git a/dune/vtk/datacollectors/continuousdatacollector.hh b/dune/vtk/datacollectors/continuousdatacollector.hh
index 22f48f3..36c4c69 100644
--- a/dune/vtk/datacollectors/continuousdatacollector.hh
+++ b/dune/vtk/datacollectors/continuousdatacollector.hh
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <numeric>
 #include "unstructureddatacollector.hh"
 
 namespace Dune
diff --git a/dune/vtk/vtkfunction.hh b/dune/vtk/vtkfunction.hh
index 4593f8d..8fa14a7 100644
--- a/dune/vtk/vtkfunction.hh
+++ b/dune/vtk/vtkfunction.hh
@@ -3,7 +3,6 @@
 #include <type_traits>
 
 #include <dune/common/std/type_traits.hh>
-#include <dune/functions/common/signature.hh>
 
 #include "vtklocalfunction.hh"
 #include "vtktypes.hh"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a50e8fc..46958c1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,30 +1,33 @@
-add_executable("vtkwriter" vtkwriter.cc)
-target_link_dune_default_libraries("vtkwriter")
-target_link_libraries("vtkwriter" dunevtk)
 
 add_executable("vtkreader" vtkreader.cc)
 target_link_dune_default_libraries("vtkreader")
 target_link_libraries("vtkreader" dunevtk)
 
-add_executable("benchmark" benchmark.cc)
-target_link_dune_default_libraries("benchmark")
-target_link_libraries("benchmark" dunevtk)
-
-add_executable("datacollector" datacollector.cc)
-target_link_dune_default_libraries("datacollector")
-target_link_libraries("datacollector" dunevtk)
-
-add_executable("structuredgridwriter" structuredgridwriter.cc)
-target_link_dune_default_libraries("structuredgridwriter")
-target_link_libraries("structuredgridwriter" dunevtk)
-
 add_executable("legacyvtkwriter" legacyvtkwriter.cc)
 target_link_dune_default_libraries("legacyvtkwriter")
 target_link_libraries("legacyvtkwriter" dunevtk)
 
-add_executable("geometrygrid" geometrygrid.cc)
-target_link_dune_default_libraries("geometrygrid")
-target_link_libraries("geometrygrid" dunevtk)
+if (dune-functions_FOUND)
+  add_executable("vtkwriter" vtkwriter.cc)
+  target_link_dune_default_libraries("vtkwriter")
+  target_link_libraries("vtkwriter" dunevtk)
+
+  add_executable("benchmark" benchmark.cc)
+  target_link_dune_default_libraries("benchmark")
+  target_link_libraries("benchmark" dunevtk)
+
+  add_executable("datacollector" datacollector.cc)
+  target_link_dune_default_libraries("datacollector")
+  target_link_libraries("datacollector" dunevtk)
+
+  add_executable("structuredgridwriter" structuredgridwriter.cc)
+  target_link_dune_default_libraries("structuredgridwriter")
+  target_link_libraries("structuredgridwriter" dunevtk)
+
+  add_executable("geometrygrid" geometrygrid.cc)
+  target_link_dune_default_libraries("geometrygrid")
+  target_link_libraries("geometrygrid" dunevtk)
+endif ()
 
 if (dune-polygongrid_FOUND)
   add_executable("polygongrid" polygongrid.cc)
diff --git a/src/legacyvtkwriter.cc b/src/legacyvtkwriter.cc
index 0ed25c6..b001fce 100644
--- a/src/legacyvtkwriter.cc
+++ b/src/legacyvtkwriter.cc
@@ -12,11 +12,6 @@
 #include <dune/common/exceptions.hh> // We use exceptions
 #include <dune/common/filledarray.hh>
 
-#include <dune/functions/functionspacebases/defaultglobalbasis.hh>
-#include <dune/functions/functionspacebases/lagrangebasis.hh>
-#include <dune/functions/functionspacebases/interpolate.hh>
-#include <dune/functions/gridfunctions/analyticgridviewfunction.hh>
-#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
 #include <dune/grid/uggrid.hh>
 #include <dune/grid/yaspgrid.hh>
 
@@ -24,7 +19,6 @@
 #include <dune/vtk/legacyvtkfunction.hh>
 
 using namespace Dune;
-using namespace Dune::Functions;
 
 int main(int argc, char** argv)
 {
@@ -39,14 +33,7 @@ int main(int argc, char** argv)
   using GridView = typename GridType::LeafGridView;
   GridView gridView = grid.leafGridView();
 
-  using namespace BasisFactory;
-  auto basis = makeBasis(gridView, lagrange<1>());
-
-  std::vector<double> p1function(basis.dimension());
-  interpolate(basis, p1function, [](auto const& x) {
-    return 100*x[0] + 10*x[1] + 1*x[2];
-  });
-
+  std::vector<double> p1function(gridView.size(dim), 1.0);
   using P1Function = P1VTKFunction<GridView,std::vector<double>>;
   std::shared_ptr<VTKFunction<GridView> const> p1FctWrapped(new P1Function(gridView, p1function, "p1"));
 
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
index 77409fe..dd38c57 100644
--- a/src/test/CMakeLists.txt
+++ b/src/test/CMakeLists.txt
@@ -1,5 +1,6 @@
 dune_add_test(SOURCES reader_writer_test.cc
-              LINK_LIBRARIES dunevtk)
+              LINK_LIBRARIES dunevtk
+              CMAKE_GUARD)
 
 dune_add_test(SOURCES mixed_element_test.cc
               LINK_LIBRARIES dunevtk
-- 
GitLab