![]() |
Reference documentation for deal.II version 8.1.0
|
#include <mapping_info.h>
Classes | |
struct | CellData |
struct | MappingInfoDependent |
Public Member Functions | |
MappingInfo () | |
void | initialize (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) |
UpdateFlags | compute_update_flags (const UpdateFlags update_flags, const std::vector<::hp::QCollection< 1 > > &quad) const |
CellType | get_cell_type (const unsigned int cell_chunk_no) const |
unsigned int | get_cell_data_index (const unsigned int cell_chunk_no) const |
void | clear () |
std::size_t | memory_consumption () const |
template<typename STREAM > | |
void | print_memory_consumption (STREAM &out, const SizeInfo &size_info) const |
void | evaluate_on_cell (const ::Triangulation< dim > &tria, const std::pair< unsigned int, unsigned int > *cells, const unsigned int cell, const unsigned int my_q, CellType(&cell_t_prev)[VectorizedArray< Number >::n_array_elements], CellType(&cell_t)[VectorizedArray< Number >::n_array_elements], FEValues< dim, dim > &fe_values, CellData &cell_data) const |
Public Attributes | |
std::vector< unsigned int > | cell_type |
AlignedVector< std::pair< Tensor< 1, dim, VectorizedArray< Number > >, VectorizedArray< Number > > > | cartesian_data |
AlignedVector< std::pair< Tensor< 2, dim, VectorizedArray< Number > >, VectorizedArray< Number > > > | affine_data |
std::vector< MappingInfoDependent > | mapping_data_gen |
bool | JxW_values_initialized |
bool | second_derivatives_initialized |
bool | quadrature_points_initialized |
Static Public Attributes | |
static const std::size_t | n_cell_type_bits = 2 |
static const unsigned int | n_cell_types = 1U<<n_cell_type_bits |
The class that stores all geometry-dependent data related with cell interiors for use in the matrix-free class.
Definition at line 46 of file mapping_info.h.
internal::MatrixFreeFunctions::MappingInfo< dim, Number >::MappingInfo | ( | ) |
Empty constructor.
Definition at line 37 of file mapping_info.templates.h.
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::initialize | ( | 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 | ||
) |
Computes the information in the given cells. 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.
Definition at line 129 of file mapping_info.templates.h.
UpdateFlags internal::MatrixFreeFunctions::MappingInfo< dim, Number >::compute_update_flags | ( | const UpdateFlags | update_flags, |
const std::vector<::hp::QCollection< 1 > > & | quad | ||
) | const |
Helper function to determine which update flags must be set in the internal functions to initialize all data as requested by the user.
Definition at line 64 of file mapping_info.templates.h.
|
inline |
Returns the type of a given cell as detected during initialization.
Definition at line 350 of file mapping_info.h.
|
inline |
Returns the type of a given cell as detected during initialization.
Definition at line 363 of file mapping_info.h.
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::clear | ( | ) |
Clears all data fields in this class.
Definition at line 48 of file mapping_info.templates.h.
std::size_t internal::MatrixFreeFunctions::MappingInfo< dim, Number >::memory_consumption | ( | ) | const |
Returns the memory consumption of this class in bytes.
Definition at line 847 of file mapping_info.templates.h.
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::print_memory_consumption | ( | STREAM & | out, |
const SizeInfo & | size_info | ||
) | const |
Prints a detailed summary of memory consumption in the different structures of this class to the given output stream.
Definition at line 907 of file mapping_info.templates.h.
void internal::MatrixFreeFunctions::MappingInfo< dim, Number >::evaluate_on_cell | ( | const ::Triangulation< dim > & | tria, |
const std::pair< unsigned int, unsigned int > * | cells, | ||
const unsigned int | cell, | ||
const unsigned int | my_q, | ||
CellType(&) | cell_t_prev[VectorizedArray< Number >::n_array_elements], | ||
CellType(&) | cell_t[VectorizedArray< Number >::n_array_elements], | ||
FEValues< dim, dim > & | fe_values, | ||
CellData & | cell_data | ||
) | const |
Helper function called internally during the initialize function.
Definition at line 605 of file mapping_info.templates.h.
|
static |
Determines how many bits of an unsigned int are used to distinguish the cell types (Cartesian, with constant Jacobian, or general)
Definition at line 52 of file mapping_info.h.
|
static |
Determines how many types of different cells can be detected at most. Corresponds to the number of bits we reserved for it.
Definition at line 58 of file mapping_info.h.
std::vector<unsigned int> internal::MatrixFreeFunctions::MappingInfo< dim, Number >::cell_type |
Stores whether a cell is Cartesian, has constant transform data (Jacobians) or is general. cell_type % 4 gives this information (0: Cartesian, 1: constant Jacobian throughout cell, 2: general cell), and cell_type / 4 gives the index in the data field of where to find the information in the fields Jacobian and JxW values (except for quadrature points, for which the index runs as usual).
Definition at line 124 of file mapping_info.h.
AlignedVector<std::pair<Tensor<1,dim,VectorizedArray<Number> >, VectorizedArray<Number> > > internal::MatrixFreeFunctions::MappingInfo< dim, Number >::cartesian_data |
The first field stores the inverse Jacobian for Cartesian cells: There, it is a diagonal rank-2 tensor, so we actually just store a rank-1 tensor. It is the same on all cells, therefore we only store it once per cell, and use similarities from one cell to another, too (on structured meshes, there are usually many cells with the same Jacobian).
The second field stores the Jacobian determinant for Cartesian cells (without the quadrature weight, which depends on the quadrature point, whereas the determinant is the same on each quadrature point).
Definition at line 139 of file mapping_info.h.
AlignedVector<std::pair<Tensor<2,dim,VectorizedArray<Number> >, VectorizedArray<Number> > > internal::MatrixFreeFunctions::MappingInfo< dim, Number >::affine_data |
The first field stores the Jacobian for non-Cartesian cells where all the Jacobians on the cell are the same (i.e., constant, which comes from a linear transformation from unit to real cell). Also use similarities from one cell to another (on structured meshes, there are usually many cells with the same Jacobian).
The second field stores the Jacobian determinant for non-Cartesian cells with constant Jacobian throughout the cell (without the quadrature weight, which depends on the quadrature point, whereas the determinant is the same on each quadrature point).
Definition at line 154 of file mapping_info.h.
std::vector<MappingInfoDependent> internal::MatrixFreeFunctions::MappingInfo< dim, Number >::mapping_data_gen |
Contains all the stuff that depends on the quadrature formula
Definition at line 284 of file mapping_info.h.
bool internal::MatrixFreeFunctions::MappingInfo< dim, Number >::JxW_values_initialized |
Stores whether JxW values have been initialized
Definition at line 289 of file mapping_info.h.
bool internal::MatrixFreeFunctions::MappingInfo< dim, Number >::second_derivatives_initialized |
Stores whether we computed second derivatives.
Definition at line 294 of file mapping_info.h.
bool internal::MatrixFreeFunctions::MappingInfo< dim, Number >::quadrature_points_initialized |
Stores whether we computed quadrature points.
Definition at line 299 of file mapping_info.h.