SheafSystem  0.0.0.0
base_space_crg_interval.h
Go to the documentation of this file.
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
20 
21 #ifndef BASE_SPACE_CRG_INTERVAL_H
22 #define BASE_SPACE_CRG_INTERVAL_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef IMPLICIT_CRG_INTERVAL_H
29 #include "SheafSystem/implicit_crg_interval.h"
30 #endif
31 
32 #ifndef SCATTERED_INSERTION_INDEX_SPACE_HANDLE_H
33 #include "SheafSystem/scattered_insertion_index_space_handle.h"
34 #endif
35 
36 namespace fiber_bundle
37 {
38 
39 class base_space_poset;
41 
42 using namespace sheaf;
43 
44 // Forward declarations to support friend declaration.
45 
46 SHEAF_DLL_SPEC size_t deep_size(const base_space_crg_interval& m);
47 
52 class SHEAF_DLL_SPEC base_space_crg_interval : public implicit_crg_interval
53 {
54 
55  friend SHEAF_DLL_SPEC size_t deep_size(const base_space_crg_interval& m);
56 
57  // ===========================================================
59  // ===========================================================
61 
62 public:
63 
68 
72  virtual ~base_space_crg_interval();
73 
77  virtual pod_index_type cells_begin() const = 0;
78 
82  void cells_begin(scoped_index& result) const;
83 
87  virtual pod_index_type cells_end() const = 0;
88 
92  void cells_end(scoped_index& result) const;
93 
98  virtual int db(pod_index_type xmbr_id) const = 0;
99 
104  int db(const scoped_index& xmbr_id) const;
105 
110  virtual pod_index_type d_cells_space_id(int xd) const = 0;
111 
112 protected:
113 
114 private:
115 
117 
118 
119  // ===========================================================
121  // ===========================================================
123 
124 public:
125 
129  bool block_vertices_initialized() const;
130 
134  pod_index_type block_vertices_space_id() const;
135 
136 protected:
137 
141  std::string block_vertices_name() const;
142 
147 
152 
153 private:
154 
156 
157 
158  // ===========================================================
160  // ===========================================================
162 
163 public:
164 
165 protected:
166 
167 private:
168 
170 
171 
172  // ===========================================================
174  // ===========================================================
176 
177 public:
178 
182  virtual pod_index_type block_dof_tuple_id() const = 0;
183 
184 protected:
185 
186 private:
187 
189 
190 
191  // ===========================================================
193  // ===========================================================
195 
196 public:
197 
201  virtual bool is_initialized() const;
202 
207  void initialize(const namespace_poset& xnamespace);
208 
213  virtual const std::string& class_name() const;
214 
215 protected:
216 
217 private:
218 
220 
221 
222  // ===========================================================
224  // ===========================================================
226 
227 public:
228 
232  virtual bool is_ancestor_of(const any* other) const;
233 
238  virtual base_space_crg_interval* clone() const = 0;
239 
243  virtual bool invariant() const;
244 
245 protected:
246 
247 private:
248 
250 };
251 
252 // ===========================================================
253 // NON-MEMBER FUNCTIONS
254 // ===========================================================
255 
256 } // namespace fiber_bundle
257 
258 #endif // ifndef BASE_SPACE_CRG_INTERVAL_H
The default name space; a poset which contains other posets as members.
bool _block_vertices_initialized
True if the block vertices id space has been initialized.
Abstract implementation of crg_interval for an interval of implicit cover relation graph members...
Abstract base class with useful features for all objects.
Definition: any.h:39
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
An index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
pod_index_type _block_vertices_space_id
The id space index of the block vertices id space.
int_type pod_index_type
The plain old data index type.
Definition: pod_types.h:49
Namespace for the sheaves component of the sheaf system.
Abstract emulator for a interval of implicit base space members.
Namespace for the fiber_bundles component of the sheaf system.