Flow123d
3.9.0-c2ae2d0a8
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
y
Functions
_
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
w
Variables
Typedefs
Enumerations
Enumerator
a
b
c
d
f
g
h
i
m
n
o
p
r
s
u
w
y
Classes
Class List
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
y
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
r
s
t
u
v
z
Enumerations
a
b
c
d
f
h
i
m
n
o
p
r
s
t
u
v
Enumerator
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Related Functions
a
b
c
d
e
f
g
i
l
m
n
o
p
r
s
t
Files
File List
File Members
All
_
a
b
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Functions
_
a
c
d
f
i
k
l
m
n
o
p
r
s
t
v
Variables
_
a
c
d
g
m
n
p
q
s
u
v
Typedefs
_
a
d
e
f
g
i
j
l
m
o
q
r
s
t
u
v
Enumerations
Enumerator
a
b
c
d
e
f
i
m
n
o
p
r
s
u
v
w
Macros
_
a
b
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
w
z
src
mesh
node_accessor.hh
Go to the documentation of this file.
1
/*!
2
*
3
* Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4
*
5
* This program is free software; you can redistribute it and/or modify it under
6
* the terms of the GNU General Public License version 3 as published by the
7
* Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
*
13
*
14
* @file node_accessor.hh
15
* @brief
16
*/
17
18
#ifndef NODE_ACCESSOR_HH_
19
#define NODE_ACCESSOR_HH_
20
21
#include "
system/armor.hh
"
22
#include "
mesh/point.hh
"
23
#include "
mesh/mesh.h
"
24
25
26
/**
27
* Node accessor templated just by dimension of the embedding space, used for access to nodes out of Mesh.
28
* This should allow algorithms over nodes.
29
*/
30
template
<
int
spacedim>
31
class
NodeAccessor
{
32
public
:
33
typedef
typename
Space<spacedim>::Point
Point
;
34
35
/**
36
* Default invalid accessor.
37
*/
38
NodeAccessor
()
39
:
mesh_
(NULL)
40
{}
41
42
/**
43
* Node accessor.
44
*/
45
NodeAccessor
(
const
MeshBase
*mesh,
unsigned
int
idx
)
46
:
mesh_
(mesh),
node_idx_
(
idx
)
47
{}
48
49
inline
bool
is_valid
()
const
{
50
return
mesh_
!= NULL;
51
}
52
53
inline
unsigned
int
idx
()
const
{
54
return
node_idx_
;
55
}
56
57
// TODO: rename to gmsh_id
58
inline
unsigned
int
index
()
const
{
59
return
(
unsigned
int
)
mesh_
->
find_node_id
(
node_idx_
);
60
}
61
62
inline
void
inc
() {
63
ASSERT
(
is_valid
()).error(
"Do not call inc() for invalid accessor!"
);
64
node_idx_
++;
65
}
66
67
bool
operator==
(
const
NodeAccessor<spacedim>
& other) {
68
return
(
node_idx_
== other.
node_idx_
);
69
}
70
71
inline
Point
operator*
()
const
72
{
return
mesh_
->
nodes_
->vec<spacedim>(
node_idx_
); }
73
74
75
private
:
76
/// Pointer to the mesh owning the node.
77
const
MeshBase
*
mesh_
;
78
79
/// Index into Mesh::node_vec_ array.
80
unsigned
int
node_idx_
;
81
};
82
83
84
#endif
/* NODE_ACCESSOR_HH_ */
Space::Point
Armor::ArmaVec< double, spacedim > Point
Definition:
point.hh:42
MeshBase::nodes_
shared_ptr< Armor::Array< double > > nodes_
Definition:
mesh.h:312
armor.hh
NodeAccessor::is_valid
bool is_valid() const
Definition:
node_accessor.hh:49
ASSERT
#define ASSERT(expr)
Definition:
asserts.hh:351
NodeAccessor::index
unsigned int index() const
Definition:
node_accessor.hh:58
point.hh
NodeAccessor::mesh_
const MeshBase * mesh_
Pointer to the mesh owning the node.
Definition:
node_accessor.hh:77
NodeAccessor::operator*
Point operator*() const
Definition:
node_accessor.hh:71
NodeAccessor::Point
Space< spacedim >::Point Point
Definition:
node_accessor.hh:33
NodeAccessor::operator==
bool operator==(const NodeAccessor< spacedim > &other)
Definition:
node_accessor.hh:67
NodeAccessor::NodeAccessor
NodeAccessor()
Definition:
node_accessor.hh:38
NodeAccessor::inc
void inc()
Definition:
node_accessor.hh:62
NodeAccessor::NodeAccessor
NodeAccessor(const MeshBase *mesh, unsigned int idx)
Definition:
node_accessor.hh:45
mesh.h
NodeAccessor::node_idx_
unsigned int node_idx_
Index into Mesh::node_vec_ array.
Definition:
node_accessor.hh:80
MeshBase
Base class for Mesh and BCMesh.
Definition:
mesh.h:96
NodeAccessor
Definition:
mesh.h:55
MeshBase::find_node_id
int find_node_id(unsigned int pos) const
Return node id (in GMSH file) of node of given position in node vector.
Definition:
mesh.h:156
NodeAccessor::idx
unsigned int idx() const
Definition:
node_accessor.hh:53
Generated by
1.8.17