SheafSystem  0.0.0.0
section_pusher_pullback_action.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 SECTION_PUSHER_PULLBACK_ACTION_H
22 #define SECTION_PUSHER_PULLBACK_ACTION_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef DISCRETIZATION_PUSH_ACTION_H
29 #include "SheafSystem/discretization_push_action.h"
30 #endif
31 
32 #ifndef PULLBACK_MAP_H
33 #include "SheafSystem/pullback_map.h"
34 #endif
35 
36 namespace geometry
37 {
38 class sec_ed_invertible;
39 }
40 
41 namespace fields
42 {
43 
49 {
50 
51  // ===========================================================
53  // ===========================================================
55 
56 public:
57 
62 
67 
71  typedef pb_map_type::iterator pb_map_itr_type;
72 
76  typedef std::pair<pb_map_itr_type, pb_map_itr_type> pb_map_range_type;
77 
78  // No default constructor.
79 
85  pb_map_type& xmap);
86 
87  // Default memberwise copy constructor will do.
88 
93 
97  virtual void operator () (const scoped_index& xdisc_id,
98  block<sec_vd_value_type>& xglobal_coords);
99 
103  geometry::sec_ed_invertible& domain_coords();
104 
105 private:
106 
110  geometry::sec_ed_invertible& _domain_coords;
111 
115  pb_map_type& _pb_map;
116 
120  pb_type _pb;
121 
123 
124 };
125 
126 // ===========================================================
127 // NON-MEMBER FUNCTIONS
128 // ===========================================================
129 
130 } // namespace fields
131 
132 #endif // ifndef SECTION_PUSHER_PULLBACK_ACTION_H
pb_map_type::iterator pb_map_itr_type
The type of iterator for the pullback map.
Namespace for fields component of sheaf system.
The action to executed by discretization_pusher::push on each member of a discretization subposet...
pullback_map pb_map_type
The type for the domain evaluation member to range pullback map.
A discretization push action for section_pusher; pulls a range discretization member back into the do...
An abstract invertible section of a fiber bundle with a d-dimensional base space and a d-dimensional ...
pullback_map_entry pb_type
The type of entry in the pullback map.
An index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
An entry in a discretization map.
Definition: pullback_map.h:44
A map from members of a discretization subposet to points in a base space.
Definition: pullback_map.h:130
Namespace for geometry component of sheaf system.
Definition: field_vd.h:54
std::pair< pb_map_itr_type, pb_map_itr_type > pb_map_range_type
The type of iterator range for the pullback map.