Loading [MathJax]/extensions/TeX/newcommand.js
Reference documentation for deal.II version 9.6.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\}}
Toggle main menu visibility
Main Page
Tutorial
Code gallery
Topics
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Variables
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
u
v
w
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
v
Enumerations
a
b
c
d
e
f
g
h
i
l
n
o
p
r
s
v
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerations
b
c
d
e
f
g
i
m
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Related Symbols
:
a
b
c
d
f
g
i
l
m
n
o
p
r
s
t
u
v
Related Pages
Files
File List
File Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
s
t
u
v
Variables
a
c
d
e
f
g
h
i
k
l
m
n
o
p
s
t
u
v
Typedefs
Enumerations
Enumerator
m
u
Macros
a
b
d
e
f
h
i
m
p
s
t
dealii.org
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
include
deal.II
dofs
dof_iterator_selector.h
Go to the documentation of this file.
1
// ------------------------------------------------------------------------
2
//
3
// SPDX-License-Identifier: LGPL-2.1-or-later
4
// Copyright (C) 2002 - 2023 by the deal.II authors
5
//
6
// This file is part of the deal.II library.
7
//
8
// Part of the source code is dual licensed under Apache-2.0 WITH
9
// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10
// governing the source code and code contributions can be found in
11
// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12
//
13
// ------------------------------------------------------------------------
14
15
#ifndef dealii_dof_iterators_h
16
#define dealii_dof_iterators_h
17
18
#include <
deal.II/base/config.h
>
19
20
21
DEAL_II_NAMESPACE_OPEN
22
23
// Forward declarations
24
#ifndef DOXYGEN
25
template
<
int
,
int
,
int
>
26
class
DoFInvalidAccessor
;
27
28
template
<
int
structdim,
int
dim,
int
spacedim,
bool
lda>
29
class
DoFAccessor
;
30
template
<
int
dim,
int
spacedim,
bool
lda>
31
class
DoFCellAccessor
;
32
33
template
<
int
dim,
int
spacedim>
34
DEAL_II_CXX20_REQUIRES
((
concepts::is_valid_dim_spacedim<dim, spacedim>
))
35
class
DoFHandler
;
36
37
template
<
typename
Accessor>
38
class
TriaRawIterator
;
39
template
<
typename
Accessor>
40
class
TriaIterator
;
41
template
<
typename
Accessor>
42
class
TriaActiveIterator
;
43
#endif
44
45
namespace
internal
46
{
47
namespace
DoFHandlerImplementation
48
{
49
template
<
int
dim,
int
spacedim,
bool
lda = false>
50
struct
Iterators
;
51
52
62
template
<
int
spacedim,
bool
lda>
63
struct
Iterators
<1, spacedim, lda>
64
{
65
using
CellAccessor
=
::DoFCellAccessor<1, spacedim, lda>
;
66
using
FaceAccessor
=
::DoFAccessor<0, 1, spacedim, lda>
;
67
68
using
raw_line_iterator
=
TriaRawIterator<CellAccessor>
;
69
using
line_iterator
=
TriaIterator<CellAccessor>
;
70
using
active_line_iterator
=
TriaActiveIterator<CellAccessor>
;
71
72
using
raw_quad_iterator
=
73
TriaRawIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
74
using
quad_iterator
=
TriaIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
75
using
active_quad_iterator
=
76
TriaActiveIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
77
78
using
raw_hex_iterator
=
79
TriaRawIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
80
using
hex_iterator
=
TriaIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
81
using
active_hex_iterator
=
82
TriaActiveIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
83
84
using
raw_cell_iterator
=
raw_line_iterator
;
85
using
cell_iterator
=
line_iterator
;
86
using
active_cell_iterator
=
active_line_iterator
;
87
88
using
raw_face_iterator
=
TriaRawIterator<FaceAccessor>
;
89
using
face_iterator
=
TriaIterator<FaceAccessor>
;
90
using
active_face_iterator
=
TriaActiveIterator<FaceAccessor>
;
91
};
63
struct
Iterators
<1, spacedim, lda> {
…
};
92
93
94
104
template
<
int
spacedim,
bool
lda>
105
struct
Iterators
<2, spacedim, lda>
106
{
107
using
CellAccessor
=
::DoFCellAccessor<2, spacedim, lda>
;
108
using
FaceAccessor
=
::DoFAccessor<1, 2, spacedim, lda>
;
109
110
using
raw_line_iterator
=
TriaRawIterator<FaceAccessor>
;
111
using
line_iterator
=
TriaIterator<FaceAccessor>
;
112
using
active_line_iterator
=
TriaActiveIterator<FaceAccessor>
;
113
114
using
raw_quad_iterator
=
TriaRawIterator<CellAccessor>
;
115
using
quad_iterator
=
TriaIterator<CellAccessor>
;
116
using
active_quad_iterator
=
TriaActiveIterator<CellAccessor>
;
117
118
using
raw_hex_iterator
=
119
TriaRawIterator<DoFInvalidAccessor<3, 2, spacedim>
>;
120
using
hex_iterator
=
TriaIterator<DoFInvalidAccessor<3, 2, spacedim>
>;
121
using
active_hex_iterator
=
122
TriaActiveIterator<DoFInvalidAccessor<3, 2, spacedim>
>;
123
124
using
raw_cell_iterator
=
raw_quad_iterator
;
125
using
cell_iterator
=
quad_iterator
;
126
using
active_cell_iterator
=
active_quad_iterator
;
127
128
using
raw_face_iterator
=
raw_line_iterator
;
129
using
face_iterator
=
line_iterator
;
130
using
active_face_iterator
=
active_line_iterator
;
131
};
105
struct
Iterators
<2, spacedim, lda> {
…
};
132
133
134
144
template
<
int
spacedim,
bool
lda>
145
struct
Iterators
<3, spacedim, lda>
146
{
147
using
CellAccessor
=
::DoFCellAccessor<3, spacedim, lda>
;
148
using
FaceAccessor
=
::DoFAccessor<2, 3, spacedim, lda>
;
149
150
using
raw_line_iterator
=
151
TriaRawIterator<::DoFAccessor<1, 3, spacedim, lda>
>;
152
using
line_iterator
=
153
TriaIterator<::DoFAccessor<1, 3, spacedim, lda>
>;
154
using
active_line_iterator
=
155
TriaActiveIterator<::DoFAccessor<1, 3, spacedim, lda>
>;
156
157
using
raw_quad_iterator
=
TriaRawIterator<FaceAccessor>
;
158
using
quad_iterator
=
TriaIterator<FaceAccessor>
;
159
using
active_quad_iterator
=
TriaActiveIterator<FaceAccessor>
;
160
161
using
raw_hex_iterator
=
TriaRawIterator<CellAccessor>
;
162
using
hex_iterator
=
TriaIterator<CellAccessor>
;
163
using
active_hex_iterator
=
TriaActiveIterator<CellAccessor>
;
164
165
using
raw_cell_iterator
=
raw_hex_iterator
;
166
using
cell_iterator
=
hex_iterator
;
167
using
active_cell_iterator
=
active_hex_iterator
;
168
169
using
raw_face_iterator
=
raw_quad_iterator
;
170
using
face_iterator
=
quad_iterator
;
171
using
active_face_iterator
=
active_quad_iterator
;
172
};
145
struct
Iterators
<3, spacedim, lda> {
…
};
173
}
// namespace DoFHandlerImplementation
174
}
// namespace internal
175
176
DEAL_II_NAMESPACE_CLOSE
177
178
#endif
// dealii_dof_iterator_selector_h
DoFAccessor
Definition
dof_accessor.h:212
DoFCellAccessor
Definition
dof_accessor.h:1326
DoFHandler
Definition
dof_handler.h:317
DoFInvalidAccessor
Definition
dof_accessor.h:1247
TriaActiveIterator
Definition
tria_iterator.h:755
TriaIterator
Definition
tria_iterator.h:574
TriaRawIterator
Definition
tria_iterator.h:227
concepts::is_valid_dim_spacedim
Definition
template_constraints.h:720
config.h
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition
config.h:503
DEAL_II_CXX20_REQUIRES
#define DEAL_II_CXX20_REQUIRES(condition)
Definition
config.h:177
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition
config.h:504
internal
Definition
aligned_vector.h:727
internal::DoFHandlerImplementation::Iterators
Definition
dof_iterator_selector.h:50
Generated by
1.11.0