dune-fem  2.4.1-rc
space/padaptivespace/capabilities.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_SPACE_PADAPTIVESPACE_CAPABILITIES_HH
2 #define DUNE_FEM_SPACE_PADAPTIVESPACE_CAPABILITIES_HH
3 
7 
8 namespace Dune
9 {
10 
11  namespace Fem
12  {
13 
14  namespace Capabilities
15  {
16 
17  // Dune::Fem::Capabilities for PAdaptiveDGSpace
18  // --------------------------------------------
19 
20  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
21  struct hasFixedPolynomialOrder< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
22  {
23  static const bool v = false;
24  };
25 
26 
27  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
28  struct hasStaticPolynomialOrder< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
29  {
30  static const bool v = true;
31  static const int order = polOrder;
32  };
33 
34 
35  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
36  struct isContinuous< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
37  {
38  static const bool v = false;
39  };
40 
41 
42  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
43  struct isLocalized< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
44  {
45  static const bool v = true;
46  };
47 
48 
49  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
50  struct isParallel< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
51  {
53  };
54 
55 
56  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
57  struct isAdaptive< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
58  {
59  static const bool v = true;
60  };
61 
62 
63  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
64  struct threadSafe< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
65  {
66  static const bool v = false;
67  };
68 
69 
70  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
71  struct viewThreadSafe< PAdaptiveDGSpace< FunctionSpace, GridPart, polOrder, Storage > >
72  {
73  static const bool v = true;
74  };
75 
76 
77 
78  // Dune::Fem::Capabilities for PAdaptiveLagrangeSpace
79  // --------------------------------------------------
80 
81  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
82  struct hasFixedPolynomialOrder< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
83  {
84  static const bool v = false;
85  };
86 
87 
88  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
89  struct hasStaticPolynomialOrder< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
90  {
91  static const bool v = true;
92  static const int order = polOrder;
93  };
94 
95 
96  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
97  struct isContinuous< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
98  {
99  static const bool v = false;
100  };
101 
102 
103  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
104  struct isLocalized< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
105  {
106  static const bool v = true;
107  };
108 
109 
110  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
111  struct isParallel< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
112  {
114  };
115 
116 
117  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
118  struct isAdaptive< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
119  {
120  static const bool v = true;
121  };
122 
123 
124  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
125  struct threadSafe< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
126  {
127  static const bool v = false;
128  };
129 
130 
131  template< class FunctionSpace, class GridPart, int polOrder, template< class > class Storage >
132  struct viewThreadSafe< PAdaptiveLagrangeSpace< FunctionSpace, GridPart, polOrder, Storage > >
133  {
134  static const bool v = true;
135  };
136 
137  } // namespace Capabilities
138 
139  } // namespace Fem
140 
141 } // namespace Dune
142 
143 #endif // #ifndef DUNE_FEM_SPACE_PADAPTIVESPACE_CAPABILITIES_HH
adaptive DG discrete function space
Definition: space/padaptivespace/declaration.hh:14
specialize with true if the space is localized, * i.e., the basis function set is based on a shape fu...
Definition: space/common/capabilities.hh:64
A vector valued function space.
Definition: functionspace.hh:16
specialize with &#39;true&#39; if implementation supports parallelism (default=false)
Definition: gridpart/common/capabilities.hh:59
Lagrange discrete function space.
Definition: space/padaptivespace/declaration.hh:21
specialize with true if space is always continuous
Definition: space/common/capabilities.hh:46
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition: space/common/capabilities.hh:89
Definition: coordinate.hh:4
specialize with true if space can be used in parallel
Definition: space/common/capabilities.hh:76
static const bool v
Definition: space/common/capabilities.hh:22
specialize with true if polynomial order does not depend on the grid (part) entity ...
Definition: space/common/capabilities.hh:20
specialize with true if the space implementation is thread safe
Definition: space/common/capabilities.hh:102
specialize with true if polynomial order fixed and compile time static
Definition: space/common/capabilities.hh:33
specialize with true if the space implementation is thread safe, while it is not modified ...
Definition: space/common/capabilities.hh:116