4. Affectation du contact#

Au moment de la rédaction de ce document, l’affectation du contact sur les lèvres des fissures X-FEM se fait par l’intermédiaire de l’opérateur DEFI_CONTACT, sous le mot clé ZONE.

Le plus important pour l’implémentation X-FEM est le fait que les SD dédiées au contact, pour toute analyse avec Code_Aster, ont été unifiées à partir de la version 9.0.22 et que c’est ici qu’elles sont enrichies pour l’approche grands glissements avec X-FEM .

Lors de la restitution 9.1.6 cet opérateur a été enrichi avec les routines qui concernent l’algorithme LBB: XLAGSP, XLAGSC, XSELLA, XRELL1, etc. (voir [R7.02.12] pour plus de détails sur l’algorithme LBB), routines qui se trouvaient avant dans l’opérateur MODI_MODELE_XFEM.

La Figure 3 présente l’arbre d’appel actuel (en tenant compte aussi de la surcharge « grands glissements »). En effet, c’est ici que la première routine dédiée à cette nouvelle approche apparaît – XMACON. On crée alors la SD CHAR//”.CONTACT.MAESCL” contenant un certain nombre d’informations relatives aux mailles de contact X-FEM (voir [D4.06.14] pour la description de cette SD). On traite le contact par la méthode continue et on suit exactement la même démarche que celle de la routine MMACON pour le cas classique, sauf que dans la SD ci-dessus mentionnée on a moins de positions occupées. Toujours dans cette routine, XMACON, on dimensionne l’objet CHAR//”.CONTACT.TABFIN” qui sera rempli plus tard, lors de l’appariement réalisé par la routine XAPPAR (voir l’opérateur STAT_NON_LINE). Enfin, deux nouvelles routines, XNEUVI et XBARVI, permettent la création des SD FISSi//”.CNCTE”. Chacune de ces SD stocke les informations utiles, sur les groupes d’arêtes vitales connectées entre elles, à l’amélioration de l’intégration des contributions de contact (voir [R5.03.53]). Plus de détails sur toutes les SD relatives au contact avec X-FEM sont aussi fournis dans la description des routines Fortran (voir CALICO ci-dessous).

Ci-dessous on donne un exemple d’introduction du contact dans le fichier de commande pour une analyse X-FEM avec l’approche grands glissements. Attention, le catalogue de la commande (defi_contact.capy) a été enrichi pour permettre la définition du nombre maximal d’itérations sur la boucle géométrique (ITER_GEOM_MAXI) ainsi que le niveau de tolérance pour la projection des points de contact sur la surface maître (TOLE_PROJ_EXT), qui a la même fonction que dans le cas classique.

CTXFEM = DEFI_CONTACT(MODELE=MODELEK,

FORMULATION=”XFEM”,

FROTTEMENT=”COULOMB”,

ITER_FROT_MAXI=10,

ITER_CONT_MAXI=10,

ITER_GEOM_MAXI=10,

ZONE=(_F(INTEGRATION=”NOEUD”,

COULOMB=0.5,

COEF_REGU_FROT=100,

COEF_REGU_CONT=100.,

TOLE_PROJ_EXT =0.0,

CONTACT_INIT=”OUI”,

FISS_MAIT = FISS1,

ALGO_LAGR=”VERSION2”,),

_F(INTEGRATION=”NOEUD”,

COULOMB=0.5,

COEF_REGU_FROT=100,

COEF_REGU_CONT=100.,

TOLE_PROJ_EXT =0.0,

CONTACT_INIT=”OUI”,

FISS_MAIT = FISS2,

ALGO_LAGR=”VERSION2”,), ),)

Description des routines Fortran:

OP0030 – la routine principale de l’opérateur DEFI_CONTACT. On appelle d’ici CALICO.

CALICO – la routine qui lance la création et le remplissage des SD liées aux contact pour la méthode continue. On recommande particulièrement la lecture des commentaires au début de cette routine parce qu’on trouve ici la description détaillée de tous les objets (la documentation officielle [D4.06.14] n’étant pas encore mise à jour).

SYMECO - routine pour la détermination du nombre de zones de contact pour l’appariement symétrique et le remplissage de la SD associée CHAR//”.CONTACT.SYMECO”. Cette SD va être commune pour toutes les formulations (continue, discrète, X-FEM).

CARACO – routine chapeau pour récupérer les caractéristiques de contact introduites par l’utilisateur. On crée ici les SD CHAR//”.CONTACT.FORMCO” et CHAR//”.CONTACT.METHCO”, la dernière étant aussi remplie ici.

CAZOCO – routine de lecture des caractéristiques de contact pour chaque zone. On remplit ici CHAR//”.CONTACT.FORMCO”.

CMFXSD – routine chapeau pour le lancement de la création des SD de définition du contact pour les trois formulations (continue, discrète, X-FEM).

CARACX – création des SD de définition du contact pour la formulation X-FEM.

