deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
face_info.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2018 - 2025 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13
14#ifndef dealii_matrix_free_face_info_h
15#define dealii_matrix_free_face_info_h
16
17
18#include <deal.II/base/config.h>
19
22#include <deal.II/base/table.h>
23
24
26
27
28
29namespace internal
30{
31 namespace MatrixFreeFunctions
32 {
50 template <int vectorization_width>
52 {
58 std::array<unsigned int, vectorization_width> cells_interior;
59
73 std::array<unsigned int, vectorization_width> cells_exterior;
74
82
87 unsigned char interior_face_no;
88
94 unsigned char subface_index;
95
108 unsigned char face_orientation;
109
114 unsigned char face_type;
115
119 std::size_t
121 {
122 return sizeof(*this);
123 }
124 };
125
126
127
132 template <int vectorization_width>
133 struct FaceInfo
134 {
139 void
141 {
142 faces.clear();
145 }
146
150 std::size_t
152 {
153 return sizeof(faces) +
154 cell_and_face_to_plain_faces.memory_consumption() +
155 cell_and_face_boundary_id.memory_consumption();
156 }
157
162 std::vector<FaceToCellTopology<vectorization_width>> faces;
163
171
177 };
178 } // end of namespace MatrixFreeFunctions
179} // end of namespace internal
180
182
183#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
::Table< 3, unsigned int > cell_and_face_to_plain_faces
Definition face_info.h:170
std::vector< FaceToCellTopology< vectorization_width > > faces
Definition face_info.h:162
::Table< 3, types::boundary_id > cell_and_face_boundary_id
Definition face_info.h:176
std::array< unsigned int, vectorization_width > cells_interior
Definition face_info.h:58
std::array< unsigned int, vectorization_width > cells_exterior
Definition face_info.h:73