44 const unsigned int n_pts)
55 unsigned int offset=0;
58 for (
unsigned int p=0; p<n_pts; ++p)
62 libmesh_assert_not_equal_to (rule_data[p][0],
static_cast<Real>(0.0));
65 libmesh_assert_not_equal_to (rule_data[p][3],
static_cast<Real>(0.0));
71 unsigned int pointtype=1;
73 if (rule_data[p][1] !=
static_cast<Real>(0.0))
75 if (rule_data[p][2] !=
static_cast<Real>(0.0))
83 if (rule_data[p][2] !=
static_cast<Real>(0.0))
93 libmesh_assert_less (offset + 0,
_points.size());
95 const Real a = rule_data[p][0];
101 _weights[offset + 0] = rule_data[p][3];
110 libmesh_assert_less (offset + 3,
_points.size());
112 const Real a = rule_data[p][0];
113 const Real b = rule_data[p][1];
114 const Real wt = rule_data[p][3];
123 for (
unsigned int j=0; j<pointtype; ++j)
133 libmesh_assert_less (offset + 5,
_points.size());
135 const Real a = rule_data[p][0];
136 const Real b = rule_data[p][2];
137 const Real wt = rule_data[p][3];
147 for (
unsigned int j=0; j<pointtype; ++j)
158 libmesh_assert_less (offset + 11,
_points.size());
160 const Real a = rule_data[p][0];
161 const Real b = rule_data[p][1];
162 const Real c = rule_data[p][2];
163 const Real wt = rule_data[p][3];
173 for (
unsigned int j=0; j<pointtype; ++j)
181 libmesh_error_msg(
"Don't know what to do with this many permutation points!");
271 const unsigned int n_pts)
280 unsigned int offset=0;
283 for (
unsigned int p=0; p<n_pts; ++p)
287 libmesh_assert_not_equal_to ( rule_data[p][0],
static_cast<Real>(0.0) );
290 libmesh_assert_not_equal_to ( rule_data[p][3],
static_cast<Real>(0.0) );
296 unsigned int pointtype=1;
298 if (rule_data[p][1] !=
static_cast<Real>(0.0))
300 if (rule_data[p][2] !=
static_cast<Real>(0.0))
311 libmesh_assert_less (offset + 0,
_points.size());
314 _points[offset + 0] =
Point(rule_data[p][0], rule_data[p][0]);
317 _weights[offset + 0] = rule_data[p][3];
326 libmesh_assert_less (offset + 2,
_points.size());
330 _points[offset + 0] =
Point(rule_data[p][0], rule_data[p][1]);
331 _points[offset + 1] =
Point(rule_data[p][1], rule_data[p][0]);
332 _points[offset + 2] =
Point(rule_data[p][1], rule_data[p][1]);
334 for (
unsigned int j=0; j<3; ++j)
335 _weights[offset + j] = rule_data[p][3];
344 libmesh_assert_less (offset + 5,
_points.size());
347 _points[offset + 0] =
Point(rule_data[p][0], rule_data[p][1]);
348 _points[offset + 1] =
Point(rule_data[p][0], rule_data[p][2]);
349 _points[offset + 2] =
Point(rule_data[p][1], rule_data[p][0]);
350 _points[offset + 3] =
Point(rule_data[p][1], rule_data[p][2]);
351 _points[offset + 4] =
Point(rule_data[p][2], rule_data[p][0]);
352 _points[offset + 5] =
Point(rule_data[p][2], rule_data[p][1]);
354 for (
unsigned int j=0; j<6; ++j)
355 _weights[offset + j] = rule_data[p][3];
362 libmesh_error_msg(
"Don't know what to do with this many permutation points!");