00001 // -*- tab-width: 4; indent-tabs-mode: nil -*- 00002 #ifndef DUNE_EDGES02DLOCALFINITEELEMENT_HH 00003 #define DUNE_EDGES02DLOCALFINITEELEMENT_HH 00004 00005 #include <dune/common/geometrytype.hh> 00006 00007 #include <dune/localfunctions/common/localfiniteelementtraits.hh> 00008 #include "edges02d/edges02dlocalbasis.hh" 00009 #include "edges02d/edges02dlocalcoefficients.hh" 00010 #include "edges02d/edges02dlocalinterpolation.hh" 00011 00012 namespace Dune 00013 { 00014 00023 template<class D, class R> 00024 class EdgeS02DLocalFiniteElement 00025 { 00026 public: 00029 typedef LocalFiniteElementTraits< 00030 EdgeS02DLocalBasis<D,R>, 00031 EdgeS02DLocalCoefficients, 00032 EdgeS02DLocalInterpolation<EdgeS02DLocalBasis<D,R> > 00033 > Traits; 00034 00037 00038 EdgeS02DLocalFiniteElement () 00039 { 00040 gt.makeTriangle(); 00041 } 00042 00047 EdgeS02DLocalFiniteElement (unsigned int s) 00048 : basis(s), interpolation(s) 00049 { 00050 gt.makeTriangle(); 00051 } 00052 00055 const typename Traits::LocalBasisType& localBasis () const 00056 { 00057 return basis; 00058 } 00059 00062 const typename Traits::LocalCoefficientsType& localCoefficients () const 00063 { 00064 return coefficients; 00065 } 00066 00069 const typename Traits::LocalInterpolationType& localInterpolation () const 00070 { 00071 return interpolation; 00072 } 00073 00076 GeometryType type () const 00077 { 00078 return gt; 00079 } 00080 00081 private: 00082 EdgeS02DLocalBasis<D,R> basis; 00083 EdgeS02DLocalCoefficients coefficients; 00084 EdgeS02DLocalInterpolation<EdgeS02DLocalBasis<D,R> > interpolation; 00085 GeometryType gt; 00086 }; 00087 00088 } 00089 00090 #endif // DUNE_EDGES02DLOCALFINITEELEMENT_HH