2.3.6/med.h

Aller à la documentation de ce fichier.
00001 /*  This file is part of MED.
00002  *
00003  *  COPYRIGHT (C) 1999 - 2015  EDF R&D, CEA/DEN
00004  *  MED is free software: you can redistribute it and/or modify
00005  *  it under the terms of the GNU Lesser General Public License as published by
00006  *  the Free Software Foundation, either version 3 of the License, or
00007  *  (at your option) any later version.
00008  *
00009  *  MED is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *  GNU Lesser General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Lesser General Public License
00015  *  along with MED.  If not, see <http://www.gnu.org/licenses/>.
00016  */
00017 
00018 #ifndef MED23_H
00019 #define MED23_H
00020 
00021 #include <hdf5.h>
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 #define HDF5_VERSION (H5_VERS_MAJOR * 10000 + H5_VERS_MINOR * 100  + H5_VERS_RELEASE )
00028 #if HDF5_VERSION < 10607
00029 #define HDF5_SELECT_BUG (const hsize_t **)
00030 #else
00031 #define HDF5_SELECT_BUG
00032 #endif
00033 
00034 
00035 #define MED_NUM_MAJEUR 2 
00036 #define MED_NUM_MINEUR 3 
00037 #define MED_NUM_RELEASE 6 
00038 
00039 #define MED_NULL       (void *) NULL
00040 #define MED_MAX_PARA        20
00041 
00042 #define MED_TAILLE_DESC 200
00043 #define MED_TAILLE_IDENT  8
00044 #define MED_TAILLE_NOM   32
00045 #define MED_TAILLE_LNOM  80    
00046 #define MED_TAILLE_PNOM  16
00047 
00048 #define MED_PNOM_BLANC "                "
00049 #define MED_NOM_BLANC  "                                "
00050 /*                      01234567890123456789012345678901 */
00051 /*
00052   MED_FULL_INTERLACE : exemple avec 3 composantes X,Y,Z : X1Y1Z1X2Y2Z2X3Y3Z3...
00053   MED_NO_INTERLACE   : exemple avec 3 composantes X,Y,Z : X1X2X3Y1Y2Y3Z1Z2Z3...
00054 */
00055 typedef enum {MED_FULL_INTERLACE,
00056               MED_NO_INTERLACE}  med_mode_switch; 
00057 
00058 typedef enum {MED_NO_PFLMOD,
00059               MED_GLOBAL,
00060               MED_COMPACT }  med_mode_profil;
00061           
00062 typedef enum {MED_PFL_NON_COMPACT, MED_PFL_COMPACT} med_lecture_profil;
00063 
00064 /* 
00065    MED_LECTURE          : Ouverture en lecture seule
00066    MED_LECTURE_ECRITURE : Ouverture en lecture/ecriture, si un élément existe il est écrasé
00067    MED_LECTURE_AJOUT    : Ouverture en lecture/ecriture, si un élément existe une erreur est générée
00068    MED_CREATION         : Créer le fichier s'il n'existe pas, l'écrase sinon
00069    MED_MODE_ACCESS      : Variable globale interne initialisée au mode d'ouverture
00070 */
00071 typedef enum {MED_LECTURE, MED_LECTURE_ECRITURE, 
00072         MED_LECTURE_AJOUT, MED_CREATION, MED_UNDEF_MODE_ACCES} med_mode_acces; 
00073 
00074 typedef enum {MED_NON_STRUCTURE, MED_STRUCTURE} med_maillage;
00075 
00076 typedef enum {MED_GRILLE_CARTESIENNE, MED_GRILLE_POLAIRE, MED_GRILLE_STANDARD} med_type_grille;
00077 
00078 typedef enum {MED_MAILLE, MED_FACE, MED_ARETE, MED_NOEUD, MED_NOEUD_MAILLE } med_entite_maillage;
00079 
00080 typedef enum {MED_COOR, MED_CONN, MED_NOM, MED_NUM, MED_FAM,MED_COOR_IND1,MED_COOR_IND2,MED_COOR_IND3} med_table;
00081 
00082 typedef enum {MED_FLOAT64=6, MED_INT32=24,MED_INT64=26, MED_INT=28} med_type_champ;
00083 
00084 typedef enum {MED_MAILLAGE,MED_CHAMP} med_type_donnee;
00085 
00086 #define MED_NBR_GEOMETRIE_MAILLE 15
00087 #define MED_NBR_GEOMETRIE_FACE 4
00088 #define MED_NBR_GEOMETRIE_ARETE 2
00089 typedef enum {MED_POINT1=1, MED_SEG2=102, MED_SEG3=103, MED_TRIA3=203,
00090               MED_QUAD4=204, MED_TRIA6=206,MED_QUAD8=208, MED_TETRA4=304,
00091               MED_PYRA5=305, MED_PENTA6=306, MED_HEXA8=308, MED_TETRA10=310, 
00092               MED_PYRA13=313, MED_PENTA15=315, MED_HEXA20=320, 
00093               MED_POLYGONE=400, MED_POLYGONE2=420, MED_POLYEDRE=500, MED_NONE=0,
00094               MED_SEG4=104, MED_TRIA7=207,MED_QUAD9=209,MED_OCTA12=312,MED_HEXA27=327
00095              } med_geometrie_element;
00096 
00097 /* Ne pas utiliser : 
00098               MED_SEG4=104, MED_TRIA7=207,MED_QUAD9=209,MED_OCTA12=312, MED_HEXA27=327
00099  */
00100 
00101 typedef enum {MED_NOD, MED_DESC} med_connectivite ; 
00102 
00103 typedef enum {MED_CART, MED_CYL,MED_SPHER} med_repere; 
00104 
00105 typedef enum {MED_FAUX, MED_VRAI} med_booleen ; 
00106 
00107 typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille; 
00108 
00109 typedef enum {MED_COMP, MED_DTYPE} med_dim_champ; 
00110 
00111 typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info; 
00112 
00113 #define MED_NOPG    1                   /* Variable Interne                            */
00114 #define MED_NOGAUSS  ""                 /* -> pas de point de Gauss                    */
00115 #define MED_NOGAUSSi  MED_NOM_BLANC     /* Variable Interne                            */
00116 #define MED_GAUSS_ELNO "MED_GAUSS_ELNO" /* localisation aux points de Gauss definis
00117                                             sur les noeuds de l'element */              
00118 #define MED_NOPFL   ""                  /* -> pas de profils utilisateur               */
00119 #define MED_NOPFLi  MED_NOM_BLANC       /* Variable Interne                            */
00120 #define MED_NOLIEN  ""
00121 #define MED_NOLIENi MED_NOM_BLANC      /* Variable Interne                            */
00122 #define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
00123 #define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
00124 #define MED_NONOR -1                   /* rem: pas de n°ordre negatif                 */
00125 #define MED_DIM1   1                   /* PAS */
00126 #define MED_ALL    0
00127 #define MED_NOREF  ""
00128 #define MED_DEFAUT ""                  /* Toutes les donnees champs ou maillage pour le montage */
00129 
00130 /* correspondance des types avec HDF 5 */
00131 
00132 typedef hsize_t        med_size;
00133 typedef hssize_t       med_ssize;
00134 typedef hid_t          med_idt;
00135 typedef herr_t         med_err;
00136 
00137 /* types elementaires */
00138 
00139 typedef double         med_float;
00140 /*La ligne suivante est déterminée à l'étape de configuration*/
00141 typedef int  med_int;
00142 
00143 #include "med_proto.h"
00144 
00145 extern MEDC_EXPORT char * MED_ENTITE_MAILLAGE_AFF[5];
00146 
00147 extern MEDC_EXPORT char * MED_GEOMETRIE_MAILLE_AFF[MED_NBR_GEOMETRIE_MAILLE+2];
00148 extern MEDC_EXPORT char * MED_GEOMETRIE_FACE_AFF[MED_NBR_GEOMETRIE_FACE+1];
00149 extern MEDC_EXPORT char * MED_GEOMETRIE_ARETE_AFF[MED_NBR_GEOMETRIE_ARETE];
00150 extern MEDC_EXPORT char * MED_GEOMETRIE_NOEUD_AFF[1];  
00151 
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155 
00156 #endif  /* MED23_H */

Généré le Thu Oct 8 14:26:16 2015 pour MED fichier par  doxygen 1.6.1