25 typename LB::Traits::DomainType x;
26 typename LB::Traits::RangeFieldType y;
28 static_assert(LB::Traits::dimDomain <= 3,
29 "LocalInterpolation for HierarchicalSimplexP2 finite elements"
30 " is only implemented for dimDomain <=3!");
32 switch (
int(LB::Traits::dimDomain)) {
39 x[0] = 0.0; out[0] = Impl::rangeCast(f(x));
40 x[0] = 1.0; out[2] = Impl::rangeCast(f(x));
43 x[0] = 0.5; y = Impl::rangeCast(f(x));
44 out[1] = y - 0.5*(out[0] + out[2]);
54 x[0] = 0.0; x[1] = 0.0; out[0] = Impl::rangeCast(f(x));
55 x[0] = 1.0; x[1] = 0.0; out[2] = Impl::rangeCast(f(x));
56 x[0] = 0.0; x[1] = 1.0; out[5] = Impl::rangeCast(f(x));
59 x[0] = 0.5; x[1] = 0.0; y = Impl::rangeCast(f(x));
60 out[1] = y - 0.5*(out[0] + out[2]);
62 x[0] = 0.0; x[1] = 0.5; y = Impl::rangeCast(f(x));
63 out[3] = y - 0.5*(out[0] + out[5]);
65 x[0] = 0.5; x[1] = 0.5; y = Impl::rangeCast(f(x));
66 out[4] = y - 0.5*(out[2] + out[5]);
75 x[0] = 0.0; x[1] = 0.0; x[2] = 0.0; out[0] = Impl::rangeCast(f(x));
76 x[0] = 1.0; x[1] = 0.0; x[2] = 0.0; out[2] = Impl::rangeCast(f(x));
77 x[0] = 0.0; x[1] = 1.0; x[2] = 0.0; out[5] = Impl::rangeCast(f(x));
78 x[0] = 0.0; x[1] = 0.0; x[2] = 1.0; out[9] = Impl::rangeCast(f(x));
81 x[0] = 0.5; x[1] = 0.0; x[2] = 0.0; y = Impl::rangeCast(f(x));
82 out[1] = y - 0.5*(out[0] + out[2]);
84 x[0] = 0.0; x[1] = 0.5; x[2] = 0.0; y = Impl::rangeCast(f(x));
85 out[3] = y - 0.5*(out[0] + out[5]);
87 x[0] = 0.5; x[1] = 0.5; x[2] = 0.0; y = Impl::rangeCast(f(x));
88 out[4] = y - 0.5*(out[2] + out[5]);
90 x[0] = 0.0; x[1] = 0.0; x[2] = 0.5; y = Impl::rangeCast(f(x));
91 out[6] = y - 0.5*(out[0] + out[9]);
93 x[0] = 0.5; x[1] = 0.0; x[2] = 0.5; y = Impl::rangeCast(f(x));
94 out[7] = y - 0.5*(out[2] + out[9]);
96 x[0] = 0.0; x[1] = 0.5; x[2] = 0.5; y = Impl::rangeCast(f(x));
97 out[8] = y - 0.5*(out[5] + out[9]);