3 #ifndef DUNE_PQK_FACTORY_HH
4 #define DUNE_PQK_FACTORY_HH
8 #include <dune/geometry/type.hh>
29 template<
class D,
class R,
int d,
int k>
45 template<
class D,
class R,
int k>
54 if ((gt.isCube()) and (k==2))
64 template<
class D,
class R,
int k>
76 if ((gt.isPrism()) and (k==1))
78 if ((gt.isPrism()) and (k==2))
80 if ((gt.isPyramid()) and (k==1))
82 if ((gt.isPyramid()) and (k==2))
92 template<
class D,
class R,
int dim,
int k>
111 if ((gt.isCube()) and (k==1))
130 template<
class D,
class R,
int dim,
int k>
136 typedef typename std::map<GeometryType,FE*>
FEMap;
148 typename FEMap::iterator it = other.
cache_.begin();
149 typename FEMap::iterator end = other.
cache_.end();
151 cache_[it->first] = (it->second)->clone();
156 typename FEMap::iterator it =
cache_.begin();
157 typename FEMap::iterator end =
cache_.end();
165 typename FEMap::const_iterator it =
cache_.find(gt);
170 DUNE_THROW(Dune::NotImplemented,
"No Pk/Qk like local finite element available for geometry type " << gt <<
" and order " << k);
175 return *(it->second);