SheafSystem  0.0.0.0
structured_block_1d_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 STRUCTURED_BLOCK_1D_CRG_INTERVAL_H
22 #define STRUCTURED_BLOCK_1D_CRG_INTERVAL_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef HOMOGENEOUS_BLOCK_CRG_INTERVAL_H
29 #include "SheafSystem/homogeneous_block_crg_interval.h"
30 #endif
31 
32 namespace fiber_bundle
33 {
34 
35  using namespace sheaf;
36 
44 {
45 
46  friend class fiber_bundles_namespace;
47 
48  // ===========================================================
50  // ===========================================================
52 
53 public:
54 
59 
64 
68  size_type i_size() const;
69 
70 protected:
71 
72 private:
73 
77  size_type _i_size;
78 
82  size_type _i_vertex_size;
83 
87  pod_index_type _zone_begin;
88 
92  pod_index_type _vertex_begin;
93 
95 
96 
97  // ===========================================================
99  // ===========================================================
101 
102 public:
103 
104 protected:
105 
106 private:
107 
109 
110 
111  // ===========================================================
113  // ===========================================================
115 
116 public:
117 
118 protected:
119 
123  void initialize_zones(base_space_poset& xhost);
124 
125 private:
126 
128 
129 
130  // ===========================================================
132  // ===========================================================
134 
135 public:
136 
137 protected:
138 
142  void initialize_vertices(base_space_poset& xhost);
143 
144 private:
145 
147 
148 
149  // ===========================================================
151  // ===========================================================
153 
154 public:
155 
157 
162  virtual int db(pod_index_type xmbr_id) const;
163 
168  virtual pod_index_type d_cells_space_id(int xd) const;
169 
170 protected:
171 
172 private:
173 
175 
176 
177  // ===========================================================
179  // ===========================================================
181 
182 public:
183 
184 protected:
185 
189  void initialize_block_vertices();
190 
191 private:
192 
194 
195 
196  // ===========================================================
198  // ===========================================================
200 
201 public:
202 
203 protected:
204 
205 private:
206 
208 
209 
210  // ===========================================================
212  // ===========================================================
214 
215 public:
216 
217 protected:
218 
219 private:
220 
222 
223 
224  // ===========================================================
226  // ===========================================================
228 
229 public:
230 
234  static void get_size(size_type xi_size, size_type& result);
235 
236 protected:
237 
238 private:
239 
241 
242 
243  // ===========================================================
245  // ===========================================================
247 
248 public:
249 
250 protected:
251 
255  virtual void initialize_lower_covers();
256 
260  virtual void initialize_upper_covers();
261 
262 private:
263 
265 
266 
267  // ===========================================================
269  // ===========================================================
271 
272 public:
273 
278  static void get_dof_tuple_ids(poset_state_handle& xhost,
279  size_type xi_size,
280  block<pod_index_type>& result);
281 
282 protected:
283 
284 private:
285 
287 
288 
289  // ===========================================================
291  // ===========================================================
293 
294 public:
295 
299  static void get_private_data(size_type xi_size, block<pod_index_type>& result);
300 
301 protected:
302 
306  virtual size_type implicit_private_data_size() const;
307 
311  virtual void get_implicit_private_data(block<pod_index_type>& xdata) const;
312 
316  virtual void put_implicit_private_data(const block<pod_index_type>& xdata);
317 
318 private:
319 
321 
322 
323  // ===========================================================
325  // ===========================================================
327 
328 public:
329 
333  virtual void finalize(poset_state_handle& xhost);
334 
335 protected:
336 
337 private:
338 
340 
341 
342  // ===========================================================
344  // ===========================================================
346 
347 public:
348 
353  virtual const std::string& class_name() const;
354 
355 protected:
356 
357 private:
358 
362  static bool make_prototype();
363 
365 
366 
367  // ===========================================================
369  // ===========================================================
371 
372 public:
373 
377  virtual bool is_ancestor_of(const any* other) const;
378 
383  virtual structured_block_1d_crg_interval* clone() const;
384 
388  virtual bool invariant() const;
389 
390 protected:
391 
392 private:
393 
395 };
396 
397 // ===========================================================
398 // NON-MEMBER FUNCTIONS
399 // ===========================================================
400 
401 } // namespace fiber_bundle
402 
403 #endif // ifndef STRUCTURED_BLOCK_1D_CRG_INTERVAL_H
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
A client handle for a general, abstract partially order set.
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...
Emulator for a interval of implicit base space members representing a homogeneous collection of cells...
Emulator for a interval of implicit base space members representing a 1 dimensional structured block...
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
Definition: sheaf.h:52
virtual int db(pod_index_type xmbr_id) const =0
The dimension of the member with id xmbr_id. Does not require access to dof tuple.
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.
Namespace for the fiber_bundles component of the sheaf system.