5#ifndef DUNE_LOCALFUNCTIONS_RAVIARTTHOMAS_RAVIARTTHOMASLFECACHE_HH
6#define DUNE_LOCALFUNCTIONS_RAVIARTTHOMAS_RAVIARTTHOMASLFECACHE_HH
11#include <dune/geometry/type.hh>
12#include <dune/geometry/typeindex.hh>
23 template<
class D,
class R, std::
size_t dim, std::
size_t order>
24 struct ImplementedRaviartThomasLocalFiniteElements
27 template<
class D,
class R>
28 struct ImplementedRaviartThomasLocalFiniteElements<D,R,2,0> :
public FixedDimLocalGeometryTypeIndex<2>
30 using FixedDimLocalGeometryTypeIndex<2>::index;
31 static auto getImplementations()
33 return std::make_tuple(
34 std::make_pair(index(GeometryTypes::triangle), []() {
return RT02DLocalFiniteElement<D,R>(); }),
35 std::make_pair(index(GeometryTypes::quadrilateral), []() {
return RT0Cube2DLocalFiniteElement<D,R>(); })
40 template<
class D,
class R>
41 struct ImplementedRaviartThomasLocalFiniteElements<D,R,2,1> :
public FixedDimLocalGeometryTypeIndex<2>
43 using FixedDimLocalGeometryTypeIndex<2>::index;
44 static auto getImplementations()
46 return std::make_tuple(
47 std::make_pair(index(GeometryTypes::triangle), []() {
return RT12DLocalFiniteElement<D,R>(); }),
48 std::make_pair(index(GeometryTypes::quadrilateral), []() {
return RT1Cube2DLocalFiniteElement<D,R>(); })
53 template<
class D,
class R>
54 struct ImplementedRaviartThomasLocalFiniteElements<D,R,2,2> :
public FixedDimLocalGeometryTypeIndex<2>
56 using FixedDimLocalGeometryTypeIndex<2>::index;
57 static auto getImplementations()
59 return std::make_tuple(
60 std::make_pair(index(GeometryTypes::quadrilateral), []() {
return RT2Cube2DLocalFiniteElement<D,R>(); })
65 template<
class D,
class R>
66 struct ImplementedRaviartThomasLocalFiniteElements<D,R,3,0> :
public FixedDimLocalGeometryTypeIndex<3>
68 using FixedDimLocalGeometryTypeIndex<3>::index;
69 static auto getImplementations()
71 return std::make_tuple(
72 std::make_pair(index(GeometryTypes::tetrahedron), []() {
return RT03DLocalFiniteElement<D,R>(); }),
73 std::make_pair(index(GeometryTypes::hexahedron), []() {
return RT0Cube3DLocalFiniteElement<D,R>(); })
78 template<
class D,
class R>
79 struct ImplementedRaviartThomasLocalFiniteElements<D,R,3,1> :
public FixedDimLocalGeometryTypeIndex<3>
81 using FixedDimLocalGeometryTypeIndex<3>::index;
82 static auto getImplementations()
84 return std::make_tuple(
85 std::make_pair(index(GeometryTypes::hexahedron), []() { RT1Cube3DLocalFiniteElement<D,R>(); })
103template<
class D,
class R, std::
size_t dim, std::
size_t order>
Definition bdfmcube.hh:18
A cache storing a compile time selection of local finite element implementations.
Definition localfiniteelementvariantcache.hh:68