17 #ifndef dealii_matrix_free_shape_info_h
18 #define dealii_matrix_free_shape_info_h
34 template <
int dim,
int spacedim>
40 namespace MatrixFreeFunctions
133 template <
typename Number>
156 template <
int dim,
int spacedim>
160 const std::vector<unsigned int> &lexicographic,
161 const unsigned int direction);
169 template <
int dim,
int spacedim>
173 const std::vector<unsigned int> &lexicographic,
174 const unsigned int direction);
339 std::array<
AlignedVector<typename ::internal::VectorizedArrayTrait<
340 Number>::value_type>,
393 template <
typename Number>
411 template <
int dim,
int spacedim,
int dim_q>
414 const unsigned int base_element = 0);
424 template <
int dim,
int spacedim,
int dim_q>
428 const unsigned int base_element = 0);
446 template <
int dim,
int spacedim>
465 const unsigned int component = 0)
const;
486 std::vector<UnivariateShapeData<Number>>
data;
632 template <
typename Number>
635 const unsigned int component)
const
641 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_no_collocation
@ 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
ShapeInfo(const Quadrature< dim_q > &quad, const FiniteElement< dim, spacedim > &fe, const unsigned int base_element=0)
::Table< 2, unsigned int > face_to_cell_index_nodal
void reinit(const Quadrature< dim_q > &quad, const FiniteElement< dim, spacedim > &fe_dim, const unsigned int base_element=0)
static bool is_supported(const FiniteElement< dim, spacedim > &fe)
::Table< 2, unsigned int > face_orientations_dofs
std::vector< UnivariateShapeData< Number > > data
::Table< 2, unsigned int > face_orientations_quad
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
std::vector< unsigned int > n_q_points_faces
::Table< 2, UnivariateShapeData< Number > * > data_access
static Table< 2, unsigned int > compute_orientation_table(const unsigned int n_points_per_dim)
AlignedVector< Number > inverse_shape_values
void evaluate_collocation_space(const FiniteElement< dim, spacedim > &fe, const Quadrature< 1 > &quad, const std::vector< unsigned int > &lexicographic, const unsigned int direction)
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
std::array< AlignedVector< typename ::internal::VectorizedArrayTrait< Number >::value_type >, 2 > subface_interpolation_matrices_scalar
AlignedVector< Number > shape_hessians_eo
bool check_and_set_shapes_symmetric()
std::size_t memory_consumption() const
AlignedVector< Number > shape_gradients_collocation_eo
unsigned int n_q_points_1d
AlignedVector< Number > shape_gradients_eo
std::array< AlignedVector< Number >, 2 > subface_interpolation_matrices
bool check_shapes_collocation() const
void evaluate_shape_functions(const FiniteElement< dim, spacedim > &fe, const Quadrature< 1 > &quad, const std::vector< unsigned int > &lexicographic, const unsigned int direction)
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