21#include "libmesh/quadrature_grid.h"
22#include "libmesh/enum_to_string.h"
78 auto add_point = [
this, &pt, weight, dx](
Real x,
Real y,
Real z)
85 for (
int i = 0; i !=
_order + 1; ++i)
87 for (
int j = 0; j !=
_order + 1 - i; ++j)
89 for (
int k = 0; k !=
_order + 1 - i - j; ++k)
109 add_point(ci-
Real(1)/4, cj, ck);
110 add_point(ci+
Real(1)/4, cj, ck);
111 add_point(ci, cj+
Real(1)/4, ck-
Real(1)/4);
112 add_point(ci, cj-
Real(1)/4, ck+
Real(1)/4);
119 if (i + j + k + 1 <
_order)
124 libmesh_assert_equal_to(pt, np);
190 auto add_point = [
this, &pt, weight, dz](
Real i,
Real j,
Real k)
192 _points[pt] =
Point((2*i+k)*dz - 1, (2*j+k)*dz - 1, k*dz);
197 for (
int k = 0; k !=
_order + 1; ++k)
199 const int m =
_order + 1 - k;
200 for (
int i = 0; i != m; ++i)
202 for (
int j = 0; j != m; ++j)
215 if (i + 1 < m && j + 1 < m)
235 libmesh_assert_equal_to(pt, np);
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.
ElemType _type
The type of element for which the current values have been computed.
std::vector< Real > _weights
The quadrature weights.
virtual void init(const Elem &e, unsigned int p_level=invalid_uint)
Initializes the data structures for a quadrature rule for the element e.
void tensor_product_prism(const QBase &q1D, const QBase &q2D)
Computes the tensor product of a 1D quadrature rule and a 2D quadrature rule.
void tensor_product_hex(const QBase &q1D)
Computes the tensor product quadrature rule [q1D x q1D x q1D] from the 1D rule q1D.
Order _order
The polynomial order which the quadrature rule is capable of integrating exactly.
This class creates quadrature points on a uniform grid with order+1 intervals per edge.
virtual void init_3D() override
Initializes the 3D quadrature rule by filling the points and weights vectors with the appropriate val...
std::string enum_to_string(const T e)
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real