u2.05.02 Notice d’utilisation de la méthode X-FEM#

Résumé

L’objectif de cette note est de donner les informations nécessaires pour qu’un utilisateur puisse réaliser des calculs avec Code_Aster en utilisant la méthode des éléments finis étendue (X-FEM pour eXtended Finite Element Method) [1].

La première partie introduit les objectifs de la méthode des éléments finis étendue et rappelle les principes de base de X-FEM et des level sets.

La deuxième partie présente les possibilités et les limites de l’utilisation de X-FEM dans Code_Aster .

Les trois parties suivantes détaillent la mise en œuvre de X-FEM dans Code_Aster , pour un calcul sans ou avec contact sur les lèvres de la fissure, puis pour un calcul de sous-épaisseur.

Finalement, la dernière partie donne de nombreux conseils pratiques.

Possibilités et limites de X-FEM dans Code_Aster#

Cette partie synthétise les possibilités offertes par Code_Aster à ce jour, en terme d’utilisation d’X-FEM.

Remarque:

Les tous premiers éléments constitutifs de X-FEM sont disponibles dès la version 7, et n’offrent pas grand intérêt. La version 8 corr espond aux fruits des trois premières années de développements, et permet de réaliser un calcul mécanique en élasticité linéaire 2D ou 3D, avec des conditions aux limites loin de la fissure, elle-même représentée par des level sets. La prise en compte du contact sur les lèvres de la fissure est possible. La version 9 apporte de nombreuses fonctionnalités avancées (multi-fissuration, plasticité…). La version 10 propose des algorithmes de propagation automatique robustes. En version 11 la méthode X-FEM est étendue à l’opérateur de thermique linéaire afin de prendre en compte dans le problème de thermique la fissure initialement définie pour le problème mécanique.

Phénomène, modélisation et éléments finis enrichis#

Les éléments finis X-FEM sont uniquement disponibles en mécanique et en thermique . Il n’est donc pas possible de modéliser une fissure avec X-FEM pour un calcul acoustique.

Pour le phénomène “MECANIQUE” :

Les éléments finis X-FEM peuvent être issus des modélisations 3D, C_PLAN,D_PLAN ou AXIS. A contrario, les éléments X-FEM sous-intégrés (modélisations *_SI) ne sont pas disponibles.

Tous les types géométriques de mailles sont disponibles:

En 3D:

  • mailles principales: TETRA4, PYRAM5, PENTA6, HEXA8, TETRA10, PYRAM13, PENTA15, HEXA20;

  • mailles de bord: TRIA3, QUAD4, TRIA6, QUAD8.

En Contraintes Planes / Déformations Planes/Axi-symétriques:

  • mailles principales: TRIA3, QUAD4, TRIA6, QUAD8;

  • mailles de bord: SEG2, SEG3.

Attention, les éléments X-FEM quadratiques manquent de robustesse (surtout en 3D) et on conseille d’utiliser des éléments X-FEM linéaires.

Pour le phénomène “THERMIQUE” :

Les éléments finis X-FEM peuvent être issus des modélisations 3D, PLAN, et AXIS.

Il n’est en revanche pas possible d’enrichir les autres modélisations de ce phénomène: 3D_DIAG, PLAN_DIAG, AXIS_DIAG, AXIS_FOURIER, COQUE, COQUE_PLAN, COQUE_AXIS.

Les types géométriques de mailles suivants sont disponibles:

En 3D:

  • mailles principales: TETRA4, PYRAM5, PENTA6, HEXA8;

  • mailles de bord: TRIA3, QUAD4

En modélisation plane ou axisymétrique:

  • mailles principales: TRIA3, QUAD4;

  • mailles de bord: SEG2

Remarque sur les éléments 1D d’une modélisation 3D:

Les éléments de bord 1D contenus dans une modélisation 3D ne peuvent pas être enrichis. Si ces éléments 1D ne servent pas dans le calcul, le mieux est de ne pas les mettre dans le modèle. S’ils servent réellement, il ne faut pas qu’ils soient proches de la fissure.

Loi de comportement#

En mécanique, toutes les lois de comportement sont disponibles (COMPORTEMENT) en petites déformations :

  • en HPP (petits déplacements et petites rotations): DEFORMATION=”PETIT”

  • en grands déplacements & rotations: DEFORMATION=”GROT_GDEP”.

Les autres modèles de déformations (comme par exemple DEFORMATION=”PETIT_REAC” ) ne sont pas disponibles.

Remarque sur la modélisation axi-symétrique:

Il est noté que la modélisation axi-symétrique n’est disponible qu’en petite déformation en HPP.

En thermique, la méthode X-FEM n’est disponible que pour l’opérateur THER_LINEAIRE: on ne traite que le cas de la thermique linéaire (paramètres matériau indépendants de la température). De plus, la conductivité thermique doit être isotrope.

Définition des fissures#

Le nombre de fissures est illimité. Il est aussi possible de les rapprocher pour qu’elles découpent le même élément. On peut aussi les brancher l’une sur l’autre. Les fonds de fissures doivent néanmoins respecter un écartement minimal à la fissure voisine : au moins deux mailles non découpées doivent les séparer. Cette restriction peut être contournée en raffinant localement le maillage.

Quatre manières différentes de définir une fissure sont possibles:

  • soit par des formes géométriques pré-établies (ellipse…) où l’on demande les paramètres géométriques (demi-grand axe….). Les forme pré-établies disponibles sont les fissures les plus usuelles : en 2D, fissure sur un segment ou une demi-droite; en 3D, fissure plane à fond rectiligne ou elliptique, fissure cylindrique. C’est la méthode recommandée .

  • soit par la donnée de deux groupes de mailles (l’un pour une lèvre, l’autre pour le fond de fissure). Cette méthode est pratique lorsque l’on dispose déjà d’un maillage de la fissure;

  • soit par la donnée des formules analytiques des level-sets. Cette méthode n’est pas adaptée aux fissures de forme complexe;

  • soit par relecture de 2 champs aux nœuds déjà existants.

Grâce à ces quatre méthodes de définition des level-sets, tous les cas de figure que l’on a rencontrés jusqu’à présent ont pu être traités.

La définition d’une interface se fait de la même façon. En fait, seule la level-set normale doit être définie.

Remarques:

La méthode X-FEM permet théoriquement de représenter une discontinuité forte (fissures ou interface) ou une discontinuité faible (interface entre bi-matériaux collés). Tout dépend de la fonction d’enrichissement introduite dans l’approximation du déplacement ou de la température. Dans Code_Aster, seule une discontinuité forte (champ de déplacements, de contraintes, ou de température discontinus) est possible [§ 1.1 ].

Contact frottement#

Il est possible de prendre en compte le contact (éventuellement contact glissière) sur les lèvres d’une même fissure. La seule méthode autorisée est la méthode continue, sans usure. Il est impossible de définir d’autres zones de contact. La prise en compte du frottement n’est pas correcte dans le cas général (seules des configurations bien précises fonctionnent correctement) et il est fortement déconseillé de l’utiliser. Le post-traitement des degrés de liberté de contact n’est pas aisé car la table de contact n’est pas complètement créée si l’intégration des termes de contact se fait par la méthode de Gauss.

Avec les restrictions ci-dessus, la prise en compte du contact et du frottement est également possible sous des hypothèses de grands glissements, en 2D comme en 3D. Cette fonctionnalité est activée dès que l’on renseigne le mot clé REAC_GEOM=”AUTOMATIQUE” ou REAC_GEOM=”CONTROLE” (mot-clé de l’opérateur DEFI_CONTACT).

Le schéma d’intégration utilisé pour les termes de contact est par défaut un schéma de Gauss. Les autres schémas possibles sont l’intégration nodale, les schémas de Simpson (3 et 5 points), et les schémas de Newton-Cotes (4, 5 et 10 points). On conseille cependant l’utilisateur de choisir l’intégration aux nœuds.

À l’heure actuelle, le contact sur des éléments contenant la pointe de la fissure est traité en petits et en grands glissements.

En résumé, les aspects liés au contact frottant sont présents à titre expérimental et ne doivent pas être utilisés pour une étude industrielle.

Zones cohésives#

Il est aussi possible de prendre en compte la présence de forces de cohésion lors de l’ouverture d’une interface X-FEM. La cohésion est modélisée par la loi cohésive CZM_EXP_REG déjà existante en méthode des éléments finis classiques (voir [U2.05.07]).

La loi cohésive ne doit pas être utilisée sur des éléments contenant la pointe de la fissure en 2D et en 3D, mais sur une interface uniquement.

Tout comme pour le contact frottant, les aspects liés aux lois cohésives sont encore présents à titre expérimental et ne doivent pas être utilisés pour une étude industrielle.

Conditions aux limites et chargements#

Cas de la mécanique

Seules certaines conditions aux limites peuvent être imposées sur les nœuds ou éléments X-FEM:

  • DDL_IMPO (DX, DY ou DZ) sur un nœud X-FEM (mais pas sur un point d’intersection),

  • FACE_IMPO (DNOR ou DTAN) sur un nœud X-FEM (mais pas sur un point d’intersection),

  • pression, force répartie sur des éléments de bords X-FEM,

  • force volumique (de type force interne, pesanteur ou rotation) sur les éléments X-FEM,

  • pression sur les lèvres.

Notamment, il n’est pas possible d’imposer une relation entre degrés de liberté enrichis, ni d’utiliser AFFE_CHAR_CINE sur des nœuds enrichis.

Pour imposer une pression sur les lèvres de la fissure, on ne peut pas utiliser le mot-clé classique GROUP_MA car aucun groupe de mailles de correspond aux lèvres. Pour cela, il faut utiliser AFFE_CHAR_MECA/PRES_REP/FISSURE.

Cas particulier des conditions de Dirichlet

Il existe deux moyens d’imposer des conditions de Dirichlet, le concept AFFE_CHAR_MECA_R et le concept AFFE_CHAR_MECA_F. Dans le premier les valeurs des déplacements imposés sont spécifiées par des valeurs réelles aux nœuds du maillage tandis que dans le deuxième, elles sont spécifiées dans tout l’espace. Ce deuxième concept permet en particulier d’imposer aisément des conditions cinématiques discontinues au travers de la discontinuité.

Les nœuds actifs XFEM du maillage possèdent plus de degrés de liberté que les nœuds classiques car certains champs sont enrichis.

Concept AFFE_CHAR_MECA_R

Lorsque l’on utilise le concept AFFE_CHAR_MECA_R, en soumettant par exemple un groupe de nœuds dont le statut est Heaviside à la condition suivante _F(GROUP_NO=C, DY=α) le code impose impose la relation linéaire suivante sur chacun des nœuds du groupe “A”:

