Reference documentation for deal.II version Git a5ed68a04a 2019-09-22 06:50:58 -0600
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
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 // Forward declarations
25 #ifndef DOXYGEN
26 template <int, int, int>
27 class DoFInvalidAccessor;
28 
29 template <int structdim, typename DoFHandlerType, bool lda>
30 class DoFAccessor;
31 template <typename DoFHandlerType, bool lda>
32 class DoFCellAccessor;
33 
34 template <typename Accessor>
35 class TriaRawIterator;
36 template <typename Accessor>
37 class TriaIterator;
38 template <typename Accessor>
39 class TriaActiveIterator;
40 #endif
41 
42 namespace internal
43 {
44  namespace DoFHandlerImplementation
45  {
46  template <typename DoFHandlerType, bool lda = false>
47  struct Iterators;
48 
49 
62  template <template <int, int> class DoFHandlerType, int spacedim, bool lda>
63  struct Iterators<DoFHandlerType<1, spacedim>, lda>
64  {
65  using DoFHandler_type = DoFHandlerType<1, spacedim>;
68 
72 
73  using raw_quad_iterator =
76  using active_quad_iterator =
78 
79  using raw_hex_iterator =
82  using active_hex_iterator =
84 
88 
92  };
93 
94 
95 
108  template <template <int, int> class DoFHandlerType, int spacedim, bool lda>
109  struct Iterators<DoFHandlerType<2, spacedim>, lda>
110  {
111  using DoFHandler_type = DoFHandlerType<2, spacedim>;
114 
118 
122 
123  using raw_hex_iterator =
126  using active_hex_iterator =
128 
132 
136  };
137 
138 
139 
152  template <template <int, int> class DoFHandlerType, int spacedim, bool lda>
153  struct Iterators<DoFHandlerType<3, spacedim>, lda>
154  {
155  using DoFHandler_type = DoFHandlerType<3, spacedim>;
158 
159  using raw_line_iterator =
161  using line_iterator =
163  using active_line_iterator =
165 
169 
173 
175  using cell_iterator = hex_iterator;
177 
181  };
182  } // namespace DoFHandlerImplementation
183 } // namespace internal
184 
185 DEAL_II_NAMESPACE_CLOSE
186 
187 #endif // dealii_dof_iterator_selector_h