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] <<
"!");
virtual std::unique_ptr< QBase > clone() const override
void wissmann_rule(const Real rule_data[][3], const unsigned int n_pts)
Wissmann published three interesting "partially symmetric" rules for integrating degree 4...
QuadratureType
Defines an enum for currently available quadrature rules.
The libMesh namespace provides an interface to certain functionality in the library.
virtual QuadratureType type() const override
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.
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.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
A Point defines a location in LIBMESH_DIM dimensional Real space.