6#ifndef DUNE_FUNCTIONS_FUNCTIONSPACEBASES_FUNCTIONALDESCRIPTOR_HH
7#define DUNE_FUNCTIONS_FUNCTIONSPACEBASES_FUNCTIONALDESCRIPTOR_HH
11#include <dune/common/rangeutilities.hh>
14namespace Dune::Functions::Impl
35template<std::
size_t dim>
36class FunctionalDescriptor
40 using Order = std::array<unsigned int, dim>;
42 FunctionalDescriptor()
43 : partialDerivativeOrder_{}
44 , normalDerivativeOrder_(0)
47 explicit FunctionalDescriptor(
const Order& partialDerivativeOrder)
48 : partialDerivativeOrder_{partialDerivativeOrder}
49 , normalDerivativeOrder_(0)
52 explicit FunctionalDescriptor(
unsigned int normalDerivativeOrder)
53 : partialDerivativeOrder_{}
54 , normalDerivativeOrder_(normalDerivativeOrder)
57 bool isNormalDerivative()
const
59 return normalDerivativeOrder_>0;
62 bool isPartialDerivative()
const
64 for(
auto i: Dune::range(dim))
66 if (partialDerivativeOrder(i)>0)
72 unsigned int normalDerivativeOrder()
const
74 return normalDerivativeOrder_;
77 const Order& partialDerivativeOrder()
const
79 return partialDerivativeOrder_;
83 Order partialDerivativeOrder_;
84 unsigned int normalDerivativeOrder_;