Documentation de la biliothèque MED-fichier V2.3 : Guide d'utilisation - Module "MED_Entité".


Sommaire de la page

Retour à la page de garde du guide d'utilisation


Introduction

Les routines disponibles permettent de :

On distingue deux niveaux de routines :

  1. Les routines élémentaires de niveau 1 qui permettent d'accéder en lecture ou en écriture aux attributs internes des entités (noeuds/mailles/faces/arêtes) d'un maillage MED. Ces routines élémentaires s'adressent à un type d'attribut en particulier (coordonnées des noeuds, connectivité, nom, numéro, numéro de famille).
  2. Les routines de niveau 2 qui mutualisent les traitements des routines de niveau 1 : elles permettent de lire ou d'écrire tous les attributs des entités (noeuds/mailles/faces/arêtes) d'un maillage non structuré.

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

Modèles de programmation

Ecrire les coordonnées des noeuds d'un maillage non structuré

La routine MEDcoordEcr/efcooe permet d'écrire les coordonnées des noeuds d'un maillage non structuré. Cette routine écrit dans le maillage désigné par son nom :

Ecrire les coordonnées des noeuds d'un maillage structuré standard

La routine MEDstructureCoordEcr/efscoe permet de définir la structure des coordonnées d'une grille de type MED_GRILLE_STANDARD. Cette structure est définie par un tableau d'entiers mono dimensionnel dont la taille est celle de la dimension du maillage. Chaque élément contient le nombre d'indices par dimension (axe) de la grille. Par exemple, la structure pour définir une grille 5x3 correspondra à un tableau entier à 2 éléments : int structure[2] = {5,3}.

La routine MEDcoordEcr/efcooe permet ensuite d'écrire les coordonnées des noeuds du maillage. Cette routine écrit dans le maillage :

Ecrire les coordonnées d'une grille cartésienne ou polaire

L'écriture des coordonnées d'un maillage structuré correspondant à une grille MED_GRILLE_CARTESIENNE ou MED_GRILLE_POLAIRE ne nécessite que l'écriture des indices de coordonnées selon chacun des axes de la grille.

La routine MEDindicesCoordEcr/eficoe permet l'écriture des indices d'un axe donné. Cette routine écrit dans le maillage :

Remarque :

Lire le nombre de noeuds d'un maillage non structuré ou d'un maillage structuré standard

La routine MEDnEntMaa/efnema permet de lire le nombre de noeuds dans un maillage non structuré (MED_NON_STRUCTURE) ou dans un maillage structuré (MED_STRUCTURE) correspondant à une grille de type MED_GRILLE_STANDARD.

Lire les coordonnées des noeuds d'un maillage non structuré

La routine MEDcoordLire/efcool permet de lire les coordonnées des noeuds d'un maillage non structuré. Cette routine lit dans le maillage désigné par son nom :

Remarque :

Lire les coordonnées des noeuds d'un maillage structuré standard

La routine MEDstructureCoordLire/efscol permet de lire la structure des coordonnées d'une grille de type MED_GRILLE_STANDARD. Cette structure est définie par un tableau d'entiers mono dimensionnel dont la taille est celle de la dimension du maillage. Chaque élément contient le nombre d'indices par dimension (axe) de la grille. Par exemple, la structure pour définir une grille 5x3 correspondra à un tableau entier à 2 éléments : int structure[2] = {5,3}.

La routine MEDcoordLire/efcool permet ensuite de lire les coordonnées des noeuds du maillage. Cette routine lit dans le maillage :

Remarque :

Lire le nombre d'indice de coordonnées d'une grille cartésienne ou polaire

La routine MEDnEntMaa/efnema permet de lire dans un grille cartésienne ou polaire le nombre d'indices de coordonnées selon un axe donné.

Lire les coordonnées d'une grille cartésienne ou polaire

La lecture se fait axe d'indices de coordonnées par axe d'indices de coordonnées.

Pour un axe donné, il s'agit de :

Ecrire la connectivité des éléments géométriques d'un maillage

L'écriture s'effectue type d'entité par type d'entité (MED_MAILLE, MED_FACE, MED_ARETE) et ne concerne que les maillages non stucturés. A noter qu'en mode de connectivité nodale, on ne doit écrire que les mailles, les entités MED_FACE et MED_ARETE n'étant utilisées que pour la connectivité descendante.

La routine MEDconnEcr/efcone permet l'écriture dans un maillage de type MED_NON_STRUCTURE, de la connectivité d'un type géométrique pour un type d'élément donné. Les données écrites sont :

Remarque :

Ecrire la connectivité de mailles polyèdres quelconques

