diff --git a/dune/stuff/common/math.hh b/dune/stuff/common/math.hh index 6a9f9c00a95c3cbd759dd40a493aae98706b3bf5..bb86dc632cd1e37f84dbe98ac9998b5ff2b06b0b 100644 --- a/dune/stuff/common/math.hh +++ b/dune/stuff/common/math.hh @@ -33,7 +33,7 @@ namespace boost { namespace math { //! isinf specialization for Dune::StraightenBlockVector template <class BlockVectorImp, class DofImp> -#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 5) +#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 4) inline bool isinf(const Dune::Fem::StraightenBlockVector<BlockVectorImp, DofImp>& x) { #else diff --git a/dune/stuff/common/ranges.hh b/dune/stuff/common/ranges.hh index 641e8cb0a5b2565bee6444678d7579e2845dd6a9..52b0d2437ec59f5587631c84711c266f588ee640 100644 --- a/dune/stuff/common/ranges.hh +++ b/dune/stuff/common/ranges.hh @@ -27,25 +27,45 @@ namespace Dune { namespace Fem { template <class DiscreteFunctionTraits> -auto begin(const Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) -> decltype(func.dbegin()) +#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 4) +auto begin(const Dune::Fem::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#else +auto begin(const Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#endif + -> decltype(func.dbegin()) { return func.dbegin(); } template <class DiscreteFunctionTraits> -auto end(const Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) -> decltype(func.dend()) +#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 4) +auto end(const Dune::Fem::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#else +auto end(const Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#endif + -> decltype(func.dend()) { return func.dend(); } template <class DiscreteFunctionTraits> -auto begin(Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) -> decltype(func.dbegin()) +#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 4) +auto begin(Dune::Fem::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#else +auto begin(Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#endif + -> decltype(func.dbegin()) { return func.dbegin(); } template <class DiscreteFunctionTraits> -auto end(Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) -> decltype(func.dend()) +#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 4) +auto end(Dune::Fem::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#else +auto end(Dune::DiscreteFunctionInterface<DiscreteFunctionTraits>& func) +#endif + -> decltype(func.dend()) { return func.dend(); } @@ -165,6 +185,18 @@ lagrangePointSetRange(const DiscreteFunctionspaceType& space, const EntityType& return LagrangePointSetRange<DiscreteFunctionspaceType, codim>(space, entity, subEntity); } +#if DUNE_VERSION_NEWER(DUNE_FEM, 1, 4) +template <class GridPartTraits> +IntersectionRange<Dune::Fem::GridPartInterface<GridPartTraits>, + typename Dune::Fem::GridPartInterface<GridPartTraits>::template Codim<0>::EntityType> +intersectionRange(const Dune::Fem::GridPartInterface<GridPartTraits>& gridpart, + const typename Dune::Fem::GridPartInterface<GridPartTraits>::template Codim<0>::EntityType& entity) +{ + return IntersectionRange<Dune::Fem::GridPartInterface<GridPartTraits>, + typename Dune::Fem::GridPartInterface<GridPartTraits>::template Codim<0>::EntityType>( + gridpart, entity); +} +#else template <class GridPartTraits> IntersectionRange<Dune::GridPartInterface<GridPartTraits>, typename Dune::GridPartInterface<GridPartTraits>::template Codim<0>::EntityType> @@ -175,6 +207,7 @@ intersectionRange(const Dune::GridPartInterface<GridPartTraits>& gridpart, typename Dune::GridPartInterface<GridPartTraits>::template Codim<0>::EntityType>(gridpart, entity); } +#endif #endif // HAVE_DUNE_FEM