1#ifndef DUNE_LOCALFUNCTIONS_BREZZIDOUGLASFORTINMARINI_CUBE_LOCALCOEFFICIENTS_HH
2#define DUNE_LOCALFUNCTIONS_BREZZIDOUGLASFORTINMARINI_CUBE_LOCALCOEFFICIENTS_HH
29 template<
class D,
class R,
unsigned int dim,
unsigned int order>
32 static constexpr unsigned int interiorDofs =
dim*
binomial(
dim+order-2, order-2);
33 static constexpr unsigned int faceDofs =
binomial(
dim+order-2, order-1);
36 static constexpr std::size_t numDofs = numFaces*faceDofs + interiorDofs;
42 for (
auto j :
range(numFaces))
43 for (
auto i :
range(faceDofs))
44 li[j*faceDofs + i] =
LocalKey(j, 1, i);
46 for (
auto i :
range(interiorDofs))
47 li[numFaces*faceDofs + i] =
LocalKey(0, 0, i);
60 template<
class D,
class R,
unsigned int dim,
unsigned int order>
61 constexpr unsigned int BDFMCubeLocalCoefficients<D, R, dim, order>::interiorDofs;
63 template<
class D,
class R,
unsigned int dim,
unsigned int order>
64 constexpr unsigned int BDFMCubeLocalCoefficients<D, R, dim, order>::faceDofs;
66 template<
class D,
class R,
unsigned int dim,
unsigned int order>
67 constexpr std::size_t BDFMCubeLocalCoefficients<D, R, dim, order>::numFaces;
74 template<
class D,
class R,
unsigned int dim>
75 class BDFMCubeLocalCoefficients<D, R,
dim, 0>
77 static_assert( AlwaysFalse<D>::value,
78 "`BDFMCubeLocalCoefficients` not defined for order 0." );
static StaticIntegralRange< T, to > range(std::integral_constant< T, to >) noexcept
static constexpr T binomial(const T &n, const T &k) noexcept
Layout map for Brezzi-Douglas-Fortin-Marini elements on cubes.
Definition localcoefficients.hh:31
BDFMCubeLocalCoefficients()
Standard constructor.
Definition localcoefficients.hh:40
std::size_t size() const
number of coefficients
Definition localcoefficients.hh:51
auto localKey(std::size_t i) const -> const LocalKey &
geth i'th index
Definition localcoefficients.hh:54
Describe position of one degree of freedom.
Definition localkey.hh:21