dune-localfunctions
2.2.0
|
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