Reference documentation for deal.II version GIT d77e5ebb0a 2023-01-27 22:35:02+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\}}\)
grid_tools_cache_update_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_grid_tria_info_cache_update_flags_h
17 #define dealii_grid_tria_info_cache_update_flags_h
18 
19 
20 #include <deal.II/base/config.h>
21 
23 
24 namespace GridTools
25 {
34  {
38  update_nothing = 0x000,
39 
45 
52 
57 
62 
67 
76 
81 
86 
92 
96  update_all = 0xFFF,
97  };
98 
99 
105  template <class StreamType>
106  inline StreamType &
107  operator<<(StreamType &s, const CacheUpdateFlags u)
108  {
109  s << " CacheUpdateFlags";
111  s << "|vertex_to_cell_map";
113  s << "|vertex_to_cells_centers_directions";
114  if (u & update_covering_rtree)
115  s << "|covering_rtree";
116  return s;
117  }
118 
119 
129  inline CacheUpdateFlags
131  {
132  return static_cast<CacheUpdateFlags>(static_cast<unsigned int>(f1) |
133  static_cast<unsigned int>(f2));
134  }
135 
145  inline CacheUpdateFlags
147  {
148  return static_cast<CacheUpdateFlags>(static_cast<unsigned int>(f1) ^
149  static_cast<unsigned int>(update_all));
150  }
151 
152 
153 
160  inline CacheUpdateFlags &
162  {
163  f1 = f1 | f2;
164  return f1;
165  }
166 
167 
177  inline CacheUpdateFlags
179  {
180  return static_cast<CacheUpdateFlags>(static_cast<unsigned int>(f1) &
181  static_cast<unsigned int>(f2));
182  }
183 
184 
191  inline CacheUpdateFlags &
193  {
194  f1 = f1 & f2;
195  return f1;
196  }
197 
198 } // namespace GridTools
200 
201 #endif
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:461
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:462
CacheUpdateFlags operator|(const CacheUpdateFlags f1, const CacheUpdateFlags f2)
CacheUpdateFlags operator&(const CacheUpdateFlags f1, const CacheUpdateFlags f2)
CacheUpdateFlags & operator&=(CacheUpdateFlags &f1, const CacheUpdateFlags f2)
CacheUpdateFlags & operator|=(CacheUpdateFlags &f1, const CacheUpdateFlags f2)
CacheUpdateFlags operator~(const CacheUpdateFlags f1)
StreamType & operator<<(StreamType &s, const CacheUpdateFlags u)