3. Modélisation A#
3.1. Caractéristiques de la modélisation#
Glossaire: dans Salomé on désigne par:
vertex les points utiles à la construction de la géométrie;
edge les lignes (droites);
arc les arcs de cercles;
wire les lignes composées de edge et arc;
face les surfaces délimitées par un wire;
shell un ensemble de face destiné à être maillé ou délimitant un volume;
compound un ensemble d’entités géométriques.
Les tuyaux droits et le coude sont modélisés par des éléments massifs isoparamétriques quadratiques.
La tuyauterie présente un plan de symétrie \(Z=0\) . On ne maille qu’un demi volume.
Conditions aux limites et chargement: voir le chapitre 1.3.
3.2. Géométrie#
Lancer le module Geometry de la plate-forme Salome-Meca.
Deux procédés pour créer la géométrie (recommander le deuxème):
Extrusion d’une surface de base selon un chemin:
Création des points \(\mathit{Ae1}\) , \(\mathit{Ai1}\) , \(\mathit{Ae2}\) , \(\mathit{Ai2}\) , \(\mathit{Pe1}\) , \(Pi1\) , puis des arcs de cercle \(L1\) et \(L2\) , des segments \(d1\) et \(d2\) (Menu New Entity → Basic → Point / arc / Line).
Création du contour (wire) délimitée par \(L1\) , \(d1\) , \(l2\) , \(d2\) et puis de la surface (objet de type « Face « ) à partir de ce contour (Menu New Entity → Build → wire / Face ).
Création du chemin filaire: les points \(A,C,D,B,O\) , puis les deux droites \(\mathit{AC}\) et \(\mathit{DB}\) , et l’arc de cercle \(\mathit{CD}\) , enfin le chemin total \(\mathit{ACDB}\) en wire.
Cette surface est ensuite extrudée par le menuNew Entity → Generation → Extrusion Along Path.
Utilisation d’objets volumiques de base:
Construire un tuyau droit d’axe \(Z\) (option par défaut), à l’aide de deux cylindres élémentaires de hauteur \(3\) et de rayons \(0.2\) et \(0.18\) (Menu New Entity → Primitives → Cylinder), et d’une opération booléenne (Menu Operations → Boolean → Cut). Renommer l’objet créé en \(\mathit{TUY}1\) .
Appliquer une rotation à \(\mathit{TUY}1\) autour de \(X\) pour qu’il soit d’axe \(Y\) (Menu Operations → Transformation → Rotation): Angle = -90° et désactiver Create a copy.
Sélectionner la face supérieure en créant un groupe: Menu New Entity → Group → Create Group. Cette face permet de générer le coude par le menu New Entity → Generation → Revolution (Angle = -90°). Il faut pour cela créer l’axe de révolution (un vecteur de direction \(Z\) passant par le point O \((\mathrm{0.6,}\mathrm{3.0,}0.0)\) ): création des points \((\mathrm{0.6,}\mathrm{3.0,}0.0)\) et \((\mathrm{0.6,}\mathrm{3.0,}1.0)\) et puis création du vecteur (Menu New Entity → Basic → Vector).
Puis créer de la même façon le second tuyau droit \(\mathit{TUY}2\) : sélectionner la face supérieure de la coude en créant un groupe, et générer le tuyau droit par le menu New Entity → Generation → Extrusion suivant \(X\) .
Il reste à sélectionner la moitié de la tuyauterie située dans le plan \(Z>0\) . Pour cela on peut d’abordcréer un plan (Menu New Entity → Basic → Plane, par exemple, le 5ème choix de Plane (création à partir du system local des coordonnées), avec l’option OXY et la taille 8). Puis couper à l’aide dela partition (Menu Operations → Partition) en sélectionnant les 3 parties de la tuyauterie comme Objects et le plan comme Tool Objects.
Créer un groupe de volume en sélectionnant les parties situées en \(Z>0\) (Menu New Entity → Group → Creat Group)., et enfin avec ce groupe créer un « compound » (Menu New Entity → Build → Compound).
Préparation de la géométrie pour un maillage en hexaèdres :
Le tuyau est destiné à être maillé avec des hexaèdres, c’est à dire de façon réglée (le nombre d’éléments est identique sur deux côté opposés). Avant de procéder au maillage, il est nécessaire de vérifier que la géométrie est topologiquement équivalente à un hexaèdre (6 faces). Pour cela, il faut utiliser le menu Inspection → Check Compound of Blocks.
Selon le mode de construction (le 1er procédé), il peut être nécessaire de réaliser une partition par deux plans des sections entrée et sortie de coude afin d’obtenir une géométrie topologiquement équivalente à un hexaèdre (6 faces). Pour créer les deux plans, menu New Entity → Basic → Plane: point + Vector donc C + AC / D + BD). Pour la partition, menu Operations → Partition.
Si on veut faire un maillage avec des tétraèdres, cette condition n’est pas nécessaire. En revanche, si on veut mailler en hexaèdre, c’est indispensable pour les algorithmes des mailleurs.
Création des groupes :
On créera ensuite les groupes de faces où on désire mettre des conditions limites: Base, Symetrie, Efond, Surfint et Surfext (Menu New Entity → Group → Create Group).
On créera aussi le groupe de bord avec une arête de l’épaisseur (\(d1\) ) et un autre groupe de bord avec une arête de circonférence (\(L1\) )pour permettre un raffinement différent sur ces bords.
On pourra tester l’autre mode d’utilisation de moduleGeometry / Mesh, consistant à produire, éventuellement modifier, et relire un fichier python, qui contient toutes les instructions nécessaires à la construction de la géométrie. On crée ce fichier par le menu File → Dump Study. Ce fichier python peut être relu par le menu File → Load Script. Ceci permet en particulier de modifier les dimensions de la géométrie. À titre d’exemple, on pourra examiner le contenu du fichier forma02a.datg, et le relire dans Salome-Meca.
3.3. Maillage#
Lancer le module Mesh de la plate-forme Salome-Meca.
Le maillage est défini par le menu Mesh → Create Mesh. Sélectionner la géométrie à mailler, puis l’algorithme et l’hypothèse de discrétisation par dimension:
3D Hexahedron(i,j,k).
2D Quadrangle:Mapping.
1D Wire Discretisation avec l’hypothèse basique Number of Segments (15 segments par edge).
Puis calculer le maillage(Menu Mesh → Compute).
Pour permettre un raffinement différent selon les edges, on créera des sous-maillages par le menu Mesh → Create Sub-mesh:
Un sub-mesh définissant le nombre de segments dans l’épaisseur \(d1\) . Par exemple, l’hypothèse basique Number of Segments avec 2 segments sur \(d1\) et l’hypothèse supplémentaire «Propagation of 1D hypothese on Opposite Edges».
Un sub-mesh définissant le nombre de segments sur la circonférence \(L1\) . Par exemple, 10 segments sur \(L1\) et l’hypothèse supplémentaire «Propagation of 1D hypothese on Opposite Edges».
Puis calculer le maillage(Menu Mesh → Compute).
Créer les groupes demailles correspondants aux groupe géométriques (Menu Mesh→Create Groups from Geometry).
Exporter lemaillage au format MED.
Pour obtenir une meilleure précision, on va faire passer le maillage de linéaire à quadratique, grâce à l’outil «Modification -> Convert to/from quadratic». Les plus curieux peuvent comparer les différences de résultats entre les deux types d’éléments.
Remarques :
Avec une autre finesse de maillage, il est possible d’obtenir des résultats sensiblement différents. En particulier, pour obtenir une solution correcte, il est souhaitable d’utiliser des éléments quadratiques.
3.4. Création et lancement du cas de calcul (via AsterStudy)#
Lancer le module AsterStudyde la plate-forme Salome-Meca.
Puis en colonne gauche, cliquer sur l’onglet Case View, cliquer droite CurrentCase pour ajouter un nouveau stage où on définit des commandes du cas de calcul.
Nota:ajouter des commandes par le menu Commands→ Show All.
L’étude nécessite un premier calcul thermique transitoire suivi d’un calcul mécanique.
Les principales étapes pour la création et le lancement du cas de calcul sont les suivantes:
Lire le maillage au format MED: Commande LIRE_MAILLAGE.
Définir le matériau: Commande DEFI_MATERIAU(\(E,\nu ,\alpha ` dans ELAS, :math:\)lambda ,rho mathit{Cp}` dans THER).
Calcul thermique:
Définir les éléments finis utilisés: Commande AFFE_MODELE pouraffecter le phénomène THERMIQUE et la modélisation en 3D à TOUT.
Affecter le matériau à tout: Commande AFFE_MATERIAU.
Affecterles conditions aux limites thermiques et le chargement:
On a un transitoire de température imposée sur la surface interneSurfint de la tuyauterie. Cette montée de \(20°C\) à \(70°C\) en \(\mathrm{10s}\) est définie avec la commande DEFI_FONCTION: définir les données dans VALE et NOM_PARA = INST.
Ce transitoire de température est imposé avec la commande AFFE_CHAR_THER_F: option TEMP_IMPO, avec Surfint comme GROUP_MA, et la fonction définie comme température imposée TEMP)
On considère que la tuyauterie est calorifugée et on ne spécifie pas de condition sur la surface extérieure (ce qui revient à un flux nul).
Définir les instants de calcul, 0 s, 5 s, 10 s: commande DEFI_LIST_REEL.
Résoudrele problème thermique linéaire: Commande THER_LINEAIRE, en définissant un état initial de température uniforme égal à \(20°C\) (ETAT_INIT / VALE), et en affectant MODELE, CHAM_MATER (matériaux), EXCIT (chargement), INCREMENT (liste des instants).
Calcul thermo-mécanique:
Définir les éléments finis utilisés: Commande AFFE_MODELE pouraffecter le phénomène MECANIQUE et la modélisation en 3D.
Affecter le matériau: Commande AFFE_MATERIAU. Le résultat du calcul thermique sera appliqué à tout en tant que variable commandant le comportement du matériau mécanique par EVOL dans l’option AFFE_VARC avec la température de référence NOM_VARC = TEMP à 20°.
Affecterles conditions aux limites mécaniques et le chargement: Commande AFFE_CHAR_MECA:
La tuyauterie est encastrée à ses deux extrémités et elle présente un plan de symétrie: DDL_IMPO.
Ona une pression en surface interne de \(15\mathit{MPa}\) : PRES_REP (vérifier la direction de la normal à la surface interne dans AsterStudy).
Résoudre le problèmemécanique statique linéaire : Commande MECA_STATIQUE avec le calcul du champ de température défini ci-dessus et la même liste des instants comme calcul thermique.
Calculer le champ: Commande CALC_CHAMP avec reuse.
pour le calcul du champ de contraintes par éléments extrapolées aux nœuds: CONTRAINTE / SIEF_ELNO.
pour le calcul du champ de contraintes équivalentes de Von Mises: CRITERES/ SIEQ_ELNO.
Imprimer les valeurs maximales du tenseur de contraintes SIEQ_ELNO au format Result (RESULTAT) et imprimer le champs de température, les déplacements, et les champs de contraintes au format MED: Commande IMPR_RESU.
Pour lancerle cas de calcul, en colonne gauche, cliquer sur l’onglet History View.
3.5. Post-traitement des résultats#
3.5.1. Avec Saloméet Results#
Visualiser les champs et le maillage déformé avec quelques cliques dans l’onglet Results d’AsterStudy. Vérifier quelques valeurs en comparant avec des références (voir la chapitre 2.2.1).
On peut aussi lancer le module ParaViSde la plate-forme Salome-Meca.
Ouvrirle fichier de résultats ( Menu File → Open ParaView File) contenant la partie «mécanique».Choisir le champ SIEF_ELGA et puis appliquer le filtre Merge Blockspar le menu Filters.
Ouvrirle fichier de résultatscontenant la partie «thermique».Choisir le champ TEMP et puis appliquer le filtre Merge Blocks.
Sélectionner des deux objets Merge Blockspuis appliquer le filtre Apprend Attributes.
Visualiser le maillage déformé ( Menu Filters → Common → Warp By Vector) avec latempérature et les contraintes aux points de Gauss(Menu Filters → ELGA field To Surface).
3.5.2. Avec Aster_Study en ajoutant un stage#
Les principales étapes de la seconde exécution avec Aster_Study seront:
Extraireles valeurs du champ SIEF_ELNO pour un azimut au niveau de l’entrée de coude (point C) pour le cas de charge correspondant à \(\mathit{Fy}\) dans une table: Commande MACR_LIGN_COUPE. Avec l’option de type SEGMENT, l’azimut est défini par le chemin d’extrémités \((\mathrm{0.18,}\mathrm{3.0,}0.)\) et \((\mathrm{0.2,}\mathrm{3.0,}0.)\) , par exemple avec 10 points.
Imprimer la table produite au format XMGRACE pour la composante NOM_PARA=SIYY avec la commande IMPR_TABLE: utiliser Filtre → pour l’instant NOM_PARA=INST à 10s, et déterminer les données à extraire par NOM_PARA, par exemple, COOR_X (pour l’abscisse X) et SIYY (pour la composante de contrainte).