dune-fem 2.8.0
Loading...
Searching...
No Matches
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
7
8namespace Dune
9{
10
11 namespace Fem
12 {
13
14 namespace Capabilities
15 {
16
22 template< class DiscreteFunctionSpace >
24 {
25 static const bool v = false;
26 };
27
28
29
35 template< class DiscreteFunctionSpace >
37 {
38 static const bool v = false;
39 static const int order = -1;
40 };
41
42
43
48 template< class DiscreteFunctionSpace >
50 {
51 static const bool v = false;
52 };
53
54
55
66 template< class DiscreteFunctionSpace >
68 {
69 static const bool v = false;
70 };
71
72
73
79 template< class DiscreteFunctionSpace >
81 {
82 static const bool v = false;
83 };
84
85
86
92 template< class DiscreteFunctionSpace >
94 {
95 static const bool v = false;
96 };
97
98
99
106 template< class DiscreteFunctionSpace >
108 {
109 static const bool v = false;
110 };
111
112
118 template< class DiscreteFunctionSpace >
120 {
121 static const bool v = false;
122 };
123
124
130 template< class DiscreteFunctionSpace >
132 {
133 // traits specifying the quadrature points used for CachingQuadrature or ElementQuadrature.
134 template <class F, int d>
136
138 static int volumeOrder( const int k ) { return 2 * k; }
140 static int surfaceOrder( const int k ) { return 2 * k + 1; }
141 };
142
143
144 namespace Impl
145 {
146
147 template< class DFS >
148 std::true_type hasInterpolation ( const DFS &, decltype( std::declval< const DFS & >().interpolation() ) * = nullptr );
149
150 std::false_type hasInterpolation ( ... );
151
152 } // namespace Impl
153
154
163 template< class DiscreteFunctionSpace >
165 {
166 static const bool v = decltype( Impl::hasInterpolation( std::declval< const DiscreteFunctionSpace & >() ) )::value;
167 };
168
169
170
171 // const specialization
172 // --------------------
173
174 template< class DiscreteFunctionSpace >
176 {
178 };
179
180 template< class DiscreteFunctionSpace >
182 {
185 };
186
187 template< class DiscreteFunctionSpace >
189 {
191 };
192
193 template< class DiscreteFunctionSpace >
195 {
197 };
198
199 template< class DiscreteFunctionSpace >
201 {
203 };
204
205 template< class DiscreteFunctionSpace >
207 {
209 };
210
211 template< class DiscreteFunctionSpace >
213 {
215 };
216
217 template< class DiscreteFunctionSpace >
219 {
221 };
222
223 template< class DiscreteFunctionSpace >
225 {
227 };
228
229 template< class DiscreteFunctionSpace >
231 : public DefaultQuadrature< DiscreteFunctionSpace >
232 {};
233
234 } // namespace Capabilities
235
236 } // namespace Fem
237
238} // namespace Dune
239
240#endif // #ifndef DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
Definition: bindguard.hh:11
Definition: defaultquadratures.hh:24
specialize with true if polynomial order does not depend on the grid (part) entity
Definition: space/common/capabilities.hh:24
static const bool v
Definition: space/common/capabilities.hh:25
specialize with true if polynomial order fixed and compile time static
Definition: space/common/capabilities.hh:37
static const bool v
Definition: space/common/capabilities.hh:38
static const int order
Definition: space/common/capabilities.hh:39
specialize with true if space is always continuous
Definition: space/common/capabilities.hh:50
static const bool v
Definition: space/common/capabilities.hh:51
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:68
static const bool v
Definition: space/common/capabilities.hh:69
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition: space/common/capabilities.hh:81
static const bool v
Definition: space/common/capabilities.hh:82
specialize with true if the space implementation is thread safe
Definition: space/common/capabilities.hh:94
static const bool v
Definition: space/common/capabilities.hh:95
specialize with true if the space implementation is thread safe, while it is not modified
Definition: space/common/capabilities.hh:108
static const bool v
Definition: space/common/capabilities.hh:109
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition: space/common/capabilities.hh:120
static const bool v
Definition: space/common/capabilities.hh:121
specialize when quadrature other than the standard quadrature should be used for volume and surface i...
Definition: space/common/capabilities.hh:132
static int volumeOrder(const int k)
return quadrature order for volume quadratures for given polynomial order k
Definition: space/common/capabilities.hh:138
static int surfaceOrder(const int k)
return quadrature order for surface quadratures (i.e. over intersections) for given polynomial order ...
Definition: space/common/capabilities.hh:140
determine whether a discrete function space provides a (local) interpolation
Definition: space/common/capabilities.hh:165
static const bool v
Definition: space/common/capabilities.hh:166
discrete function space