SheafSystem  0.0.0.0
gln_space.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 gln_space.
19 
20 #ifndef GLN_SPACE_H
21 #define GLN_SPACE_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef POSET_H
28 #include "SheafSystem/poset.h"
29 #endif
30 
31 #ifndef GLN_TABLE_DOFS_TYPE_H
32 #include "SheafSystem/gln_table_dofs_type.h"
33 #endif
34 
35 
36 namespace sheaf
37 {
38  class namespace_poset;
39 }
40 
41 namespace fiber_bundle
42 {
43 
44  using namespace sheaf;
45 
46  class gln;
47  class vd_space;
48 
52 class SHEAF_DLL_SPEC gln_space : public poset
53 {
54  friend class fiber_bundles_namespace;
55 
56 public:
57 
58  // ===========================================================
60  // ===========================================================
62 
63 public:
64 
68  typedef gln member_type;
69 
74 
78  static const std::string& standard_schema_poset_name();
79 
83  static const poset_path& standard_schema_path();
84 
89 
94  static int d(const namespace_poset& xns, const poset_path& xvector_space_path, bool xauto_access);
95 
100  static int d(int xn);
101 
107  static gln_space& new_table(namespace_type& xhost,
108  const poset_path& xpath,
109  const poset_path& xschema_path,
110  const poset_path& xvector_space_path,
111  bool xauto_access);
112 
113  //============================================================================
114  // TABLE DOFS
115  //============================================================================
116 
120  int n() const;
121 
125  int n(bool xauto_access) const;
126 
130  poset_path scalar_space_path() const;
131 
135  poset_path scalar_space_path(bool xauto_access) const;
136 
140  poset_path vector_space_path() const;
141 
145  poset_path vector_space_path(bool xauto_access) const;
146 
150  virtual int d() const;
151 
155  int d(bool xauto_access) const;
156 
157 
158 protected:
159 
164  gln_space();
165 
169  gln_space(const gln_space& xother) { };
170 
174  virtual ~gln_space();
175 
179  gln_space(gln* xtop, gln* xbottom);
180 
181 private:
182 
184 
185  // ===========================================================
187  // ===========================================================
189 
190 public:
191 
192 protected:
193 
194 private:
195 
199  static bool make_prototype();
200 
202 
203  // ===========================================================
205  // ===========================================================
207 
208 public:
209 
213  virtual poset_type type_id() const;
214 
218  virtual const char* class_name() const;
219 
223  virtual pod_index_type prereq_id(int xi) const;
224 
225 protected:
226 
231  {
232  return const_cast<gln_space&>(*this);
233  };
234 
235 private:
236 
238 
239  // ===========================================================
241  // ===========================================================
243 
244 public:
245 
249  virtual bool is_ancestor_of(const any* xother) const;
250 
255  virtual gln_space* clone() const;
256 
260  virtual bool invariant() const;
261 
262 protected:
263 private:
264 
266 
267 };
268 
269 
270 } // namespace fiber_bundle
271 
272 
273 #endif // GLN_SPACE_H
The default name space; a poset which contains other posets as members.
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
A client handle for a general, abstract partially order set.
A path defined by a poset name and a member name separated by a forward slash (&#39;/&#39;). For example: "cell_definitions/triangle".
Definition: poset_path.h:48
The mathematical group GL(n, R). GL(n,R) is the group of general, invertible, linear transformations ...
Definition: gln.h:289
gln_space(const gln_space &xother)
Copy constructor; disabled.
Definition: gln_space.h:169
Abstract base class with useful features for all objects.
Definition: any.h:39
A client handle for a mutable partially ordered set.
Definition: poset.h:40
gln_table_dofs_type table_dofs_type
The table dofs type defined by the standard schema.
Definition: gln_space.h:88
A Cartesian product space.
Definition: gln_space.h:52
gln member_type
The type of member associated with this space.
Definition: gln_space.h:68
An abstract vector space of dimension d.
Definition: vd_space.h:47
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.
gln_space & operator=(const poset_state_handle &xother)
Assignment operator; disabled.
Definition: gln_space.h:230
Namespace for the fiber_bundles component of the sheaf system.
vd_space vector_space_type
The type of the vector space associated with this space.
Definition: gln_space.h:73