9#include <kernel/cubature/driver_base.hpp>
10#include <kernel/util/meta_math.hpp>
19 template<
typename Shape_>
20 class BarycentreDriverBase :
21 public DriverBase<Shape_>
25 static constexpr bool variadic =
false;
27 static constexpr int num_points = 1;
41 template<
typename Functor_>
42 static void alias(Functor_& functor)
44 functor.alias(
"midpoint");
61 template<
typename Shape_>
67 public Intern::BarycentreDriverBase<Shape::Simplex<dim_> >
85 for(
int i(0); i < dim_; ++i)
87 rule.get_coord(0, i) = Coord_(1) / Coord_(dim_ + 1);
95 public Intern::BarycentreDriverBase<Shape::Hypercube<dim_> >
110 rule.get_weight(0) = Weight_(1 << dim_);
113 for(
int i(0); i < dim_; ++i)
115 rule.get_coord(0, i) = Coord_(0);
static void fill(Rule< Shape::Hypercube< dim_ >, Weight_, Coord_, Point_ > &rule)
Fills the cubature rule structure.
static void fill(Rule< Shape::Simplex< dim_ >, Weight_, Coord_, Point_ > &rule)
Fills the cubature rule structure.
Barycentre Rule driver class template.
Cubature Rule class template.
Hypercube shape tag struct template.
Simplex shape tag struct template.