17#ifndef dealii_matrix_free_util_h
18#define dealii_matrix_free_util_h
35 namespace MatrixFreeFunctions
45 const bool do_assert =
true)
47 if (dim == 2 || dim == 3)
49 for (
unsigned int i = 1; i <= 4; ++i)
51 return {ReferenceCells::get_simplex<dim>(),
55 for (
unsigned int i = 1; i <= 5; ++i)
57 return {ReferenceCells::get_simplex<dim>(),
63 for (
unsigned int i = 1; i <= 3; ++i)
75 for (
unsigned int i = 1; i <= 2; ++i)
88 for (
unsigned int i = 1; i <= 5; ++i)
90 return {ReferenceCells::get_hypercube<dim>(),
116 "There is nothing useful you can do with a MatrixFree/FEEvaluation "
117 "object when using a quadrature formula with zero "
118 "quadrature points!"));
120 if (dim == 2 || dim == 3)
122 for (
unsigned int i = 1; i <= 4; ++i)
132 for (
unsigned int i = 1; i <= 5; ++i)
145 for (
unsigned int i = 1; i <= 3; ++i)
150 for (
unsigned int i = 1; i <= 2; ++i)
156 for (
unsigned int i = 1; i <= 5; ++i)
168 unsigned int vectorization_length_bits = 0;
169 unsigned int my_length = vectorization_length;
170 while (my_length >>= 1)
171 ++vectorization_length_bits;
172 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)