16#ifndef dealii_matrix_free_util_h
17#define dealii_matrix_free_util_h
34 namespace MatrixFreeFunctions
44 const bool do_assert =
true)
46 if (dim == 2 || dim == 3)
48 for (
unsigned int i = 1; i <= 4; ++i)
50 return {ReferenceCells::get_simplex<dim>(),
54 for (
unsigned int i = 1; i <= 5; ++i)
56 return {ReferenceCells::get_simplex<dim>(),
62 for (
unsigned int i = 1; i <= 3; ++i)
74 for (
unsigned int i = 1; i <= 2; ++i)
87 for (
unsigned int i = 1; i <= 5; ++i)
89 return {ReferenceCells::get_hypercube<dim>(),
115 "There is nothing useful you can do with a MatrixFree/FEEvaluation "
116 "object when using a quadrature formula with zero "
117 "quadrature points!"));
119 if (dim == 2 || dim == 3)
121 for (
unsigned int i = 1; i <= 4; ++i)
131 for (
unsigned int i = 1; i <= 5; ++i)
144 for (
unsigned int i = 1; i <= 3; ++i)
149 for (
unsigned int i = 1; i <= 2; ++i)
155 for (
unsigned int i = 1; i <= 5; ++i)
167 unsigned int vectorization_length_bits = 0;
168 unsigned int my_length = vectorization_length;
169 while (my_length >>= 1)
170 ++vectorization_length_bits;
171 return 1 << vectorization_length_bits;
unsigned int size() const
#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)