\(\mathit{DY}+\mathit{signe}({\mathit{lsn}}_{\mathit{noeud}})\ast \mathit{H1Y}=\alpha\)

En cas de fissures multiples, on aura même la relation linéaire suivante:

\(\mathit{DY}+\Sigma \mathit{signe}({\mathit{lsn}}_{\mathit{noeud},i})\ast \mathit{HiY}=\alpha\)

Donc pour deux ou plus degrés de liberté associés au champ DY,on a une seule relation linéaire imposée. Les conditions aux limites ne sont donc pas complètement imposées. Le champ DY aura la valeur souhaitée aux nœuds mais rien n’est imposé sur le champ DY au niveau des lèvres de fissures. Si l’on se contente d’imposer cette unique relation linéaire aux nœuds XFEM, des situations non voulues risquent d’arriver, comme dans l’exemple ci-après:

../../../../_images/10000000000003EC0000023DF048A3E8282BD41F.jpg

Figure 2.6-a: exemple de conditions de Dirichlet partiellement imposées

Dans l’exemple ci dessus, la figure du haut représente les conditions aux limites que l’on souhaite imposer. On les impose grâce au concept AFFE_CHAR_MECA_R respectivement sur les nœuds du haut (DY=0) et les nœuds du bas (DY=-0.05). On voit figure que la condition cinématique est correctement imposée au niveau des nœuds XFEM (en orange sur la figure) mais pas au niveau des lèvres de fissure. Afin d’obtenir le résultat escompté, à savoir un étirement uniforme du barreau vers le bas pour la partie inférieure de la figure, il est nécessaire d’imposer une relation supplémentaire pour chaque nœud XFEM. Les degrés de liberté associés au champ de déplacement DX seront tous fixés de cette manière. On peut par exemple fixer H1Y=0 sur les nœuds du haut et les nœuds du bas.

Il convient d’être très vigilant lorsque les lèvres de fissure coïncident avec un nœud du maillage. Dans cette situation, le signe de la level-set normale est indéterminé au nœud puisqu’elle est nulle. Il y a alors deux possibilités lorsque l’on impose par exemple DY=α à l’aide du concept AFFE_CHAR_MECA_R.

  • Première possibilité

La relation cinématique est imposée de part et d’autre de la fissure (côté maître et côté esclave), au dessus et en dessous de l’interface. La relation: \(\mathit{DY}=\alpha\) écrite dans le fichier de commande revient alors à imposer \(\lbrace \begin{array}{c}\mathit{DY}+\mathit{H1Y}=\alpha \\ \mathit{DY}-\mathit{H1Y}=\alpha \end{array}\) pour un nœud sur l’interface et donc à bloquer toute discontinuité du champ DY en ce nœud. ATTENTION, dans ce cas donc, exceptionnellement, deux relations au lieu d’une sont imposées sur un même nœud. Il ne faut pas sur contraindre ce nœud en imposant en plus H1Y=0 par exemple car la matrice sera alors non factorisable. Un message d’alarme permettant d’identifier les nœuds concernés par cette configuration est émis. Il est important de noter qu’en raison du fit to vertex (réajustement de la level-set normale au nœud), cette situation arrive fréquemment.

  • Deuxième possibilité

La relation cinématique n’est imposée que du côté maître ou que du côté esclave, soit au dessus, soit en dessous de l’interface. La relation: \(\mathit{DY}=\alpha\) écrite dans le fichier de commande revient alors à imposer \(\mathit{DY}-\mathit{H1Y}=\alpha\) s’il s’agit du côté esclave et \(\mathit{DY}+\mathit{H1Y}=\alpha\) s’il s’agit du côté maître.

La situation où la fissure est conforme au nœud est résumée ci dessous:

../../../../_images/100000000000044200000182EBD0895F4189E7B6.jpg

Figure 2.6-b: fissure conforme au nœud avec le concept AFFE_CHAR_MECA_R

Concept AFFE_CHAR_MECA_F

Avec le concept AFFE_CHAR_MECA_F, les conditions de Dirichlet sont systématiquement «complètement» imposées et il est toujours possible d’imposer des discontinuités de déplacement au travers de la fissure. Pour ce faire, lorsqu’on traite un nœud appartenant à une arête intersectée par la discontinuité, on utilise des nœuds fictifs situés de part et d’autre de la fissure (en orange sur la figure ci-dessous) pour imposer les bonnes valeurs des degrés de liberté classiques et enrichis du nœud. On évalue en fait la relation cinématique automatiquement (l’utilisateur n’a pas besoin de spécifier quoi que ce soit) en ces nœuds fictifs pour déterminer les valeurs des degrés de liberté du véritable nœud XFEM. On s’assure ainsi que les déplacements sont corrects à la fois aux nœuds et au niveau des lèvres de fissure en imposant simplement_F(GROUP_NO=C, DX=f(x,y))

../../../../_images/1000000000000188000002397B2DD017F69F150B.jpg

Figure 2.6-c: nœuds fictifs de part et d’autre de la fissure

Lorsqu’on traite un nœud actif XFEM qui n’appartient pas à une arête intersectée par la discontinuité, il faut utiliser d’autres nœuds fictifs pour fixer les degrés de liberté classiques et enrichis de ce nœud. Les nœuds fictifs alors utilisés sont représentés sur les figures ci-dessous pour des éléments linéaires ou quadratiques, respectivement.

../../../../_images/10000000000001FA000001F606FC0FCA4FEC8746.jpg ../../../../_images/1000000000000211000002093A645B047AACC001.jpg

Figure 2.6-d: nœuds P1 utilisés pour les nœuds actifs XFEM n’appartenant pas à des arêtes intersectées par la discontinuité.

Cas de la thermique:

Pour imposer une condition d’échange entre les lèvres de la fissure, ou pour imposer la continuité du champ de température à travers une fissure, il faut utiliser AFFE_CHAR_THER (ou AFFE_CHAR_THER_F)/ECHANGE_PAROI/FISSURE. Dans le premier cas on renseignera le mot-clé COEF_H, dans le second le mot-clé TEMP_CONTINUE.

Aucune autre condition aux limites ne peut être imposée sur des éléments X-FEM ou des nœuds d’éléments X-FEM. De même, aucun terme source ne peut être imposé sur les éléments X-FEM.

L’utilisateur doit donc s’assurer d’appliquer ses chargements suffisamment «loin» de la fissure, c’est à dire sur des éléments non enrichis (ou des nœuds appartenant à des éléments non enrichis). Il est important de souligner que comme aucun chargement n’est disponible sur les éléments de bords X-FEM des modélisations thermiques, une condition de flux nul est imposée par défaut sur l’intersection entre la frontière du domaine considéré et les bords des éléments X-FEM principaux.

Calcul thermo-mécanique#

Il existe deux possibilités pour réaliser un calcul thermo-mécanique avec X-FEM. Dans les deux cas de figure, le champ de température est transféré de manière classique aux opérateurs de mécanique (MECA_STATIQUE, STAT_NON_LINE, CALC_G et POST_K1_K2_K3) comme variable de commande (opérateur AFFE_MATERIAU, mot-clé facteur AFFE_VARC). Ces deux possibilités diffèrent par la manière dont est produit le résultat du calcul thermique.

Calcul thermo-mécanique avec un modèle thermique sain#

Le calcul thermique est réalisé sur un modèle thermique «sain» avec les opérateurs THER_LINEAIRE ou THER_NON_LINE. On ne modélise pas la discontinuité du champ de température au travers des lèvres de la fissure. C’est donc un champ de température continue aux nœuds qui est transféré aux opérateurs de mécanique. Cette hypothèse constitue une approximation dont il faut être conscient, mais qui reste valable pour les fissures courtes et/ou si l’on considère une condition d’échange entre les lèvres de la fissure faisant intervenir une valeur élevée du coefficient d’échange.

Remarque:

Un champ de température continue aux nœuds peut également être utilisé comme variable de commande lorsqu’un cham_no de température fourni par l’utilisateur est renseigné sous le mot-clé simple CHAM_GD du mot-clé facteur AFFE_VARC de l’opérateur AFFE_MATERIAU , ou lorsqu’un evol_ther créé sur le maillage sain par l’opérateur CREA_RESU est renseigné sous le mot-clé simple EVOL du mot-clé facteur AFFE_VARC.

Calcul thermo-mécanique avec un modèle thermique X-FEM#

Le calcul thermique est réalisé sur un modèle thermique X-FEM (fonctionnalité uniquement disponible avec l’opérateur THER_LINEAIRE), et on prend alors en compte la discontinuité potentielle du champ de température au travers des lèvres de la fissure.

Le chaînage thermo-mécanique avec résolution thermique X-FEM et résolution mécanique X-FEM s’appuie sur un maillage unique, afin de préserver un sous-découpage identique entre les modèles thermique et mécanique. Les positions des points d’intégration sont alors identiques d’un modèle à l’autre, ce qui permet d’une part d’éviter d’avoir à projeter le champ de température, et d’autre part d’éviter d’avoir à reconstruire le gradient de température, notamment pour le calcul de \(G\) dans l’opérateur CALC_G. En contrepartie, ce choix impose que le champ de déplacement soit interpolé par des fonctions de forme linéaire, comme l’est le champ de température.

Pour ce type de chaînage, une syntaxe différente de celle qui est habituellement utilisée doit être adoptée dans l’opérateur MODI_MODELE_XFEM (voir [U4.41.11]) lors de la définition du modèle mécanique enrichi (mot-clé simple MODELE_THER) afin de dupliquer le sous-découpage du modèle thermique enrichi. On récapitule ci-dessous les principales commandes à employer dans ce cas.

# definition de la fissure

FISS = DEFI_FISS_XFEM(MAILLAGE = MA,

DEFI_FISS = _F(…))

# definition du modele thermique fissure

MOTH = AFFE_MODELE(MAILLAGE = MA,

AFFE = _F(PHENOMENE = “THERMIQUE”,…))

MOTHX = MODI_MODELE_XFEM(MODELE_IN = MOTH,

FISSURE = FISS)

# resolution sur le modele thermique fissure

THLIX = THER_LINEAIRE(MODELE = MOTHX, …)

# definition du modele mecanique fissure

MODELE = AFFE_MODELE(MAILLAGE = MA,

AFFE = _F(PHENOMENE = “MECANIQUE”,…))

MODELX = MODI_MODELE_XFEM(MODELE_IN = MODELE,

MODELE_THER = MOTHX)

# affectation materiau / variable de commande

CHAMPMAT = AFFE_MATERIAU(MODELE = MODELX,

AFFE = _F(…),

AFFE_VARC = _F(NOM_VARC = “TEMP”,

EVOL = THLIX, …))

