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