17#ifndef dealii_matrix_free_shape_info_h
18#define dealii_matrix_free_shape_info_h
34 namespace MatrixFreeFunctions
112 template <
typename Number>
313 template <
typename Number>
331 template <
int dim,
int dim_q>
334 const unsigned int base_element = 0);
344 template <
int dim,
int dim_q>
348 const unsigned int base_element = 0);
353 template <
int dim,
int spacedim>
365 const unsigned int component = 0)
const;
386 std::vector<UnivariateShapeData<Number>>
data;
543 template <
typename Number>
544 template <
int dim,
int dim_q>
547 const unsigned int base_element_number)
552 , dofs_per_component_on_cell(0)
554 , dofs_per_component_on_face(0)
556 reinit(quad, fe_in, base_element_number);
559 template <
typename Number>
562 const unsigned int component)
const
568 return *(data_access(dimension, component));
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define AssertDimension(dim1, dim2)
#define AssertIndexRange(index, range)
@ tensor_symmetric_collocation
@ tensor_symmetric_plus_dg0
@ tensor_symmetric_hermite
unsigned int n_q_points_face
unsigned int n_dimensions
unsigned int dofs_per_component_on_cell
std::size_t memory_consumption() const
::Table< 2, unsigned int > face_to_cell_index_nodal
static bool is_supported(const FiniteElement< dim, spacedim > &fe)
bool check_1d_shapes_collocation(const UnivariateShapeData< Number > &univariate_shape_data) const
std::vector< UnivariateShapeData< Number > > data
ShapeInfo(const Quadrature< dim_q > &quad, const FiniteElement< dim > &fe, const unsigned int base_element=0)
::Table< 2, unsigned int > face_orientations
const UnivariateShapeData< Number > & get_shape_data(const unsigned int dimension=0, const unsigned int component=0) const
unsigned int n_components
std::vector< unsigned int > lexicographic_numbering
::Table< 2, unsigned int > face_to_cell_index_hermite
unsigned int dofs_per_component_on_face
void reinit(const Quadrature< dim_q > &quad, const FiniteElement< dim > &fe_dim, const unsigned int base_element=0)
std::vector< unsigned int > n_q_points_faces
::Table< 2, UnivariateShapeData< Number > * > data_access
bool check_1d_shapes_symmetric(UnivariateShapeData< Number > &univariate_shape_data)
AlignedVector< Number > inverse_shape_values
AlignedVector< Number > shape_values
AlignedVector< Number > shape_hessians_collocation
std::array< AlignedVector< Number >, 2 > shape_data_on_face
AlignedVector< Number > shape_values_eo
AlignedVector< Number > inverse_shape_values_eo
Table< 4, Number > shape_gradients_face
AlignedVector< Number > shape_hessians_eo
std::size_t memory_consumption() const
AlignedVector< Number > shape_gradients_collocation_eo
unsigned int n_q_points_1d
AlignedVector< Number > shape_gradients_eo
AlignedVector< Number > shape_hessians
AlignedVector< Number > shape_gradients
std::array< AlignedVector< Number >, 2 > hessians_within_subface
std::array< AlignedVector< Number >, 2 > values_within_subface
std::array< AlignedVector< Number >, 2 > quadrature_data_on_face
AlignedVector< Number > shape_gradients_collocation
Quadrature< 1 > quadrature
bool nodal_at_cell_boundaries
Table< 3, Number > shape_values_face
AlignedVector< Number > shape_hessians_collocation_eo
std::array< AlignedVector< Number >, 2 > gradients_within_subface