dune-fem  2.6-git
space/common/capabilities.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
2 #define DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
3 
4 #include <type_traits>
5 
6 namespace Dune
7 {
8 
9  namespace Fem
10  {
11 
12  namespace Capabilities
13  {
14 
20  template< class DiscreteFunctionSpace >
22  {
23  static const bool v = false;
24  };
25 
26 
27 
33  template< class DiscreteFunctionSpace >
35  {
36  static const bool v = false;
37  static const int order = -1;
38  };
39 
40 
41 
46  template< class DiscreteFunctionSpace >
47  struct isContinuous
48  {
49  static const bool v = false;
50  };
51 
52 
53 
64  template< class DiscreteFunctionSpace >
65  struct isLocalized
66  {
67  static const bool v = false;
68  };
69 
70 
71 
77  template< class DiscreteFunctionSpace >
78  struct isAdaptive
79  {
80  static const bool v = false;
81  };
82 
83 
84 
90  template< class DiscreteFunctionSpace >
91  struct threadSafe
92  {
93  static const bool v = false;
94  };
95 
96 
97 
104  template< class DiscreteFunctionSpace >
106  {
107  static const bool v = false;
108  };
109 
110 
116  template< class DiscreteFunctionSpace >
118  {
119  static const bool v = false;
120  };
121 
122 
123 
124  namespace Impl
125  {
126 
127  template< class DFS >
128  std::true_type hasInterpolation ( const DFS &, decltype( std::declval< const DFS & >().interpolation( std::declval< typename DFS::EntityType >() ) ) * = nullptr );
129 
130  std::false_type hasInterpolation ( ... );
131 
132  } // namespace Impl
133 
134 
143  template< class DiscreteFunctionSpace >
145  {
146  static const bool v = decltype( Impl::hasInterpolation( std::declval< const DiscreteFunctionSpace & >() ) )::value;
147  };
148 
149 
150 
151  // const specialization
152  // --------------------
153 
154  template< class DiscreteFunctionSpace >
156  {
158  };
159 
160  template< class DiscreteFunctionSpace >
162  {
165  };
166 
167  template< class DiscreteFunctionSpace >
169  {
171  };
172 
173  template< class DiscreteFunctionSpace >
175  {
177  };
178 
179  template< class DiscreteFunctionSpace >
181  {
183  };
184 
185  template< class DiscreteFunctionSpace >
187  {
189  };
190 
191  template< class DiscreteFunctionSpace >
193  {
195  };
196 
197  template< class DiscreteFunctionSpace >
199  {
201  };
202 
203  template< class DiscreteFunctionSpace >
205  {
207  };
208 
209  } // namespace Capabilities
210 
211  } // namespace Fem
212 
213 } // namespace Dune
214 
215 #endif // #ifndef DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
Definition: bindguard.hh:11
specialize with true if polynomial order does not depend on the grid (part) entity
Definition: space/common/capabilities.hh:22
static const bool v
Definition: space/common/capabilities.hh:23
specialize with true if polynomial order fixed and compile time static
Definition: space/common/capabilities.hh:35
static const bool v
Definition: space/common/capabilities.hh:36
static const int order
Definition: space/common/capabilities.hh:37
specialize with true if space is always continuous
Definition: space/common/capabilities.hh:48
static const bool v
Definition: space/common/capabilities.hh:49
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:66
static const bool v
Definition: space/common/capabilities.hh:67
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition: space/common/capabilities.hh:79
static const bool v
Definition: space/common/capabilities.hh:80
specialize with true if the space implementation is thread safe
Definition: space/common/capabilities.hh:92
static const bool v
Definition: space/common/capabilities.hh:93
specialize with true if the space implementation is thread safe, while it is not modified
Definition: space/common/capabilities.hh:106
static const bool v
Definition: space/common/capabilities.hh:107
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition: space/common/capabilities.hh:118
static const bool v
Definition: space/common/capabilities.hh:119
determine whether a discrete function space provides a (local) interpolation
Definition: space/common/capabilities.hh:145
static const bool v
Definition: space/common/capabilities.hh:146
discrete function space