Rheolef  7.1
an efficient C++ finite element environment
msh2geo_defs.icc
Go to the documentation of this file.
1 #ifndef _RHEOLEF_MSH2GEO_DEFS_ICC
2 #define _RHEOLEF_MSH2GEO_DEFS_ICC
23 //
24 // minimal auto-contained gmsh helpers for msh2geo
25 //
26 namespace rheolef {
27 
29  char name;
30  size_t order;
31  size_t nv;
32  size_t nn_tot;
33  size_t supported;
34 };
35 // http://www.geuz.org/gmsh/doc/texinfo/gmsh.html#MSH-ASCII-file-format
36 // gmsh supporte l'ordre 6 et plus, mais le num code des element generes n'est pas documente'
37 gmsh_element_t gmsh_table [] = {
38  {'-', 0, 0, 0, 0}, // 0: dummy
39  {'e', 1, 2, 2, 1}, // 1: 2-node line.
40  {'t', 1, 3, 3, 1}, // 2: 3-node triangle.
41  {'q', 1, 4, 4, 1}, // 3: 4-node quadrangle.
42  {'T', 1, 4, 4, 1}, // 4: 4-node tetrahedron.
43  {'H', 1, 8, 8, 1}, // 5: 8-node hexahedron.
44  {'P', 1, 6, 6, 1}, // 6: 6-node prism.
45  {'Y', 1, 5, 5, 0}, // 7: 5-node pyramid.
46  {'e', 2, 2, 3, 1}, // 8: 3-node second order line (2 nodes associated with the vertices and 1 with the edge).
47  {'t', 2, 3, 6, 1}, // 9: 6-node second order triangle (3 nodes associated with the vertices and 3 with the edges).
48  {'q', 2, 4, 9, 1}, // 10: 9-node second order quadrangle (4 nodes associated with the vertices, 4 with the edges and 1 with the face).
49  {'T', 2, 4, 10, 1}, // 11: 10-node second order tetrahedron (4 nodes associated with the vertices and 6 with the edges).
50  {'H', 2, 8, 27, 1}, // 12: 27-node second order hexahedron (8 nodes associated with the vertices, 12 with the edges, 6 with the faces and 1 with the volume).
51  {'P', 2, 6, 18, 1}, // 13: 18-node second order prism (6 nodes associated with the vertices, 9 with the edges and 3 with the quadrangular faces).
52  {'Y', 2, 5, 14, 0}, // 14: 14-node second order pyramid (5 nodes associated with the vertices, 8 with the edges and 1 with the quadrangular face).
53  {'p', 1, 1, 1, 1}, // 15: 1-node point.
54  {'q', 2, 4, 8, 0}, // 16: 8-node second order incomplete quadrangle (4 nodes associated with the vertices and 4 with the edges).
55  {'H', 2, 8, 20, 0}, // 17: 20-node second order incomplete hexahedron (8 nodes associated with the vertices and 12 with the edges).
56  {'P', 2, 6, 15, 0}, // 18: 15-node second order incomplete prism (6 nodes associated with the vertices and 9 with the edges).
57  {'Y', 2, 5, 13, 0}, // 19: 13-node second order incomplete pyramid (5 nodes associated with the vertices and 8 with the edges).
58  {'t', 3, 3, 9, 0}, // 20: 9-node third order incomplete triangle (3 nodes associated with the vertices, 6 with the edges)
59  {'t', 3, 3, 10, 1}, // 21: 10-node third order triangle (3 nodes associated with the vertices, 6 with the edges, 1 with the face)
60  {'t', 4, 3, 12, 0}, // 22: 12-node fourth order incomplete triangle (3 nodes associated with the vertices, 9 with the edges)
61  {'t', 4, 3, 15, 1}, // 23: 15-node fourth order triangle (3 nodes associated with the vertices, 9 with the edges, 3 with the face)
62  {'t', 5, 3, 15, 0}, // 24: 15-node fifth order incomplete triangle (3 nodes associated with the vertices, 12 with the edges)
63  {'t', 5, 3, 21, 1}, // 25: 21-node fifth order complete triangle (3 nodes associated with the vertices, 12 with the edges, 6 with the face)
64  {'e', 3, 2, 4, 1}, // 26: 4-node third order edge (2 nodes associated with the vertices, 2 internal to the edge)
65  {'e', 4, 2, 5, 1}, // 27: 5-node fourth order edge (2 nodes associated with the vertices, 3 internal to the edge)
66  {'e', 5, 2, 6, 1}, // 28: 6-node fifth order edge (2 nodes associated with the vertices, 4 internal to the edge)
67  {'T', 3, 4, 20, 1}, // 29: 20-node third order tetrahedron (4 nodes associated with the vertices, 12 with the edges, 4 with the faces)
68  {'T', 4, 4, 35, 1}, // 30: 35-node fourth order tetrahedron (4 nodes associated with the vertices, 18 with the edges, 12 with the faces, 1 in the volume)
69  {'T', 5, 4, 56, 1}, // 31: 56-node fifth order tetrahedron (4 nodes associated with the vertices, 24 with the edges, 24 with the faces, 4 in the volume)
70  {'?', 0, 0, 0, 0}, // 32: undocumented
71  {'?', 0, 0, 0, 0}, // 33: undocumented
72  {'?', 0, 0, 0, 0}, // 34: undocumented
73  {'?', 0, 0, 0, 0}, // 35: undocumented
74  {'q', 3, 4, 16, 1}, // 36: 3rd order quadrangle
75  {'q', 4, 4, 25, 1}, // 37: 4th order quadrangle
76  {'q', 5, 4, 36, 1}, // 38: 5th order quadrangle
77  {'?', 0, 0, 0, 0}, // 39: undocumented
78  {'?', 0, 0, 0, 0}, // 40: undocumented
79  {'?', 0, 0, 0, 0}, // 41: undocumented
80  {'t', 6, 3, 28, 1}, // 42: 6th order triangle
81  {'t', 7, 3, 36, 1}, // 43: 7th order triangle
82  {'t', 8, 3, 45, 1}, // 44: 8th order triangle
83  {'t', 9, 3, 55, 1}, // 45: 9th order triangle
84  {'t',10, 3, 66, 1}, // 46: 10th order triangle
85  {'q', 6, 4, 49, 1}, // 47: 6th order quadrangle
86  {'q', 7, 4, 64, 1}, // 48: 7th order quadrangle
87  {'q', 8, 4, 81, 1}, // 49: 8th order quadrangle
88  {'q', 9, 4,100, 1}, // 50: 9th order quadrangle
89  {'q',10, 4,121, 1}, // 51: 10th order quadrangle
90  {'?', 0, 0, 0, 0}, // 52: undocumented
91  {'?', 0, 0, 0, 0}, // 53: undocumented
92  {'?', 0, 0, 0, 0}, // 54: undocumented
93  {'?', 0, 0, 0, 0}, // 55: undocumented
94  {'?', 0, 0, 0, 0}, // 56: undocumented
95  {'?', 0, 0, 0, 0}, // 57: undocumented
96  {'?', 0, 0, 0, 0}, // 58: undocumented
97  {'?', 0, 0, 0, 0}, // 59: undocumented
98  {'?', 0, 0, 0, 0}, // 60: undocumented
99  {'?', 0, 0, 0, 0}, // 61: undocumented
100  {'e', 6, 2, 7, 1}, // 62: 6th order edge
101  {'e', 7, 2, 8, 1}, // 63: 7th order edge
102  {'e', 8, 2, 9, 1}, // 64: 8th order edge
103  {'e', 9, 2, 10, 1}, // 65: 9th order edge
104  {'e',10, 2, 11, 1}, // 66: 10th order edge
105  {'?', 0, 0, 0, 0}, // 67: undocumented
106  {'?', 0, 0, 0, 0}, // 68: undocumented
107  {'?', 0, 0, 0, 0}, // 69: undocumented
108  {'?', 0, 0, 0, 0}, // 70: undocumented
109  {'T', 6, 4, 84, 1}, // 71: 6th order tetrahedron
110  {'T', 7, 4,120, 1}, // 72: 7th order tetrahedron
111  {'T', 8, 4,165, 1}, // 73: 8th order tetrahedron
112  {'T', 9, 4,220, 1}, // 74: 9th order tetrahedron
113  {'T',10, 4,286, 1} // 75: 10th order tetrahedron
114 };
115 const size_t gmshtype_max = sizeof(gmsh_table)/sizeof(gmsh_element_t);
116 
117 } // namespace rheolef
118 #endif // _RHEOLEF_MSH2GEO_DEFS_ICC
gmsh_element_t gmsh_table[]
const size_t gmshtype_max
This file is part of Rheolef.