u2.07.02 Notice d’utilisation de la sous-structuration statique#
Résumé
Ce document est une introduction à l’utilisation de la sous-structuration statique.
En s’appuyant sur un exemple détaillé, le cas test SSLP100B :
on lira les paragraphes 1, 2, 3, 4 ;
on se reportera à la description des commandes spécifiques :
on reviendra aux commentaires détaillés du fichier de commandes (cf.
u2.07.02-quelques-commentaires-fichier-commande).
Utilisation de macro-éléments dans STAT_NON_LINE (ou DYNA_NON_LINE)#
On peut faire un calcul non linéaire avec STAT_NON_LINE [u4.51.03] sur un modèle contenant des macro-éléments. L’intérêt de ce type de calcul est un éventuel gain de performances (mémoire et/ou CPU).
Pour que le calcul avec macro-éléments soit plus économique, il faut que le modèle possède de larges zones élastiques linéaires (éventuellement répétitives). Il faut aussi que ces zones élastiques (que l’on condensera en macro-éléments) aient une frontière aussi petite que possible. Une situation favorable sera par exemple le cas d’une structure entièrement élastique avec une petite zone de plasticité confinée (cf. Fig. 62).
Fig. 62 Structure entièrement élastique avec une petite zone de plasticité confinée#
On condensera alors toute la partie élastique sur les seuls nœuds de l’interface avec la zone de plasticité potentielle.
L’utilisation de macro-éléments dans STAT_NON_LINE (voir cas tests SSLP100C et D) est conditionné par les exigences suivantes:
chaque macro-élément doit être élastique linéaire, sa température ne doit pas varier au cours du temps,
il ne peut y avoir de contact avec des macro-éléments,
les chargements affectés aux macro-éléments sont « constants » (pas multipliés par « FONC_MULT »),
les macro-éléments ne doivent pas subir de grandes rotations,
la « recherche linéaire » n’est pas possible.
Une fois le calcul fait avec STAT_NON_LINE, les post-traitements habituels (CALC_CHAMP, POST_ELEM) n’auront d’effet que sur les éléments finis ordinaires du modèle (les macro-éléments sont ignorés). Si l’on veut examiner par exemple l’état de contrainte à l’intérieur d’un macro-élément, il faut utiliser les commandes de base: CREA_CHAMP/EXTR, DEPL_INTERNE, … (voir §4.3 et §4.4).
Présentation du cas test SSLP100B servant d’exemple#
Il s’agit d’une structure plane soumise aux conditions aux limites suivantes :
|
\(u+v=0\) |
(appui glissant) |
|
\(u=v=0\) |
|
|
\(u=2.0\) |
|
|
||
|
||
Traitement du cas test par la méthode de sous‑structuration#
le maillage initial ne contient que les mailles (et les noeuds) du polygône \(\mathit{IJBCDA}\) ,
on définit un macro-élément (S_1) correspondant au polygône \(\mathit{ABCD}\) ,
le macro-élément (S_1) est répété 2 fois par rotation autour de \(0\) ,
on obtient alors le macro-élément (S_123) correspondant au polygône \(\mathit{ABCEGHFD}\) ,
le modèle final (sur lequel on fait la résolution) est obtenu en ajoutant au macro-élément (S_123) les éléments finis du quadrilatère \(\mathit{IJBA}\) .
Organisation générale des calculs et définitions#
Construction du modèle global#
Le principe de l’implantation de la sous-structuration statique dans Code_Aster est celui d’une démarche ascendante :
un modèle ayant été défini, on le condense (opérateur MACR_ELEM_STAT) sur certains de ses noeuds. On obtient alors un macro-élément qui, fonctionnellement ressemble beaucoup à un nouvel élément fini « plus gros ». Ce macro-élément peut alors être intégré dans un modèle de niveau supérieur (opérateurs DEFI_MAILLAGE et AFFE_MODELE). Ce nouveau modèle peut alors être condensé à son tour et ainsi de suite sans limitation a priori du nombre de niveaux.
Définition :
les noeuds sur lesquels est condensé un macro-élément sont dits « externes « (les autres sont « internes « ),
niveau : c’est une notion utile à la compréhension du texte de commandes ; tout niveau décrit les relations de structuration entre les différents modèles et les différents macro-éléments. Pour nous, c’est un entier. L’opération de condensation augmente le niveau de \(+1\) : un modèle de niveau \(n\) donne par condensation un macro‑élément de niveau \(n+1\) qui sera intégré à un modèle de niveau \(n+1\) ,
l’opérateur MACR_ELEM_STAT est le seul opérateur permettant de créer un macro‑élément en sous-structuration statique,
l’opérateur DEFI_MAILLAGE est le seul opérateur utilisant les macro-éléments en sous‑structuration statique.
Pour notre exemple :
MO_1 {ligne 22} est le modèle de plus bas niveau (-2),
S_1 {lignes 45, 59} est le macro-élément de niveau intermédiaire (-1),
MA_123 et MO_123 {lignes 68, 87} représentent le maillage et le modèle de niveau intermédiaire (-1),
S_123 {ligne 104} est le macro-élément de plus haut niveau (0),
MAG0, MAG et MOG {lignes 120, 125, 129} représentent des maillages et un modèle de plus haut niveau (0) : la distinction entre les maillages MAG0 et MAG sera expliquée aux
u2.07.02-operateur-defi-maillage-ligne-120etu2.07.02-operateur-asse-maillage-ligne-125.
La structuration du modèle de plus haut niveau MOG peut se présenter graphiquement par une arborescence , la distinction entre macro-élément et sous-structure étant expliquée au paragraphe suivant.
macro-élément et sous-structure#
On appelle macro-élément le résultat de l’opérateur MACR_ELEM_STAT : c’est un modèle condensé sur ses nœuds externes.
On appelle sous-structure une occurrence d’un macro-élément dans un modèle de même niveau. Une sous-structure est un macro-élément mis en position dans l’espace physique. La position d’une sous-structure est donnée par les coordonnées des nœuds de la super-maille qui lui est associée.
Un même macro-élément peut donner naissance à plusieurs sous-structures en définissant plusieurs positions : dans notre exemple, le macro-élément S_1 engendre 3 sous-structures S_1, S_2 et S_3 par des rotations appropriées.
Une sous-structure est en quelque sorte un nouvel « élément fini ». Le macro-élément est le « type » de cet élément : on affecte un macro-élément sur une super-maille pour former une sous-structure.
On appelle super-maille , le support géométrique d’une sous-structure. C’est un objet nommé inclus dans un maillage . Une super-maille, comme une maille ordinaire, n’est qu’une liste ordonnée de noms de noeuds.
Comme un élément fini ordinaire, une sous-structure possède :
une matrice « élémentaire » de rigidité (et/ou de masse, d’amortissement, …),
des vecteurs « élémentaires » de chargement,
une maille support (on parlera de super-maille),
des nœuds portant des degrés de liberté.
A la différence d’un élément fini ordinaire, une sous-structure a plusieurs limitations :
la maille support n’est pas un type simple : TRIA3, …, HEXA20 : certains post‑traitements ne sont donc pas possibles,
elle n’a pas de type_élément, pas de fonctions de forme, …
les seules options de calcul disponibles sont RIGI_MECA, MASS_MECA et CHAR_MECA,
les noeuds peuvent être des noeuds de LAGRANGE provenant de la dualisation des conditions cinématiques internes.
Identification des sous-structures et des macro-éléments :
Les macro-éléments sont des concepts nommés par l’utilisateur.
Les sous-structures (comme les éléments finis ordinaires) sont identifiées par le nom des super‑mailles qui les supportent.
Dans notre exemple :
S_1 et S_123 sont les deux macro-éléments définis par l’utilisateur {lignes 45 et 104},
S_1, S_2, S_3, S_123 sont les noms des super-mailles (et donc des sous‑structures) que l’utilisateur donne lors de la construction des maillages MA_123 et MAG0.
Remarque :
Il n’y a pas de confusion possible (par le programme) entre une sous-structure et un macro‑élément de même nom (ici S_1et S_123bien que cela ne facilite pas la lecture du fichier de commandes !).
Redescente dans les sous-structures#
La démarche ascendante , que nous venons de détailler, permet de construire le modèle global, ou final, (mog) sur lequel on effectue la résolution :
|
|
|
|
|
{lignes 151-184} |
|
|
|
Cette résolution a pour résultat le champ de déplacements des noeuds du modèle global. Ces noeuds sont :
les noeuds des éléments finis ordinaires du modèle (ici le quadrilatère IJBA),
les noeuds externes des sous-structures du modèle : (ici une seule sous-structure : S_123).
Pour retrouver le champ de déplacements sur les noeuds internes des sous-structures, il faut alors « redescendre « l’arborescence des sous-structures grâce à l’opérateur DEPL_INTERNE.
Cet opérateur calcule le champ de déplacements sur tous les noeuds de la sous-structure à partir de la donnée du champ de déplacements sur ses noeuds externes.
Pour notre exemple et pour le cas de charge 1 :
|
{ligne 193} |
est le déplacement sur la sous-structure |
S_123 |
|
{ligne 197} |
est le déplacement sur la sous-structure |
S_1 |
|
{ligne 199} |
est le déplacement sur la sous-structure |
S_2 |
|
{ligne 201} |
est le déplacement sur la sous-structure |
S_3 |
Post-traitements#
Les post-traitements habituels : calcul des déformations, des contraintes, … ne peuvent être faits que par les éléments finis ordinaires qui seuls connaissent la notion de fonction d’interpolation.
On ne pourra donc calculer les contraintes en un point donné de la structure qu’avec le modèle contenant l’élément fini ordinaire contenant ce point. Avant cela, il aura fallu calculer le champ de déplacements sur ce modèle :
Exemple :
pour calculer les contraintes sur le quadrilatère IJBA on utilisera le modèle : MOG et les déplacements : U1
pour calculer les contraintes sur le polygône DCEF on utilisera le modèle : MO_1 et les déplacements : U1S_2
- Remarque
Il faut utiliser CALC_CHAMP mais pour cela, on est obligé de créer une SD evol_elas par la commande CREA_RESU.
Quelques commentaires sur le fichier de commande#
Les quelques commentaires qui suivent ont pour but d’illustrer les commandes qui interviennent en sous-structuration statique. La compréhension de ces commentaires suppose évidemment la lecture préalable des notices d’utilisation des commandes concernées :
- Commandes modifiées pour la sous-structuration statique :
AFFE_MODELE[U4.22.01]
CAL_VECT_ELEM[U4.41.02]
- Commandes utiles à la sous-structuration statique :
ASSE_MAILLAGE [u4.12.02]
DEFI_GROUP [u4.12.03]
Opérateur AFFE_MODELE {ligne 22}#
Puisqu’on veut construire un macro-élément à partir du polygone ABCD et que le maillage ma contient tous les éléments de IJBCDA, on ne peut employer l’affectation : TOUT : “OUI”.
Il faut affecter seulement le groupe de maille ABCD (grsd2) et ne pas oublier d’affecter les éléments du bord AD (grma14) à cause du chargement de pression.
Opérateur MACR_ELEM_STAT {lignes 45-59}#
L’exemple illustre le fait que l’on puisse définir le macro-élément en plusieurs étapes successives (utilisation de l’opérateur MACR_ELEM_STAT 3 fois : {lignes 45, 50 et 56} avec le symbole d’enrichissement &).
Au premier appel, on définit véritablement le macro-élément :
son « volume » : le modèle mo_1
ses nœuds externes {ligne 48}
le champ de matériau et les conditions cinématiques qui lui sont appliquées {ligne47}.
Lors des 2 appels suivants {ligne 50 et 56}, on enrichit la structure de données du macro‑élément :
calcul de la matrice de rigidité condensée {ligne 52}
calcul de deux « cas de charge » {lignes 53 et 58}.
Cette possibilité d’enrichir le macro-élément permet de « réparer un oubli » sans repartir à zéro:
ajout d’un nouveau cas de charge,
calcul de la masse condensée pour une méthode de Guyan.
Définition du cas de charge 1 : CHF1 {ligne 53}
Ce cas de charge est suiveur (SUIV = “OUI”) car la pression est un chargement qui agit toujours suivant la normale au bord.
Le fait d’avoir précisé comme charge CHBL_1, ne sert à rien ici car les conditions cinématiques sont nulles DX = 0.0 DY = 0.0 {ligne 29}.
Opérateur DEFI_MAILLAGE {lignes 68, 84}#
{ligne 70} : on définit une sous-structure (et la super-maille support) en lui donnant le même nom que le macro-élément qu’on lui affecte. Ce n’est pas interdit.
{ligne 74}
Tous les nœuds géométriquement confondus sont « unifiés » :
le côté CD de S_1 se confond avec le côté \(\mathit{AB}\) de S_2,
le côté CD de S_2 se confond avec le côté \(\mathit{AB}\) de S_3.
- {ligne 76}
le nœud C, qui a pour nom N12 dans le maillage initial MA, aura pour nom NN112 dans le maillage MA_123,
le nœud E, qui est l’image de C du maillage MA dans la sous-structure S_2 aura pour nom NN212.
Ce nœud E peut aussi être considéré comme l’image du nœud B dans la sous‑structure S_3 il aurait donc pu avoir le nom NN310 mais la convention de recollement des super-mailles [u4.12.04] choisit la première dénomination.
{ligne 77}
Le nœud A (N1), qui avait été nommé NN11 à la ligne 76, est renommé en N1. Il en est de même pour les nœuds N4, N7 et N10.
Ce renommage est nécessaire en vue de l’assemblage des maillages que l’on fera {ligne 125} car cet assemblage se fait par mise en commun des nœuds de même nom.
{ligne 82}
On définit le groupe de nœuds GH qui servira {ligne 107} pour la définition de l’extérieur du macro-élément S_123.
Opérateurs AFFE_MODELE et AFFE_CHAR_MECA {lignes 86, 89}#
{ligne 87}
Toutes les super-mailles MA_123 sont « activées » : on leur affecte le macro‑élément S_1.
{ligne 91}
Le nœud NN33 qui est le nœud N3 de la sous-structure S_3 est soumis à une condition d’appui glissant.
Opérateur MACR_ELEM_STAT {lignes 104, 111}#
{ligne 109}
La charge cinématique CHBL_123 qui correspond à l’appui glissant sur GH est introduite dans le macro-élément S_123. Il est conseillé dans la notice [u4.44.01] d’introduire cette condition au niveau le plus élevé : on aurait pu le faire au niveau global car GH fait partie de l’extérieur de S_123.
{ligne 109}
Pour le macro-élément S_123, on donne le même nom de cas de charge CHF1 que pour le macro-élément S_1 car la convention de définition d’un cas de charge conduit à ajouter :
les chargements définis par le mot clé CHARGE (ici : chbl_123 qui ne sert à rien car les déplacements imposés sont nuls),
les cas de charge éventuellement présents sur les sous-structures incluses dans le modèle : ici chf1 qui est présent dans S_1, S_2, S_3.
Opérateur DEFI_MAILLAGE {ligne 120}#
{ligne 123} les nœuds de MAG0auront le même nom que les noeuds des macro‑éléments servant à sa définition (S_123).
Les noeuds de MAG0 seront donc :
côté \(\mathit{AB}\) : N1, N4, N7, N10
côté \(\mathit{GH}\) : NN33, NN36, NN39, NN312
Le maillage MAG0 ne contient qu’une super-maille et pas de maille ordinaire.
Opérateur ASSE_MAILLAGE {ligne 125}#
Le maillage final (ou global) contient :
toutes les mailles QUAD4 du maillage initial MA,
la super-maille S_123 du maillage MAG0
La super-maille est connectée aux mailles QUAD4 grâce à l’identité des noms des nœuds N1, N2, N7, N10 dans les maillages MA et MAG0
Calcul au niveau global {lignes 129-184}#
{ligne 130} dans le maillage global, qui contient toutes les mailles de ma, on n’affecte que celles du quadrilatère \(\mathit{IJBA}\) .
{ligne 131} on affecte la sous-structure S_123 ; le modèle contient donc : une sous‑structure (S_123) et des éléments finis ordinaires (\(\mathit{IJBA}\) ).
{ligne 165} il ne faut pas oublier d’indiquer le cas de charge CHF1 qui a été défini à la ligne 32 et qui transite par les deux macro-éléments S_1 et S_123 via le nom CHF1.
Opérateur DEPL_INTERNE#
{ligne 193} U1S_123 est le champ de déplacements sur les nœuds du modèle MO_123 (c’est‑à-dire les nœuds de \(\mathit{AB}\) , \(\mathit{CD}\) , \(\mathit{EF}\) , \(\mathit{GH}\) ). Ce champ de déplacements correspond au cas de charge CHF1.
{ligne 199} U1S_2 est le champ de déplacements sur les nœuds du modèle MO_1 (c’est‑à‑dire les nœuds de \(\mathit{ABCD}\) ). Il faut remarquer que l’on a demandé le champ de déplacement sur la maille S_2, mais il n’existe pas de maillage « éléments finis » de cette partie de la structure.
C’est pourquoi, le champ de déplacement est restitué dans le repère « local » du macro‑élément S_1 (rotation de -45°). Ce repère est le seul qui permette le calcul des contraintes grâce au modèle MO_1.
Bibliographie#
J.F. IMBERT: « Analyse des structures par éléments finis ». Editions CEPADUES (1979)
SCHREM : « Handbook for linear analysis ». INTES Publication UM 404 REVC. STUTTGART (1989)