3 #include <dune/common/hybridutilities.hh> 4 #include <dune/common/std/type_traits.hh> 5 #include <dune/geometry/quadraturerules.hh> 6 #include <dune/geometry/type.hh> 8 #include <amdis/common/Order.hpp> 13 template <
class ctype,
int dim,
class LocalFunction>
17 using QuadratureRule = Dune::QuadratureRule<ctype, dim>;
23 virtual void bind(LocalFunction
const& localFct)
34 virtual QuadratureRule
const&
rule(Dune::GeometryType
const& type,
int degree)
const 36 using QuadratureRules = Dune::QuadratureRules<ctype, dim>;
37 return QuadratureRules::rule(type, degree);
44 template <
class ctype,
int dim,
class LocalFunction>
49 void bind(LocalFunction
const& localFct)
final 52 if constexpr (Concepts::Polynomial<LocalFunction>)
53 order_ =
order(localFct);
56 int order() const final {
return order_; }
64 inline auto makePreQuadratureFactory()
70 template <
class ctype,
int dim,
class LocalFunction>
79 template <
class ctype,
int dim,
class LocalFunction>
84 using QuadratureRule =
typename Super::QuadratureRule;
93 int order() const final {
return order_; }
95 QuadratureRule
const&
rule(Dune::GeometryType
const& type,
int degree)
const final 97 using QuadratureRules = Dune::QuadratureRules<ctype, dim>;
98 return QuadratureRules::rule(type, degree, qt_);
103 Dune::QuadratureType::Enum qt_;
109 Dune::QuadratureType::Enum qt;
112 inline auto makePreQuadratureFactory(
int order, Dune::QuadratureType::Enum qt = Dune::QuadratureType::GaussLegendre)
118 template <
class ctype,
int dim,
class LocalFunction>
126 template <
class ctype,
int dim,
class LocalFunction>
131 using QuadratureRule =
typename Super::QuadratureRule;
138 QuadratureRule
const&
rule(Dune::GeometryType
const& ,
int )
const final 144 QuadratureRule
const& rule_;
147 template <
class QuadRule>
150 QuadRule
const&
rule;
153 template <
class ctype,
int dim>
154 auto makePreQuadratureFactory(Dune::QuadratureRule<ctype, dim>
const&
rule)
160 template <
class ctype,
int dim,
class LocalFunction,
class QuadRule>
Definition: QuadratureFactory.hpp:106
auto makeQuadratureFactory(PreQuadFactoryFromRule< QuadRule > const &pre)
Generator for QuadFactoryFromRule.
Definition: QuadratureFactory.hpp:161
virtual int order() const
Return the quadrature order of the coefficient relates to the localFunction.
Definition: QuadratureFactory.hpp:27
Definition: QuadratureFactory.hpp:62
QuadFactoryFromOrder(int order, Dune::QuadratureType::Enum qt)
Constructor. Takes the order of the localCoefficient and a quadrature-type.
Definition: QuadratureFactory.hpp:88
int order() const final
Return the quadrature order of the coefficient relates to the localFunction.
Definition: QuadratureFactory.hpp:93
Definition: QuadratureFactory.hpp:148
QuadratureRule const & rule(Dune::GeometryType const &, int) const final
Definition: QuadratureFactory.hpp:138
QuadratureRule const & rule(Dune::GeometryType const &type, int degree) const final
Definition: QuadratureFactory.hpp:95
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
virtual QuadratureRule const & rule(Dune::GeometryType const &type, int degree) const
Definition: QuadratureFactory.hpp:34
auto makeQuadratureFactory(PreQuadFactoryFromOrder const &pre)
Generator for QuadFactoryFromOrder.
Definition: QuadratureFactory.hpp:119
void bind(LocalFunction const &localFct) final
Bind the rule to a localFunction.
Definition: QuadratureFactory.hpp:49
Factory for quadrature rule, that is based on an existing rule.
Definition: QuadratureFactory.hpp:127
auto order(F const &f) -> decltype(&F::operator(), f.order())
polynomial order of functions
Definition: Order.hpp:11
Factory for quadrature rule, that calculates the coefficient order from a localFunction passed to the...
Definition: QuadratureFactory.hpp:45
virtual void bind(LocalFunction const &localFct)
Bind the rule to a localFunction.
Definition: QuadratureFactory.hpp:23
Factory for quadrature rule, that takes to order of the localFunction and a quadrature-type.
Definition: QuadratureFactory.hpp:80
int order() const final
Return the quadrature order of the coefficient relates to the localFunction.
Definition: QuadratureFactory.hpp:56
auto makeQuadratureFactory(PreQuadFactoryFromLocalFunction const &)
Generator for QuadFactoryFromLocalFunction.
Definition: QuadratureFactory.hpp:71
Base class for quadrature factories for localFunctions.
Definition: QuadratureFactory.hpp:14