dune-fem 2.12-git
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
91 template< class DiscreteFunctionSpace >
93 {
94 static const bool v = false;
95 };
96
97
103 template< class DiscreteFunctionSpace >
105 {
106 static const bool v = false;
107 };
108
109
110
117 template< class DiscreteFunctionSpace >
119 {
120 static const bool v = false;
121 };
122
123
129 template< class DiscreteFunctionSpace >
131 {
132 static const bool v = false;
133 };
134
135
141 template< class DiscreteFunctionSpace >
143 {
144 // traits specifying the quadrature points used for CachingQuadrature or ElementQuadrature.
145 template <class F, int d>
147
149 static int volumeOrder( const int k ) { return 2 * k; }
151 static int surfaceOrder( const int k ) { return 2 * k + 1; }
152 };
153
154
155 namespace Impl
156 {
157
158 template< class DFS >
159 std::true_type hasInterpolation ( const DFS &, decltype( std::declval< const DFS & >().interpolation() ) * = nullptr );
160
161 std::false_type hasInterpolation ( ... );
162
163 } // namespace Impl
164
165
174 template< class DiscreteFunctionSpace >
176 {
177 static const bool v = decltype( Impl::hasInterpolation( std::declval< const DiscreteFunctionSpace & >() ) )::value;
178 };
179
180
181
182 // const specialization
183 // --------------------
184
185 template< class DiscreteFunctionSpace >
190
191 template< class DiscreteFunctionSpace >
197
198 template< class DiscreteFunctionSpace >
200 {
202 };
203
204 template< class DiscreteFunctionSpace >
206 {
208 };
209
210 template< class DiscreteFunctionSpace >
212 {
214 };
215
216 template< class DiscreteFunctionSpace >
221
222 template< class DiscreteFunctionSpace >
224 {
226 };
227
228 template< class DiscreteFunctionSpace >
233
234 template< class DiscreteFunctionSpace >
236 {
238 };
239
240 template< class DiscreteFunctionSpace >
245
246 template< class DiscreteFunctionSpace >
248 : public DefaultQuadrature< DiscreteFunctionSpace >
249 {};
250
251 } // namespace Capabilities
252
253 } // namespace Fem
254
255} // namespace Dune
256
257#endif // #ifndef DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
Definition defaultquadratures.hh:40
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 space can be used with p-adaptation
Definition space/common/capabilities.hh:93
static const bool v
Definition space/common/capabilities.hh:94
specialize with true if the space implementation is thread safe
Definition space/common/capabilities.hh:105
static const bool v
Definition space/common/capabilities.hh:106
specialize with true if the space implementation is thread safe, while it is not modified
Definition space/common/capabilities.hh:119
static const bool v
Definition space/common/capabilities.hh:120
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition space/common/capabilities.hh:131
static const bool v
Definition space/common/capabilities.hh:132
specialize when quadrature other than the standard quadrature should be used for volume and surface i...
Definition space/common/capabilities.hh:143
static int volumeOrder(const int k)
return quadrature order for volume quadratures for given polynomial order k
Definition space/common/capabilities.hh:149
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:151
determine whether a discrete function space provides a (local) interpolation
Definition space/common/capabilities.hh:176
static const bool v
Definition space/common/capabilities.hh:177
discrete function space
T forward(T... args)