1#ifndef DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
2#define DUNE_FEM_SPACE_COMMON_CAPABILITIES_HH
6#include <dune/fem/quadrature/defaultquadratures.hh>
14 namespace Capabilities
22 template<
class DiscreteFunctionSpace >
25 static const bool v =
false;
35 template<
class DiscreteFunctionSpace >
38 static const bool v =
false;
39 static const int order = -1;
48 template<
class DiscreteFunctionSpace >
51 static const bool v =
false;
66 template<
class DiscreteFunctionSpace >
69 static const bool v =
false;
79 template<
class DiscreteFunctionSpace >
82 static const bool v =
false;
91 template<
class DiscreteFunctionSpace >
94 static const bool v =
false;
103 template<
class DiscreteFunctionSpace >
106 static const bool v =
false;
117 template<
class DiscreteFunctionSpace >
120 static const bool v =
false;
129 template<
class DiscreteFunctionSpace >
132 static const bool v =
false;
141 template<
class DiscreteFunctionSpace >
145 template <
class F,
int d>
146 using DefaultQuadratureTraits = Dune::Fem::DefaultQuadratureTraits< F, d >;
158 template<
class DFS >
159 std::true_type hasInterpolation (
const DFS &,
decltype( std::declval< const DFS & >().interpolation() ) * =
nullptr );
161 std::false_type hasInterpolation ( ... );
174 template<
class DiscreteFunctionSpace >
177 static const bool v =
decltype( Impl::hasInterpolation( std::declval< const DiscreteFunctionSpace & >() ) )::value;
185 template<
class DiscreteFunctionSpace >
191 template<
class DiscreteFunctionSpace >
194 static const bool v = hasStaticPolynomialOrder< DiscreteFunctionSpace >::v;
195 static const int order = hasStaticPolynomialOrder< DiscreteFunctionSpace >::order;
198 template<
class DiscreteFunctionSpace >
201 static const bool v = isContinuous< DiscreteFunctionSpace >::v;
204 template<
class DiscreteFunctionSpace >
207 static const bool v = isLocalized< DiscreteFunctionSpace >::v;
210 template<
class DiscreteFunctionSpace >
213 static const bool v = isAdaptive< DiscreteFunctionSpace >::v;
216 template<
class DiscreteFunctionSpace >
219 static const bool v = isPAdaptiveSpace< DiscreteFunctionSpace >::v;
222 template<
class DiscreteFunctionSpace >
225 static const bool v = threadSafe< DiscreteFunctionSpace >::v;
228 template<
class DiscreteFunctionSpace >
231 static const bool v = viewThreadSafe< DiscreteFunctionSpace >::v;
234 template<
class DiscreteFunctionSpace >
237 static const bool v = isHierarchic< DiscreteFunctionSpace >::v;
240 template<
class DiscreteFunctionSpace >
243 static const bool v = hasInterpolation< DiscreteFunctionSpace >::v;
246 template<
class DiscreteFunctionSpace >
248 :
public DefaultQuadrature< DiscreteFunctionSpace >
Dune namespace.
Definition: alignedallocator.hh:13
specialize when quadrature other than the standard quadrature should be used for volume and surface i...
Definition: capabilities.hh:143
static int volumeOrder(const int k)
return quadrature order for volume quadratures for given polynomial order k
Definition: capabilities.hh:149
static int surfaceOrder(const int k)
return quadrature order for surface quadratures (i.e. over intersections) for given polynomial order ...
Definition: capabilities.hh:151
specialize with true if polynomial order does not depend on the grid (part) entity
Definition: capabilities.hh:24
determine whether a discrete function space provides a (local) interpolation
Definition: capabilities.hh:176
specialize with true if polynomial order fixed and compile time static
Definition: capabilities.hh:37
specialize with true if space can be used with AdaptiveDiscreteFunction
Definition: capabilities.hh:81
specialize with true if space is always continuous
Definition: capabilities.hh:50
specialize with true if for a space the basis functions are sorted by the polynomial order,...
Definition: capabilities.hh:131
specialize with true if the space is localized, * i.e., the basis function set is based on a shape fu...
Definition: capabilities.hh:68
specialize with true if space can be used with p-adaptation
Definition: capabilities.hh:93
specialize with true if the space implementation is thread safe
Definition: capabilities.hh:105
specialize with true if the space implementation is thread safe, while it is not modified
Definition: capabilities.hh:119