16#ifndef dealii_matrix_free_util_h
17#define dealii_matrix_free_util_h
36 namespace MatrixFreeFunctions
48 if (dim == 2 || dim == 3)
50 for (
unsigned int i = 1; i <= 4; ++i)
52 return {ReferenceCells::get_simplex<dim>(),
56 for (
unsigned int i = 1; i <= 5; ++i)
58 return {ReferenceCells::get_simplex<dim>(),
62 for (
unsigned int i = 1; i <= 3; ++i)
66 return {ReferenceCells::get_simplex<dim>(),
68 fe.get_unit_face_support_points()))};
73 for (
unsigned int i = 1; i <= 3; ++i)
85 for (
unsigned int i = 1; i <= 2; ++i)
98 for (
unsigned int i = 1; i <= 5; ++i)
100 return {ReferenceCells::get_hypercube<dim>(),
126 "There is nothing useful you can do with a MatrixFree/FEEvaluation "
127 "object when using a quadrature formula with zero "
128 "quadrature points!"));
130 if (dim == 2 || dim == 3)
132 for (
unsigned int i = 1; i <= 4; ++i)
142 for (
unsigned int i = 1; i <= 5; ++i)
153 for (
unsigned int i = 1; i <= 3; ++i)
160 fe.get_unit_face_support_points()),
165 fe.get_unit_face_support_points())};
171 for (
unsigned int i = 1; i <= 3; ++i)
176 for (
unsigned int i = 1; i <= 2; ++i)
182 for (
unsigned int i = 1; i <= 5; ++i)
195 unsigned int my_length = vectorization_length;
#define DEAL_II_ALWAYS_INLINE
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNotImplemented()
static ::ExceptionBase & ExcMessage(std::string arg1)
#define AssertThrow(cond, exc)
constexpr const ReferenceCell Wedge
constexpr const ReferenceCell Pyramid
constexpr const ReferenceCell Invalid
unsigned int indicate_power_of_two(const unsigned int vectorization_length)
std::pair< Quadrature< dim - 1 >, Quadrature< dim - 1 > > get_unique_face_quadratures(const Quadrature< dim > &quad)
std::pair< ReferenceCell, ::hp::QCollection< dim - 1 > > get_face_quadrature_collection(const Quadrature< dim > &quad, const bool do_assert=true)