dune-localfunctions  2.2.0
brezzidouglasmarini1q2d.hh
Go to the documentation of this file.
00001 #ifndef DUNE_LOCALFUNCTIONS_BREZZIDOUGLASMARINI1Q2DLOCALFINITEELEMENT_HH
00002 #define DUNE_LOCALFUNCTIONS_BREZZIDOUGLASMARINI1Q2DLOCALFINITEELEMENT_HH
00003 
00004 #include <dune/geometry/type.hh>
00005 
00006 #include "../common/localfiniteelementtraits.hh"
00007 #include "brezzidouglasmarini1q2d/brezzidouglasmarini1q2dlocalbasis.hh"
00008 #include "brezzidouglasmarini1q2d/brezzidouglasmarini1q2dlocalcoefficients.hh"
00009 #include "brezzidouglasmarini1q2d/brezzidouglasmarini1q2dlocalinterpolation.hh"
00010 
00011 namespace Dune 
00012 {
00019   template<class D, class R>
00020   class BDM1Q2DLocalFiniteElement 
00021   {
00022   
00023 public:
00024     typedef LocalFiniteElementTraits<BDM1Q2DLocalBasis<D,R>,BDM1Q2DLocalCoefficients,
00025                                      BDM1Q2DLocalInterpolation<BDM1Q2DLocalBasis<D,R> > > Traits;
00026 
00028     BDM1Q2DLocalFiniteElement ()
00029     {
00030       gt.makeQuadrilateral();
00031     }
00032 
00038     BDM1Q2DLocalFiniteElement (int s) : basis(s), interpolation(s)
00039     {
00040       gt.makeQuadrilateral();
00041     }
00042 
00043     const typename Traits::LocalBasisType& localBasis () const
00044     {
00045       return basis;
00046     }
00047     
00048     const typename Traits::LocalCoefficientsType& localCoefficients () const
00049     {
00050       return coefficients;
00051     }
00052     
00053     const typename Traits::LocalInterpolationType& localInterpolation () const
00054     {
00055       return interpolation;
00056     }
00057     
00058     GeometryType type () const
00059     {
00060       return gt;
00061     }
00062 
00063 private:
00064     BDM1Q2DLocalBasis<D,R> basis;
00065     BDM1Q2DLocalCoefficients coefficients;
00066     BDM1Q2DLocalInterpolation<BDM1Q2DLocalBasis<D,R> > interpolation;
00067     GeometryType gt;
00068   };
00069 }
00070 #endif // DUNE_LOCALFUNCTIONS_BREZZIDOUGLASMARINI1Q2DLOCALFINITEELEMENT_HH