hexahedron(6rheolef)
β¨ NAME β¨
hexahedron β the reference element, bestie π (this is from the rheolef-7.2 manual, page hexahedron(6rheolef) if you're keeping receipts)
π¦ DESCRIPTION π¦
Okay so listen up, because this is the moment. The edge reference_element(6) is literally K = [-1,1]. That's it, that's the whole vibe. And here's what it looks like:
x2
4----------7
|\ |\
| \ | \
| \ | \
| 5------+---6
| | | |
0---+------3 - | ---> x1
\ | \ |
\ | \ |
\| \|
1----------2
\
x0
The orientation is set up so that the triedra (01, 03, 04) is direct, and all the faces, when you look at them from the exterior, are in the direct sens. Like, yes, it's giving very deliberate. If you wanna go read the source of this energy:
P. L. Georges, Generation automatique de maillages, page 24, coll RMA, 16, Masson, 1994.
This three-dimensional reference_element(6) then gets transformed β after the Piola geometrical application, no cap β into a hexahedron in a 3D physical space, as a geo_element(6). Glow-up complete. π
πΈ Curved high order hexahedra πΈ
Curved high order Pk hexahedra (k >= 1) in 3D geometries are supported, periodt. These hexahedra get extra edge-nodes, face-nodes and internal volume-nodes. And the way these nodes are numbered is:
- first the vertex,
- then the edge-node, following the edge numbering order and orientation,
- then the face-nodes, following the face numbering order and orientation,
- and finally the face internal nodes, following the hexahedron lattice.
Here's the P2 situation in all its glory:
4----19----7
|\ |\
|16 23 | 18
12 \ 21 15 \
| 5----17+---6
|22 | 26 | 25|
0---+-11---3 |
\ 13 24 \ 14
8 | 20 10|
\| \|
1-----9----2
P2
Heads up bestie β οΈ β the edge-nodes and face-nodes numbering slightly differ from those used in thegmshmesh generator when you're using high-order elements. Not a problem though, that difference is handled by themsh2geo_1mesh file converter. She's got it covered. π«Ά
π IMPLEMENTATION π
This documentation has been generated from file fem/geo_element/hexahedron.icc β and here's the whole thing, verbatim, because we do not gatekeep:
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 } };
π AUTHOR π
Pierre Saramito <Pierre.Saramito@imag.fr> β the icon who wrote all this π
π COPYRIGHT π
Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
And that's the whole page, bestie β this one's brought to you by rheolef, Version 7.2, and it's the hexahedron(6rheolef) girlies' moment. Slay, build that mesh, iykyk. πβ¨π
π¦ where this page comes from
- debian trixie: librheolef-dev 7.2-4 Β· GPL-3.0-or-later
- ubuntu noble: librheolef-dev 7.2-3build5 Β· GPL-3.0-or-later
- ubuntu questing: librheolef-dev 7.2-4build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms