SheafSystem  0.0.0.0
field_traits.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 field_traits.
19 
20 #ifndef FIELD_TRAITS_H
21 #define FIELD_TRAITS_H
22 
23 #ifndef SHEAF_DLL_SPEC_H
24 #include "SheafSystem/sheaf_dll_spec.h"
25 #endif
26 
27 namespace fiber_bundle
28 {
29 class sec_at0;
30 class sec_at1;
31 class sec_at2;
32 class sec_at2_e2;
33 class sec_at2_e3;
34 class sec_at3;
35 class sec_at3_e3;
36 class sec_atp;
37 class sec_e1;
38 class sec_e1_uniform;
39 class sec_e2;
40 class sec_e2_uniform;
41 class sec_e3;
42 class sec_e3_uniform;
43 class sec_e4;
44 class sec_ed;
45 class sec_jcb;
46 class sec_jcb_e13;
47 class sec_jcb_e23;
48 class sec_jcb_e33;
49 class sec_jcb_ed;
50 class sec_met;
51 class sec_met_e1;
52 class sec_met_e2;
53 class sec_met_e3;
54 class sec_met_ed;
55 class sec_st2;
56 class sec_st2_e2;
57 class sec_st2_e3;
58 class sec_st3;
59 class sec_st3_e3;
60 class sec_st4;
61 class sec_st4_e2;
62 class sec_st4_e3;
63 class sec_stp;
64 class sec_t2;
65 class sec_t2_e2;
66 class sec_t2_e3;
67 class sec_t3;
68 class sec_t3_e3;
69 class sec_t4;
70 class sec_t4_e2;
71 class sec_t4_e3;
72 class sec_tp;
73 }
74 
75 namespace fields
76 {
77 
78 using namespace fiber_bundle;
79 
85 template <typename T>
87 
89 
90 class field_at0;
91 class field_at1;
92 class field_at2;
93 class field_at2_e2;
94 class field_at2_e3;
95 class field_at3;
96 class field_at3_e3;
97 class field_atp;
98 class field_e1;
99 class field_e1_uniform;
100 class field_e2;
101 class field_e2_uniform;
102 class field_e3;
103 class field_e3_uniform;
104 class field_e4;
105 class field_ed;
106 class field_jcb;
107 class field_jcb_e13;
108 class field_jcb_e23;
109 class field_jcb_e33;
110 class field_jcb_ed;
111 class field_met;
112 class field_met_e1;
113 class field_met_e2;
114 class field_met_e3;
115 class field_met_ed;
116 class field_st2;
117 class field_st2_e2;
118 class field_st2_e3;
119 class field_st3;
120 class field_st3_e3;
121 class field_st4;
122 class field_st4_e2;
123 class field_st4_e3;
124 class field_stp;
125 class field_t2;
126 class field_t2_e2;
127 class field_t2_e3;
128 class field_t3;
129 class field_t3_e3;
130 class field_t4;
131 class field_t4_e2;
132 class field_t4_e3;
133 class field_tp;
134 
135 template <>
136 class SHEAF_DLL_SPEC field_traits<sec_at0>
137 {
138 public:
143 };
144 
145 template <>
146 class SHEAF_DLL_SPEC field_traits<sec_at1>
147 {
148 public:
153 };
154 
155 template <>
156 class SHEAF_DLL_SPEC field_traits<sec_at2>
157 {
158 public:
163 };
164 
165 template <>
166 class SHEAF_DLL_SPEC field_traits<sec_at2_e2>
167 {
168 public:
173 };
174 
175 template <>
176 class SHEAF_DLL_SPEC field_traits<sec_at2_e3>
177 {
178 public:
183 };
184 
185 template <>
186 class SHEAF_DLL_SPEC field_traits<sec_at3>
187 {
188 public:
193 };
194 
195 template <>
196 class SHEAF_DLL_SPEC field_traits<sec_at3_e3>
197 {
198 public:
203 };
204 
205 template <>
206 class SHEAF_DLL_SPEC field_traits<sec_atp>
207 {
208 public:
213 };
214 
215 template <>
216 class SHEAF_DLL_SPEC field_traits<sec_e1>
217 {
218 public:
223 };
224 
225 template <>
226 class SHEAF_DLL_SPEC field_traits<sec_e1_uniform>
227 {
228 public:
233 };
234 
235 template <>
236 class SHEAF_DLL_SPEC field_traits<sec_e2>
237 {
238 public:
243 };
244 
245 template <>
246 class SHEAF_DLL_SPEC field_traits<sec_e2_uniform>
247 {
248 public:
253 };
254 
255 template <>
256 class SHEAF_DLL_SPEC field_traits<sec_e3>
257 {
258 public:
263 };
264 
265 template <>
266 class SHEAF_DLL_SPEC field_traits<sec_e3_uniform>
267 {
268 public:
273 };
274 
275 template <>
276 class SHEAF_DLL_SPEC field_traits<sec_e4>
277 {
278 public:
283 };
284 
285 template <>
286 class SHEAF_DLL_SPEC field_traits<sec_ed>
287 {
288 public:
293 };
294 
295 template <>
296 class SHEAF_DLL_SPEC field_traits<sec_jcb>
297 {
298 public:
303 };
304 
305 template <>
306 class SHEAF_DLL_SPEC field_traits<sec_jcb_e13>
307 {
308 public:
313 };
314 
315 template <>
316 class SHEAF_DLL_SPEC field_traits<sec_jcb_e23>
317 {
318 public:
323 };
324 
325 template <>
326 class SHEAF_DLL_SPEC field_traits<sec_jcb_e33>
327 {
328 public:
333 };
334 
335 template <>
336 class SHEAF_DLL_SPEC field_traits<sec_jcb_ed>
337 {
338 public:
343 };
344 
345 template <>
346 class SHEAF_DLL_SPEC field_traits<sec_met>
347 {
348 public:
353 };
354 
355 template <>
356 class SHEAF_DLL_SPEC field_traits<sec_met_e1>
357 {
358 public:
363 };
364 
365 template <>
366 class SHEAF_DLL_SPEC field_traits<sec_met_e2>
367 {
368 public:
373 };
374 
375 template <>
376 class SHEAF_DLL_SPEC field_traits<sec_met_e3>
377 {
378 public:
383 };
384 
385 template <>
386 class SHEAF_DLL_SPEC field_traits<sec_met_ed>
387 {
388 public:
393 };
394 
395 template <>
396 class SHEAF_DLL_SPEC field_traits<sec_st2>
397 {
398 public:
403 };
404 
405 template <>
406 class SHEAF_DLL_SPEC field_traits<sec_st2_e2>
407 {
408 public:
413 };
414 
415 template <>
416 class SHEAF_DLL_SPEC field_traits<sec_st2_e3>
417 {
418 public:
423 };
424 
425 template <>
426 class SHEAF_DLL_SPEC field_traits<sec_st3>
427 {
428 public:
433 };
434 
435 template <>
436 class SHEAF_DLL_SPEC field_traits<sec_st3_e3>
437 {
438 public:
443 };
444 
445 template <>
446 class SHEAF_DLL_SPEC field_traits<sec_st4>
447 {
448 public:
453 };
454 
455 template <>
456 class SHEAF_DLL_SPEC field_traits<sec_st4_e2>
457 {
458 public:
463 };
464 
465 template <>
466 class SHEAF_DLL_SPEC field_traits<sec_st4_e3>
467 {
468 public:
473 };
474 
475 template <>
476 class SHEAF_DLL_SPEC field_traits<sec_stp>
477 {
478 public:
483 };
484 
485 template <>
486 class SHEAF_DLL_SPEC field_traits<sec_t2>
487 {
488 public:
493 };
494 
495 template <>
496 class SHEAF_DLL_SPEC field_traits<sec_t2_e2>
497 {
498 public:
503 };
504 
505 template <>
506 class SHEAF_DLL_SPEC field_traits<sec_t2_e3>
507 {
508 public:
513 };
514 
515 template <>
516 class SHEAF_DLL_SPEC field_traits<sec_t3>
517 {
518 public:
523 };
524 
525 template <>
526 class SHEAF_DLL_SPEC field_traits<sec_t3_e3>
527 {
528 public:
533 };
534 
535 template <>
536 class SHEAF_DLL_SPEC field_traits<sec_t4>
537 {
538 public:
543 };
544 
545 template <>
546 class SHEAF_DLL_SPEC field_traits<sec_t4_e2>
547 {
548 public:
553 };
554 
555 template <>
556 class SHEAF_DLL_SPEC field_traits<sec_t4_e3>
557 {
558 public:
563 };
564 
565 template <>
566 class SHEAF_DLL_SPEC field_traits<sec_tp>
567 {
568 public:
573 };
574 
575 
576 } // namespace fields
577 
578 #endif // ifndef FIELD_TRAITS_H
579 
A section of a fiber bundle with a 1-dimensional Euclidean vector space fiber.
A property of type sec_jcb_e33 as a function of global coordinates.
Definition: field_jcb_e33.h:50
A property of type sec_e2_uniform as a function of global coordinates.
field_st2_e2 field_type
The type of the field.
Definition: field_traits.h:412
field_t3 field_type
The type of the field.
Definition: field_traits.h:522
A section of a bundle with fiber type st3_e3.
Definition: sec_st3_e3.h:48
field_st4_e3 field_type
The type of the field.
Definition: field_traits.h:472
A section of a bundle with fiber type at2_e3.
Definition: sec_at2_e3.h:48
field_at3_e3 field_type
The type of the field.
Definition: field_traits.h:202
A property of type sec_e1 as a function of global coordinates.
Definition: field_e1.h:50
A property of type sec_jcb_ed as a function of global coordinates.
Definition: field_jcb_ed.h:50
field_at0 field_type
The type of the field.
Definition: field_traits.h:142
A section of a bundle with fiber type at3_e3.
Definition: sec_at3_e3.h:48
A section of a bundle with fiber type met_e1.
Definition: sec_met_e1.h:48
A property of type sec_e3_uniform as a function of global coordinates.
A property of type sec_st4 as a function of global coordinates.
Definition: field_st4.h:50
A property of type sec_t4_e3 as a function of global coordinates.
Definition: field_t4_e3.h:50
A property of type sec_met_e3 as a function of global coordinates.
Definition: field_met_e3.h:50
field_met field_type
The type of the field.
Definition: field_traits.h:352
Namespace for fields component of sheaf system.
A section of a fiber bundle with a 3-dimensional Euclidean vector space fiber.
A property of type sec_st2 as a function of global coordinates.
Definition: field_st2.h:50
field_st3_e3 field_type
The type of the field.
Definition: field_traits.h:442
field_e2_uniform field_type
The type of the field.
Definition: field_traits.h:252
field_tp field_type
The type of the field.
Definition: field_traits.h:572
field_atp field_type
The type of the field.
Definition: field_traits.h:212
A property of type sec_st2_e3 as a function of global coordinates.
Definition: field_st2_e3.h:50
A property of type sec_at2 as a function of global coordinates.
Definition: field_at2.h:50
field_t2_e3 field_type
The type of the field.
Definition: field_traits.h:512
A property of type sec_t4_e2 as a function of global coordinates.
Definition: field_t4_e2.h:50
field_met_e1 field_type
The type of the field.
Definition: field_traits.h:362
A section of a bundle with fiber type st2_e2.
Definition: sec_st2_e2.h:48
A property of type sec_t2_e3 as a function of global coordinates.
Definition: field_t2_e3.h:50
A property of type sec_st4_e3 as a function of global coordinates.
Definition: field_st4_e3.h:50
A property of type sec_ed as a function of global coordinates.
Definition: field_ed.h:50
A property of type sec_t2_e2 as a function of global coordinates.
Definition: field_t2_e2.h:50
A section of a bundle with fiber type at1.
Definition: sec_at1.h:48
field_ed field_type
The type of the field.
Definition: field_traits.h:292
A property of type sec_stp as a function of global coordinates.
Definition: field_stp.h:50
A property of type sec_atp as a function of global coordinates.
Definition: field_atp.h:50
A property of type sec_at2_e2 as a function of global coordinates.
Definition: field_at2_e2.h:50
A section of a bundle with fiber type t3_e3.
Definition: sec_t3_e3.h:48
A property of type sec_st3 as a function of global coordinates.
Definition: field_st3.h:50
field_jcb_e23 field_type
The type of the field.
Definition: field_traits.h:322
A property of type sec_jcb_e23 as a function of global coordinates.
Definition: field_jcb_e23.h:50
A section of a bundle with fiber type t3.
Definition: sec_t3.h:46
A section of a bundle with fiber type met.
Definition: sec_met.h:46
A property of type sec_at3 as a function of global coordinates.
Definition: field_at3.h:50
A section of a fiber bundle with a d-dimensional Euclidean vector space fiber.
Definition: sec_ed.h:47
field_e1 field_type
The type of the field.
Definition: field_traits.h:222
field_jcb_e13 field_type
The type of the field.
Definition: field_traits.h:312
A property of type sec_at1 as a function of global coordinates.
Definition: field_at1.h:50
A section of a bundle with fiber type jcb_e13.
Definition: sec_jcb_e13.h:49
A property of type sec_st2_e2 as a function of global coordinates.
Definition: field_st2_e2.h:50
field_st4_e2 field_type
The type of the field.
Definition: field_traits.h:462
field_at2_e3 field_type
The type of the field.
Definition: field_traits.h:182
A section of a bundle with fiber type at2_e2.
Definition: sec_at2_e2.h:48
A section of a bundle with fiber type st4_e3.
Definition: sec_st4_e3.h:48
A property of type sec_t4 as a function of global coordinates.
Definition: field_t4.h:50
A property of type sec_met_ed as a function of global coordinates.
Definition: field_met_ed.h:50
A property of type sec_st4_e2 as a function of global coordinates.
Definition: field_st4_e2.h:50
A property of type sec_met_e2 as a function of global coordinates.
Definition: field_met_e2.h:50
field_st2 field_type
The type of the field.
Definition: field_traits.h:402
A section of a bundle with fiber type jcb_e33.
Definition: sec_jcb_e33.h:48
field_t2 field_type
The type of the field.
Definition: field_traits.h:492
field_t4_e2 field_type
The type of the field.
Definition: field_traits.h:552
A section of a bundle with fiber type at2.
Definition: sec_at2.h:46
field_met_e2 field_type
The type of the field.
Definition: field_traits.h:372
field_at1 field_type
The type of the field.
Definition: field_traits.h:152
A section of a bundle with fiber type atp.
Definition: sec_atp.h:48
field_jcb field_type
The type of the field.
Definition: field_traits.h:302
A section of a bundle with fiber type st2.
Definition: sec_st2.h:46
A section of a bundle with fiber type jcb_ed.
Definition: sec_jcb_ed.h:46
field_at2 field_type
The type of the field.
Definition: field_traits.h:162
A section of a bundle with fiber type stp.
Definition: sec_stp.h:48
field_e3 field_type
The type of the field.
Definition: field_traits.h:262
field_t3_e3 field_type
The type of the field.
Definition: field_traits.h:532
A property of type sec_t3_e3 as a function of global coordinates.
Definition: field_t3_e3.h:50
field_jcb_e33 field_type
The type of the field.
Definition: field_traits.h:332
A section of a bundle with fiber type met_e3.
Definition: sec_met_e3.h:48
A section of a bundle with fiber type t4.
Definition: sec_t4.h:46
A section of a bundle with fiber type at3.
Definition: sec_at3.h:46
field_e1_uniform field_type
The type of the field.
Definition: field_traits.h:232
A section of a bundle with fiber type st3.
Definition: sec_st3.h:46
field_at3 field_type
The type of the field.
Definition: field_traits.h:192
field_e4 field_type
The type of the field.
Definition: field_traits.h:282
A section of a fiber bundle with a 3-dimensional Euclidean vector space fiber.
Definition: sec_e3.h:47
A property of type sec_t2 as a function of global coordinates.
Definition: field_t2.h:50
field_st2_e3 field_type
The type of the field.
Definition: field_traits.h:422
A property of type sec_at3_e3 as a function of global coordinates.
Definition: field_at3_e3.h:50
field_st4 field_type
The type of the field.
Definition: field_traits.h:452
A property of type sec_t3 as a function of global coordinates.
Definition: field_t3.h:50
A section of a bundle with fiber type st4_e2.
Definition: sec_st4_e2.h:48
A section of a bundle with fiber type t4_e2.
Definition: sec_t4_e2.h:48
A property of type sec_jcb as a function of global coordinates.
Definition: field_jcb.h:50
A property of type sec_met_e1 as a function of global coordinates.
Definition: field_met_e1.h:50
A section of a bundle with fiber type jcb.
Definition: sec_jcb.h:49
A property of type sec_e4 as a function of global coordinates.
Definition: field_e4.h:50
field_e2 field_type
The type of the field.
Definition: field_traits.h:242
A section of a bundle with fiber type tp.
Definition: sec_t2.h:46
A section of a bundle with fiber type t4_e3.
Definition: sec_t4_e3.h:48
A property of type sec_at0 as a function of global coordinates.
Definition: field_at0.h:50
field_at2_e2 field_type
The type of the field.
Definition: field_traits.h:172
field_t4_e3 field_type
The type of the field.
Definition: field_traits.h:562
A section of a fiber bundle with a 2-dimensional Euclidean vector space fiber.
A property of type sec_e1_uniform as a function of global coordinates.
A section of a fiber bundle with a 1-dimensional Euclidean vector space fiber.
Definition: sec_e1.h:47
field_st3 field_type
The type of the field.
Definition: field_traits.h:432
field_jcb_ed field_type
The type of the field.
Definition: field_traits.h:342
A section of a bundle with fiber type t2_e2.
Definition: sec_t2_e2.h:48
Features describing a field type. Declaration only; there is no generic implementation for this templ...
Definition: field_traits.h:86
A section of a bundle with fiber type st4.
Definition: sec_st4.h:46
field_e3_uniform field_type
The type of the field.
Definition: field_traits.h:272
A section of a fiber bundle with a 4-dimensional Euclidean vector space fiber.
Definition: sec_e4.h:47
A section of a bundle with fiber type t2_e3.
Definition: sec_t2_e3.h:48
A section of a bundle with fiber type jcb_e23.
Definition: sec_jcb_e23.h:49
A property of type sec_tp as a function of global coordinates.
Definition: field_tp.h:50
A property of type sec_st3_e3 as a function of global coordinates.
Definition: field_st3_e3.h:50
A property of type sec_e2 as a function of global coordinates.
Definition: field_e2.h:50
A property of type sec_jcb_e13 as a function of global coordinates.
Definition: field_jcb_e13.h:50
A section of a bundle with fiber type met_e2.
Definition: sec_met_e2.h:48
field_met_e3 field_type
The type of the field.
Definition: field_traits.h:382
Namespace for the fiber_bundles component of the sheaf system.
Antisymetric tensor of degree 0. As the degree is 0 there is nothing to be symmetric or antisymmetric...
Definition: sec_at0.h:51
A property of type sec_met as a function of global coordinates.
Definition: field_met.h:50
A property of type sec_e3 as a function of global coordinates.
Definition: field_e3.h:50
field_met_ed field_type
The type of the field.
Definition: field_traits.h:392
field_stp field_type
The type of the field.
Definition: field_traits.h:482
A property of type sec_at2_e3 as a function of global coordinates.
Definition: field_at2_e3.h:50
field_t2_e2 field_type
The type of the field.
Definition: field_traits.h:502
A section of a bundle with fiber type tp.
Definition: sec_tp.h:49
A section of a bundle with fiber type met_ed.
Definition: sec_met_ed.h:46
A section of a bundle with fiber type st2_e3.
Definition: sec_st2_e3.h:48
A section of a fiber bundle with a 2-dimensional Euclidean vector space fiber.
Definition: sec_e2.h:48
field_t4 field_type
The type of the field.
Definition: field_traits.h:542