SheafSystem  0.0.0.0
point_connectivity.h
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 
18 // Interface for class point_connectivity
19 
20 #ifndef POINT_CONNECTIVITY_H
21 #define POINT_CONNECTIVITY_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef BLOCK_CONNECTIVITY_H
28 #include "SheafSystem/block_connectivity.h"
29 #endif
30 
31 namespace fiber_bundle
32 {
33 
34  using namespace sheaf;
35 
41 class SHEAF_DLL_SPEC point_connectivity : public block_connectivity
42 {
43 public:
44 
45 
46  // ===========================================================
48  // ===========================================================
50 
51 public:
52 
58 
63 
67  point_connectivity(size_type xi_size, pod_index_type xstart=0);
68 
72  virtual ~point_connectivity();
73 
79  enum static_const_int {NODES_PER_ELEMENT = 1};
80 
81 protected:
82 
83 private:
84 
86 
87 
88 protected:
89 
93  void create_connectivity(size_type xi_size, pod_index_type xstart_id);
94 
95  // ===========================================================
97  // ===========================================================
99 
100 public:
101 
105  virtual cell_type element_type() const;
106 
107 protected:
108 
109 private:
110 
112 
113  // ===========================================================
115  // ===========================================================
117 
118 public:
123  virtual point_connectivity* clone() const;
124 
128  virtual bool invariant() const;
129 
133  virtual bool is_ancestor_of(const any* other) const;
134 
135 protected:
136 
137 private:
138 
140 
141 };
142 
143 } // namespace fiber_bundle
144 
145 #endif // ifndef POINT_CONNECTIVITY_H
Zone to node connectivity relation for a block of zones of a given type.
Abstract base class with useful features for all objects.
Definition: any.h:39
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
Definition: sheaf.h:52
static_const_int
Static const integral data members.
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.
Nodal connectivity for a block containing zones of type point. Since a point block is just a collecti...
Namespace for the fiber_bundles component of the sheaf system.