1#ifndef DUNE_PDELAB_FINITEELEMENTMAP_UTILITY_HH
2#define DUNE_PDELAB_FINITEELEMENTMAP_UTILITY_HH
6#include <dune/common/std/type_traits.hh>
18 template<
typename FEM>
32 template<
typename FEM>
33 constexpr std::size_t _femBlockSize(std::true_type)
35 constexpr int dim = FEM::dimension;
37 for (
int d = 0 ; d <= dim ; ++d)
42 if (size > 0 and size != gt_size)
47 for (
unsigned int topology_id = 0 ; topology_id < (1 << dim) ; ++topology_id)
49 std::size_t gt_size = FEM::size(
GeometryType(topology_id,d));
52 if (size > 0 and size != gt_size)
63 template<
typename FEM>
64 constexpr std::size_t _femBlockSize(std::false_type)
82 template<
typename FEM>
83 constexpr std::size_t finiteElementMapBlockSize()
85 return Impl::_femBlockSize<FEM>(Std::is_detected<StaticFEMSize,FEM>());
89 template<
typename FEM>
90 using FiniteElementMapBlockSize = std::integral_constant<std::size_t,finiteElementMapBlockSize<FEM>()>;
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:130
constexpr GeometryType none(unsigned int dim)
Returns a GeometryType representing a singular of dimension dim.
Definition: type.hh:479
constexpr GeometryType vertex
GeometryType representing a vertex.
Definition: type.hh:504
Definitions of several macros that conditionally make C++ syntax available.
Dune namespace.
Definition: alignedallocator.hh:11
A unique label for each type of element that can occur in a grid.