# resolution sur le modele mecanique fissure

RESUX = MECA_STATIQUE(MODELE = MODELX,

CHAM_MATER=CHAMPMAT,…)

# post-traitement mecanique de la rupture

TABG = CALC_G(RESULTAT = RESUX,

THETA = _F(FISSURE = FISS, …))

Calcul hydro-mécanique avec un modèle HM-XFEM#

Il existe également la possibilité d’effectuer un calculhydromécanique couplé avec X-FEM. On peut alors intégrer à un modèle hydromécanique des interfaces hydrauliques éventuellement cohésives, de la même manière qu’avec les éléments de joint hydrauliques (confer doc [R7.02.15]). L’avantage de la discrétisation XFEM est que les interfaces cohésives n’ont pas besoin d’être maillées. Pour plus de détails sur le fonctionnement des éléments HM-XFEM, se reporter à la documentation [R7.02.18].

Maillage#

Des éléments HM-XFEM D_PLANet 3Dsont disponibles dans Code_Aster . Comme pour les modélisations HM classiques, l’interpolation du champ des déplacements est quadratique, ces modélisations requièrent donc exclusivement des maillages quadratiques.

Interfaces cohésives#

Dans un modèle HM-XFEM, on peut introduire des interfaces ou des fissures cohésives, de la même manière que dans un modèle mécanique classique. Les types de modèles de zone cohésive disponibles dans Code_Aster pour les éléments HM-XFEM sont STANDARD (les équations associées sont détaillées dans 2D coupled HM-XFEM modeling with cohesive zone model and applications to fluid-driven fracture network , M. Faivre, B. PAUL, F. Golfier, R. Giot, P. Massin et D. Colombo, Engineering Fracture Mechanics 2016) et MORTAR (les équations associées sont détaillées dans la documentation [R7.02.12]). Avec un contact de type MORTAR, on utilisera exclusivement la loi cohésive CZM_LIN_MIX, tandis qu’avec un contact de type STANDARD, on aura le choix entre la loi CZM_OUV_MIX et la loi CZM_TAC_MIX.

Matériau#

