16#ifndef dealii_matrix_free_util_h
17#define dealii_matrix_free_util_h
36 namespace MatrixFreeFunctions
46 const bool do_assert =
true)
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>(),
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)
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)
194 unsigned int vectorization_length_bits = 0;
195 unsigned int my_length = vectorization_length;
196 while (my_length >>= 1)
197 ++vectorization_length_bits;
198 return 1 << vectorization_length_bits;
const std::vector< Point< dim > > & get_unit_support_points() const
const std::vector< Point< dim - 1 > > & get_unit_face_support_points(const unsigned int face_no=0) const
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)