SheafSystem  0.0.0.0
homogeneous_block_crg_interval.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 Limit Point Systems, Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 //
18 
21 
22 #ifndef HOMOGENEOUS_BLOCK_CRG_INTERVAL_H
23 #define HOMOGENEOUS_BLOCK_CRG_INTERVAL_H
24 
25 #ifndef SHEAF_DLL_SPEC_H
26 #include "SheafSystem/sheaf_dll_spec.h"
27 #endif
28 
29 #ifndef BASE_SPACE_CRG_INTERVAL_H
30 #include "SheafSystem/base_space_crg_interval.h"
31 #endif
32 
33 namespace fiber_bundle
34 {
35 
36 using namespace sheaf;
37 
38 
44 {
45 
46  // ===========================================================
48  // ===========================================================
50 
51 public:
52 
57 
62 
63 protected:
64 
69  {
70  BLOCK, ZONE, VERTEX, MEMBER_CLASS_END
71  };
72 
76  member_class_type member_class(pod_index_type xmbr_index) const;
77 
78 private:
79 
81 
82 
83  // ===========================================================
85  // ===========================================================
87 
88 public:
89 
93  bool zones_initialized() const;
94 
98  pod_index_type zones_space_id() const;
99 
100 protected:
101 
106 
111 
112 private:
113 
115 
116 
117  // ===========================================================
119  // ===========================================================
121 
122 public:
123 
127  bool vertices_initialized() const;
128 
132  pod_index_type vertices_space_id() const;
133 
134 protected:
135 
140 
145 
146 private:
147 
149 
150 
151  // ===========================================================
153  // ===========================================================
155 
156 public:
157 
161  pod_index_type connectivity_space_id(pod_index_type xzone_id) const;
162 
163 protected:
164 
169 
170 private:
171 
173 
174 
175  // ===========================================================
177  // ===========================================================
179 
180 public:
181 
185  pod_index_type adjacency_space_id(pod_index_type xvertex_id) const;
186 
187 protected:
188 
193 
194 private:
195 
197 
198 
199  // ===========================================================
201  // ===========================================================
203 
204 public:
205 
207 
211  virtual pod_index_type cells_begin() const;
212 
214 
218  virtual pod_index_type cells_end() const;
219 
220 protected:
221 
222 private:
223 
225 
226 
227  // ===========================================================
228  // IMPLICIT_CRG_INTERVAL FACETS
229  // ===========================================================
231 
232 public:
233 
234 protected:
235 
236 private:
237 
239 
240 
241  // ===========================================================
243  // ===========================================================
245 
246 public:
247 
248 protected:
249 
250 private:
251 
253 
254 
255  // ===========================================================
257  // ===========================================================
259 
260 public:
261 
262 protected:
263 
264 private:
265 
267 
268 
269  // ===========================================================
271  // ===========================================================
273 
274 public:
275 
277 
281  virtual bool is_jim(pod_index_type xmbr_index) const;
282 
284 
288  virtual pod_index_type dof_tuple_id(pod_index_type xmbr_index) const;
289 
293  pod_index_type block_dof_tuple_id() const;
294 
298  pod_index_type zone_dof_tuple_id() const;
299 
303  pod_index_type vertex_dof_tuple_id() const;
304 
305 protected:
306 
307 private:
308 
310 
311 
312  // ===========================================================
314  // ===========================================================
316 
317 public:
318 
319 protected:
320 
321 private:
322 
324 
325 
326  // ===========================================================
328  // ===========================================================
330 
331 public:
332 
336  virtual bool is_initialized() const;
337 
342  void initialize(const namespace_poset& xnamespace);
343 
348  virtual const std::string& class_name() const;
349 
350 protected:
351 
352 private:
353 
355 
356 
357  // ===========================================================
359  // ===========================================================
361 
362 public:
363 
367  virtual bool is_ancestor_of(const any* other) const;
368 
373  virtual homogeneous_block_crg_interval* clone() const;
374 
378  virtual bool invariant() const;
379 
380 protected:
381 
382 private:
383 
385 };
386 
387 // ===========================================================
388 // NON-MEMBER FUNCTIONS
389 // ===========================================================
390 
391 } // namespace fiber_bundle
392 
393 #endif // ifndef HOMOGENEOUS_BLOCK_CRG_INTERVAL_H
virtual pod_index_type dof_tuple_id(pod_index_type xmbr_index) const =0
The dof tuple id of the member with index xmbr_index.
The default name space; a poset which contains other posets as members.
pod_index_type _vertices_space_id
The index of the vertex id space.
pod_index_type _connectivity_begin
The beginning offset of the connectivity id spaces in the id space family.
virtual pod_index_type cells_begin() const =0
The beginning of the local cells interval.
Abstract base class with useful features for all objects.
Definition: any.h:39
Emulator for a interval of implicit base space members representing a homogeneous collection of cells...
virtual pod_index_type cells_end() const =0
The end of the local cells interval.
virtual bool is_jim(pod_index_type xmbr_index) const =0
True if and only if the member with index xmbr_index is join-irreducible.
pod_index_type _adjacency_begin
The beginning offset of the adjacency id spaces in the id space family.
int_type pod_index_type
The plain old data index type.
Definition: pod_types.h:49
pod_index_type _zones_space_id
The index of the zone id space.
Namespace for the sheaves component of the sheaf system.
bool _vertices_initialized
True if the vertex id space has been initialized.
Abstract emulator for a interval of implicit base space members.
bool _zones_initialized
True if the zone id space has been initialized.
Namespace for the fiber_bundles component of the sheaf system.