14#ifndef dealii_matrix_free_util_h
15#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>(),
60 for (
unsigned int i = 1; i <= 3; ++i)
64 return {ReferenceCells::get_simplex<dim>(),
70 if constexpr (dim == 3)
71 for (
unsigned int i = 1; i <= 3; ++i)
82 if constexpr (dim == 3)
83 for (
unsigned int i = 1; i <= 2; ++i)
96 for (
unsigned int i = 1; i <= 5; ++i)
98 return {ReferenceCells::get_hypercube<dim>(),
124 "There is nothing useful you can do with a MatrixFree/FEEvaluation "
125 "object when using a quadrature formula with zero "
126 "quadrature points!"));
128 if (dim == 2 || dim == 3)
130 for (
unsigned int i = 1; i <= 4; ++i)
140 for (
unsigned int i = 1; i <= 5; ++i)
151 for (
unsigned int i = 1; i <= 3; ++i)
169 for (
unsigned int i = 1; i <= 3; ++i)
174 for (
unsigned int i = 1; i <= 2; ++i)
180 for (
unsigned int i = 1; i <= 5; ++i)
192 unsigned int vectorization_length_bits = 0;
193 unsigned int my_length = vectorization_length;
194 while (my_length >>= 1)
195 ++vectorization_length_bits;
196 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 ReferenceCell< 3 > Pyramid
constexpr ReferenceCell< 3 > Wedge
unsigned int indicate_power_of_two(const unsigned int vectorization_length)
std::pair< ReferenceCell< dim >, ::hp::QCollection< dim - 1 > > get_face_quadrature_collection(const Quadrature< dim > &quad, const bool do_assert=true)
std::pair< Quadrature< dim - 1 >, Quadrature< dim - 1 > > get_unique_face_quadratures(const Quadrature< dim > &quad)