6. Calcul des contributions de contact#

Pour un problème de contact traité avec la méthode continue, la résolution se fait avec 5 boucles imbriquées dans l’opérateur STAT_NON_LINE [U4.51.03]:

  • boucle sur les pas de charge,

  • boucle géométrique,

  • boucle sur les seuils de frottement,

  • boucle de contraintes actives,

  • itérations de Newton.

Pour comprendre le fonctionnement général de l’opérateur STAT_NON_LINE, on recommande vivement la lecture du document [D9.05.01]. La Figure 5 représente l’arbre d’appel de cet opérateur pour le cas spécifique d’un problème de contact X-FEM. On peut ainsi trouver sur cette figure les emplacements des boucles mentionnées ci-dessus.

La Figure 5 permet aussi de repérer où se situent les développements informatiques majeurs effectués pour l’approche grands glissements avec X-FEM , à savoir :

  • l’arbre d’appel de la réactualisation géométrique (présenté Figure 6),

  • l’arbre d’appel du calcul des contributions de contact-frottement (présenté Figure 7).

  • l’arbre d’appel de la réactualisation des statuts de contact (présenté Figure 8),

Voilà, ci-dessous, un exemple d’appel à l’opérateur STAT_NON_LINE pour une analyse X-FEM:

UTOT1=STAT_NON_LINE( MODELE=MODELEK,

CHAM_MATER=CHAMPMAT,

EXCIT=( _F(CHARGE=CTXFEM,),

_F(CHARGE=CHXFEM,),

_F(CHARGE=CH1,FONC_MULT=VAR1),),

COMPORTEMENT=_F(RELATION=”ELAS”,

GROUP_MA=”SURF”,),

INCREMENT=_F(LIST_INST=L_INST,),

CONVERGENCE=_F(ITER_GLOB_MAXI=8,

RESI_GLOB_MAXI=1E-06,),

SOLVEUR=_F(METHODE=”MUMPS”,

PCENT_PIVOT=500,),

ARCHIVAGE=_F(CHAM_EXCLU=”VARI_ELGA”,),

INFO=1,);

La description des routines Fortran:

OP0070 - un seul changement ici: l’appel à la routine de mise à zéro des Lagrangiens de contact. La routine XMISZL fait, pour le cas X-FEM, la même chose que l’ancienne routine MISAZL dans le cas standard du contact avec la méthode continue.

NMCTGE – routine chapeau qui lance le calcul de la géométrie des facettes de contact (XREACG) et l’appariement (XAPPAR).

XREACG – nouvelle routine qui réactualise la position des points d’intersections formant les facettes de contact. On utilise la SD MODELE//”.TOPOFAC.OE”, contenant la position initiale des points d’intersection, pour calculer les SD MODELE//”.TOPOFAC.GE”, et MODELE//”.TOPOFAC.GM”, en appelant XGECFI. Ces 2 dernières SD correspondent respectivement aux coordonnées réactualisées des côtés esclaves et maîtres.

XGECFI – lance le calcul de la nouvelle géométrie des facettes de contact (esclave et maître). On passe par un calcul élémentaire (TE0519 avec l’option « GEOM_FAC »).

TE0519 – calcule la nouvelle géométrie des points d’intersection formant les facettes de contact (esclave et maître). On rentre avec la géométrie initiale des facettes, stockée dans MODELE//”.TOPOFAC.OE”. On sort avec les géométries réactualisées esclave et maître dans MODELE//”.TOPOFAC.GE” et MODELE//”.TOPOFAC.GM”. La réactualisation est effectuée à chaque début de boucle géométrique. Elle est utilisée ensuite pour apparier les points de contact esclaves aux mailles maîtres.

XAPPAR – nouvelle routine pour l’appariement dans le cas X-FEM. C’est une routine complexe, qui appelle à son tour d’autres routines (voir l’arbre d’appel). Le principe est de boucler sur la zone de contact, ensuite sur les mailles esclaves, puis sur les facettes de contact de la maille esclave, et enfin sur les points de contact appartenant à la facette de contact. Pour chaque point de contact on remplit CHAR//”.CONTACT.TABFIN” avec des informations sur le point de contact esclave et sur la maille maître trouvée, afin de créer l’appariement. A retenir: il doit y avoir autant de mailles tardives que de points de contact.

MMGAUS – calcul les coordonnées de référence du point d’intégration dans la facette de contact.

XCOPCO – nouvelle routine appelée par XAPPAR pour calculer les COordonnées réelles d’un Point de COntact à partir de la connaissance de ses coordonnées de référence (déterminées avec l’ancienne routine MMGAUS) et des coordonnées des points d’intersections de la facette de contact de la maille esclave.

