Reference documentation for deal.II version 9.2.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\}}\)
dof_iterator_selector.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 2019 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 
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 
177 
181  };
182  } // namespace DoFHandlerImplementation
183 } // namespace internal
184 
186 
187 #endif // dealii_dof_iterator_selector_h
internal::DoFHandlerImplementation::Iterators
Definition: dof_iterator_selector.h:47
internal::DoFHandlerImplementation::Iterators< DoFHandlerType< 2, spacedim >, lda >::DoFHandler_type
DoFHandlerType< 2, spacedim > DoFHandler_type
Definition: dof_iterator_selector.h:111
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:358
DoFCellAccessor
Definition: dof_accessor.h:1321
DoFAccessor
Definition: dof_accessor.h:211
DoFInvalidAccessor
Definition: dof_accessor.h:1254
TriaActiveIterator
Definition: tria_iterator.h:759
internal::DoFHandlerImplementation::Iterators< DoFHandlerType< 1, spacedim >, lda >::DoFHandler_type
DoFHandlerType< 1, spacedim > DoFHandler_type
Definition: dof_iterator_selector.h:65
config.h
internal
Definition: aligned_vector.h:369
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:359
TriaIterator
Definition: tria_iterator.h:578
internal::DoFHandlerImplementation::Iterators< DoFHandlerType< 3, spacedim >, lda >::DoFHandler_type
DoFHandlerType< 3, spacedim > DoFHandler_type
Definition: dof_iterator_selector.h:155
TriaRawIterator
Definition: tria_iterator.h:232