v3.04.156 FORMA07 - Travaux pratiques de la formation « Utilisation avancée » : fissure circulaire en milieu infini#
Résumé:
Ce test \(\mathrm{3D}\) en quasi-statique, entre dans le cadre de la validation des post-traitements en mécanique de la rupture élastique linéaire. La structure comportant une fissure circulaire est mise en traction.
Solution de référence#
Méthode utilisée pour la solution de référence#
Pour une fissure circulaire de rayon \(a\) dans un milieu infini, soumise à une traction uniforme \(\sigma\) suivant la normale au plan des lèvres, le taux de restitution d’énergie local \(G(s)\) est indépendant de l’abscisse curviligne le long du front de fissure \(s\) et s’exprime de la façon suivante[1]:
\(G(s)=\frac{(1-{\nu}^{2})}{\pi E}4{\sigma}^{2}a\)
Le facteur d’intensité de contrainte \({K}_{I}(s)\) est donné par la formule d’Irwin:
\(G(s)=\frac{(1-{\nu}^{2})}{E}{K}_{I}^{2}\) , soit \({K}_{I}(s)=\frac{2\sigma \sqrt{a}}{\sqrt{\pi}}\)
Résultats de référence#
Avec les valeurs numériques de l’énoncé, on trouve: \({K}_{I}=1,5957\mathit{MPa}.\sqrt{m}\) et \(G=11,59{\mathit{J.m}}^{-2}\) .
Références bibliographiques#
Tada, P. Paris, G. Irwin, The stress analysis of cracks handbook, 3rdedition, 2000
Modélisation A : FEM 3D#
Déroulement du TP#
Maillage#
Le maillage quadratique de la structure est fourni au format MED: forma07a.mmed. En prenant en compte certaines symétries du problème, seul un quart de la structure est représenté. On pourrait ne représenter qu’ \(1/{8}^{\mathit{ème}}\) de la structure. Le maillage a été généré avec le logiciel GIBI, et des tores sont définis autour du fond de fissure:
FACE_SUP
FACE_AV Figure 3.1.1-a : Maillage
FACE_INF
FACE_LAT Les nœuds milieux des arêtes des éléments touchant le fond de fissure sont déplacés au quart de ces arêtes.
Création du fichier de commandes sans post-traitement de la rupture#
Lancer Salome_Meca, puis choisissez le module AsterStudy. Ajoutez les étapes suivantes à votre cas: |
Read a mesh (LIRE_MAILLAGE ). Sélectionnez le maillage forma07a.mmed et le format MED |
Modify a mesh (MODI_MAILLAGE ). Choisissez le maillage lu précédemment et sélectionnez le reuse. Sélectionnez l’action ORIE_PEAU_3Dpour réorienter les normales aux facesvers l’extérieur du maillage (groupes d’éléments FACE_AV, FACE_LAT, FACE_SUP, FACE_INF, LEV_INF et LEV_SUP). |
Assign finite element (AFFE_MODELE). Choisissez le phénomène mécanique et la modélisation des milieux continus 3D (3D) |
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 ) : * Symétrie sur le plan de symétrie “FACE_LAT”(Enforce DOF); * Symétrie sur le plan de symétrie “FACE_AV”(Enforce DOF); * Blocage des modes rigides (Enforce DOFsur le GROUP_NO “D”); * Application de la traction sur “FACE_SUP” et “FACE_INF” (PRES_REP) |
Résolution du problème élastique: Static mechanical analysis ( MECA_STATIQUE ); |
Pour visualisation avec Paravis: * Calcul du champ de contraintes extrapoléaux noeuds ( 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). |
Visualiser les champs de déplacement et de contraintes obtenus dans Paravis |
Post-traitement pour 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). |
Définition du fond de fissure ( DEFI_FOND_FISS ). Définir le fond de fissure dans DEFI_FOND_FISSà partir dugroupe de maillesdu fond LFFet les lèvresLEV_INFet LEV_SUP. |
Calcul de G et K avec avec CALC_G (OPTION=(“G”, “K”)). Compléter les informations sur le champ THETA: * la descriptionde lafissure via le mot clé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 de K et G avec 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) |
Tracer les valeurs de G et K1 issues de CALC_Get de POST_K1_K2_K3 en fonction de l’abscisse curviligne du front de fissure (colonne “ABSC_CURV”) dans un tableur. |
Pour aller plus loin : Étude de l’influence de la discretisation 3D#
Dans CALC_G, renseigner le mot clé DISCRETISATION du mot clé facteur THETA avec les mots clé à la valeur LEGENDRE Comparer les valeurs avec celles obtenues précédemment. Pour rappel, lorsque DISCRETISATION n’est pas renseigné, sa valeur par défaut est LINEAIRE.
Dans un second temps, rajouter le mot clé NB_POINT_FOND=5 du mot clé facteur THETAà la discrétisation LINEAIRE et observer les valeurs de G ou K1 le long du front. Comparer également les temps de calcul de CALC_G avec et sans NB_POINT_FOND de renseigné.
Grandeurs testées et résultats#
Identification |
Référence |
% tolérance |
\({K}_{I}\) de POST_K1_K2_K3 |
1,5957 106 |
0,8% |
Modélisation B : X-FEM 3D#
Le problème considéré est le même que celui étudié dans la partie II. Cependant, contrairement à la partie précédente où la fissure était maillée, on considère dans cette partie un maillage sain. La fissure n’est donc pas maillée. Pour cela, on utilise la méthode X-FEM.
Déroulement du TP#
Raffinement du maillage#
L’objectif de cette première étape est d’utiliser HOMARD pour obtenir un maillage raffiné à partir d’un maillage sain relativement grossier.
Vous pouvez créer le maillage grossier avec Salomé (¼ de la structure est modélisée) ou utiliser celui fourni:
forma07b.mmed
Afin de réaliser le raffinement du maillage, il est nécessaire d’utiliser une boucle python. Le fichier de commande de cette partie n’est donc pas éditable graphiquement avec AsterStudy. On va donc utiliser le mode texte d’AsterStudy pour la première étape du calcul.
Lancez Salome-Meca puis choisissez AsterStudy. Allez dans les préférences (File → Preferences → AsterStudy) et décochez External editor. Créez une nouvelle étape pour votre calcul (New Stage) que vous pouvez renommer (Raffinement) si vous le souhaitez. Faites un clic gauche sur cette nouvelle étape et cliquez sur Edit. Une fenêtre apparaîtrasur la gauche et vous pourrez éditer votre fichier de commande. |
Dans un premier temps, il va falloir calculer le nombre d’itérations nécessaires pour obtenir le maillage raffiné. Pour cela, il faut tout d’abord importer la bibliothèque math: import math Renseignez les informations suivantes: * Taille de maille dans la zone d’insertion de la fissure h0 * Taille de maille cible hc (a/20.) Calcul du nombre d’itérations pour atteindre hc: * n=(ln(h0)+ln(hc))/ln(2.) * nb_raff=E(n) (partie entière de n: int(n)) * nb_iter=nb_raff+1 Calcul de la taille finale des éléments proches du front de fissure: * h=h0/2^nb_raff |
Initialisez l’ensemble des vecteurs qui seront utilisés dans la boucle de raffinement: * MA = [None]*(nb_iter+1) (Maillage) * CHERR = [None]*nb_iter (Erreur) * FISS = [None]*nb_iter (Fissure) |
Lire le maillage au format MED (LIRE_MAILLAGE ): MA[0]= LIRE_MAILLAGE(UNITE=20, FORMAT=”MED”); Choisirle maillage forma07b.mmed qu’il faudra ajouter dans l’onglet Data Files sous l’unité 20. |
Réalisez la boucle de raffinement: for i_raff in range(nb_raff) : * Définition de la fissure FISS[i_raff]=DEFI_FISS_XFEM(MAILLAGE=MA[i_raff], TYPE_DISCONTINUITE=”FISSURE”, DEFI_FISS=_F(FORM_FISS=”ELLIPSE”, DEMI_GRAND_AXE=a, DEMI_PETIT_AXE=a, CENTRE=(0,0,0,), VECT_X=(1.,0., 0.,), VECT_Y=(0.,1.,0.,),),); * Calcul du critère de raffinement CHERR[i_raff]=RAFF_XFEM(FISSURE=FISS[i_raff],TYPE=”ZONE”,RAYON=r_raff) avec r_raff=5*h * Définition du type du maillage n+1 –> pour dire que MAILLAGE_NP1 est un type “maillage” MA[i_raff+1]=CO(“MA_%d” % (i_raff+1)) * Adaptation du maillage MACR_ADAP_MAIL(ADAPTATION = “RAFFINEMENT”, CHAM_GD = CHERR[i_raff], CRIT_RAFF_ABS = 0.5, DIAM_MIN = hc, MAILLAGE_N = MA[i_raff], MAILLAGE_NP1= MA[i_raff+1],); |
Pour visualiser le nouveau maillage, imprimez-le au format MED: IMPR_RESU(FORMAT=”MED”,UNITE=80,RESU=_F(MAILLAGE=MA[nb_raff])); Choisirle maillage forma07b_raff.mmed qu’il faudra ajouter dans l’onglet Data Files sous l’unité 80. |
Si vous souhaitez passer cette étape, vous pouvez aussi utiliser directement le maillage raffiné fourni:
forma07b.41
Dans les maillages fournis (visualisez-les dans Salomé), les noms des groupes de mailles sont les suivants:
groupe de nœuds: D,
groupes de faces: FACE_AV, FACE_LAT, FACE_SUP, FACE_INF,
groupe de volumes: CUBE.
Figure 4.1.1-a : Groupes définis sur le maillage fourni
Création du fichier de commande sans post-traitement de la rupture#
Lecture du maillage sain raffiné et définition du modèle non enrichi#
LancezSalome-Meca, puis choisissez le module AsterStudy. Ajoutez les étapes suivantes à votre cas. |
Read a mesh (LIRE_MAILLAGE ). Sélectionnez le maillage raffiné que vous avez crééet le format MED |
Modify a mesh (MODI_MAILLAGE ). Choisissez le maillage lu précédemment et sélectionnez le reuse. Sélectionnez l’action ORIE_PEAU_3D pour réorienter les normales aux facesvers l’extérieur du maillage (groupes d’éléments FACE_AV, FACE_LAT, FACE_SUP, FACE_INF) |
Assign finite element ( AFFE_MODELE ) . Choisissez le phénomène mécanique et la modélisation des milieux continus 3D |
Définition de la fissure et des éléments X-FEM#
Dans l’onglet Fracture and Fatigue :Définition de la fissure DEFI_FISS_XFEM . Utilisez de préférence le catalogue des fissures (FORM_FISS=”ELLIPSE”) |
Dans l’onglet Fracture and Fatigue : Modification du modèle pour prendre en compte les éléments X-FEM(MODI_MODELE_XFEM ) |
Définition du matériau, des conditions et résolution du problème mécanique#
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 sur le modèle enrichi. Assign mechanical load ( AFFE_CHAR_MECA ) : * Symétrie sur le plan de symétrie “FACE_LAT”(Enforce DOF ); * Symétrie sur le plan de symétrie “FACE_AV”(Enforce DOF ); * Blocage des modes rigides (Enforce DOF sur “D”) * Application de la e la traction sur “FACE_SUP” et “FACE_INF” ( PRES_REP ) |
Résolution du problème élastique: Static mechanical analysis ( MECA_STATIQUE ) avec le modèle enrichi |
Post-traitement des déplacements et des contraintes avec X-FEM et visualisation avec Paravis#
Afin de séparer le calcul et le post-traitement, vous pouvez ajouter une nouvelle étape (New stage) à votre cas d’étude (Case).
Dans l’onglet Fracture and Fatigue : Création d’un maillage de visualisation (POST_MAIL_XFEM ) |
Dans l’onglet Finite Element : Création d’un modèle pour la visualisation (AFFE_MODELE ) sur le maillage créé pour la visualisation |
Dans l’onglet Fracture and Fatigue : Création d’un champ de résultats sur le maillage de visualisation X-FEM (POST_CHAM_XFEM ) |
Pour visualisation avec Paravis: * Calcul du champ de contraintes extrapoléaux noeuds ( 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 POST_CHAM_XFEM enreprenant le même nom de concept. |
Impression des résultats au format MED: Results output (IMPR_RESU). |
Ajout des étapes de post traitement en mécanique de la rupture#
Pour le post-traitement de la rupture vous pouvez également ajouter une nouvelle étape (New stage) à votre cas d’étude en cours.
Pour l’ensemble des étapes suivantes, il faudra aller dans l’onglet Fracture and Fatigue .
Calcul de G avec CALC_G_ XFEM
Calculer le taux de restitution d’énergie G et les facteurs d’intensité des contraintesavec CALC_G_XFEM (OPTION=”CALC_K_G”) et le lissage de Legendre de degré 5.
Utiliser le résultat du calcul statique à ne pas confondre avec le résultat créé pour la visualisation avec POST_CHAM_XFEM (RESULTAT).
Compléter les informations sur le champ THETA:
le fond de 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 la table G ( IMPR_TABLE dans l’onglet Output ).
Calcul de K et G avec POST_K1_K2_K3
Calculer K et G avec POST_K1_K2_K3:
utiliser le résultat du MECA_STATIQUE (RESULTAT)
renseigner la fissure
renseigner le paramètre ABSC_CURV_MAXI
imprimer les résultats dans une table.
Comparez les résultats à la solution analytique. Comparez les temps entre les 2 commandes.
Essayer le lissage LAGRANGE. Qu’observe t-on?
Afin d’améliorer les résultats, essayer la répartition uniforme de \(n\) points le long du fond de fissure (CALC_G_XFEM/THETA/NB_POINT_FOND) avec diverses valeurs de \(n\) .
Autres pistes: raffinement / enrichissement sur plusieurs couches.
Grandeurs testées et résultats#
Identification |
Référence |
% tolérance |
\({K}_{I}\) de POST_K1_K2_K3 |
1,5957 106 |
1% |