From d00681019d3e5111bf77ce4fae1c03c784907d97 Mon Sep 17 00:00:00 2001
From: Oliver Sander <oliver.sander@tu-dresden.de>
Date: Mon, 5 Mar 2018 12:32:45 +0100
Subject: [PATCH] Implement PreBasisFactory for LagrangeDGBasis

---
 .../functionspacebases/lagrangedgbasis.hh     | 40 +++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/dune/functions/functionspacebases/lagrangedgbasis.hh b/dune/functions/functionspacebases/lagrangedgbasis.hh
index 81689c7..e0816f1 100644
--- a/dune/functions/functionspacebases/lagrangedgbasis.hh
+++ b/dune/functions/functionspacebases/lagrangedgbasis.hh
@@ -291,6 +291,46 @@ protected:
 
 
 
+
+namespace BasisBuilder {
+
+namespace Imp {
+
+template<std::size_t k>
+class LagrangeDGPreBasisFactory
+{
+public:
+  static const std::size_t requiredMultiIndexSize = 1;
+
+  template<class MultiIndex, class GridView>
+  auto makePreBasis(const GridView& gridView) const
+  {
+    return LagrangeDGPreBasis<GridView, k, MultiIndex>(gridView);
+  }
+
+};
+
+} // end namespace BasisBuilder::Imp
+
+
+
+/**
+ * \brief Create a pre-basis factory that can create a LagrangeDG pre-basis
+ *
+ * \ingroup FunctionSpaceBasesImplementations
+ *
+ * \tparam k   The polynomial order of the ansatz functions
+ */
+template<std::size_t k>
+auto lagrangeDG()
+{
+  return Imp::LagrangeDGPreBasisFactory<k>();
+}
+
+} // end namespace BasisBuilder
+
+
+
 // *****************************************************************************
 // This is the actual global basis implementation based on the reusable parts.
 // *****************************************************************************
-- 
GitLab