XMREPT – nouvelle routine pour la REcherche du PoinT d’intersection sur le côté maître, le plus proche du point de contact courant. Elle fournit un certain nombre d’informations sur ce point d’intersection: son numéro local, le numéro local de l’arête (ou du nœud si la fissure passe par un nœud) qui le contient, et le numéro global de la maille qui le contient. Ces informations vont nourrir la recherche du projeté sur la lèvre maître. Notons que cette étape permet de restreindre le nombre de facettes sur lesquelles le point esclave sera projeté dans XMREMA, afin de gagner en performances. Dans certains cas (même en éléments finis classiques) cette sélection est trop restrictive et conduit à des résultats faux. Il faudrait revoir cette approche.

XMREMA – nouvelle routine pour REchercher la MAille maître la plus proche connaissant le point d’intersection maître le plus proche du point de contact et pour faire ensuite la projection. On sort d’ici avec des informations essentielles sur le projeté et la maille maître (coordonnées de référence, numéro global de la maille maître, la base tangente au point de projection, l’information sur la projection hors de la surface maître, etc.). En 2D, l’unique facette de contact associée à la maille maître est toujours un SEG2. En 3D, la facette maître associée est toujours un TRI3, mais comme il y a plusieurs facettes par maille, il est aussi important de déterminer le numéro de facette. Dans le cas multi-fissure, on détermine aussi le numéro local de la fissure correspondant à la zone de contact dans l’élément maître. Ce numéro à été précédemment déterminé dans XMACON et stocké dans la SDCHAR//”.CONTACT.MAESCL”.

MMPROJ – ancienne routine de la méthode de contact FEM, qui réalise la projection d’un point de contact sur une maille donnée. Pour la méthode X-FEM, cette maille est « fictive » et définie par les coordonnées réactualisées des points d’intersections définissant la facette de contact maître.

XMCOOR – nouvelle routine qui calcule les coordonnées de référence d’un point de contact dans la maille parent (esclave ou maître) connaissant les coordonnées de référence de ce point dans la facette de contact, et les coordonnées de référence des points de la facette de contact dans la maille parente.

XMRLST – nouvelle routine qui calcule à partir de la level set tangente, la racine carrée de la distance au fond de fissure pour les points d’intégrations esclaves et maitres. Cela est utile lorsque l’élément est enrichi par les fonctions Crack Tip.

XPIVIT– nouvelle routine qui détermine si le point d’intégration est vital ou pas. On regarde si le point de contact est sur une arête, et si c’est le cas, on lui donne le statut de l’arête en question (statut stocké dans TOPOFAC.AI). On sort d’ici avec l’information «point vital» ou «point non vital», ainsi que le numéro de groupe et numéro d’arête de ce groupe si le point de contact se situe sur une arête appartenant à un groupe d’arêtes connectées.

NMCTCL – routine chapeau pour la préparation des données afin de lancer le calcul des contributions de contact. Des modifications ont été opérées afin de lancer d’ici la création de la LIGREL (LIste de GRoupes d’ELéments de même type) contenant les éléments hybrides de contact (routine XMLIGR) et des cartes de contact (routine XMCART).

XMLIGR – nouvelle routine pour la création de la LIGREL pour les nouveaux éléments tardifs de contact. C’est ici que les éléments de contact sont créés par l’association entre une maille esclave et une maille maître. On les range ensuite dans des GREL puis dans une LIGREL. La routine est semblable à l’ancienne routine MMLIGR. Les mailles tardives 2D de type QU8QU4 et TR6TR3 sont relatives à l’ancienne formulation (P1-P2). Elles seront résorbées ultérieurement. Pour la nouvelle formulation,on dispose des mailles tardives 2D QU4QU4, TR3TR3,QU4TR3 et TR3QU4 afin de traiter le contact en linéaire (P1-P1) ainsi que des mailles QU8QU8 et TR6TR6 pour le semi-quadratique (P2-P1). En 3D seules les mailles HE8HE8, PE6PE6 et TE4TE4 sont disponibles et le traitement du contact n’est possible qu’en linéaire (P1-P1). Enfin pour traiter les différents types d’éléments x-fem, chaque maille tardive décrite ci-dessus (uniquement pour le P1-P1) est associée à plusieurs éléments tardifs (spécificité de X-FEM). Ainsi on dispose en plus de l’élément \(H-H\) des éléments \(H-\mathit{HCT}\) , \(\mathit{HCT}-H\) , \(\mathit{HCT}-\mathit{HCT}\) et enfin \(\mathit{CT}\) (qui est tout seul car on le traite en petits glissements pour le moment) pour traiter le contact grand glissement en pointe de fissure. Dans le cas de la multi-fissuration, il est aussi possible d’apparier des éléments ne possédant pas le même nombre de degrés de liberté Heaviside. Ainsi il est aussi possible de traiter les éléments \(H-{H}_{2}\) , \(H-{H}_{3}\) , \(H-{H}_{4}\) , \({H}_{2}-H\) , \({H}_{2}-{H}_{2}\) , \({H}_{2}-{H}_{3}\) , \({H}_{2}-{H}_{4}\) , \({H}_{3}-H\) , \({H}_{3}-{H}_{2}\) , \({H}_{3}-{H}_{3}\) , \({H}_{3}-{H}_{4}\) , \({H}_{4}-H\) , \({H}_{4}-{H}_{2}\) , \({H}_{4}-{H}_{3}\) , \({H}_{4}-{H}_{4}\) . Le nombre de types d’éléments multi-Heaviside étant élevé (car il faut aussi les générer pour chaque type de maille), les bibliothèques des éléments multi-Heaviside tardifs ont été générées à l’aide d’un script python.

