9#include <kernel/cubature/scalar/driver_base.hpp>
10#include <kernel/util/math.hpp>
40 return "gauss-lobatto";
61 rule.get_coord(0) = -Coord_(1);
62 rule.get_coord(1) = Coord_(0);
63 rule.get_coord(2) = Coord_(1);
65 rule.get_weight(0) = Weight_(1) / Weight_(3);
66 rule.get_weight(1) = Weight_(4) / Weight_(3);
67 rule.get_weight(2) = Weight_(1) / Weight_(3);
71 rule.get_coord(0) = -Coord_(1);
72 rule.get_coord(1) = -
Math::sqrt(Coord_(5)) / Coord_(5);
73 rule.get_coord(2) = +
Math::sqrt(Coord_(5)) / Coord_(5);
74 rule.get_coord(3) = +Coord_(1);
76 rule.get_weight(0) = Weight_(1) / Weight_(6);
77 rule.get_weight(1) = Weight_(5) / Weight_(6);
78 rule.get_weight(2) = Weight_(5) / Weight_(6);
79 rule.get_weight(3) = Weight_(1) / Weight_(6);
83 rule.get_coord(0) = -Coord_(1);
84 rule.get_coord(1) = -
Math::sqrt(Coord_(21)) / Coord_(7);
85 rule.get_coord(2) = Coord_(0);
86 rule.get_coord(3) = +
Math::sqrt(Coord_(21)) / Coord_(7);
87 rule.get_coord(4) = +Coord_(1);
89 rule.get_weight(0) = Weight_(1) / Weight_(10);
90 rule.get_weight(1) = Weight_(49) / Weight_(90);
91 rule.get_weight(2) = Weight_(32) / Weight_(45);
92 rule.get_weight(3) = Weight_(49) / Weight_(90);
93 rule.get_weight(4) = Weight_(1) / Weight_(10);
97 rule.get_coord(0) = -Coord_(1);
102 rule.get_coord(5) = Coord_(1);
105 rule.get_weight(0) = Weight_(1) / Weight_(15);
106 rule.get_weight(1) = (Weight_(14) -
Math::sqrt(Weight_(7))) / Weight_(30);
107 rule.get_weight(2) = (Weight_(14) +
Math::sqrt(Weight_(7))) / Weight_(30);
108 rule.get_weight(3) = (Weight_(14) +
Math::sqrt(Weight_(7))) / Weight_(30);
109 rule.get_weight(4) = (Weight_(14) -
Math::sqrt(Weight_(7))) / Weight_(30);
110 rule.get_weight(5) = Weight_(1) / Weight_(15);
Scalar cubature driver base class.
Gauss-Lobatto Rule driver class template.
static String name()
Returns the name of the cubature rule.
static constexpr int max_points
this rule has at most 6 points
static constexpr bool variadic
this rule is variadic
static constexpr int min_points
this rule has at least 3 points
static void fill(Rule< Weight_, Coord_ > &rule, int num_points)
Fills the cubature rule structure.
Scalar Cubature Rule class template.
String class implementation.
T_ sqrt(T_ x)
Returns the square-root of a value.