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

PENTA15 — prisme sérendipité

En bref

Le prisme à quinze nœuds : les six sommets et les milieux des neuf arêtes, sans nœud de face ni de centre. L’interpolation est quadratique dans le triangle et en hauteur. C’est l’extrusion quadratique du TRI6.

nom"PENTA15"
nœuds15 : les sommets, puis les milieux des arêtes
interpolation"LAGRANGE2" : sérendipité
dimension3 ; dans des Coords 3-D
bord2 TRI6, 3 QUA8
quadrature"GAUSS" : 6 × 3 = 18 points ; "REDUCED" : 1 point
parent linéairePENTA6
obtenu parto_quadratic d’un PENTA6

Élément de référence

Le triangle \( \xi, \eta \ge 0 \), \( \xi + \eta \le 1 \), étiré sur \( t = \zeta \in [0, 1] \), avec les coordonnées barycentriques \( L_1 = 1-\xi-\eta \), \( L_2 = \xi \), \( L_3 = \eta \).

Nœud\( (\xi, \eta, \zeta) \)rôle
0\( (0, 0, 0) \)sommet du bas
1\( (1, 0, 0) \)sommet du bas
2\( (0, 1, 0) \)sommet du bas
3\( (0, 0, 1) \)sommet du haut
4\( (1, 0, 1) \)sommet du haut
5\( (0, 1, 1) \)sommet du haut
6\( (\tfrac12, 0, 0) \)milieu de \( (0,1) \)
7\( (\tfrac12, \tfrac12, 0) \)milieu de \( (1,2) \)
8\( (0, \tfrac12, 0) \)milieu de \( (2,0) \)
9\( (\tfrac12, 0, 1) \)milieu de \( (3,4) \)
10\( (\tfrac12, \tfrac12, 1) \)milieu de \( (4,5) \)
11\( (0, \tfrac12, 1) \)milieu de \( (5,3) \)
12\( (0, 0, \tfrac12) \)milieu de \( (0,3) \)
13\( (1, 0, \tfrac12) \)milieu de \( (1,4) \)
14\( (0, 1, \tfrac12) \)milieu de \( (2,5) \)

Fonctions de forme

Avec \( L_1 = 1-\xi-\eta \), \( L_2 = \xi \), \( L_3 = \eta \) et \( t = \zeta \).

Aux sommets, la fonction du TRI6 en hauteur, moins une correction qui s’annule aux deux faces :

\[ \begin{aligned} N^{\text{bas}}_i &= L_i(2L_i-1)(1-t) - 2 L_i\,t(1-t), \\ N^{\text{haut}}_i &= L_i(2L_i-1)\,t - 2 L_i\,t(1-t). \end{aligned} \]

Aux milieux des côtés du triangle, en bas puis en haut :

\[ N = 4 L_a L_b\,(1-t), \qquad N = 4 L_a L_b\,t . \]

Aux milieux des arêtes verticales :

\[ N = 4 L_i\,t(1 - t). \]

Dérivées de référence

En dérivant ces expressions : les dérivées des \( L_i \) sont constantes, et celle en \( t \) vient des facteurs \( (1-t) \), \( t \) et \( t(1-t) \).

Degrés de liberté

physiqueinconnues par nœudpar maille
conduction, diffusionT15
élasticité 3-Du_x, u_y, u_z45

Quadrature

"GAUSS" : le produit de la règle du TRI6 (6 points) et de Gauss-Legendre à 3 points sur \( [0, 1] \), soit 18 points, exact au degré 4 dans le triangle et 5 en hauteur ; \( \sum_g w_g = \tfrac12 \). La masse, de degré 4 dans chaque sens, est exacte sur un prisme à arêtes droites dont le triangle du haut est celui du bas déplacé.

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

Exemple

import pyrucast

penta15 = pyrucast.FiniteElementSpace(
    pyrucast.Mesh(pyrucast.Coords(3), "PENTA15"), interpolation="LAGRANGE2"
)[0]
print(penta15.nodes_per_cell, penta15.gauss_count)  # 15 18

# Les six points du TRI6, à trois hauteurs : le premier en ζ = ½ − ½√(3/5).
print([round(x, 6) for x in penta15.gauss_xi(0)])  # [0.445948, 0.445948, 0.112702]
print(round(sum(penta15.gauss_weight(g) for g in range(18)), 12))  # 0.5

Côté Rust

Penta15 (src/atoms/element_kind/penta15.rs) implémente ElementKind, avec la règle tri6_gauss du TRI6 et gauss3_1d, partagées dans src/atoms/element_kind/quadrature.rs.