Reference documentation for deal.II version 9.1.0-pre
tria_faces.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2006 - 2018 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_tria_faces_h
17 #define dealii_tria_faces_h
18 
19 #include <deal.II/base/config.h>
20 
21 #include <deal.II/grid/tria_object.h>
22 #include <deal.II/grid/tria_objects.h>
23 
24 
25 DEAL_II_NAMESPACE_OPEN
26 
27 namespace internal
28 {
29  namespace TriangulationImplementation
30  {
49  template <int dim>
50  class TriaFaces
51  {
52  public:
57  TriaFaces() = delete;
58  };
59 
60 
61 
68  template <>
69  class TriaFaces<1>
70  {
71  public:
76  std::size_t
77  memory_consumption() const;
78 
83  template <class Archive>
84  void
85  serialize(Archive &ar, const unsigned int version);
86  };
87 
91  template <>
92  class TriaFaces<2>
93  {
94  public:
99 
100  public:
105  std::size_t
106  memory_consumption() const;
107 
112  template <class Archive>
113  void
114  serialize(Archive &ar, const unsigned int version);
115  };
116 
121  template <>
122  class TriaFaces<3>
123  {
124  public:
130 
135 
136  public:
141  std::size_t
142  memory_consumption() const;
143 
148  template <class Archive>
149  void
150  serialize(Archive &ar, const unsigned int version);
151  };
152 
153 
154 
155  template <class Archive>
156  void
157  TriaFaces<1>::serialize(Archive &, const unsigned int)
158  {}
159 
160 
161 
162  template <class Archive>
163  void
164  TriaFaces<2>::serialize(Archive &ar, const unsigned int)
165  {
166  ar &lines;
167  }
168 
169 
170 
171  template <class Archive>
172  void
173  TriaFaces<3>::serialize(Archive &ar, const unsigned int)
174  {
175  ar &quads &lines;
176  }
177  } // namespace TriangulationImplementation
178 } // namespace internal
179 
180 DEAL_II_NAMESPACE_CLOSE
181 
182 #endif