dune-localfunctions  2.2.0
prismp2.hh
Go to the documentation of this file.
00001 // -*- tab-width: 4; indent-tabs-mode: nil -*-
00002 #ifndef DUNE_PRISM2_3DLOCALFINITEELEMENT_HH
00003 #define DUNE_PRISM2_3DLOCALFINITEELEMENT_HH
00004 
00005 #include <dune/geometry/type.hh>
00006 
00007 #include <dune/localfunctions/common/localfiniteelementtraits.hh>
00008 #include "prismp2/prismp2localbasis.hh"
00009 #include "prismp2/prismp2localcoefficients.hh"
00010 #include "prismp2/prismp2localinterpolation.hh"
00011 
00012 namespace Dune 
00013 {
00014 
00017   template<class D, class R>
00018   class PrismP2LocalFiniteElement 
00019   {
00020   public:
00023         typedef LocalFiniteElementTraits<PrismP2LocalBasis<D,R>,
00024                                      PrismP2LocalCoefficients,
00025                                                                          PrismP2LocalInterpolation<PrismP2LocalBasis<D,R> > > Traits;
00026 
00029         PrismP2LocalFiniteElement ()
00030         {
00031           gt.makePrism();
00032         }
00033 
00036         const typename Traits::LocalBasisType& localBasis () const
00037         {
00038           return basis;
00039         }
00040         
00043         const typename Traits::LocalCoefficientsType& localCoefficients () const
00044         {
00045           return coefficients;
00046         }
00047         
00050         const typename Traits::LocalInterpolationType& localInterpolation () const
00051         {
00052           return interpolation;
00053         }
00054         
00057         GeometryType type () const
00058         {
00059           return gt;
00060         }
00061 
00062     PrismP2LocalFiniteElement* clone () const
00063     {
00064       return new PrismP2LocalFiniteElement(*this);
00065     }
00066 
00067   private:
00068         PrismP2LocalBasis<D,R> basis;
00069         PrismP2LocalCoefficients coefficients;
00070         PrismP2LocalInterpolation<PrismP2LocalBasis<D,R> > interpolation;
00071         GeometryType gt;
00072   };
00073 
00074 }
00075 
00076 #endif