21 #include "libmesh/quadrature_gauss.h" 22 #include "libmesh/quadrature_conical.h" 23 #include "libmesh/quadrature_gm.h" 24 #include "libmesh/enum_to_string.h" 86 const Real a = .585410196624969;
87 const Real b = .138196601125011;
204 const Real rule_data[3][4] = {
205 {0.250000000000000000e+00, 0., 0., -0.131555555555555556e-01},
206 {0.785714285714285714e+00, 0.714285714285714285e-01, 0., 0.762222222222222222e-02},
207 {0.399403576166799219e+00, 0., 0.100596423833200785e+00, 0.248888888888888889e-01}
219 libmesh_fallthrough();
236 const Real a[3] = {0.31088591926330060980,
237 0.092735250310891226402,
238 0.045503704125649649492};
242 const Real wt[3] = {0.018781320953002641800,
243 0.012248840519393658257,
244 0.0070910034628469110730};
247 for (
unsigned int i=0; i<2; ++i)
250 const unsigned int offset=4*i;
253 const Real b = 1. - 3.*a[i];
263 for (
unsigned int j=0; j<4; ++j)
270 const unsigned int offset = 8;
271 const Real b = 0.5*(1. - 2.*a[2]);
283 for (
unsigned int j=0; j<6; ++j)
405 const Real rule_data[4][4] = {
406 {0.356191386222544953e+00 , 0.214602871259151684e+00 , 0., 0.00665379170969464506e+00},
407 {0.877978124396165982e+00 , 0.0406739585346113397e+00, 0., 0.00167953517588677620e+00},
408 {0.0329863295731730594e+00, 0.322337890142275646e+00 , 0., 0.00922619692394239843e+00},
409 {0.0636610018750175299e+00, 0.269672331458315867e+00 , 0.603005664791649076e+00, 0.00803571428571428248e+00}
436 const Real rule_data[7][4] = {
437 {0.250000000000000000e+00, 0., 0., -0.393270066412926145e-01},
438 {0.617587190300082967e+00, 0.127470936566639015e+00, 0., 0.408131605934270525e-02},
439 {0.903763508822103123e+00, 0.320788303926322960e-01, 0., 0.658086773304341943e-03},
440 {0.497770956432810185e-01, 0., 0.450222904356718978e+00, 0.438425882512284693e-02},
441 {0.183730447398549945e+00, 0., 0.316269552601450060e+00, 0.138300638425098166e-01},
442 {0.231901089397150906e+00, 0.229177878448171174e-01, 0.513280033360881072e+00, 0.424043742468372453e-02},
443 {0.379700484718286102e-01, 0.730313427807538396e+00, 0.193746475248804382e+00, 0.223873973961420164e-02}
455 libmesh_fallthrough();
virtual void init(const ElemType type=INVALID_ELEM, unsigned int p_level=0)
Initializes the data structures for a quadrature rule for an element of type type.
ElemType
Defines an enum for geometric element types.
virtual void init_3D(const ElemType, unsigned int) override
Initializes the 3D quadrature rule by filling the points and weights vectors with the appropriate val...
bool allow_rules_with_negative_weights
Flag (default true) controlling the use of quadrature rules with negative weights.
ElemType _type
The type of element for which the current values have been computed.
const std::vector< Real > & get_weights() const
The libMesh namespace provides an interface to certain functionality in the library.
std::vector< Point > _points
The locations of the quadrature points in reference element space.
std::vector< Real > _weights
The quadrature weights.
void tensor_product_prism(const QBase &q1D, const QBase &q2D)
Computes the tensor product of a 1D quadrature rule and a 2D quadrature rule.
unsigned int _p_level
The p-level of the element for which the current values have been computed.
void tensor_product_hex(const QBase &q1D)
Computes the tensor product quadrature rule [q1D x q1D x q1D] from the 1D rule q1D.
This class implements the so-called conical product quadrature rules for Tri and Tet elements...
This class implements the Grundmann-Moller quadrature rules for tetrahedra.
std::string enum_to_string(const T e)
Order _order
The polynomial order which the quadrature rule is capable of integrating exactly. ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void keast_rule(const Real rule_data[][4], const unsigned int n_pts)
The Keast rules are for tets.
const std::vector< Point > & get_points() const
This class implements specific orders of Gauss quadrature.
A Point defines a location in LIBMESH_DIM dimensional Real space.