Documentation de la bibliothèque MED-fichier V2.3 : Types élémentaires et paramètres de base de l'interface C


Sommaire de la page

Retour à la page de garde du guide de référence


Introduction

Tout ce qui suit est disponible dans le fichier "med.h". Tous les types énumérés qui sont décrits sont utiles à la définition des paramètres des routines de l'API.

Types de données élémentaires

Les types med_int et med_float correspondent aux types numériques de base du modèle de données.

Tailles des chaînes de caractères

Ces constantes spécifient la taille des chaînes de caractères utilisées par l'API. Elles permettent de définir les chaînes de caractères spécifiées dans les types de base du modèle de données. La taille des chaînes de caractères est standardisée en fonction de l'information représentée.

#define MED_TAILLE_DESC   200
#define MED_TAILLE_NOM     32
#define MED_TAILLE_LNOM    80    
#define MED_TAILLE_PNOM    16 

Mode d'accès aux fichiers

typedef enum {MED_LECTURE, MED_LECTURE_ECRITURE, MED_LECTURE_AJOUT, MED_CREATION} med_mode_acces;

Ce type définit le mode d'accès aux données d'un fichier MED qui est spécifié lorsque l'on ouvre le fichier via la routine MEDouvrir :

Le mode d'accès du fichier est stocké dans la variable globale MED_MODE_ACCES

Mode de stockage des données en mémoire

typedef enum {MED_FULL_INTERLACE,MED_NO_INTERLACE}  med_mode_switch; 
Ce type définit le mode de stockage des données en mémoire. On trouve deux modes possibles :

Exemple d'utilisation : Stockage des coordonnées dans un tableau en mémoire dans un repère cartésien à 3 dimensions.

Conventions utilisées :

Type du maillage

typedef enum {MED_NON_STRUCTURE, MED_STRUCTURE} med_maillage; 

Ce type permet de typer un maillage selon les 2 catégories possibles :

  1. MED_NON_STRUCTURE : Permet de définir un maillage non structuré.
  2. MED_STRUCTURE : Permet de définir un maillage structuré.

Ce type correspond au type med_maillage défini dans le package "Maillage" du modèle de données.

Type d'une grille structurée

typedef enum {MED_GRILLE_CARTESIENNE, MED_GRILLE_POLAIRE, MED_GRILLE_STANDARD} med_type_grille; 

Ce type permet de typer une grille (maillage structuré) :

  1. MED_GRILLE_CARTESIENNE : Permet de définir une grille cartésienne.
  2. MED_GRILLE_POLAIRE : Permet de définir une grille polaire.
  3. MED_GRILLE_STANDARD : Permet de définir une grille standard.

Ce type correspond au type med_type_grille défini dans le package "Maillage" du modèle de données.

Type d'une entité d'un maillage

typedef enum {MED_MAILLE, MED_FACE, MED_ARETE, MED_NOEUD} med_entite_maillage; 

Ce type définit les différents types d'entités qui composent un maillage.

Type géométrique d'un élément

typedef enum {MED_POINT1=1, MED_SEG2=102, MED_SEG3=103, MED_TRIA3=203,
	      MED_QUAD4=204, MED_TRIA6=206,MED_QUAD8=208, MED_TETRA4=304,
	      MED_PYRA5=305, MED_PENTA6=306, MED_HEXA8=308, MED_TETRA10=310, 
	      MED_PYRA13=313, MED_PENTA15=315, MED_HEXA20=320, MED_POLYGONE=400,
              MED_POLYEDRE=500,MED_NONE=0} med_geometrie_element;
Ce type définit les différents types géométriques des éléments d'un maillage (mailles/faces/arêtes) :

