87 const Real a = .585410196624969;
88 const Real b = .138196601125011;
172 conical_rule.
init(type_in, p);
205 const Real rule_data[3][4] = {
206 {0.250000000000000000e+00, 0., 0., -0.131555555555555556e-01},
207 {0.785714285714285714e+00, 0.714285714285714285e-01, 0., 0.762222222222222222e-02},
208 {0.399403576166799219e+00, 0., 0.100596423833200785e+00, 0.248888888888888889e-01}
220 libmesh_fallthrough();
237 const Real a[3] = {0.31088591926330060980,
238 0.092735250310891226402,
239 0.045503704125649649492};
243 const Real wt[3] = {0.018781320953002641800,
244 0.012248840519393658257,
245 0.0070910034628469110730};
248 for (
unsigned int i=0; i<2; ++i)
251 const unsigned int offset=4*i;
254 const Real b = 1. - 3.*a[i];
264 for (
unsigned int j=0; j<4; ++j)
271 const unsigned int offset = 8;
272 const Real b = 0.5*(1. - 2.*a[2]);
284 for (
unsigned int j=0; j<6; ++j)
406 const Real rule_data[4][4] = {
407 {0.356191386222544953e+00 , 0.214602871259151684e+00 , 0., 0.00665379170969464506e+00},
408 {0.877978124396165982e+00 , 0.0406739585346113397e+00, 0., 0.00167953517588677620e+00},
409 {0.0329863295731730594e+00, 0.322337890142275646e+00 , 0., 0.00922619692394239843e+00},
410 {0.0636610018750175299e+00, 0.269672331458315867e+00 , 0.603005664791649076e+00, 0.00803571428571428248e+00}
437 const Real rule_data[7][4] = {
438 {0.250000000000000000e+00, 0., 0., -0.393270066412926145e-01},
439 {0.617587190300082967e+00, 0.127470936566639015e+00, 0., 0.408131605934270525e-02},
440 {0.903763508822103123e+00, 0.320788303926322960e-01, 0., 0.658086773304341943e-03},
441 {0.497770956432810185e-01, 0., 0.450222904356718978e+00, 0.438425882512284693e-02},
442 {0.183730447398549945e+00, 0., 0.316269552601450060e+00, 0.138300638425098166e-01},
443 {0.231901089397150906e+00, 0.229177878448171174e-01, 0.513280033360881072e+00, 0.424043742468372453e-02},
444 {0.379700484718286102e-01, 0.730313427807538396e+00, 0.193746475248804382e+00, 0.223873973961420164e-02}
456 libmesh_fallthrough();
472 gm_rule.
init(type_in, p);
490 conical_rule.
init(type_in, p);
540 conical_rule.
init(type_in, p);
555 libmesh_error_msg(
"ERROR: Unsupported type: " << type_in);
virtual void init(const ElemType type=INVALID_ELEM, unsigned int p_level=0)
bool allow_rules_with_negative_weights
const std::vector< Real > & get_weights() const
std::vector< Point > _points
std::vector< Real > _weights
void tensor_product_prism(const QBase &q1D, const QBase &q2D)
virtual void init_3D(const ElemType _type=INVALID_ELEM, unsigned int p_level=0) override
void tensor_product_hex(const QBase &q1D)
Conical product quadrature rules for Tri and Tet elements.
Implements the quadrature rules of Grundmann and Moller in 2D and 3D.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void keast_rule(const Real rule_data[][4], const unsigned int n_pts)
const std::vector< Point > & get_points() const
Implements 1, 2, and 3D "Gaussian" quadrature rules.
A geometric point in (x,y,z) space.