• Aucun résultat trouvé

Opérateur CREA_MAILLAGE, création du maillage de calcul

4.1.1 Le cahier des charges

Le socle théorique nous impose de satisfaire l’Hypothèse 3.2. Deux approches sont alors envisageables : réunir les mailles de la zone de contact esclave en patchs (macro-mailles) (cette méthode est facilement réalisable dans le cas 2D et beaucoup plus complexe à mettre en oeuvre dans le cas 3D) ou garder une trace des mailles de la zone de contact esclave données par l’utilisateur pour définir le macro-maillage et raffiner localement ce maillage afin d’obtenir un maillage de calcul satisfaisant l’hypothèse. Dans un souci de simplicité, de cohérence entre l’approche 2D et l’approche 3D, et pour ne pas déraffiner la condition de contact, on utilisera la méthode de raffinement local dans les cas 2D et 3D. En effet, sachant que la méthode proposée repose déjà sur une gestion du contact uniquement en moyenne, il convient de laisser à l’utilisateur un contrôle sur la taille des macro-éléments en utilisant la trace sur la zone de contact de son maillage comme macro-maillage après raffinement local.

Le nouveau mot-clef facteur CREA_PATCH de l’opérateur doit alors satisfaire les points suivants :

– stocker les informations relatives au macro-maillage,

– définir un couple maillage de calcul macro-maillage satisfaisant l’hypothèse 3.2, – si le maillage doit être raffiné, utiliser un raffinement local (non communicant à tout

l’objet esclave) et créer un maillage conforme conservant le même type de mailles (TRIA 3 découpé en TRIA 3 etc...) On suppose que l’utilisateur a choisi le “bon” type d’élément pour son problème,

– mettre à jour les groupes de mailles si nécessaire.

Dans cette première version de l’implémentation de la méthode, on considère uniquement les mailles 2D TRIA 3, TRIA 6, QUAD 4, et QUAD 8 , et les mailles 3D TETRA 4, TETRA 10, HEXA 8, HEXA 20 et HEXA 27. On exclut dans cette première version de l’implémentation le cas des maillages pouvant contenir des prismes ou des pyramides au dessus de la zone de contact.

4.1.2 Réalisation

4.1.2.1 Stockage du macro-maillage

Le macro-maillage sera caractérisé par 3 objets, une collection dispersée .PATCH caractéri- sant chaque macro-maille, et deux connectivités inverses .CONOPA, et.COMAPA, permettant de connecter un nœud (respectivement une maille) à sa macro-maille. Ces 3 objets seront rajoutés comme attributs à la structure de donnée sd_maillage. La collection .PATCH pos- sède nbpatch+1 éléments (où nbpatch est le nombre de macro-mailles), le premier élément de la collection contient des informations sur le nombre de macro-mailles, les indices de

4.1. Opérateur CREA_MAILLAGE, création du maillage de calcul 87 début et fin de chaque zone de contact ; les autres éléments caractérisent les macro-mailles. Chaque macro-maille est caractérisée par un type, le numéro du nœud portant le DDL interne, et le numéro des nœuds internes supplémentaires si nécessaire (voir cas QUAD 4, HEXA 8 et HEXA 20). Les mailles qui composent chaque macro-maille sont retrouvées en parcourant soit le groupe de mailles définissant la surface esclave mise à jour, soit la connectivité inverse .COMAPA.

4.1.2.2 Le cas 2D

Dans le cas 2D, l’interface de contact esclave est “1D”. Cette dernière est maillée soit en SEG 2 soit en SEG 3. En premier lieu, on remarque que le SEG 3 associé à lui- même (macro-maille) satisfait l’hypothèse du DDL interne. Il suffit alors de renseigner la collection .PATCH et les nouvelles connectivités de la sd_maillage directement.

Dans le cas SEG 2, il existe deux découpes selon le type de la maille de corps associée. Dans le cas TRIA 3, on ajoute un nœud au centre de la maille SEG 2 et on reconstruit les deux nouveaux éléments de peau et les deux nouveaux éléments de corps tout en renseignant la collection.PATCH et les connectivités .COMAPA et .CONOPA. Dans le cas QUAD 4. Étant donné que l’on souhaite procéder à un découpage conforme, on ajoute deux nœuds dans la maille SEG 2, et deux nœuds dans la maille QUAD 4. On peut ensuite reconstruire les trois nouveaux éléments de peau et les 4 nouveaux éléments de corps tout en renseignant les informations caractérisant la macro-maille. Les résultats de ces opérations sont présentés dans la Figure 4.1.

Figure 4.1 – Résultats de l’opérateur CREA_PATCH en 2D, les macro-mailles associées à chaque découpe sont surlignées en rouge.

Remarque 4.2. On portera une attention particulière à l’orientation des nouvelles mailles créées, à la conformité du maillage de calcul créé ainsi qu’à l’actualisation des groupes de

maille. Cependant, on ne peut pas actualiser les groupes de nœuds. En effet, il n’est pas possible de déterminer si un nouveau nœud rentre dans un groupe de nœuds déjà défini ou non.

4.1.2.3 Le cas 3D

Dans le cas 3D, l’interface de contact esclave est “2D”. Cette dernière peut être maillée en TRIA 3, TRIA 6, QUAD 4, QUAD 8 et QUAD 9. Comme dans le cas 2D, la maille QUAD 9 associée à elle même satisfait l’hypothèse du DDL interne ; on peut donc directement renseigner les structures de données contenant les informations relatives au macro-maillage sans raffiner localement. Dans les autres cas, on utilisera deux découpes types, l’une pour les cas tétraédriques, et l’autre pour les cas hexaédriques. Ces deux découpes sont conformes dans le sens où l’on découpe un élément en générant le même type d’éléments. Les résultats de ces opérations sont présentés dans la Figure 4.2.

Figure 4.2 – Résultats de l’opérateur CREA_PATCH en 3D, les macro-mailles associées à chaque découpe sont grisées.

4.1.2.4 Quelques remarques sur le découpage

La fonctionnalité CREA_PATCH de l’opérateur doit être capable de traiter : – différents types de maille à l’intérieur d’une même zone de contact, – le multi-zone de contact,

– le cas des mailles “pathologiques” qui possèdent plusieurs éléments de peau dans la même zone de contact ce qui oblige à effectuer un découpage particulier.

4.2. Opérateur DEFI_CONTACT, définition des espaces fonctionnels 89