23 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
24 "GaussianTriangleQuadrature does not implement a %d point "
31 SetWeightsAndQuadraturePoints();
43 void SetWeightsAndQuadraturePoints() {
47 quadrature_points_.resize(1);
49 quadrature_points_[0] =
Vector2d(1.0 / 3.0, 1.0 / 3.0);
54 quadrature_points_.resize(3);
55 weights_[0] = weights_[1] = weights_[2] = 1.0 / 3.0;
56 quadrature_points_[0] =
Vector2d(1.0 / 6.0, 1.0 / 6.0);
57 quadrature_points_[1] =
Vector2d(1.0 / 6.0, 2.0 / 3.0);
58 quadrature_points_[2] =
Vector2d(2.0 / 3.0, 1.0 / 6.0);
63 quadrature_points_.resize(4);
64 weights_[0] = -27.0 / 48.0;
65 weights_[1] = weights_[2] = weights_[3] = 25.0 / 48.0;
66 quadrature_points_[0] =
Vector2d(1.0 / 3.0, 1.0 / 3.0);
67 quadrature_points_[1] =
Vector2d(1.0 / 5.0, 1.0 / 5.0);
68 quadrature_points_[2] =
Vector2d(1.0 / 5.0, 3.0 / 5.0);
69 quadrature_points_[3] =
Vector2d(3.0 / 5.0, 1.0 / 5.0);
74 quadrature_points_.resize(6);
75 weights_[0] = weights_[1] = weights_[2] = 0.223381589678011;
76 weights_[3] = weights_[4] = weights_[5] = 0.109951743655322;
77 quadrature_points_[0] =
Vector2d(0.445948490915965, 0.445948490915965);
78 quadrature_points_[1] =
Vector2d(0.445948490915965, 0.108103018168070);
79 quadrature_points_[2] =
Vector2d(0.108103018168070, 0.445948490915965);
80 quadrature_points_[3] =
Vector2d(0.091576213509771, 0.091576213509771);
81 quadrature_points_[4] =
Vector2d(0.091576213509771, 0.816847572980459);
82 quadrature_points_[5] =
Vector2d(0.816847572980459, 0.091576213509771);
87 quadrature_points_.resize(7);
89 weights_[1] = weights_[2] = weights_[3] = 0.132394152788506;
90 weights_[4] = weights_[5] = weights_[6] = 0.125939180544827;
91 quadrature_points_[0] =
Vector2d(1.0 / 3.0, 1.0 / 3.0);
92 quadrature_points_[1] =
Vector2d(0.470142064105115, 0.470142064105115);
93 quadrature_points_[2] =
Vector2d(0.470142064105115, 0.059715871789770);
94 quadrature_points_[3] =
Vector2d(0.059715871789770, 0.470142064105115);
95 quadrature_points_[4] =
Vector2d(0.101286507323456, 0.101286507323456);
96 quadrature_points_[5] =
Vector2d(0.101286507323456, 0.797426985353087);
97 quadrature_points_[6] =
Vector2d(0.797426985353087, 0.101286507323456);
101 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
102 "GaussianTriangleQuadrature does not implement a %d point "
105 painCave.isFatal = 1;
111 int do_order() const final {
return order_; }
113 const std::vector<RealType>& do_weights() const final {
return weights_; }
115 const std::vector<Vector2d>& do_quadrature_points() const final {
116 return quadrature_points_;
119 const int order_ {-1};
120 std::vector<RealType> weights_;
121 std::vector<Vector2d> quadrature_points_;