12#ifndef MFEM_QUADINTERPOLATOR_FACE
13#define MFEM_QUADINTERPOLATOR_FACE
93 void Mult(
const Vector &e_vec,
unsigned eval_flags,
102 template<const
int T_VDIM = 0, const
int T_ND = 0, const
int T_NQ = 0>
103 static void Eval2D(
const int NF,
113 const int eval_flags);
116 template<const
int T_VDIM = 0, const
int T_ND = 0, const
int T_NQ = 0>
117 static void Eval3D(
const int NF,
127 const int eval_flags);
129 template<const
int T_VDIM = 0, const
int T_ND = 0, const
int T_NQ = 0>
140 const int eval_flags);
Structure representing the matrices/tensors needed to evaluate (in reference space) the values,...
A class that performs interpolation from a face E-vector to quadrature point values and/or derivative...
@ DERIVATIVES
Evaluate the derivatives at quadrature points.
@ DETERMINANTS
Assuming the derivative at quadrature points form a matrix, this flag can be used to compute and stor...
@ VALUES
Evaluate the values at quadrature points.
void Values(const Vector &e_vec, Vector &q_val) const
Interpolate the values of the E-vector e_vec at quadrature points.
static const int MAX_NQ3D
static const int MAX_VDIM2D
static const int MAX_ND3D
const FiniteElementSpace * fespace
Not owned.
static const int MAX_NQ1D
void DisableTensorProducts(bool disable=true) const
Disable the use of tensor product evaluations, for tensor-product elements, e.g. quads and hexes.
static void Eval3D(const int NF, const int vdim, const QVectorLayout q_layout, const DofToQuad &maps, const Array< bool > &signs, const Vector &e_vec, Vector &q_val, Vector &q_der, Vector &q_det, Vector &q_nor, const int eval_flags)
Template compute kernel for 3D.
static const int MAX_ND2D
FaceQuadratureInterpolator(const FiniteElementSpace &fes, const IntegrationRule &ir, FaceType type)
QVectorLayout q_layout
Output Q-vector layout.
void SetOutputLayout(QVectorLayout layout) const
Set the desired output Q-vector layout. The default value is QVectorLayout::byNODES.
static const int MAX_VDIM3D
void Mult(const Vector &e_vec, unsigned eval_flags, Vector &q_val, Vector &q_der, Vector &q_det, Vector &q_nor) const
Interpolate the E-vector e_vec to quadrature points.
QVectorLayout GetOutputLayout() const
Query the current output Q-vector layout. The default value is QVectorLayout::byNODES.
const IntegrationRule * IntRule
Not owned.
static void SmemEval3D(const int NF, const int vdim, const QVectorLayout q_layout, const DofToQuad &maps, const Array< bool > &signs, const Vector &e_vec, Vector &q_val, Vector &q_der, Vector &q_det, Vector &q_nor, const int eval_flags)
static void Eval2D(const int NF, const int vdim, const QVectorLayout q_layout, const DofToQuad &maps, const Array< bool > &signs, const Vector &e_vec, Vector &q_val, Vector &q_der, Vector &q_det, Vector &q_nor, const int eval_flags)
Template compute kernel for 2D.
static const int MAX_ND1D
static const int MAX_NQ2D
static const int MAX_VDIM1D
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
Class for an integration rule - an Array of IntegrationPoint.
QVectorLayout
Type describing possible layouts for Q-vectors.