00001 #ifndef DUNE_Q22DLOCALFINITEELEMENT_HH 00002 #define DUNE_Q22DLOCALFINITEELEMENT_HH 00003 00004 #include <dune/common/geometrytype.hh> 00005 00006 #include <dune/localfunctions/common/localfiniteelementtraits.hh> 00007 #include "q22d/q22dlocalbasis.hh" 00008 #include "q22d/q22dlocalcoefficients.hh" 00009 #include "q22d/q22dlocalinterpolation.hh" 00010 00011 namespace Dune 00012 { 00013 00016 template<class D, class R> 00017 class Q22DLocalFiniteElement 00018 { 00019 public: 00022 typedef LocalFiniteElementTraits<Q22DLocalBasis<D,R>,Q22DLocalCoefficients, 00023 Q22DLocalInterpolation<Q22DLocalBasis<D,R> > > Traits; 00024 00027 Q22DLocalFiniteElement () 00028 { 00029 gt.makeQuadrilateral(); 00030 } 00031 00034 const typename Traits::LocalBasisType& localBasis () const 00035 { 00036 return basis; 00037 } 00038 00041 const typename Traits::LocalCoefficientsType& localCoefficients () const 00042 { 00043 return coefficients; 00044 } 00045 00048 const typename Traits::LocalInterpolationType& localInterpolation () const 00049 { 00050 return interpolation; 00051 } 00052 00055 GeometryType type () const 00056 { 00057 return gt; 00058 } 00059 00060 private: 00061 Q22DLocalBasis<D,R> basis; 00062 Q22DLocalCoefficients coefficients; 00063 Q22DLocalInterpolation<Q22DLocalBasis<D,R> > interpolation; 00064 GeometryType gt; 00065 }; 00066 00067 } 00068 00069 #endif