Reference documentation for deal.II version 9.0.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
internal::MatrixFreeFunctions::MappingInfo< dim, Number > Struct Template Reference

#include <deal.II/matrix_free/mapping_info.h>

Public Member Functions

 MappingInfo ()
 
void initialize (const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const FaceInfo< VectorizedArray< Number >::n_array_elements > &faces, const std::vector< unsigned int > &active_fe_index, const Mapping< dim > &mapping, const std::vector<::hp::QCollection< 1 > > &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)
 
GeometryType get_cell_type (const unsigned int cell_chunk_no) const
 
void clear ()
 
std::size_t memory_consumption () const
 
template<typename StreamType >
void print_memory_consumption (StreamType &out, const TaskInfo &task_info) 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 Mapping< dim > &mapping, const std::vector<::hp::QCollection< 1 > > &quad, const UpdateFlags update_flags_cells)
 
void initialize_faces (const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const std::vector< FaceToCellTopology< VectorizedArray< Number >::n_array_elements > > &faces, const Mapping< dim > &mapping, const std::vector<::hp::QCollection< 1 > > &quad, const UpdateFlags update_flags_boundary_faces, const UpdateFlags update_flags_inner_faces)
 
void initialize_faces_by_cells (const ::Triangulation< dim > &tria, const std::vector< std::pair< unsigned int, unsigned int > > &cells, const Mapping< dim > &mapping, const std::vector<::hp::QCollection< 1 > > &quad, const UpdateFlags update_flags_faces_by_cells)
 

Static Public Member Functions

static UpdateFlags compute_update_flags (const UpdateFlags update_flags, const std::vector<::hp::QCollection< 1 > > &quad=std::vector<::hp::QCollection< 1 > >())
 

Public Attributes

std::vector< GeometryTypecell_type
 
std::vector< GeometryTypeface_type
 
std::vector< MappingInfoStorage< dim, dim, Number > > cell_data
 
std::vector< MappingInfoStorage< dim-1, dim, Number > > face_data
 
std::vector< MappingInfoStorage< dim-1, dim, Number > > face_data_by_cells
 

Detailed Description

template<int dim, typename Number>
struct internal::MatrixFreeFunctions::MappingInfo< dim, Number >

The class that stores all geometry-dependent data related with cell interiors for use in the matrix-free class.

Author
Katharina Kormann and Martin Kronbichler, 2010, 2011, 2017

Definition at line 282 of file mapping_info.h.

Constructor & Destructor Documentation

◆ MappingInfo()

template<int dim, typename Number>
internal::MatrixFreeFunctions::MappingInfo< dim, Number >::MappingInfo ( )

Empty constructor.

Member Function Documentation

◆ initialize()

template<int dim, typename Number>
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::initialize ( const ::Triangulation< dim > &  tria,
const std::vector< std::pair< unsigned int, unsigned int > > &  cells,
const FaceInfo< VectorizedArray< Number >::n_array_elements > &  faces,
const std::vector< unsigned int > &  active_fe_index,
const Mapping< dim > &  mapping,
const std::vector<::hp::QCollection< 1 > > &  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 
)

Compute the information in the given cells and faces. The cells are specified by the level and the index within the level (as given by CellIterator::level() and CellIterator::index(), in order to allow for different kinds of iterators, e.g. standard DoFHandler, multigrid, etc.) on a fixed Triangulation. In addition, a mapping and several quadrature formulas are given.

◆ get_cell_type()

template<int dim, typename Number >
GeometryType internal::MatrixFreeFunctions::MappingInfo< dim, Number >::get_cell_type ( const unsigned int  cell_chunk_no) const
inline

Return the type of a given cell as detected during initialization.

Definition at line 498 of file mapping_info.h.

◆ clear()

template<int dim, typename Number>
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::clear ( )

Clear all data fields in this class.

◆ memory_consumption()

