Loading [MathJax]/extensions/TeX/newcommand.js
deal.II version GIT relicensing-3075-gc235bd4825 2025-04-15 08:10:00+00:00
\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
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
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
r
s
t
u
v
Variables
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
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
#include <
deal.II/base/template_constraints.h
>
21
22
23
DEAL_II_NAMESPACE_OPEN
24
25
// Forward declarations
26
#ifndef DOXYGEN
27
template
<
int
,
int
,
int
>
28
class
DoFInvalidAccessor
;
29
30
template
<
int
structdim,
int
dim,
int
spacedim,
bool
lda>
31
class
DoFAccessor
;
32
template
<
int
dim,
int
spacedim,
bool
lda>
33
class
DoFCellAccessor
;
34
35
template
<
int
dim,
int
spacedim>
36
DEAL_II_CXX20_REQUIRES
((
concepts::is_valid_dim_spacedim<dim, spacedim>
))
37
class
DoFHandler
;
38
39
template
<
typename
Accessor>
40
class
TriaRawIterator
;
41
template
<
typename
Accessor>
42
class
TriaIterator
;
43
template
<
typename
Accessor>
44
class
TriaActiveIterator
;
45
#endif
46
47
namespace
internal
48
{
49
namespace
DoFHandlerImplementation
50
{
51
template
<
int
dim,
int
spacedim,
bool
lda = false>
52
struct
Iterators
;
53
54
64
template
<
int
spacedim,
bool
lda>
65
struct
Iterators
<1, spacedim, lda>
66
{
67
using
CellAccessor
=
::DoFCellAccessor<1, spacedim, lda>
;
68
using
FaceAccessor
=
::DoFAccessor<0, 1, spacedim, lda>
;
69
70
using
raw_line_iterator
=
TriaRawIterator<CellAccessor>
;
71
using
line_iterator
=
TriaIterator<CellAccessor>
;
72
using
active_line_iterator
=
TriaActiveIterator<CellAccessor>
;
73
74
using
raw_quad_iterator
=
75
TriaRawIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
76
using
quad_iterator
=
TriaIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
77
using
active_quad_iterator
=
78
TriaActiveIterator<DoFInvalidAccessor<2, 1, spacedim>
>;
79
80
using
raw_hex_iterator
=
81
TriaRawIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
82
using
hex_iterator
=
TriaIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
83
using
active_hex_iterator
=
84
TriaActiveIterator<DoFInvalidAccessor<3, 1, spacedim>
>;
85
86
using
raw_cell_iterator
=
raw_line_iterator
;
87
using
cell_iterator
=
line_iterator
;
88
using
active_cell_iterator
=
active_line_iterator
;
89
90
using
raw_face_iterator
=
TriaRawIterator<FaceAccessor>
;
91
using
face_iterator
=
TriaIterator<FaceAccessor>
;
92
using
active_face_iterator
=
TriaActiveIterator<FaceAccessor>
;
93
};
65
struct
Iterators
<1, spacedim, lda> {
…
};
94
95
96
106
template
<
int
spacedim,
bool
lda>
107
struct
Iterators
<2, spacedim, lda>
108
{
109
using
CellAccessor
=
::DoFCellAccessor<2, spacedim, lda>
;
110
using
FaceAccessor
=
::DoFAccessor<1, 2, spacedim, 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
};
107
struct
Iterators
<2, spacedim, lda> {
…
};
134
135
136
146
template
<
int
spacedim,
bool
lda>
147
struct
Iterators
<3, spacedim, lda>
148
{
149
using
CellAccessor
=
::DoFCellAccessor<3, spacedim, lda>
;
150
using
FaceAccessor
=
::DoFAccessor<2, 3, spacedim, lda>
;
151
152
using
raw_line_iterator
=
153
TriaRawIterator<::DoFAccessor<1, 3, spacedim, lda>
>;
154
using
line_iterator
=
155
TriaIterator<::DoFAccessor<1, 3, spacedim, lda>
>;
156
using
active_line_iterator
=
157
TriaActiveIterator<::DoFAccessor<1, 3, spacedim, lda>
>;
158
159
using
raw_quad_iterator
=
TriaRawIterator<FaceAccessor>
;
160
using
quad_iterator
=
TriaIterator<FaceAccessor>
;
161
using
active_quad_iterator
=
TriaActiveIterator<FaceAccessor>
;
162
163
using
raw_hex_iterator
=
TriaRawIterator<CellAccessor>
;
164
using
hex_iterator
=
TriaIterator<CellAccessor>
;
165
using
active_hex_iterator
=
TriaActiveIterator<CellAccessor>
;
166
167
using
raw_cell_iterator
=
raw_hex_iterator
;
168
using
cell_iterator
=
hex_iterator
;
169
using
active_cell_iterator
=
active_hex_iterator
;
170
171
using
raw_face_iterator
=
raw_quad_iterator
;
172
using
face_iterator
=
quad_iterator
;
173
using
active_face_iterator
=
active_quad_iterator
;
174
};
147
struct
Iterators
<3, spacedim, lda> {
…
};
175
}
// namespace DoFHandlerImplementation
176
}
// namespace internal
177
178
DEAL_II_NAMESPACE_CLOSE
179
180
#endif
// dealii_dof_iterator_selector_h
DoFAccessor
Definition
dof_accessor.h:215
DoFCellAccessor
Definition
dof_accessor.h:1329
DoFHandler
Definition
dof_handler.h:325
DoFInvalidAccessor
Definition
dof_accessor.h:1250
TriaActiveIterator
Definition
tria_iterator.h:749
TriaIterator
Definition
tria_iterator.h:568
TriaRawIterator
Definition
tria_iterator.h:221
concepts::is_valid_dim_spacedim
Definition
template_constraints.h:721
config.h
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition
config.h:35
DEAL_II_CXX20_REQUIRES
#define DEAL_II_CXX20_REQUIRES(condition)
Definition
config.h:242
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition
config.h:36
internal
Definition
aligned_vector.h:757
internal::DoFHandlerImplementation::Iterators
Definition
dof_iterator_selector.h:52
template_constraints.h
Generated by
1.9.8