19namespace quadrature_interpolator
22void InitTensorEvalHDivKernels()
24 using k = QuadratureInterpolator::TensorEvalHDivKernels;
35 k::Specialization<2,LNODES,PV,2,2>::Add();
37 k::Specialization<2,LVDIM, PV,2,2>::Add();
38 k::Specialization<2,LVDIM, PV,3,3>::Add();
39 k::Specialization<2,LVDIM, PV,4,4>::Add();
40 k::Specialization<2,LVDIM, PV,5,5>::Add();
43 k::Specialization<3,LNODES,PV,2,3>::Add();
45 k::Specialization<3,LVDIM, PV,2,3>::Add();
46 k::Specialization<3,LVDIM, PV,3,4>::Add();
47 k::Specialization<3,LVDIM, PV,4,5>::Add();
48 k::Specialization<3,LVDIM, PV,5,6>::Add();
55 k::Specialization<2,LNODES,PM,2,2>::Add();
56 k::Specialization<2,LNODES,PM,3,3>::Add();
57 k::Specialization<2,LNODES,PM,4,4>::Add();
58 k::Specialization<2,LNODES,PM,5,5>::Add();
61 k::Specialization<3,LNODES,PM,2,3>::Add();
62 k::Specialization<3,LNODES,PM,3,4>::Add();
63 k::Specialization<3,LNODES,PM,4,5>::Add();
64 k::Specialization<3,LNODES,PM,5,6>::Add();
73QuadratureInterpolator::TensorEvalHDivKernels::Fallback(
76 using namespace internal::quadrature_interpolator;
77 MFEM_CONTRACT_VAR(D1D);
78 MFEM_CONTRACT_VAR(Q1D);
87 EvalHDiv2D<QVectorLayout::byNODES,RV> :
88 EvalHDiv2D<QVectorLayout::byVDIM,RV>;
93 EvalHDiv2D<QVectorLayout::byNODES,PV> :
94 EvalHDiv2D<QVectorLayout::byVDIM,PV>;
98 return EvalHDiv2D<QVectorLayout::byNODES,PM>;
106 EvalHDiv3D<QVectorLayout::byNODES,RV> :
107 EvalHDiv3D<QVectorLayout::byVDIM,RV>;
112 EvalHDiv3D<QVectorLayout::byNODES,PV> :
113 EvalHDiv3D<QVectorLayout::byVDIM,PV>;
117 return EvalHDiv3D<QVectorLayout::byNODES,PM>;
120 MFEM_ABORT(
"DIM = " <<
DIM <<
" is not implemented!");
@ VALUES
Evaluate the values at quadrature points.
void(*)(const int, const real_t *, const real_t *, const real_t *, const real_t *, real_t *, const int, const int) TensorEvalHDivKernelType
QVectorLayout
Type describing possible layouts for Q-vectors.