Reference documentation for deal.II version GIT 3e82abc508 2023-06-09 03:50: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\}}\)
assemble_flags.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2017 - 2021 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_mesh_worker_assemble_flags_h
17 #define dealii_mesh_worker_assemble_flags_h
18 
19 
20 #include <deal.II/base/config.h>
21 
22 #include <vector>
23 
24 
26 
32 namespace MeshWorker
33 {
42  {
82 
88 
93 
100 
106  };
107 
108 
114  template <class StreamType>
115  inline StreamType &
116  operator<<(StreamType &s, AssembleFlags u)
117  {
118  s << " AssembleFlags";
119  if (u & assemble_own_cells)
120  s << "|own_cells";
122  s << "|own_faces_once";
124  s << "|own_faces_both";
125  if (u & assemble_ghost_cells)
126  s << "|ghost_cells";
128  s << "|ghost_faces_once";
130  s << "|ghost_faces_both";
131  if (u & assemble_boundary_faces)
132  s << "|boundary_faces";
133  return s;
134  }
135 
136 
146  inline AssembleFlags
148  {
149  return static_cast<AssembleFlags>(static_cast<unsigned int>(f1) |
150  static_cast<unsigned int>(f2));
151  }
152 
153 
154 
161  inline AssembleFlags &
163  {
164  f1 = f1 | f2;
165  return f1;
166  }
167 
168 
178  inline AssembleFlags
180  {
181  return static_cast<AssembleFlags>(static_cast<unsigned int>(f1) &
182  static_cast<unsigned int>(f2));
183  }
184 
185 
192  inline AssembleFlags &
194  {
195  f1 = f1 & f2;
196  return f1;
197  }
198 } // namespace MeshWorker
199 
203 
204 #endif
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:475
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:476
AssembleFlags & operator&=(AssembleFlags &f1, AssembleFlags f2)
StreamType & operator<<(StreamType &s, AssembleFlags u)
AssembleFlags & operator|=(AssembleFlags &f1, AssembleFlags f2)
AssembleFlags operator&(AssembleFlags f1, AssembleFlags f2)
@ assemble_boundary_faces
@ assemble_own_interior_faces_once
@ assemble_ghost_faces_both
@ assemble_own_interior_faces_both
@ assemble_ghost_cells
@ assemble_ghost_faces_once
AssembleFlags operator|(AssembleFlags f1, AssembleFlags f2)