Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

HEX20 — hexaèdre sérendipité

En bref

L’hexaèdre à vingt nœuds : les huit sommets et les milieux des douze arêtes, sans nœud de face ni de centre. Sept nœuds de moins que le HEX27, pour un polynôme incomplet, sans les termes comme \( \xi^2\eta^2\zeta^2 \).

nom"HEX20"
nœuds20 : les sommets, puis les milieux des arêtes
interpolation"LAGRANGE2" : sérendipité
dimension3 ; dans des Coords 3-D
bord6 QUA8
quadrature"GAUSS" : 3×3×3 points, degré 5 par direction ; "REDUCED" : 1 point
parent linéaireHEX8
obtenu parto_quadratic d’un HEX8

Élément de référence

Le cube \( [-1, +1]^3 \). Un milieu d’arête a exactement une coordonnée nulle.

Nœud\( (\xi, \eta, \zeta) \)rôle
0\( (-1,-1,-1) \)sommet
1\( (+1,-1,-1) \)sommet
2\( (+1,+1,-1) \)sommet
3\( (-1,+1,-1) \)sommet
4\( (-1,-1,+1) \)sommet
5\( (+1,-1,+1) \)sommet
6\( (+1,+1,+1) \)sommet
7\( (-1,+1,+1) \)sommet
8\( (0,-1,-1) \)milieu de \( (0,1) \)
9\( (+1,0,-1) \)milieu de \( (1,2) \)
10\( (0,+1,-1) \)milieu de \( (2,3) \)
11\( (-1,0,-1) \)milieu de \( (3,0) \)
12\( (0,-1,+1) \)milieu de \( (4,5) \)
13\( (+1,0,+1) \)milieu de \( (5,6) \)
14\( (0,+1,+1) \)milieu de \( (6,7) \)
15\( (-1,0,+1) \)milieu de \( (7,4) \)
16\( (-1,-1,0) \)milieu de \( (0,4) \)
17\( (+1,-1,0) \)milieu de \( (1,5) \)
18\( (+1,+1,0) \)milieu de \( (2,6) \)
19\( (-1,+1,0) \)milieu de \( (3,7) \)

Fonctions de forme

Pour un nœud de coordonnées \( (p, q, r) \).

Aux sommets (\( p, q, r = \pm1 \)), noter le \( -2 \) :

\[ N_i = \tfrac18\,(1 + p\xi)(1 + q\eta)(1 + r\zeta)\,(p\xi + q\eta + r\zeta - 2). \]

Aux milieux, selon la coordonnée nulle :

\[ \begin{aligned} p = 0 :&\quad N = \tfrac14(1 - \xi^2)(1 + q\eta)(1 + r\zeta), \\ q = 0 :&\quad N = \tfrac14(1 + p\xi)(1 - \eta^2)(1 + r\zeta), \\ r = 0 :&\quad N = \tfrac14(1 + p\xi)(1 + q\eta)(1 - \zeta^2). \end{aligned} \]

Au centre, les sommets valent \( -\tfrac14 \) et les milieux \( \tfrac14 \).

Dérivées de référence

En dérivant ces expressions.

Degrés de liberté

physiqueinconnues par nœudpar maille
conduction, diffusionT20
élasticité 3-Du_x, u_y, u_z60

Quadrature

"GAUSS" : produit 3×3×3 de Gauss-Legendre, 27 points, exact au degré 5 par direction ; le point 13 est le centre ; \( \sum_g w_g = 8 \). La masse, de degré 4 par direction, est exacte sur un parallélépipède à arêtes droites.

"REDUCED" : un point au centre, de poids 8.

Exemple

import pyrucast

hex20 = pyrucast.FiniteElementSpace(
    pyrucast.Mesh(pyrucast.Coords(3), "HEX20"), interpolation="LAGRANGE2"
)[0]
print(hex20.nodes_per_cell, hex20.gauss_count)  # 20 27

# Le point 13 est le centre : les sommets y valent −¼, les milieux ¼.
n = hex20.n_at_g(13)
print(hex20.gauss_xi(13), n[0], n[8])  # [0.0, 0.0, 0.0] -0.25 0.25
print(sum(n))  # 1.0

Côté Rust

Hex20 (src/atoms/element_kind/hex20.rs) implémente ElementKind.