SheafSystem  0.0.0.0
constant_triangle.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_triangle
19 
20 #ifndef CONSTANT_TRIANGLE_H
21 #define CONSTANT_TRIANGLE_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 
37 class SHEAF_DLL_SPEC constant_triangle : public constant_fcn_space
38 {
39 
40  // ===========================================================
42  // ===========================================================
44 
45 public:
46 
51 
55  constant_triangle(const constant_triangle& xother);
56 
57 protected:
58 
59 private:
60 
62 
63  // ===========================================================
65  // ===========================================================
67 
68 public:
69 
70 protected:
71 
72 private:
73 
75 
76  // ===========================================================
78  // ===========================================================
80 
81 public:
82 
83 protected:
84 
91  enum domain_constants {DB=2};
92 
96  value_type _basis_deriv_value_buffer[int(DB)*int(DL)];
97 
98 private:
99 
101 
102  // ===========================================================
104  // ===========================================================
106 
107 public:
108 
113  virtual value_type volume(const dof_type xcoord_dofs[],
114  size_type xcoord_dofs_ub,
115  size_type xdf);
116 
117 protected:
118 
119 private:
120 
122 
123  // ===========================================================
125  // ===========================================================
127 
128 public:
129 
130 protected:
131 
132 private:
133 
135 
136  // ===========================================================
138  // ===========================================================
140 
141 public:
142 
147  virtual int db() const;
148 
152  virtual void local_coordinates(pod_index_type xindex,
153  coord_type xresult[],
154  size_type xresult_ub) const;
158  virtual void center(coord_type xresult[], size_type xresult_ub) const;
159 
164  virtual bool in_standard_domain(const dof_type xlocal_coords[], size_type xlocal_coords_ub) const;
165 
166 protected:
167 
168 private:
169 
171 
172  // ===========================================================
174  // ===========================================================
176 
177 public:
178 
179 protected:
180 
181 private:
182 
184 
185  // ===========================================================
187  // ===========================================================
189 
190 public:
191 
195  virtual constant_triangle* clone() const;
196 
200  virtual constant_triangle& operator=(const section_evaluator& xother);
201 
205  constant_triangle& operator=(const constant_triangle& xother);
206 
210  virtual ~constant_triangle();
211 
215  virtual bool invariant() const;
216 
220  virtual bool is_ancestor_of(const any* xother) const;
221 
222 protected:
223 
224 private:
225 
227 
228 };
229 
230 } // namespace fiber_bundle
231 
232 #endif // ifndef CONSTANT_TRIANGLE_H
A section evaluator with a constant value over a triangular 2D domain.
sec_vd_dof_type dof_type
The type of degree of freedom.
domain_constants
The base dimension; the dimension of the local coordinates (static const version).
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
An section evaluator with a constant value over an abstract domain.
Namespace for the fiber_bundles component of the sheaf system.