deal.II version GIT relicensing-2206-gaa53ff9447 2024-12-02 09:10:00+00:00
|
#include <deal.II/matrix_free/face_info.h>
Public Member Functions | |
std::size_t | memory_consumption () const |
Public Attributes | |
std::array< unsigned int, vectorization_width > | cells_interior |
std::array< unsigned int, vectorization_width > | cells_exterior |
types::boundary_id | exterior_face_no |
unsigned char | interior_face_no |
unsigned char | subface_index |
unsigned char | face_orientation |
unsigned char | face_type |
Data type for information about the batches build for vectorization of the face integrals. The setup of the batches for the faces is independent of the cells, and thus, we must store the relation to the cell indexing for accessing the degrees of freedom.
Interior faces are stored by the two adjacent cells, which we label as "interior" and "exterior" side of the face. Normal vectors stored in MappingInfo are only stored once and are the outer normals to the cells on the "interior" side, whereas the sign is the opposite for the "exterior" side.
This data field is stored as a vector for all faces involved in the computation. In order to avoid gaps in the memory representation, the four 'char' variables are put next to each other which occupies the same size as the unsigned integers on most architectures.
Definition at line 53 of file face_info.h.
|
inline |
Return the memory consumption of the present data structure.
Definition at line 122 of file face_info.h.
std::array<unsigned int, vectorization_width> internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::cells_interior |
Indices of the faces in the current face batch as compared to the numbers of the cells on the logical "interior" side of the face which is aligned to the direction of FEEvaluation::normal_vector().
Definition at line 60 of file face_info.h.
std::array<unsigned int, vectorization_width> internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::cells_exterior |
Indices of the faces in the current face batch as compared to the numbers of the cells on the logical "exterior" side of the face which is aligned to the opposite direction of FEEvaluation::normal_vector(). Note that the distinction into interior and exterior faces is purely logical and refers to the direction of the normal only. In the actual discretization of a problem, the discretization typically needs to make sure that interior and exterior sides are treated properly, such as with upwind fluxes.
For boundary faces, the numbers are set to numbers::invalid_unsigned_int
.
Definition at line 75 of file face_info.h.
types::boundary_id internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::exterior_face_no |
Index of the face between 0 and GeometryInfo::faces_per_cell within the cells on the "exterior" side of the faces.
For a boundary face, this data field stores the boundary id.
Definition at line 83 of file face_info.h.
unsigned char internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::interior_face_no |
Index of the face between 0 and GeometryInfo::faces_per_cell within the cells on the "interior" side of the faces.
Definition at line 89 of file face_info.h.
unsigned char internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::subface_index |
For adaptively refined meshes, the cell on the exterior side of the face might be less refined than the interior side. This index indicates the possible subface index on the exterior side.
Definition at line 96 of file face_info.h.
unsigned char internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::face_orientation |
In 3d, one of the two cells adjacent to a face might use a different orientation (also called as face orientation, face flip and face rotation) than the standard orientation. This variable stores the values of face orientation, face flip and face rotation (for one of the interior or exterior side) for the present batch of faces in the first free bits. The forth bit is one if the internal cell has non-standard orientation.
Definition at line 110 of file face_info.h.
unsigned char internal::MatrixFreeFunctions::FaceToCellTopology< vectorization_width >::face_type |
Reference-cell type of the given face: 0 for line or quadrilateral, 1 for triangle.
Definition at line 116 of file face_info.h.