12 #ifndef MFEM_QUADINTERP
13 #define MFEM_QUADINTERP
98 void Mult(
const Vector &e_vec,
unsigned eval_flags,
119 template<const
int T_VDIM = 0, const
int T_ND = 0, const
int T_NQ = 0>
120 static void Eval2D(
const int NE,
127 const int eval_flags);
130 template<const
int T_VDIM = 0, const
int T_ND = 0, const
int T_NQ = 0>
131 static void Eval3D(
const int NE,
138 const int eval_flags);
Class for an integration rule - an Array of IntegrationPoint.
static const int MAX_ND2D
const FiniteElementSpace * fespace
Not owned.
static const int MAX_NQ3D
Evaluate the derivatives at quadrature points.
void SetOutputLayout(QVectorLayout out_layout) const
Set the desired output Q-vector layout. The default value is QVectorLayout::byNODES.
static const int MAX_ND3D
void DisableTensorProducts(bool disable=true) const
Disable the use of tensor product evaluations, for tensor-product elements, e.g. quads and hexes...
QVectorLayout GetOutputLayout() const
Query the current output Q-vector layout. The default value is QVectorLayout::byNODES.
QVectorLayout q_layout
Output Q-vector layout.
A class that performs interpolation from an E-vector to quadrature point values and/or derivatives (Q...
const IntegrationRule * IntRule
Not owned.
static const int MAX_VDIM2D
QuadratureInterpolator(const FiniteElementSpace &fes, const IntegrationRule &ir)
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void PhysDerivatives(const Vector &e_vec, Vector &q_der) const
Interpolate the derivatives in physical space of the E-vector e_vec at quadrature points...
static void Eval2D(const int NE, const int vdim, const DofToQuad &maps, const Vector &e_vec, Vector &q_val, Vector &q_der, Vector &q_det, const int eval_flags)
Template compute kernel for 2D.
Structure representing the matrices/tensors needed to evaluate (in reference space) the values...
Assuming the derivative at quadrature points form a matrix, this flag can be used to compute and stor...
QVectorLayout
Type describing possible layouts for Q-vectors.
static void Eval3D(const int NE, const int vdim, const DofToQuad &maps, const Vector &e_vec, Vector &q_val, Vector &q_der, Vector &q_det, const int eval_flags)
Template compute kernel for 3D.
static const int MAX_VDIM3D
void Mult(const Vector &e_vec, unsigned eval_flags, Vector &q_val, Vector &q_der, Vector &q_det) const
Interpolate the E-vector e_vec to quadrature points.
void Derivatives(const Vector &e_vec, Vector &q_der) const
Interpolate the derivatives of the E-vector e_vec at quadrature points.
static const int MAX_NQ2D
Class representing the storage layout of a QuadratureFunction.
void Values(const Vector &e_vec, Vector &q_val) const
Interpolate the values of the E-vector e_vec at quadrature points.
void MultTranspose(unsigned eval_flags, const Vector &q_val, const Vector &q_der, Vector &e_vec) const
Perform the transpose operation of Mult(). (TODO)
Evaluate the values at quadrature points.
const QuadratureSpace * qspace
Not owned.