Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
deal.II
dofs
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>
35
class
TriaIterator
;
36
template
<
typename
Accessor>
37
class
TriaActiveIterator
;
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>;
63
using
CellAccessor
=
::DoFCellAccessor<DoFHandler_type, lda>
;
64
using
FaceAccessor
=
::DoFAccessor<0, DoFHandler_type, lda>
;
65
66
using
raw_line_iterator
=
TriaRawIterator<CellAccessor>
;
67
using
line_iterator
=
TriaIterator<CellAccessor>
;
68
using
active_line_iterator
=
TriaActiveIterator<CellAccessor>
;
69
70
using
raw_quad_iterator
=
71
TriaRawIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
72
using
quad_iterator
=
TriaIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
73
using
active_quad_iterator
=
74
TriaActiveIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
75
76
using
raw_hex_iterator
=
77
TriaRawIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
78
using
hex_iterator
=
TriaIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
79
using
active_hex_iterator
=
80
TriaActiveIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
81
82
using
raw_cell_iterator
=
raw_line_iterator
;
83
using
cell_iterator
=
line_iterator
;
84
using
active_cell_iterator
=
active_line_iterator
;
85
86
using
raw_face_iterator
=
TriaRawIterator<FaceAccessor>
;
87
using
face_iterator
=
TriaIterator<FaceAccessor>
;
88
using
active_face_iterator
=
TriaActiveIterator<FaceAccessor>
;
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>;
109
using
CellAccessor
=
::DoFCellAccessor<DoFHandler_type, lda>
;
110
using
FaceAccessor
=
::DoFAccessor<1, DoFHandler_type, lda>
;
111
112
using
raw_line_iterator
=
TriaRawIterator<FaceAccessor>
;
113
using
line_iterator
=
TriaIterator<FaceAccessor>
;
114
using
active_line_iterator
=
TriaActiveIterator<FaceAccessor>
;
115
116
using
raw_quad_iterator
=
TriaRawIterator<CellAccessor>
;
117
using
quad_iterator
=
TriaIterator<CellAccessor>
;
118
using
active_quad_iterator
=
TriaActiveIterator<CellAccessor>
;
119
120
using
raw_hex_iterator
=
121
TriaRawIterator<DoFInvalidAccessor<3, 2, spacedim>
>;
122
using
hex_iterator
=
TriaIterator<DoFInvalidAccessor<3, 2, spacedim>
>;
123
using
active_hex_iterator
=
124
TriaActiveIterator<DoFInvalidAccessor<3, 2, spacedim>
>;
125
126
using
raw_cell_iterator
=
raw_quad_iterator
;
127
using
cell_iterator
=
quad_iterator
;
128
using
active_cell_iterator
=
active_quad_iterator
;
129
130
using
raw_face_iterator
=
raw_line_iterator
;
131
using
face_iterator
=
line_iterator
;
132
using
active_face_iterator
=
active_line_iterator
;
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>;
153
using
CellAccessor
=
::DoFCellAccessor<DoFHandler_type, lda>
;
154
using
FaceAccessor
=
::DoFAccessor<2, DoFHandler_type, lda>
;
155
156
using
raw_line_iterator
=
157
TriaRawIterator<::DoFAccessor<1, DoFHandler_type, lda>
>;
158
using
line_iterator
=
159
TriaIterator<::DoFAccessor<1, DoFHandler_type, lda>
>;
160
using
active_line_iterator
=
161
TriaActiveIterator<::DoFAccessor<1, DoFHandler_type, lda>
>;
162
163
using
raw_quad_iterator
=
TriaRawIterator<FaceAccessor>
;
164
using
quad_iterator
=
TriaIterator<FaceAccessor>
;
165
using
active_quad_iterator
=
TriaActiveIterator<FaceAccessor>
;
166
167
using
raw_hex_iterator
=
TriaRawIterator<CellAccessor>
;
168
using
hex_iterator
=
TriaIterator<CellAccessor>
;
169
using
active_hex_iterator
=
TriaActiveIterator<CellAccessor>
;
170
171
using
raw_cell_iterator
=
raw_hex_iterator
;
172
using
cell_iterator
=
hex_iterator
;
173
using
active_cell_iterator
=
active_hex_iterator
;
174
175
using
raw_face_iterator
=
raw_quad_iterator
;
176
using
face_iterator
=
quad_iterator
;
177
using
active_face_iterator
=
active_quad_iterator
;
178
};
179
}
// namespace DoFHandlerImplementation
180
}
// namespace internal
181
182
DEAL_II_NAMESPACE_CLOSE
183
184
#endif // dealii_dof_iterator_selector_h
TriaActiveIterator
Definition:
dof_iterator_selector.h:37
DoFCellAccessor
Definition:
dof_accessor.h:1327
internal
Definition:
aligned_vector.h:357
DoFInvalidAccessor
Definition:
dof_accessor.h:1260
DoFAccessor
Definition:
dof_accessor.h:209
TriaIterator
Definition:
dof_iterator_selector.h:35
TriaRawIterator
Definition:
dof_accessor.h:40
Generated by
1.8.14