monom.hh
Go to the documentation of this file.00001
00002 #ifndef DUNE_MONOMLOCALFINITEELEMENT_HH
00003 #define DUNE_MONOMLOCALFINITEELEMENT_HH
00004
00005 #include <dune/common/geometrytype.hh>
00006
00007 #include "common/localfiniteelementtraits.hh"
00008 #include "monom/monomlocalbasis.hh"
00009 #include "monom/monomlocalcoefficients.hh"
00010 #include "monom/monomlocalinterpolation.hh"
00011
00012 namespace Dune
00013 {
00014
00022 template<class D, class R, int d, int p>
00023 class MonomLocalFiniteElement
00024 {
00025 enum { static_size = MonomImp::Size<d,p>::val };
00026
00027 public:
00030 typedef LocalFiniteElementTraits<
00031 MonomLocalBasis<D,R,d,p>,
00032 MonomLocalCoefficients<static_size>,
00033 MonomLocalInterpolation<MonomLocalBasis<D,R,d,p>,static_size>
00034 > Traits;
00035
00038 MonomLocalFiniteElement (GeometryType::BasicType basicType)
00039 : basis(), interpolation(basicType, basis), gt(basicType,d)
00040 {}
00041
00044 const typename Traits::LocalBasisType& localBasis () const
00045 {
00046 return basis;
00047 }
00048
00051 const typename Traits::LocalCoefficientsType& localCoefficients () const
00052 {
00053 return coefficients;
00054 }
00055
00058 const typename Traits::LocalInterpolationType& localInterpolation () const
00059 {
00060 return interpolation;
00061 }
00062
00065 GeometryType type () const
00066 {
00067 return gt;
00068 }
00069
00070 private:
00071 MonomLocalBasis<D,R,d,p> basis;
00072 MonomLocalCoefficients<static_size> coefficients;
00073 MonomLocalInterpolation<MonomLocalBasis<D,R,d,p>,static_size> interpolation;
00074 GeometryType gt;
00075 };
00076
00077 }
00078
00079 #endif // DUNE_MONOMLOCALFINITEELEMENT_HH