17 #ifndef dealii_matrix_free_mapping_info_h 18 #define dealii_matrix_free_mapping_info_h 21 #include <deal.II/base/aligned_vector.h> 22 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/vectorization.h> 25 #include <deal.II/fe/fe.h> 26 #include <deal.II/fe/mapping.h> 28 #include <deal.II/hp/q_collection.h> 30 #include <deal.II/matrix_free/face_info.h> 31 #include <deal.II/matrix_free/helper_functions.h> 36 DEAL_II_NAMESPACE_OPEN
41 namespace MatrixFreeFunctions
108 template <
int structdim,
int spacedim,
typename Number>
111 struct QuadratureDescriptor
116 QuadratureDescriptor();
134 unsigned int n_q_points;
145 std::array<AlignedVector<Number>, structdim> tensor_quadrature_weights;
226 spacedim *(spacedim + 1) / 2,
270 template <
typename StreamType>
292 template <
int dim,
typename Number>
310 const ::Triangulation<dim> & tria,
311 const std::vector<std::pair<unsigned int, unsigned int>> & cells,
313 const std::vector<unsigned int> & active_fe_index,
325 get_cell_type(
const unsigned int cell_chunk_no)
const;
343 template <
typename StreamType>
368 std::vector<MappingInfoStorage<dim, dim, Number>>
cell_data;
387 const ::Triangulation<dim> & tria,
388 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
389 const std::vector<unsigned int> & active_fe_index,
400 const ::Triangulation<dim> & tria,
401 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
414 initialize_faces_by_cells(
415 const ::Triangulation<dim> & tria,
416 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
426 compute_update_flags(
const UpdateFlags update_flags,
439 template <
int,
typename,
bool>
442 template <
int dim,
typename Number>
447 const unsigned int quad_no)
450 return &mapping_info.cell_data[quad_no];
454 template <
int dim,
typename Number>
459 const unsigned int quad_no)
462 return &mapping_info.face_data[quad_no];
479 template <
typename Number>
485 operator()(
const std::vector<Number> &v1,
486 const std::vector<Number> &v2)
const;
527 template <
int structdim,
int spacedim,
typename Number>
530 const unsigned int n_q_points)
const 532 for (
unsigned int i = 0; i <
descriptor.size(); ++i)
540 template <
int dim,
typename Number>
545 return cell_type[cell_no];
551 DEAL_II_NAMESPACE_CLOSE
AlignedVector< Tensor< 1, spacedim, VectorizedArray< Number > > > normals_times_jacobians[2]
AlignedVector< unsigned int > data_index_offsets
AlignedVector< Tensor< 1, spacedim *(spacedim+1)/2, Tensor< 1, spacedim, VectorizedArray< Number > > > > jacobian_gradients[2]
void print_memory_consumption(StreamType &out, const SizeInfo &task_info) const
AlignedVector< unsigned int > quadrature_point_offsets
#define AssertIndexRange(index, range)
std::vector< MappingInfoStorage< dim, dim, Number > > cell_data
std::vector< MappingInfoStorage< dim-1, dim, Number > > face_data_by_cells
GeometryType get_cell_type(const unsigned int cell_chunk_no) const
std::vector< GeometryType > face_type
std::vector< QuadratureDescriptor > descriptor
std::size_t memory_consumption() const
unsigned int quad_index_from_n_q_points(const unsigned int n_q_points) const
std::vector< MappingInfoStorage< dim-1, dim, Number > > face_data
AlignedVector< Point< spacedim, VectorizedArray< Number > > > quadrature_points
AlignedVector< Tensor< 1, spacedim, VectorizedArray< Number > > > normal_vectors
std::vector< GeometryType > cell_type
AlignedVector< Tensor< 2, spacedim, VectorizedArray< Number > > > jacobians[2]
AlignedVector< VectorizedArray< Number > > JxW_values