r3.06.03 Calcul des contraintes aux nœuds par lissage local#

Résumé :

On présente une méthode locale de calcul de contraintes aux nœuds à partir des contraintes aux points de GAUSS. Elle est utilisée dans les options SIGM_ELNO et SIEF_ELNO.

Cette méthode se résume à calculer les contraintes aux sommets d’un élément en multipliant les contraintes aux points de GAUSS par une matrice de lissage, constante pour chaque type d’élément.

Pour les éléments isoparamétriques de degré 2, les contraintes aux nœuds milieux sont obtenues par moyennage des valeurs des contraintes aux 2 sommets de l’arête.

Cette méthode de lissage présente deux avantages:

  • les contraintes nodales obtenues ont un ordre de précision de plus que par le calcul direct aux nœuds,

  • la méthode est peu coûteuse en temps CPU.

Cette méthode a été généralisée :

  • aux calculs des déformations (option EPSI_ELNO) et des variables internes (option VARI_ELNO) aux nœuds en mécanique,

  • au calcul des flux (option FLUX_ELNO) aux nœuds en thermique.

Méthode locale de minimisation par moindres carrés#

D’une façon générale, on souhaite approximer, au sens des moindres carrés, la répartition spatiale des contraintes par \(\sigma (x)\) une fonction polynômiale:

\(\stackrel{ˆ}{\sigma}(x)=\sum_{\begin{array}{}i=0,\mathrm{...},p\end{array}}{a}_{i}{P}^{i}(x)\)

Le problème revient à trouver les coefficients \({a}_{i}\) qui minimisent la fonctionnelle:

\(\chi =\int\int{(\sigma -\stackrel{ˆ}{\sigma})}^{2}\mathrm{dx}\mathrm{dy}\)

Les valeurs de la fonction \(\sigma\) sont connues ici seulement aux points de Gauss : \({\sigma}^{k}=\sigma ({x}_{k})\)

Le minimum sera atteint si et seulement si:

\(\frac{\partial \chi }{\partial {a}_{i}}=0\begin{array}{}\forall i=0,\mathrm{...},p\end{array}\)

Dans le cadre de la méthode des éléments finis en déplacement, on choisit la fonction de lissage suivante :

\(\stackrel{ˆ}{\sigma}(x)=\sum_{i=1}^{n}{N}_{i}(x)\stackrel{ˆ}{{\sigma}_{i}}\)

où:

\({N}_{i}\) est la fonction de forme associée au nœud \(i\) sur l’élément fini considéré,

\(\stackrel{ˆ}{{\sigma}_{i}}\) est la valeur de la contrainte au nœud \(i\) cherchée,

\(n\) le nombre de nœuds retenus pour le lissage.

On doit donc résoudre le système:

(353)#\[\frac{\partial \chi }{\partial \stackrel{ˆ}{{\sigma}_{i}}}=0\forall i=1,\mathrm{...},n éq 2-1\]

On peut choisir entre deux méthodes de lissage local : lissage continu ou lissage discret.

Méthodes de lissage local (réf [bib2] et [bib3])#

Lissage local continu#

Ce type de lissage conduit à résoudre le système [(4848)] avec la fonctionnelle définie sur l’élément fini courant :

\(\chi =\underset{e}{\int}{(\sigma -\stackrel{ˆ}{\sigma})}^{2}=\underset{e}{\int}{(\sigma -\sum_{i=1}^{n}{N}_{i}\stackrel{ˆ}{{\sigma}_{i}})}^{2}\)

La minimisation conduit à \({M}^{e}\stackrel{ˆ}{\sigma}={F}^{e}\)

avec:

\(\begin{array}{}{M}_{ij}^{e}=\underset{e}{\int}{N}_{i}{N}_{j}\mathrm{dx}\mathrm{dy}=\sum_{k=1}^{\mathrm{npg}}\stackrel{ˉ}{{N}_{i}}({\xi}_{k}){N}_{j}({\xi}_{k}){(\detJ)}_{k}{\omega}_{k}\\ {F}_{i}^{e}=\underset{e}{\int}{N}_{i}\sigma \mathrm{dx}\mathrm{dy}=\sum_{k=1}^{\mathrm{npg}}\stackrel{ˉ}{{N}_{i}}({\xi}_{k}){\sigma}_{k}{(\detJ)}_{k}{\omega}_{k}\end{array}\)

