SheafSystem  0.0.0.0
sec_jcb_ed.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 SEC_JCB_ED_H
22 #define SEC_JCB_ED_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef JCB_ED_H
29 #include "SheafSystem/jcb_ed.h"
30 #endif
31 
32 #ifndef SEC_JCB_H
33 #include "SheafSystem/sec_jcb.h"
34 #endif
35 
36 namespace fiber_bundle
37 {
38 
39 //==============================================================================
40 // CLASS SEC_JCB_ED
41 //==============================================================================
42 
46 class SHEAF_DLL_SPEC sec_jcb_ed : public sec_jcb
47 {
48  // ===========================================================
50  // ===========================================================
52 
53 public:
54 
58  typedef jcb_ed fiber_type;
59 
60 
66  static host_type& new_host(namespace_type& xns,
67  const poset_path& xhost_path,
68  const poset_path& xschema_path,
69  const poset_path& xdomain_space_path,
70  const poset_path& xrange_space_path,
71  bool xauto_access);
72 
73 protected:
74 
75 private:
76 
78 
79 
80  //============================================================================
82  //============================================================================
84 
85 public:
86 
90  sec_jcb_ed();
91 
96  sec_jcb_ed(const sec_rep_space* xhost, pod_index_type xhub_id);
97 
102  sec_jcb_ed(const sec_rep_space* xhost, const scoped_index& xid);
103 
108  sec_jcb_ed(const sec_rep_space* xhost, const std::string& xname);
109 
114  sec_jcb_ed(const namespace_poset* xnamespace,
115  const poset_path& xpath,
116  bool xauto_access = true);
117 
121  explicit sec_jcb_ed(const sec_rep_space_member* xother);
122 
126  sec_jcb_ed(sec_rep_space* xhost,
127  section_dof_map* xdof_map = 0,
128  bool xauto_access = true);
129 
133  virtual sec_jcb_ed& operator=(const abstract_poset_member& xother);
134 
138  sec_jcb_ed& operator=(const sec_jcb_ed& xother);
139 
143  sec_jcb_ed& operator=(const jcb_ed& xfiber);
144 
148  sec_jcb_ed& operator=(const jcb_ed_lite& xfiber);
149 
153  ~sec_jcb_ed();
154 
158  virtual const fiber_type& fiber_prototype() const;
159 
160 protected:
161 
162 private:
163 
165 
166 
167  //============================================================================
169  //============================================================================
171 
172 public:
173 
174 protected:
175 
176 private:
177 
179 
180 
181  //============================================================================
183  //============================================================================
185 
186 public:
187 
188 protected:
189 
190 private:
191 
193 
194 
195  //============================================================================
197  //============================================================================
199 
200 public:
201 
202 protected:
203 
204 private:
205 
207 
208 
209  //============================================================================
211  //============================================================================
213 
214 public:
215 
219  virtual const std::string& class_name() const;
220 
224  static const std::string& static_class_name();
225 
229  virtual sec_jcb_ed* clone() const;
230 
236  inline sec_jcb_ed* clone(bool xnew_state, bool xauto_access = true) const
237  {
238  return static_cast<sec_jcb_ed*>(sec_jcb::clone(xnew_state, xauto_access));
239  }
240 
241 protected:
242 
243 private:
244 
246 
247 
248  //============================================================================
250  //============================================================================
252 
253 public:
254 
258  bool fiber_is_ancestor_of(const any* xother) const;
259 
263  bool is_ancestor_of(const any* xother) const;
264 
268  bool invariant() const;
269 
270 protected:
271 
272 private:
273 
275 
276 };
277 
278 } // namespace fiber_bundle
279 
280 #endif // ifndef SEC_JCB_ED_H
281 
282 
The abstract map from section dof ids to section dof values of heterogeneous type.
Abstract jacobian for d dimensional Euclidean space (volatile version).
Definition: jcb_ed.h:44
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...
jcb_ed fiber_type
The fiber type.
Definition: sec_jcb_ed.h:58
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
A member of a sec_rep_space; a section.
Abstract base class with useful features for all objects.
Definition: any.h:39
An index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
A section of a bundle with fiber type jcb_ed.
Definition: sec_jcb_ed.h:46
A section of a bundle with fiber type jcb.
Definition: sec_jcb.h:49
int_type pod_index_type
The plain old data index type.
Definition: pod_types.h:49
An abstract section space of Jacobians.
Definition: sec_jcb_space.h:53
Abstract jacobian for d dimensional Euclidean space (persistent version).
Definition: jcb_ed.h:185
An abstract client handle for a member of a poset.
virtual sec_jcb * clone() const
Make a new handle, no state instance of current.
Definition: sec_jcb.cc:621
Namespace for the fiber_bundles component of the sheaf system.
sec_jcb_ed * clone(bool xnew_state, bool xauto_access=true) const
Make a new handle instance of current. Attach the new instance to a new state if xnew_state is true...
Definition: sec_jcb_ed.h:236
A handle for a poset whose members are numerical representations of sections of a fiber bundle...
Definition: sec_rep_space.h:61