Documentation de la bibliothèque MED-fichier V2.3 : Guide d'utilisation - Module "MED_Joint".


Sommaire de la page

Retour à la page de garde du guide utilisateur


Introduction

Qu'est ce qui définit un maillage distribué?

En vue de calculs parallèles, le domaine de calcul est subdivisé en sous-domaines où se répartissent les maillages. Classiquement, chaque sous-domaine sera traité par un seul processeur qui aura uniquement accès aux données des autres sous-domaines par l'intermédiaire de messages.

Du point de vue du stockage, un maillage distribué a la même structure qu'un maillage MED classique mais ses composantes (entités géométrique, familles, groupes) peuvent être réparties sur plusieurs sous-domaines affectés à des processeurs disjoints. Lors de cette distribution certains sommets, faces, arrêtes ou mailles se retrouvent sur la frontière commune de deux sous-domaines. L'ensemble de ces éléments communs à deux sous-domaines constitue un joint. Dans un cadre très général, les éléments communs à deux sous-domaines peuvent apparaître comme :
La notion de joint est assez générale pour permettre de socker ces trois types d'interface. Elle consiste à donner la liste des couples des numéros correspondant des entités en regard vues du domaine local et vues du domaine distant.

Un maillage distribué est donc entièrement déterminé par la donnée
  1. des maillages affectés à chacun des sous-domaines,
  2. par la définition de « joints » - raccord entre les maillages de sous-domaines voisins,
  3. par une numérotation globale optionnelle des entités.

Routines Disponibles

Les routines disponibles permettent de :

Ces routines sont détaillées dans le guide de référence du module "MED_joint".

Modèles de programmation

Créer un joint dans un maillage

La routine MEDjointCr/efjntc permet de créer un joint dans un maillage.

Remarques :

Lire le nombre de joint dans un maillage

La routine MEDnJoint/ efnjnt permet de lire le nombre d'équivalence dans un maillage.

Remarques :

Accéder aux joints dans un maillage

Dès que l'on connaît le nombre de joints, il est possible d'accéder à chacune d'entre eux par l'intermédiaire d'une boucle. Si on a "N" joints, cette boucle ira de 1 à N. A chaque itération, la valeur du compteur de la boucle est un indice permettant l'accès à un joint donné : voir l'exemple n°2 pour plus de détail.

Lire les informations sur un joint

La routine MEDjointInfo/efjnti permet de lire les information sur un joint, à savoir :

Ecrire un tableau de correspondances dans un joint

La routine MEDjointEcr/ efjnte permet d'écrire un tableau de correspondance dans un joint pour deux types d'entités en regard (MED_NOEUD, MED_MAILLE, MED_FACE, MED_ARETE). Si cette entité correspond à un élément, il faut en plus préciser le type géométrique de l'élément. Ce type géométrique peut être :

La définition du tableau de correspondance doit respecter la convention définie dans la rubrique Conventions sur la définition des correspondances dans un joint..

Accéder aux tableaux de correspondances dans un joint

Dans un joint donné, l'accès aux tableaux de correspondances se fait de la manière suivante :

Lire le nombre de correspondances dans un tableau de correspondances

La routine MEDjointnCorres/efjnco permet de lire dans un joint le nombre de correspondance pour un couple de types d'entité (MED_NOEUD, MED_MAILLE, MED_FACE, MED_ARETE) en regard. Si une entité correspond à un élément, il faut en plus préciser le type géométrique des éléments. Ce type géométrique peut être :

Lire un tableau de correspondance dans un joint

La routine MEDjointLire/efjntl permet de lire un tableau de correspondance dans un joint pour un couple de types d'entité (MED_NOEUD, MED_MAILLE, MED_FACE, MED_ARETE) en regard. Si une entité correspond à un élément, il faut en plus préciser le type géométrique de l'élément. Ce type géométrique peut être :

La définition du tableau de correspondance récupéré doit respecter la convention définie dans la rubrique Conventions sur la définition des correspondances dans un joint.

Exemples de programmation

Exemple de création d'un joint dans un maillage

Le programme suivant va :

Accès aux sources :

Exemple de lecture de tous les joints d'un maillage

Le programme suivant offre un exemple de lecture des joints d'un maillage. Ce programme va :

Accès aux sources :

Exemple d'ajout d'une numérotation globale dans un maillage

Le programme suivant va :

Accès aux sources :

Exemple de lecture d'une numérotation globale dans un maillage

Le programme suivant va :

Accès aux sources :

Conventions sur la définition des correspondances dans un joint

Un joint est une liste de correspondances 2 à 2 entre des entités (noeuds, mailles, faces, arêtes) d'un type semblable ou nom. Les correspondances entre entités sont stockées 2 à 2 en mémoire dans un joint : ainsi le tableau de correspondances suivant {1,2,3,4,5,6} appliqué à des entités en regard de type (MED_NOEUD,MED_TRIA3), signifie qu'on a les 3 correspondances suivantes :