dune-localfunctions  2.2.0
prismp2localcoefficients.hh
Go to the documentation of this file.
00001 // -*- tab-width: 4; indent-tabs-mode: nil -*-
00002 #ifndef DUNE_PRISM_P2_LOCALCOEFFICIENTS_HH
00003 #define DUNE_PRISM_P2_LOCALCOEFFICIENTS_HH
00004 
00005 #include <cstddef>
00006 #include <vector>
00007 
00008 #include <dune/localfunctions/common/localkey.hh>
00009 
00010 namespace Dune 
00011 {
00012 
00019   class PrismP2LocalCoefficients
00020   {
00021   public:
00023         PrismP2LocalCoefficients () : li(18)
00024         {
00025         // Vertex shape functions
00026                 li[0] = LocalKey(0,3,0);
00027                 li[1] = LocalKey(1,3,0);
00028                 li[2] = LocalKey(2,3,0);
00029                 li[3] = LocalKey(3,3,0);
00030         li[4] = LocalKey(4,3,0);
00031         li[5] = LocalKey(5,3,0);
00032         
00033         // Edge shape functions
00034                 li[6] = LocalKey(0,2,0);
00035                 li[7] = LocalKey(1,2,0);
00036                 li[8] = LocalKey(2,2,0);
00037                 li[9] = LocalKey(3,2,0);
00038                 li[10] = LocalKey(4,2,0);
00039                 li[11] = LocalKey(5,2,0);
00040                 li[12] = LocalKey(6,2,0);
00041                 li[13] = LocalKey(7,2,0);
00042             li[14] = LocalKey(8,2,0);
00043             
00044             // Quadrilateral sides shape functions
00045             li[15] = LocalKey(0,1,0);
00046             li[16] = LocalKey(1,1,0);
00047             li[17] = LocalKey(2,1,0);
00048         }
00049 
00051         std::size_t size () const
00052         {
00053           return 18;
00054         }
00055 
00057         const LocalKey& localKey (std::size_t i) const
00058         {
00059           return li[i];
00060         } 
00061 
00062   private:
00063         std::vector<LocalKey> li;
00064   };
00065 
00066 }
00067 
00068 #endif