deal.II version GIT relicensing-1989-gd7a2c90e4e 2024-10-14 01:50:00+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: LGPL-2.1-or-later
4// Copyright (C) 2018 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15
16#ifndef dealii_matrix_free_face_info_h
17#define dealii_matrix_free_face_info_h
18
19
20#include <deal.II/base/config.h>
21
24#include <deal.II/base/table.h>
25
26
28
29
30
31namespace internal
32{
33 namespace MatrixFreeFunctions
34 {
52 template <int vectorization_width>
54 {
60 std::array<unsigned int, vectorization_width> cells_interior;
61
75 std::array<unsigned int, vectorization_width> cells_exterior;
76
84
89 unsigned char interior_face_no;
90
96 unsigned char subface_index;
97
110 unsigned char face_orientation;
111
116 unsigned char face_type;
117
121 std::size_t
123 {
124 return sizeof(*this);
125 }
126 };
127
128
129
134 template <int vectorization_width>
135 struct FaceInfo
136 {
141 void
143 {
144 faces.clear();
147 }
148
152 std::size_t
154 {
155 return sizeof(faces) +
156 cell_and_face_to_plain_faces.memory_consumption() +
157 cell_and_face_boundary_id.memory_consumption();
158 }
159
164 std::vector<FaceToCellTopology<vectorization_width>> faces;
165
173
179 };
180 } // end of namespace MatrixFreeFunctions
181} // end of namespace internal
182
184
185#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
::Table< 3, unsigned int > cell_and_face_to_plain_faces
Definition face_info.h:172
std::vector< FaceToCellTopology< vectorization_width > > faces
Definition face_info.h:164
::Table< 3, types::boundary_id > cell_and_face_boundary_id
Definition face_info.h:178
std::array< unsigned int, vectorization_width > cells_interior
Definition face_info.h:60
std::array< unsigned int, vectorization_width > cells_exterior
Definition face_info.h:75