dune-localfunctions  2.1.1
q22dlocalinterpolation.hh
Go to the documentation of this file.
00001 #ifndef DUNE_Q22DLOCALINTERPOLATION_HH
00002 #define DUNE_Q22DLOCALINTERPOLATION_HH
00003 
00004 #include <vector>
00005 
00006 namespace Dune 
00007 {
00008   template<class LB>
00009   class Q22DLocalInterpolation 
00010   {
00011   public:
00012 
00014         template<typename F, typename C>
00015         void interpolate (const F& f, std::vector<C>& out) const
00016         {
00017           typename LB::Traits::DomainType x;
00018           typename LB::Traits::RangeType y;
00019           
00020           out.resize(9);
00021           x[0] = 0.0; x[1] = 0.0; f.evaluate(x,y); out[0] = y;
00022           x[0] = 1.0; x[1] = 0.0; f.evaluate(x,y); out[1] = y;
00023           x[0] = 0.0; x[1] = 1.0; f.evaluate(x,y); out[2] = y;
00024           x[0] = 1.0; x[1] = 1.0; f.evaluate(x,y); out[3] = y;
00025           x[0] = 0.0; x[1] = 0.5; f.evaluate(x,y); out[4] = y;
00026           x[0] = 1.0; x[1] = 0.5; f.evaluate(x,y); out[5] = y;
00027           x[0] = 0.5; x[1] = 0.0; f.evaluate(x,y); out[6] = y;
00028           x[0] = 0.5; x[1] = 1.0; f.evaluate(x,y); out[7] = y;
00029           x[0] = 0.5; x[1] = 0.5; f.evaluate(x,y); out[8] = y;
00030 
00031         }
00032   };
00033 }
00034 
00035 #endif