Documentation de la bibliothèque MED-fichier V2.3 : Guide d'utilisation - Module "MED_Joint".
|
Retour à la page de garde du guide utilisateur
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 jointure de deux maillages qui se correspondent parfaitement : on parle alors de raccordement conforme
- La jointure de deux maillages de pavage différent : raccordement non conforme
- Le recouvrement de deux maillages qu'il soit conforme ou non.
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
- des maillages affectés à chacun des sous-domaines,
- par la définition de « joints » - raccord entre les maillages de sous-domaines voisins,
- par une numérotation globale optionnelle des entités.
Les routines disponibles permettent de :
- Créer un joint dans un maillage.
- Lire le nombre de joints dans un maillage.
- Lire les informations concernant un joint.
- Ecrire un tableau de correspondances entre binômes d'entités du maillage dans un joint.
- Lire un tableau de correspondances entre binômes d'entités du maillage dans un joint.
- Lire le nombre de couples en correspondance d'un type donné dans un joint.
- Ecrire la numérotation globale associé à un type d'entité pour la repérer sur le domaine global
- Lire la numérotation globale associé à un type d'entité pour la repérer sur le domaine global
Ces routines sont détaillées dans le guide de référence du module "MED_joint".
La routine MEDjointCr/efjntc permet de créer un
joint dans un maillage.
Remarques :
- L'écriture des joints dans un maillage est optionnelle : un maillage
peut contenir de zéro à plusieurs joints.
- Pour chaque joint, il s'agit :
- De lr créer.
- De lui associer des correspondances regroupant des listes de couples d'entités en regard l'une de l'autre.
- D'associer à chacune de ces correspondances les listes de couples en regard souhaitées.
La routine MEDnJoint/ efnjnt permet de lire le nombre
d'équivalence dans un maillage.
Remarques :
- La présence de joints dans un maillage est optionnelle : un maillage
peut contenir de zéro à plusieurs joints.
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.
La routine MEDjointInfo/efjnti
permet de lire les information sur un joint, à savoir :
- Le nom.
- La description.
- Le numéro du sous-domaine en regard.
- le nom des maillages local et distant en regard.
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 :
- Pour les noeuds : 0.
- Pour les mailles : MED_POINT1, MED_SEG2, MED_SEG3, MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
- Pour les faces : MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
- Pour les arêtes : MED_SEG2 et MED_SEG3.
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..
Dans un joint donné, l'accès aux tableaux de correspondances
se fait de la manière suivante :
- Pour chaque couple de types d'entité en regard du maillage :
- Lire le nombre de correspondance portant sur ces deux types d'entités en regard dans le joint.
- Si ce nombre est positif, lire le tableau des 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 :
- Pour les noeuds : 0.
- Pour les mailles : MED_POINT1, MED_SEG2, MED_SEG3, MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
- Pour les faces : MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
- Pour les arêtes : MED_SEG2 et MED_SEG3.
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 :
- Pour les noeuds : 0.
- Pour les mailles : MED_POINT1, MED_SEG2, MED_SEG3, MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
- Pour les faces : MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
- Pour les arêtes : MED_SEG2 et MED_SEG3.
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.
Le programme suivant va :
- Créer le fichier "test29.med".
- Créer dans ce fichier un maillage non structuré.
- Créer dans ce maillage un joint.
- Ecrire dans le joint un tableau de correspondances sur les types en regard (MED_NOEUD,MED_NOEUD).
- Ecrire dans le joint un tableau de correspondances sur les types en regard (MED_NOEUD,MED_TRIA3).
- Fermer le fichier "test29.med".
Accès aux sources :
Le programme suivant offre un exemple de lecture des
joints d'un maillage. Ce programme va :
- Ouvrir le fichier MED dont le nom est passé en argument en mode MED_LECTURE.
- Accéder au premier maillage du fichier.
- Lire le nombre de joints dans ce maillage.
- Pour chaque joint :
- Lire les informations sur le joint.
- Lire tous les tableaux de correspondances composant le joint en
déterminant de quel type d'elément en regard il s'agit.
- Fermer le fichier MED.
Accès aux sources :
Le programme suivant va :
- Ouvrir le fichier passé en paramètre.
- Accéder au premier maillage du fichier.
- Ajouter sur ce maillage une numérotation globale sur les noeuds.
- Fermer le fichier passé en paramètre.
Accès aux sources :
Le programme suivant va :
- Ouvrir le fichier passé en paramètre.
- Accéder au premier maillage du fichier.
- Lire sur ce maillage une numérotation globale sur les noeuds.
- Fermer le fichier passé en paramètre...
Accès aux sources :
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 :
- Entre le sommet 1 et le triangle numéro 2.
- Entre le sommet 3 et le triangle numéro 4.
- Entre le sommet 5 et le triangle numéro 6.