Remarques :

  1. Correspondent
  2. Constantes littérales associées :
    #define MED_NBR_GEOMETRIE_MAILLE 15
    #define MED_NBR_GEOMETRIE_FACE 4
    #define MED_NBR_GEOMETRIE_ARETE 2
    
    Ces constantes correspondent au nombre de types de mailles/faces/arêtes dont la géométrie est pré-définie (les types MED_POLYGONE et MED_POLYEDRE ne sont donc pas comptés).
  3. A noter que des valeurs entières sont associées à chaque type géométrique : pour chacune, le premier chiffre indique la dimension de l'entité, son modulo 100 son nombre de noeuds. Ces conventions ne s'appliquent pas aux types MED_POLYGONE et MED_POLYEDRE.

Mode d'accès aux attributs des entités

typedef enum {MED_COOR, MED_CONN, MED_NOM, MED_NUM, MED_FAM,MED_COOR_IND1,
              MED_COORD_IND2, MED_COORD_IND3} med_table;

Ce type permet d'accéder à un type d'attribut interne des entités d'un maillage.

Mode de connectivité

typedef enum {MED_NOD, MED_DESC} med_connectivite ; 

Il existe deux modes de connectivité pour décrire la connectivité des mailles d'un maillage :

Remarques :

  1. Dans le cadre de la connectivité nodale, les mailles sont décrites par la liste des noeuds qui les composent. Pour la connectivité descendante, les mailles sont décrites par les faces, les faces par les arêtes, les arêtes par les noeuds.
  2. Il n'y a pas de conversion automatique entre les 2 modes de représentation. Si les mailles sont stockées dans un fichier en mode nodal, un code ne pourra pas les lire en mode descendant.

Type du repère des coordonnées

typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere; 

Ce type définit le type du repère des coordonnées des noeuds dans un maillage non structuré :

Type des composantes d'un champ

typedef enum {MED_FLOAT64=6,MED_INT32=24,MED_INT64=26} med_type_champ;

Il s'agit du type des valeurs des composantes d'un champ.

Paramètres constants utiles à la lecture et à l'écriture des champs

/* 16 caracteres :      1234567890123456*/
#define MED_PNOM_BLANC "                "
/* 32 caractères :      12345678901234567890123456789012*/
#define MED_NOM_BLANC  "                                "

#define MED_NOPG    1                   /* Variable Interne                            */
#define MED_NOGAUSS  ""                 /* -> pas de point de Gauss                    */
#define MED_NOGAUSSi  MED_NOM_BLANC     /* Variable Interne                            */
#define MED_GAUSS_ELNO "MED_GAUSS_ELNO" /* mot cle qui indique que les points de Gauss
                                           se confondent avec les noeuds de l'element  */
#define MED_NOPFL   ""                  /* -> pas de profils utilisateur               */
#define MED_NOPFLi  MED_NOM_BLANC       /* Variable Interne                            */
#define MED_NOLIEN  ""
#define MED_NOLIENi MED_NOM_BLANC      /* Variable Interne                            */
#define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
#define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
#define MED_NONOR -1                   /* rem: pas de n°ordre negatif                 */
#define MED_DIM1   1                   /* PAS */
#define MED_ALL    0
#define MED_NOREF  ""
#define MED_DEFAUT ""                  /* Toutes les donnees champs ou maillage pour le montage */

Ces constantes sont utilisées dans le paramétrage des routines de l'API sur les champs de résultat (module fonctionnel "MED_Champ").

Type de définition du stockage mémoire des profils de champs

typedef enum {MED_NO_PFLMOD,
              MED_GLOBAL,
	      MED_COMPACT }  med_mode_profil; 

Ce type permet de spécifier le mode de répartition des valeurs d'un champ définies sur un profil de champ :

Type des données à monter dans un fichier

typedef enum {MED_MAILLAGE, MED_CHAMP} med_type_donnee;

Ce type permet de spécifier le type des données stockées dans un fichier différent du fichier courant et que l'on veut monter dans le fichier courant :

Type booléen

typedef enum {MED_FAUX, MED_VRAI} med_booleen ;