17#ifndef dealii_matrix_free_mapping_info_h
18#define dealii_matrix_free_mapping_info_h
47 namespace MatrixFreeFunctions
55 template <
int dim,
typename Number,
typename VectorizedArrayType>
68 const ::Triangulation<dim> &
tria,
69 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
70 const FaceInfo<VectorizedArrayType::size()> & face_info,
71 const std::vector<unsigned int> &active_fe_index,
87 const ::Triangulation<dim> &
tria,
88 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
89 const FaceInfo<VectorizedArrayType::size()> & face_info,
90 const std::vector<unsigned int> &active_fe_index,
115 template <
typename StreamType>
167 std::vector<std::array<GeometryType, GeometryInfo<dim>::faces_per_cell>>
173 std::vector<MappingInfoStorage<dim, dim, VectorizedArrayType>>
cell_data;
227 const ::Triangulation<dim> &
tria,
228 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
229 const FaceInfo<VectorizedArrayType::size()> & face_info);
237 const ::Triangulation<dim> &
tria,
238 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
239 const std::vector<unsigned int> & active_fe_index,
240 const ::hp::MappingCollection<dim> &
mapping);
248 const ::Triangulation<dim> &
tria,
249 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
252 const std::vector<unsigned int> & active_fe_index,
253 const ::hp::MappingCollection<dim> &
mapping);
261 const ::Triangulation<dim> &
tria,
262 const std::vector<std::pair<unsigned int, unsigned int>> &cells,
263 const FaceInfo<VectorizedArrayType::size()> & face_info,
264 const ::hp::MappingCollection<dim> &
mapping);
273 template <
int,
typename,
bool,
typename>
276 template <
int dim,
typename Number,
typename VectorizedArrayType>
281 const unsigned int quad_no)
288 template <
int dim,
typename Number,
typename VectorizedArrayType>
293 const unsigned int quad_no)
313 template <
typename Number,
324 const std::vector<Number> &v2)
const;
332 const Tensor<1, VectorizedArrayType::size(), Number> &t1,
333 const Tensor<1, VectorizedArrayType::size(), Number> &t2)
const;
342 const Tensor<1, dim,
Tensor<1, VectorizedArrayType::size(), Number>>
344 const Tensor<1, dim,
Tensor<1, VectorizedArrayType::size(), Number>>
354 const Tensor<2, dim,
Tensor<1, VectorizedArrayType::size(), Number>>
356 const Tensor<2, dim,
Tensor<1, VectorizedArrayType::size(), Number>>
374 template <
int dim,
typename Number,
typename VectorizedArrayType>
377 const unsigned int cell_no)
const
380 return cell_type[cell_no];
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define AssertIndexRange(index, range)
bool operator()(const std::vector< Number > &v1, const std::vector< Number > &v2) const
FPArrayComparator(const Number scaling)
bool operator()(const std::array< Tensor< 2, dim, Number >, dim+1 > &t1, const std::array< Tensor< 2, dim, Number >, dim+1 > &t2) const
bool operator()(const Tensor< 1, dim, Tensor< 1, VectorizedArrayType::size(), Number > > &t1, const Tensor< 1, dim, Tensor< 1, VectorizedArrayType::size(), Number > > &t2) const
bool operator()(const Tensor< 1, VectorizedArrayType::size(), Number > &t1, const Tensor< 1, VectorizedArrayType::size(), Number > &t2) const
bool operator()(const Tensor< 2, dim, Tensor< 1, VectorizedArrayType::size(), Number > > &t1, const Tensor< 2, dim, Tensor< 1, VectorizedArrayType::size(), Number > > &t2) const
static const MappingInfoStorage< dim, dim, VectorizedArrayType > & get(const MappingInfo< dim, Number, VectorizedArrayType > &mapping_info, const unsigned int quad_no)
static const MappingInfoStorage< dim - 1, dim, VectorizedArrayType > & get(const MappingInfo< dim, Number, VectorizedArrayType > &mapping_info, const unsigned int quad_no)
void compute_mapping_q(const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const FaceInfo< VectorizedArrayType::size()> &face_info)
void initialize_faces(const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const std::vector< FaceToCellTopology< VectorizedArrayType::size()> > &faces, const std::vector< unsigned int > &active_fe_index, const ::hp::MappingCollection< dim > &mapping)
std::shared_ptr<::hp::MappingCollection< dim > > mapping_collection
GeometryType get_cell_type(const unsigned int cell_chunk_no) const
void initialize_cells(const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const std::vector< unsigned int > &active_fe_index, const ::hp::MappingCollection< dim > &mapping)
std::vector< GeometryType > cell_type
UpdateFlags update_flags_inner_faces
std::vector< GeometryType > face_type
std::size_t memory_consumption() const
UpdateFlags update_flags_boundary_faces
std::vector< std::array< GeometryType, GeometryInfo< dim >::faces_per_cell > > faces_by_cells_type
std::vector< std::vector<::ReferenceCell > > reference_cell_types
std::vector< MappingInfoStorage< dim, dim, VectorizedArrayType > > cell_data
UpdateFlags update_flags_cells
UpdateFlags update_flags_faces_by_cells
void initialize_faces_by_cells(const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const FaceInfo< VectorizedArrayType::size()> &face_info, const ::hp::MappingCollection< dim > &mapping)
SmartPointer< const Mapping< dim > > mapping
void initialize(const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const FaceInfo< VectorizedArrayType::size()> &face_info, const std::vector< unsigned int > &active_fe_index, const std::shared_ptr<::hp::MappingCollection< dim > > &mapping, const std::vector<::hp::QCollection< dim > > &quad, const UpdateFlags update_flags_cells, const UpdateFlags update_flags_boundary_faces, const UpdateFlags update_flags_inner_faces, const UpdateFlags update_flags_faces_by_cells)
void update_mapping(const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const FaceInfo< VectorizedArrayType::size()> &face_info, const std::vector< unsigned int > &active_fe_index, const std::shared_ptr<::hp::MappingCollection< dim > > &mapping)
void print_memory_consumption(StreamType &out, const TaskInfo &task_info) const
std::vector< MappingInfoStorage< dim - 1, dim, VectorizedArrayType > > face_data_by_cells
std::vector< MappingInfoStorage< dim - 1, dim, VectorizedArrayType > > face_data
const ::Triangulation< dim, spacedim > & tria