DUNE-FEM (unstable)

selectcaching.hh
1#ifndef DUNE_FEM_SPACE_SHAPEFUNCTIONSET_SELECTCACHING_HH
2#define DUNE_FEM_SPACE_SHAPEFUNCTIONSET_SELECTCACHING_HH
3
4// dune-fem includes
5#include <dune/fem/space/shapefunctionset/caching.hh>
6
7namespace Dune
8{
9
10 namespace Fem
11 {
12
13 // External Forward Declarations
14 // -----------------------------
15
16 class CachingStorage {};
17
18 class SimpleStorage {};
19
20 class CodegenStorage {};
21
22 // SelectCachingShapeFunctionSet
23 // -----------------------------
24
25 template< class ShapeFunctionSet, class Storage >
26 class SelectCachingShapeFunctionSet;
27
28 template< class ShapeFunctionSet >
29 class SelectCachingShapeFunctionSet< ShapeFunctionSet, CachingStorage >
30 : public CachingShapeFunctionSet< ShapeFunctionSet >
31 {
32 typedef CachingShapeFunctionSet< ShapeFunctionSet > BaseType;
33
34 public:
35 typedef ShapeFunctionSet ImplementationType;
36
37 explicit SelectCachingShapeFunctionSet ( const GeometryType &type,
38 const ShapeFunctionSet &shapeFunctionSet = ShapeFunctionSet() )
39 : BaseType( type, shapeFunctionSet )
40 {}
41 };
42
43 template< class ShapeFunctionSet >
44 class SelectCachingShapeFunctionSet< ShapeFunctionSet, SimpleStorage >
45 : public ShapeFunctionSet
46 {
47 typedef ShapeFunctionSet BaseType;
48
49 public:
50 typedef ShapeFunctionSet ImplementationType;
51
52 explicit SelectCachingShapeFunctionSet ( const GeometryType &type,
53 const ShapeFunctionSet &shapeFunctionSet = ShapeFunctionSet() )
54 : BaseType( shapeFunctionSet )
55 {}
56 };
57
58 template< class ShapeFunctionSet >
59 class SelectCachingShapeFunctionSet< ShapeFunctionSet, CodegenStorage >
60 : public CachingShapeFunctionSet< ShapeFunctionSet >
61 {
62 typedef CachingShapeFunctionSet< ShapeFunctionSet > BaseType;
63
64 public:
65 typedef ShapeFunctionSet ImplementationType;
66
68 static constexpr bool codegenShapeFunctionSet = true ;
69
70 explicit SelectCachingShapeFunctionSet ( const GeometryType &type,
71 const ShapeFunctionSet &shapeFunctionSet = ShapeFunctionSet() )
72 : BaseType( type, shapeFunctionSet )
73 {}
74 };
75
76 } // namespace Fem
77
78} // namespace Dune
79
80#endif // #ifndef DUNE_FEM_SPACE_SHAPEFUNCTIONSET_SELECTCACHING_HH
Dune namespace.
Definition: alignedallocator.hh:13
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 21, 23:30, 2024)