Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
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//
26namespace 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'
37gmsh_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};
115const 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.