dune-localfunctions  2.2.0
hierarchicalprismp2.hh
Go to the documentation of this file.
00001 // -*- tab-width: 4; indent-tabs-mode: nil -*-
00002 // vi: set ts=4 sw=2 et sts=2:
00003 #ifndef DUNE_HIERARCHICAL_PRISM_P2_LOCALFINITEELEMENT_HH
00004 #define DUNE_HIERARCHICAL_PRISM_P2_LOCALFINITEELEMENT_HH
00005 
00006 #include <dune/geometry/type.hh>
00007 
00008 #include <dune/localfunctions/common/localfiniteelementtraits.hh>
00009 #include <dune/localfunctions/lagrange/prismp2/prismp2localcoefficients.hh>
00010 
00011 #include "hierarchicalprismp2/hierarchicalprismp2localbasis.hh"
00012 #include "hierarchicalprismp2/hierarchicalprismp2localinterpolation.hh"
00013 
00014 
00015 namespace Dune 
00016 {
00017 
00020     template<class D, class R>
00021   class HierarchicalPrismP2LocalFiniteElement
00022   {
00023 
00024       
00025   public:
00028     typedef LocalFiniteElementTraits<HierarchicalPrismP2LocalBasis<D,R>,
00029                                      PrismP2LocalCoefficients,
00030                                      HierarchicalPrismP2LocalInterpolation<HierarchicalPrismP2LocalBasis<D,R> > > Traits;
00031 
00034     HierarchicalPrismP2LocalFiniteElement ()
00035     {
00036       gt.makePrism();
00037     }
00038 
00041     const typename Traits::LocalBasisType& localBasis () const
00042     {
00043       return basis;
00044     }
00045     
00048     const typename Traits::LocalCoefficientsType& localCoefficients () const
00049     {
00050       return coefficients;
00051     }
00052     
00055     const typename Traits::LocalInterpolationType& localInterpolation () const
00056     {
00057       return interpolation;
00058     }
00059     
00062     GeometryType type () const
00063     {
00064       return gt;
00065     }
00066 
00067     HierarchicalPrismP2LocalFiniteElement* clone () const
00068     {
00069       return new HierarchicalPrismP2LocalFiniteElement(*this);
00070     }
00071 
00072   private:
00073     HierarchicalPrismP2LocalBasis<D,R> basis;
00074 
00076     PrismP2LocalCoefficients coefficients;
00077 
00078     HierarchicalPrismP2LocalInterpolation<HierarchicalPrismP2LocalBasis<D,R> > interpolation;
00079     GeometryType gt;
00080   };
00081 
00082 }
00083 
00084 #endif
00085