---
name: "tetrahedron"
section: "7rheolef"
platform: "linux"
package: "librheolef-dev"
version: "7.0-2+b1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/tetrahedron/7rheolef"
---

# tetrahedron(7rheolef)

Tetraedron reference element

## NAME

**tetrahedron** - Tetraedron reference element

## DESCRIPTION

The tetrahedron reference element is

```
        K = { 0 < x < 1 and 0 < y < 1-x and 0 < z < 1-x-y }

```

```
                       z
                     .
                   ,/
                  /
                3
              ,/|`\
            ,/  |  `\
          ,/    '.   `\
        ,/       |     `\
      ,/         |       `\
     0-----------'.--------2 --> y
      `\.         |      ,/
         `\.      |    ,/
            `\.   '. ,/
               `\. |/
                  `1
                     `\.
                       ` x

```

Curved high order Pk tetrahedra (k \>= 1) in 3d geometries are supported. These tetrahedra have additional edge-nodes, face-nodes and internal volume-nodes.

## THESE NODES ARE NUMBERED AS

 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 tetrahedron lattice. See below for edges and faces numbering and orioentation.

```
                3
              ,/|`\
            ,/  |  `\
          ,7    '.   `9
        ,/       |     `\
      ,/         8       `\
     0--------6--'.--------2
      `\.         |      ,/
         `\.      |    ,5
            `4.   '. ,/
               `\. |/
                  `1
               P2

```

## NUMBERING

The orientation is such that triedra (01, 02, 03) 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)).

## IMPLEMENTATION

```
const size_t dimension = 3;
const Float  measure = Float(1.)/Float(6.);
const size_t n_vertex = 4;
const point vertex [n_vertex] = {
        point( 0, 0, 0 ),
        point( 1, 0, 0 ),
        point( 0, 1, 0 ),
        point( 0, 0, 1 ) };
const size_t  n_face = 4;
const size_t face [n_face][3] = {
        { 0, 2, 1 },
        { 0, 3, 2 },
        { 0, 1, 3 },
        { 1, 2, 3 } };
const size_t  n_edge = 6;
const size_t edge [n_edge][2] = {
        { 0, 1 },
        { 1, 2 },
        { 2, 0 },
        { 0, 3 },
        { 1, 3 },
        { 2, 3 } };

```

## SEE ALSO

msh2geo(1)

## 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.