XMELEL – fournit des informations sur l’élément tardif de contact. Cette routine fonctionne pour tous les éléments énoncés dans XMLIGR. Vu le nombre important d’éléments, cette routine retourne plusieurs informations sur l’élément tardif (type de mailles esclave et maître, type d’élément esclave et maître, type de modélisation) afin de reconstruire le type d’élément de manière dynamique dans XMLIGR.

XMCART – routine pour créer les cartes de contact (champs qui contiennent des informations sur les éléments de contact). On utilise des cartes mais il faudrait reprogrammer tout cela pour plutôt utiliser des CHAM_ELEM comme dans le cas classique (routine MMCHML). Dans le cas classique on ne crée qu’un seul champ. En X-FEM on crée plusieurs cartes car on doit fournir au calcul élémentaire des informations sur la topologie des éléments X-FEM. De plus, certaines de ces informations doivent être fournies à la fois pour la maille esclave mais aussi pour la maille maître. On crée la carte RESOCO//”.XFPO”, qui est équivalente au CHAM_ELEMRESOCO//”.CHML” dans le cas classique ; la carte RESOCO//”.XFST” qui stocke les statuts d’enrichissement des nœuds des mailles esclave et maître ; la carte RESOCO//”.XFPI” contenant les positions des points d’intersection esclaves dans les coordonnées de référence; la carte RESOCO//”.XFAI” contenant les informations sur les arêtes intersectées esclaves ; la carte RESOCO//”.XFCF’contenant les informations sur la connectivité des facettes de contact esclaves; dans le cas où au moins un des éléments maître ou esclave est multi-fissuré, on ajoute les 2 cartes supplémentaires: RESOCO//”.XFHF” qui contient la valeur des fonctions Heaviside correspondant aux enrichissements des côtés maître et esclave et RESOCO//”.XFPL” qui contient la place des Lagrangiens associés aux nœuds dans la matrice.

NMELCM – routine pour lancer le calcul des matrices élémentaires de contact frottement. Elle est commune aux approches de contact continue (FEM, X-FEM HPP, X-FEM GG).

NMELCV – routine pour lancer le calcul des seconds membres de contact frottement. Elle est commune aux approches de contact continue (FEM, X-FEM HPP, X-FEM GG).

TE0366 – nouvelle routine de calcul élémentaire pour les contributions de contact frottant à la matrice de rigidité, dans l’approche grands glissementsavec X-FEM . Un grand nombre de routines (présentées par la suite) sont appelées ici. La plupart sont appelées également dans les TE0367 et TE0363.

TE0367 - nouvelle routine de calcul élémentaire pour les contributions de contact frottant au second membre, dans l’approche grands glissementsavec X-FEM .

XMELET – nouvelle routine pour récupérer des informations sur l’élément de contact courant. On rentre avec le nom de l’élément tardif. On sort avec les noms des mailles esclave, maître; le numero de la facette de contact; les nombres de ddls, esclaves et maîtres, de la facette de contact; le nombre total de ddls; l’information sur le type de formulation (nœuds milieu ou nœuds sommets).

XMPINT – nouvelle routine pour le calcul des coordonnées réelles des points d’intersection constituant la facette de contact.

XTFORM – calcule les fonctions de formes et ses dérivées du point d’intégration à l’aide des coordonnées paramétriques dans l’élément parent. Elle est appelée par les TE0366 et TE0367, les dérivées des fonctions de forme servent ensuite à calculer le jacobien du point de contact dans XMMJAC.

XLACTI – calcule le statut actif ou non des Lagrangiens de contact. Un nœud est actif si il appartient à une arête coupée ou si il est directement coupé par la fissure.

XMOFFC – répartit les fonctions de formes des nœuds ou les Lagrangiens sont à éliminer sur les nœuds actifs.

XMMJAC – nouvelle routine utilisée pour calculer le jacobien du point de contact.

MMNORM – ancienne routine pour calculer la normale sortante au projeté du point de contact. Attention, en 3D on n’appelle pas MMNORM, car les facettes sont orientées dans l’autre sens pour la méthode de contact X-FEM par rapport à la méthode de contact FEM.

