Modélisation A : FEM, plaque entière (sans condition de symétrie), maillage libre ================================================================================= Déroulement du TP ----------------- Pour ce TP, deux possibilités sont offertes pour l’obtention du maillage de la plaque fissurée : * vous pouvez récupérer directement le maillage fissuré : voir les instructions données au paragraphe § :ref:`v3.02.111-section-recup-maillage` * vous pouvez le créer vous-même : voir les instructions données au paragraphe § :ref:`v3.02.111-section-creation-maillage` .. _v3.02.111-section-recup-maillage: Récupération du maillage avec Salome-Meca ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pour ce TP, vous pouvez récupérer directement le maillage forma05a.mmed. Il s’agit d’un maillage dont les mailles sont linéaires. Les groupes sont décrits sur la :numref:`v3.02.111-fig-mail` : .. figure:: images/maillage_lineaire.png :name: v3.02.111-fig-mail :width: 50% : Maillage forma05a avec ses groupes Les groupes définis sont les suivants : .. csv-table:: "Groupes de nœuds", "FRONT", "Ce groupe contient un seul nœud : le nœud correspondant au front de fissure. Ce nœud sera aussi utilisé pour bloquer certains modes rigides" "", "C", "Ce groupe contient un seul nœud : le nœud situé au milieu du coté latéral droit de la plaque, servant au blocage des modes rigides" "Groupes de mailles 1d", "HAUT", "Ligne supérieure de la plaque" "", "BAS", "Ligne infèrieure de la plaque" "", "LEV_SUP", "Lèvre supérieure de la fissure" "", "LEV_INF", "Lèvre inférieure de la fissure" Pour rappel, on cherche à appliquer une pression égale à 10 MPa sur la ligne HAUT et sur la ligne BAS. Pour éviter les mouvements de corps rigide, on bloquera le déplacement selon X et Y sur le groupe FRONT et le déplacement selon Y sur le groupe C. Si vous avez récupéré fichier forma05a.mmed, alors vous pouvez passer directement au § :ref:`v3.02.111-section-aster-study`. .. _v3.02.111-section-creation-maillage: Création de la géométrie et du maillage avec Salome-Meca ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ La géométrie de la plaque peut être construite avec le module Geometry de Salome-Meca. Lancer le module Geometry puis effectuer les étapes suivantes : .. list-table:: :header-rows: 0 * - Création de la CAO de la plaque saine : *New Entity / Primitives / Rectangle* : Height = 1, Width = 2 (les paramètres Height et Width sont inversés par rapport au sens usuel). L’origine du repère est alors située au centre de la plaque. * - Création de la CAO de la fissure : créer les 2 points de coordonnées (-0,5 0 0) et (-0,4 0 0), puis la ligne reliant ces 2 points. * - Création de la CAO de la plaque fissurée : réaliser la partition (*Operations / Partition*) de la face avec la ligne créée à l’étape précédente. * - Création du point C : créer le point C de coordonnées (0,5 0 0) puis générer la partition de la plaque fissurée avec le point C. Renommer l’objet résultant en "plaque_fiss". * - Création des groupes géométriques : utiliser la fonctionnalité *Create group* (accessible par un clic-droit en ayant sélectionné l’objet plaque_fiss créé à l’étape précédente) pour créer les groupes définis sur la figure précédente : HAUT, BAS, LEV_SUP, C et FRONT. Le groupe LEV_INF ne peut pas être encore crééà ce stade car les lèvres de la fissure ne sont pas encore dédoublées. La CAO est terminée. Le maillage va être générer avec le module Mesh. Lancer le module Mesh de Salome-Meca puis effectuer les étapes suivantes : .. list-table:: :header-rows: 0 * - Création d’un nouveau maillage (*Mesh / Create Mesh*) associé à l’objet géométrique plaque_fiss. * - Choisir l’algorithme 2d Netgen 1D-2D : choisir *NETGEN 2D Parameters* puis *Max. Size* = 0,1, *Min. Size* = :math:`a/50`, option *Very Fine*. Il est important de *ne pas* cocher la case *Second Order* (ce qui générerait un maillage quadratique) car l’opération de dédoublement des lèvres (voir plus bas) ne fonctionne que sur des mailles linéaires. * - Imposer un raffinement de maillage autour du front de fissure : l’algorithme Netgen 1D-2D permet de définir une taille des mailles localement (onglet *Local sizes*). On pourra par exemple spécifier des éléments de :math:`a/50` autour du front de fissure (cliquez sur *On Vextex* puis sur le groupe *FRONT* de l’objet plaque_fiss). * - Importer les groupes de mailles et de nœuds d’après les groupes géométriques : groupes de mailles HAUT, BAS, LEV_SUP et groupes de nœuds C et FRONT * - Dédoublement des lèvres : utiliser la fonctionnalité de dédoublement de nœuds du module Mesh (*Modification/ Transformation/ Duplicate Nodes or/and Elements*), en le paramétrant comme cela est indiqué sur la capture d’écran ci-dessous (il faut cliquer sur le bouton *Generate* pour remplir automatiquement la 3ème case) : .. image:: images/fenetre_duplicate_nodes.png :width: 600px :align: center Cela crée un nouveau groupe de edges, nommé "affectedEdges" que vous pouvez supprimer et un nouveau groupe de edges LEV_SUP_double qu’il faut renommer en LEV_INF. * - Vérification du maillage : vérifier que le maillage ne contient pas de nœuds orphelins (*Controls / Nodes Controls / Free Nodes*). Vérifier que le maillage contient bien des nœuds doubles (*Controls / Nodes Controls / DoubleNodes*) au niveau des lèvres. * - Sauvegarder votre travail. * - Exportez le maillage ainsi obtenu au format MED. *Remarque* : D’autres techniques de construction d’un tel maillage existent. Par exemple on pourrait créer le maillage de la partie supérieure de la plaque (cf. modélisation B) puis le dupliquer par symétrie et recoller la partie correspondant au ligament sain. Autre possibilité: utiliser la fonctionnalité *New Entity / Basic / 2D Sketch* pour créer le contour de la plaque fissurée en espaçant les points :math:`A` et :math:`B` d’une faible distance, par exemple :math:`4.10^{-4}\, \mathrm{m}`. La fissure sera alors très légèrement ouverte. Il n’est alors pas nécessaire d’utiliser la fonctionnalité de dédoublement des nœuds. .. _v3.02.111-section-aster-study: Création du cas dans *AsterStudy* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lancer Salome_Meca, puis choisissez le module *AsterStudy*. Ajoutez les étapes suivantes à votre cas. .. list-table:: :header-rows: 0 * - **Read a mesh** (``LIRE_MAILLAGE``). Sélectionnez le maillage forma05a.mmed ou bien le maillage généré précédemment et le format MED. Ce maillage contient des mailles linéaires. * - **Create a quadratic mesh** (``CREA_MAILLAGE``). Sélectionnez le maillage précédent et donnez un nouveau nom. Choisissez l'action LINE_QUAD pour transformer les éléments linéaires en éléments quadratiques. .. image:: images/schema_fond_line.png :width: 200px est transformé en .. image:: images/schema_fond_quad.png :width: 200px * - **Modify a mesh** (``MODI_MAILLAGE``). Choisissez le maillage lu précédemment et sélectionnez le reuse. Sélectionnez l'action ORIE_PEAU pour réorienter les normales aux arêtes vers l'extérieur du maillage (groupes d'éléments HAUT, BAS, LEV_SUP, LEV_INF). .. image:: images/modi_maillage_avant.png :width: 150px est transformé en .. image:: images/modi_maillage_apres.png :width: 150px * - **Assign finite element** (``AFFE_MODELE``). Choisissez le phénomène mécanique et la modélisation des milieux continus 2D en déformation plane (D_PLAN). * - Définition et affectation du matériau: **Define a material** (``DEFI_MATERIAU``) et **Assign a material** (``AFFE_MATERIAU``). * - | Définition des conditions limites et chargements: **Assign mechanical load** (``AFFE_CHAR_MECA``) - Blocage des modes rigides (**DX** et **DY** sur FRONT et **DY** sur C) ; - Application de la pression sur les groupes HAUT et BAS : utiliser **PRES_REP** avec une valeur de -10 MPa (une pression négative équivaut à une contrainte de traction). * - Résolution du problème élastique : **Static mechanical analysis** (``MECA_STATIQUE``) : ne pas oublier d'affecter les chargements et conditions aux limites. * - | Pour visualisation avec Paravis : - Calcul du champ de contraintes extrapolé aux nœuds (``CALC_CHAMP``, option 'CONTRAINTE' avec le champ 'SIGM_NOEU') - Calcul du champ de contraintes équivalentes (``CALC_CHAMP``, option 'CRITERES' avec le champ 'SIEQ_NOEU') Pour cela, on enrichira le concept issu de ``MECA_STATIQUE`` enreprenant le même nom de concept. * - Impression des résultats au format MED : Results output (``IMPR_RESU``). Vous pouvez lancer le cas pour vérifier le bon fonctionnement de votre mise en données. Ajout des étapes de post traitement en mécanique de la rupture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Afin de séparer le calcul et le post-traitement, vous pouvez ajouter une nouvelle étape (New stage) à votre cas d'étude (Case). .. list-table:: :header-rows: 0 * - **Définition du fond de fissure** (opérateur ``DEFI_FOND_FISS``). Définir le fond de fissure dans ``DEFI_FOND_FISS`` à partir du groupe de nœud du fond FRONT et les mot-clés LEVRE_INF et LEVRE_SUP à partir des groupes de mailles LEV_INF et LEV_SUP. * - | **Calcul du taux de restitution d'énergie** (opérateur ``CALC_G``, OPTION='G'). Compléter les informations sur le champ THETA : - la description de la fissure (FISSURE) - les rayons de la couronne du champ theta (R_INF, R_SUP), à définir en fonction du maillage utilisé. Imprimer les valeurs de G (``IMPR_TABLE``). * - **Calcul des facteurs d'intensité des contraintes** (opérateur ``CALC_G``, OPTION='K'). Idem que précédemment. Imprimer les résultats dans une nouvelle table (``IMPR_TABLE``). * - | Calcul de K et G avec l'opérateur ``POST_K1_K2_K3`` : - renseigner le fond de fissure - renseigner le paramètre ABSC_CURV_MAXI - imprimer les résultats dans une table (``IMPR_TABLE``) * - Comparer les solutions obtenues avec la solution de référence. Pour aller plus loin : Utilisation des éléments de Barsoum ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pour cela, ajoutez la commande suivante après ``CREA_MAILLAGE`` : **Modify a mesh** (opérateur ``MODI_MAILLAGE``). Choisissez le maillage quadratique et le reuse. Action MODI_MAILLE avec l'option NOEUD_QUART pour déplacer les nœuds milieux des éléments connectés à la pointe de la fissure au quart de la distance (éléments de Barsoum). Pour rappel le groupe de nœud du fond de fissure est FRONT. .. image:: images/schema_fond_quad.png :width: 150px est transformé en .. image:: images/schema_fond_barsoum.png :width: 150px Pour aller plus loin : Études d'influence des tailles de couronnes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Dans ``CALC_G`` : vérifier l’indépendance du résultat au choix des couronnes d'intégration du champ thêta ; * Dans ``POST_K1_K2_K3`` : étudier l’influence du paramètre ABSC_CURV_MAXI. Grandeurs testées et résultats ------------------------------ Tests sur G ~~~~~~~~~~~ .. csv-table:: "**Identification**", "**Référence**", "**% tolérance**" ":math:`G` de ``CALC_G``, option G", "191,4", "0,6%" ":math:`{G}_{\mathit{Irwin}}` de ``CALC_G``, option K", "191,4", "0,6%" ":math:`G` de ``POST_K1_K2_K3``", "191,4", "1,0%" Tests sur :math:`K_I` ~~~~~~~~~~~~~~~~~~~~~~ .. csv-table:: "**Identification**", "**Référence**", "**% tolérance**" ":math:`K_I` de ``CALC_G``, option K", "6,646", "0,3%" ":math:`K_I` de ``POST_K1_K2_K3``", "6,646", "0,5%"