En plus des types géométriques prédéfinis dans MED (MED_SEG2,MED_SEG3, MED_TRIA3, ...), il est possible d'écrire la connectivité de mailles correspondant à des polyèdres quelconques (référencés dans MED par le mot clé MED_POLYEDRE).

L'écriture de la connectivité des mailles de type MED_POLYEDRE est réalisée par la routine MEDpolyedreConnEcr/efpece.

Remarque :

Ecrire la connectivité de mailles/faces polygones quelconques

En plus des types géométriques prédéfinis dans MED (MED_SEG2,MED_SEG3, MED_TRIA3, ...), il est possible d'écrire la connectivité de mailles/faces correspondant à des polygones quelconques (référencés dans MED par le mot clé MED_POLYGONE).

L'écriture de la connectivité des mailles/faces de type MED_POLYGONE est réalisée par la routine MEDpolygoneConnEcr/efpgce.

Remarque :

Lire le nombre d'éléments dans un maillage

La lecture des nombres d'éléments dans un maillage s'effectue type d'entité par type d'entité (MED_MAILLE, MED_FACE, MED_ARETE) et ne concerne que les maillages non stucturés. A noter qu'en mode de connectivité nodale, on ne doit lire que les mailles, les entités MED_FACE et MED_ARETE n'étant utilisées que pour la connectivité descendante.

La routine MEDnEntMaa/efnema permet de lire le nombre d'éléments correspondant à un type géométrique donné dans un maillage non structuré.

Lire la connectivité des éléments géométriques d'un maillage

La lecture s'effectue type d'entité par type d'entité (MED_MAILLE, MED_FACE, MED_ARETE) et ne concerne que les maillages non stucturés. A noter qu'en mode de connectivité nodale, on ne doit lire que les mailles, les entités MED_FACE et MED_ARETE n'étant utilisées que pour la connectivité descendante.

Pour un type d'élément géométrique donné, il sagit de :

Les données lues sont :

Remarque :

Lire la connectivité de mailles polyèdres quelconques

En plus des types géométriques prédéfinis dans MED (MED_SEG2,MED_SEG3, MED_TRIA3, ...), il est possible de lire la connectivité de mailles correspondant à des polyèdres quelconques (référencés dans MED par le mot clé MED_POLYEDRE).

Pour récupérer le nombre de polyèdres, il faut utiliser la routine MEDnEntMaa/efnema. La lecture de la connectivité des mailles de type MED_POLYEDRE est réalisée par 2 routines :

Remarque :

Lire la connectivité de mailles/faces polygones quelconques

En plus des types géométriques prédéfinis dans MED (MED_SEG2,MED_SEG3, MED_TRIA3, ...), il est possible de lire la connectivité de mailles/faces correspondant à des polygones quelconques (référencés dans MED par le mot clé MED_POLYGONE).

Pour récupérer le nombre de polygone, il faut utiliser la routine MEDnEntMaa/efnema. La lecture de la connectivité des mailles/faces de type MED_POLYGONE est réalisée par 2 routines :

Remarque :

Ecrire les noms des entités d'un maillage

La routine MEDnomEcr/efnome permet d'écrire les noms des entités d'un maillage.

Lire les noms des entités d'un maillage

La routine MEDnomLire/efnoml permet de lire les noms des entités d'un maillage.

Ecrire les numéros des entités d'un maillage

La routine MEDnumEcr/efnume permet d'écrire les numéros des entités d'un maillage.

Lire les numéros des entités d'un maillage

La routine MEDnumLire/efnuml permet de lire les numéros des entités d'un maillage.

Ecrire les numéros de famille des entités d'un maillage

La routine MEDfamEcr/effame permet d'écrire les numéros des familles des entités d'un maillage.

Lire les numéros de famille des entités d'un maillage

La routine MEDfamLire/effaml permet de lire les numéros des familles des entités d'un maillage.

Ecrire les noeuds d'un maillage non structuré

La routine MEDnoeudsEcr/efnoee permet l'écriture dans un maillage non structuré des informations relatives aux noeuds de ce maillage. Cette routine est équivalente aux appels successifs aux routines élémentaires :

Lire les noeuds d'un maillage non structuré

La routine MEDnoeudsLire/efnoel permet la lecture dans un maillage non structuré de toutes les informations relatives aux noeuds de ce maillage. Cette routine est équivalente aux appels successifs des routines élémentaires suivantes :

Ecrire les éléments d'un maillage non structuré

La routine MEDelementsEcr/efelee permet l'écriture dans un maillage non structuré des éléments géométriques de ce maillage, à l'exception des mailles MED_POLYEDRE et des mailles/faces MED_POLYGONE. Cette routine est équivalente aux appels successifs des routines élémentaires :