template<int dim, typename Number>
std::size_t internal::MatrixFreeFunctions::MappingInfo< dim, Number >::memory_consumption ( ) const

Return the memory consumption of this class in bytes.

◆ print_memory_consumption()

template<int dim, typename Number>
template<typename StreamType >
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::print_memory_consumption ( StreamType &  out,
const TaskInfo task_info 
) const

Prints a detailed summary of memory consumption in the different structures of this class to the given output stream.

◆ initialize_cells()

template<int dim, typename Number>
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::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 Mapping< dim > &  mapping,
const std::vector<::hp::QCollection< 1 > > &  quad,
const UpdateFlags  update_flags_cells 
)

Computes the information in the given cells, called within initialize.

◆ initialize_faces()

template<int dim, typename Number>
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::initialize_faces ( const ::Triangulation< dim > &  tria,
const std::vector< std::pair< unsigned int, unsigned int > > &  cells,
const std::vector< FaceToCellTopology< VectorizedArray< Number >::n_array_elements > > &  faces,
const Mapping< dim > &  mapping,
const std::vector<::hp::QCollection< 1 > > &  quad,
const UpdateFlags  update_flags_boundary_faces,
const UpdateFlags  update_flags_inner_faces 
)

Computes the information in the given faces, called within initialize.

◆ initialize_faces_by_cells()

template<int dim, typename Number>
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::initialize_faces_by_cells ( const ::Triangulation< dim > &  tria,
const std::vector< std::pair< unsigned int, unsigned int > > &  cells,
const Mapping< dim > &  mapping,
const std::vector<::hp::QCollection< 1 > > &  quad,
const UpdateFlags  update_flags_faces_by_cells 
)

Computes the information in the given faces, called within initialize.

◆ compute_update_flags()

template<int dim, typename Number>
static UpdateFlags internal::MatrixFreeFunctions::MappingInfo< dim, Number >::compute_update_flags ( const UpdateFlags  update_flags,
const std::vector<::hp::QCollection< 1 > > &  quad = std::vector<::hp::QCollection< 1 > >() 
)
static

Helper function to determine which update flags must be set in the internal functions to initialize all data as requested by the user.

Member Data Documentation

◆ cell_type

template<int dim, typename Number>
std::vector<GeometryType> internal::MatrixFreeFunctions::MappingInfo< dim, Number >::cell_type

Stores whether a cell is Cartesian (cell type 0), has constant transform data (Jacobians) (cell type 1), or is general (cell type 3). Type 2 is only used for faces and no cells are assigned this value.

Definition at line 337 of file mapping_info.h.

◆ face_type

template<int dim, typename Number>
std::vector<GeometryType> internal::MatrixFreeFunctions::MappingInfo< dim, Number >::face_type

Stores whether a face (and both cells adjacent to the face) is Cartesian (face type 0), whether it represents an affine situation (face type 1), whether it is a flat face where the normal vector is the same throughout the face (face type 2), or is general (face type 3).

Definition at line 346 of file mapping_info.h.

◆ cell_data

template<int dim, typename Number>
std::vector<MappingInfoStorage<dim,dim,Number> > internal::MatrixFreeFunctions::MappingInfo< dim, Number >::cell_data

The data cache for the cells.

Definition at line 351 of file mapping_info.h.

◆ face_data

template<int dim, typename Number>
std::vector<MappingInfoStorage<dim-1,dim,Number> > internal::MatrixFreeFunctions::MappingInfo< dim, Number >::face_data

The data cache for the faces.

Definition at line 356 of file mapping_info.h.

◆ face_data_by_cells

template<int dim, typename Number>
std::vector<MappingInfoStorage<dim-1,dim,Number> > internal::MatrixFreeFunctions::MappingInfo< dim, Number >::face_data_by_cells

The data cache for the face-associated-with-cell topology, following the cell_type variable for the cell types.

Definition at line 362 of file mapping_info.h.


The documentation for this struct was generated from the following file: