3 #ifndef DUNE_REFINED_P1_LOCALBASIS_HH 4 #define DUNE_REFINED_P1_LOCALBASIS_HH 12 #include <dune/common/fmatrix.hh> 18 template<
class D,
class R,
int dim>
25 DUNE_THROW(Dune::NotImplemented,
"RefinedP1LocalBasis not implemented for dim > 3.");
52 template<
class D,
class R>
69 std::vector<typename Traits::RangeType>& out)
const 75 this->getSubElement(in, subElement, local);
80 out[0] = 1 - local[0];
88 out[1] = 1 - local[0];
99 std::vector<typename Traits::JacobianType>& out)
const 105 this->getSubElement(in, subElement, local);
107 switch (subElement) {
126 void partial (
const std::array<unsigned int, 1>& order,
128 std::vector<typename Traits::RangeType>& out)
const 130 auto totalOrder = order[0];
131 if (totalOrder == 0) {
132 evaluateFunction(in, out);
133 }
else if (totalOrder == 1)
139 this->getSubElement(in, subElement, local);
141 switch (subElement) {
155 out[0] = out[1] = out[2] = 0;
193 template<
class D,
class R>
210 std::vector<typename Traits::RangeType>& out)
const 216 this->getSubElement(in, subElement, local);
218 switch (subElement) {
221 out[0] = 1 - local[0] - local[1];
232 out[1] = 1 - local[0] - local[1];