hexahedron(6rheolef)

πŸ“¦
version 7.2 Β· 4 versions
, in debian trixie, ubuntu noble, ubuntu questing

✨ 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:

  1. first the vertex,
  2. then the edge-node, following the edge numbering order and orientation,
  3. then the face-nodes, following the face numbering order and orientation,
  4. 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 the gmsh mesh generator when you're using high-order elements. Not a problem though, that difference is handled by the msh2geo_1 mesh 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 (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