SheafSystem  0.0.0.0
body_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 BODY_PUSHER_PULLBACK_ACTION_H
22 #define BODY_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 BLOCK_H
33 #include "SheafSystem/block.h"
34 #endif
35 
36 #ifndef CHART_POINT_3D_H
37 #include "SheafSystem/chart_point_3d.h"
38 #endif
39 
40 #ifndef PULLBACK_MAP_H
41 #include "SheafSystem/pullback_map.h"
42 #endif
43 
44 namespace geometry
45 {
46 class sec_ed_invertible;
47 }
48 
49 namespace fields
50 {
51 
57 {
58 
59  // ===========================================================
61  // ===========================================================
63 
64 public:
65 
70 
75 
79  typedef pb_map_type::iterator pb_map_itr_type;
80 
84  typedef std::pair<pb_map_itr_type, pb_map_itr_type> pb_map_range_type;
85 
86  // No default constructor.
87 
93  pb_map_type& xmap);
94 
95  // Default memberwise copy constructor will do.
96 
100  virtual ~body_pusher_pullback_action();
101 
105  virtual void operator () (const scoped_index& xdisc_id,
106  block<sec_vd_value_type>& xglobal_coords);
107 
111  geometry::sec_ed_invertible& domain_coords();
112 
113 private:
114 
118  geometry::sec_ed_invertible& _domain_coords;
119 
123  block<chart_point_3d> _domain_pts;
124 
128  pb_map_type& _pb_map;
129 
133  pb_type _pb;
134 
136 
137 };
138 
139 // ===========================================================
140 // NON-MEMBER FUNCTIONS
141 // ===========================================================
142 
143 } // namespace fields
144 
145 #endif // ifndef BODY_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...
An abstract invertible section of a fiber bundle with a d-dimensional base space and a d-dimensional ...
An index within the external ("client") scope of a given id space.
Definition: scoped_index.h:116
pullback_map_entry pb_type
The type of entry in the pullback map.
An entry in a discretization map.
Definition: pullback_map.h:44
std::pair< pb_map_itr_type, pb_map_itr_type > pb_map_range_type
The type of iterator range for the pullback map.
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
A discretization push action for body_pusher; pulls a vertex back into the domain base space...
pullback_map pb_map_type
The type for the domain evaluation member to range pullback map.