1#ifndef DUNE_PDELAB_COMMON_INTERSECTIONTYPE_HH
2#define DUNE_PDELAB_COMMON_INTERSECTIONTYPE_HH
8#include <dune/grid/common/partitionset.hh>
14 enum class IntersectionType
36 template<
typename EntitySet,
typename Intersection>
37 std::tuple<IntersectionType,typename EntitySet::Element> classifyIntersection(
const EntitySet& entity_set,
const Intersection& is)
39 auto type =
static_cast<IntersectionType
>(1* is.neighbor() + 2*is.boundary());
40 if (type == IntersectionType::skeleton || type == IntersectionType::periodic)
42 return std::make_tuple(type,is.outside());
45 auto outside_entity = is.outside();
46 if (entity_set.partitions().contains(outside_entity.partitionType()))
47 return std::make_tuple(type,outside_entity);
49 return std::make_tuple(IntersectionType::processor,std::move(outside_entity));
52 return std::make_tuple(type,
decltype(is.outside()){});
auto periodic(RawPreBasisIndicator &&rawPreBasisIndicator, PIS &&periodicIndexSet)
Create a pre-basis factory that can create a periodic pre-basis.
Definition: periodicbasis.hh:199
constexpr All all
PartitionSet for all partitions.
Definition: partitionset.hh:295
Dune namespace.
Definition: alignedallocator.hh:13
Various macros to work with Dune module version numbers.