00001 #ifndef DUNE_RANNACHER_TUREK2DLOCALFINITEELEMENT_HH 00002 #define DUNE_RANNACHER_TUREK2DLOCALFINITEELEMENT_HH 00003 00004 #include<dune/common/geometrytype.hh> 00005 00006 #include <dune/localfunctions/common/localfiniteelementtraits.hh> 00007 00008 #include "rannacherturek2d/rannacherturek2dlocalbasis.hh" 00009 #include "rannacherturek2d/rannacherturek2dlocalcoefficients.hh" 00010 #include "rannacherturek2d/rannacherturek2dlocalinterpolation.hh" 00011 00012 namespace Dune { 00013 00014 template<class D, class R> 00015 class RannacherTurek2DLocalFiniteElement 00016 { 00017 RannacherTurek2DLocalBasis<D,R> basis; 00018 RannacherTurek2DLocalCoefficients coefficients; 00019 RannacherTurek2DLocalInterpolation<RannacherTurek2DLocalBasis<D,R> > interpolation; 00020 GeometryType gt; 00021 00022 public: 00023 typedef LocalFiniteElementTraits< 00024 RannacherTurek2DLocalBasis<D,R>, 00025 RannacherTurek2DLocalCoefficients, 00026 RannacherTurek2DLocalInterpolation<RannacherTurek2DLocalBasis<D,R> > > Traits; 00027 00028 RannacherTurek2DLocalFiniteElement () { gt.makeQuadrilateral(); } 00029 00030 const typename Traits::LocalBasisType& localBasis () const 00031 { 00032 return basis; 00033 } 00034 00035 const typename Traits::LocalCoefficientsType& localCoefficients () const 00036 { 00037 return coefficients; 00038 } 00039 00040 const typename Traits::LocalInterpolationType& localInterpolation () const 00041 { 00042 return interpolation; 00043 } 00044 00045 GeometryType type () const { return gt; } 00046 }; 00047 00048 } // namespace Dune 00049 00050 #endif // DUNE_RANNACHER_TUREK2DLOCALFINITEELEMENT_HH