ViennaGrid for Python
 All Classes Files Functions Variables
types.hpp
Go to the documentation of this file.
1 
6 #ifndef CELLS_TYPES_HPP
7 #define CELLS_TYPES_HPP
8 
9 #include "../domains/types.hpp"
10 
11 #include <vector>
12 
13 typedef std::vector<bool> CellRefinementFlagContainerType;
14 
15 /***************
16  * LINEAR MESH *
17  ***************/
18 
19 // Line, cartesian 1D
20 typedef viennagrid::result_of::element<LinearCartesian1D_Domain_t, viennagrid::line_tag>::type LinearCartesian1D_Cell_t;
21 
22 // Line, cartesian 2D
23 typedef viennagrid::result_of::element<LinearCartesian2D_Domain_t, viennagrid::line_tag>::type LinearCartesian2D_Cell_t;
24 
25 // Line, cartesian 3D
26 typedef viennagrid::result_of::element<LinearCartesian3D_Domain_t, viennagrid::line_tag>::type LinearCartesian3D_Cell_t;
27 
28 // Line, cylindrical (3D)
29 typedef viennagrid::result_of::element<LinearCylindrical3D_Domain_t, viennagrid::line_tag>::type LinearCylindrical3D_Cell_t;
30 
31 // Line, polar (2D)
32 typedef viennagrid::result_of::element<LinearPolar2D_Domain_t, viennagrid::line_tag>::type LinearPolar2D_Cell_t;
33 
34 // Line, spherical (3D)
35 typedef viennagrid::result_of::element<LinearSpherical3D_Domain_t, viennagrid::line_tag>::type LinearSpherical3D_Cell_t;
36 
37 /*******************
38  * TRIANGULAR MESH *
39  *******************/
40 
41 // Triangle, cartesian 2D
42 typedef viennagrid::result_of::element<TriangularCartesian2D_Domain_t, viennagrid::triangle_tag>::type TriangularCartesian2D_Cell_t;
43 typedef viennagrid::result_of::cell_range<TriangularCartesian2D_Domain_t>::type TriangularCartesian2D_CellRange_t;
44 
45 // Triangle, cartesian 3D
46 typedef viennagrid::result_of::element<TriangularCartesian3D_Domain_t, viennagrid::triangle_tag>::type TriangularCartesian3D_Cell_t;
47 typedef viennagrid::result_of::cell_range<TriangularCartesian3D_Domain_t>::type TriangularCartesian3D_CellRange_t;
48 
49 // Triangle, cylindrical (3D)
50 typedef viennagrid::result_of::element<TriangularCylindrical3D_Domain_t, viennagrid::triangle_tag>::type TriangularCylindrical3D_Cell_t;
51 typedef viennagrid::result_of::cell_range<TriangularCylindrical3D_Domain_t>::type TriangularCylindrical3D_CellRange_t;
52 
53 // Triangle, polar (2D)
54 typedef viennagrid::result_of::element<TriangularPolar2D_Domain_t, viennagrid::triangle_tag>::type TriangularPolar2D_Cell_t;
55 typedef viennagrid::result_of::cell_range<TriangularPolar2D_Domain_t>::type TriangularPolar2D_CellRange_t;
56 
57 // Triangle, spherical (3D)
58 typedef viennagrid::result_of::element<TriangularSpherical3D_Domain_t, viennagrid::triangle_tag>::type TriangularSpherical3D_Cell_t;
59 typedef viennagrid::result_of::cell_range<TriangularSpherical3D_Domain_t>::type TriangularSpherical3D_CellRange_t;
60 
61 /**********************
62  * QUADRILATERAL MESH *
63  **********************/
64 
65 // Quadrilateral, cartesian 2D
66 typedef viennagrid::result_of::element<QuadrilateralCartesian2D_Domain_t, viennagrid::quadrilateral_tag>::type QuadrilateralCartesian2D_Cell_t;
67 
68 // Quadrilateral, cartesian 3D
69 typedef viennagrid::result_of::element<QuadrilateralCartesian3D_Domain_t, viennagrid::quadrilateral_tag>::type QuadrilateralCartesian3D_Cell_t;
70 
71 // Quadrilateral, cylindrical (3D)
72 typedef viennagrid::result_of::element<QuadrilateralCylindrical3D_Domain_t, viennagrid::quadrilateral_tag>::type QuadrilateralCylindrical3D_Cell_t;
73 
74 // Quadrilateral, polar (2D)
75 typedef viennagrid::result_of::element<QuadrilateralPolar2D_Domain_t, viennagrid::quadrilateral_tag>::type QuadrilateralPolar2D_Cell_t;
76 
77 // Quadrilateral, spherical (3D)
78 typedef viennagrid::result_of::element<QuadrilateralSpherical3D_Domain_t, viennagrid::quadrilateral_tag>::type QuadrilateralSpherical3D_Cell_t;
79 
80 /**********************
81  * TETRAHEDRAL MESH *
82  **********************/
83 
84 // Tetrahedral, cartesian 3D
85 typedef viennagrid::result_of::element<TetrahedralCartesian3D_Domain_t, viennagrid::tetrahedron_tag>::type TetrahedralCartesian3D_Cell_t;
86 typedef viennagrid::result_of::cell_range<TetrahedralCartesian3D_Domain_t>::type TetrahedralCartesian3D_CellRange_t;
87 
88 // Tetrahedral, cylindrical (3D)
89 typedef viennagrid::result_of::element<TetrahedralCylindrical3D_Domain_t, viennagrid::tetrahedron_tag>::type TetrahedralCylindrical3D_Cell_t;
90 typedef viennagrid::result_of::cell_range<TetrahedralCylindrical3D_Domain_t>::type TetrahedralCylindrical3D_CellRange_t;
91 
92 // Tetrahedral, spherical (3D)
93 typedef viennagrid::result_of::element<TetrahedralSpherical3D_Domain_t, viennagrid::tetrahedron_tag>::type TetrahedralSpherical3D_Cell_t;
94 typedef viennagrid::result_of::cell_range<TetrahedralSpherical3D_Domain_t>::type TetrahedralSpherical3D_CellRange_t;
95 
96 #endif /* end of include guard: CELLS_TYPES_HPP */