\({\xi}_{k}\) sont les points de GAUSS dans l’élément de référence

\({(\detJ)}_{k}\)

le jacobien de la transformation géométrique entre l’élément de référence et l’élément courant au point \({\xi}_{k}\) .

\({\omega}_{k}\) : le poids associé au point \({\xi}_{k}\)

\({\xi}_{k}\) : la contrainte au point \({\xi}_{k}\)

\(\stackrel{ˉ}{{N}_{i}}({\xi}_{k})\) : la valeur de la fonction de forme dans l’élément de référence au point \({\xi}_{k}\)

../../../../_images/10002A0C0000220100001442A9EBADD2D49A3A00.svg

Remarques :

  • Si les espaces d’interpolation de \(\sigma\) et de \(\stackrel{ˆ}{\sigma}\) sont les mêmes, on a \(\sigma =\stackrel{ˆ}{\sigma}\) *. Dans la pratique, on retient pour espace de* \(\stackrel{ˆ}{\sigma}\) un espace plus petit que celui où est défini \(\sigma\) par l’élément fini.

  • On voit le lien entre l’approximation aux points de GAUSS de \(\sigma\) \(\sigma\) converge donc mieux et ce procédé de lissage dont la justification est au contraire continue.

  • La manière dont \(\sigma\) est calculé aux points de GAUSS n’intervient pas. La généralisation aux problèmes non linéaires est donc évidente, bien qu’elle ne puisse relever de la même justification.

Cette méthode n’est pourtant pas retenue car elle nécessite une résolution de système linéaire pour chaque calcul de \(\stackrel{ˆ}{\sigma}\) .

Lissage local discret#

Dans ce cas, la fonctionnelle \(\chi\) est remplacée par la sommation:

\(\tilde{\chi }=\sum_{k=1}^{\mathrm{npg}}{(\sigma ({\xi}_{k})-\stackrel{ˆ}{\sigma}({\xi}_{k}))}^{2}=\sum_{k=1}^{\mathrm{npg}}{(\sigma ({\xi}_{k})-\sum_{i=1}^{n}\stackrel{ˆ}{{\sigma}_{i}}{N}_{i}({\xi}_{k}))}^{2}\)

../../../../_images/10001432000027CA0000124B8440E2EE23094EA7.svg

Le système à résoudre s’écrit là encore: \(\frac{\partial \tilde{\chi }}{\partial \stackrel{ˆ}{{\sigma}_{i}}}=0\) soit:

\(\sum_{k=1}^{\mathrm{npg}}\sum_{j=1}^{n}{N}_{i}({\xi}_{k}){N}_{j}({\xi}_{k})\stackrel{ˆ}{{\sigma}_{j}}=\sum_{k=1}^{\mathrm{npg}}{N}_{i}({\xi}_{k})\sigma ({\xi}_{k})\forall i=1,\mathrm{...},n\)

soit sous forme matricielle: \(M\lbrace {\stackrel{ˆ}{\sigma}}_{\text{noeud}}\rbrace =P\lbrace {\sigma}_{\text{GAUSS}}\rbrace\)

Les matrices \(M\) (carrée \(n\times n\) ) et \(P\) (rectangulaire \(n\times \mathrm{npg}\) ) sont alors indépendantes de l’élément courant \(e\) .

Elles peuvent donc être calculées une fois pour toutes sur l’élément de référence.

Remarques:

  • Cette méthode est plus économique que la précédente et donne des résultats comparables [bib2],

  • Là encore, la manière donc \({\sigma}^{k}\) est calculée en chaque point de GAUSS est indifférente (du moment que le nombre de points de GAUSS utilisé pour le calcul de \(\sigma\) et celui de \(\stackrel{ˆ}{\sigma}\) est le même). On pourra donc utiliser cette méthode en non linéaire .

Application de la méthode au calcul des contraintes aux nœuds pour différents éléments#

Le lissage local adopté dans code_aster est le lissage local discret [r3.06.03-lissage-local-discret], qui permet d’éviter le calcul d’intégrales sur l’élément.

Sur tous les éléments de milieu continu 2D et 3D, on a choisi un espace de lissage s’appuyant sur les fonctions de forme relatives aux sommets de l’élément.

