deal.II version GIT relicensing-2165-gc91f007519 2024-11-20 01:40: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
assemble_flags.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2017 - 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#ifndef dealii_mesh_worker_assemble_flags_h
16#define dealii_mesh_worker_assemble_flags_h
17
18
19#include <deal.II/base/config.h>
20
21#include <vector>
22
23
25
31namespace MeshWorker
32{
106
107
113 template <typename StreamType>
114 inline StreamType &
115 operator<<(StreamType &s, AssembleFlags u)
116 {
117 s << " AssembleFlags";
118 if (u & assemble_own_cells)
119 s << "|own_cells";
121 s << "|own_faces_once";
123 s << "|own_faces_both";
124 if (u & assemble_ghost_cells)
125 s << "|ghost_cells";
127 s << "|ghost_faces_once";
129 s << "|ghost_faces_both";
131 s << "|boundary_faces";
132 return s;
133 }
134
135
145 inline AssembleFlags
147 {
148 return static_cast<AssembleFlags>(static_cast<unsigned int>(f1) |
149 static_cast<unsigned int>(f2));
150 }
151
152
153
160 inline AssembleFlags &
162 {
163 f1 = f1 | f2;
164 return f1;
165 }
166
167
177 inline AssembleFlags
179 {
180 return static_cast<AssembleFlags>(static_cast<unsigned int>(f1) &
181 static_cast<unsigned int>(f2));
182 }
183
184
191 inline AssembleFlags &
193 {
194 f1 = f1 & f2;
195 return f1;
196 }
197} // namespace MeshWorker
198
202
203#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
AssembleFlags & operator|=(AssembleFlags &f1, AssembleFlags f2)
AssembleFlags operator&(AssembleFlags f1, AssembleFlags f2)
StreamType & operator<<(StreamType &s, AssembleFlags u)
@ assemble_boundary_faces
@ assemble_own_interior_faces_once
@ assemble_ghost_faces_both
@ assemble_own_interior_faces_both
@ assemble_ghost_faces_once
AssembleFlags operator|(AssembleFlags f1, AssembleFlags f2)
AssembleFlags & operator&=(AssembleFlags &f1, AssembleFlags f2)