4 #ifndef DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_INTERPOLATION_HH
5 #define DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_INTERPOLATION_HH
26 template<
class Geometry,
class Traits_>
29 typename Traits_::DomainField>
35 static const std::size_t dim = Traits::dimDomainLocal;
40 std::vector<typename Traits::DomainGlobal> edgev;
50 template<
typename VertexOrder>
52 const VertexOrder& vertexOrder) :
55 for(std::size_t i = 0; i <
s; ++i) {
56 const std::size_t i0 =
refelem.subEntity(i,dim-1,0,dim);
57 const std::size_t i1 =
refelem.subEntity(i,dim-1,1,dim);
59 edgev[i] = geo.corner(i1);
60 edgev[i] -= geo.corner(i0);
61 edgev[i] /= edgev[i].two_norm();
63 const typename VertexOrder::iterator& edgeVertexOrder =
64 vertexOrder.begin(dim-1, i);
65 if(edgeVertexOrder[0] > edgeVertexOrder[1])
71 template<
typename F,
typename C>
73 typename Traits::Range y;
77 for(std::size_t i = 0; i <
s; ++i) {
78 f.evaluate(
refelem.position(i,dim-1), y);
80 out[i] = y * edgev[i];
87 #endif // DUNE_LOCALFUNCTIONS_WHITNEY_EDGES0_5_INTERPOLATION_HH