XTCALN – calcule le vecteur normal.

PROVEC – ancienne routine qui sert à faire le produit vectoriel des vecteurs tangents pour obtenir le vecteur normal en 3D.

NORMEV – ancienne routine qui normalise un vecteur. Elle sert à normaliser le vecteur normal en 3D, mais elle est aussi appelée pour projeter le vecteur frottement sur la boule unité dans le cas glissant du frottement.

XOULA – routine propre à X-FEM, qui sert pour la connectivité des ddl de contact. Elle ne sert plus pour la formulation aux nœuds sommets.

XPLMA2 – nouvelle routine qui fournit la place d’un ddl de contact dans la matrice de rigidité élémentaire, correspondant aux éléments tardifs X-FEM. La routine correspondante en HPP est XPLMAT.

XTLAGM – calcule les Lagrangiens de contact et de frottement pour le point de contact.

XTLAGC – calcule le Lagrangien de contact pour le point de contact

XTLAGF – calcule le Lagrangien de frottement pour le point de contact

XTDEPM – calcule les incrément de déplacement depuis le pas de temps précédent du point de contact esclave et de son projeté sur la facette maître.

XMMJEU – nouvelle routine appelée par les TE0366 et TE0367 pour calculer le jeu entre le point de contact et son projeté. Au cours des itérations de Newton, on a accès aux déplacements totaux du pas de temps précédent (idepl) et aux incréments de déplacements depuis le pas de temps précédent jusqu’au Newton en cours (idepm). La position est donc calculée en faisant géométrie initiale + déplacement total du pas de temps précédent + incrément jusqu’au Newton en cours.

XMMJEC – nouvelle routine appelée par le TE0363 pour calculer le jeu entre le point de contact et son projeté. Lors de la réactualisation des statuts de contact, on a accès aux déplacements totaux (idepl): la position est donc calculée en faisant géométrie initiale + déplacement total.

TTPRSM – ancienne routine qui calcule \({g}_{\tau}\) , \(∣∣{g}_{\tau}∣∣\) et \([{P}_{\tau}]\) .

XMMAA1 – nouvelle routine pour le calcul des termes \({A}_{u}\) , \(A\) et \({A}^{T}\) (cas avec contact) de la matrice de rigidité due au contact. Les expressions des termes de contact-frottement dans la matrice de rigidité et dans le second membre sont données dans la documentation [R5.03.53].

XMMAA0 – nouvelle routine pour le calcul des termes dus à la modélisation du contact dans la matrice de rigidité (cas sans contact).

XMMAB0 - nouvelle routine pour le calcul des termes dus à la modélisation du contact dans la matrice de rigidité (cas du contact sans frottement).

XMVEC1 - nouvelle routine pour le calcul des termes du second membre (cas avec contact).

XMVEC0 - nouvelle routine pour le calcul des termes du second membre (cas sans contact).

XMMAB2 - nouvelle routine pour le calcul des termes \(\mathit{Bu}\) , \(B\) , \(\mathit{BT}\) et \(F\) dans la matrice de rigidité due au frottement (cas du contact frottement glissant).

MKKVEC – ancienne routine qui applique une transformation à un vecteur. Cette routine est appelée par XMMAB2, elle est utile pour calculer les matrices de frottement dépendantes de \(K({g}_{\tau})\) .

XMMAB1 - nouvelle routine pour le calcul des termes \(\mathrm{Bu}\) , \(B\) , \(\mathrm{BT}\) dans la matrice de rigidité due au frottement (cas du contact frottement adhérent).

XMMAB0 - nouvelle routine pour le calcul du terme de frottement \(F\) dans la matrice de rigidité due au frottement (cas du contact sans frottement ou cas sans contact).

XMVEF1 - nouvelle routine pour le calcul des termes de frottement \({L}^{\mathrm{1frott}}\) et \({L}^{\mathrm{3frott}}\) du second membre (cas du contact frottant).

XMVEF0 - nouvelle routine pour le calcul du terme de frottement \({L}^{\mathrm{3frott}}\) du second membre (cas sans contact et cas sans frottement).

XTEDD2 – nouvelle routine qui élimine les degrés de liberté Heaviside et Crack Tip en trop pour les contributions de contact en grands glissements X-FEM. Elle élimine aussi les ddls de contact en trop.

_images/Object_6.png

Figure 5. L’arbre d’appel de l’opérateur STAT_NON_LINE pour le traitement d’un problème de contact en grands glissements avec XFEM.

_images/Object_7.png

Figure 6. L’arbre d’appel lors d’un réappariement géométrique pour un problème de contact en grand glissement avec X-FEM.

_images/Object_8.png

Figure 7. L’arbre d’appel pour le calcul des contributions de contact dans la matrice et le second membre pour un problème de contact en grand glissement avec X-FEM.