SheafSystem  0.0.0.0
fiber_bundles_namespace.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 FIBER_BUNDLES_NAMESPACE_H
22 #define FIBER_BUNDLES_NAMESPACE_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef SHEAVES_NAMESPACE_H
29 #include "SheafSystem/sheaves_namespace.h"
30 #endif
31 
32 #ifndef FIBER_BUNDLE_H
33 #include "SheafSystem/fiber_bundle.h"
34 #endif
35 
36 #ifndef BASE_SPACE_POSET_H
37 #include "SheafSystem/base_space_poset.h"
38 #endif
39 
40 namespace fiber_bundle
41 {
42 
43 using namespace sheaf;
44 
45 class base_space_member;
46 class sec_rep_descriptor_poset;
47 
53 class SHEAF_DLL_SPEC fiber_bundles_namespace : public sheaves_namespace
54 {
55 
56  // ===========================================================
58  // ===========================================================
60 
61 public:
62 
66  fiber_bundles_namespace(const std::string& xname);
67 
71  virtual ~fiber_bundles_namespace();
72 
73 protected:
74 
79 
84 
89 
90 private:
91 
93 
94 
95  // ===========================================================
97  // ===========================================================
99 
100 public:
101 
102 protected:
103 
107  void make_base_space_definitions();
108 
112  void make_base_space_schema_poset();
113 
117  virtual void make_base_space_schema_members();
118 
122  void make_base_space_member_prototypes_poset();
123 
127  virtual void make_base_space_member_prototypes(base_space_poset* xspace);
128 
132  void make_point_prototype(base_space_poset* xspace);
133 
137  void make_segment_prototype(base_space_poset* xspace);
138 
143  void make_segment_complex_prototype(base_space_poset* xspace);
144 
148  void make_triangle_prototype(base_space_poset* xspace);
149 
153  void make_triangle_nodes_prototype(base_space_poset* xspace);
154 
158  void make_triangle_complex_prototype(base_space_poset* xspace);
159 
163  void make_quad_prototype(base_space_poset* xspace);
164 
168  void make_quad_nodes_prototype(base_space_poset* xspace);
169 
173  void make_quad_complex_prototype(base_space_poset* xspace);
174 
178  void make_general_polygon_prototype(base_space_poset* xspace);
179 
183  void make_tetra_prototype(base_space_poset* xspace);
184 
188  void make_tetra_nodes_prototype(base_space_poset* xspace);
189 
193  void make_tetra_complex_prototype(base_space_poset* xspace);
194 
198  void make_hex_prototype(base_space_poset* xspace);
199 
203  void make_hex_nodes_prototype(base_space_poset* xspace);
204 
208  void make_hex_faces_nodes_prototype(base_space_poset* xspace);
209 
213  void make_hex_complex_prototype(base_space_poset* xspace);
214 
218  void make_general_polyhedron_prototype(base_space_poset* xspace);
219 
223  void make_zone_nodes_block_prototype(base_space_poset* xspace);
224 
228  void make_unstructured_block_prototype(base_space_poset* xspace);
229 
233  void make_structured_block_1d_prototype(base_space_poset* xspace);
234 
238  void make_structured_block_2d_prototype(base_space_poset* xspace);
239 
243  void make_structured_block_3d_prototype(base_space_poset* xspace);
244 
248  void make_point_block_1d_prototype(base_space_poset* xspace);
249 
253  void make_point_block_2d_prototype(base_space_poset* xspace);
254 
258  void make_point_block_3d_prototype(base_space_poset* xspace);
259 
263  void make_part_prototype(base_space_poset* xspace);
264 
269  void init_prototype_dof_map(base_space_member& xproto, int xdb);
270 
271 private:
272 
274 
275 
276  // ===========================================================
278  // ===========================================================
280 
281 public:
282 
283 protected:
284 
288  void make_fiber_space_definitions();
289 
293  void make_fiber_space_schema_poset();
294 
298  virtual void make_fiber_space_schema_members();
299 
303  virtual void make_fiber_spaces();
304 
305 private:
306 
308 
309 
310  // ===========================================================
312  // ===========================================================
314 
315 public:
316 
317 protected:
318 
322  void make_section_space_definitions();
323 
327  void make_sec_rep_descriptor_schema_poset();
328 
332  virtual void make_sec_rep_descriptor_schema_members();
333 
337  void make_sec_rep_descriptor_poset();
338 
342  virtual void make_sec_rep_descriptors(sec_rep_descriptor_poset* xhost);
343 
347  void make_section_space_schema_schema_poset();
348 
352  virtual void make_section_space_schema_schema_members();
353 
354 private:
355 
357 
358  // ===========================================================
360  // ===========================================================
362 
363 public:
364 
365 protected:
366 
370  virtual void link_poset(const namespace_poset_member& xmbr);
371 
372 private:
373 
375 
376  // ===========================================================
378  // ===========================================================
380 
381 public:
382 
386  static void initialize_prototypes();
387 
391  static void initialize_poset_prototypes();
392 
396  static void initialize_crg_interval_prototypes();
397 
401  static void initialize_dof_map_prototypes();
402 
406  static void initialize_id_space_prototypes();
407 
408 protected:
409 
414  virtual void virtual_initialize_prototypes();
415 
416 private:
417 
419 
420 
421 
422  // ===========================================================
424  // ===========================================================
426 
427 public:
428 
432  virtual poset_type type_id() const;
433 
437  virtual const char* class_name() const;
438 
439 protected:
440 
441 private:
442 
444 
445 
446  // ===========================================================
448  // ===========================================================
450 
451 public:
452 
453 protected:
454 
458  virtual void initialize_additional_members();
459 
460 private:
461 
463 
464 };
465 
466 } // namespace fiber_bundle
467 
468 #endif // ifndef FIBER_BUNDLES_NAMESPACE_H
fiber_bundles_namespace(const fiber_bundles_namespace &xother)
Copy constructor; disabled.
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
poset_type
Identifiers for poset types.
Definition: poset_type.h:41
The standard sheaves name space.
The poset for sec_rep_descriptors.
A client handle for a member of a base space poset.
A client handle for a member of a namespace poset.
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
Namespace for the sheaves component of the sheaf system.
Namespace for the fiber_bundles component of the sheaf system.