CAZOCX – routine spécialisée pour la formulation X-FEM (de la même manière existe CAZOCD pour la formulation discrète et CAZOCC pour la formulation continue). Ici sont remplies, pour le cas X-FEM, les SD CHAR//”.CONTACT.ECPDON”, CHAR//”.CONTACT.CARACF” et , CHAR//”.CONTACT.TOLECO” ayant la même structure que dans le cas classique, ainsi que , CHAR//”.CONTACT.MODELX” qui stocke le nom du modèle X-FEM utilisé par le contact. On ajoute aussi l’information d’existence du contact glissière dans CHAR//”.CONTACT.METHCO”.

LIMACO – routine chapeau pour la lecture des mailles de contact et la création des SD qui les concernent. On s’intéresse ici seulement aux appels des routines pour la formulation continue dans le cas X-FEM.

XMACON – nouvelle routine (similaire à MMACON pour le cas classique) pour la lecture des mailles de contact X-FEM et la création des SD CHAR//”.CONTACT.MAESCL” et CHAR//”.CONTACT.TABFIN”. La première est remplie ici tandis que la deuxième est juste dimensionnée.

XMELIN - nouvelle routine appelée par XMACON (semblable à MMELIN de la méthode continue) qui retourne le nombre de points d’intégration en fonction du type d’élément de contact et du schéma d’intégration de contact.

LIMACX – routine pour la lecture des fissures en contact. Ici sont créés et remplis deux nouveaux objets spécifiques pour la X-FEM: CHAR//”.CONTACT.XFIMAI” (contient, pour chaque zone de contact, le nom de la SD FISS_XFEM) et CHAR//”.CONTACT.NDIMCO” (la dimension du problème).

XCONTA – routine de préparation des données relatives au contact, concernant spécifiquement les relations linéaires à imposer pour satisfaire la condition LBB. On crée ici deux SD: CHAR//”.CONTACT.XNRELL” (stocke les noms des quatre objets nécessaires pour les relations linéaires créées par XRELL1 ou XRELL2) et CHAR//”.CONTACT.XNBASC” (stocke le nom du champ nodal pour la base covariante).

XDEFCO – routine chapeau pour le lancement du choix de l’espace des Lagrangiens de contact.

XLAGSP – préparation des objets de travail pour l’implémentation de l’algorithme LBB. On remplit la base covariante (seulement pour les points de contact correspondant aux éléments complètement coupés) SD FISSi//”.BASCO” .

XLAGSC – routine de lancement effectif pour la sélection des nœuds et l’écriture des relations d’égalité et linéaires pour l’algorithme LBB.

XSELLA – sélection des nœuds porteurs de ddl de contact qui seront impliqués dans les relations pour la LBB.

XRELL1 – création des listes de relations à imposer pour le respect de la condition LBB dans le cas d’application du premier algorithme: FISSi//”.LISEQ”, FISSi//”.LISRL” et FISSi//”.LISCO” .

XRELL2 – fait la même chose que XRELL1 mais dans le cas de l’application du deuxième algorithme. Rappelons que pour la formulation aux nœuds sommets, il est préférable d’utiliser ce deuxième algorithme.

XNEUVI – appelé par XRELL2, crée pour chaque fissure les SD FISSi//”.CONNECTANT” et FISSi//”.CONNECTES”. La première SD stocke les nœuds ayant un score strictement plus grand que 1 (le score correspond au nombre d’arêtes vitales connectées au nœud à la fin de l’algorithme), chacun de ces nœuds définissant alors un groupe d’arêtes vitales, où le nombre d’arêtes vitales est égal au score du nœud “vital”. La deuxième SD stocke les nœuds de chaque groupe qui, appariés à leur nœud vital, forment les couples de nœuds définissant les arêtes du groupe. Ces 2 SD sont temporaires. Elles sont utilisées puis détruites dans XBVARVI.

XLAG2C – routine permettant d’écrire pour chaque fissure la SD FISSi//”.LISEQ_LAGR” correspondant à la SD FISSi//”.CONTACT.LISEQ”. Cette SD stocke dans le cas de mailles multi-fissurées, les couples de numéros de Lagrangien qu’il faut associer lors de l’imposition des relations d’égalités.

XBARVI – appelé par XCONTA, c’est ici que l’on renseigne les arêtes vitales et les groupes d’arêtes vitales. On remplit la 5ème composante de la SD MODELE//”.TOPOFAC.AI”, qui donne l’information vitale ou pas de l’arête intersectée, en se servant de la liste des nœuds formant les arêtes vitales. Et on crée pour chaque fissure la SD à 4 composantes FISSi//”.CNCTE”, qui renseigne sur les groupes d’arêtes vitales. Elle stocke pour chaque arête appartenant à un groupe, son numéro de groupe, son numéro d’arête dans le groupe, son numéro de maille, son numéro d’arête locale dans la maille. Pour faire cela on utilise les SD FISSi//”.CONNECTANT” et FISSi//”.CONNECTES, que l’on détruit à la fin de la routine.

_images/Object_32.png

Figure 3. L’arbre d’appel de l’opérateur DEFI_CONTACT pour le mot clé FORMULATION=’XFEM’