20#include "libmesh/quadrature_monomial.h"
21#include "libmesh/enum_quadrature_type.h"
39 return std::make_unique<QMonomial>(*
this);
43 const unsigned int n_pts)
45 for (
unsigned int i=0, c=0; i<n_pts; ++i)
52 if (rule_data[i][0] !=
static_cast<Real>(0.0))
63 const unsigned int * rule_symmetry,
64 const unsigned int n_pts)
66 for (
unsigned int i=0, c=0; i<n_pts; ++i)
73 switch(rule_symmetry[i])
128 libmesh_assert_equal_to (y, 0.0);
162 libmesh_assert_not_equal_to (x, 0.0);
190 libmesh_assert_equal_to (x, 0.0);
191 libmesh_assert_not_equal_to (y, 0.0);
202 libmesh_error_msg(
"Unknown symmetry!");
211 const unsigned int * rule_id,
212 const unsigned int n_pts)
214 for (
unsigned int i=0, c=0; i<n_pts; ++i)
359 libmesh_error_msg(
"Unknown rule ID: " << rule_id[i] <<
"!");
A Point defines a location in LIBMESH_DIM dimensional Real space.
std::vector< Point > _points
The locations of the quadrature points in reference element space.
std::vector< Real > _weights
The quadrature weights.
void kim_rule(const Real rule_data[][4], const unsigned int *rule_id, const unsigned int n_pts)
Rules from Kim and Song, Comm.
virtual std::unique_ptr< QBase > clone() const override
void stroud_rule(const Real rule_data[][3], const unsigned int *rule_symmetry, const unsigned int n_pts)
Stroud's rules for quads and hexes can have one of several different types of symmetry.
void wissmann_rule(const Real rule_data[][3], const unsigned int n_pts)
Wissmann published three interesting "partially symmetric" rules for integrating degree 4,...
virtual QuadratureType type() const override
The libMesh namespace provides an interface to certain functionality in the library.
QuadratureType
Defines an enum for currently available quadrature rules.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real