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