5#ifndef DUNE_RT02DLOCALINTERPOLATION_HH
6#define DUNE_RT02DLOCALINTERPOLATION_HH
19 class RT02DLocalInterpolation
24 RT02DLocalInterpolation (std::bitset<3> s = 0)
27 for (std::size_t i=0; i<sign_.size(); i++)
28 sign_[i] = (s[i]) ? -1.0 : 1.0;
35 n_[2] = {1.0/sqrt(2.0), 1.0/sqrt(2.0)};
36 c_[0] = ( 0.5*n_[0][0] - 1.0*n_[0][1]);
37 c_[1] = (-1.0*n_[1][0] + 0.5*n_[1][1]);
38 c_[2] = ( 0.5*n_[2][0] + 0.5*n_[2][1]);
41 template<
typename F,
typename C>
42 void interpolate (
const F& f, std::vector<C>& out)
const
48 for (
int i=0; i<3; i++)
51 out[i] = (y[0]*n_[i][0]+y[1]*n_[i][1])*sign_[i]/c_[i];
57 std::array<typename LB::Traits::RangeFieldType,3> sign_;
59 std::array<typename LB::Traits::DomainType,3> m_;
61 std::array<typename LB::Traits::DomainType,3> n_;
63 std::array<typename LB::Traits::RangeFieldType,3> c_;
static void interpolate(const GridFunction &u, DiscreteFunction &v)
perform native interpolation of a discrete function space
Definition: interpolate.hh:54
Dune namespace.
Definition: alignedallocator.hh:13