SheafSystem  0.0.0.0
fiber_bundle.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 #ifndef FIBER_BUNDLE_H
19 #define FIBER_BUNDLE_H
20 
21 #ifndef SHEAF_DLL_SPEC_H
22 #include "SheafSystem/sheaf_dll_spec.h"
23 #endif
24 
25 #ifndef SHEAF_H
26 #include "SheafSystem/sheaf.h"
27 #endif
28 
29 namespace sheaf
30 {
31 class poset_path;
32 }
33 
37 namespace fiber_bundle
38 {
39 
40 using namespace sheaf;
41 
42 // The following types are derived from the various roles that
43 // appear in the structure of a section of a fiber bundle, especially
44 // the most common category, vector bundle. They are defined here,
45 // as opposed to the classes which represent their logical origin,
46 // in order to avoid including the class headers just to get these types.
47 //
48 // Note that since the value of a section is a member of a fiber space,
49 // vd and sec_vd share the same value type. But since vd and sec_vd
50 // don't actually share dofs, they don't in principle have the same dof type.
51 // Of course, all these types are double in practice.
52 
57 typedef double chart_point_coord_type;
58 
63 typedef double vd_value_type;
64 
68 typedef double vd_dof_type;
69 
73 typedef vd_value_type sec_vd_value_type;
74 
78 typedef double sec_vd_dof_type;
79 
84 poset_path SHEAF_DLL_SPEC standard_section_space_path(const poset_path& xfiber_path,
85  const poset_path& xbase_path);
86 
90 poset_path SHEAF_DLL_SPEC standard_section_space_schema_path(const poset_path& xsection_space_path);
91 
95 poset_path SHEAF_DLL_SPEC standard_fiber_path();
96 
100 poset_path SHEAF_DLL_SPEC standard_vector_space_path();
101 
102 };
103 
104 #endif // ifndef FIBER_BUNDLE_H
poset_path SHEAF_DLL_SPEC standard_fiber_path()
The standard path for the fiber.
double chart_point_coord_type
The type of local coordinate in the base space; the scalar type for the local coordinate vector space...
Definition: fiber_bundle.h:57
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
Definition: poset_path.h:48
poset_path SHEAF_DLL_SPEC standard_section_space_path(const poset_path &xfiber_path, const poset_path &xbase_path)
The standard path for the section space with fiber space path xfiber_path and base space path xbase_p...
Definition: fiber_bundle.cc:30
poset_path SHEAF_DLL_SPEC standard_section_space_schema_path(const poset_path &xsection_space_path)
The standard path for the section space schema.
Definition: fiber_bundle.cc:55
double vd_dof_type
The type of degree of freedom in the fiber space.
Definition: fiber_bundle.h:68
Namespace for the sheaves component of the sheaf system.
poset_path SHEAF_DLL_SPEC standard_vector_space_path()
The standard path for the vector space.
double sec_vd_dof_type
The type of degree of freedom in the section space.
Definition: fiber_bundle.h:78
Namespace for the fiber_bundles component of the sheaf system.
vd_value_type sec_vd_value_type
The type of component in the value of a section at a point.
Definition: fiber_bundle.h:73
double vd_value_type
The type of component in the fiber; the scalar type in the fiber vector space.
Definition: fiber_bundle.h:63