Hexaedron reference element
The hexahedron reference element is [-1,1]^3.
^ z | 4----------7 |nbsp; |\ | nbsp; | \ | nbsp; | \ | 5------+---6 | | | | 0---+------3 - | ---> y nbsp; | nbsp; | nbsp;| nbsp;| \| \| 1----------2 \ x
Curved high order Pk hexaedra (k >= 1) in 3d geometries are supported. These hexaedra have additional edge-nodes, face-nodes and internal volume-nodes.
first vertex, then edge-node, following the edge numbering order and orientation, then face-nodes following the face numbering order and orientation, and finally the face internal nodes, following the hexaedron lattice. See below for edges and faces numbering and orioentation.
4----19----7 |nbsp; |\ |16 23 | 18 12 nbsp;21 15 \ | 5----17+---6 |22 | 26 | 25| 0---+-11---3 | nbsp;13 24 nbsp; 14 8 | 20 10| \| \| 1-----9----2 P2
The orientation is such that triedra (01, 03, 04) is direct and all faces, see from exterior, are in the direct sens. References: P. L. Georges, "Generation automatique de maillages", page 24-, coll RMA, 16, Masson, 1994. Notice that the edge-nodes and face-nodes numbering slighly differ from those used in the gmsh mesh generator when using high-order elements. This difference is handled by the msh2geo mesh file converter (see msh2geo(1)).
const size_t dimension = 3; const Float measure = 8; const size_t n_vertex = 8; const point vertex [n_vertex] = { point(-1,-1,-1 ), point( 1,-1,-1 ), point( 1, 1,-1 ), point(-1, 1,-1 ), point(-1,-1, 1 ), point( 1,-1, 1 ), point( 1, 1, 1 ), point(-1, 1, 1 ) }; const size_t n_face = 6; const size_t face [n_face][4] = { {0, 3, 2, 1 }, {0, 4, 7, 3 }, {0, 1, 5, 4 }, {4, 5, 6, 7 }, {1, 2, 6, 5 }, {2, 3, 7, 6 } }; const size_t n_edge = 12; const size_t edge [n_edge][2] = { {0, 1 }, {1, 2 }, {2, 3 }, {3, 0 }, {0, 4 }, {1, 5 }, {2, 6 }, {3, 7 }, {4, 5 }, {5, 6 }, {6, 7 }, {7, 4 } };
msh2geo(1)