19 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
20 "StrangFixCowperTriangleQuadrature does not implement a %d "
27 SetWeightsAndQuadraturePoints();
39 void SetWeightsAndQuadraturePoints() {
44 quadrature_points_.resize(3);
45 weights_[0] = weights_[1] = weights_[2] = 1.0 / 3.0;
46 quadrature_points_[0] =
Vector2d(1.0 / 2.0, 1.0 / 2.0);
47 quadrature_points_[1] =
Vector2d(0.0, 1.0 / 2.0);
48 quadrature_points_[2] =
Vector2d(1.0 / 2.0, 0.0);
53 quadrature_points_.resize(4);
54 weights_[0] = -27.0 / 48.0;
55 weights_[1] = weights_[2] = weights_[3] = 25.0 / 48.0;
56 quadrature_points_[0] =
Vector2d(1.0 / 3.0, 1.0 / 3.0);
57 quadrature_points_[1] =
Vector2d(1.0 / 5.0, 1.0 / 5.0);
58 quadrature_points_[2] =
Vector2d(1.0 / 5.0, 3.0 / 5.0);
59 quadrature_points_[3] =
Vector2d(3.0 / 5.0, 1.0 / 5.0);
63 quadrature_points_.resize(6);
64 weights_[0] = weights_[1] = weights_[2] = 0.223381589678011;
65 weights_[3] = weights_[4] = weights_[5] = 0.109951743655322;
66 quadrature_points_[0] =
Vector2d(0.445948490915965, 0.445948490915965);
67 quadrature_points_[1] =
Vector2d(0.445948490915965, 0.108103018168070);
68 quadrature_points_[2] =
Vector2d(0.108103018168070, 0.445948490915965);
69 quadrature_points_[3] =
Vector2d(0.091576213509771, 0.091576213509771);
70 quadrature_points_[4] =
Vector2d(0.091576213509771, 0.816847572980459);
71 quadrature_points_[5] =
Vector2d(0.816847572980459, 0.091576213509771);
76 quadrature_points_.resize(6);
77 weights_[0] = weights_[1] = weights_[2] = 1.0 / 6.0;
78 weights_[3] = weights_[4] = weights_[5] = 1.0 / 6.0;
79 quadrature_points_[0] =
Vector2d(0.659027622374092, 0.231933368553031);
80 quadrature_points_[1] =
Vector2d(0.109039009072877, 0.659027622374092);
81 quadrature_points_[2] =
Vector2d(0.231933368553031, 0.109039009072877);
82 quadrature_points_[3] =
Vector2d(0.231933368553031, 0.659027622374092);
83 quadrature_points_[4] =
Vector2d(0.109039009072877, 0.231933368553031);
84 quadrature_points_[5] =
Vector2d(0.659027622374092, 0.109039009072877);
89 quadrature_points_.resize(7);
91 weights_[1] = weights_[2] = weights_[3] = 0.125939180544827;
92 weights_[4] = weights_[5] = weights_[6] = 0.132394152788506;
93 quadrature_points_[0] =
Vector2d(1.0 / 3.0, 1.0 / 3.0);
94 quadrature_points_[1] =
Vector2d(0.797426985353087, 0.101286507323456);
95 quadrature_points_[2] =
Vector2d(0.101286507323456, 0.797426985353087);
96 quadrature_points_[3] =
Vector2d(0.101286507323456, 0.101286507323456);
97 quadrature_points_[4] =
Vector2d(0.059715871789770, 0.470142064105115);
98 quadrature_points_[5] =
Vector2d(0.470142064105115, 0.059715871789770);
99 quadrature_points_[6] =
Vector2d(0.470142064105115, 0.470142064105115);
103 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
104 "StrangFixCowperTriangleQuadrature does not implement a %d "
107 painCave.isFatal = 1;
113 int do_order() const final {
return order_; }
115 const std::vector<RealType>& do_weights() const final {
return weights_; }
117 const std::vector<Vector2d>& do_quadrature_points() const final {
118 return quadrature_points_;
121 const int order_ {-1};
122 std::vector<RealType> weights_;
123 std::vector<Vector2d> quadrature_points_;