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

QUA9 — quadrangle biquadratique

En bref

Le quadrangle à neuf nœuds : les sommets, les milieux des côtés et le centre. Son interpolation est le produit de deux paraboles, polynôme de degré 2 complet dans chaque direction, terme \( \xi^2\eta^2 \) compris.

nom"QUA9"
nœuds9 : les sommets, les milieux des côtés, le centre
interpolation"LAGRANGE2" : complète
dimension2 ; dans des Coords 2-D ou 3-D
bord4 SEG3
quadrature"GAUSS" : 3×3 points, degré 5 par direction ; "REDUCED" : 1 point
parent linéaireQUA4
obtenu parsweep, transfinite, pave_surface, grid_surface ; skin d’un HEX27

Élément de référence

Le carré \( [-1, +1]^2 \) : les nœuds du QUA8, puis le centre.

Nœud\( (\xi, \eta) \)rôle
0\( (-1, -1) \)sommet
1\( (+1, -1) \)sommet
2\( (+1, +1) \)sommet
3\( (-1, +1) \)sommet
4\( (0, -1) \)milieu de \( (0,1) \)
5\( (+1, 0) \)milieu de \( (1,2) \)
6\( (0, +1) \)milieu de \( (2,3) \)
7\( (-1, 0) \)milieu de \( (3,0) \)
8\( (0, 0) \)centre

Fonctions de forme

Le produit des trois fonctions de Lagrange quadratiques d’un segment, sur les positions \( -1, 0, +1 \) :

\[ \ell_{-}(t) = \tfrac12 t(t-1), \qquad \ell_{0}(t) = 1 - t^2, \qquad \ell_{+}(t) = \tfrac12 t(t+1), \]

et \( N_i(\xi, \eta) = \ell_a(\xi)\,\ell_b(\eta) \), où \( a \) et \( b \) sont les positions du nœud dans chaque direction. Le centre a \( N_8 = (1-\xi^2)(1-\eta^2) \).

Dérivées de référence

\[ \frac{\partial N_i}{\partial \xi} = \ell_a'(\xi)\,\ell_b(\eta), \qquad \frac{\partial N_i}{\partial \eta} = \ell_a(\xi)\,\ell_b'(\eta), \]

avec \( \ell_{-}'(t) = t - \tfrac12 \), \( \ell_0'(t) = -2t \), \( \ell_{+}'(t) = t + \tfrac12 \).

Degrés de liberté

physiqueinconnues par nœudpar maille
conduction, diffusionT9
élasticité plane ou axisymétriqueu_x, u_y18
échanges, rayonnement, sur la face d’un volume quadratiqueT9

Quadrature

"GAUSS" : produit 3×3 de Gauss-Legendre, 9 points, exact au degré 5 par direction ; \( \sum_g w_g = 4 \). La masse, de degré 4 par direction, est exacte sur un parallélogramme à côtés droits.

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

Exemple

import pyrucast

qua9 = pyrucast.FiniteElementSpace(
    pyrucast.Mesh(pyrucast.Coords(2), "QUA9"), interpolation="LAGRANGE2"
)[0]
print(qua9.nodes_per_cell, qua9.gauss_count)  # 9 9

# Au centre, seul le nœud central est non nul : N_8 = (1 − ξ²)(1 − η²) = 1.
n = qua9.n_at_g(4)
print(qua9.gauss_xi(4), [i for i, v in enumerate(n) if abs(v) > 1e-12], n[8])
# [0.0, 0.0] [8] 1.0

Côté Rust

Qua9 (src/atoms/element_kind/qua9.rs) implémente ElementKind.