Reference documentation for deal.II version 9.3.0
\(\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 - 2020 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 
29 
30 namespace MeshWorker
31 {
40  {
80 
86 
91 
98 
104  };
105 
106 
112  template <class StreamType>
113  inline StreamType &
114  operator<<(StreamType &s, AssembleFlags u)
115  {
116  s << " AssembleFlags";
117  if (u & assemble_own_cells)
118  s << "|own_cells";
120  s << "|own_faces_once";
122  s << "|own_faces_both";
123  if (u & assemble_ghost_cells)
124  s << "|ghost_cells";
126  s << "|ghost_faces_once";
128  s << "|ghost_faces_both";
129  if (u & assemble_boundary_faces)
130  s << "|boundary_faces";
131  return s;
132  }
133 
134 
144  inline AssembleFlags
146  {
147  return static_cast<AssembleFlags>(static_cast<unsigned int>(f1) |
148  static_cast<unsigned int>(f2));
149  }
150 
151 
152 
159  inline AssembleFlags &
161  {
162  f1 = f1 | f2;
163  return f1;
164  }
165 
166 
177  {
178  return static_cast<AssembleFlags>(static_cast<unsigned int>(f1) &
179  static_cast<unsigned int>(f2));
180  }
181 
182 
189  inline AssembleFlags &
191  {
192  f1 = f1 & f2;
193  return f1;
194  }
195 } // namespace MeshWorker
196 
200 
201 #endif
AssembleFlags operator|(AssembleFlags f1, AssembleFlags f2)
AssembleFlags & operator|=(AssembleFlags &f1, AssembleFlags f2)
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:395
AssembleFlags operator &(AssembleFlags f1, AssembleFlags f2)
StreamType & operator<<(StreamType &s, AssembleFlags u)
AssembleFlags & operator &=(AssembleFlags &f1, AssembleFlags f2)
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:394