From 5a038541005e068d27611ff42bbba7c974769a20 Mon Sep 17 00:00:00 2001 From: Tobias Leibner <tobias.leibner@googlemail.com> Date: Fri, 21 Nov 2014 09:14:01 +0100 Subject: [PATCH] [operators] fix includes and namespaces, refs #14 --- dune/gdt/operators/darcy.hh | 10 +- dune/gdt/operators/fluxreconstruction.hh | 13 +- dune/gdt/operators/oswaldinterpolation.hh | 21 ++- dune/gdt/operators/projections.hh | 85 ++++++------ dune/gdt/operators/prolongations.hh | 124 ++++++++---------- .../operators/fluxreconstruction.hh | 11 +- 6 files changed, 120 insertions(+), 144 deletions(-) diff --git a/dune/gdt/operators/darcy.hh b/dune/gdt/operators/darcy.hh index cccc8447e..51b0b095b 100644 --- a/dune/gdt/operators/darcy.hh +++ b/dune/gdt/operators/darcy.hh @@ -8,9 +8,7 @@ #include <limits> -#include <dune/stuff/common/disable_warnings.hh> #include <dune/geometry/quadraturerules.hh> -#include <dune/stuff/common/reenable_warnings.hh> #include <dune/stuff/common/exceptions.hh> #include <dune/stuff/common/type_utils.hh> @@ -18,8 +16,8 @@ #include <dune/stuff/la/container.hh> #include <dune/stuff/la/solver.hh> -#include <dune/gdt/spaces/continuouslagrange/fem.hh> -#include <dune/gdt/playground/spaces/raviartthomas/pdelab.hh> +#include <dune/gdt/spaces/cg/fem.hh> +#include <dune/gdt/playground/spaces/rt/pdelab.hh> #include <dune/gdt/discretefunction/default.hh> #include "interfaces.hh" @@ -83,7 +81,7 @@ public: */ template <class GP, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, 1, 1>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GP, p, FieldType, dimDomain, 1>, V>& range) const + DiscreteFunction<Spaces::CG::FemBased<GP, p, FieldType, dimDomain, 1>, V>& range) const { typedef typename Stuff::LA::Container<FieldType>::MatrixType MatrixType; typedef typename Stuff::LA::Container<FieldType>::VectorType VectorType; @@ -131,7 +129,7 @@ public: template <class GP, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, 1>& source, - DiscreteFunction<Spaces::RaviartThomas::PdelabBased<GP, 0, FieldType, dimDomain>, V>& range) const + DiscreteFunction<Spaces::RT::PdelabBased<GP, 0, FieldType, dimDomain>, V>& range) const { const auto& rtn0_space = range.space(); auto& range_vector = range.vector(); diff --git a/dune/gdt/operators/fluxreconstruction.hh b/dune/gdt/operators/fluxreconstruction.hh index 5173ecf36..1dbd21b90 100644 --- a/dune/gdt/operators/fluxreconstruction.hh +++ b/dune/gdt/operators/fluxreconstruction.hh @@ -20,7 +20,7 @@ #include <dune/stuff/functions/interfaces.hh> #include <dune/stuff/functions/constant.hh> -#include <dune/gdt/playground/spaces/raviartthomas/pdelab.hh> +#include <dune/gdt/playground/spaces/rt/pdelab.hh> #include <dune/gdt/discretefunction/default.hh> #include <dune/gdt/localevaluation/swipdg.hh> @@ -63,7 +63,7 @@ public: template <class GV, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, 1>& source, - DiscreteFunction<Spaces::RaviartThomas::PdelabBased<GV, 0, FieldType, dimDomain>, V>& range) const + DiscreteFunction<Spaces::RT::PdelabBased<GV, 0, FieldType, dimDomain>, V>& range) const { const auto& rtn0_space = range.space(); auto& range_vector = range.vector(); @@ -78,12 +78,9 @@ public: DynamicMatrix<FieldType> tmp_matrix(1, 1, 0); DynamicMatrix<FieldType> tmp_matrix_en_en(1, 1, 0); DynamicMatrix<FieldType> tmp_matrix_en_ne(1, 1, 0); - std::vector< - typename Spaces::RaviartThomas::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType> - basis_values( - rtn0_space.mapper().maxNumDofs(), - typename Spaces::RaviartThomas::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType( - 0)); + std::vector<typename Spaces::RT::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType> + basis_values(rtn0_space.mapper().maxNumDofs(), + typename Spaces::RT::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType(0)); // walk the grid const auto entity_it_end = grid_view_.template end<0>(); for (auto entity_it = grid_view_.template begin<0>(); entity_it != entity_it_end; ++entity_it) { diff --git a/dune/gdt/operators/oswaldinterpolation.hh b/dune/gdt/operators/oswaldinterpolation.hh index c2759dd6d..70923730e 100644 --- a/dune/gdt/operators/oswaldinterpolation.hh +++ b/dune/gdt/operators/oswaldinterpolation.hh @@ -16,7 +16,7 @@ #include <dune/stuff/grid/walker.hh> #include <dune/gdt/discretefunction/default.hh> -#include <dune/gdt/playground/spaces/discontinuouslagrange/fem.hh> +#include <dune/gdt/playground/spaces/dg/fem.hh> #include <dune/gdt/playground/spaces/block.hh> #include "interfaces.hh" @@ -48,16 +48,16 @@ private: "SourceType has to be a ConstDiscreteFunction!"); typedef typename SourceType::SpaceType S; static_assert(std::is_same< S - , Spaces::DiscontinuousLagrange::FemBased< typename S::GridPartType + , Spaces::DG::FemBased< typename S::GridPartType , 1 , FieldType, 1, 1 > >::value, - "The SpaceType of SourceType has to be a Spaces::DiscontinuousLagrange::FemBased!"); + "The SpaceType of SourceType has to be a Spaces::DG::FemBased!"); typedef typename RangeType::SpaceType R; static_assert(std::is_same< R - , Spaces::DiscontinuousLagrange::FemBased< typename R::GridPartType + , Spaces::DG::FemBased< typename R::GridPartType , 1 , FieldType, 1, 1 > >::value, - "The SpaceType of RangeType has to be a Spaces::DiscontinuousLagrange::FemBased!"); + "The SpaceType of RangeType has to be a Spaces::DG::FemBased!"); }; // class OswaldInterpolationLocalizableTraits @@ -361,18 +361,15 @@ public: } template <class SGP, class SV, class RGP, class RV> - void apply(const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<SGP, 1, FieldType, 1, 1>, SV>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<RGP, 1, FieldType, 1, 1>, RV>& range) const + void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<SGP, 1, FieldType, 1, 1>, SV>& source, + DiscreteFunction<Spaces::DG::FemBased<RGP, 1, FieldType, 1, 1>, RV>& range) const { apply_dg_fem(source, range); } template <class SGP, class SV, class RGP, class RV> - void - apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<SGP, 1, FieldType, 1, 1>>, - SV>& source, - DiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<RGP, 1, FieldType, 1, 1>>, RV>& range) - const + void apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<SGP, 1, FieldType, 1, 1>>, SV>& source, + DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<RGP, 1, FieldType, 1, 1>>, RV>& range) const { apply_dg_fem(source, range); } diff --git a/dune/gdt/operators/projections.hh b/dune/gdt/operators/projections.hh index 8e29d214e..6172c410e 100644 --- a/dune/gdt/operators/projections.hh +++ b/dune/gdt/operators/projections.hh @@ -9,9 +9,7 @@ #include <vector> #include <limits> -#include <dune/stuff/common/disable_warnings.hh> #include <dune/common/fvector.hh> -#include <dune/stuff/common/reenable_warnings.hh> #include <dune/stuff/common/type_utils.hh> #include <dune/stuff/common/vector.hh> @@ -24,12 +22,12 @@ #include <dune/gdt/discretefunction/default.hh> #include <dune/gdt/spaces/continuouslagrange/base.hh> -#include <dune/gdt/spaces/continuouslagrange/fem.hh> -#include <dune/gdt/spaces/continuouslagrange/pdelab.hh> -#include <dune/gdt/playground/spaces/discontinuouslagrange/fem.hh> -#include <dune/gdt/playground/spaces/discontinuouslagrange/pdelab.hh> -#include <dune/gdt/playground/spaces/raviartthomas/pdelab.hh> -#include <dune/gdt/playground/spaces/finitevolume/default.hh> +#include <dune/gdt/spaces/cg/fem.hh> +#include <dune/gdt/spaces/cg/pdelab.hh> +#include <dune/gdt/playground/spaces/dg/fem.hh> +#include <dune/gdt/playground/spaces/dg/pdelab.hh> +#include <dune/gdt/playground/spaces/rt/pdelab.hh> +#include <dune/gdt/playground/spaces/fv/default.hh> #include <dune/gdt/playground/spaces/block.hh> #include "interfaces.hh" @@ -88,14 +86,14 @@ public: template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> inline void apply(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const + DiscreteFunction<Spaces::CG::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const { apply_p(source, range); } template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> inline void apply(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GP, p, RR, rR, rCR>, V>& range) const + DiscreteFunction<Spaces::CG::FemBased<GP, p, RR, rR, rCR>, V>& range) const { apply_p(source, range); } @@ -122,7 +120,7 @@ private: // and do the work (see below) apply_local(lagrange_points, *local_source, local_range_DoF_vector); } // walk the grid - } // ... apply(... Spaces::ContinuousLagrange::FemBased< GP, 1, R, r, 1 > ...) + } // ... apply(... Spaces::CG::FemBased< GP, 1, R, r, 1 > ...) template <class LagrangePointsType, class LocalSourceType, class LocalRangeVectorType> void apply_local(const LagrangePointsType& lagrange_points, const LocalSourceType& local_source, @@ -194,22 +192,22 @@ public: template <class GP, int p, class R, int r, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GP, p, R, r, 1>, V>& range) const + DiscreteFunction<Spaces::DG::FemBased<GP, p, R, r, 1>, V>& range) const { // checks - typedef Spaces::DiscontinuousLagrange::FemBased<GP, p, R, r, 1> SpaceType; + typedef Spaces::DG::FemBased<GP, p, R, r, 1> SpaceType; static_assert(SpaceType::dimDomain == dimDomain, "Dimensions do not match!"); apply_local_l2_projection_(source, range); - } // ... apply(... Spaces::DiscontinuousLagrange::FemBased< ..., 1 > ...) + } // ... apply(... Spaces::DG::FemBased< ..., 1 > ...) #if HAVE_DUNE_GRID_MULTISCALE template <class GP, int p, class R, int r, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, - DiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GP, p, R, r, 1>>, V>& range) const + DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GP, p, R, r, 1>>, V>& range) const { // checks - typedef Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GP, p, R, r, 1>> SpaceType; + typedef Spaces::Block<Spaces::DG::FemBased<GP, p, R, r, 1>> SpaceType; static_assert(SpaceType::dimDomain == dimDomain, "Dimensions do not match!"); apply_local_l2_projection_(source, range); } @@ -218,33 +216,33 @@ public: template <class GP, int p, class R, int r, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::PdelabBased<GP, p, R, r, 1>, V>& range) const + DiscreteFunction<Spaces::DG::PdelabBased<GP, p, R, r, 1>, V>& range) const { // checks - typedef Spaces::DiscontinuousLagrange::PdelabBased<GP, p, R, r, 1> SpaceType; + typedef Spaces::DG::PdelabBased<GP, p, R, r, 1> SpaceType; static_assert(SpaceType::dimDomain == dimDomain, "Dimensions do not match!"); apply_local_l2_projection_(source, range); } template <class E, class D, int d, class R, int r, class GV, class V> void apply(const Stuff::LocalizableFunctionInterface<E, D, d, R, r, 1>& source, - DiscreteFunction<Spaces::FiniteVolume::Default<GV, R, r, 1>, V>& range) const + DiscreteFunction<Spaces::FV::Default<GV, R, r, 1>, V>& range) const { - typedef Spaces::FiniteVolume::Default<GV, R, r, 1> SpaceType; + typedef Spaces::FV::Default<GV, R, r, 1> SpaceType; static_assert(SpaceType::dimDomain == dimDomain, "Dimensions do not match!"); apply_local_l2_projection_(source, range); - } // ... apply(... Spaces::FiniteVolume::Default< ..., 1 > ...) + } // ... apply(... Spaces::FV::Default< ..., 1 > ...) template <class GP, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, 1, 1>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GP, p, FieldType, 1, 1>, V>& range) const + DiscreteFunction<Spaces::CG::FemBased<GP, p, FieldType, 1, 1>, V>& range) const { apply_global_l2_projection_(source, range); } template <class GP, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, 1, 1>& source, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GP, p, FieldType, 1, 1>, V>& range) const + DiscreteFunction<Spaces::CG::PdelabBased<GP, p, FieldType, 1, 1>, V>& range) const { apply_global_l2_projection_(source, range); } @@ -252,7 +250,7 @@ public: template <class GP, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, dimDomain, 1>& source, - DiscreteFunction<Spaces::RaviartThomas::PdelabBased<GP, p, FieldType, dimDomain, 1>, V>& range) const + DiscreteFunction<Spaces::RT::PdelabBased<GP, p, FieldType, dimDomain, 1>, V>& range) const { apply_global_l2_projection_(source, range); } // ... apply(...) @@ -418,25 +416,25 @@ private: } template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> - inline void redirect_to_appropriate_operator( - const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GP, p, RR, rR, rCR>, V>& range) const + inline void + redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, + DiscreteFunction<Spaces::CG::FemBased<GP, p, RR, rR, rCR>, V>& range) const { lagrange_operator_.apply(source, range); } template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> - inline void redirect_to_appropriate_operator( - const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const + inline void + redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, + DiscreteFunction<Spaces::CG::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const { lagrange_operator_.apply(source, range); } template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> - inline void redirect_to_appropriate_operator( - const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GP, p, RR, rR, rCR>, V>& range) const + inline void + redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, + DiscreteFunction<Spaces::DG::FemBased<GP, p, RR, rR, rCR>, V>& range) const { l2_operator_.apply(source, range); } @@ -446,7 +444,7 @@ private: template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> inline void redirect_to_appropriate_operator( const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GP, p, RR, rR, rCR>>, V>& range) const + DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GP, p, RR, rR, rCR>>, V>& range) const { l2_operator_.apply(source, range); } @@ -454,17 +452,16 @@ private: #endif // HAVE_DUNE_GRID_MULTISCALE template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> - inline void redirect_to_appropriate_operator( - const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const + inline void + redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, + DiscreteFunction<Spaces::DG::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const { l2_operator_.apply(source, range); } template <class E, class D, int d, class RS, int rS, int rCS, class GV, class RR, int rR, int rCR, class V> - inline void - redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, - DiscreteFunction<Spaces::FiniteVolume::Default<GV, RR, rR, rCR>, V>& range) const + inline void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, + DiscreteFunction<Spaces::FV::Default<GV, RR, rR, rCR>, V>& range) const { l2_operator_.apply(source, range); } @@ -639,10 +636,10 @@ public: template <class R, int r, int rC, class GV, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GV, p, R, r, rC>, V>& range) const + DiscreteFunction<Spaces::CG::FemBased<GV, p, R, r, rC>, V>& range) const { typedef Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, rC> SourceType; - typedef DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GV, p, R, r, rC>, V> RangeType; + typedef DiscreteFunction<Spaces::CG::FemBased<GV, p, R, r, rC>, V> RangeType; DirichletProjectionLocalizable<GridViewType, SourceType, RangeType> localizable_operator( grid_view_, boundary_info_, source, range); localizable_operator.apply(); @@ -650,10 +647,10 @@ public: template <class R, int r, int rC, class GV, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& source, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GV, p, R, r, rC>, V>& range) const + DiscreteFunction<Spaces::CG::PdelabBased<GV, p, R, r, rC>, V>& range) const { typedef Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, rC> SourceType; - typedef DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GV, p, R, r, rC>, V> RangeType; + typedef DiscreteFunction<Spaces::CG::PdelabBased<GV, p, R, r, rC>, V> RangeType; DirichletProjectionLocalizable<GridViewType, SourceType, RangeType> localizable_operator( grid_view_, boundary_info_, source, range); localizable_operator.apply(); diff --git a/dune/gdt/operators/prolongations.hh b/dune/gdt/operators/prolongations.hh index 17a2dbaea..cfea626b2 100644 --- a/dune/gdt/operators/prolongations.hh +++ b/dune/gdt/operators/prolongations.hh @@ -9,9 +9,7 @@ #include <vector> #include <limits> -#include <dune/stuff/common/disable_warnings.hh> #include <dune/common/dynmatrix.hh> -#include <dune/stuff/common/reenable_warnings.hh> #include <dune/stuff/common/type_utils.hh> #include <dune/stuff/common/vector.hh> @@ -21,22 +19,20 @@ #include <dune/stuff/la/container.hh> #include <dune/stuff/la/solver.hh> -#include <dune/stuff/common/disable_warnings.hh> #include <dune/geometry/quadraturerules.hh> -#include <dune/stuff/common/reenable_warnings.hh> #include <dune/stuff/grid/search.hh> #include <dune/gdt/discretefunction/default.hh> -#include <dune/gdt/spaces/continuouslagrange/fem.hh> -#include <dune/gdt/spaces/continuouslagrange/pdelab.hh> +#include <dune/gdt/spaces/cg/fem.hh> +#include <dune/gdt/spaces/cg/pdelab.hh> namespace Dune { namespace GDT { namespace Spaces { -namespace DiscontinuousLagrange { +namespace DG { template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> class FemBased; } @@ -55,7 +51,7 @@ namespace Operators { * \note We would have liked to do something like this and match on implementations of SpaceInterface:\code template< class T, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR > void apply(const ConstDiscreteFunction< SpaceInterface< T >, VS >& source, - DiscreteFunction< Spaces::DiscontinuousLagrange::FemBased< GPR, pR, RR, rR, rCR >, VR >& range) const + DiscreteFunction< Spaces::DG::FemBased< GPR, pR, RR, rR, rCR >, VR >& range) const { static_assert(Dune::AlwaysFalse< T >::value, "Not implemented for this combination of source and range!"); }\endcode @@ -78,56 +74,52 @@ public: { } - // Source: Spaces::ContinuousLagrange::FemBased - // Range: Spaces::DiscontinuousLagrange::FemBased + // Source: Spaces::CG::FemBased + // Range: Spaces::DG::FemBased template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - void apply(const ConstDiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const + void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> - inline void apply(const ConstDiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPS, pS, R, r, rC>, VS>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, R, r, rC>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, R, r, rC>, VS>& source, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, R, r, rC>, VR>& range) const { prolong_onto_dg_fem_localfunctions_wrapper(source, range); } - // Source: Spaces::DiscontinuousLagrange::FemBased - // Range: Spaces::DiscontinuousLagrange::FemBased + // Source: Spaces::DG::FemBased + // Range: Spaces::DG::FemBased template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - void apply(const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const + void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> - inline void apply(const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, R, r, rC>, VS>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, R, r, rC>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, R, r, rC>, VS>& source, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, R, r, rC>, VR>& range) const { prolong_onto_dg_fem_localfunctions_wrapper(source, range); } template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> - inline void - apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, R, r, rC>>, VS>& - source, - DiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, R, r, rC>>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, R, r, rC>>, VS>& source, + DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPR, pR, R, r, rC>>, VR>& range) const { prolong_onto_dg_fem_localfunctions_wrapper(source, range); } template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> - inline void - apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, R, r, rC>>, VS>& - source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, R, r, rC>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, R, r, rC>>, VS>& source, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, R, r, rC>, VR>& range) const { prolong_onto_dg_fem_localfunctions_wrapper(source, range); } @@ -217,7 +209,7 @@ private: * \note We would have liked to do something like this and match on implementations of SpaceInterface:\code template< class T, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR > void apply(const ConstDiscreteFunction< SpaceInterface< T >, VS >& source, - DiscreteFunction< Spaces::ContinuousLagrange::FemBased< GPR, pR, RR, rR, rCR >, VR >& range) const + DiscreteFunction< Spaces::CG::FemBased< GPR, pR, RR, rR, rCR >, VR >& range) const { static_assert(Dune::AlwaysFalse< T >::value, "Not implemented for this combination of source and range!"); }\endcode @@ -236,56 +228,56 @@ public: { } - // Source: Spaces::ContinuousLagrange::FemBased - // Range: Spaces::ContinuousLagrange::FemBased + // Source: Spaces::CG::FemBased + // Range: Spaces::CG::FemBased template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - void apply(const ConstDiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const + void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, + DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } template <class GPS, int pS, class R, int r, class VS, class GPR, int pR, class VR> - inline void apply(const ConstDiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPS, pS, R, r, 1>, VS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPR, pR, R, r, 1>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, R, r, 1>, VS>& source, + DiscreteFunction<Spaces::CG::FemBased<GPR, pR, R, r, 1>, VR>& range) const { redirect_to_appropriate_apply(source, range); } - // Source: Spaces::DiscontinuousLagrange::FemBased - // Range: Spaces::ContinuousLagrange::FemBased + // Source: Spaces::DG::FemBased + // Range: Spaces::CG::FemBased template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - void apply(const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const + void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, + DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } template <class GPS, int pS, class R, int r, class VS, class GPR, int pR, class VR> - inline void apply(const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, R, r, 1>, VS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPR, pR, R, r, 1>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, R, r, 1>, VS>& source, + DiscreteFunction<Spaces::CG::FemBased<GPR, pR, R, r, 1>, VR>& range) const { redirect_to_appropriate_apply(source, range); } - // Source: Spaces::ContinuousLagrange::PdelabBased - // Range: Spaces::ContinuousLagrange::PdelabBased + // Source: Spaces::CG::PdelabBased + // Range: Spaces::CG::PdelabBased template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - void apply(const ConstDiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const + void apply(const ConstDiscreteFunction<Spaces::CG::PdelabBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, + DiscreteFunction<Spaces::CG::PdelabBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, class VR> - inline void apply(const ConstDiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GPS, pS, R, r, rC>, VS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GPR, 1, R, r, rC>, VR>& range) const + inline void apply(const ConstDiscreteFunction<Spaces::CG::PdelabBased<GPS, pS, R, r, rC>, VS>& source, + DiscreteFunction<Spaces::CG::PdelabBased<GPR, 1, R, r, rC>, VR>& range) const { redirect_to_appropriate_apply(source, range); } @@ -377,18 +369,18 @@ public: private: template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const + inline void + redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const { l2_prolongation_operator_.apply(source, range); } template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const + inline void + redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const { l2_prolongation_operator_.apply(source, range); } @@ -396,9 +388,8 @@ private: template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>>, VS>& - source, - DiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>>, VR>& range) const + const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>>, VS>& source, + DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>>, VR>& range) const { l2_prolongation_operator_.apply(source, range); } @@ -406,27 +397,26 @@ private: template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::Block<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>>, VS>& - source, - DiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const + const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>>, VS>& source, + DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const { l2_prolongation_operator_.apply(source, range); } template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const + inline void + redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, + DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const { lagrange_prolongation_operator_.apply(source, range); } template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> - inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::DiscontinuousLagrange::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const + inline void + redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, + DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const { lagrange_prolongation_operator_.apply(source, range); } @@ -434,8 +424,8 @@ private: template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR> inline void redirect_to_appropriate_operator( - const ConstDiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GPS, pS, RS, rS, rCS>, VS>& source, - DiscreteFunction<Spaces::ContinuousLagrange::PdelabBased<GPR, pR, RR, rR, rCR>, VR>& range) const + const ConstDiscreteFunction<Spaces::CG::PdelabBased<GPS, pS, RS, rS, rCS>, VS>& source, + DiscreteFunction<Spaces::CG::PdelabBased<GPR, pR, RR, rR, rCR>, VR>& range) const { lagrange_prolongation_operator_.apply(source, range); } diff --git a/dune/gdt/playground/operators/fluxreconstruction.hh b/dune/gdt/playground/operators/fluxreconstruction.hh index 645c0e6c6..cb07a6282 100644 --- a/dune/gdt/playground/operators/fluxreconstruction.hh +++ b/dune/gdt/playground/operators/fluxreconstruction.hh @@ -44,7 +44,7 @@ public: template <class GV, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, 1>& source, - DiscreteFunction<Spaces::RaviartThomas::PdelabBased<GV, 0, FieldType, dimDomain>, V>& range) const + DiscreteFunction<Spaces::RT::PdelabBased<GV, 0, FieldType, dimDomain>, V>& range) const { const auto& rtn0_space = range.space(); auto& range_vector = range.vector(); @@ -61,12 +61,9 @@ public: DynamicMatrix<FieldType> tmp_matrix(1, 1, 0); DynamicMatrix<FieldType> tmp_matrix_en_en(1, 1, 0); DynamicMatrix<FieldType> tmp_matrix_en_ne(1, 1, 0); - std::vector< - typename Spaces::RaviartThomas::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType> - basis_values( - rtn0_space.mapper().maxNumDofs(), - typename Spaces::RaviartThomas::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType( - 0)); + std::vector<typename Spaces::RT::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType> + basis_values(rtn0_space.mapper().maxNumDofs(), + typename Spaces::RT::PdelabBased<GV, 0, FieldType, dimDomain>::BaseFunctionSetType::RangeType(0)); // walk the grid const auto entity_it_end = grid_view_.template end<0>(); for (auto entity_it = grid_view_.template begin<0>(); entity_it != entity_it_end; ++entity_it) { -- GitLab