La méthode permet donc d’obtenir les contraintes aux sommets. Dans le cas des éléments d’ordre 2, on calcule les contraintes aux nœuds milieux en prenant la valeur moyenne arithmétique des deux sommets « encadrant » le nœud milieu considéré.

On donne ci-après les matrices de passage permettant de calculer les contraintes aux nœuds sommets à partir des contraintes aux points de GAUSS. Ces matrices peuvent être carrées ou rectangulaires. En effet, les matrices de passage \({M}^{\text{-1}}P\) sont calculées une fois pour toutes à l’initialisation de chaque type d’élément fini (dans AFFE_MODELE). Deux types de matrices existent:

  • des matrices \({M}^{\text{-1}}P\) carrées, qui sont à utiliser lorsque le nombre de points de GAUSS utilisé pour le calcul des contraintes aux points de GAUSS \({\sigma}^{k}\) est identique au nombre de nœuds sommets,

  • des matrices \({M}^{\text{-1}}P\) rectangulaires, qui sont à utiliser lorsque le nombre de points de GAUSS de \({\sigma}^{k}\) est différent (en général supérieur) au nombre de nœuds sommets.

Matrices de passage carrées#

Ces matrices sont utilisées dans les éléments pour lesquels le nombre de points de GAUSS du calcul de SIEF_ELGA/SIGM_ELGA est égal au nombre de sommets. L’option calcule en premier les contraintes en un nombre de points de GAUSS égal au nombre de sommets. Puis les matrices \({M}^{\text{-1}}P\) (données après) sont utilisées pour calculer les contraintes aux nœuds. Il s’agit des éléments:

  • en 2D : QUAD4, TRIA6, QUAD8 sous-intégré,

  • en 3D : TETRA4, PENTA6, HEXA8, PYRAM5 et HEXA20 sous-intégré.

Matrices de passage carrées pour les éléments 2D#

Triangles#

\({M}^{\text{-1}}P=\frac{1}{3}\left[\begin{array}{ccc}5& -1& -1\\ -1& 5& -1\\ -1& -1& 5\end{array}\right]\)

Quadrangles#

\({M}^{\text{-1}}P=\left[\begin{array}{cccc}1+\frac{\sqrt{3}}{2}& -\frac{1}{2}& 1-\frac{\sqrt{3}}{2}& -\frac{1}{2}\\ -\frac{1}{2}& 1+\frac{\sqrt{3}}{2}& -\frac{1}{2}& 1-\frac{\sqrt{3}}{2}\\ 1-\frac{\sqrt{3}}{2}& -\frac{1}{2}& 1+\frac{\sqrt{3}}{2}& -\frac{1}{2}\\ -\frac{1}{2}& 1-\frac{\sqrt{3}}{2}& -\frac{1}{2}& 1+\frac{\sqrt{3}}{2}\end{array}\right]\)

Matrices de passage carrées pour les éléments 3D#

Tétraèdres#

\(\begin{array}{}{M}^{\text{-1}}P=\frac{1}{a-b}\left[\begin{array}{cccc}a& a& a-1& a\\ a& a-1& a& a\\ a-1& a& a& a\\ a& a& a& a-1\end{array}\right]\\ \\ \text{avec}a=\frac{5-\sqrt{5}}{20}b=\frac{5+3\sqrt{5}}{20}\end{array}\)

Pentaèdres#

\(\begin{array}{}{M}^{\text{-1}}P=\left[\begin{array}{cccccccc}\alpha & -\alpha & \alpha & & & 1-\alpha & \alpha -1& 1-\alpha \\ \alpha & \alpha & -\alpha & & & 1-\alpha & 1-\alpha & \alpha -1\\ -\alpha & \alpha & \alpha & & & \alpha -1& 1-\alpha & 1-\alpha \\ & & & & & & & \\ 1-\alpha & \alpha -1& 1-\alpha & & & \alpha & -\alpha & \alpha \\ 1-\alpha & 1-\alpha & \alpha -1& & & \alpha & \alpha & -\alpha \\ \alpha -1& 1-\alpha & 1-\alpha & & & -\alpha & \alpha & \alpha \end{array}\right]\\ \alpha =\frac{\sqrt{3}+1}{2}\end{array}\)

Hexaèdres#

