3 #include <dune/common/exceptions.hh> 4 #include <dune/geometry/quadraturerules.hh> 5 #include <dune/geometry/type.hh> 7 #include <amdis/common/Order.hpp> 8 #include <amdis/functions/Order.hpp> 12 template <
class Geometry,
class RN,
class CN>
13 int getQuadratureDegree(Geometry
const& geometry,
int derivOrder,
int coeffDegree,
14 RN
const& rowNode, CN
const& colNode)
17 DUNE_THROW(Dune::Exception,
"Polynomial degree of coefficients cannot be determined. " 18 "Please provide a quadrature order manually.");
20 int psiDegree = order(rowNode);
21 int phiDegree = order(colNode);
23 int degree = psiDegree + phiDegree + coeffDegree;
24 if (geometry.type().isSimplex())
26 if (geometry.affine())
32 template <
class Geometry,
class Node>
33 int getQuadratureDegree(Geometry
const& geometry,
int derivOrder,
int coeffDegree,
37 DUNE_THROW(Dune::Exception,
"Polynomial degree of GridFunction cannot be determined. " 38 "Please provide a quadrature order manually.");
40 int psiDegree = order(node);
41 int degree = psiDegree + coeffDegree;
43 if (geometry.type().isSimplex())
45 if (geometry.affine())
51 template <
class Geometry,
class... Nodes>
52 auto const& getQuadratureRule(Geometry
const& geometry,
int derivOrder,
53 int coeffDegree, Nodes
const&... nodes)
55 int degree = getQuadratureDegree(geometry, derivOrder, coeffDegree, nodes...);
57 = Dune::QuadratureRules<typename Geometry::ctype, Geometry::mydimension>;
58 return QuadRules::rule(geometry.type(), degree);
Definition: AdaptBase.hpp:6