Lire les éléments d'un maillage non structuré

La routine MEDelementsLire/efelel permet l'écriture dans un maillage non structuré des éléments géométriques de ce maillage, à l'exception des mailles MED_POLYEDRE et des mailles/faces MED_POLYGONE. Cette routine est équivalente aux appels successifs des routines élémentaires :

Exemples de programmation

Exemple d'écriture des noeuds d'un maillage non structuré

Le programme suivant utilise les routines de base sur les noeuds pour :

Accès aux sources :

Le second programme fait la même chose que le programme précédent mais en utilisant la routine MEDnoeudsEcr/efnoee.

Accès aux sources :

Exemple de lecture des noeuds d'un maillage non structuré

Le programme suivant utilise les routines de base sur les noeuds pour :

Accès aux sources :

Le programme suivant permet de :

Il utilise pour l'accès aux données des noeuds la routine MEDnoeudsLire/efnoel.

Accès aux sources :

Exemple d'écriture des coordonnées d'une grille standard et d'une grille cartésienne

Le programme suivant permet de :

Accès aux sources :

Exemple de lecture des coordonnées d'une grille standard et d'une grille cartésienne

Le programme suivant permet de :

Accès aux sources :

Exemple d'écriture des éléments d'un maillage non structuré

Le programme suivant utilise les routines de base sur les éléments d'un maillage. Le programme suivant permet de :

Accès aux sources :

Le programme suivant utilise la routine haut niveau MEDelementsEcr/efelee. Les écritures sont identiques à celles pratiquées dans le programme précédent.

Accès aux sources :

Exemple de lecture des éléments d'un maillage non structuré

Le programme suivant utilise les routines de base pour accéder aux mailles déposées dans le fichier "test6.med". Les traitements de ce programme consistent à :

Accès aux sources :

Le programme suivant utilise la routine haut niveau MEDelementsLire/efelel. Les traitements réalisés sont identiques à ceux du programme précédent.

Accès aux sources :

Exemple d'écriture de mailles polyèdres

Le programme suivant permet de :

Accès aux sources :

Exemple de lecture de mailles polyèdres

Le programme suivant permet de :

Accès aux sources :

Exemple d'écriture de mailles/faces polygones

Le programme suivant permet de :

Accès aux sources :

Exemple de lecture de mailles/faces polygones

Le programme suivant permet de :

Accès aux sources :

Conventions utilisées pour définir les entités d'un maillage MED

Convention sur la définition de la connectivité des éléments géométriques

La convention suivante est à appliquer pour la définition du tableau de connectivité des élements d'un maillage non structuré qui est passé en paramètres aux routines MEDconnEcr/efcone, MEDconnLire/efconl, MEDelementsEcr/efelee et MEDelementsLire/efelel :

Convention sur la définition de la connectivité des mailles de type MED_POLYEDRE

Pour décrire la géométrie et la connectivité de ces mailles, nous adopterons les conventions suivantes selon le mode de connectivité choisi :

Convention sur la définition de la connectivité des mailles/faces de type MED_POLYGONE

Pour décrire la géométrie et la connectivité de ces mailles/faces, nous adopterons les conventions suivantes selon le mode de connectivité choisi :

Convention sur la définition des entités d'un maillage

Maillage structuré

Un maillage structuré (MED_STRUCTURE) est défini par ses noeuds. La définition de la connectivité des éléments est implicite. L'ensembles des conventions (indexation, numérotation des noeuds et des éléments, définition des coordonnées) sur les maillages structurés sont décrites dans le modèle de données.

Grille de type MED_GRILLE_STANDARD

On doit pouvoir écrire/lire pour ce qui concerne les noeuds :

Pour chaque type d'élément, il faut pouvoir écrire/lire pour chaque type géométrique :

Si les noms et numéros existent, ils doivent être présents pour toutes les entités géométriques.

Grille de type MED_GRILLE_CARTESIENNE ou MED_GRILLE_POLAIRE

On doit pouvoir écrire/lire pour ce qui concerne les noeuds :

Pour chaque type d'élément, il faut pouvoir écrire/lire pour chaque type géométrique :

Si les noms et numéros existent, ils doivent être présents pour toutes les entités géométriques.

Maillage non structuré

Pour un maillage non structuré (MED_NON_STRUCTURE), on doit pouvoir écrire/lire les noeuds et les éléments du maillage.

Pour ce qui concerne les noeuds, on doit pouvoir écrire/lire :

Pour chaque type d'élément, il faut pouvoir écrire/lire pour chaque type géométrique :

Si les noms et numéros existent, ils doivent être présents pour toutes les entités géométriques.