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

PENTA6 — prisme linéaire

En bref

Le prisme à six nœuds, un triangle étiré dans une direction. C’est ce que donne un maillage de triangles extrudé, ou tourné autour d’un axe : un maillage par couches.

nom"PENTA6"
nœuds6 : le triangle du bas, puis celui du haut
interpolation"LAGRANGE1" : affine dans le triangle, linéaire en hauteur
dimension3 ; dans des Coords 3-D
bord2 TRI3, 3 QUA4
quadrature"GAUSS" : 3 × 2 = 6 points ; "REDUCED" : 1 point
version quadratiquePENTA15
obtenu parextrude, revolve d’un TRI3 ; sweep_solid ; pave_volume

Élément de référence

Le triangle \( \xi, \eta \ge 0 \), \( \xi + \eta \le 1 \), étiré sur \( \zeta \in [0, 1] \) : le triangle du bas (\( \zeta = 0 \)) puis celui du haut (\( \zeta = 1 \)), chacun dans le sens trigonométrique.

Nœud\( (\xi, \eta, \zeta) \)Nœud\( (\xi, \eta, \zeta) \)
0\( (0, 0, 0) \)3\( (0, 0, 1) \)
1\( (1, 0, 0) \)4\( (1, 0, 1) \)
2\( (0, 1, 0) \)5\( (0, 1, 1) \)

Fonctions de forme

Le produit des coordonnées barycentriques du triangle, \( L_1 = 1-\xi-\eta \), \( L_2 = \xi \), \( L_3 = \eta \), et d’une fonction linéaire en \( \zeta \) :

\[ N_{j-1} = L_j\,(1 - \zeta), \qquad N_{j+2} = L_j\,\zeta \qquad (j = 1, 2, 3). \]

Dérivées de référence

Les dérivées des \( L_j \) sont constantes ; celle en \( \zeta \) vient du facteur de hauteur. Pour le nœud 0 :

\[ \nabla_\xi N_0 = \big(-(1-\zeta),\ -(1-\zeta),\ -L_1\big). \]

Degrés de liberté

physiqueinconnues par nœudpar maille
conduction, diffusionT6
élasticité 3-Du_x, u_y, u_z18

Quadrature

"GAUSS" : le produit de la règle du TRI3 (3 points, poids \( \tfrac16 \)) et de Gauss-Legendre à 2 points sur \( [0, 1] \) (\( \zeta_g = \tfrac12 \mp \tfrac{1}{2\sqrt3} \), poids \( \tfrac12 \)), soit 6 points.

\[ w_g = \tfrac16\cdot\tfrac12 = \tfrac{1}{12}, \qquad \sum_g w_g = \tfrac12. \]

Exacte au degré 2 dans le triangle et 3 en hauteur : la masse et la raideur sont exactes sur un prisme dont le triangle du haut est celui du bas déplacé.

"REDUCED" : un point en \( (\tfrac13, \tfrac13, \tfrac12) \), de poids \( \tfrac12 \).

Exemple

import pyrucast

penta6 = pyrucast.FiniteElementSpace(pyrucast.Mesh(pyrucast.Coords(3), "PENTA6"))[0]
print(penta6.nodes_per_cell, penta6.gauss_count)  # 6 6

# Les points du TRI3, à deux hauteurs ζ = ½ ∓ 1/(2√3), de poids 1/12.
print([round(x, 6) for x in penta6.gauss_xi(0)], round(penta6.gauss_weight(0), 6))
# [0.5, 0.0, 0.211325] 0.083333
# N = L_j (1 − ζ) en bas, L_j ζ en haut.
print([round(v, 6) for v in penta6.n_at_g(0)])
# [0.394338, 0.394338, 0.0, 0.105662, 0.105662, 0.0]

Côté Rust

Penta6 (src/atoms/element_kind/penta6.rs) implémente ElementKind.