ug4
Loading...
Searching...
No Matches
grid_base_object_traits.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011-2015: G-CSC, Goethe University Frankfurt
3 * Author: Sebastian Reiter
4 *
5 * This file is part of UG4.
6 *
7 * UG4 is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU Lesser General Public License version 3 (as published by the
9 * Free Software Foundation) with the following additional attribution
10 * requirements (according to LGPL/GPL v3 §7):
11 *
12 * (1) The following notice must be displayed in the Appropriate Legal Notices
13 * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14 *
15 * (2) The following notice must be displayed at a prominent place in the
16 * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17 *
18 * (3) The following bibliography is recommended for citation and must be
19 * preserved in all covered files:
20 * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21 * parallel geometric multigrid solver on hierarchically distributed grids.
22 * Computing and visualization in science 16, 4 (2013), 151-164"
23 * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24 * flexible software system for simulating pde based models on high performance
25 * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26 *
27 * This program is distributed in the hope that it will be useful,
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 * GNU Lesser General Public License for more details.
31 */
32
33#ifndef __H__UG__grid_base_object_traits__
34#define __H__UG__grid_base_object_traits__
35
36#include "element_storage.h"
38
39namespace ug
40{
41
43// The geometry_traits. This class can be specialized by each element-type.
66template <class TElem>
68{};
69
70
75
78
81
84
85
86
88template <>
90{
91 public:
92
93 enum
94 {
95 CONTAINER_SECTION = -1,
96 BASE_OBJECT_ID = -1
97 };
98};
99
100
101template <>
103{
104 public:
107
110
111 enum
112 {
113 CONTAINER_SECTION = -1,
114 BASE_OBJECT_ID = VERTEX
115 };
116 static const ReferenceObjectID REFERENCE_OBJECT_ID = ROID_VERTEX;
117};
118
119
120template <>
122{
123 public:
126
129
130 enum
131 {
132 CONTAINER_SECTION = -1,
133 BASE_OBJECT_ID = EDGE
134 };
135 static const ReferenceObjectID REFERENCE_OBJECT_ID = ROID_EDGE;
136};
137
138
139template <>
141{
142 public:
145
148
149 enum
150 {
151 CONTAINER_SECTION = -1,
152 BASE_OBJECT_ID = FACE
153 };
154 static const ReferenceObjectID REFERENCE_OBJECT_ID = ROID_UNKNOWN;
155};
156
157template <>
159{
160 public:
163
166
167 enum
168 {
169 CONTAINER_SECTION = -1,
170 BASE_OBJECT_ID = VOLUME
171 };
172 static const ReferenceObjectID REFERENCE_OBJECT_ID = ROID_UNKNOWN;
173};
174
175}// end of namespace
176
177#endif
Can be used to store information about an edge and to construct an edge.
Definition grid_base_objects.h:464
Base-class for edges.
Definition grid_base_objects.h:397
Can be queried for the edges and vertices of a face.
Definition grid_base_objects.h:684
Faces are 2-dimensional objects.
Definition grid_base_objects.h:510
The base class for all geometric objects, such as vertices, edges, faces, volumes,...
Definition grid_base_objects.h:157
Container::const_iterator const_iterator
Definition section_container.h:64
Container::iterator iterator
Definition section_container.h:63
This descriptor is mainly useful to avoid compilation errors in templated code.
Definition grid_base_objects.h:285
Base-class for all vertex-types.
Definition grid_base_objects.h:231
Holds a set of vertices which represent the corners of a volume element.
Definition grid_base_objects.h:951
Volumes are 3-dimensional objects.
Definition grid_base_objects.h:754
EdgeDescriptor GeneralDescriptor
Definition grid_base_object_traits.h:128
EdgeIterator iterator
Definition grid_base_object_traits.h:124
ConstEdgeIterator const_iterator
Definition grid_base_object_traits.h:125
Edge grid_base_object
Definition grid_base_object_traits.h:127
ConstFaceIterator const_iterator
Definition grid_base_object_traits.h:144
FaceIterator iterator
Definition grid_base_object_traits.h:143
FaceDescriptor GeneralDescriptor
Definition grid_base_object_traits.h:147
Face grid_base_object
Definition grid_base_object_traits.h:146
ConstVertexIterator const_iterator
Definition grid_base_object_traits.h:106
VertexDescriptor GeneralDescriptor
Definition grid_base_object_traits.h:109
Vertex grid_base_object
Definition grid_base_object_traits.h:108
VertexIterator iterator
Definition grid_base_object_traits.h:105
VolumeIterator iterator
Definition grid_base_object_traits.h:161
Volume grid_base_object
Definition grid_base_object_traits.h:164
VolumeDescriptor GeneralDescriptor
Definition grid_base_object_traits.h:165
ConstVolumeIterator const_iterator
Definition grid_base_object_traits.h:162
Definition grid_base_object_traits.h:68
the ug namespace
ElementStorage< Vertex >::SectionContainer::iterator VertexIterator
This Iterator will be used as base-class for iterators of specialized geometric objects.
Definition grid_base_object_traits.h:73
ReferenceObjectID
these ids are used to identify the shape of a geometric object.
Definition grid_base_objects.h:74
@ ROID_EDGE
Definition grid_base_objects.h:77
@ ROID_UNKNOWN
Definition grid_base_objects.h:75
@ ROID_VERTEX
Definition grid_base_objects.h:76
ElementStorage< Face >::SectionContainer::iterator FaceIterator
Definition grid_base_object_traits.h:79
ElementStorage< Face >::SectionContainer::const_iterator ConstFaceIterator
Definition grid_base_object_traits.h:80
ElementStorage< Edge >::SectionContainer::iterator EdgeIterator
Definition grid_base_object_traits.h:76
ElementStorage< Edge >::SectionContainer::const_iterator ConstEdgeIterator
Definition grid_base_object_traits.h:77
@ VOLUME
Definition grid_base_objects.h:63
@ VERTEX
Definition grid_base_objects.h:60
@ EDGE
Definition grid_base_objects.h:61
@ FACE
Definition grid_base_objects.h:62
ElementStorage< Volume >::SectionContainer::const_iterator ConstVolumeIterator
Definition grid_base_object_traits.h:83
ElementStorage< Volume >::SectionContainer::iterator VolumeIterator
Definition grid_base_object_traits.h:82
ElementStorage< Vertex >::SectionContainer::const_iterator ConstVertexIterator
Definition grid_base_object_traits.h:74