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;
92 template<
class DiscreteFunctionSpace >
95 static const bool v =
false;
106 template<
class DiscreteFunctionSpace >
109 static const bool v =
false;
118 template<
class DiscreteFunctionSpace >
121 static const bool v =
false;
130 template<
class DiscreteFunctionSpace >
134 template <
class F,
int d>
135 using DefaultQuadratureTraits = Dune::Fem::DefaultQuadratureTraits< F, d >;
147 template<
class DFS >
148 std::true_type hasInterpolation (
const DFS &,
decltype( std::declval< const DFS & >().interpolation() ) * =
nullptr );
150 std::false_type hasInterpolation ( ... );
163 template<
class DiscreteFunctionSpace >
166 static const bool v =
decltype( Impl::hasInterpolation( std::declval< const DiscreteFunctionSpace & >() ) )::value;
174 template<
class DiscreteFunctionSpace >
180 template<
class DiscreteFunctionSpace >
183 static const bool v = hasStaticPolynomialOrder< DiscreteFunctionSpace >::v;
184 static const int order = hasStaticPolynomialOrder< DiscreteFunctionSpace >::order;
187 template<
class DiscreteFunctionSpace >
190 static const bool v = isContinuous< DiscreteFunctionSpace >::v;
193 template<
class DiscreteFunctionSpace >
196 static const bool v = isLocalized< DiscreteFunctionSpace >::v;
199 template<
class DiscreteFunctionSpace >
202 static const bool v = isAdaptive< DiscreteFunctionSpace >::v;
205 template<
class DiscreteFunctionSpace >
208 static const bool v = threadSafe< DiscreteFunctionSpace >::v;
211 template<
class DiscreteFunctionSpace >
214 static const bool v = viewThreadSafe< DiscreteFunctionSpace >::v;
217 template<
class DiscreteFunctionSpace >
220 static const bool v = isHierarchic< DiscreteFunctionSpace >::v;
223 template<
class DiscreteFunctionSpace >
226 static const bool v = hasInterpolation< DiscreteFunctionSpace >::v;
229 template<
class DiscreteFunctionSpace >
231 :
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:132
static int volumeOrder(const int k)
return quadrature order for volume quadratures for given polynomial order k
Definition: capabilities.hh:138
static int surfaceOrder(const int k)
return quadrature order for surface quadratures (i.e. over intersections) for given polynomial order ...
Definition: capabilities.hh:140
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:165
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:120
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 the space implementation is thread safe
Definition: capabilities.hh:94
specialize with true if the space implementation is thread safe, while it is not modified
Definition: capabilities.hh:108