SheafSystem  0.0.0.0
constant_quad.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 constant_quad
19 
20 #ifndef CONSTANT_QUAD_H
21 #define CONSTANT_QUAD_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 #ifndef CONSTANT_FCN_SPACE_H
28 #include "SheafSystem/constant_fcn_space.h"
29 #endif
30 
31 namespace fiber_bundle
32 {
33 
38 class SHEAF_DLL_SPEC constant_quad : public constant_fcn_space
39 {
40 
41  // ===========================================================
43  // ===========================================================
45 
46 public:
47 
51  constant_quad();
52 
56  constant_quad(const constant_quad& xother);
57 
61  virtual ~constant_quad();
62 
63 protected:
64 
65 private:
66 
68 
69  // ===========================================================
71  // ===========================================================
73 
74 public:
75 
76 protected:
77 
78 private:
79 
81 
82  // ===========================================================
84  // ===========================================================
86 
87 public:
88 
89 protected:
90 
97  enum domain_constants {DB=2};
98 
102  value_type _basis_deriv_value_buffer[int(DB)*int(DL)];
103 
104 private:
105 
107 
108  // ===========================================================
110  // ===========================================================
112 
113 public:
114 
119  virtual value_type volume(const dof_type xcoord_dofs[],
120  size_type xcoord_dofs_ub,
121  size_type xdf);
122 
123 protected:
124 
125 private:
126 
128 
129  // ===========================================================
131  // ===========================================================
133 
134 public:
135 
136 protected:
137 
138 private:
139 
141 
142  // ===========================================================
144  // ===========================================================
146 
147 public:
148 
153  virtual int db() const;
154 
158  virtual void local_coordinates(pod_index_type xindex,
159  coord_type xresult[],
160  size_type xresult_ub) const;
165  virtual bool in_standard_domain(const dof_type xlocal_coords[],
166  size_type xlocal_coords_ub) const;
167 
168 protected:
169 
170 private:
171 
173 
174  // ===========================================================
176  // ===========================================================
178 
179 public:
180 
181 protected:
182 
183 private:
184 
186 
187  // ===========================================================
189  // ===========================================================
191 
192 public:
193 
197  virtual constant_quad* clone() const;
198 
202  virtual constant_quad& operator=(const section_evaluator& xother);
203 
207  constant_quad& operator=(const constant_quad& xother);
208 
212  virtual bool invariant() const;
213 
217  virtual bool is_ancestor_of(const any* xother) const;
218 
219 protected:
220 
221 private:
222 
224 
225 };
226 
227 } // namespace fiber_bundle
228 
229 #endif // ifndef CONSTANT_QUAD_H
A section evaluator with a constant value over a square 2D domain.
Definition: constant_quad.h:38
sec_vd_dof_type dof_type
The type of degree of freedom.
Abstract base class with useful features for all objects.
Definition: any.h:39
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
Definition: sheaf.h:52
chart_point_coord_type coord_type
The type of local coordinate; the scalar type for the local coordinate vector space.
vd_value_type value_type
The type of component in the value; the scalar type in the range vector space.
An abstract local section evaluator; a map from {local coordinates x dofs} to section value...
int_type pod_index_type
The plain old data index type.
Definition: pod_types.h:49
domain_constants
The base dimension; the dimension of the local coordinates (static const version).
Definition: constant_quad.h:97
An section evaluator with a constant value over an abstract domain.
Namespace for the fiber_bundles component of the sheaf system.