Reference documentation for deal.II version 9.1.0-pre
dof_iterator_selector.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 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_dof_iterators_h
17 #define dealii_dof_iterators_h
18 
19 #include <deal.II/base/config.h>
20 
21 
22 DEAL_II_NAMESPACE_OPEN
23 
24 template <int, int, int>
25 class DoFInvalidAccessor;
26 
27 template <int structdim, typename DoFHandlerType, bool lda>
28 class DoFAccessor;
29 template <typename DoFHandlerType, bool lda>
30 class DoFCellAccessor;
31 
32 template <typename Accessor>
33 class TriaRawIterator;
34 template <typename Accessor>
36 template <typename Accessor>
38 
39 namespace internal
40 {
41  namespace DoFHandlerImplementation
42  {
43  template <typename DoFHandlerType, bool lda = false>
44  struct Iterators;
45 
46 
59  template <template <int, int> class DoFHandlerType, int spacedim, bool lda>
60  struct Iterators<DoFHandlerType<1, spacedim>, lda>
61  {
62  using DoFHandler_type = DoFHandlerType<1, spacedim>;
65 
69 
70  using raw_quad_iterator =
73  using active_quad_iterator =
75 
76  using raw_hex_iterator =
79  using active_hex_iterator =
81 
85 
89  };
90 
91 
92 
105  template <template <int, int> class DoFHandlerType, int spacedim, bool lda>
106  struct Iterators<DoFHandlerType<2, spacedim>, lda>
107  {
108  using DoFHandler_type = DoFHandlerType<2, spacedim>;
111 
115 
119 
120  using raw_hex_iterator =
123  using active_hex_iterator =
125 
129 
133  };
134 
135 
136 
149  template <template <int, int> class DoFHandlerType, int spacedim, bool lda>
150  struct Iterators<DoFHandlerType<3, spacedim>, lda>
151  {
152  using DoFHandler_type = DoFHandlerType<3, spacedim>;
155 
156  using raw_line_iterator =
158  using line_iterator =
160  using active_line_iterator =
162 
166 
170 
172  using cell_iterator = hex_iterator;
174 
178  };
179  } // namespace DoFHandlerImplementation
180 } // namespace internal
181 
182 DEAL_II_NAMESPACE_CLOSE
183 
184 #endif // dealii_dof_iterator_selector_h