SheafSystem  0.0.0.0
point_block_crg_interval.h
Go to the documentation of this file.
1 
2 
3 //
4 // Copyright (c) 2014 Limit Point Systems, Inc.
5 //
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
9 //
10 // http://www.apache.org/licenses/LICENSE-2.0
11 //
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
17 //
18 
21 
22 #ifndef POINT_BLOCK_CRG_INTERVAL_H
23 #define POINT_BLOCK_CRG_INTERVAL_H
24 
25 #ifndef SHEAF_DLL_SPEC_H
26 #include "SheafSystem/sheaf_dll_spec.h"
27 #endif
28 
29 #ifndef HOMOGENEOUS_BLOCK_CRG_INTERVAL_H
30 #include "SheafSystem/homogeneous_block_crg_interval.h"
31 #endif
32 
33 namespace fiber_bundle
34 {
35 
36  using namespace sheaf;
37 
43 {
44  friend class fiber_bundles_namespace;
45 
46  // ===========================================================
48  // ===========================================================
50 
51 public:
52 
57 
61  virtual ~point_block_crg_interval();
62 
63 protected:
64 
69 
70 private:
71 
73 
74 
75  // ===========================================================
77  // ===========================================================
79 
80 public:
81 
82 protected:
83 
84 private:
85 
87 
88 
89  // ===========================================================
91  // ===========================================================
93 
94 public:
95 
96 protected:
97 
98 private:
99 
101 
102 
103  // ===========================================================
105  // ===========================================================
107 
108 public:
109 
110 protected:
111 
115  void initialize_vertices(base_space_poset& xhost);
116 
117 private:
118 
120 
121 
122  // ===========================================================
124  // ===========================================================
126 
127 public:
128 
130 
135  virtual int db(pod_index_type xmbr_id) const;
136 
141  virtual pod_index_type d_cells_space_id(int xd) const;
142 
143 protected:
144 
145 private:
146 
148 
149 
150  // ===========================================================
152  // ===========================================================
154 
155 public:
156 
157 protected:
158 
162  void initialize_block_vertices(pod_index_type* xdata);
163 
164 private:
165 
167 
168 
169  // ===========================================================
171  // ===========================================================
173 
174 public:
175 
176 protected:
177 
178 private:
179 
181 
182 
183  // ===========================================================
185  // ===========================================================
187 
188 public:
189 
190 protected:
191 
192 private:
193 
195 
196 
197  // ===========================================================
199  // ===========================================================
201 
202 public:
203 
208  static void get_size(size_type xi_size, size_type& result);
209 
214  static void get_size(size_type xi_size, size_type xj_size, size_type& result);
215 
220  static void get_size(size_type xi_size,
221  size_type xj_size,
222  size_type xk_size,
223  size_type& result);
224 
225 protected:
226 
227 private:
228 
230 
231 
232  // ===========================================================
234  // ===========================================================
236 
237 public:
238 
239 protected:
240 
244  virtual void initialize_lower_covers();
245 
249  virtual void initialize_upper_covers();
250 
251 private:
252 
254 
255 
256  // ===========================================================
258  // ===========================================================
260 
261 public:
262 
267  static void get_dof_tuple_ids(poset_state_handle& xhost,
268  size_type xi_size,
269  block<pod_index_type>& result);
270 
275  static void get_dof_tuple_ids(poset_state_handle& xhost,
276  size_type xi_size,
277  size_type xj_size,
278  block<pod_index_type>& result);
279 
284  static void get_dof_tuple_ids(poset_state_handle& xhost,
285  size_type xi_size,
286  size_type xj_size,
287  size_type xk_size,
288  block<pod_index_type>& result);
289 
290 protected:
291 
292 private:
293 
295 
296 
297  // ===========================================================
299  // ===========================================================
301 
302 public:
303 
307  static void get_private_data(size_type xi_size, block<pod_index_type>& result);
308 
312  static void get_private_data(size_type xi_size,
313  size_type xj_size,
314  block<pod_index_type>& result);
315 
319  static void get_private_data(size_type xi_size,
320  size_type xj_size,
321  size_type xk_size,
322  block<pod_index_type>& result);
323 
324 protected:
325 
329  virtual size_type implicit_private_data_size() const;
330 
334  virtual void get_implicit_private_data(block<pod_index_type>& xdata) const;
335 
339  virtual void put_implicit_private_data(const block<pod_index_type>& xdata);
340 
341 private:
342 
344 
345 
346  // ===========================================================
348  // ===========================================================
350 
351 public:
352 
356  virtual void finalize(poset_state_handle& xhost);
357 
358 protected:
359 
360 private:
361 
363 
364 
365  // ===========================================================
367  // ===========================================================
369 
370 public:
371 
376  virtual const std::string& class_name() const;
377 
378 protected:
379 
380 private:
381 
385  static bool make_prototype();
386 
388 
389 
390  // ===========================================================
392  // ===========================================================
394 
395 public:
396 
400  virtual bool is_ancestor_of(const any* other) const;
401 
406  virtual point_block_crg_interval* clone() const;
407 
411  virtual bool invariant() const;
412 
413 protected:
414 
415 private:
416 
418 };
419 
420 // ===========================================================
421 // NON-MEMBER FUNCTIONS
422 // ===========================================================
423 
424 } // namespace fiber_bundle
425 
426 #endif // ifndef POINT_BLOCK_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 uncon...
Emulator for a interval of implicit base space members representing a homogeneous collection of cells...
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.
size_type _vertex_size
The number of vertices.
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.