Seul le comportement «saturéen fluide» est disponible pour les modélisations HM-XFEM. On définit donc le matériau de la même manière que pour les modélisations HM saturées classiques, en oubliant pas de rajouter le paragraphe RUPT_FRAG si on a introduit des interfaces cohésives (dans ce paragraphe on renseigne les paramètres du modèle de zone cohésive). Dans la commande STAT_NON_LINE, le comportement sera également défini de la même manière que pour une modélisation HM saturée classique: COMPORTEMENT=_F(RELATION= “KIT_HM”,RELATION_KIT=(“ELAS”,”LIQU_SATU”,”HYDR_UTIL”,).

Chargements#

Avec un modèle HM-XFEM, on peut imposer les même chargements que pour un modèle HM saturé classique, en procédant de la même manière. Mais il existe un chargement additionnel propre aux modèles HM-XFEM couplés avec un modèle de zone cohésive: l’imposition de flux de fluide directement dans les interfaces cohésives. Ce chargement est introduit exclusivement avec la commande AFFE_CHAR_MECA_F/FLUX_THM_REP et le mot-clef FLUN_FISS. On l’impose donc à l’aide d’une fonction de l’espace, sur les éléments principaux et non pas les éléments de bord (en effet seuls les éléments principaux sont cohésifs). Afin d’imposer un tel flux au niveau de l’embouchure d’une interface cohésive hydraulique (ce qui est le cas le plus répandu), on définit la fonction de l’espace «flux» non nulle au niveau du bord du domaine autour de l’embouchure et nulle ailleurs. Sur la Figure à gauche, la bande bleue correspond à la zone où la fonction de l’espace «flux» est définie non nulle. On impose de cette manière le flux dans l’embouchure (point rouge). Pour les modélisations 2D, l’embouchure des interfaces cohésives est un point, le flux imposé est donc ponctuel et s’exprime en kg/s. En revanche pour les modélisations 3D, les embouchures sont des courbes (voir Figure à droite), le flux défini est donc un flux linéique qui s’exprime en kg/m/s.

../../../../_images/100000000000043F000001668F8EB5C3FBE8A12A.jpg

Figure 2.8.4-a: imposition d’un flux à l’embouchure d’une interface cohésive pour un modèle 2D (à gauche) et pour un modèle 3D (à droite)é.

Multi-fissuration#

Il existe la possibilité d’introduire plusieurs interfaces XFEM par éléments dans les modélisations HM-XFEM et en particulier la possibilité d’introduire des jonctions d’interfaces, de la même manière qu’en mécanique classique (confer documentation [R7.02.12]: eXtended Finite Element Method)

Cas tests de la base#

Les cas tests de la base qui concernent des modélisations HM-XFEM sont les suivants:

  • WTNV143:Application d’une pression répartie sur les lèvres d’une fissure XFEM pour le cas hydromécanique.

  • WTNV144:Consolidation d’une colonne de sol poro-élastique et fracturée, utilisation de la méthode XFEM.

  • WTNV145: Application d’une pression répartie sur les lèvres d’une jonction de fissure XFEM pour le cas hydromécanique.

  • WTNV146:Validation d’un modèle de loi cohésive pour le cas hydromécanique couplé avec XFEM.

  • WTNV147:Couplage hydromécanique dans une colonne poro-élastique et fracturée, utilisation de la méthode XFEM.

  • WTNV148:Écoulement dans une interface au sein d’un massif poreux: utilisation de la méthode XFEM.

  • WTNV149:Contact au niveau d’une jonction d’interfaces cohésives pour le cas hydromécanique.

  • WTNV150:Écoulement dans une jonction d’interfaces au sein d’un massif poreux: utilisation de la méthode XFEM.

Ces cas tests constituent un panel d’exemples d’utilisation du modèle HM-XFEM. Ils valident également les fonctionalités du modèle, des plus simples aux plus avancées.

Post-traitements de visualisation#

La visualisation des résultats sur un maillage sain n’est pas très pertinente. Un post-traitement spécifique permet de générer un «pseudo» maillage fissuré. Ce maillage est uniquement destiné aux post-traitements et ne doit pas être utilisé pour un calcul (ce n’est pas un vrai maillage car il ne respecte pas certaines propriétés de conformité notamment).

Ensuite, un autre post-traitement permet de générer, à partir du résultat du calcul X-FEM et de ce «pseudo» maillage fissuré:

  • des champs de déplacements, de contraintes et de variables internes en mécanique

  • un champ de température en thermique

Ensuite, ces champs peuvent être utilisés pour d’autres post-traitements ( CALC_CHAMP… ).

Remarque:

Le passage d’un CHAM_ELNOà un CHAM_NOn’est pas possible à cause du «pseudo» maillage.

Mécanique de la rupture#

Le calcul du taux de restitution d’énergie \(G\) et des facteurs d’intensité de contraintes \({K}_{I}\) , \({K}_{\mathit{II}}\) et \({K}_{\mathit{III}}\) est possible soit par extrapolation des sauts de déplacements (POST_K1_K2_K3) soit par la méthode \(G-\theta\) (CALC_G). Il existe certaines restrictions particulières pour X-FEM et CALC_G (voir [U4.82.03] pour plus de précisions).

Remarque sur le calcul du facteur d’intensité de contrainte dynamique:

Il est possible de calculer pour X-FEM les facteurs d’intensité de contraintes dynamiques (pour un calcul transitoire) et les facteurs d’intensité de contraintes modaux (associés avec les déformés modaux), voir [U4.82.03] pour plus d’information.

Propagation en fatigue#

L’opérateur PROPA_FISS de propagation automatique des fissures en fatigue est disponible en 2D et en 3D.

L’opérateur PROPA_FISS propose 4 méthodes (METHODE_PROPA = “MAILAGE”, “SIMPLEXE”,”UPWIND”, et “GEOMETRIQUE”), disponibles en 2D et en 3D.

En entrée, il est nécessaire de lui fournir une table contenant les facteurs d’intensité des contraintes le long du (des) fond(s) de fissures pour chaque fissure. Ces tables doivent provenir de CALC_G ou de POST_K1_K2_K2. À noter que toutes les fissures de la structure doivent être propagées dans un seul appel à l’opérateur PROPA_FISS.

La loi de propagation est une loi de Paris (en chaque point du fond de fissure). L’incrément maximum de propagation à chaque itération est imposé par l’utilisateur.

L’angle de bifurcation \(\beta\) et éventuellement l’angle de déversement \(\gamma\) – si le déversement est pris en compte – sont calculés dans PROPA_FISS (le choix du critère pour le calcul des angles de bifurcation est donné à l’utilisateur). Le critère par défaut est celui de la contrainte circonférentielle maximale («maximum hoop stress criterion»). Il est également possible de choisir des angles de bifurcation préalablement calculés. Dans ce cas, il faut que ces angles aient été rajoutés dans les colonnes BETA et GAMMA de la table en entrée de PROPA_FISS. Il est à noter qu’à l’heure actuelle, seule la méthode GEOMETRIQUE permet de prendre en compte le déversement.

Méthode MAILLAGE(projection): définition des 2 level sets à partir d’un maillage des lèvres et du fond. Afin de propager les level sets, on modifie ce maillage à chaque itération de propagation (METHODE_PROPA=”MAILLAGE”) [11][12]. On utilise donc deux maillages distincts (fissure et structure) et seul le «maillage» de la fissure est modifié. Une fois ce «maillage» mis à jour, on recalcule les nouvelles level sets par calcul direct de la distance à la fissure (projection orthogonale sur le «maillage» de la fissure).

Méthode SIMPLEXE : Réinitialisation des level sets par une méthode de fast marching basée sur des calculs de distance scalaires. Cette méthode est développée pour les éléments simplexes (triangles et tétraèdres), mais un découpage des autres mailles en simplexes permet de gérer tous types de mailles.

Méthode UPWIND:Réinitialisation des level sets par une méthode de fast marching avec une discrétisation aux différences finies upwind de l’équation de réinitialisation sur une grille régulière disjointe de la structure. Elle se présente comme une accélération de la méthode UPWIND.

Méthode GEOMETRIQUE: les level sets sont recalculées à chaque pas de propagation en utilisant des relations géométriques à partir du fond de fissure. Cette méthode n’a aucune limitation.

Des conseils sur le choix de la méthode de propagation sont donnés au § 7.5 .

Restrictions diverses#

La compatibilité avec les méthodes avancées de Code_Aster n’est pas assurée. Notamment, il est impossible d’utiliser X-FEM avec:

  • la dynamique,

  • la sous-structuration,

  • un modèle de zones cohésives sauf ceux mentionnés au § 9 .

Mise en œuvre : sans contact sur les lèvres de la fissure#

Cette partie explique pas à pas les différentes étapes d’un calcul avec X-FEM. On pourra se référer au cas test SSNV192a par exemple, qui met en œuvre un calcul d’une éprouvette 3D avec une fissure centrale droite.

Création du maillage et du modèle sain#

La spécificité par rapport à un calcul classique vient du fait qu’avec X-FEM, le maillage ne doit pas comporter la fissure. On part donc d’un maillage de la structure saine. Ce maillage est donc plus simple à réaliser qu’un maillage où la fissure est maillée: nul besoin de définir deux lèvres, nul besoin de mailler un tore en fond de fissure.

Si besoin est, ne pas oublier d’orienter les mailles de bord qui supporteront un chargement de type pression, comme pour un maillage habituel.

Un modèle est ensuite affecté à ce maillage par la commande AFFE_MODELE. Seuls les phénomènes ‘MECANIQUE’ et ‘THERMIQUE’ sont autorisés. Ce modèle est qualifié de «sain» car il ne comporte que des éléments finis classiques et aucun élément X-FEM. Il est utilisé pour la définition de la fissure.

Les modélisations supportées en mécanique sont:

3D, C_PLAN,D_PLAN et AXIS.

Les modélisations supportées en thermiqe sont:

3D, PLAN.et AXIS.

Définition de la fissure#

Chaque fissure est définie par un appel à la commande DEFI_FISS_XFEM [2]. Comme il est rappelé au § 2.3 , trois manières différentes de définir une fissure sont possibles. Ce paragraphe détaille dans quels cas il est préférable d’utiliser l’une ou l’autre manière.

Par la donnée de deux groupes de mailles

Cette méthode est pratique dans le cas où on dispose d’un maillage de la fissure (provenant d’une étude précédente par exemple), il suffit alors de renseigner le groupe de mailles correspondant soit à la lèvre supérieure, soit à la lèvre inférieure, et de renseigner aussi le groupe de mailles du fond de fissure.

Cette méthode peut être aussi utilisée dans le cas où la forme de la fissure est trop complexe pour être définie à l’aide de formules analytiques. On réalise alors un maillage de la surface de la fissure, disjoint du maillage de la structure. On pourrait envisager à l’avenir l’enchaînement suivant, déjà utilisé lors de la thèse de Jean-Baptiste Esnault [20]:

  • image 3D par tomographie de la fissure dans la structure réelle,

  • numérisation de l’image et création de la CAO surfacique associée à la fissure,

  • maillage de la surface de la fissure,

  • définition de la fissure par la commande DEFI_FISS_XFEM .

À noter que si le maillage de la fissure est disjoint du maillage de la structure saine, il faut les concaténer préalablement à la définition du modèle (ASSE_MAILLAGE/OPERATION=”SUPERPOSE”).

Par la donnée des formules analytiques des level sets

Les formules caractérisant les level-sets doivent représenter les vraies fonctions distance (à la surface et au fond de fissure). Sinon, le calcul de la distance au fond de fissure par:

\(r=\sqrt{({\mathit{lsn}}^{2}+{\mathit{lst}}^{2})}\)

sera erroné.

Cette technique est bien adaptée aux fissures de formes simples: fissure plane circulaire, fissure plane droite…

Par des formes géométriques pré-établies

Un catalogue de formes de fissures est disponible. Un tel catalogue est indispensable car certaines fonctions distance ne possèdent pas d’écriture mathématique explicite et nécessitent un calcul numérique. De plus, l’utilisation d’un catalogue étant la plus rapide, d’autres formes usuelles simples seront intégrées, ce qui limitera aussi le risque d’erreur dans la définition des level sets.

La deuxième étape de la définition de la fissure est l’orientation du fond de fissure (en 3D). Cette étape est un peu délicate, et passe par la définition de deux vecteurs d’orientation et d’un point d’ancrage. Il est conseillé de se référer aux exemples détaillés dans [2] et aux fichiers commandes des cas tests. De plus, il est primordial de toujours vérifier la liste des points du fond de fissure trouvés (et leurs coordonnées), imprimée par la commande DEFI_FISS_XFEM dans le fichier message, l’idéal étant de tracer la courbe ainsi discrétisée du fond de fissure. Il est important de vérifier aussi que le nombre de fonds de fissure trouvés correspond bien à celui attendu.

Remarque:

Dans le cas où la fissure est définie à partir du catalogue de formes géométriques pré-établies, l’orientation du fond est faite automatiquement.

Deux autres vérifications sont possibles: visualiser les champs level-sets, et visualiser le «pseudo» maillage destiné à la visualisation. Les champs level-sets peuvent être extraits du concept créé par la commande DEFI_FISS_XFEM, chaque champ level-set étant extrait par un appel à la commande CREA_CHAMP/OPERATION=’EXTR’ [3]. Chaque level-set peut être alors visualisée (par exemple avec gmsh ou Salomé) suite à un IMPR_RESU au format adéquat. La version 5.1.4 de Salomé n’est pas idéale pour visualiser les level sets car elle ne permet pas d’afficher des iso-valeurs remplies dans une Scalar map ( filled iso-values dans le langage gmsh ) sans faire de lissage des couleurs. L’utilisation de gmsh est donc préconisée, avec les réglages de l’onglet Range suivants (exemple donné en version 1.65):

../../../../_images/100000000000052B0000028AB69A216C79C5CE30.png

Figure 3.2-a: réglages de gmsh (v1.65) pour la visualisation de level sets

Deux couleurs sont affichées: en bleu pour les zones où la level-set est négative, et en rouge pour les zones où la level-set est positive. Le choix des bornes \(\mathit{Min}\) et \(\mathit{Max}\) peut être différent, il suffit que l’intervalle soit centré en 0.

On pourra cependant utiliser Salomé et afficher les iso-surface des level-sets en «Iso-surfaces».

La deuxième vérification est celle du «pseudo» maillage, mais celui-ci n’est créé qu’après la modèle enrichi. Cette dernière vérification sera expliquée au § 3.5 .

Création du modèle enrichi#

Le modèle enrichi est créé par la commande MODI_MODELE_XFEM [4] à partir du modèle sain [§ 3.1 ] et de la fissure définie par DEFI_FISS_XFEM [§ 3.2 ]. Si plusieurs fissures ont été définies par plusieurs appels préalables à DEFI_FISS_XFEM, alors l’entrée de MODI_MODELE_XFEM sera la liste des noms de ces fissures. Il n’y a pas de limitation concernant le nombre de fissures, en mécanique comme en thermique.

En mécanique, il est en outre possible de découper un élément avec plusieurs fissures. Certains nœuds de l’élément seront alors enrichis avec plusieurs fonctions Heaviside. Le support d’un élément peut être découpé par autant de fissures que l’on veut, à condition que le support de chacun de ses nœuds ne soit pas coupé plus de 4 fois. Attention, cela ne fonctionne pas pour les enrichissements de fond de fissures. Un fond de fissure doit être espacé d’au moins 2 mailles non-coupées d’une autre fissure. On peut aussi avoir certains problèmes de conditionnement qui produisent un pivot nul lors de la factorisation de la matrice: cela arrive en 3D et on peut dans l’attente de développement s’en sortir en utilisant le solveur MUMPS. Si les fissures se croisent ou se branchent l’une sur l’autre, il est impératif d’utiliser préalablement le mot clé JONCTION dans DEFI_FISS_XFEM sous peine de résultats faux. La Figure 3.3-a présente un exemple d’une plaque maillée avec des quadrangles, comportant trois fissures X-FEM (deux en rouge et une en bleu). Les éléments grisés sont ceux traversés par les fissures rouges . Les éléments verts sont les éléments de fonds de fissures. Les éléments violets sont ceux concernés par la troisième fissure qui se branche sur les deux premières. Ces éléments peuvent être communs avec les éléments grisés des deux premières fissures, mais les éléments ne peuvent pas être à la fois vert et violet .

En thermique, cette fonctionnalité n’est pas disponible. Si le modèle sain est un modèle thermique et que le mot clé JONCTION est utilisé, le code s’arrête en erreur fatale avec un message utilisateur.

../../../../_images/Object_40.png

Figure 3.3-a : exemple d’une plaque comportant 3 fissures

Ce modèle enrichi doit être utilisé pour toute la suite du calcul. Notamment, on doit affecter les matériaux et les chargements sur ce modèle, et l’utiliser dans les opérations de résolution MECA_STATIQUE ou STAT_NON_LINE .

Remarque:

L’opérateur MODI_MODELE_XFEM réalise de manière automatique le découpage en sous-éléments [1] préalable à l””intégration numérique des matrices et vecteurs élémentaires réalisée par les opérateurs de calcul. Ce sous-découpage s’appuyantsur le maillage sain, il est fortement déconseillé d’apporter des modifications à ce dernier (par exemple, une réorientation des mailles de peau à l’aide de l’opérateur MODI_MAILLAGE) une fois que la commande MODI_MODELE_XFEM a été appelée.

Résolution#

La résolution de l’équilibre mécanique avec X-FEM est réalisée de manière classique, mais uniquement avec les opérateurs de résolution MECA_STATIQUE ou STAT_NON_LINE.

La résolution de l’équation de la chaleur avec X-FEM est réalisée de manière classique, mais uniquement avec l’opérateur de résolution THER_LINEAIRE.

Post-traitement de visualisation#

La création du maillage de visualisation se fait par la commande POST_MAIL_XFEM [5], qui génère un «pseudo» maillage, non conforme. Ce maillage est basé sur le maillage sain, dont les éléments X-FEM ont été sous-découpés. Vérifier le maillage de visualisation permet de contrôler la position de la fissure, et donc de contrôler que les level sets ont été correctement calculées. Notons que la création du maillage de visualisation se sert uniquement du modèle enrichi et du maillage sain: cette phase de vérification peut donc être réalisée juste après la création du modèle enrichi, avant la résolution.

Afin de créer des champs de résultat correspondant à ce maillage de visualisation, il est nécessaire de créer d’abord un modèle de visualisation. Pour cela, il faut utiliser la commande AFFE_MODELE, exactement de la même manière que pour le modèle sain, en changeant juste le nom du maillage et en mettant le nom du maillage de visualisation.

La création du concept résultat associé au modèle de visualisation se fait par la commande POST_CHAM_XFEM[6]. Cette commande génère pour la mécanique les champs de résultat DEPL, SIEF_ELGA, VARI_ELGA, et pour la thermique le champ TEMP. Ce résultat peut être ensuite utilisé comme un résultat issu d’un calcul classique, notamment, les champs pouvant être imprimés avec la commande IMPR_RESU (au format MED par exemple) pour être visualisés avec un logiciel de post-traitement.

Ce résultat peut être utilisé pour d’autres post-traitements (contraintes équivalentes, déformations, forces nodales…) notamment avec la commande CALC_CHAMP. Pour certaines options de post-traitement (EPSI_ELGA par exemple) il est nécessaire de recréer un champ de matériau sur le «pseudo» maillage fissuré par la commande AFFE_MATERIAU. Ce champ de matériau sera alors donné en entrée de CALC_CHAMP sous le mot-clé CHAM_MATER. C’est également le cas si des éléments de structures sont contenus dans le maillage. Il sera alors nécessaire de recréer le cara_elemet de le renseigner sous le mot-clé CARA_ELEM de CALC_CHAMP.

Un exemple de post-traitement complet (POST_MAIL_XFEM, AFFE_MODELE, POST_CHAM_XFEM, AFFE_MATERIAU, CALC_CHAMP, IMPR_RESU) est donné dans le cas-test ssnv185b.

Post-traitement en mécanique de la rupture#

Comme pour une fissure maillée, le calcul du taux de restitution d’énergie \(G\) et des facteurs d’intensité de contraintes \({K}_{I}\) , \({K}_{\mathit{II}}\) et \({K}_{\mathit{III}}\) est possible soit par extrapolation des sauts de déplacements (POST_K1_K2_K3) soit par la méthode G-thêta (CALC_G). La fissure est directement renseignée dans ces opérateurs par le mot-clé FISSURE.

Des conseils sur le choix des paramètres de calcul de \(G\) et de \(K\) sont donnés dans les paragraphes § 7.2 et § 7.3 .

Post-traitements divers#

Les autres post-traitements (par exemple, contraintes de Von Mises…) se font à partir du résultat associé au modèle de visualisation. Ainsi, il ne faut pas enchaîner directement la résolution (MECA_STATIQUE ou STAT_NON_LINE) et le post-traitement des champs élémentaires (CALC_CHAMP). Il faut impérativement post-traiter les champs à partir du résultat issu de POST_CHAM_XFEM.

Mise en œuvre : avec contact sur une interface#

Cette partie explique pas à pas les différentes étapes d’un calcul avec X-FEM où le contact est défini sur les lèvres de la fissure (ici, une interface). Il est conseillé d’avoir lu le chapitre précédent. On pourra se référer aux cas tests SSNV182, SSNV186, SSNV201, SSNV209, SSNP503 ou SSNP504.

Pour cette formulation la création du modèle sain se fait exactement comme dans le cas sans contact.

Définition de l’interface#

Une interface est définie par une seule level set: la level-set normale. Il faut préciser dans DEFI_FISS_XFEM le type de discontinuité: TYPE_DISCONTINUITE=”INTERFACE”.

Contrairement au cas d’une vraie fissure, il n’est pas nécessaire de définir la vraie fonction distance. Une level-set quelconque suffit, pourvu que l’iso-zéro de la level-set coïncide avec l’interface. Par exemple, la vraie fonction distance signée au cercle de centre \(C\) et de rayon \(R\) est:

\(\mathrm{LSN}=\sqrt{({(X-{X}_{C})}^{2}+{(Y-{Y}_{C})}^{2})}-R\)

mais une fonction level-set dont l’iso-zéro coïncide avec le cercle est par exemple:

\(\mathrm{LSN}={(X-{X}_{C})}^{2}+{(Y-{Y}_{C})}^{2}-{R}^{2}\)

Création du modèle enrichi#

La particularité du cas où le contact est défini sur l’interface ou fissure X-FEM est qu’il faut le préciser lors de la création du modèle enrichi, par le mot-clé CONTACT=”STANDARD” de la commande MODI_MODELE_XFEM. Dans le cadre des approches cohésives, on utilisera par contre le mot-clé CONTACT=”MORTAR”. La restriction sur le positionnement de plusieurs fissures est la même que celle expliquée au § 3.3 .

Bi-matériau#

La définition d’un matériau différent de part et d’autre de l’interface n’est pas aisée car normalement, un matériau est défini par groupes de mailles, donc sur une maille, on a forcément le même matériau. Or dans le cas d’un interface traversant une maille, on pourrait souhaiter avoir des matériaux différents de part et d’autre de l’interface. Ceci est néanmoins possible si:

  • la level-set normale est une fonction explicite de l’espace,

  • la loi de comportement est la même sur toute la maille.

Dans ce cas, on peut définir les caractéristiques matériaux (comme \(E\) et \(\nu\) ) en fonction d’une variable de commande \(\mathit{VC}\) , qui est en fait la level-set normale \(\mathit{LSN}\) . On procède donc ainsi:

\((X,Y)\to \mathrm{LSN}(X,Y)\to \mathrm{VC}=\mathrm{LSN}(X,Y)\to (E,\nu )=f(\mathrm{VC})\)

On passe par une variable de commande car le matériau ne peut pas dépendre directement des coordonnées de l’espace. La fonction \(f\) est une fonction du type:

\(\mathrm{if}\mathit{VC}>0\mathrm{then}(E,\nu )=({E}^{1,}{\nu}^{1})\mathrm{else}(E,\nu )=({E}^{2,}{\nu}^{2})\)

\(({E}^{1,}{\nu}^{1})\) et \(({E}^{2,}{\nu}^{2})\) sont les propriétés des deux matériaux en question.

Charge de contact#

Lors de la création de la charge de contact, il faut spécifier METHODE = “XFEM”, et donner le nom de la fissure sous le mot-clé FISS_MAIT . La méthode de contact activée est la méthode continue.

Il peut être utile pour la convergence de l’algorithme de préciser le schéma d’intégration par INTEGRATION=”NOEUD” ou INTEGRATION=”GAUSS” ou INTEGRATION=”SIMPSON”.

Post-traitement de visualisation#

Tout ce qui est expliqué au § 3.5 reste valable, mais le maillage sain à renseigner est le maillage initial linéaire (dans POST_MAIL_XFEM et POST_CHAM_XFEM). De plus, le modèle de visualisation est la copie du modèle sain, mais avec les modélisations classiques “3D”, “CPLAN”,”DPLAN” et “AXIS”.

Post-traitement en mécanique de la rupture#

Il est tout à fait possible de calculer \(G\) et \(K\) sur une fissure totalement ou partiellement fermée. Le calcul se fait avec les opérateurs POST_K1_K2_K3 ou CALC_G. Pour l’opérateur POST_K1_K2_K3, le maillage à renseigner est le maillage initial linéaire.

Si le fond de fissure est fermé, la valeur théorique de \(G\) ou \(K\) est 0, mais on ne s’en approche avec la commande CALC_Gqu’avec des mailles très petites.

Comme pour une fissure non-maillée, il est possible de faire des calculs de G en présence d’un champ de contraintes initiales.

Post-traitement du contact#

Comme pour un calcul de contact classique, le champ CONT_NOEU, qui donne des informations sur les valeurs de certaines quantités liées au contact, est calculé et peut être post-traité. Toutefois, si les termes de contact sont intégrés numériquement par une méthode de Gauss, les quantités définies aux points de Gauss des facettes de contact ne pourront être affichées.

Mise en œuvre : trou ou sous-épaisseur#

Afin de représenter un trou ou une sous-épaisseur par X-FEM, on se sert de la définition d’une interface, qui représente la bordure du trou ou de la sous-épaisseur. Prenons l’exemple d’une plaque qui présente un manque de matière sur l’un de ses côtés (région grisée de la Figure 5-a ). Ce manque de matière peut être modélisé suivant sa forme par une portion d’ellipse. On pourra se référer au cas-test analytique de la plaque trouée (FORMA01, modélisation C), ou bien au cas de validation représentatif d’une étude industrielle SSLA105 (accès restreint).

../../../../_images/100000000000023600000235AAC5102471190A0E.png

Figure 5-a : exemple d’une sous-épaisseur sur le bord d’une plaque

On représente alors l’interface entre la plaque et le vide par une level-set de type inclusion elliptique, dont la formule s’écrit simplement:

LN=FORMULE(NOM_PARA=(“X”,”Y”),VALE=”(X-Cx)**2/(b*b)+(Y-Cy)**2/(a*a)-1.”)

\((\mathit{Cx},\mathit{Cy})\) sont les coordonnées du centre de l’ellipse et \(a\) et \(b\) les longueurs des demi-axes de l’ellipse.

Comme dans le cas d’une interface entre 2 solides en contact, il ne faut définir que la level-set normale, la level-set tangentielle ne servant à rien ici. Dans DEFI_FISS_XFEM, on ne renseignera que FONC_LN et on précisera le type de discontinuité: TYPE_DISCONTINUITE=”INTERFACE”.

../../../../_images/10000000000005510000040C74C86CE07FF0A51D.png ../../../../_images/10000000000005510000040C5EC946A15519765E.png

Figure 5-b : déformée non amplifiée (gauche) et amplifiée (droite)

On procède de la même façon que pour un cas sans contact. Mais il faut veiller à bloquer les modes rigides de la partie vide, par exemple en bloquant deux nœuds de la partie grisée. Le mieux est même d’imposer un déplacement important sur ces deux nœuds, de manière à ce qu’il translate la partie vide loin de la plaque. Cet artifice permet de ne visualiser que la plaque sans la partie vide (voir Figure 5-b ). Rappel: utiliser MECA_STATIQUE ou STAT_NON_LINE pour la résolution. Dans le cas du cas test de la plaque trouée (FORMA01C), les conditions aux limites qui permettent de ne représenter qu’un quart de la plaque bloquent également les modes rigides de la partie vide, il n’y a donc pas de conditions aux limites spécifiques à rajouter dans ce cas.

Pour imposer un chargement de pression sur l’interface, il faut procéder comme pour les fissures: imposer une pression sur les 2 côtés de l’interface (bien qu’imposer la pression uniquement sur le coté «dans la matière» soit suffisant). Voir le § 2.6 .

Conseils et recommandations sur le maillage#

Cette partie traite de l’adéquation entre le maillage utilisé pour le calcul et la qualité de la solution obtenue. D’abord on rappelle la problématique du raffinement de maillage dans le cadre de la méthode X-FEM. Après un rappel de la définition de la taille de maille, un critère à respecter sur les tailles des mailles est donné. Ensuite, on présente différentes stratégies de raffinement. On détaille par la suite celle basée sur le logiciel Homard couplé à Code_Aster. Enfin, on résume la méthodologie recommandée pour le raffinement de maillage dans le cadre X-FEM.

La problématique du raffinement de maillage dans le cadre X-FEM#

L’utilisation de la méthode X-FEM permet de lever certaines difficultés liées au maillage. Notamment, un maillage libre de la structure saine suffit. Dans la suite, on fera l’hypothèse que le maillage sain initial est suffisamment fin pour obtenir une précision suffisante sur les déplacements et contraintes pour un calcul d’une structure sans fissure.

L’introduction de la fissure amène à se poser 2 questions:

  • Le maillage initial est-il suffisamment fin pour représenter la forme géométrique de la fissure?

  • Le maillage initial est-il suffisamment fin pour le post-traitement des quantités caractéristiques de la mécanique de la rupture (taux de restitution d’énergie et facteurs d’intensité des contraintes)?

La première question est légitime, car la géométrie de la fissure est caractérisée par les level sets, dont les valeurs sont portées aux nœuds du maillage. Donc la finesse du maillage influe sur la qualité de la représentation de la fissure, et donc sur la forme de la fissure. Dans l’immense majorité des cas, la surface de la fissure est plane. Ce type de surface peut être représenté fidèlement même avec un maillage relativement grossier. Dans le cas contraire (fissure courbe), il faut s’assurer que la courbure de la fissure peut être bien représentée.

La qualité de la représentation du fond de fissure est aussi importante. Mais les exigences en terme de représentation géométrique correcte sont négligeables devant celles nécessaires pour le post-traitement (cf. 2ème question).

La 2ème question est la plus préoccupante. En effet, les contraintes sont singulières en pointe de fissure. Il faut donc un maillage adapté pour bien capter cette singularité. Ce problème est traité avec la méthode des éléments finis (FEM) par l’utilisation d’une part d’éléments quadratiques dont les nœuds milieux sont déplacés au quart des arêtes (éléments dits de «Barsoum») et d’autre part d’un maillage rayonnant qui permet un fort raffinement dans la zone de post-traitement.

Avec X-FEM, l’ajout de fonctions d’enrichissement asymptotiques est le pendant des éléments de Barsoum. Mais cela n’a une influence que très localement. Il faut donc un maillage relativement raffiné dans la zone de post-traitement. Notons aussi que seuls les éléments X-FEM linéaires sont considérés dans cette note (les éléments X-FEM quadratiques étant actuellement en cours d’optimisation).

L’obtention d’un maillage suffisamment fin est le cœur de ce chapitre. L’objectif est de préciser dans un premier temps quelle doit être la finesse du maillage dans la zone de post-traitement. Ensuite, la démarche d’obtention d’un tel raffinement est expliquée.

Remarque:

Le cas des interfaces est plus problématique car d’une part les interfaces sont généralement courbes et d’autre part des conditions de contact unilatéral sont souvent définies sur les interfaces. Or pour résoudre correctement le problème du contact entre 2 surfaces courbes, il est impératif que les surfaces soient représentées par des éléments finis d’ordre 2. Une thèse sur les interfaces courbes représentées par des level sets d’ordre 2 est en cours. Cependant, on ne traitera pas dans ce chapitre le cas du raffinement de maillage pour les interfaces.

Définition de la taille d’une maille#

On définit la taille d’une maille (ou encore diamètre d’une maille) comme la valeur de la longueur de la plus grande arête de la maille. Cette taille peut être facilement calculée dans le module SMESH de Salomé (Control → Element Diameter 2D ou 3D).

Critères sur les tailles des mailles#

La précision du calcul du taux de restitution d’énergie (\(G\) ) et des facteurs d’intensité des contraintes (\(K\) ) est directement liée à la taille des éléments proches du fond de fissure. Il convient de distinguer 2 longueurs:

  • la longueur des éléments dans le plan orthogonal au fond de fissure en 3D, c’est-à-dire le plan complet en 2D;

  • la longueur des éléments le long du fond de fissure (en 3D uniquement).

Dans le plan, on considère que la zone d’intérêt est un disque autour du fond de fissure de rayon \(R<a/5\) , \(a\) étant la profondeur de la fissure. Dans cette zone, on constate qu’environ 4 à 6 éléments sont nécessaires pour obtenir une erreur sur le taux de restitution d’énergie entre 1% et 2%. Par conséquent, la taille maximale d’un élément dans cette zone, notée \({h}_{1}\) , doit être de l’ordre de \(a/20\) .

Le long du fond de fissure, la discrétisation est liée à la courbure du fond de fissure. Pour un fond droit, quelques éléments suffisent. Pour un fond courbe, par exemple un quart de cercle, le nombre d’éléments le long du fond, noté \({h}_{2}\) , doit être au moins égal à 20.

Dans certains cas (notamment avec un maillage en hexaèdres), on peut régler indépendamment les tailles des mailles \({h}_{1}\) , et \({h}_{2}\) . Mais dans la plupart des cas (maillages en tétraèdres), la taille des mailles est liée à un seul paramètre utilisateur \(h\) . Il faut donc que h satisfasse les 2 conditions ci-dessus, soit \(h=min({h}_{1,}{h}_{2})\) . La 2ème condition n’est pas aisée à écrire car elle dépend de la courbure du fond de fissure. Or c’est bien souvent la 1ère condition qui est la plus contraignante sur la taille des mailles \(({h}_{1}<{h}_{2})\) . On peut ainsi conclure dans le cas général, la condition à respecter sur la taille des mailles dans la zone d’intérêt: \(h\) ne doit dépasser \(a/20\) .

Bilan:

Dans le cas général, la taille des mailles dans une zone proche du fond de fissure doit être de l’ordre de \(a/20\) , \(a\) étant la profondeur de la fissure. Des tailles de l’ordre de \(a/10\) permettent d’avoir déjà une bonne idée du résultat.

Techniques de raffinement de maillage dans le cadre X-FEM#

L’obtention d’un maillage X-FEM sur une structure industrielle n’est pas si aisée. Deux approches peuvent être envisagées: l’introduction d’un bloc fissure, ou l’adaptation de maillage.

L’introduction d’un bloc fissure consiste à définir lors de la création du maillage, une boîte englobant la fissure. Le maillage dans cette boîte sera réglé, et la finesse du maillage doit être un paramètre de la procédure de maillage. La boîte doit être suffisamment large si l’étude la propagation de la fissure est envisagée. Il est aussi nécessaire de créer une zone de raccord entre la boîte réglée, et le reste de la structure maillée en libre. Cette approche a récemment été utilisée dans plusieurs études (voir les notes d’étude [7] et [8]). Ce bloc raffiné peut être également obtenu en exploitant les cartes de tailles locales des algorithmes de maillages (Netgen, Blsurf).

La deuxième approche (recommandée) consiste à réaliser un maillage adéquat par raffinements successifs d’un maillage libre initial jugé grossier. Le critère de raffinement (ou critère d’erreur) est basé sur la distance au fond de fissure. Un exemple d’utilisation de cette approche par adaptation de maillage avec le logiciel Homard est présenté dans [9]. Sa mise en œuvre est dorénavant très aisée, grâce à la macro-commande RAFF_XFEM qui crée le champ d’erreur directement à partir de la liste des fissures. Ce champ d’erreur doit ensuite être donné en entrée de la macro-commande MACR_ADAP_MAIL (voir un exemple d’adaptation de maillage pour X-FEM avec le cas test sslp317a,b,c).

La paragraphe suivant détaille cette 2ème approche.

Méthodologie de raffinement de maillage avec Homard et level sets#

Cette technique ne nécessite pas de disposer de la géométrie (CAO). Elle fait appel seulement au maillage initial sain. Elle utilise le logiciel de raffinement de maillage Homard, appelable depuis Code_Aster par la commande MACR_ADAP_MAIL.

Détermination du nombre d’appel à Homard#

À chaque appel à Homard, les mailles qui seront découpées verront leur taille divisée d’un facteur 2. Il est donc facile de savoir le nombre de fois qu’il faut successivement appeler Homard. Connaissant la taille initiale des mailles dans la zone d’intérêt \({h}_{0}\) et la taille des mailles que l’on souhaite obtenir au final \({h}_{c}\) (taille cible), il faut appeler Homard au moins \(\text{nb\_raff}\) fois, avec \(\text{nb\_raff}\ge \frac{\ln({h}_{0})-\ln({h}_{c})}{\ln(2)}\) . On recommande de prendre \(\text{nb\_raff}=E(n)+1\) , avec \(n=\frac{\ln({h}_{0})-\ln({h}_{c})}{\ln(2)}\) . La taille des mailles après raffinement sera donc de \(h=\frac{{h}_{0}}{{2}^{\text{nb\_raff}}}\) . Notons que bien souvent, à cause de la division entière, la taille finale n’est pas exactement la taille cible souhaitée, mais on sait que \(\frac{{h}_{c}}{2}\le h\le {h}_{c}\) .

Maintenant que le nombre d’appels à Homard est déterminé, il est nécessaire de savoir pour chaque appel à Homard combien de mailles, et lesquelles, doivent être découpées (pilotage d’Homard).

Pilotage d’Homard (indicateur d’erreur et critère de raffinement)#

Il faut que Homard raffine uniquement les mailles les plus proches du fond de fissure. Pour cela, il suffit de lui fournir un champ représentant la distance au fond de fissure en chaque nœud du maillage. Les nœuds dont cette distance est la plus faible permettent de déterminer les mailles à raffiner en priorité. La question est alors la suivante: combien de mailles faut-il découper à chaque appel à Homard? On peut soit imposer:

  • un pourcentage de mailles à découper,

  • ou bien choisir de découper toutes les mailles dont la distance au fond est inférieure à une valeur limite (seuil). Cette valeur limite peut être la valeur du rayon de la zone de post-traitement (notée \(R\) au § 6.3 ).

Critère avec pourcentage d’éléments: la difficulté est de trouver les bons pourcentages qui peuvent dépendre de la position du fond (longueur du fond). Cela pose un problème en pratique pour la propagation. Bien que simple, ce critère est déconseillé car il abouti à des maillages peu optimaux en termes de nombre de nœuds (voir illustration sur le cas-test sslp317a).

Critère avec seuil: des mailles initiales très grosses peuvent poser problème. Ainsi aucune maille n’est découpée initialement, car aucune maille ne se trouve complètement à une distance inférieure au seuil \(R\) . Il faut alors forcer l’algorithme à découper et utiliser un seuil variable. Le seuil au niveau de raffinement \(k\) s’écrit alors \(max(R,\frac{{h}_{0}}{{2}^{k}})\) .

Remarque:

Homard ne permet de découper que les mailles dont la valeur du champ «d’erreur» est supérieure au seuil. Il a donc fallu créer un champ d’erreur tel que les mailles les plus proches du fond de fissure aient l’erreur la plus grande. Pour cela, l’erreur n’est pas la distance \(d\) au fond de fissure, mais l’opposée de la distance au fond, soit \(e=-d\) . La condition \(d<max(R,\frac{{h}_{0}}{{2}^{k}})\) devient donc \(e=-d>-max(R,\frac{{h}_{0}}{{2}^{k}})\) . Donc le seuil à définir dans Homard (CRIT_RAFF_ABS) est en fait égal à \(-max(R,\frac{{h}_{0}}{{2}^{k}})\) . Il faut aussi utiliser le mot-clé USAGE_CMP = “RELATIF”(voir illustration sur le cas-test sslp317b).

Sur certains maillages où les mailles sont un peu allongées, l’utilisation d’un critère avec seuil variable tel que évoqué précédemment ne fonctionne pas et aucune maille n’est découpée initialement. Un nouvel indicateur d’erreur par zone (indicateur binaire) a récemment été mis en place (RAFF_XFEM/TYPE=”ZONE”). Le principe de cet indicateur est de valoir 1 dans la zone à raffiner (zone d’intérêt) et 0 partout ailleurs. La zone d’intérêt est en 2d un disque autour du fond de fissure et en 3d un tore autour du fond de fissure, caractérisés par la donnée d’un rayon \(R\) . Cet indicateur permet de toujours raffiner au moins une maille, et est plus simple à utiliser que l’indicateur précédent (voir [U7.03.51]). L’utilisation de ce nouvel indicateur ainsi que la méthodologie associée sont conseillés . Il s’utilise exclusivement avec un critère en valeur absolue dans MAC_ADAP_MAIL (CRIT_RAFF_ABS fixé à 0,5). Avec cette indicateur, il est préférable de réaliser un appel à Homard en plus de \(\text{nb\_raff}\) , avec DIAM_MIN fixé à \({h}_{c}\) .

Pour une illustration de cette méthodologie, on peut se référer aux cas-tests sslv155[b,c], sslv110f, sslp317c. Un récapitulatif complet de cette méthodologie est donné au paragraphe suivant.

Récapitulatif de la méthodologie recommandée de raffinement de maillage#

On peut résumer la méthodologie recommandée par l’algorithme suivant:

  • estimation de la taille des mailles initiales dans la zone d’intérêt (il est préférable que les tailles dans cette zone soient homogènes) → \({h}_{0}\)

  • donnée de la taille cible de mailles après raffinement de la zone d’intérêt: \({h}_{c}\) (entre \(a/10\) et \(a/40\) )

  • calcul du nombre minimal de raffinements: \(\text{nb\_raff}=E(n)+1\) , avec \(n=\frac{\ln({h}_{0})-\ln({h}_{c})}{\ln(2)}\)

  • calcul de la taille des mailles après raffinement: \(h=\frac{{h}_{0}}{{2}^{\text{nb\_raff}}}\)

  • calcul du rayon de la zone d’intérêt: \(R=5h\)

  • nombre véritable d’itérations de la boucle d’adaptation: \(\text{nb\_iter}=\text{nb\_raff}+1\) .

  • boucle d’adaptation

    • définition de la fissure/interface sur le maillage courant

    • calcul de l’indicateur par zone (RAFF_XFEM/TYPE=”ZONE”,RAYON= \(R\) ).

    • appel à Homard avec CRIT_RAFF_ABS = 0,5 et DIAM_MIN = \({h}_{c}\) .

Remarque:

Dans le cas des maillages dont la taille des mailles n’est pas uniforme dans la zone d’intérêt, on peut utiliser le même algorithme en notant \({h}_{0}\) la plus grande taille des mailles dans cette zone. Mais la formule \(h=\frac{{h}_{0}}{{2}^{\text{nb\_raff}}}\) ne s’applique plus. Donc la taille des mailles après raffinement est inconnue. On ne peut donc pas choisir \(R=5h\) car \(h\) est une inconnue. On choisit alors \(R=5{h}_{c}\) bien que ce choix ne soit pas optimal. On conseille alors après la phase de raffinement de déterminer \(h\) «à la main», puis de dé-raffiner hors de la zone d’intérêt définie par \(R=5h\) . Ceci étant un peu délicat à mettre en œuvre, une macro-commande est en cours de réflexion.

Conseils et recommandations sur l’utilisation de X-FEM#

Enrichissement#

L’influence de la zone d’enrichissement asymptotique est notable. Plus la zone d’enrichissement est étendue, meilleure est la précision (en mécanique de la rupture élastique linéaire). Cependant, on ne peut pas étendre à toute la structure cette zone d’enrichissement car cela ajoute de nombreux degrés de liberté supplémentaires et surtout, cela dégrade fortement le conditionnement de la matrice de rigidité, à tel point que le calcul peut s’arrêter brutalement pour cause de pivot nul. Une étude détaillée de l’influence de la taille de la zone d’enrichissement sur la précision, le taux de convergence de l’erreur et le conditionnement du système est présentée dans [10]. Il en ressort qu’il faut limiter le nombre de couches d’éléments enrichis à sept couches, un bon compromis étant quatre couches.

Le choix de la zone d’enrichissement se fait à l’heure actuelle dans la commande DEFI_FISS_XFEM par le mot-clé TYPE_ENRICHISSEMENT = “TOPOLOGIQUE” ou “GEOMETRIQUE”. Dans le cas de l’enrichissement géométrique, on renseigne soit la valeur du rayon d’enrichissement avec RAYON_ENRI, soit le nombre de couches avec NB_COUCHES; si aucun de ces 2 mot-clé n’est présent un enrichissement sur 4 couches est effectué par défaut.

Paramètres de CALC_G#

L’utilisation de la méthode G-thêta avec X-FEM soulève les mêmes questions quant aux choix des paramètres numériques que pour une fissure maillée: valeurs des rayons de la couronne \({R}_{inf}\) et \({R}_{\sup}\) , type de lissage en 3D (et degré si lissage de type Legendre).

Le fait que la fissure soit maillée (méthode classique) ou pas (méthode X-FEM) ne change pas la manière de procéder. On trouvera donc des conseils complémentaires dans le guide d’utilisation des opérateurs de mécanique de la rupture [13].

Choix de la couronne

D’une manière générale, il ne faut pas que la couronne soit trop proche du fond de fissure (indépendamment de la taille des mailles), mais suffisamment loin des bords de la structure (attention aux structures trouées) pour que l’hypothèse de fissure en milieu infini reste valable. Pour fixer un ordre d’idées, certaines études [14-15] ont montré que le choix \({R}_{inf}=2h\) et \({R}_{\sup}=5h\)\(h\) est la taille d’un élément en fond de fissure, est un choix satisfaisant.

Un calcul est jugé bon lorsque les résultats sont indépendants du raffinement du maillage et indépendants du choix des rayons \({R}_{inf}\) et \({R}_{\sup}\) .

Une fois que la couronne est validée, si on raffine le maillage il vaut mieux garder la même couronne que de choisir une couronne qui dépend de la taille des mailles.

Notons que pour X-FEM et un enrichissement géométrique, il est préférable que le rayon \({R}_{inf}\) soit supérieur au rayon d’enrichissement.

Un mode de calcul automatique des rayons \({R}_{inf}\) et \({R}_{\sup}\) est également proposé par CALC_G. Mais on conseille de bien vérifier que ces valeurs automatiquement calculées conduisent à des résultats indépendants du choix des rayons.

Choix du type de lissage

Deux familles de lissage sont disponibles:

  • le lissage par les polynômes de Legendre: \(G\) (ou \(K\) ) est alors une combinaison linéaire de polynômes de Legendre. Cette solution donne des résultats réguliers et est moins coûteuse en temps de calcul que le lissage de type Lagrange. Les polynômes de Legendre de degré élevé amplifient cependant les erreurs numériques aux extrémités du fond de fissure[13];

  • le lissage de type Lagrange est basé sur les fonctions de forme des éléments linéiques du fond de fissure. Ainsi, s’il y a beaucoup de points le long du fond de fissure, le calcul de \(G\) sera coûteux (car proportionnel au nombre de points le long du fond de fissure). De plus, le résultat sera souvent très irrégulier le long du fond de fissure, du fait de la distance variable entre deux points successifs du fond.

La solution pour améliorer les résultats du lissage de Lagrange et pour diminuer les temps de calcul est de réduire le nombre de points en fond de fissure et de les répartir uniformément. Cela est possible à l’aide du mot clé NB_POINT_FOND de CALC_G. Un rapport de l’ordre de 4 entre le nombre total de points initial et le nombre de points équi-répartis semble un bon compromis.

Conclusion

Il est fortement recommandé de valider son modèle en comparant les résultats obtenus pour différents raffinements de maillage, pour différentes couronnes d’intégration et pour deux types de lissage (par exemple Legendre de degré 5 et Lagrange avec équi-répartition des points du fond).

Paramètres de POST_K1_K2_K3#

Le seul paramètre à choisir est l’abscisse curviligne maximale \(s\) . On conseille de prendre \(s\) supérieure au rayon d’enrichissement. On conseille également de lier le choix de \(s\) à la taille des mailles, par exemple \(s=5h\) . Un mode de calcul automatique de \(s\) est également proposé. Mais on conseille de bien vérifier que la valeur automatiquement calculée conduit à des résultats indépendants du choix de \(s\) .

Pour réduire les temps de calcul avec POST_K1_K2_K3 qui peuvent rapidement devenir prohibitifs, on conseille de limiter le nombre de points de post-traitement à l’aide du mot clé NB_POINT_FOND.

Post-traitement sur plusieurs fonds de fissure#

Dans les calculs X-FEM, plusieurs fonds de fissure peuvent être définis dans la même structure de données FISS_XFEM (commande DEFI_FISS_XFEM). Chaque appel à un opérateur de post-traitement (CALC_G ou POST_K1_K2_K3) permet de calculer \(G\) et \(K\) pour un seul fond à la fois (opérande NUME_FOND). Or dans le cas d’une étude de propagation de fissures avec PROPA_FISS (voir § 33 ), il faut disposer d’une seule table contenant les résultats sur tous les fonds de fissure. Cela est possible par appel aux opérateurs CALC_G ou POST_K1_K2_K3 autant de fois que de fonds de fissure présents, puis par concaténation des tables en une seule table (voir cas-test sslp318a).

Remarque:

Si on veut rester en PAR_LOT=”OUI”, cela nécessite de connaître à l’avance le nombre de fonds de fissure. Dans des cas de propagation complexe où le fond de subdivise en plusieurs fonds ou bien si les fonds se recombinent entre-eux, on ne peut pas connaître à l’avance le nombre de fonds, et il faut alors récupérer ce nombre dans la SD_FISS_XFEM (en PAR_LOT=”NON” avec la commande RECU_TABLE, cf. ssnv192a).

Propagation#

Un calcul de propagation est basé sur trois ingrédients:

  • un critère de propagation (donnant l’incrément d’avancée de la fissure),

  • un critère de bifurcation (donnant l’angle de bifurcation),

  • un algorithme de mise à jour de la fissure.

Pour qu’un calcul de propagation soit correct, il faut que ces trois ingrédients le soient aussi. Les deux premiers ingrédients sont communs aux fissures maillées ou non. Seul le troisième présente des spécificités propres au cadre X-FEM.

Critère de propagation

Usuellement, on utilise une loi de Paris dont les entrées sont des paramètres matériaux, les facteurs d’intensité des contraintes et le nombre de cycles à simuler. Il est donc nécessaire de connaître d’une part ces paramètres matériaux. De plus, la précision et la régularité des facteurs d’intensité des contraintes est un élément clé de la propagation. Une erreur faible (de l’ordre de 1 ou 2 % sur \(\Delta K\) ) peut entraîner des différences importantes sur la durée de vie (figure 48 de [16]). Le nombre de cycles à simuler est normalement un paramètre libre. Cependant, un choix trop faible de ce nombre de cycles pouvant impliquer une propagation d’une longueur très inférieure à un élément, il est donc plus commode de piloter l’avancée non pas en nombre de cycles mais en incrément maximal d’avancée (“DA_MAX”). Il est recommandé de choisir une avancée maximale de 1 ou 2 éléments.

Critère de bifurcation

Une comparaison des différents critères de bifurcation n’a pas encore été faite. Mais il semblerait qu’en 2D, tous les critères de bifurcation se valent, ce qui n’est pas le cas en 3d. Une thèse est en cours sur un modèle de propagation de fissure en fatigue en mode mixte avec le LMT Cachan et AREVA [17].

Algorithme de mise à jour de la fissure

Dans le cadre X-FEM, les fissures étant représentées par des level sets, la mise à jour de la fissure revient à la mise à jour (ou ré-actualisation) des level sets. L’opérateur PROPA_FISS propose 4 méthodes pour cela (cf. § 16 ). Ces quatre méthodes n’ont pas de limite théorique d’utilisation, mais dans la pratique elles ne se valent pas toutes, et elles ont chacune des spécificités.

D’une manière générale, la méthode UPWIND nécessite que le maillage soit régulier. Si ce n’est pas le cas, il est impératif de créer une grille auxiliaire (régulière) et de la définir dans PROPA_FISS.

La méthode GEOMETRIQUEest une méthode qui ne nécessite pas de grille auxiliaire, comme dans le cas de la méthode UPWIND, et utilise seulement le maillage de la structure, à la différence de la méthode MAILLAGE. Son utilisation est donc identique à celle des méthodes SIMPLEXE, UPWIND sans grille auxiliaire.

La méthode SIMPLEXE est une nouvelle méthode qui a été formulée et introduite dans Code_Aster récemment. Elle ne nécessite pas de grille auxiliaire, comme dans le cas de la méthode UPWIND ,Cette méthode s’avère robuste et les premiers résultats montrent de bonnes performances sur des tests complexes qui mettent en défaut les autres méthodes.

Remarque sur le choix de la zone de mise à jour (méthodes UPWIND, SIMPLEXE, et GEOMETRIQUE):

Les mot-clé ZONE_MAJ=”TORE’et RAYON_TORE permettent de limiter la zone de mise à jour des level sets. Attention: dans les cas de fissures avec plusieurs fonds de fissure (par exemple dans le cas d’une fissure de type segment, en 2d, qui possède 2 fonds de fissure), ilne faut pas que le tore englobe les autres fonds de la fissure (même si ces autres fonds se trouvent «en dehors du maillage»). Il faut donc limiter la valeur de RAYON_TOREà une zone «proche» du fond de fissure. On conseille d’utiliser le tore avec la méthode upwind dans le cas d’utilisation de la grille auxiliaire.

En 2d:

Pour un maillage suffisamment fin, les 4 méthodes donnent des résultats très similaires. On pourra se référer à [11] pour des exemples de propagation 2d avec la méthode “MAILLAGE” et à [15] pour des comparaisons entre les trois méthodes en 2d.

En 3d:

En propagation plane, une comparaison entre les quatre méthodes pour la propagation 3d [18] a montré des résultats similaires sur une structure industrielle. Notons toutefois que la méthode “UPWIND” est plus délicate à mettre en place sur des maillages libres en raison de l’ajout d’une grille auxiliaire. On conseille d’utiliser les méthodes SIMPLEXE , et GEOMETRIQUE.

En propagation non-plane, une étude [19] a montré que la méthode “MAILLAGE” n’est plus totalement robuste lorsque la propagation devient vraiment non-plane. Dans ce cas, on conseille les méthodes “UPWIND” ou “SIMPLEXE” et “GEOMETRIQUE”.

On pourra aussi se référer à [12] pour des exemples de propagation 3d plane avec la méthode “MAILLAGE”.

Le cas-test sslv317a présente un cas de propagation hors-plane avec raffinement adaptatif suivant l’évolution du fond de fissure avec la méthode “MAILLAGE”.

Remarque:

Il est aussi possible de mettre à jour les level sets sans passer par PROPA_FISS: en modifiant à chaque pas de propagation les caractéristiques de la fissure à forme imposée, dans DEFI_FISS_XFEM (similaire à la méthodologie PROFAT). Cette technique donne des résultats satisfaisants [16], mais reste limitée aux cas de propagations planes, avec une fissure qui se propage en gardant la même forme (semi-elliptique par exemple).

En résumé:

  • Pour la propagation 2d, il vaut mieux utiliser la méthode MAILLAGE ;

  • Pour la propagation 3d, il vaut mieux utiliser la méthode GEOMETRIQUE ou SIMPLEXE

Robustesse en 2D mixte et 3D plan

Robustesse en 3D mixte

Facilité d’utilisation

Performances

MAILLAGE

++

-

++

SIMPLEXE

++

++

++

++

UPWIND

++

++

++

GEOMETRIQUE

++

++

++

Contact frottement#

L’utilisation du contact-frottement avec la méthode X-FEM est présente dans le code à titre expérimental, et est l’objet de recherches. La prise en compte des termes de frottement n’est pas correcte dans le cas général. En particulier, seules les fissures de faible courbure donneront des résultats corrects.

Par ailleurs, la convergence de la méthode continue est loin d’être systématique. Dans l’état actuel, le choix du schéma d’intégration pour les termes de contact-frottement est un point crucial pour la convergence des simulations X-FEM. Les schémas conseillés sont les schémas contenant les nœuds de l’élément comme points d’intégrations (INTEGRATION=”NOEUD”, “SIMPSON”, “NCOTES” sous le mot-clé CONTACT).

Conclusions#

Ce document rassemble les éléments d’informations disponibles sur la méthode X-FEM dans Code_Aster . Les limites et les possibilités de X-FEM sont rappelées, et des exemples de mise en œuvre dans un cas sans puis avec contact sont présentés.

Dans le futur, ce document sera complété par:

  • l’utilisation d’indicateurs d’erreur pour X-FEM,

  • le post-traitement des termes de contact sur le modèle de visualisation.

Bibliographie#

[1] S. Geniaut, P. Massin, N. Moës, eXtended Finite Element Method, Documentation de Référence de Code_Aster n° [R7.02.12], 2007

[2] S. Geniaut, Opérateur DEFI_FISS_XFEM, Documentation d’Utilisation de Code_Aster n° [U4.82.08], 2007

[3] J. Pellet, Opérateur CREA_CHAMP, Documentation d’Utilisation de Code_Aster n° [U4.72.04], 2007

[4] S. Geniaut, Opérateur MODI_MODELE_XFEM, Documentation d’Utilisation de Code_Aster n° [U4.41.11], 2007

[5] S. Geniaut, Opérateur POST_MAIL_XFEM, Documentation d’Utilisation de Code_Aster n° [U4.82.21], 2007

[6] S. Geniaut, Opérateur POST_CHAM_XFEM, Documentation d’Utilisation de Code_Aster n° [U4.82.22], 2007

[7] S. Geniaut, Analyse avec X-FEM de nocivité d’un défaut en zone singulière des manchettes thermiques des tubulures d’aspersion des pressuriseurs CP0, Note H-T64-2007-02191-FR, 2007

[8] E. Galenne, S. Geniaut, J. Rivière, Prestation DCNS: étude de la nocivité d’une fissure avec la méthode X-FEM, Note H-T64-2007-03094-FR, 2007

[9] S. Geniaut, Utilisation des level sets pour le maillage adaptatif, CR-AMA-07.215, 2007

[10] S. Geniaut, Convergences en mécanique de la rupture: validation des éléments finis classiques et X-FEM dans Code_Aster , Note H-T64-2008-00047-FR, 2008

[11] S. Geniaut, E. Galenne, Méthodologie pour la propagation manuelle de fissure 2D avec X-FEM, CR-AMA-07.196, 2007

[12] E. Galenne, Propagation automatique de fissures 3D avec X-FEM: méthode de projection, CR-AMA-08.269, 2008

[13] I. Debost, G. Debruyne, Y. Wadier, Domaine d’application des opérateurs de mécanique de la rupture du Code_Aster et conseils d’utilisation, Documentation d’Utilisation de Code_Aster n° [U2.05.01], 2003.

[14] E. Galenne, Calcul des facteurs d’intensité des contraintes et propagation de fissures en 3D, Rapport de stage de Dominique Joffin, CR-AMA-08.270, 2008

[15] S. Geniaut, J. Messier, Validation d’un outil de propagation de fissures en 2d avec X-FEM sous Code_Aster , Rapport de stage de M. Fiabane, CR-AMA-09.172, 2009

[16] S. Taheri, J. Cabirol, Propagation de fissure en 3D sous fatigue thermique, remaillage automatique et XFEM, CR-AMA-08.250, 2008

[17] E. Galenne, Étude d’opportunité pour une thèse sur un modèle de propagation de fissure en fatigue en mode mixte avec le LMT Cachan et AREVA, CR-AMA-08.279, 2008

[18] E. Galenne, Étude avec la méthode X-FEM de la propagation par fatigue de deux fissures dans un piquage sous pression, CR-AMA-09.183, 2009

[19] S. Geniaut, Propagation de fissures 3d avec X-FEM sur un benchmark international - Rapport de stage de L. Chappé, CR-AMA-10.222, 2010

[20] J. B. Esnault, Etude expérimentale et numérique en trois dimensions du développement en fatigue d’une fissure déversée dans une tôle mince. Thèse de doctorat de l’Ecole Polytechnique,2014.