\({M}^{\text{-1}}P=\left[\begin{array}{cccccccc}a& b& b& c& b& c& c& d\\ b& c& c& d& a& b& b& c\\ c& d& b& c& b& c& a& b\\ b& c& a& b& c& d& b& c\\ b& a& c& b& c& b& d& c\\ c& b& d& c& b& a& c& b\\ d& c& c& b& c& b& b& a\\ c& b& b& a& d& c& c& b\end{array}\right]\) \(\begin{array}{}a=\frac{5+3\sqrt{3}}{4}\\ b=\frac{1+\sqrt{3}}{4}\\ c=\frac{\sqrt{3}-1}{4}\\ d=\frac{5-3\sqrt{3}}{4}\end{array}\)

../../../../_images/1000131A0000198700001B2FD3E93F0C778C7264.svg

Figure 4.1.2.3-a : Numérotation des points de GAUSS sur l’hexaèdre à 8 nœuds

Matrices de passage \({M}^{\text{-1}}P\) rectangulaires#

En non linéaire pour certains types d’éléments (TRIA3, QUAD8 et QUAD9 en 2D, TETRA10, PENTA15 et HEXA20 en 3D), les contraintes et les variables internes aux points de GAUSS sont calculées sur une famille de points de GAUSS plus riche (9 points pour les quadrangles, 15 points pour les tétraèdres, 21 points pour les pentaèdres, 27 points pour les hexaèdres).

Le lissage local discret est alors effectué à partir de ces champs et le transport aux nœuds fait intervenir des matrices différentes des précédentes. Elles ne sont plus carrées, car de dimension (nombre de sommets, nombre de points de GAUSS). Les matrices de passage \({M}^{\text{-1}}P\) ne sont pas calculées explicitement, en particulier \(M\) est inversée par Code_Aster .

Dans le cas particulier du triangle à 3 nœuds, les champs sont supposés constants par élément (un seul point de GAUSS) et:

\({M}^{\text{-1}}P=\left[\begin{array}{}1\\ 1\\ 1\end{array}\right]\)

Par exemple, le calcul effectué par l’option SIGM_ELNO est alors le suivant:

Si les contraintes ont été calculées sur une famille possédant un nombre de points de GAUSS supérieur au nombre de sommets (pour les éléments signalés ci‑dessus). \({M}^{\text{-1}}P\) est alors rectangulaire, et \(\stackrel{ˆ}{{\sigma}_{i}}=\sum_{i=1}^{\text{nb sommets}}\sum_{k=1}^{\text{nb pts Gauss}}{({M}^{\text{-1}}P)}_{\mathrm{ik}}{\sigma}^{k}\)

Sinon, si le nombre de points de GAUSS est égal au nombre de sommets, \({M}^{\text{-1}}P\) est alors carrée. On calcule \(\stackrel{ˆ}{{\sigma}_{i}}={({M}^{\text{-1}}P)}_{\mathrm{ik}}{\sigma}^{k}\) [r3.06.03-matrices-passage-carrees].

Autres options de calcul utilisant la même méthode#

La méthode décrite précédemment est utilisée dans code_aster pour calculer les déformations, les variables internes et les flux aux nœuds.

Les champs produits sont des cham_elem aux nœuds.

Autres méthodes de lissage de contraintes#

Il existe deux autres méthodes de lissage, portant seulement sur les contraintes, utilisées par les estimateurs de Zhu-Zienkiewicz version 1 et 2 [R4.10.01 §3].

Les champs de contraintes aux nœuds produits sont alors des cham_no.

Les options de calcul correspondantes sont accessibles par la commande CALC_ERREUR [U4.81.06].

Bibliographie#

[bib1]

BARLOW J. - Optimal stress locations in finite element models - International Journal for Numerical Methods in Engineering Vol.10 p 243 - 251 (1976).

[bib2]

HINTON E., CAMPBELL JJ. - Local and global smoothing of discontinuous finite element functions using a least squares method - International Journal for Numerical Methods in Engineering Vol.8 p 461 - 480 (1974).

[bib3]

HINTON E., SCOTT F.C., RICKETTS R.E. - Local least squares stress smoothing for parabolic isoparametric elements - Int. J. for Num. Meth. in Eng. Vol 9 p235-256 (1975)

Description des versions du document#

Version Aster

Auteur(s) Organisme(s)

Description des modifications

10.2

X. DESROCHES (EDF/IMA/T62)

Petites corrections