ViennaGrid for Python
 All Classes Files Functions Variables
types.hpp
Go to the documentation of this file.
1 
6 #ifndef FIELDS_TYPES_HPP
7 #define FIELDS_TYPES_HPP
8 
9 #include "../vertices/types.hpp"
10 #include "../cells/types.hpp"
11 
12 #include <viennagrid/domain/accessor.hpp>
13 
14 #include <map>
15 
16 /***************
17  * LINEAR MESH *
18  ***************/
19 
20 // Line, cartesian 1D
21 
22 typedef std::map<viennagrid::result_of::id<LinearCartesian1D_Vertex_t>::type, double> LinearCartesian1D_VertexField_Container_t;
23 typedef std::map<viennagrid::result_of::id<LinearCartesian1D_Cell_t>::type, double> LinearCartesian1D_CellField_Container_t;
24 
25 typedef viennagrid::result_of::field<LinearCartesian1D_VertexField_Container_t, LinearCartesian1D_Vertex_t>::type LinearCartesian1D_Vertex_Field_t;
26 typedef viennagrid::result_of::field<LinearCartesian1D_CellField_Container_t, LinearCartesian1D_Cell_t>::type LinearCartesian1D_Cell_Field_t;
27 
28 // Line, cartesian 2D
29 
30 typedef std::map<viennagrid::result_of::id<LinearCartesian2D_Vertex_t>::type, double> LinearCartesian2D_VertexField_Container_t;
31 typedef std::map<viennagrid::result_of::id<LinearCartesian2D_Cell_t>::type, double> LinearCartesian2D_CellField_Container_t;
32 
33 typedef viennagrid::result_of::field<LinearCartesian2D_VertexField_Container_t, LinearCartesian2D_Vertex_t>::type LinearCartesian2D_Vertex_Field_t;
34 typedef viennagrid::result_of::field<LinearCartesian2D_CellField_Container_t, LinearCartesian2D_Cell_t>::type LinearCartesian2D_Cell_Field_t;
35 
36 // Line, cartesian 3D
37 
38 typedef std::map<viennagrid::result_of::id<LinearCartesian3D_Vertex_t>::type, double> LinearCartesian3D_VertexField_Container_t;
39 typedef std::map<viennagrid::result_of::id<LinearCartesian3D_Cell_t>::type, double> LinearCartesian3D_CellField_Container_t;
40 
41 typedef viennagrid::result_of::field<LinearCartesian3D_VertexField_Container_t, LinearCartesian3D_Vertex_t>::type LinearCartesian3D_Vertex_Field_t;
42 typedef viennagrid::result_of::field<LinearCartesian3D_CellField_Container_t, LinearCartesian3D_Cell_t>::type LinearCartesian3D_Cell_Field_t;
43 
44 // Line, cylindrical (3D)
45 
46 typedef std::map<viennagrid::result_of::id<LinearCylindrical3D_Vertex_t>::type, double> LinearCylindrical3D_VertexField_Container_t;
47 typedef std::map<viennagrid::result_of::id<LinearCylindrical3D_Cell_t>::type, double> LinearCylindrical3D_CellField_Container_t;
48 
49 typedef viennagrid::result_of::field<LinearCylindrical3D_VertexField_Container_t, LinearCylindrical3D_Vertex_t>::type LinearCylindrical3D_Vertex_Field_t;
50 typedef viennagrid::result_of::field<LinearCylindrical3D_CellField_Container_t, LinearCylindrical3D_Cell_t>::type LinearCylindrical3D_Cell_Field_t;
51 
52 // Line, polar (2D)
53 
54 typedef std::map<viennagrid::result_of::id<LinearPolar2D_Vertex_t>::type, double> LinearPolar2D_VertexField_Container_t;
55 typedef std::map<viennagrid::result_of::id<LinearPolar2D_Cell_t>::type, double> LinearPolar2D_CellField_Container_t;
56 
57 typedef viennagrid::result_of::field<LinearPolar2D_VertexField_Container_t, LinearPolar2D_Vertex_t>::type LinearPolar2D_Vertex_Field_t;
58 typedef viennagrid::result_of::field<LinearPolar2D_CellField_Container_t, LinearPolar2D_Cell_t>::type LinearPolar2D_Cell_Field_t;
59 
60 // Line, spherical (3D)
61 
62 typedef std::map<viennagrid::result_of::id<LinearSpherical3D_Vertex_t>::type, double> LinearSpherical3D_VertexField_Container_t;
63 typedef std::map<viennagrid::result_of::id<LinearSpherical3D_Cell_t>::type, double> LinearSpherical3D_CellField_Container_t;
64 
65 typedef viennagrid::result_of::field<LinearSpherical3D_VertexField_Container_t, LinearSpherical3D_Vertex_t>::type LinearSpherical3D_Vertex_Field_t;
66 typedef viennagrid::result_of::field<LinearSpherical3D_CellField_Container_t, LinearSpherical3D_Cell_t>::type LinearSpherical3D_Cell_Field_t;
67 
68 /*******************
69  * TRIANGULAR MESH *
70  *******************/
71 
72 // Triangle, cartesian 2D
73 
74 typedef std::map<viennagrid::result_of::id<TriangularCartesian2D_Vertex_t>::type, double> TriangularCartesian2D_VertexField_Container_t;
75 typedef std::map<viennagrid::result_of::id<TriangularCartesian2D_Cell_t>::type, double> TriangularCartesian2D_CellField_Container_t;
76 
77 typedef viennagrid::result_of::field<TriangularCartesian2D_VertexField_Container_t, TriangularCartesian2D_Vertex_t>::type TriangularCartesian2D_Vertex_Field_t;
78 typedef viennagrid::result_of::field<TriangularCartesian2D_CellField_Container_t, TriangularCartesian2D_Cell_t>::type TriangularCartesian2D_Cell_Field_t;
79 
80 // Triangle, cartesian 3D
81 
82 typedef std::map<viennagrid::result_of::id<TriangularCartesian3D_Vertex_t>::type, double> TriangularCartesian3D_VertexField_Container_t;
83 typedef std::map<viennagrid::result_of::id<TriangularCartesian3D_Cell_t>::type, double> TriangularCartesian3D_CellField_Container_t;
84 
85 typedef viennagrid::result_of::field<TriangularCartesian3D_VertexField_Container_t, TriangularCartesian3D_Vertex_t>::type TriangularCartesian3D_Vertex_Field_t;
86 typedef viennagrid::result_of::field<TriangularCartesian3D_CellField_Container_t, TriangularCartesian3D_Cell_t>::type TriangularCartesian3D_Cell_Field_t;
87 
88 // Triangle, cylindrical (3D)
89 
90 typedef std::map<viennagrid::result_of::id<TriangularCylindrical3D_Vertex_t>::type, double> TriangularCylindrical3D_VertexField_Container_t;
91 typedef std::map<viennagrid::result_of::id<TriangularCylindrical3D_Cell_t>::type, double> TriangularCylindrical3D_CellField_Container_t;
92 
93 typedef viennagrid::result_of::field<TriangularCylindrical3D_VertexField_Container_t, TriangularCylindrical3D_Vertex_t>::type TriangularCylindrical3D_Vertex_Field_t;
94 typedef viennagrid::result_of::field<TriangularCylindrical3D_CellField_Container_t, TriangularCylindrical3D_Cell_t>::type TriangularCylindrical3D_Cell_Field_t;
95 
96 // Triangle, polar (2D)
97 
98 typedef std::map<viennagrid::result_of::id<TriangularPolar2D_Vertex_t>::type, double> TriangularPolar2D_VertexField_Container_t;
99 typedef std::map<viennagrid::result_of::id<TriangularPolar2D_Cell_t>::type, double> TriangularPolar2D_CellField_Container_t;
100 
101 typedef viennagrid::result_of::field<TriangularPolar2D_VertexField_Container_t, TriangularPolar2D_Vertex_t>::type TriangularPolar2D_Vertex_Field_t;
102 typedef viennagrid::result_of::field<TriangularPolar2D_CellField_Container_t, TriangularPolar2D_Cell_t>::type TriangularPolar2D_Cell_Field_t;
103 
104 // Triangle, spherical (3D)
105 
106 typedef std::map<viennagrid::result_of::id<TriangularSpherical3D_Vertex_t>::type, double> TriangularSpherical3D_VertexField_Container_t;
107 typedef std::map<viennagrid::result_of::id<TriangularSpherical3D_Cell_t>::type, double> TriangularSpherical3D_CellField_Container_t;
108 
109 typedef viennagrid::result_of::field<TriangularSpherical3D_VertexField_Container_t, TriangularSpherical3D_Vertex_t>::type TriangularSpherical3D_Vertex_Field_t;
110 typedef viennagrid::result_of::field<TriangularSpherical3D_CellField_Container_t, TriangularSpherical3D_Cell_t>::type TriangularSpherical3D_Cell_Field_t;
111 
112 /**********************
113  * QUADRILATERAL MESH *
114  **********************/
115 
116 // Quadrilateral, cartesian 2D
117 
118 typedef std::map<viennagrid::result_of::id<QuadrilateralCartesian2D_Vertex_t>::type, double> QuadrilateralCartesian2D_VertexField_Container_t;
119 typedef std::map<viennagrid::result_of::id<QuadrilateralCartesian2D_Cell_t>::type, double> QuadrilateralCartesian2D_CellField_Container_t;
120 
121 typedef viennagrid::result_of::field<QuadrilateralCartesian2D_VertexField_Container_t, QuadrilateralCartesian2D_Vertex_t>::type QuadrilateralCartesian2D_Vertex_Field_t;
122 typedef viennagrid::result_of::field<QuadrilateralCartesian2D_CellField_Container_t, QuadrilateralCartesian2D_Cell_t>::type QuadrilateralCartesian2D_Cell_Field_t;
123 
124 // Quadrilateral, cartesian 3D
125 
126 typedef std::map<viennagrid::result_of::id<QuadrilateralCartesian3D_Vertex_t>::type, double> QuadrilateralCartesian3D_VertexField_Container_t;
127 typedef std::map<viennagrid::result_of::id<QuadrilateralCartesian3D_Cell_t>::type, double> QuadrilateralCartesian3D_CellField_Container_t;
128 
129 typedef viennagrid::result_of::field<QuadrilateralCartesian3D_VertexField_Container_t, QuadrilateralCartesian3D_Vertex_t>::type QuadrilateralCartesian3D_Vertex_Field_t;
130 typedef viennagrid::result_of::field<QuadrilateralCartesian3D_CellField_Container_t, QuadrilateralCartesian3D_Cell_t>::type QuadrilateralCartesian3D_Cell_Field_t;
131 
132 // Quadrilateral, cylindrical (3D)
133 
134 typedef std::map<viennagrid::result_of::id<QuadrilateralCylindrical3D_Vertex_t>::type, double> QuadrilateralCylindrical3D_VertexField_Container_t;
135 typedef std::map<viennagrid::result_of::id<QuadrilateralCylindrical3D_Cell_t>::type, double> QuadrilateralCylindrical3D_CellField_Container_t;
136 
137 typedef viennagrid::result_of::field<QuadrilateralCylindrical3D_VertexField_Container_t, QuadrilateralCylindrical3D_Vertex_t>::type QuadrilateralCylindrical3D_Vertex_Field_t;
138 typedef viennagrid::result_of::field<QuadrilateralCylindrical3D_CellField_Container_t, QuadrilateralCylindrical3D_Cell_t>::type QuadrilateralCylindrical3D_Cell_Field_t;
139 
140 // Quadrilateral, polar (2D)
141 
142 typedef std::map<viennagrid::result_of::id<QuadrilateralPolar2D_Vertex_t>::type, double> QuadrilateralPolar2D_VertexField_Container_t;
143 typedef std::map<viennagrid::result_of::id<QuadrilateralPolar2D_Cell_t>::type, double> QuadrilateralPolar2D_CellField_Container_t;
144 
145 typedef viennagrid::result_of::field<QuadrilateralPolar2D_VertexField_Container_t, QuadrilateralPolar2D_Vertex_t>::type QuadrilateralPolar2D_Vertex_Field_t;
146 typedef viennagrid::result_of::field<QuadrilateralPolar2D_CellField_Container_t, QuadrilateralPolar2D_Cell_t>::type QuadrilateralPolar2D_Cell_Field_t;
147 
148 // Quadrilateral, spherical (3D)
149 
150 typedef std::map<viennagrid::result_of::id<QuadrilateralSpherical3D_Vertex_t>::type, double> QuadrilateralSpherical3D_VertexField_Container_t;
151 typedef std::map<viennagrid::result_of::id<QuadrilateralSpherical3D_Cell_t>::type, double> QuadrilateralSpherical3D_CellField_Container_t;
152 
153 typedef viennagrid::result_of::field<QuadrilateralSpherical3D_VertexField_Container_t, QuadrilateralSpherical3D_Vertex_t>::type QuadrilateralSpherical3D_Vertex_Field_t;
154 typedef viennagrid::result_of::field<QuadrilateralSpherical3D_CellField_Container_t, QuadrilateralSpherical3D_Cell_t>::type QuadrilateralSpherical3D_Cell_Field_t;
155 
156 /**********************
157  * TETRAHEDRAL MESH *
158  **********************/
159 
160 // Tetrahedral, cartesian 3D
161 
162 typedef std::map<viennagrid::result_of::id<TetrahedralCartesian3D_Vertex_t>::type, double> TetrahedralCartesian3D_VertexField_Container_t;
163 typedef std::map<viennagrid::result_of::id<TetrahedralCartesian3D_Cell_t>::type, double> TetrahedralCartesian3D_CellField_Container_t;
164 
165 typedef viennagrid::result_of::field<TetrahedralCartesian3D_VertexField_Container_t, TetrahedralCartesian3D_Vertex_t>::type TetrahedralCartesian3D_Vertex_Field_t;
166 typedef viennagrid::result_of::field<TetrahedralCartesian3D_CellField_Container_t, TetrahedralCartesian3D_Cell_t>::type TetrahedralCartesian3D_Cell_Field_t;
167 
168 // Tetrahedral, cylindrical (3D)
169 
170 typedef std::map<viennagrid::result_of::id<TetrahedralCylindrical3D_Vertex_t>::type, double> TetrahedralCylindrical3D_VertexField_Container_t;
171 typedef std::map<viennagrid::result_of::id<TetrahedralCylindrical3D_Cell_t>::type, double> TetrahedralCylindrical3D_CellField_Container_t;
172 
173 typedef viennagrid::result_of::field<TetrahedralCylindrical3D_VertexField_Container_t, TetrahedralCylindrical3D_Vertex_t>::type TetrahedralCylindrical3D_Vertex_Field_t;
174 typedef viennagrid::result_of::field<TetrahedralCylindrical3D_CellField_Container_t, TetrahedralCylindrical3D_Cell_t>::type TetrahedralCylindrical3D_Cell_Field_t;
175 
176 // Tetrahedral, spherical (3D)
177 
178 typedef std::map<viennagrid::result_of::id<TetrahedralSpherical3D_Vertex_t>::type, double> TetrahedralSpherical3D_VertexField_Container_t;
179 typedef std::map<viennagrid::result_of::id<TetrahedralSpherical3D_Cell_t>::type, double> TetrahedralSpherical3D_CellField_Container_t;
180 
181 typedef viennagrid::result_of::field<TetrahedralSpherical3D_VertexField_Container_t, TetrahedralSpherical3D_Vertex_t>::type TetrahedralSpherical3D_Vertex_Field_t;
182 typedef viennagrid::result_of::field<TetrahedralSpherical3D_CellField_Container_t, TetrahedralSpherical3D_Cell_t>::type TetrahedralSpherical3D_Cell_Field_t;
183 
184 #endif /* end of include guard: FIELDS_TYPES_HPP */