Loading...
Searching...
No Matches
msh2geo_defs.icc
Go to the documentation of this file.
#ifndef _RHEOLEF_MSH2GEO_DEFS_ICC
#define _RHEOLEF_MSH2GEO_DEFS_ICC
//
// minimal auto-contained gmsh helpers for msh2geo
//
namespace rheolef {
struct gmsh_element_t {
char name;
size_t order;
size_t nv;
size_t nn_tot;
size_t supported;
};
// http://www.geuz.org/gmsh/doc/texinfo/gmsh.html#MSH-ASCII-file-format
// gmsh supporte l'ordre 6 et plus, mais le num code des element generes n'est pas documente'
gmsh_element_t gmsh_table [] = {
{'-', 0, 0, 0, 0}, // 0: dummy
{'e', 1, 2, 2, 1}, // 1: 2-node line.
{'t', 1, 3, 3, 1}, // 2: 3-node triangle.
{'q', 1, 4, 4, 1}, // 3: 4-node quadrangle.
{'T', 1, 4, 4, 1}, // 4: 4-node tetrahedron.
{'H', 1, 8, 8, 1}, // 5: 8-node hexahedron.
{'P', 1, 6, 6, 1}, // 6: 6-node prism.
{'Y', 1, 5, 5, 0}, // 7: 5-node pyramid.
{'e', 2, 2, 3, 1}, // 8: 3-node second order line (2 nodes associated with the vertices and 1 with the edge).
{'t', 2, 3, 6, 1}, // 9: 6-node second order triangle (3 nodes associated with the vertices and 3 with the edges).
{'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).
{'T', 2, 4, 10, 1}, // 11: 10-node second order tetrahedron (4 nodes associated with the vertices and 6 with the edges).
{'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).
{'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).
{'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).
{'p', 1, 1, 1, 1}, // 15: 1-node point.
{'q', 2, 4, 8, 0}, // 16: 8-node second order incomplete quadrangle (4 nodes associated with the vertices and 4 with the edges).
{'H', 2, 8, 20, 0}, // 17: 20-node second order incomplete hexahedron (8 nodes associated with the vertices and 12 with the edges).
{'P', 2, 6, 15, 0}, // 18: 15-node second order incomplete prism (6 nodes associated with the vertices and 9 with the edges).
{'Y', 2, 5, 13, 0}, // 19: 13-node second order incomplete pyramid (5 nodes associated with the vertices and 8 with the edges).
{'t', 3, 3, 9, 0}, // 20: 9-node third order incomplete triangle (3 nodes associated with the vertices, 6 with the edges)
{'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)
{'t', 4, 3, 12, 0}, // 22: 12-node fourth order incomplete triangle (3 nodes associated with the vertices, 9 with the edges)
{'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)
{'t', 5, 3, 15, 0}, // 24: 15-node fifth order incomplete triangle (3 nodes associated with the vertices, 12 with the edges)
{'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)
{'e', 3, 2, 4, 1}, // 26: 4-node third order edge (2 nodes associated with the vertices, 2 internal to the edge)
{'e', 4, 2, 5, 1}, // 27: 5-node fourth order edge (2 nodes associated with the vertices, 3 internal to the edge)
{'e', 5, 2, 6, 1}, // 28: 6-node fifth order edge (2 nodes associated with the vertices, 4 internal to the edge)
{'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)
{'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)
{'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)
{'?', 0, 0, 0, 0}, // 32: undocumented
{'?', 0, 0, 0, 0}, // 33: undocumented
{'?', 0, 0, 0, 0}, // 34: undocumented
{'?', 0, 0, 0, 0}, // 35: undocumented
{'q', 3, 4, 16, 1}, // 36: 3rd order quadrangle
{'q', 4, 4, 25, 1}, // 37: 4th order quadrangle
{'q', 5, 4, 36, 1}, // 38: 5th order quadrangle
{'?', 0, 0, 0, 0}, // 39: undocumented
{'?', 0, 0, 0, 0}, // 40: undocumented
{'?', 0, 0, 0, 0}, // 41: undocumented
{'t', 6, 3, 28, 1}, // 42: 6th order triangle
{'t', 7, 3, 36, 1}, // 43: 7th order triangle
{'t', 8, 3, 45, 1}, // 44: 8th order triangle
{'t', 9, 3, 55, 1}, // 45: 9th order triangle
{'t',10, 3, 66, 1}, // 46: 10th order triangle
{'q', 6, 4, 49, 1}, // 47: 6th order quadrangle
{'q', 7, 4, 64, 1}, // 48: 7th order quadrangle
{'q', 8, 4, 81, 1}, // 49: 8th order quadrangle
{'q', 9, 4,100, 1}, // 50: 9th order quadrangle
{'q',10, 4,121, 1}, // 51: 10th order quadrangle
{'?', 0, 0, 0, 0}, // 52: undocumented
{'?', 0, 0, 0, 0}, // 53: undocumented
{'?', 0, 0, 0, 0}, // 54: undocumented
{'?', 0, 0, 0, 0}, // 55: undocumented
{'?', 0, 0, 0, 0}, // 56: undocumented
{'?', 0, 0, 0, 0}, // 57: undocumented
{'?', 0, 0, 0, 0}, // 58: undocumented
{'?', 0, 0, 0, 0}, // 59: undocumented
{'?', 0, 0, 0, 0}, // 60: undocumented
{'?', 0, 0, 0, 0}, // 61: undocumented
{'e', 6, 2, 7, 1}, // 62: 6th order edge
{'e', 7, 2, 8, 1}, // 63: 7th order edge
{'e', 8, 2, 9, 1}, // 64: 8th order edge
{'e', 9, 2, 10, 1}, // 65: 9th order edge
{'e',10, 2, 11, 1}, // 66: 10th order edge
{'?', 0, 0, 0, 0}, // 67: undocumented
{'?', 0, 0, 0, 0}, // 68: undocumented
{'?', 0, 0, 0, 0}, // 69: undocumented
{'?', 0, 0, 0, 0}, // 70: undocumented
{'T', 6, 4, 84, 1}, // 71: 6th order tetrahedron
{'T', 7, 4,120, 1}, // 72: 7th order tetrahedron
{'T', 8, 4,165, 1}, // 73: 8th order tetrahedron
{'T', 9, 4,220, 1}, // 74: 9th order tetrahedron
{'T',10, 4,286, 1} // 75: 10th order tetrahedron
};
const size_t gmshtype_max = sizeof(gmsh_table)/sizeof(gmsh_element_t);
} // namespace rheolef
#endif // _RHEOLEF_MSH2GEO_DEFS_ICC
rheolef::gmsh_table
gmsh_element_t gmsh_table[]
Definition msh2geo_defs.icc:37
rheolef::gmshtype_max
const size_t gmshtype_max
Definition msh2geo_defs.icc:115
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::gmsh_element_t
Definition msh2geo_defs.icc:28
rheolef::gmsh_element_t::order
size_t order
Definition msh2geo_defs.icc:30
rheolef::gmsh_element_t::supported
size_t supported
Definition msh2geo_defs.icc:33
rheolef::gmsh_element_t::nn_tot
size_t nn_tot
Definition msh2geo_defs.icc:32
rheolef::gmsh_element_t::name
char name
Definition msh2geo_defs.icc:29
rheolef::gmsh_element_t::nv
size_t nv
Definition msh2geo_defs.icc:31